supermemory/apps/docs/snippets/api-v5-namespaces.mdx
sohamd22 ef5a085a76 docs(api): document v5 parameter placement (#1770)
Docs for supermemoryai/mono#3421: ingest `taskType`/`dreaming` move into the JSON body (form fields on file routes, alongside `fileType`/`mimeType`); namespace delete takes `moveTo` as a query param and rejects a body. Adds a "where parameters live" rule to the migration overview.
2026-10-06 17:06:37 +00:00

61 lines
2.6 KiB
Text

v5 renames the public isolation boundary from container tag to namespace. Existing values remain valid identifiers; no stored data rename is required.
### Endpoint mapping
| Legacy | v5 |
| --- | --- |
| `GET /v3/container-tags/list` | `GET /namespaces` |
| `GET /v3/container-tags/{tag}` | `GET /ns/{namespace}` |
| `PATCH /v3/container-tags/{tag}` | `PATCH /ns/{namespace}` |
| `DELETE /v3/container-tags/{tag}` | `DELETE /ns/{namespace}` |
| Merge container tags | `DELETE /ns/{source}?moveTo=target` |
`GET /ns` is an alias for `GET /namespaces`. Prefer `/namespaces` in new integrations.
### List namespaces
Each entry now exposes `id`, `namespace`, `documentCount`, `memoryCount`, nullable `description`, and `system.createdAt/updatedAt`. Update readers that still expect `containerTag`, flat timestamps, or unbounded internal settings.
### Read and update settings
<CodeGroup>
```bash Legacy
PATCH /v3/container-tags/project_alpha
{"entityContext":"Research project for distributed systems"}
```
```bash v5
PATCH /ns/project_alpha
{"supportingContext":"Research project for distributed systems"}
```
</CodeGroup>
The public GET and PATCH shapes contain only `namespace`, `supportingContext`, and lifecycle timestamps. Profile buckets have their own `/profile/buckets` resource and are not namespace settings.
Send `supportingContext: null` to remove existing context. Omitting the field entirely is invalid because PATCH requires at least one supported setting.
### Permanently delete a namespace
```bash
DELETE /ns/project_alpha
```
With no `moveTo`, deletion is synchronous and returns `200` with `status: "deleted"`, `deletedDocumentsCount`, and `deletedMemoriesCount`. Branch on `status` (`deleted` or `queued`) to tell the two outcomes apart. This removes the namespace and its content.
### Move then remove a namespace
```bash
DELETE /ns/project_alpha?moveTo=project_archive
```
`moveTo` is a query parameter. This returns `202` with `status: "queued"` and `operationId`. The destination must differ from the source. Do not treat acceptance as completed migration.
Legacy merge can accept multiple sources; v5 moves one source per request. Run multi-source migrations sequentially and record each operation independently.
### Verification
- Confirm existing container-tag values resolve unchanged as namespace paths.
- Compare namespace counts with namespace-scoped document and memory lists.
- Verify a permanent delete returns final counts while a move returns `202`.
- Verify restricted callers cannot read or mutate namespaces outside their scope.
- Verify only organization-authorized callers can change settings or lifecycle.