TechFabricTechFabricRadar

Customer cost-plane install

Install Radar cost control without always-on paid Databricks — Cloudflare edge, Free Edition certification, customer workspace ingest.

Placement rules

SurfaceWhere
Docs + public agent APICloudflare (radar.fabric.pro)
Console UICustomer Databricks App or self-hosted Node; TechFabric uses pnpm console:dev
Live system.billing ingestCustomer workspace or Free Edition (fabric-free) only
Paid TechFabric workspaceGTM Brain production only — never Radar cost ingest

See TechFabric vault:

  • FABRIC_DATABRICKS_COST_CONTROL_AND_FREE_EDITION_RUNBOOK.md
  • FABRIC_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 display

Schedules (worker)

Registered at worker start:

Schedule idCron defaultWorkflow
radar-evaluator-sweep*/15 * * * *SLO evaluators
radar-cost-control-sweep*/30 * * * *Budget → anomaly
radar-cost-triage0 * * * *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

  1. pnpm console:dev/acme-data/cost shows charts and budgets
  2. Request stop on a running non-prod resource → intervention appears
  3. runCostControlSweep raises budget anomaly when ceiling is tight
  4. Paid profile deploy refused without RADAR_ALLOW_PAID_DEPLOY=1
  5. Live ingest disabled when profile is fabric-harness

On this page