mrhid6 cbb66c63f6 feat: multi-tenant SaaS — orgs, auth, per-org isolation
Converts Vantage from a single-admin self-hosted app into a multi-tenant
SaaS. Org isolation is org_id row-scoping in one shared deployment and
database; each org gets a subdomain via wildcard DNS, but the hostname is
a routing hint and never an authorization boundary.

- Orgs, users and roles (owner|admin|member) with local password auth,
  first-run bootstrap, and per-org OIDC replacing the global provider
- Redis sessions carrying org and role; host/session mismatch guard
- Every tenant-scoped collection carries org_id; handlers take org from
  the session only, never from client input
- Agent gRPC path resolves org from the servers record, so agent configs
  and the shared gRPC host are unchanged
- Per-org settings and ESO read token, replacing global singletons
- Frontend: login, setup and org settings pages; org-aware AuthProvider
- Migrations 0001-0003 backfill an existing single-tenant instance

Reviewed per task plus a whole-branch and a migration-focused pass.
2026-07-22 11:13:28 +01:00
2026-07-17 16:43:57 +01:00
2026-07-17 16:43:57 +01:00
2026-07-17 16:43:57 +01:00
2026-06-24 15:48:13 +01:00
S
Description
No description provided
9.7 MiB
Languages
JavaScript 63.9%
Go 19.3%
TypeScript 16.6%