Changelog¶
Version history and release notes for Dango.
Version Numbering¶
Dango follows Semantic Versioning:
- MAJOR.MINOR.PATCH (e.g., 1.0.0)
- MAJOR: Breaking changes
- MINOR: New features (backwards compatible)
- PATCH: Bug fixes
Current Version¶
v1.0.0b4¶
Released: June 2026
Status: Beta 4 — bug fix round
See Upgrade Notes for b4 for breaking changes and upgrade steps.
Breaking Changes¶
- GA4 column names: Type suffixes removed (
sessions_integer→sessions,bounce_rate_float→bounce_rate, etc.). Update custom dbt models referencing old names. - Google Ads / GA4 data types:
datecolumns now DATE (were VARCHAR/TIMESTAMPTZ),clicks/impressionsnow INTEGER (were VARCHAR). Requires--full-refreshper source. - GA4 default queries:
eventsandconversionsnow includelandingPagedimension.
Fixes¶
- Scheduler now loads jobs from
schedules.ymlon startup - Staging YML files (
sources_*.yml) no longer overwritten on sync - Cloud file sync now includes
custom_sources/andseeds/ - Backups now include dbt models, custom sources, and
.env - Metabase dashboard export captures all cards
- Sync failures properly logged as errors with status in sync history
- OAuth wizard error handling improvements
resolve_install_source()correctly detects PyPI installs
v1.0.0¶
Released: June 2026
Status: First major release
This is the v1.0.0 release — a complete rewrite and expansion of the Dango platform, adding authentication, cloud deployment, a web UI, scheduled syncs, data governance, and notebooks.
Highlights¶
- 33 data sources (up from 8 wizard-supported in v0.1.0), with 25 in the interactive wizard
- Authentication — password login, TOTP 2FA, API keys, three roles (admin/editor/viewer)
- Cloud deployment — automated DigitalOcean provisioning and Bring Your Own Server (BYOS) support
- Web UI — 16-page dashboard for monitoring syncs, health, data catalog, schedules, and secrets
- Scheduled syncs — APScheduler-based with cron expressions and webhook notifications
- Data governance — schema drift detection, PII scanning (Presidio), data catalog with column descriptions
- Marimo notebooks — integrated reactive notebooks with DuckDB snapshot isolation
- Monitoring — health metrics, sync history, capacity alerts
dango devworkflow — branch-based dbt development with isolated databases- Snapshots — SCD Type 2 change tracking via dbt snapshots, plus DuckDB point-in-time copies
- Metabase SSO bridge — automatic login through the Web UI
What's New by Area¶
Authentication & Security (Phase 2)
- Password authentication with bcrypt hashing
- TOTP-based two-factor authentication
- API key authentication for programmatic access
- Three user roles: admin, editor, viewer (29 permissions)
- Metabase SSO bridge — seamless login through Web UI
- Audit logging for security events
- Credential encryption for OAuth tokens
Cloud Deployment (Phase 3)
dango deploy— automated DigitalOcean droplet provisioning- BYOS (Bring Your Own Server) — deploy to any Ubuntu 22.04 server via SSH
- Caddy reverse proxy with automatic HTTPS (Let's Encrypt)
- Security hardening: fail2ban, SSH key-only, unattended-upgrades
dango remote push— sync config and dbt models to serverdango remote logs,dango remote status,dango remote history- Deploy journal (append-only JSONL) with git guardrails
Data Governance (Phase 4)
- Schema drift detection — alerts when source schemas change
- PII scanning via Microsoft Presidio (targeted entity types)
- Data catalog — browsable table/column inventory
- Column descriptions (user-editable via Web UI)
- Monitor configuration via CLI and Web UI
Scheduling (Phase 5)
- APScheduler-based sync scheduling with cron expressions
dango schedule add/remove/list/enable/disable- Webhook notifications on sync success, failure, or stale data
- Configurable stale data thresholds
- Misfire grace handling for missed schedules
Notebooks (Phase 6)
- Marimo notebook integration
- Built-in templates (EDA, time series, funnel analysis, cohort analysis)
- DuckDB snapshot isolation — notebooks use read-only copies
- Launch from Web UI or CLI (
dango notebook open)
Web UI (Phase 7)
- 16-page web dashboard at
http://localhost:8800 - Dashboard page — sync status overview, health summary
- Sources page — source list, sync history, run syncs
- Models page — dbt model status, run transformations
- Health & Logs page — system health, disk usage, process status
- Catalog page — data catalog browser with search
- Monitoring page — schema drift, PII results, metrics
- Schedules page — manage sync schedules
- Notebooks page — launch and manage Marimo notebooks
- Secrets & Admin page — credential management, user administration
CLI Additions
dango init— project initialization with admin password setupdango deploy/dango remote push— cloud deploymentdango auth— user management (create, list, delete, reset-password)dango oauth— OAuth provider managementdango schedule— sync schedulingdango monitor— monitoring and governancedango notebook— notebook managementdango dev— branch-based dbt developmentdango snapshot— SCD Type 2 snapshots and DuckDB copiesdango upgrade— in-place version upgrades with migrationsdango schedule webhook— webhook notification managementdango config validate— configuration validation
Infrastructure
- DuckDB version alignment checks (startup + pre-commit hook)
- Process separation — syncs run in subprocesses to prevent lock contention
- Single-worker uvicorn for cloud deployments (WebSocket compatibility)
- Smoke test suite (100+ checks)
Breaking Changes from v0.1.0¶
dango initis now required before first use (sets up auth)- Authentication is enabled by default (use
DANGO_ADMIN_PASSWORDenv var for automation) dango sync --source SOURCEsyntax deprecated — usedango sync SOURCE(positional argument)- Metabase credentials now randomly generated and stored in
.dango/metabase.yml - Project structure uses
.dango/directory for configuration (migrated automatically)
Previous Releases¶
v0.1.0¶
Released: December 17, 2025
Status: MVP Release
- 8 wizard-supported data sources (CSV, Stripe, Google Sheets, GA4, Facebook Ads, Google Ads, REST API, dlt Native)
- 25+ additional sources via dlt native configuration
- Auto-generated dbt staging models
- DuckDB warehouse with incremental loading
- Metabase integration with auto-provisioned dashboards
- Dashboard export/import (
dango metabase save/load) - Web UI for monitoring
- OAuth authentication for Google and Facebook sources
v0.0.5¶
Released: December 8, 2025
dango sync --dry-runto preview without executing- Unreferenced custom sources warning
- Better validation output (database check, model count)
Upgrade Guide¶
Upgrading to v1.0.0¶
After upgrading:
- Set an admin password during
dango init - Review your sources — the config format is unchanged, but new features are available
- Access the Web UI at
http://localhost:8800after runningdango start
General Upgrade¶
Release Process¶
How Releases Work¶
- Features developed on feature branches off
main - Merged to
mainafter review - Tagged releases published to PyPI
- Release notes added to this changelog
Release Cadence¶
- Patch releases: As needed for bug fixes
- Minor releases: As features complete
- Major releases: When breaking changes are necessary
Post-v1 Roadmap¶
Planned for future releases:
- Query performance logging and optimization insights
- Health history — 24h/7d trend dashboards
- Python task scheduler / reverse ETL
- REST API provider presets (Shopify, Stripe templates)
- OAuth callback unification
- DuckLake integration (pending maturity evaluation)
Contributing¶
Want to contribute to the next release?
See the Contributing Guide for details.