List Knowledge Bases
GET /knowledge-basesEvery base the caller can see, newest first.
The filters are the four annex 05 §6 names — q, kind, agent_id, scope —
plus three an operator actually reaches for:
is_frozenanswers “why is nothing landing in this base”, which is otherwise unanswerable without opening every base one at a time. It is a state every write path reads (D-646’s argument for making freezing a field), so it is the one boolean on the row that changes what the system does.subject_kind+subject_idare the compliance path. Annex 10 §12 erases a person across every base; beforePOST /knowledge/subject-purgeruns irreversibly, somebody has to be able to see what it is about to touch.ix_knowledge_base_subjectexists for exactly this pair.owner_persona_idis the same question one tenancy level up. An agent serving N tenants as N personas keeps one base per tenant, and “which bases are this tenant’s” is the only way to audit that separation from outside a run.
is_private is not a filter, deliberately: it is not a property a caller chooses to
see by, it is the reason a base is absent. A private base belongs to one agent, and a
human caller — nobody’s owner — never sees one at all. Asking with agent_id is what
reveals that agent’s own private bases, which is the same rule its runs get.
Parameters
Section titled “Parameters”| Name | In | Type | Notes | |
|---|---|---|---|---|
q | query | string | null | optional | substring of slug or name; not a search |
kind | query | string | null | optional | routing label for dynamic grants |
scope | query | workspace | organization | platform | null | optional | the base’s ceiling |
agent_id | query | string (uuid) | null | optional | bases this agent can reach: owner plus explicit and dynamic grants |
is_frozen | query | boolean | null | optional | frozen bases refuse every write path |
subject_kind | query | user | guest | null | optional | — |
subject_id | query | string | null | optional | the subject a base belongs to; the erasure entry point |
owner_persona_id | query | string (uuid) | null | optional | the overlay a base belongs to |
include | query | string | null | optional | comma-separated; only ‘curation_counts’ |
limit | query | integer | optional | Default 50. min 1 max 200 |
cursor | query | string | null | optional | — |
offset | query | integer | null | optional | min 0 |
Responses
Section titled “Responses”| Status | Description | Body |
|---|---|---|
200 | Successful Response | Page_KnowledgeBaseView_ |
422 | Validation Error | HTTPValidationError |
Example
Section titled “Example”curl -X GET https://your-deployment.example.com/knowledge-bases \ -H "Authorization: Bearer $COBRE_TOKEN"Response — Page_KnowledgeBaseView_
Section titled “Response — Page_KnowledgeBaseView_”| Field | Type | Notes | |
|---|---|---|---|
items | KnowledgeBaseView[] | required | — |
next_cursor | string | null | optional | — |
total | integer | null | optional | — |