Skip to content
Docs/Configuration reference
REDAX / CONFIG

Configuration reference

The runtime configuration contract for Redax, including types, defaults, examples, restart behavior, and production implications.

WHYKeep raw customer text outside the model boundary.
WHATA local API that detects, replaces, and records safely.
HOWRun it, send text, pass only returned text onward.
One runtime contract.

These rows mirror the typed Settings model in app/config.py and the deployment reference. Environment names are exact. Most changes require a restart or redeploy because settings are validated at process startup; region, DNS, TLS, and managed Redis plan live outside this application contract.

How to read this page

“Required” describes when the setting is needed, not whether Pydantic supplies a default. Secret values are examples of sources, never credentials. Restart the API and worker together when both consume a value.

REDAX_ENV=prod
REDAX_API_KEYS=inject-from-your-secret-manager
REDAX_HASH_SALT=generate-a-unique-random-value
REDAX_REDIS_URL=rediss://redis.internal:6380/0
REDAX_REDIS_REQUIRED=true
REDAX_TRUSTED_HOSTS=redax.example.com

Use the platform’s secret injection and the exact hostname served by your ingress.

Runtime and network

REDAX_LOG_LEVELStructured log level.
TYPEstring
REQUIREDno
DEFAULTINFO
EXAMPLEINFO
CHANGERestart / redeploy
REDAX_HOSTBind address inside the container.
TYPEstring
REQUIREDno
DEFAULT0.0.0.0
EXAMPLE0.0.0.0
CHANGERestart / redeploy
REDAX_PORTHTTP listen port.
TYPEinteger
REQUIREDno
DEFAULT8000
EXAMPLE8000
CHANGERestart / redeploy
REDAX_ENVProduction requires API keys, trusted hosts, encryption, and a valid policy.
TYPEdev | prod
REQUIREDprod
DEFAULTprod
EXAMPLEprod
CHANGERestart / redeploy
REDAX_SERVICE_NAMEService name used in diagnostics and traces.
TYPEstring
REQUIREDno
DEFAULTredax
EXAMPLEredax-api
CHANGERestart / redeploy
REDAX_TRUSTED_HOSTSExact hostnames accepted by HTTP middleware.
TYPECSV
REQUIREDprod
DEFAULTempty
EXAMPLEredax.example.com
CHANGERestart / redeploy
REDAX_CORS_ORIGINSExplicit browser origins; wildcard is rejected in production.
TYPECSV
REQUIREDno
DEFAULTempty
EXAMPLEhttps://app.example.com
CHANGERestart / redeploy

Redis and shared state

REDAX_REDIS_URLTLS/authenticated Redis for cache, rate limits, idempotency, jobs, and workers.
TYPEURL
REQUIREDshared state
DEFAULTredis://localhost:6379/0
EXAMPLErediss://redis.internal:6380/0
CHANGERestart / redeploy
REDAX_REDIS_REQUIREDReadiness fails when Redis is unavailable.
TYPEboolean
REQUIREDprod recommended
DEFAULTfalse
EXAMPLEtrue
CHANGERestart / redeploy
REDAX_REDIS_NAMESPACEPrevents key collisions when deployments share Redis.
TYPEstring
REQUIREDno
DEFAULTredax
EXAMPLEredax-prod-acme
CHANGERestart / redeploy
REDAX_REDIS_CONNECT_TIMEOUT_SECONDSBounded connection timeout.
TYPEnumber
REQUIREDno
DEFAULT1.0
EXAMPLE1.0
CHANGERestart / redeploy
REDAX_REDIS_SOCKET_TIMEOUT_SECONDSBounded command timeout.
TYPEnumber
REQUIREDno
DEFAULT1.0
EXAMPLE1.0
CHANGERestart / redeploy
REDAX_REDIS_MAX_CONNECTIONSPer-process connection-pool ceiling.
TYPEinteger
REQUIREDno
DEFAULT64
EXAMPLE64
CHANGERestart / redeploy

