Repositories API
Repositories are the top-level isolation boundary. Each repository has its own set of sources, facts, concepts, and syntheses. Access is controlled via per-repo roles.
List repositories
GET /api/v1/repositories/
Requires auth. Returns repositories the authenticated user can see (owned + shared).
Create repository
POST /api/v1/repositories/
Permission: repository:write.
Body: {name, slug?, description?, database?, tier?}
The database field picks which database (from cfg.Databases) the repo lives in. The picker is gated on rbac.CanPickRepositoryDatabase(uid): a sys admin or any user with repositories.*.manage can pick a non-default database; non-permitted callers are silently overridden to cfg.Isolation.DefaultDatabase. See Architecture > Multi-database.
List presets
GET /api/v1/repositories/presets
Returns available repository presets (preconfigured settings bundles).
Get repository
GET /api/v1/repositories/{repoID}
Permission: repository:read.
Update repository
PUT /api/v1/repositories/{repoID}
Permission: repository:update.
Body: {name?, description?}
Delete repository
DELETE /api/v1/repositories/{repoID}
Permission: repository:delete.
Get my permissions
GET /api/v1/repositories/{repoID}/permissions
Returns the authenticated user's permissions on this repository. Requires auth (no specific permission check — any authenticated user can see their own permissions).
Repository settings
Get settings
GET /api/v1/repositories/{repoID}/settings
Permission: repository:manage. Returns per-repo settings: enabled providers, custom contexts, auto-contribute, registry sync.
Set provider enabled
PUT /api/v1/repositories/{repoID}/settings/providers
Permission: repository:manage.
Body: {provider, enabled}
Add context
POST /api/v1/repositories/{repoID}/settings/contexts
Permission: repository:manage.
Body: {label, description?}
Adds a custom context to the per-repo ontology used by concept extraction. See Concept & Alias Extraction.
Update context
PUT /api/v1/repositories/{repoID}/settings/contexts/{context}
Permission: repository:manage.
Migrate context
POST /api/v1/repositories/{repoID}/settings/contexts/{context}/migrate
Permission: repository:manage. Merges one context's semantics into another (relinks facts/concepts).
Delete context
DELETE /api/v1/repositories/{repoID}/settings/contexts/{context}
Permission: repository:manage.
Contribute all to registry
POST /api/v1/repositories/{repoID}/settings/contribute-all
Permission: repository:manage. Pushes all source decompositions to the optional knowledge registry.
Pull all from registry
POST /api/v1/repositories/{repoID}/settings/pull-all
Permission: repository:manage. Imports pre-computed decompositions from the registry.
Set auto-contribute
PUT /api/v1/repositories/{repoID}/settings/auto-contribute
Permission: repository:manage.
Body: {enabled}