trustgraph/trustgraph-base/trustgraph/api
Cyber MacGeddon a04bb9854c feat: global usernames and rename workspace to default_workspace
Users are global entities, not scoped to workspaces. This change:

Track A — Global usernames:
- Change iam_users_by_username to PRIMARY KEY (username), removing
  workspace from the lookup key
- Login looks up username globally, no workspace required
- Username uniqueness is enforced globally, not per-workspace
- Login -w now overrides the JWT workspace (session workspace)
  rather than selecting which user registry to search

Track B — Rename workspace to default_workspace:
- UserRecord.workspace → UserRecord.default_workspace
- Identity.workspace → Identity.default_workspace
- JWT claim "workspace" → "default_workspace"
- IamResponse.resolved_workspace → resolved_default_workspace
- WebSocket auth-ok frame field → default_workspace
- Socket clients read default_workspace from auth-ok
- _user_record_to_dict wire key → default_workspace
- CLI help text and output updated throughout
- Test files updated for renamed fields
2026-06-25 16:25:15 +01:00
..
__init__.py feat: workspace-based multi-tenancy, replacing user as tenancy axis (#840) 2026-04-21 23:23:01 +01:00
api.py fix: route workspace through bulk WebSocket clients and merge query params (#970) 2026-06-02 14:19:15 +01:00
async_bulk_client.py fix: route workspace through bulk WebSocket clients and merge query params (#970) 2026-06-02 14:19:15 +01:00
async_flow.py feat: workspace-based multi-tenancy, replacing user as tenancy axis (#840) 2026-04-21 23:23:01 +01:00
async_metrics.py Python API implements streaming interfaces (#577) 2025-12-04 17:38:57 +00:00
async_socket_client.py feat: global usernames and rename workspace to default_workspace 2026-06-25 16:25:15 +01:00
bulk_client.py fix: route workspace through bulk WebSocket clients and merge query params (#970) 2026-06-02 14:19:15 +01:00
collection.py feat: workspace-based multi-tenancy, replacing user as tenancy axis (#840) 2026-04-21 23:23:01 +01:00
config.py feat: workspace-based multi-tenancy, replacing user as tenancy axis (#840) 2026-04-21 23:23:01 +01:00
exceptions.py Structured data 2 (#645) 2026-02-23 15:56:29 +00:00
explainability.py feat: workspace-based multi-tenancy, replacing user as tenancy axis (#840) 2026-04-21 23:23:01 +01:00
flow.py feat: workspace-based multi-tenancy, replacing user as tenancy axis (#840) 2026-04-21 23:23:01 +01:00
knowledge.py CLI auth migration, document embeddings core lifecycle (#913) 2026-05-14 10:30:21 +01:00
library.py fix: library API get/update document round-trip bugs (#893) (#928) 2026-05-16 11:32:51 +01:00
metrics.py Python API implements streaming interfaces (#577) 2025-12-04 17:38:57 +00:00
socket_client.py feat: global usernames and rename workspace to default_workspace 2026-06-25 16:25:15 +01:00
types.py Per-workspace queue routing for workspace-scoped services (#862) 2026-05-04 10:30:03 +01:00