All notable changes to @bonnard/cli will be documented in this file.
bon init --agent <name>— generate templates for a specific coding agent (claude, cursor, codex, windsurf, copilot, cline)- Interactive agent picker when running
bon initwithout--agent - Non-interactive mode detection:
--agentrequired when stdin is not a TTY - Self-hosted env var hints:
bon datasource addprintsCUBEJS_DB_*values for.envin self-hosted mode
bon datasource testno longer tries to push datasources in self-hosted mode- Self-hosted
bon datasource addno longer shows misleading "tested during deploy" message
bon init --self-hostedno longer scaffoldsDEPLOY.md— deployment docs now in the public repo README
bon datasource test [name]— test datasource connections via Cube drivers (syncs first, then tests)--no-checkflag forbon deploy— skip connection tests during deploy- Connection testing during
bon deploy— tests all referenced datasources after sync, before uploading files
- Connection testing now routes through Cube's bundled drivers instead of native DB drivers — supports all 7 warehouse types (postgres, redshift, snowflake, bigquery, databricks, duckdb, clickhouse)
bon datasource addnow shows "Connection will be tested duringbon deploy" messaging
--sslflag forbon datasource add— sets SSL mode for Postgres/Redshift (defaults torequire)- SSL Configuration section in
cubes.data-sourcedocs
- SSL not passed to Cube Postgres driver at query time — cloud databases (Neon, Supabase, RDS) now connect correctly
- Get-started skill now pauses between phases — checkpoints after data exploration, persona questions before view design, confirmation before deploy
- Skill templates updated for both Claude and Cursor
- CLI sends
User-Agentheader (bon-cli/<version> node-<version> <os> (<arch>)) on all API calls for usage tracking
- Security docs: added Fly.io to infrastructure vendor table
@bonnard/reactexports map updated for tsdown 0.20.3 (.js→.mjs), fixing Vercel production builds
--no-checkflag forbon deploy— skips datasource validation when editing remote models without local credentials
bon validatewarns when views combine cubes with no join path between them
bon querydocs topic (bon docs cli.query) with full query referencebon schemanow separates time dimensions from regular dimensions- Dashboard viewer source tab with line numbers and copy button
- Query API normalizes
timeDimension→timeDimensionsanddimension→memberaliases - BigQuery credentials passed as parsed object instead of base64 string
- Dashboard build skill requires preview confirmation before deploy
- BigQuery and Databricks driver support in Cube layer
- Safer error handling across CLI commands (annotate, query, deploy, keys, docs)
bon logintimeout increased to 10 minutes for first-time sign-up flows- Redshift case added to dbt connection mapping
bon schema— list deployed views/cubes with measures, dimensions, and segments- BigQuery connection tester (JWT + REST API, no new deps)
<Column>children for DataTable — per-column formatting without comma ambiguity
bon querynow bypasses governance (full access) — only SDK tokens carry group restrictions- Skill templates updated to use
bon schemainstead ofbon docs schema - "Local preview — not deployed" banner added to dashboard viewer
- Slug validation on
bon dashboard deploy— rejects invalid characters before upload - Request timeouts on all API calls — prevents hanging on network issues
- Theme validation on
bon theme set— catches invalid YAML and unknown keys before upload - Updated dashboard skill templates (Claude + Cursor) with BigValue comparison and combo chart examples
- Dashboard docs updated: BigValue comparison props, secondary y-axis, PieChart fmt, theming sidebar
bon theme get/bon theme set/bon theme reset— manage org-wide dashboard themes- Dashboard theming docs (
bon docs dashboards.theming) — palettes, color tokens, cascade
- Buffer polyfill for dashboard viewer in browser environments
- Markdown dashboards —
bon dashboard devfor local preview with live reload,bon dashboard deployfor production - Built-in chart components: BigValue, LineChart, BarChart, AreaChart, PieChart, DataTable
- Interactive inputs: DateRange picker, Dropdown filter with query binding
- Format presets (eur, usd, gbp, chf, pct, num, dates) and raw Excel format codes
- Auto BigValue grouping and Grid layout
- Shareable URLs with filter state in query params
- Unified dashboards —
bon pagecommands renamed tobon dashboard(deploy, list, remove, open) - Public URL path changed from
/p/{org}/{slug}to/d/{org}/{slug} - Dashboards now require login (no longer publicly accessible)
- Removed markdown dashboard documentation from bundled docs
bon pagecommands (replaced bybon dashboard)
- MCP server no longer includes dashboard tools (list, get, deploy, remove, get_dashboard_docs) — use
bon dashboardCLI commands instead - SDK docs now bundled with CLI (
bon docs sdk.browser,bon docs sdk.authentication, etc.)
bon pull— download deployed models from remote to local projectbon page deploy/bon page list/bon page remove/bon page open— deploy HTML dashboards via CLI/bonnard-build-dashboardagent skill for Claude and Cursor — guides building HTML dashboards with the SDK- Browser SDK docs added to
bon docstopics
- Security context and governance documentation (
bon docs security-context)
- Chart y-axis formatting when
yFmtis specified
bon keys list/bon keys create/bon keys revoke— manage API keys from the CLI- DuckDB and MotherDuck as supported warehouse types (
bon datasource add --type duckdb)
- Fully-qualified field names required everywhere (removed cube shorthand)
- Fixed components doc examples to use fully-qualified field names
- Update check notification —
bonnow checks for newer versions in the background and shows a notice after command output
- CI publish workflow fixes (sync + provenance)
- CI publish workflow with npm provenance for verified builds
- MCP dashboard tools: list, get, deploy, remove dashboards, get dashboard docs
- Dashboard versioning — version snapshots created on dashboard create/update
- Open-source CLI repository at
github.com/bonnard-data/bonnard-cli
- Getting-started docs now lead with
npxas primary install method - Added
repositoryandlicensefields to package.json - README updated with open-source callout and GitHub link
bon metabase explorenow accepts names (not just IDs) for table, card, dashboard, database, and collection lookups- Disambiguation output when a name matches multiple resources (shows IDs with context)
- Table IDs included in
bon metabase analyzereport (Table Inventory and Most Referenced Tables sections)
- Design guide: removed "5-10 views" target — governance policies control per-user view access, so build as many views as audiences need
- README for npm package page
- TypeScript error in
metabase explorecommand (null check on database metadata)
/bonnard-design-guideskill — 7 design principles for building semantic layers that work well for AI agents (question-first design, audience-centric views, filtered measures, descriptions as discovery API, natural language testing, iteration)- Design principles summary inlined in project rules (always loaded in agent context)
/bonnard-get-startedskill — added filtered measure example, audience-centric view naming, navigational descriptions, natural language testing step/bonnard-metabase-migrateskill — added filtered measure guidance from card WHERE clauses, audience-centric view examples, natural language verification step- Demo data reference updated — added
dim_channel,return_quantity,return_amountto Contoso table descriptions
- Redshift as first-class warehouse type (
bon datasource add --type redshift) - Redshift auto-detection from dbt profiles and environment variables
bon deploynow always syncs all local datasources to remote (upsert), replacing the interactive push flow- Datasource API endpoint changed from insert to upsert (stale remote configs are updated automatically)
- Removed
--push-datasourcesflag frombon deploy(no longer needed)
bon datasource testandbon datasource pushCLI commands —bon deployhandles both automatically
- Agent skill templates now show non-interactive
bon datasource addflags (avoids interactive prompt timeouts) - Removed stale "test connection" hints from
bon datasource addoutput
bon metabase connect— configure Metabase API connectionbon metabase explore— browse databases, collections, cards, dashboards, tablesbon metabase analyze— generate analysis report for semantic layer planning- Metabase migration agent skill (
/bonnard-metabase-migrate) for Claude, Cursor, and Codex - Analysis report now includes "How to Use This Report" guidance section
- Shared agent template (
bonnard.md) now lists metabase commands and links to migration skill
- Replaced
@cubejs-backend/schema-compiler(79 MB) with lightweight Zod v4 validator (~60 KB) bon validatenow provides field-level error messages with file context- Identifier validation (cube/measure/dimension names must match
[_a-zA-Z][_a-zA-Z0-9]*) - Refresh key interval validation (
everymust match pattern like1 hour,30 minutes)
- Unit and integration tests for YAML schema validation
bon deployments— list deployment history (--allfor full history)bon diff <id>— view changes in a deployment (--breakingfor breaking only)bon annotate <id>— add notes and context to deployment changesbon deploynow requires-m "message"and detects changes vs previous deployment- Deploy output shows added, modified, removed, and breaking changes
- Agent templates updated with deployment versioning, change tracking, and best practices
bon validateimproved with better error detail and field-level validation
- CLI login now works for first-time users without existing org
bon docstopic resolution improvements
bon docs --search demonow finds getting-started guide (was only searching modeling topics)bon docs getting-startednow works as a topic
- Agent skills and getting-started guide now use Contoso demo data examples throughout (sales cube, not generic orders)
- Phase 2 (Explore) now instructs agents to discover schema before creating cubes
- Fixed
bon querysyntax in getting-started docs (was using non-existent--measuresflag)
bon datasource add --demo— adds a read-only Contoso retail dataset for testing without a warehouse- Demo data references in getting-started guide, agent skills (Claude/Cursor), and shared bonnard.md template
- Replaced multiple agent skills with single
bonnard-get-startedwalkthrough for Claude, Cursor, and Codex - Security hardening: input validation, auth fixes
- Removed
workspace:*dependency that broke npm installs
- Embedded documentation via
bon docs— browse cubes, views, measures, dimensions, joins bon docs --searchfor keyword search across topicsbon docs schemafor JSON schema outputbon initdetects dbt projects and configures agent context accordingly
bon mcpandbon mcp testcommands for MCP server setup and connectivity testing- MCP token persistence in
.bon/
bon whoamiwith--verifyflag- Codex agent support in
bon init
bon datasource push— sync local datasources to Bonnard serverbon query— query deployed semantic layer (JSON and SQL formats)
bon datasource test— test warehouse connectivitybon datasource listandbon datasource remove
bon datasource add— interactive and non-interactive modesbon datasource add --from-dbt— import from dbt profiles.ymlbon validateandbon deploycommands
- Initial release:
bon init,bon login,bon logout - Project scaffolding with cubes/, views/, .bon/ structure
- Agent template generation (Claude, Cursor)