Controller exposes feature-based provider profiles:
profile_minimal:provider_sqlite(+ in-memory runtime provider)profile_iphone:provider_sqlite,provider_object_store,provider_vector_metalprofile_linux_gpu:provider_sqlite,provider_object_store,provider_vector_nvidia
Examples:
cargo build -p kelvin-memory-controller --no-default-features --features profile_minimal
cargo build -p kelvin-memory-controller --no-default-features --features profile_iphone
cargo build -p kelvin-memory-controller --no-default-features --features profile_linux_gpuController environment:
KELVIN_MEMORY_CONTROLLER_ADDRKELVIN_MEMORY_PUBLIC_KEY_PEMKELVIN_MEMORY_PUBLIC_KEY_PATHKELVIN_MEMORY_ISSUERKELVIN_MEMORY_AUDIENCEKELVIN_MEMORY_PROFILEKELVIN_MEMORY_CLOCK_SKEW_SECSKELVIN_MEMORY_REPLAY_WINDOW_SECSKELVIN_MEMORY_DEFAULT_TIMEOUT_MSKELVIN_MEMORY_DEFAULT_FUELKELVIN_MEMORY_MAX_MODULE_BYTESKELVIN_MEMORY_MAX_MEMORY_PAGESKELVIN_MEMORY_DEFAULT_MAX_RESPONSE_BYTESKELVIN_MEMORY_ALLOW_INSECURE_NON_LOOPBACKKELVIN_MEMORY_TLS_CERT_PEMorKELVIN_MEMORY_TLS_CERT_PATHKELVIN_MEMORY_TLS_KEY_PEMorKELVIN_MEMORY_TLS_KEY_PATHKELVIN_MEMORY_TLS_CLIENT_CA_PEMorKELVIN_MEMORY_TLS_CLIENT_CA_PATH(optional mTLS)
Root-side client signing can use:
KELVIN_MEMORY_SIGNING_KEY_PEMorKELVIN_MEMORY_SIGNING_KEY_PATHKELVIN_MEMORY_SIGNING_KMS_KEY_IDwith optionalKELVIN_MEMORY_SIGNING_KMS_REGION
GitHub Actions validation can use the workflow
.github/workflows/memory-kms-smoke.yml, which assumes the configured
AWS IAM role via GitHub OIDC.
The controller does not call KMS directly; it verifies against the exported public key PEM configured above.
Network safety default:
- Controller refuses non-loopback plaintext binds unless either:
- TLS cert/key are configured, or
KELVIN_MEMORY_ALLOW_INSECURE_NON_LOOPBACK=trueis explicitly set.- Use insecure override only behind a trusted boundary (private VPC + service ACLs) and prefer TLS/mTLS.
- iPhone profile excludes NVIDIA vector feature.
- Linux GPU profile includes NVIDIA vector feature.
- minimal profile stays small and excludes GPU-specialized providers.
Module registration fails fast when required_host_features are unavailable in the current build profile.
Runbooks:
docs/runbooks/memory-jwt-key-rotation.mddocs/runbooks/module-publisher-trust-policy.mddocs/runbooks/memory-module-denial-timeout-storms.md