Commit Graph

67 Commits

Author SHA1 Message Date
nogueiraguh
e78365f91a fix: reduce container CVEs — update deps and Terraform 1.7.5→1.14.7
- Terraform CLI: 1.7.5 → 1.14.7 (fixes 5 critical Go stdlib CVEs)
- Python deps updated: fastapi>=0.115, uvicorn>=0.34, python-multipart>=0.0.18, PyJWT>=2.10, requests>=2.32, cryptography>=44.0
- Removed pinned versions (use >= for automatic security patches)
- Result: 273 CVEs → 176 CVEs (35% reduction), CRITICAL 9→4, HIGH 63→12
- Remaining CVEs from Chromium and Terraform Go stdlib (upstream, not fixable)
2026-03-23 15:00:33 -03:00
nogueiraguh
87fa92e8cf feat: Chat Agent RAG improvements — auto-detect model, tenancy filter, source hierarchy
- Auto-detect embedding model per table dimension (1536/3072) for search queries
- Embedding cache: reuse same embedding for tables with same model (avoid redundant API calls)
- Tenancy filter: strict JSON_VALUE match, no IS NULL fallback (prevents old data leaking)
- Global tables (cisrecom, engineerknowledgebase): no tenancy filter (generic knowledge)
- ADB connection timeout: 15s connect, 30s query
- RAG context: includes extract_date per document, relevance score, source table name
- Context size: 12000 chars max, distributed proportionally across top 8 docs
- ADB offline handling: LLM informed when bases are unavailable
- System prompt updated: clear hierarchy (findings > cisrecom > engineerknowledgebase)
- RAG vs MCP Tools differentiation: stored data vs real-time scan instructions
- Temporal awareness: model prioritizes recent data, supports date comparison
2026-03-21 13:31:19 -03:00
nogueiraguh
8db3e42d31 feat: detailed embed progress — current section, global bar, queue display
- Backend: tracks current_table, current_inserted, current_total, queue per embed task
- Frontend: dual progress bars (section + global), queue of upcoming sections
- Section bar shows table name + individual progress
- Global bar shows inserted/skipped/total with green/red segments
- Queue shows remaining sections with doc counts
2026-03-21 12:48:31 -03:00
nogueiraguh
ab2d0a3e9b fix: embedding reliability - chunking, truncation, progress bar, shared status
- Text chunking: max 8000 chars per document, large CSV rows split with context header
- Text truncation: _embed_text truncates at 8000 chars before sending to model (prevents 400 errors)
- Purge before re-embed: deletes old docs by tenancy+date before inserting new ones
- Shared embedding status: file-based status (/data/.embed_status/) instead of in-memory dict (fixes multi-worker visibility)
- Progress bar: shows green (OK) + red (failures) segments, percentage, processed/total count
- Better error logging: extracts readable error message from OCI API errors
2026-03-21 10:48:21 -03:00
nogueiraguh
73c60212f7 feat: auto-mapped CIS report embedding, section embed, ADB RAW(16) fix
- Auto-embed report: maps each CSV to its ADB table (summaryreportcsvvector, identityandaccess, networking, etc.)
- Section embed: new endpoint POST /api/embeddings/report/{rid}/section with per-section button in UI
- Table validation: checks registered ADB tables before embedding, reports missing tables
- Auto-detect embedding dimension: reads table dim and selects correct model (3072→large, 1536→small)
- ADB RAW(16) ID fix: all vector inserts use HEXTORAW() for UUID (fixes ORA-01465)
- Float32 vectors: all inserts use array.array('f') for FLOAT32 compatibility
- Embedding status: real-time progress polling (Embedding X/Y — table: Z)
- Loading per section: spinner only on the section being embedded, not all
- Removed individual file embed buttons (only section + full report)
- Summary CSV chunking: groups by CIS section with tenancy + extract_date metadata
- Findings CSV chunking: each row becomes a document with structured content
- README: documented all 11 required ADB vector tables with descriptions
2026-03-21 00:10:50 -03:00
nogueiraguh
2c5f0f2e1c fix: compliance report iframe, findings tables, PDF fonts, delete session, orphan markers
- Compliance report iframe: removed auth requirement (UUIDs are non-guessable), fixed X-Frame-Options SAMEORIGIN on /api/
- Findings resource tables: compact HTML tables (max 4 cols, 10 rows) per non-compliant finding with affected resources from CSV
- PDF fonts: installed Liberation + DejaVu fonts in container, standardized font-family to Arial/Liberation Sans
- Delete session fix: terraform.ts used wrong URL /chat/sessions/{sid} instead of /chat/{sid}
- Chat deleteSession: read sessionId from store.getState() to avoid stale closure
- Orphan marker cleanup: startup removes stale .compliance_generating markers, status endpoint auto-expires after 10min
- Generate endpoint rejects duplicate requests while already generating
- Compliance iframe condition: only renders when ready AND not generating, prevents 404 flash
- Dockerfile: added fonts-liberation fonts-dejavu-core fontconfig packages
2026-03-20 17:17:42 -03:00
nogueiraguh
fbcb1966d5 feat: comprehensive security, performance, UX and deployment audit
Security:
- CORS restricted to explicit methods/headers, configurable via CORS_ORIGINS env
- Auth added to /reports/{rid}/html and /compliance-report endpoints
- Ownership check on report downloads
- Rate limiting on login (10 attempts/5min per IP with threading.Lock)
- Non-root container user (agent via gosu entrypoint)
- Nginx security headers (X-Frame-Options, X-Content-Type-Options, X-XSS-Protection, Referrer-Policy, Permissions-Policy)
- .gitignore and .dockerignore for secret leak prevention
- .env.example with documentation

