Customer cost-plane install
Install Radar cost control without always-on paid Databricks — Cloudflare edge, Free Edition certification, customer workspace ingest.
Placement rules
| Surface | Where |
|---|---|
| Docs + public agent API | Cloudflare (radar.fabric.pro) |
| Console UI | Customer Databricks App or self-hosted Node; TechFabric uses pnpm console:dev |
Live system.billing ingest | Customer workspace or Free Edition (fabric-free) only |
| Paid TechFabric workspace | GTM Brain production only — never Radar cost ingest |
See TechFabric vault:
FABRIC_DATABRICKS_COST_CONTROL_AND_FREE_EDITION_RUNBOOK.mdFABRIC_FAMILY_HOSTING_STANDARD.md
UC grants (customer workspace)
Grant the Radar service principal (or SQL warehouse identity) read on:
-- System tables (account must enable billing system tables)
GRANT USE CATALOG ON CATALOG system TO `radar-sp`;
GRANT USE SCHEMA ON SCHEMA system.billing TO `radar-sp`;
GRANT SELECT ON TABLE system.billing.usage TO `radar-sp`;
GRANT SELECT ON TABLE system.billing.list_prices TO `radar-sp`;Environment contract
# Never set paid profile for cost ingest
export RADAR_DATABRICKS_PROFILE=fabric-free # or customer profile
export RADAR_COST_INGEST=1 # enable live path
export RADAR_ALLOW_PAID_COST_INGEST=0 # keep closed
export RADAR_SCHEDULE_ORG_ID=acme-data
export RADAR_COST_TRIAGE_AUTO=0 # set 1 only after dogfood
export RADAR_CONTRACT_PRICE_MULTIPLIER=1 # e.g. 0.65 for contract pricing displaySchedules (worker)
Registered at worker start:
| Schedule id | Cron default | Workflow |
|---|---|---|
radar-evaluator-sweep | */15 * * * * | SLO evaluators |
radar-cost-control-sweep | */30 * * * * | Budget → anomaly |
radar-cost-triage | 0 * * * * | Agent remediation plan (+ optional auto-request) |
MCP / agent tools
import { createRadarMcpTools } from '@fabricorg/radar';
const tools = createRadarMcpTools({
invokeAction: (actionId, params) => runtime.invokeAction(actionId, { ... }),
});Public HTTP (Cloudflare):
curl -s https://radar.fabric.pro/v1/tools
curl -s -X POST https://radar.fabric.pro/v1/tools \
-H 'content-type: application/json' \
-d '{"tool":"radar_cost_summary"}'Smoke checklist
pnpm console:dev→/acme-data/costshows charts and budgets- Request stop on a running non-prod resource → intervention appears
runCostControlSweepraises budget anomaly when ceiling is tight- Paid profile deploy refused without
RADAR_ALLOW_PAID_DEPLOY=1 - Live ingest disabled when profile is
fabric-harness
Cost control plane
Estate burn, per-resource accountability, budgets, forecast, and agent tools — hosted on Cloudflare by default, never always-on paid Databricks.
Deployment
How TechFabric Radar's surfaces are deployed — docs on Cloudflare, console on Databricks Apps, and the control plane on the Fabric Platform Host.