Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions CONTEXT.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# CacheKit

CacheKit is a multi-language caching framework with optional client-side encryption, made of per-language SDKs and the managed CachekitIO backend. This file is the one definition of the terms its specs, decision records and SDKs share. It is informative: where this glossary and a spec differ, the spec wins.
CacheKit is a multi-language caching framework with optional client-side encryption, made of per-language SDKs and the managed CachekitIO backend. This file is the one glossary of the terms its specs, decision records and SDKs share. It is informative: where this glossary and a spec differ, the spec wins.

## Language

Expand Down Expand Up @@ -49,7 +49,7 @@ The namespace named `default`. It holds every cache key that carries neither pre
_Avoid_: global namespace, root namespace, unscoped

**SDK namespace**:
The namespace value a caller sets on an SDK cache to build its generated cache keys. Only cachekit-py's auto mode writes it as an `ns:` prefix, which makes it a namespace. In interop mode it is a validated key segment that can never contain `:` or be `ns` or `nsapi`, so an interop key always lands in the default namespace. Elsewhere it is a client-side key segment, and the key lands in the default namespace unless the key the SDK emits starts with `ns:` or `nsapi:` (in cachekit-ts and cachekit-rs auto mode a value of `ns` or `nsapi` is enough). In cachekit-ts auto mode it also stands in for the function identity.
The namespace value a caller sets on an SDK cache to build its generated cache keys. Only cachekit-py's auto mode writes it as an `ns:` prefix, which makes it a namespace. In interop mode it is a validated key segment that can never contain `:` or be `ns` or `nsapi`, so an interop key always lands in the default namespace. Elsewhere it is a client-side key segment, and the key lands in the default namespace unless the key the SDK emits starts with `ns:` or `nsapi:` (in cachekit-ts auto mode, and on a cachekit-rs key built with `.namespace()`, a value of `ns` or `nsapi` is enough). In cachekit-ts auto mode it also stands in for the function identity.
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
_Avoid_: namespace (on its own, where the server scope could be meant), backend key prefix, tenant

**Invalidation group**:
Expand Down Expand Up @@ -78,7 +78,7 @@ _Avoid_: permission, ACL, scope

**Tenant**:
The server-side owner of a set of cache entries, fixed by the API key at authentication and never by anything in the cache key.
_Avoid_: tenant ID (that is the encryption input), namespace, account, project (the customer-facing name)
_Avoid_: tenant ID (that is the encryption input), namespace, account, project (the customer-facing name, also used in the SaaS API spec)

### Storage

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ layer's own store/retrieve flows are specified in
| [spec/interop-v2.md](spec/interop-v2.md) | Interop v2 compressed-values profile — opt-in LZ4-block + AES-256-GCM cross-SDK values *(DRAFT; no SDK implements it yet)* |
| [spec/file-backend-format.md](spec/file-backend-format.md) | Shared local File backend filename, header, expiry, and fail-closed flag negotiation |
| [spec/intent-presets.md](spec/intent-presets.md) | Intent-preset contract — canonical `minimal` / `production` / `secure` / `io` defaults: TTL, L1 and integrity posture, reliability floor, encryption activation and key input, `io` credentials *(normative; per-SDK conformance and alignment tickets inside)* |
| [CONTEXT.md](CONTEXT.md) | Glossary — the one definition of CacheKit's shared terms, including each meaning of "namespace" *(informative; where it and a spec differ, the spec wins)* |
| [CONTEXT.md](CONTEXT.md) | Glossary — the one glossary of CacheKit's shared terms, including each meaning of "namespace" *(informative; where it and a spec differ, the spec wins)* |
| [sdk-feature-matrix.md](sdk-feature-matrix.md) | Feature parity tracking across Python, Rust, TypeScript, and PHP SDKs |
| [conformance/coverage.md](conformance/coverage.md) | Which normative requirements each SDK's vendored test vectors cover, generated from the requirement index ([how ids work](conformance/README.md)) |
| [decisions/key-rotation.md](decisions/key-rotation.md) | Decision records — master-key rotation via client-side keyring (rationale, rejected options, operator runbooks) |
Expand Down
Loading