Performance:
- 16 SQLite indexes on foreign keys and frequently queried columns
- Pagination on chat messages (100), reports (50), audit log (100)
- subprocess.run wrapped in run_in_executor (3 async handlers)
- asyncio.wait_for timeouts on GenAI calls (300s) and Chromium PDF (120s)
- Thread pool reduced to 10 workers
- Code splitting with React.lazy (bundle: 1.3MB -> ~550KB initial)
- React.memo on TreeItem (recursive compartment tree)

Error handling:
- 13 bare except clauses replaced with logged Exception handlers
- Graceful shutdown handler (terminates subprocesses + executor)
- File upload validation (50MB max, extension whitelist per endpoint)
- Health check expanded (version, uptime, db_ok)
- Cache-Control on /api/genai/models (1h)
- Auto-cleanup audit_log > 30 days

Dead code removed:
- DownloadsPage.tsx, StubPage.tsx, MfaPage.tsx (moved to UsersPage)
- Legacy frontend/ directory
- 19 unused i18n keys, dist/ removed from git tracking

UX & i18n:
- 8 alert() calls replaced with styled error states (TerraformPage)
- 50+ hardcoded Portuguese strings localized to i18n (pt/en) across 11 files
- aria-label on all icon-only buttons (Chat, Explorer, Sidebar)
- focus-visible CSS for keyboard navigation
- Responsive grid fix (360px -> 280px for mobile)
- aria-hidden on decorative SVGs

