A Databricks App powered by AppKit, featuring React, TypeScript, and Tailwind CSS.
Enabled plugins:
- Genie -- AI/BI Genie conversational interface for natural language data queries
- Server -- Express HTTP server with static file serving and Vite dev mode
- Node.js v22+ and npm
- Databricks CLI (for deployment)
- Access to a Databricks workspace
For local development, configure your environment variables by creating a .env file:
cp .env.example .envEdit .env and set the environment variables you need:
DATABRICKS_HOST=https://your-workspace.cloud.databricks.com
DATABRICKS_APP_PORT=8000
# ... other environment variables, depending on the plugins you useThe Databricks CLI requires authentication to deploy and manage apps. Configure authentication using one of these methods:
Interactive browser-based authentication with short-lived tokens:
databricks auth login --host https://your-workspace.cloud.databricks.comThis will open your browser to complete authentication. The CLI saves credentials to ~/.databrickscfg.
Use multiple profiles for different workspaces:
[DEFAULT]
host = https://dev-workspace.cloud.databricks.com
[production]
host = https://prod-workspace.cloud.databricks.com
client_id = prod-client-id
client_secret = prod-client-secretDeploy using a specific profile:
databricks bundle deploy --profile productionNote: Personal Access Tokens (PATs) are legacy authentication. OAuth is strongly recommended for better security.
npm installRun the app in development mode with hot reload:
npm run devThe app will be available at the URL shown in the console output.
Build both client and server for production:
npm run buildThis creates:
dist/server.js- Compiled server bundleclient/dist/- Bundled client assets
Run the production build:
npm startThere are a few commands to help you with code quality:
# Type checking
npm run typecheck
# Linting
npm run lint
npm run lint:fix
# Formatting
npm run format
npm run format:fixUpdate databricks.yml with your workspace settings:
targets:
default:
workspace:
host: https://your-workspace.cloud.databricks.comMake sure to replace all placeholder values in databricks.yml with your actual resource IDs.
databricks bundle validateDeploy to the default target:
databricks bundle deployStart the deployed app:
databricks bundle run <APP_NAME> -t dev- Configure the production target in
databricks.yml - Deploy to production:
databricks bundle deploy -t prod* client/ # React frontend
* src/ # Source code
* public/ # Static assets
* server/ # Express backend
* server.ts # Server entry point
* routes/ # Routes
* shared/ # Shared types
* databricks.yml # Bundle configuration
* app.yaml # App configuration
* .env.example # Environment variables example
- Backend: Node.js, Express
- Frontend: React.js, TypeScript, Vite, Tailwind CSS, React Router
- UI Components: Radix UI, shadcn/ui
- Databricks: AppKit SDK