/docs/concepts/orgs-projects
Organizations & projects
Tenancy in obsrv is two levels deep: an organization owns one or more projects, and every project owns its own API keys, traces, and storage path.
Hierarchy
Organization (org)
└── Project (project)
├── API keys (scoped to project)
├── Traces (BQ + GCS)
├── Metrics (Postgres)
├── Clusters (Postgres)
├── Annotations (Postgres)
└── Saved filters (Postgres)Storage path contract
Every artifact under your project follows the path:
orgs/{org_id}/projects/{project_id}/traces/{trace_id}…This is the contract that makes data export, deletion, and retention enforceable. It also makes per-tenant audits trivial.
Cross-project access
Users can belong to multiple organizations and view multiple projects. API keys cannot — a key is bound to one project for life.
Best practice
- One project per environment (
prod,staging,dev) per agent. - One API key per service that emits traces.
- Use metadata, not project, to slice by user, release, or feature flag.