supermemory/apps/docs/snippets/api-v5-namespaces.mdx
sohamd22 3b84713097 docs(api): add V3/V4 to V5 migration guide (#1691)
Document every migrated workflow, request and response change, typed-filter conversion, verification strategy, and rollout step so agents can upgrade integrations deterministically.
2026-10-06 16:48:36 +00:00

63 lines
2.5 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}` with `{ "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 `deletedDocumentsCount` and `deletedMemoriesCount`. This removes the namespace and its content.
### Move then remove a namespace
```bash
DELETE /ns/project_alpha
{"moveTo":"project_archive"}
```
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.