Deployment:
- Docker resource limits (backend 4G, frontend 512M)
- Log rotation (json-file, 10MB x 3)
- Terraform version parameterized via ARG
2026-03-20 13:48:30 -03:00
nogueiraguh
61fbb3861d feat: remove legacy frontend, root routing, compliance ZIP with Chromium PDF, chat markdown styling
- Legacy frontend removed: React SPA served at / (no /app/ prefix)
- Compliance report ZIP: Chromium headless --print-to-pdf (identical to browser) + CSV findings
- Server-side generation state: .compliance_generating marker survives page navigation
- RAG enriched: Description + Rationale + Remediation + Audit extracted from CIS vector chunks
- Chat markdown: syntax highlighting (Catppuccin), styled headings/lists/tables/blockquotes/code
- Default model auto-selected on Chat Agent load
2026-03-20 07:21:41 -03:00
nogueiraguh
5028f632a6 fix: compliance report Oracle design, polling robustness, print margins
- Oracle PDF style: decorative left strip, ORACLE brand header, red section titles, green table headers
- Cover page: removed rectangle, clean layout matching Oracle reference PDF
- Print: @page margin:0 + thead/tfoot table trick for per-page header/footer spacing without browser URL/date
- RAG remediation: fixed fallback dumping entire CIS chunk instead of just remediation section
- Findings: removed break-inside:avoid that caused empty pages, emoji replaced with [CSV] text
- Tables: break-inside:avoid on rows, section headers break-after:avoid, thead repeats on page break
- Compliance polling: useEffect-based with cleanup, auto-expand on ready, re-check on section toggle
- Explorer: silent polling during start/stop (no flickering)
- HTML report starts minimized, auto-expands on fresh generation
- Include dist/ in git for deployment
2026-03-19 11:34:31 -03:00
nogueiraguh
442e710b9f feat: LAD A-Team CIS Compliance Report, React SPA, i18n, report management, explorer UX fixes
- Professional Oracle-format compliance report with RAG remediation from ADB vector store
- React 19 SPA at /app/ (16 pages, TypeScript, Vite, Zustand, i18n pt/en 625 keys)
- Report delete endpoint, embed individual report files into vector store
- Terraform ZIP download (client-side, pure JS)
- Explorer silent polling during start/stop (no flickering)
- HTML report and compliance report sections start minimized
- Token auth fix for compliance report CSV download links
2026-03-19 07:34:06 -03:00
nogueiraguh
baacc1ba21 feat: session token auth, workspace submenu, retry buttons, terraform fixes, app rename
- Rename app to "AI Agent - Infrastructure & Security Engineer"
- OCI session token authentication (SecurityTokenSigner, conditional form, type tags)
- Terraform Workspaces sidebar sub-tab (date-grouped accordion, INNER JOIN filter)
- Retry button on failed messages (Chat, Terraform, Prompt Generator)
- Fix f2 undefined in dedup, oci_core_services false validation, Re-plan tfCode sync
- Auto-fix button no longer requires pre-selected model
- DRG attachment rules added to Terraform system prompt
- Stuck workspace recovery on container restart
2026-03-12 18:39:35 -03:00
nogueiraguh
18fabec805 feat: Explorer KPI stats, enhanced views, start/stop expansion, Prompt Generator docs injection
- Explorer: KPI stats bar with cached counts (SQLite), background refresh,
  enhanced views for VCNs/Subnets/LBs/Buckets, start/stop for DB Systems,
  MySQL, Container Instances, dead state filtering across all 36 endpoints
- Prompt Generator: same knowledge pipeline as Terraform Agent — resource
  type detection + official docs from GitHub + compact resource reference
- Fix: NetworkFirewallPolicySummaryCollection not iterable (.items accessor)
2026-03-12 11:24:38 -03:00
nogueiraguh
981f77b1eb fix: Terraform Agent uses SQLite RAG only, terminal shows errors properly
- Skip ADB vector search for Terraform Agent (uses local SQLite resource reference instead)
- Show error message in terminal when plan fails validation (no more stuck "Aguardando execução")
- Write region validation error to plan_output field for terminal display
- Fix Plan/Re-plan button visibility for all workspace states (including stuck planning/applying)
2026-03-12 08:45:54 -03:00
nogueiraguh
e4ba2cfaab feat: region safety guard, rollback button, SSH key support, split-panel layout
- Block terraform plan if model omits variable "region" (prevents wrong-region provisioning)
- Rollback button on apply failure with ROLLBACK confirmation modal
- SSH public key field in OCI configs, auto-injected into terraform.tfvars
- Split-panel layout: terminal right (40%), files/plan/resources below chat (60%)
- reasoning_effort uppercase fix for OCI SDK
- Plan button persists after destroy status
2026-03-12 00:26:13 -03:00
nogueiraguh
58d430c904 feat: terraform prompt generator, provider parameter matrix, and model penalties
- Add Terraform Prompt Generator: AI-powered structured prompt generation
  with dedicated chat UI, curated model selection (7 models), conversation
  history with persistent sessions, and OCI TF resource reference context
- Provider parameter matrix: segment API params per model/provider,
  explicitly null unsupported params (freq/pres penalty, temperature)
  to prevent OCI SDK serialization errors
- Add penalties flag to model catalog: only GPT-4.1/4.1-mini/4o support
  frequency_penalty and presence_penalty
- Flat workspace enforcement: prohibit module blocks and duplicate
  variable declarations in Terraform system prompt
- Prompt Generator history: sidebar panel with session persistence,
  restore, rename/delete (agent_type tf-prompt)
