GET /api/integrations/azure
Auth:admin
Returns the current Azure integration settings, including name, tenant ID, auth mode, and the list of configured subscription scopes.
Example response
PUT /api/integrations/azure
Auth:admin
Saves Azure integration settings. Changes take effect on the next synchronization.
Request body (AzureIntegrationUpdate)
Each subscription scope object:
Example request
POST /api/integrations/azure/sync
Auth:admin
Starts an on-demand synchronization of inventory, Azure Advisor, Flux Intelligence, and Azure Policy sources. Returns 202 Accepted immediately; the sync runs asynchronously via the queue-backed worker.
Cost Management is deliberately excluded from this endpoint to avoid competing for the tenant’s Cost Management QPU quota. Cost data is collected by its own independently scheduled daily jobs.
Responses
Example response
GET /api/integrations/cost-reconciliation
Auth:reader
Returns a comparison of current, historical, and commitment coverage per subscription — useful for identifying subscriptions with missing or incomplete cost exports before drawing conclusions from cost totals.
GET /api/integrations/cost-history
Auth:reader
Returns the daily cost-history collection ledger: each run’s completion state, retry attempts, and per-scope status. Use this to verify that cost data is being collected and to identify scopes that have fallen behind or are retrying.
GET /api/integrations/cost-coverage
Auth:reader
Returns a day-level completeness ledger showing expected versus ingested days per scope. Useful for identifying coverage gaps before trusting historical cost trends.
GET /api/integrations/telemetry-coverage
Auth:reader
Returns estate telemetry coverage with uncovered VMs ranked by spend. Identifies which VMs lack sufficient telemetry for right-sizing classification, and the cost exposure of those gaps.
GET /api/integrations/finops-toolkit
Auth:reader
Returns the imported FinOps Toolkit open-data status: versions, checksums, row counts, and import provenance. Flux uses checksum-pinned Microsoft FinOps Toolkit v14 reference datasets.
GET /api/integrations/budget-groups
Auth:reader
Returns budget groups, each representing a named collection of subscriptions with an annual budget amount and currency.
PUT /api/integrations/budget-groups
Auth:admin
Saves the full set of budget groups, replacing any previously configured groups.
Request body (BudgetGroupsUpdate)
Each budget group (
BudgetGroup):
Example request
GET /api/integrations/budgets
Auth:admin
Returns the configured budget targets — monthly amounts per scope (estate-wide or per subscription).
PUT /api/integrations/budgets
Auth:admin
Saves the full set of budget targets, replacing any previously configured targets.
Request body (BudgetTargetsUpdate)
Each target (
BudgetTarget):
Example request
GET /api/integrations/allocation
Auth:admin
Returns the current cost allocation configuration: cost-center tags, shared resource values, and unit economics label settings.
PUT /api/integrations/allocation
Auth:admin
Saves the cost allocation configuration.
Request body (AllocationConfigUpdate)
GET /api/operations/health
Auth:admin
Returns a consolidated operational health report covering source freshness, worker status, cost completeness, and recommendation health for all sources. Use this endpoint to answer “is the pipeline healthy?” without log access.
Response areas
Example response (truncated)
GET /api/operations/pipeline
Auth:admin
Returns end-to-end data-pipeline status in a single call: sync queue and claim ages, publication currency, staged-apply backlog, shared throttle state, and the active snapshot version. Use this to assess whether the pipeline is moving without requiring log access.
GET /api/operations/slo
Auth:admin
Returns current SLO evaluations with tracked transition state. Each objective includes its current value, threshold, breach state, and a runbook reference. The flux-alerts job notifies transitions to the configured webhook.
GET /api/admin/jobs
Auth:admin
Returns the status of all collection jobs, including their last run time, next expected run, and whether they can be triggered on demand. The triggerSource field is set for jobs that can be started via /api/admin/jobs/run.
POST /api/admin/jobs/run
Auth:admin
Enqueues an on-demand run for a triggerable source. Returns 202 Accepted.
Triggerable sources:
Request body (JobRunRequest)
Responses
GET /api/admin/ai-config
Auth:admin
Returns the current AI intelligence configuration: active provider, fast and deep model names, whether an admin override is active, and masked API key status for each provider.
PUT /api/admin/ai-config
Auth:admin
Saves an AI provider and model override. Takes effect immediately for new requests.
Request body (AiIntelligenceConfigUpdate)
GET /api/admin/audit
Auth:admin
Returns the configuration audit log — an ordered list of admin-initiated changes to integration settings, budget targets, virtual tag dimensions, and AI configuration, each with actor attribution and timestamp.
GET /api/admin/database-health
Auth:admin
Returns internal DuckDB health diagnostics: file size, table row counts, last vacuum, and write-lock contention metrics.
GET /api/admin/retention
Auth:admin
Returns the configured data-retention windows as a read-only view of retention policies that are otherwise environment-variable only. Useful for compliance audits without requiring shell access.
Example response
POST /api/dev/seed
Auth:admin
Triggers a one-off demo data seed for development and staging environments. Returns 204 No Content on success. Returns 404 when the FLUX_DEV_SEED environment variable is not enabled — this endpoint is a no-op guard in production deployments where demo seeding is disabled.