kelvin.memory.v1alpha1.MemoryService
Unary RPCs:
Upsert(UpsertRequest) -> UpsertResponseQuery(QueryRequest) -> QueryResponseRead(ReadRequest) -> ReadResponseDelete(DeleteRequest) -> DeleteResponseHealth(HealthRequest) -> HealthResponse
Source: crates/kelvin-memory-api/proto/kelvin/memory/v1alpha1/memory.proto
- Local/dev defaults use
http://127.0.0.1:50051. - Production is expected to use
https://...with TLS configured on controller. - Optional mTLS can be enabled by configuring controller client-CA and client cert/key on root-side client.
- Root client JWT signing key:
KELVIN_MEMORY_SIGNING_KEY_PEMorKELVIN_MEMORY_SIGNING_KEY_PATH- or
KELVIN_MEMORY_SIGNING_KMS_KEY_IDwith optionalKELVIN_MEMORY_SIGNING_KMS_REGION - Root client TLS knobs:
KELVIN_MEMORY_RPC_TLS_CA_PEMorKELVIN_MEMORY_RPC_TLS_CA_PATHKELVIN_MEMORY_RPC_TLS_DOMAIN_NAMEKELVIN_MEMORY_RPC_TLS_CLIENT_CERT_PEMorKELVIN_MEMORY_RPC_TLS_CLIENT_CERT_PATHKELVIN_MEMORY_RPC_TLS_CLIENT_KEY_PEMorKELVIN_MEMORY_RPC_TLS_CLIENT_KEY_PATH
For KMS-backed signing, controller verification still uses an exported public key via
KELVIN_MEMORY_PUBLIC_KEY_PEM or KELVIN_MEMORY_PUBLIC_KEY_PATH.
Every request includes RequestContext:
delegation_token(JWT)request_id(idempotency key)tenant_idworkspace_idsession_idmodule_id
Controller requires strict equality between context fields and token claims.
Signed JWT claims include:
- core:
iss,sub,aud,jti,exp,nbf - tenancy:
tenant_id,workspace_id,session_id - module scope:
module_id,allowed_ops,allowed_capabilities - limits:
request_limits.timeout_ms,request_limits.max_bytes,request_limits.max_results
request_id is used for response deduplication in controller cache. Replays by JWT jti are denied.
- package and service name are fixed for
v1alpha1. - request/response field numbers are append-only.
- required compatibility checks run from
kelvin-memory-apidescriptor tests.
Controller maps to gRPC status codes:
InvalidInput -> INVALID_ARGUMENTNotFound -> NOT_FOUNDTimeout -> DEADLINE_EXCEEDEDBackend -> UNAVAILABLE
Client maps these to KelvinError categories for root callers.