Detector and policy

REDAX_DETECTORChoose deterministic structured detection or the pinned local model path.
TYPEgliner2 | regex
REQUIREDno
DEFAULTgliner2
EXAMPLEregex
CHANGERestart / redeploy
REDAX_MODEL_CACHELocal model cache; preload it when startup must not fetch.
TYPEpath
REQUIREDmodel mode
DEFAULT./models_cache
EXAMPLE/var/lib/redax/models
CHANGERestart / redeploy
REDAX_MODEL_NAMEPinned Hugging Face model identifier; Redax uses its PII extraction interface.
TYPEstring
REQUIREDmodel mode
DEFAULTfastino/GLiNER2-Guardrails-PII-Multi
EXAMPLEfastino/GLiNER2-Guardrails-PII-Multi
CHANGERestart / redeploy
REDAX_MODEL_REVISIONPin and record the exact revision for reproducible loading.
TYPEstring
REQUIREDmodel mode
DEFAULTpinned commit
EXAMPLEaad696b2f6815e3dfc2d95908129eea5ed598562
CHANGERestart / redeploy
REDAX_MODEL_THRESHOLDModel threshold; validate against your corpus.
TYPE0..1
REQUIREDno
DEFAULT0.5
EXAMPLE0.5
CHANGERestart / redeploy
REDAX_POLICIES_DIRDirectory containing policy YAML files.
TYPEpath
REQUIREDno
DEFAULT./policies
EXAMPLE/etc/redax/policies
CHANGERestart / redeploy
REDAX_DEFAULT_POLICYPolicy loaded and validated before production startup.
TYPEstring
REQUIREDprod
DEFAULTdefault
EXAMPLEdefault
CHANGERestart / redeploy

Audit and privacy

REDAX_AUDIT_BACKENDFile JSONL for local use or bounded metadata-only Redis audit.
TYPEfile | redis
REQUIREDno
DEFAULTfile
EXAMPLEredis
CHANGERestart / redeploy
REDAX_AUDIT_PATHMount durable storage or ship according to retention policy.
TYPEpath
REQUIREDfile backend
DEFAULT./audit.jsonl
EXAMPLE/var/lib/redax/audit.jsonl
CHANGERestart / redeploy
REDAX_AUDIT_REQUIREDFail closed when audit is unavailable or saturated.
TYPEboolean
REQUIREDno
DEFAULTtrue
EXAMPLEtrue
CHANGERestart / redeploy
REDAX_AUDIT_INTEGRITY_KEYHMAC key for verifiable metadata-only records.
TYPEsecret
REQUIREDRedis audit in prod
DEFAULTempty
EXAMPLEsecret-manager-value
CHANGERestart / redeploy
REDAX_AUDIT_FSYNCFsync each file audit line.
TYPEboolean
REQUIREDno
DEFAULTtrue
EXAMPLEtrue
CHANGERestart / redeploy
REDAX_AUDIT_MAX_BYTESRotate file audit at this size.
TYPEinteger
REQUIREDno
DEFAULT1000000000
EXAMPLE1000000000
CHANGERestart / redeploy
REDAX_AUDIT_ROTATION_BACKUPSRotated audit files to retain.
TYPEinteger
REQUIREDno
DEFAULT5
EXAMPLE5
CHANGERestart / redeploy
REDAX_AUDIT_RETENTION_SECONDSAudit retention window.
TYPEinteger
REQUIREDno
DEFAULT7776000
EXAMPLE7776000
CHANGERestart / redeploy
REDAX_AUDIT_REDIS_MAX_EVENTSBounded metadata events in the Redis list.
TYPEinteger
REQUIREDRedis audit
DEFAULT100000
EXAMPLE100000
CHANGERestart / redeploy
REDAX_HASH_SALTUnique deployment value; changes correlation and cache identity.
TYPEsecret
REQUIREDprod
DEFAULTchange-me (rejected)
EXAMPLEsecret-manager-value
CHANGERestart / redeploy