2026-03-11 13:55:59 -03:00
nogueiraguh
ab38e93516 feat: dedicated consult prompt and enriched document content extraction
- Add CONSULT_SYSTEM_PROMPT (concise data viewer, not compliance assistant)
- Add _enrich_doc_content to extract text from metadata.text when TEXT column is short
- Enriches context with recommendation number, chapter, tenancy, section
- Improves RAG context quality for all vector search flows
2026-03-11 10:31:24 -03:00
nogueiraguh
0e8e082b1a feat: auto-resolve GenAI config for consult embeddings endpoint
- Build GenAI config from OCI credentials when no genai_configs exist
- Uses GPT-4.1 as default model with RAG system prompt
- Fixes _call_genai signature (system_prompt via gc dict, not kwarg)
2026-03-11 03:20:04 -03:00
nogueiraguh
587a809156 feat: auto-detect embedding dimensions per table in consult endpoint
- Detect VECTOR_DIMENSION_COUNT per table before querying
- Map dimensions to correct embedding model (1536→small, 3072→large)
- Cache query embeddings by dimension to avoid redundant API calls
- All tables now searchable regardless of which model generated them
2026-03-11 03:12:57 -03:00
nogueiraguh
749f4e479b feat: consult embeddings UI, vector search FLOAT32 fix, and base64 compartment decode
- Add Consult Embeddings sub-menu with chat-like Q&A interface
- Fix VECTOR_DISTANCE FLOAT32/FLOAT64 mismatch (array 'd' → 'f')
- Decode base64 compartment_id in _resolve_embed_config
- Sidebar sub-item navigation for Embeddings hierarchy
- Fallback to raw document display when no GenAI config available
2026-03-11 03:06:53 -03:00
nogueiraguh
2a56712665 fix: sqlite3.Row.get() compatibility in _resolve_embed_config 2026-03-11 02:36:07 -03:00
nogueiraguh
4a802c8e64 feat: knowledge base with URL import, ADB case-sensitivity fix, and RAG enhancements
- Add Knowledge Base (Base de Conhecimento) with file upload + URL import
- URL content extraction: HTML stripping, remote PDF parsing
- Auto-resolve embedding config from OCI credentials
- Case-insensitive ADB table matching with quoted identifiers
- Table validation endpoint, report_date metadata, purge & re-embed flow
- Embeddings tab cleanup, PyPDF2 dependency, README updated to v2.3
2026-03-11 02:02:31 -03:00
nogueiraguh
851def30b6 feat: Terraform intelligence, anti-flickering, and v2.2 release
- Official resource docs injection from registry.terraform.io (on-demand fetch + SQLite cache)
- Smart tfvars auto-generation from declared variables (tenancy_ocid, user_ocid, etc.)
- Multi-region provider: use var.region instead of hardcoded OCI config region
- RPC anti-cycle rule in system prompt
- System prompt auto-sync to DB on restart
- Fix UI flickering: animations scoped to tab switch only (tab-enter class)
- Terraform polling timeout increased to 60 min
- Terminal output updates without full page re-render
- Fix ${IC.bot} literal rendering in chat empty state
- Chat empty state icon scaled to 48px
- README updated to v2.2 with all changes
2026-03-10 14:29:38 -03:00
nogueiraguh
4fc458cdcb feat: UI modernization phases 1B-5, KPI dashboard, charts, and ADB fix
- Phase 1B: replace all emojis with inline SVG icons (Lucide-based, 45+ icons)
- Phase 2: KPI cards for compliance reports (score, passed, failed, total)
- Phase 3: Chart.js integration (donut distribution + horizontal bar by section)
- Phase 4: SVG gauge/speedometer for compliance score with gradient arc
- Phase 5: polish animations (fade-in stagger, smooth theme transition, hover effects, skeleton loading, alert slide-in, button press, dropdown animation)
- New endpoint GET /api/reports/{rid}/summary for KPI data extraction
- Fix ADB wallet connection (DPY-6005) by always passing wallet_password
- Remove CIS_EMBEDDINGS default from ADB config
- Custom brain icon (Lucide) for GenAI section
2026-03-10 00:08:28 -03:00
nogueiraguh
188fc82858 feat: export/import configuration and multiple bug fixes
- Add export/import endpoints for full config backup (OCI, GenAI, MCP, prompts, settings, ADB)
- Export includes private keys (base64) for complete environment migration
- Import merges by ID (skips existing, no duplicates)
- Fix Resource Plan parser to recognize free-form format (model skips ```plan blocks)
- Fix replan not clearing previous apply/destroy outputs
- Fix duplicate CIS Compliance Scanner MCP server on multi-worker startup
- Add Terraform prompt editor with auto-save in menu
2026-03-09 15:26:13 -03:00
nogueiraguh
c4a9f8d6d5 feat: ADB network access, prompt editor, resize persistence, and multiple fixes
- Add Update Network Access endpoint and UI for ADB ACL management
- Add inline prompt editor with auto-save in Terraform agent menu
- Persist resize bar positions across re-renders (Explorer + Terraform)
- Restore full Terraform session state from history (files, plan, outputs, OCI config)
- Parse free-form Resource Plan format (model often skips ```plan blocks)
- Auto-refresh resource state after Start/Stop actions
- Clear previous apply/destroy outputs on Re-plan
- Deduplicate CIS Compliance Scanner MCP server on startup
- Show ACL IPs in Explorer for Autonomous Databases
- Detect user IP via /api/oci/my-ip endpoint
2026-03-09 15:01:26 -03:00
nogueiraguh
33d1e2ddbf refactor: simplify Terraform agent system prompt 2026-03-09 01:25:32 -03:00
nogueiraguh
a5b8f6903a feat: resource type validation, 100K max tokens, and auto-split improvements
- Add SQLite-based resource type validation with suggestions for invalid types
- Increase Terraform max_tokens from 32K to 100K for large infra generation
- Generate resource reference at startup to survive volume mount overwrites
- Add invalid resource type examples to system prompt (RPC peer, subnet route table)
- Add prompt size logging for Terraform agent
- Translate remaining Portuguese code comment to English
2026-03-09 01:10:33 -03:00
nogueiraguh
6fb2eecddf feat: auto-split monolithic Terraform files and fix single-line HCL blocks
- Add 3-layer protection pipeline for model-generated Terraform code:
  1. Frontend auto-split: splits monolithic HCL into multiple files by resource type
  2. Backend auto-split: Python port as last defense before writing to disk
  3. Backend deduplication: removes monolithic leftovers with duplicate resources
