Credit: Arthur Keen - this dashboard UI is based on Arthur's onto-extractor repo. I added components for workflows associated with event recognition and GraphML (graphlet detetection and visualization), Genie Chat integration, querying Unity Catalog metadata and enriching it with graph semantics, and a framework for deploying on Databricks with the gateway and other apps.
Unified Databricks App: FastAPI BFF + static Next.js. Genie chat is proxied to arango-mcp-app; Arango data via arango-gateway-app only.
Config: app.yaml — env vars, UC table names, peer app resources. Not .env (.env is gitignored and only for optional local overrides).
Order: gateway → mcp-arango-agent → this app.
# 1. Edit app.yaml (DATABRICKS_SQL_WAREHOUSE_ID, registry tables; keep OPENAI_API_KEY value empty in git)
# 2. export OPENAI_API_KEY=... (or put in .env) before ./deploy_app.sh — injected at deploy only
../arango-gateway-app/deploy_app.sh
../arango-mcp-app/deploy_app.sh
./deploy_app.sh
./scripts/read_uc_peer_registry.shdeploy_app.sh will:
- Declare Model Serving resources in
app.yaml(autograph-llm-serving,autograph-embedding-servingwithCAN_QUERY) and runscripts/grant_autograph_serving_permissions.pyas a fallback ACL repair - Read warehouse id and UC table names from
app.yaml(shell env still overrides) - Inject
OPENAI_API_KEY(and optionalANTHROPIC_API_KEY,OPENAI_BASE_URL) from env/.envintoapp.yamlfor sync only, then restore the empty value locally - Build the Next.js static export (
src/frontend/out) databricks sync+apps deploy- Grant UC
SELECTto the app service principal - Publish this app’s URL to
ARANGO_WORKFLOW_REGISTRY_TABLE
Runtime: scripts/start-databricks-app.sh — single uvicorn process serves API + static UI (no separate frontend process in Databricks).
Not required for deployment. Optional helpers:
| Target | Purpose |
|---|---|
make build-static |
Same frontend build as deploy_app.sh |
make test |
Unit tests |
make lint |
ruff / mypy |
There is no make dev, make infra, or make backend — local two-process dev was removed in favor of Databricks-only delivery.
arango-workflow-app/
app.yaml # Databricks Apps config (source of truth)
deploy_app.sh # sync + deploy + UC grants (reads app.yaml)
scripts/start-databricks-app.sh
src/app/ # FastAPI
src/frontend/ # Next.js → static export at deploy time
tests/
| Path | Description |
|---|---|
/, /dashboard, … |
OntoExtract UI (static export) |
/api/v1/* |
OntoExtract REST API |
/api/workflow/* |
BFF: gateway embed, Genie → mcp-app, /ontoextract/v1 peer API |
- arango-dashboard-app — shell layout reference
- arango-gateway-app — Arango proxy
- arango-mcp-app — Genie / MCP +
/mcp/aoe
Consider implementing the Open Source Unity Catalog library https://github.com/unitycatalog/unitycatalog