Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/admbe/FluxOp/llms.txt

Use this file to discover all available pages before exploring further.

Flux exposes a FastAPI REST API (version 2.0.0) mounted at /api. The same process that serves the React frontend also serves the API, so no separate backend port is needed. Interactive Swagger documentation is automatically generated and available at /docs. Every route except /api/health requires an authenticated session.

Base URL

The API is served by the same process as the React frontend on port 8765 by default.
EnvironmentBase URL
Local developmenthttp://127.0.0.1:8765
Vite dev proxyhttp://localhost:5173 (proxied to 8765)
App Servicehttps://<your-app>.azurewebsites.net
The host and port are controlled by the FLUX_HOST and FLUX_PORT environment variables.

Authentication

All authenticated routes require a valid session. In production, Flux uses Microsoft Entra Easy Auth — App Service validates the token and injects claims that Flux decodes into reader or admin roles. In development, a mock administrator session is active with no Entra configuration required. See Authentication for the full identity model, role definitions, environment variables, and session response shape.

Response Format

All endpoints return JSON unless explicitly noted:
  • JSON — all standard data endpoints
  • CSV — export endpoints (filterable, injection-safe with ' prefix guard)
  • XLSX — export endpoints that accept ?format=xlsx (includes a Metadata sheet with generation time, snapshot version, and active filters)

Error Responses

StatusCondition
401 UnauthorizedMissing or unauthenticated session
402 Payment RequiredIntelligence evaluation budget exceeded (POST /api/semantic/expert)
403 ForbiddenAuthenticated but insufficient role
404 Not FoundResource not found (anomaly, opportunity, board, etc.)
409 ConflictSynchronization already running, or protected board conflict
422 Unprocessable EntityPydantic validation error or invalid query parameter
429 Too Many RequestsIntelligence evaluation budget exceeded (POST /api/intelligence/chat)
503 Service UnavailableDuckDB writer is busy (DatabaseBusyError) — response includes Retry-After: 15 and a waitedSeconds field
When DuckDB is locked by a long-running synchronization write, all analytical read endpoints return 503 with a Retry-After header rather than hanging indefinitely. Retry after the indicated number of seconds.

Endpoint Index

Health & Session

MethodRoutePurposeAuth
GET/api/healthRuntime, database, and auth-mode healthNone
GET/api/sessionCurrent Entra identity, roles, permissions, and data currencyNone

Inventory & Changes

MethodRoutePurposeAuth
GET/api/overviewDashboard metrics and chart seriesReader
GET/api/inventoryFiltered, paginated current inventoryReader
GET/api/inventory/exportFull filtered spreadsheet-safe inventory export (CSV or XLSX)Reader
GET/api/changesFiltered, paginated latest inventory changesReader
GET/api/changes/anomaliesCurrent change-volume baselines and anomaliesReader
GET/api/anomaliesLegacy alias for /api/changes/anomaliesReader

Cost Anomalies

MethodRoutePurposeAuth
GET/api/cost/anomaliesFiltered daily cost anomalies, baseline evidence, and trendReader
GET/api/cost/anomalies/exportFiltered, spreadsheet-safe anomaly export (CSV)Reader
GET/api/cost/anomalies/contributorsPrevious-week service/resource contributors for a specific anomalyReader
PUT/api/cost/anomalies/reviewUpdate anomaly investigation status and notesAdmin

Reports

Cost & FOCUS

MethodRoutePurposeAuth
GET/api/reports/costNative cost summary, breakdowns, and forecastReader
GET/api/reports/cost/exportFiltered resource-level Cost Summary export (CSV or XLSX)Reader
GET/api/reports/focus-costGoverned FOCUS v1.0 charge-level investigation, coverage, and lineageReader
GET/api/reports/focus-analyticsFOCUS analytics summaryReader

Workload & Governance

MethodRoutePurposeAuth
GET/api/reports/workloadNative opportunity and retirement portfolioReader
GET/api/reports/workload/retirement/exportRetirement candidate CSVReader
GET/api/reports/governanceAzure Policy compliance postureReader

Catalog

MethodRoutePurposeAuth
GET/api/reports/catalogGoverned read-only measures and dimensionsReader
POST/api/reports/catalog/validateValidate a report request against approved fieldsReader

Fiscal Outlook

MethodRoutePurposeAuth
GET/api/reports/fiscal-outlookFiscal year outlook with trend and forecastReader
PUT/api/reports/fiscal-outlook/configSave fiscal year and growth assumptionsAdmin

Commitments & Savings

MethodRoutePurposeAuth
GET/api/reports/commitmentsCommitment inventory (reservations and savings plans)Reader
GET/api/reports/savingsSavings reportReader

Budgets

MethodRoutePurposeAuth
GET/api/reports/budgetsBudget vs. actual reportReader
GET/api/integrations/budgetsRead configured budget targetsAdmin
PUT/api/integrations/budgetsSave budget targetsAdmin
GET/api/integrations/budget-groupsRead budget groupsReader
PUT/api/integrations/budget-groupsSave budget groupsAdmin

Virtual Tags

MethodRoutePurposeAuth
GET/api/reports/virtual-tagsVirtual tag cost reportReader
GET/api/reports/virtual-tags/exportVirtual tag cost export (CSV)Reader
GET/api/virtual-tags/dimensionsList active virtual tag dimensionsReader
POST/api/virtual-tags/dimensionsCreate or update a virtual tag dimensionAdmin
DELETE/api/virtual-tags/dimensions/{dimension_key}Deactivate a virtual tag dimensionAdmin
GET/api/virtual-tags/rulesList virtual tag rulesAdmin
POST/api/virtual-tags/rulesCreate or update a virtual tag ruleAdmin
POST/api/virtual-tags/rules/{rule_id}/statusEnable or disable a virtual tag ruleAdmin
DELETE/api/virtual-tags/rules/{rule_id}Deactivate a virtual tag ruleAdmin
POST/api/virtual-tags/previewPreview rule matches before savingAdmin
POST/api/virtual-tags/overrides/importBulk-import virtual tag overridesAdmin
POST/api/virtual-tags/overrides/rollbackRoll back a previous override importAdmin
GET/api/virtual-tags/effectiveEffective virtual tags for a specific resourceReader

Allocation & Tag Hygiene

MethodRoutePurposeAuth
GET/api/reports/allocationCost allocation reportReader
GET/api/integrations/allocationRead allocation configurationAdmin
PUT/api/integrations/allocationSave allocation configurationAdmin
GET/api/reports/tag-hygieneTag compliance postureReader
GET/api/reports/unit-economicsUnit economics reportReader

Executive Summary

MethodRoutePurposeAuth
GET/api/reports/executive-summaryExecutive summary JSONReader
GET/api/reports/executive-summary/exportExecutive summary XLSX workbookReader

Evidence

MethodRoutePurposeAuth
GET/api/evidence/opportunityDeterministic opportunity evidence package (Markdown or JSON)Reader
GET/api/evidence/cost-anomalyDeterministic cost-anomaly evidence package (Markdown or JSON)Reader

Right-Sizing Recommendations

MethodRoutePurposeAuth
GET/api/recommendations/rightsizingMulti-source VM idle and Advisor-corroborated resize resultsReader
GET/api/recommendations/rightsizing/exportFiltered right-sizing export (CSV or XLSX)Reader
GET/api/recommendations/qualityAdvisor ID, semantic-action, resource-resolution, and actionability reconciliationReader
GET/api/rightsizing/boardsList planning boardsReader
POST/api/rightsizing/boardsCreate a new planning boardAdmin
PUT/api/rightsizing/boards/{board_id}Rename a planning boardAdmin
POST/api/rightsizing/boards/{board_id}/primarySet the primary planning boardAdmin
DELETE/api/rightsizing/boards/{board_id}Delete a planning boardAdmin
POST/api/rightsizing/boards/{board_id}/duplicateDuplicate a planning boardAdmin
GET/api/rightsizing/planRight-sizing plan board stateReader
GET/api/rightsizing/plan/logDecision log for a boardReader
PUT/api/rightsizing/plan/bucketSave a bucket (SKU/strategy/pricing)Admin
DELETE/api/rightsizing/plan/bucketRemove a bucketAdmin
PUT/api/rightsizing/plan/assignmentsMove VMs between bucketsAdmin
POST/api/rightsizing/plan/importImport a planning board from a decisions fileAdmin
GET/api/rightsizing/proposal/statusFlux proposal generation statusReader
POST/api/rightsizing/proposal/refreshForce Flux proposal regenerationAdmin

Opportunities

MethodRoutePurposeAuth
GET/api/opportunitiesUnified, filterable Azure Advisor and Flux Signals findingsReader
GET/api/opportunities/exportCSV or XLSX export using the active opportunity filtersReader
PUT/api/opportunities/lifecycleUpdate opportunity lifecycle statusAdmin

Azure Integration

MethodRoutePurposeAuth
GET/api/integrations/azureAzure integration settings and statusAdmin
PUT/api/integrations/azureSave Azure settingsAdmin
POST/api/integrations/azure/syncStart inventory, Advisor, Flux Intelligence, and Policy synchronizationAdmin
GET/api/integrations/finops-toolkitImported Toolkit versions, checksums, and row countsReader
GET/api/integrations/cost-reconciliationCompare current, historical, and commitment coverage per subscriptionReader
GET/api/integrations/cost-historyDaily cost-history runs, retries, and scope stateReader
GET/api/integrations/cost-coverageDay-level cost completeness ledger (expected vs. ingested days per scope)Reader
GET/api/integrations/telemetry-coverageEstate telemetry coverage with uncovered VMs ranked by spendReader

Intelligence

MethodRoutePurposeAuth
GET/api/intelligence/statusIntelligence assistant availability and model configurationReader
POST/api/intelligence/chatSubmit a conversational request to Flux IntelligenceReader
POST/api/intelligence/feedbackSubmit thumbs-up/down feedback for an intelligence requestReader
POST/api/intelligence/performanceAttach browser round-trip and render timing to an intelligence requestReader
GET/api/intelligence/reviewRecent prompt, reply, feedback, and stage-timing reviewAdmin
POST/api/client-errorReport a frontend render crash to the application logReader

Semantic Layer & Expert Explorer

MethodRoutePurposeAuth
GET/api/semanticGoverned semantic layer catalog (models, measures, dimensions)Reader
POST/api/semantic/queryExecute a governed semantic queryReader
POST/api/semantic/expertNatural language to validated read-only SQL over governed viewsReader

Operations Health

MethodRoutePurposeAuth
GET/api/operations/healthSource, worker, cost-completeness, and recommendation healthAdmin
GET/api/operations/pipelineEnd-to-end pipeline status: queue age, publication currency, throttle stateAdmin
GET/api/operations/sloCurrent SLO evaluations with tracked transition stateAdmin
GET/api/telemetry/statusTelemetry collection status summaryReader
GET/api/telemetry/resourceGoverned telemetry evidence for a specific resourceReader
GET/api/signals/aged-snapshotsResources whose inventory snapshot exceeds the configured age thresholdReader

Administration

MethodRoutePurposeAuth
GET/api/admin/ai-configRead AI intelligence provider and model configurationAdmin
PUT/api/admin/ai-configSave AI intelligence provider and model overridesAdmin
GET/api/admin/jobsSource freshness and on-demand triggerable jobsAdmin
POST/api/admin/jobs/runTrigger an on-demand source run (inventory, advisor, intelligence, policy)Admin
GET/api/admin/database-healthDuckDB file and table healthAdmin
GET/api/admin/auditConfiguration change audit logAdmin
GET/api/admin/retentionRead-only view of data retention windowsAdmin
POST/api/dev/seedSeed demo data into an empty database (only when FLUX_DEV_SEED=true)Admin

Remediation

MethodRoutePurposeAuth
GET/api/remediation/servicenow-packageRemediation task package (JSON, CSV, or ServiceNow script)Admin
GET/api/remediation/statusCurrent remediation task statusAdmin
POST/api/remediation/reconcileReconcile external remediation updatesAdmin
Additional endpoints exist for virtual tags, the governed semantic layer, and remediation workflows. See their respective dedicated pages for full parameter documentation and examples. Interactive API documentation with a live try-it-out interface is also available at /docs.

Build docs developers (and LLMs) love