- Fix single-line block expansion to handle ALL HCL blocks (nested included):
  ingress_security_rules, egress_security_rules, route_rules, match_criteria, etc.
- Add prompt size logging for terraform agent diagnostics
- Strengthen system prompt: minimum 3 files, final reminder section
2026-03-09 00:40:48 -03:00
nogueiraguh
15a8366f9c fix: delete terraform workspace and files when deleting chat session 2026-03-08 19:09:28 -03:00
nogueiraguh
c2effa1408 fix: include private_key_password in provider.tf for encrypted OCI keys 2026-03-08 19:06:03 -03:00
nogueiraguh
28a8fe4511 fix: add explicit security rules multi-line example to TF validation checklist 2026-03-08 19:03:27 -03:00
nogueiraguh
1b726b1a51 fix: clarify variable region requirement in TF validation checklist 2026-03-08 19:01:05 -03:00
nogueiraguh
faeaed6181 fix: add HCL multi-line block syntax rule to TF prompt
Prevent single-line block syntax with multiple arguments which causes
terraform parse errors. All blocks must use multi-line format.
2026-03-08 01:55:39 -03:00
nogueiraguh
3c4964b1d0 fix: add region variable and peering dependency rules to TF prompt
Always declare variable "region", remove invalid resource types with
correct alternatives, and ensure RPC dependencies exist on both sides
before peering.
2026-03-08 01:51:03 -03:00
nogueiraguh
64a882d6d3 fix: add route table, DRG attachment, and RPC validation rules to TF prompt
Ensure subnets always reference valid route tables, DRG attachments
point to existing resources, and RPC peering has correct peer_id
and peer_region_name configuration.
2026-03-08 01:49:47 -03:00
nogueiraguh
34678e59ae fix: add mandatory validation checklist to Terraform Agent system prompt
Cross-references, CIDRs, security lists, route tables, dependencies,
resource type names, valid arguments, and variable declarations must
all be verified before the model delivers any code.
2026-03-08 01:48:07 -03:00
nogueiraguh
fe4eb95c46 fix: merge corrected TF files instead of replacing all
- fmTf now merges new code blocks with existing S.tfFiles: updated files
  are replaced by name, untouched files are preserved, new files are added
