Environment Patterns
An environment maps to whatever boundary your organization wants a stable, separately-governed configuration around. Three patterns cover most teams — and they compose.Pattern 1: Department or Team Environments
Give each department or team — finance, HR, RevOps, marketing — its own environment, with the connections, packages, and access that team owns. This mirrors how data and responsibility are already split across your organization.- Departments own distinct data sources and databases
- Access should be scoped to each team (finance data stays with finance)
- Teams model and publish independently, on their own cadence
- Access control follows your org structure — grant a team access to its environment
- Connections are isolated per department, so one team’s data isn’t exposed to another
- Each team can hold multiple packages that share the environment’s connections
Pattern 2: Development-Stage Environments
Use separate environments for the stages of your delivery lifecycle — development, staging, and production — and optionally a private environment per developer for isolated iteration.- You have different database connections for each stage
- You want to test models against non-production data before promoting
- Individual developers need a sandbox that won’t disturb shared environments
- Iterate in a private (or
dev) environment against dev connections - Publish and test a new version in
dev, then promote it tostaging - After validation, publish to
prodand pin as latest
Pattern 3: Hybrid (Department × Stage)
Combine the two: give each department its own set of stage environments. This is common once several teams each need an independent delivery lifecycle.- Multiple departments each own their data and need dev/prod separation
- Teams promote changes independently without coordinating a shared release
Versioning Best Practices
Version Numbering
Use semantic versioning inpublisher.json:
- Major (1.x.x): Breaking changes (rename fields, remove views)
- Minor (x.2.x): New features (add dimensions, new views)
- Patch (x.x.3): Bug fixes, documentation
Publish, Validate, Promote
Every publish creates a new immutable version, and the version pinned as latest is what consumers get by default — see Publishing for the mechanics, including auto-promote and auto-archive. The safe release habit is a two-step process:- Publish & validate: Publish the new version without pinning. Test and validate with a small group who explicitly request the new version.
- Pin as latest: Once validated, pin the version as latest to serve it to everyone as the default.
Next Steps
Your environment structure is settled — start building, or go deeper on governance:Modeling Overview
Start building semantic models with your agent
Permissions
Learn how permissions work across environments and packages
CI/CD Setup
Automate deployments with CI/CD workflows