Authentication and limits

REDAX_API_KEYSConfigured client keys; overlap before revocation.
TYPECSV secret
REQUIREDprod
DEFAULTempty
EXAMPLEkey-from-secret-manager
CHANGERestart / redeploy
REDAX_API_KEY_SCOPESOptional least-privilege scopes for configured keys.
TYPEJSON
REQUIREDno
DEFAULTempty
EXAMPLE{key:[redact]}
CHANGERestart / redeploy
REDAX_API_KEY_REVOCATIONSRevokes configured keys during rotation.
TYPECSV secret
REQUIREDno
DEFAULTempty
EXAMPLEold-key
CHANGERestart / redeploy
REDAX_MAX_BODY_BYTESReject request bodies above this byte limit.
TYPEinteger
REQUIREDno
DEFAULT4000000
EXAMPLE4000000
CHANGERestart / redeploy
REDAX_MAX_RESPONSE_BYTESBound buffered response amplification.
TYPEinteger
REQUIREDno
DEFAULT4000000
EXAMPLE4000000
CHANGERestart / redeploy
REDAX_MAX_TEXT_CHARSMaximum text length.
TYPEinteger
REQUIREDno
DEFAULT100000
EXAMPLE100000
CHANGERestart / redeploy
REDAX_MAX_BATCH_CHARSAggregate batch character budget.
TYPEinteger
REQUIREDno
DEFAULT1000000
EXAMPLE1000000
CHANGERestart / redeploy
REDAX_RATE_LIMIT_PER_MINUTEPer-key fixed-window limit; zero disables.
TYPEinteger
REQUIREDno
DEFAULT60
EXAMPLE120
CHANGERestart / redeploy
REDAX_RATE_LIMIT_FAIL_OPENDo not allow traffic through when Redis is unavailable.
TYPEboolean
REQUIREDno
DEFAULTfalse
EXAMPLEfalse
CHANGERestart / redeploy
REDAX_CACHE_TTL_SECONDSResponse-cache lifetime.
TYPEinteger
REQUIREDno
DEFAULT3600
EXAMPLE3600
CHANGERestart / redeploy
REDAX_CACHE_SHAREDShare only with identical hash salt and policy.
TYPEboolean
REQUIREDno
DEFAULTfalse
EXAMPLEfalse
CHANGERestart / redeploy
REDAX_IDEMPOTENCY_TTL_SECONDSReplay window for idempotent requests.
TYPEinteger
REQUIREDno
DEFAULT86400
EXAMPLE86400
CHANGERestart / redeploy

Jobs, streaming, and model execution