- System prompt changed: model generates ONLY the files that need fixing
  instead of all 25 files, drastically reducing output size
- Prevents model from discarding existing work when correcting errors
2026-03-08 01:41:18 -03:00
nogueiraguh
bb25c3dc29 feat: robust TF file correction, move Start/Stop to Explorer, increase context
- Inject existing workspace files + plan/apply output into Terraform chat
  context so model corrects in-place instead of regenerating from scratch
- Add "REGRA CRÍTICA: Correção de Arquivos Existentes" to system prompt
  requiring the model to preserve file structure and fix surgically
- Increase Terraform Agent max_tokens from 16K to 32K
- Remove "Nova conversa" button from Terraform toolbar
- Move Start/Stop Instance and ADB buttons from Terraform Resources
  panel to OCI Account Explorer (instances and databases tabs)
- Remove unused _ociResOid helper and old action functions
2026-03-08 01:34:17 -03:00
nogueiraguh
9de4c2bc7b fix: default Terraform Agent to generate multiple organized .tf files
Change the system prompt from "single file by default" to "multiple files
by default" organized by function (variables.tf, networking.tf, compute.tf,
etc.), which was causing the model to only generate 1-2 files.
2026-03-08 01:10:46 -03:00
nogueiraguh
805286c05f feat: add TF reference refresh button to Terraform Agent menu
- Add dropdown menu (⋮) in Terraform toolbar with "Atualizar Referência TF" button
- Remove standalone reference-status API endpoint, keep only refresh-reference
- Button triggers `terraform providers schema -json` regeneration with progress feedback
- Shows line count and update timestamp after successful refresh
- Update README with new line counts
2026-03-08 01:05:18 -03:00
nogueiraguh
19e481275d feat: Terraform resource reference from provider schema, provider alias fixes, and timestamps
- Add gen_tf_reference.py to generate OCI Terraform provider resource catalog (~937 resources) from `terraform providers schema -json`
- Auto-inject categorized resource reference into Terraform Agent system prompt to prevent invalid resource type names
- Build-time reference generation in Dockerfile, refreshable via POST /api/terraform/refresh-reference
- Provider alias detection with brace-matching parser for multi-region deployments
- Clean old .tf files before writing new ones on Re-plan
- Message timestamps in terraform chat and history
- Partial DOM rendering to eliminate screen flickering
- Layout overflow fix (no scroll beyond viewport)
2026-03-08 01:00:47 -03:00
nogueiraguh
8bccf9367e feat: chat history, inline file editor, split terminal, OCI resource actions, and layout fixes
- Add ChatGPT-style chat history for Chat Agent and Terraform Agent (sessions, rename, delete)
- Add inline .tf file editor with Tab support and auto-sync to workspace code
- Add split-panel terminal showing Plan/Apply/Destroy output alongside files/plan/resources
- Add OCI resource actions: start/stop Compute instances and Autonomous DBs from Resources panel
- Add multi-file Terraform generation via // filename: markers
- Fix GenAI empty response handling (GPT-5.2 fallback message)
- Fix compartment select visibility, Terraform code block light theme
- Fix page layout overflow (no more scroll beyond viewport)
- Add DB migration for terraform_workspaces.compartment_id column
- Update README with new features, API endpoints, and version notes
2026-03-08 00:15:10 -03:00
nogueiraguh
c7c4ca1f1b feat: Terraform Agent, expanded OCI Explorer (40+ resources), and MCP improvements
Add Terraform Agent tab with AI-powered IaC generation (plan/apply/destroy lifecycle,
workspace management, compartment selection, Terraform CLI v1.7.5 in container).
Expand OCI Explorer from 6 to 40+ resource types across 8 categories with tree-view
navigation and resizable panels. Add compartment filtering and error tracking to MCP
CIS server, increase tool timeout to 30min with auto-retry. Add chat sidebar, chat
audit logs, and tune memory compaction (6K threshold, 20 recent messages). Trim model
catalog from 69 to 15 curated models. Update README for v2.1.
2026-03-07 12:39:20 -03:00
nogueiraguh
3e13cf4677 refactor: trim GenAI models from 69 to 15, set GPT-4.1 as default
Keep only the best model per provider family (Meta, Google, OpenAI, xAI).
Remove Codex variants, Image/Audio/Search models, ProtectAI, and redundant
versions. GPT-4.1 is now pre-selected when creating a new GenAI config.
2026-03-06 11:24:22 -03:00
nogueiraguh
2d024d3130 feat: async background chat, performance scaling, and dead code cleanup
Async chat processing eliminates 504 timeouts - POST returns immediately,
backend processes in background, frontend polls for results with timestamps.
Scale to ~12 simultaneous chats via 8 uvicorn workers + 16-thread executor.
Parallelized MCP data collection, 2h session cache, 5min tool timeout.
Full dead code cleanup across backend, frontend, MCP, docker, and nginx.
2026-03-06 11:06:21 -03:00
nogueiraguh
ef43eaa7ba feat: multimodal chat, region-specific MCP scanning, and resilience improvements
Add image/PDF/text file upload in chat via new /api/chat/upload endpoint
with OCI GenAI ImageContent and DocumentContent support. Frontend shows
attach button, file preview, and handles multipart upload seamlessly.

