feat: harden community production foundation through story 1.5
This commit is contained in:
@@ -0,0 +1,898 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"generated_by": "crank-config",
|
||||
"fields": [
|
||||
{
|
||||
"semantic_path": "database.url",
|
||||
"env_name": "CRANK_DATABASE_URL",
|
||||
"process": "shared",
|
||||
"value_type": "url",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
"compatibility": "legacy URL form",
|
||||
"rules": [
|
||||
"takes precedence over generated default-valued POSTGRES_HOST/PORT/DB/USER/PASSWORD",
|
||||
"conflicts with any non-default decomposed database value"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "database.host",
|
||||
"env_name": "POSTGRES_HOST",
|
||||
"process": "shared",
|
||||
"value_type": "string",
|
||||
"unit": null,
|
||||
"default": "postgres",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "database.port",
|
||||
"env_name": "POSTGRES_PORT",
|
||||
"process": "shared",
|
||||
"value_type": "u16",
|
||||
"unit": "port",
|
||||
"default": "5432",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 65535,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "database.name",
|
||||
"env_name": "POSTGRES_DB",
|
||||
"process": "shared",
|
||||
"value_type": "string",
|
||||
"unit": null,
|
||||
"default": "crank",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "database.user",
|
||||
"env_name": "POSTGRES_USER",
|
||||
"process": "shared",
|
||||
"value_type": "string",
|
||||
"unit": null,
|
||||
"default": "crank",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "database.password",
|
||||
"env_name": "POSTGRES_PASSWORD",
|
||||
"process": "shared",
|
||||
"value_type": "secret",
|
||||
"unit": null,
|
||||
"default": "configured",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "database.pool.max_connections",
|
||||
"env_name": "POSTGRES_MAX_CONNECTIONS",
|
||||
"process": "shared",
|
||||
"value_type": "u32",
|
||||
"unit": "connections",
|
||||
"default": "20",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 1024,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": [
|
||||
"must be >= min_connections"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "database.pool.min_connections",
|
||||
"env_name": "POSTGRES_MIN_CONNECTIONS",
|
||||
"process": "shared",
|
||||
"value_type": "u32",
|
||||
"unit": "connections",
|
||||
"default": "2",
|
||||
"required": false,
|
||||
"minimum": 0,
|
||||
"maximum": 1024,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": [
|
||||
"must be <= max_connections"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "database.pool.acquire_timeout_ms",
|
||||
"env_name": "POSTGRES_ACQUIRE_TIMEOUT_MS",
|
||||
"process": "shared",
|
||||
"value_type": "u64",
|
||||
"unit": "milliseconds",
|
||||
"default": "5000",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 300000,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "database.pool.idle_timeout_ms",
|
||||
"env_name": "POSTGRES_IDLE_TIMEOUT_MS",
|
||||
"process": "shared",
|
||||
"value_type": "u64",
|
||||
"unit": "milliseconds",
|
||||
"default": "600000",
|
||||
"required": false,
|
||||
"minimum": 1000,
|
||||
"maximum": 86400000,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "database.pool.max_lifetime_ms",
|
||||
"env_name": "POSTGRES_MAX_LIFETIME_MS",
|
||||
"process": "shared",
|
||||
"value_type": "u64",
|
||||
"unit": "milliseconds",
|
||||
"default": "1800000",
|
||||
"required": false,
|
||||
"minimum": 1000,
|
||||
"maximum": 86400000,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "runtime.master_key",
|
||||
"env_name": "CRANK_MASTER_KEY",
|
||||
"process": "shared",
|
||||
"value_type": "secret",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": true,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "runtime.base_url",
|
||||
"env_name": "CRANK_BASE_URL",
|
||||
"process": "shared",
|
||||
"value_type": "url",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "runtime.max_concurrent_unary",
|
||||
"env_name": "CRANK_RUNTIME_MAX_CONCURRENT_UNARY",
|
||||
"process": "shared",
|
||||
"value_type": "u32",
|
||||
"unit": "requests",
|
||||
"default": "64",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 65535,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "cache.backend",
|
||||
"env_name": "CRANK_CACHE_BACKEND",
|
||||
"process": "shared",
|
||||
"value_type": "enum",
|
||||
"unit": null,
|
||||
"default": "memory",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": "redis value is deprecated in favor of valkey",
|
||||
"rules": [
|
||||
"external backend requires cache.url"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "cache.url",
|
||||
"env_name": "CRANK_CACHE_URL",
|
||||
"process": "shared",
|
||||
"value_type": "url",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": [
|
||||
"forbidden with memory backend"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "cache.default_ttl_ms",
|
||||
"env_name": "CRANK_CACHE_DEFAULT_TTL_MS",
|
||||
"process": "shared",
|
||||
"value_type": "u64",
|
||||
"unit": "milliseconds",
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 86400000,
|
||||
"sensitivity": "public",
|
||||
"mode": "deprecated_no_effect",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "outbound.allowed_hosts",
|
||||
"env_name": "CRANK_OUTBOUND_ALLOWED_HOSTS",
|
||||
"process": "shared",
|
||||
"value_type": "host_list",
|
||||
"unit": null,
|
||||
"default": "",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "outbound.denied_hosts",
|
||||
"env_name": "CRANK_OUTBOUND_DENIED_HOSTS",
|
||||
"process": "shared",
|
||||
"value_type": "host_list",
|
||||
"unit": null,
|
||||
"default": "",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": [
|
||||
"deny entries override allow entries"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "outbound.max_response_bytes",
|
||||
"env_name": "CRANK_OUTBOUND_MAX_RESPONSE_BYTES",
|
||||
"process": "shared",
|
||||
"value_type": "u64",
|
||||
"unit": "bytes",
|
||||
"default": "4194304",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 67108864,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.environment",
|
||||
"env_name": "CRANK_ENVIRONMENT",
|
||||
"process": "shared",
|
||||
"value_type": "label",
|
||||
"unit": null,
|
||||
"default": "development",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.log_filter",
|
||||
"env_name": "CRANK_LOG_LEVEL",
|
||||
"process": "shared",
|
||||
"value_type": "string",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.sentry_dsn",
|
||||
"env_name": "CRANK_SENTRY_DSN",
|
||||
"process": "shared",
|
||||
"value_type": "url",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.metrics.enabled",
|
||||
"env_name": "CRANK_METRICS_ENABLED",
|
||||
"process": "shared",
|
||||
"value_type": "bool",
|
||||
"unit": null,
|
||||
"default": "true",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": "yes/no/on/off spellings are deprecated",
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.metrics.bearer_token",
|
||||
"env_name": "CRANK_METRICS_BEARER_TOKEN",
|
||||
"process": "shared",
|
||||
"value_type": "secret",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": [
|
||||
"required when an enabled metrics bind is non-loopback"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.otlp.endpoint",
|
||||
"env_name": "OTEL_EXPORTER_OTLP_ENDPOINT",
|
||||
"process": "shared",
|
||||
"value_type": "url",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.otlp.traces_endpoint",
|
||||
"env_name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT",
|
||||
"process": "shared",
|
||||
"value_type": "url",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": [
|
||||
"overrides generic OTLP endpoint"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.otlp.protocol",
|
||||
"env_name": "OTEL_EXPORTER_OTLP_PROTOCOL",
|
||||
"process": "shared",
|
||||
"value_type": "enum",
|
||||
"unit": null,
|
||||
"default": "http/protobuf",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.otlp.traces_protocol",
|
||||
"env_name": "OTEL_EXPORTER_OTLP_TRACES_PROTOCOL",
|
||||
"process": "shared",
|
||||
"value_type": "enum",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.otlp.timeout",
|
||||
"env_name": "OTEL_EXPORTER_OTLP_TIMEOUT",
|
||||
"process": "shared",
|
||||
"value_type": "duration",
|
||||
"unit": "milliseconds",
|
||||
"default": "10000",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 300000,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.otlp.traces_timeout",
|
||||
"env_name": "OTEL_EXPORTER_OTLP_TRACES_TIMEOUT",
|
||||
"process": "shared",
|
||||
"value_type": "duration",
|
||||
"unit": "milliseconds",
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 300000,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.otlp.headers",
|
||||
"env_name": "OTEL_EXPORTER_OTLP_HEADERS",
|
||||
"process": "shared",
|
||||
"value_type": "headers",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.otlp.traces_headers",
|
||||
"env_name": "OTEL_EXPORTER_OTLP_TRACES_HEADERS",
|
||||
"process": "shared",
|
||||
"value_type": "headers",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.otlp.max_queue_size",
|
||||
"env_name": "OTEL_BSP_MAX_QUEUE_SIZE",
|
||||
"process": "shared",
|
||||
"value_type": "u32",
|
||||
"unit": "spans",
|
||||
"default": "2048",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 65536,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.otlp.max_export_batch_size",
|
||||
"env_name": "OTEL_BSP_MAX_EXPORT_BATCH_SIZE",
|
||||
"process": "shared",
|
||||
"value_type": "u32",
|
||||
"unit": "spans",
|
||||
"default": "512",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 65536,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": [
|
||||
"must be <= max_queue_size"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.otlp.schedule_delay",
|
||||
"env_name": "OTEL_BSP_SCHEDULE_DELAY",
|
||||
"process": "shared",
|
||||
"value_type": "duration",
|
||||
"unit": "milliseconds",
|
||||
"default": "5000",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 300000,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "observability.otlp.export_timeout",
|
||||
"env_name": "OTEL_BSP_EXPORT_TIMEOUT",
|
||||
"process": "shared",
|
||||
"value_type": "duration",
|
||||
"unit": "milliseconds",
|
||||
"default": "30000",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 300000,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.bind",
|
||||
"env_name": "CRANK_ADMIN_BIND",
|
||||
"process": "admin_api",
|
||||
"value_type": "socket",
|
||||
"unit": null,
|
||||
"default": "0.0.0.0:3001",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.metrics_bind",
|
||||
"env_name": "CRANK_ADMIN_METRICS_BIND",
|
||||
"process": "admin_api",
|
||||
"value_type": "socket",
|
||||
"unit": null,
|
||||
"default": "127.0.0.1:9464",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.storage_root",
|
||||
"env_name": "CRANK_STORAGE_ROOT",
|
||||
"process": "admin_api",
|
||||
"value_type": "absolute_path",
|
||||
"unit": null,
|
||||
"default": "/var/lib/crank/storage",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.rate_limit.rps",
|
||||
"env_name": "CRANK_ADMIN_RATE_LIMIT_RPS",
|
||||
"process": "admin_api",
|
||||
"value_type": "u32",
|
||||
"unit": "requests_per_second",
|
||||
"default": "30",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 100000,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.rate_limit.burst",
|
||||
"env_name": "CRANK_ADMIN_RATE_LIMIT_BURST",
|
||||
"process": "admin_api",
|
||||
"value_type": "u32",
|
||||
"unit": "requests",
|
||||
"default": "60",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 1000000,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": [
|
||||
"must be >= admin rate RPS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.invocation_log_retention_days",
|
||||
"env_name": "CRANK_INVOCATION_LOG_RETENTION_DAYS",
|
||||
"process": "admin_api",
|
||||
"value_type": "u32",
|
||||
"unit": "days",
|
||||
"default": "30",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 36500,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.session.secret",
|
||||
"env_name": "CRANK_SESSION_SECRET",
|
||||
"process": "admin_api",
|
||||
"value_type": "secret",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": true,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.password_pepper",
|
||||
"env_name": "CRANK_PASSWORD_PEPPER",
|
||||
"process": "admin_api",
|
||||
"value_type": "secret",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": true,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.session.ttl_hours",
|
||||
"env_name": "CRANK_SESSION_TTL_HOURS",
|
||||
"process": "admin_api",
|
||||
"value_type": "u32",
|
||||
"unit": "hours",
|
||||
"default": "24",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 8760,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.trust_forwarded_headers",
|
||||
"env_name": "CRANK_TRUST_FORWARDED_HEADERS",
|
||||
"process": "admin_api",
|
||||
"value_type": "bool",
|
||||
"unit": null,
|
||||
"default": "false",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": "yes/no/on/off spellings are deprecated",
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.bootstrap.email",
|
||||
"env_name": "CRANK_BOOTSTRAP_ADMIN_EMAIL",
|
||||
"process": "admin_api",
|
||||
"value_type": "string",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": true,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.bootstrap.password",
|
||||
"env_name": "CRANK_BOOTSTRAP_ADMIN_PASSWORD",
|
||||
"process": "admin_api",
|
||||
"value_type": "secret",
|
||||
"unit": null,
|
||||
"default": null,
|
||||
"required": true,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "secret",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.bootstrap.display_name",
|
||||
"env_name": "CRANK_BOOTSTRAP_ADMIN_DISPLAY_NAME",
|
||||
"process": "admin_api",
|
||||
"value_type": "string",
|
||||
"unit": null,
|
||||
"default": "Crank Owner",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "admin.demo_seed",
|
||||
"env_name": "CRANK_DEMO_SEED",
|
||||
"process": "admin_api",
|
||||
"value_type": "bool",
|
||||
"unit": null,
|
||||
"default": "false",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": "yes/no/on/off spellings are deprecated",
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "mcp.bind",
|
||||
"env_name": "CRANK_MCP_BIND",
|
||||
"process": "mcp_server",
|
||||
"value_type": "socket",
|
||||
"unit": null,
|
||||
"default": "0.0.0.0:3002",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "mcp.metrics_bind",
|
||||
"env_name": "CRANK_MCP_METRICS_BIND",
|
||||
"process": "mcp_server",
|
||||
"value_type": "socket",
|
||||
"unit": null,
|
||||
"default": "127.0.0.1:9465",
|
||||
"required": false,
|
||||
"minimum": null,
|
||||
"maximum": null,
|
||||
"sensitivity": "internal",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "mcp.refresh_ms",
|
||||
"env_name": "CRANK_MCP_REFRESH_MS",
|
||||
"process": "mcp_server",
|
||||
"value_type": "u64",
|
||||
"unit": "milliseconds",
|
||||
"default": "5000",
|
||||
"required": false,
|
||||
"minimum": 100,
|
||||
"maximum": 3600000,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "mcp.rate_limit.rps",
|
||||
"env_name": "CRANK_MCP_RATE_LIMIT_RPS",
|
||||
"process": "mcp_server",
|
||||
"value_type": "u32",
|
||||
"unit": "requests_per_second",
|
||||
"default": "60",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 100000,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
},
|
||||
{
|
||||
"semantic_path": "mcp.rate_limit.burst",
|
||||
"env_name": "CRANK_MCP_RATE_LIMIT_BURST",
|
||||
"process": "mcp_server",
|
||||
"value_type": "u32",
|
||||
"unit": "requests",
|
||||
"default": "120",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 1000000,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": [
|
||||
"must be >= MCP rate RPS"
|
||||
]
|
||||
},
|
||||
{
|
||||
"semantic_path": "runtime.max_concurrent_sessions",
|
||||
"env_name": "CRANK_RUNTIME_MAX_CONCURRENT_SESSIONS",
|
||||
"process": "mcp_server",
|
||||
"value_type": "u32",
|
||||
"unit": "sessions",
|
||||
"default": "16",
|
||||
"required": false,
|
||||
"minimum": 1,
|
||||
"maximum": 65535,
|
||||
"sensitivity": "public",
|
||||
"mode": "effective",
|
||||
"compatibility": null,
|
||||
"rules": []
|
||||
}
|
||||
],
|
||||
"deployment_only_fields": [
|
||||
"COMPOSE_PROJECT_NAME",
|
||||
"POSTGRES_PUBLISH_BIND",
|
||||
"POSTGRES_PUBLISH_PORT",
|
||||
"CRANK_ADMIN_API_IMAGE",
|
||||
"CRANK_MCP_SERVER_IMAGE",
|
||||
"CRANK_UI_IMAGE",
|
||||
"CRANK_PUBLISH_BIND",
|
||||
"CRANK_ADMIN_PUBLISH_PORT",
|
||||
"CRANK_MCP_PUBLISH_PORT",
|
||||
"CRANK_UI_PUBLISH_PORT",
|
||||
"VALKEY_PUBLISH_BIND",
|
||||
"VALKEY_PUBLISH_PORT"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user