REDAX_INFERENCE_CONCURRENCYConcurrent model detector calls per process.
TYPEinteger
REQUIREDno
DEFAULT2
EXAMPLE2
CHANGERestart / redeploy
REDAX_WORKER_CONCURRENCYConcurrent ARQ jobs per worker process.
TYPEinteger
REQUIREDno
DEFAULT1
EXAMPLE2
CHANGERestart / redeploy
REDAX_JOB_PAYLOAD_ENCRYPTION_KEYEncrypts queued payloads; rotation needs a queued-job plan.
TYPEFernet secret
REQUIREDprod
DEFAULTempty
EXAMPLEgenerated Fernet key
CHANGERestart / redeploy
REDAX_JOB_DEAD_LETTER_MAXBounded permanent-failure records.
TYPEinteger
REQUIREDno
DEFAULT1000
EXAMPLE1000
CHANGERestart / redeploy
REDAX_MAX_INFLIGHTAdmitted jobs/inference units.
TYPEinteger
REQUIREDno
DEFAULT32
EXAMPLE32
CHANGERestart / redeploy
REDAX_MAX_JOBS_PER_KEYPer-key job admission ceiling.
TYPEinteger
REQUIREDno
DEFAULT50
EXAMPLE50
CHANGERestart / redeploy
REDAX_MAX_CONCURRENT_REQUESTSPer-process HTTP admission cap.
TYPEinteger
REQUIREDno
DEFAULT128
EXAMPLE128
CHANGERestart / redeploy
REDAX_REQUEST_ADMISSION_TIMEOUT_SECONDSMaximum wait for an admission slot.
TYPEnumber
REQUIREDno
DEFAULT0.01
EXAMPLE0.01
CHANGERestart / redeploy
REDAX_JOB_TTL_SECONDSJob record lifetime in Redis.
TYPEinteger
REQUIREDno
DEFAULT86400
EXAMPLE86400
CHANGERestart / redeploy
REDAX_JOB_STALE_SECONDSRecovery threshold for jobs without state updates.
TYPEinteger
REQUIREDno
DEFAULT300
EXAMPLE300
CHANGERestart / redeploy
REDAX_STREAM_CHUNK_CHARSDefault SSE chunk size.
TYPEinteger
REQUIREDno
DEFAULT2000
EXAMPLE2000
CHANGERestart / redeploy
REDAX_STREAM_CHUNK_BYTESPer-event UTF-8 ceiling.
TYPEinteger
REQUIREDno
DEFAULT4096
EXAMPLE4096
CHANGERestart / redeploy
REDAX_STREAM_TIMEOUT_SECONDSTotal streaming response budget.
TYPEnumber
REQUIREDno
DEFAULT60
EXAMPLE60
CHANGERestart / redeploy
REDAX_REQUEST_TIMEOUT_SECONDSInference/request timeout.
TYPEnumber
REQUIREDno
DEFAULT30
EXAMPLE30
CHANGERestart / redeploy
REDAX_REQUEST_BODY_TIMEOUT_SECONDSTime allowed to receive a chunked body.
TYPEnumber
REQUIREDno
DEFAULT30
EXAMPLE30
CHANGERestart / redeploy
REDAX_SHUTDOWN_TIMEOUT_SECONDSDependency cleanup budget.
TYPEnumber
REQUIREDno
DEFAULT30
EXAMPLE30
CHANGERestart / redeploy
REDAX_MULTI_PASS_MAXMaximum detector passes for multi-pass policies.
TYPEinteger
REQUIREDno
DEFAULT3
EXAMPLE3
CHANGERestart / redeploy
REDAX_PIPELINE_ENABLEDEnable staged regex/model/consensus pipeline.
TYPEboolean
REQUIREDno
DEFAULTtrue
EXAMPLEtrue
CHANGERestart / redeploy
REDAX_PIPELINE_BREAKER_THRESHOLDModel failures before the circuit opens.
TYPEinteger
REQUIREDno
DEFAULT3
EXAMPLE3
CHANGERestart / redeploy
REDAX_PIPELINE_BREAKER_COOLDOWN_SSeconds before a circuit probe.
TYPEnumber
REQUIREDno
DEFAULT5
EXAMPLE5
CHANGERestart / redeploy
REDAX_JOB_RETRY_JITTER_SECONDSMaximum random retry delay.
TYPEnumber
REQUIREDno
DEFAULT1.0
EXAMPLE1.0
CHANGERestart / redeploy

Telemetry

REDAX_METRICS_BY_TENANTReserved; tenant labels are disabled by default.
TYPEboolean
REQUIREDno
DEFAULTfalse
EXAMPLEfalse
CHANGERestart / redeploy
REDAX_OTLP_ENDPOINTOTLP gRPC traces; validate collector privacy and retention.
TYPEURL
REQUIREDno
DEFAULTempty
EXAMPLEhttp://otel-collector:4317
CHANGERestart / redeploy
Platform settings are intentionally separate.

Hosting region, managed Redis HA/backups, workload identity, telemetry retention, DNS, TLS issuer, and SLO thresholds cannot be safe universal environment defaults. Record them with the release and validate them through the production launch gate.