Add optional regions parameter to all CIS MCP scan tools for targeting
specific OCI regions instead of full tenancy. Session cache scoped by
config+regions for concurrent multi-region scans.

Add orphaned report auto-detection on progress poll (marks as failed if
process not found). Increase nginx proxy timeout to 15 minutes. Improve
$api error handling for non-JSON responses (504 HTML pages).

Update README to v1.9.
2026-03-05 13:27:17 -03:00
nogueiraguh
973ff65989 feat: Oracle CIS report engine, CIS engine auto-update, and granular report params
Replace lightweight cis_runner.py with Oracle's official cis_reports.py engine
(6660 lines, 48 CIS + 11 OBP checks). Add granular execution parameters (Level,
OBP, Raw Data, Redact), per-report file storage with category browser, tenancy
filter in Downloads, and individual file download.

Add CIS Engine auto-update: check/download latest cis_reports.py from Oracle's
GitHub repo with automatic patch reapplication (admin UI card + 3 new endpoints).
Save engine version to app_settings on startup.

Update README to v1.8 with new features, API endpoints, and versioning table.
2026-03-05 11:11:31 -03:00
nogueiraguh
5038403d08 feat: granular CIS MCP server, chat memory compaction, and UX improvements
- Rewrite mcp_cis_server.py with per-section scan tools (IAM, Networking,
  Compute, Logging/Monitoring, Storage, Asset Management) instead of
  monolithic full-tenancy scan — 12 granular tools
- Add cis_reports.py (Oracle CIS Benchmark checker) to backend
- Add chat memory compaction: auto-summarize old messages when history
  exceeds ~8000 tokens, keeping 6 recent messages intact
- Fix GenAI tool use loop: accumulate assistant+tool messages across
  iterations for proper conversation flow (Generic format)
- Remove tenancy confirmation section from system prompt
- Add thinking indicator and button disable in chat UI while waiting
- Add requests dependency for cis_reports.py
- Fix NoneType error in cis_reports.py region filtering
2026-03-05 08:26:43 -03:00
nogueiraguh
0f5c805601 feat: integrate MCP servers as tools in Chat Agent with function calling
Add MCP tool discovery (auto + manual), tool execution via MCP SDK,
and GenAI function calling loop (Cohere + Generic formats) so the
chat agent can invoke MCP server tools during conversations.

- Add mcp SDK dependency
- New endpoints: discover-tools, update tools
- Modify _call_genai to support tools/tool_results and return (text, tool_calls)
- Tool use loop in chat endpoint (max 5 iterations)
- Frontend: tools management in MCP cards, chat toggle, tools_used display
- Multi-table ADB vector search, enriched embeddings, preview chunks
- Orphaned report cleanup on container restart
- Nginx no-cache headers, searchable dropdowns, editable vector tables
2026-03-04 23:15:27 -03:00
nogueiraguh
7448f98ce0 fix: remove dated OpenAI model variants and GPT-5.2 Pro from catalog
Remove 18 duplicate OpenAI models with date suffixes (e.g. 2025-04-14)
and GPT-5.2 Pro (Responses API only) to keep the model list clean.
2026-03-04 14:58:39 -03:00