/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.