{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://hwlab.pikastech.local/deploy/deploy.schema.json", "title": "HWLAB Deploy Manifest", "type": "object", "required": ["manifestVersion", "environment", "health", "publicEndpoints", "frp", "k3s", "profiles", "services"], "properties": { "manifestVersion": { "type": "string", "pattern": "^v[0-9]+$" }, "environment": { "type": "string", "enum": ["dev"] }, "namespace": { "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" }, "endpoint": { "type": "string", "const": "http://74.48.78.17:16667" }, "health": { "$ref": "#/$defs/health" }, "publicEndpoints": { "$ref": "#/$defs/publicEndpoints" }, "frp": { "$ref": "#/$defs/frp" }, "k3s": { "$ref": "#/$defs/k3s" }, "profiles": { "type": "object", "required": ["dev"], "properties": { "dev": { "$ref": "#/$defs/profile" }, "prod": { "$ref": "#/$defs/profile" } }, "additionalProperties": false }, "lanes": { "$ref": "#/$defs/lanes" }, "services": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/service" } }, "createdAt": { "type": "string", "format": "date-time" } }, "additionalProperties": false, "$defs": { "serviceId": { "type": "string", "enum": [ "hwlab-cloud-api", "hwlab-workbench-runtime", "hwlab-user-billing", "hwlab-project-management", "hwlab-cloud-web", "hwlab-gateway", "hwlab-edge-proxy", "hwlab-agent-skills" ] }, "health": { "type": "object", "required": ["method", "path", "responseFormat"], "properties": { "method": { "type": "string", "const": "GET" }, "path": { "type": "string", "const": "/health/live" }, "responseFormat": { "type": "string", "const": "json" } }, "additionalProperties": false }, "publicEndpoints": { "type": "object", "required": ["frontend", "api"], "properties": { "frontend": { "allOf": [ { "$ref": "#/$defs/publicEndpoint" }, { "properties": { "url": { "const": "http://74.48.78.17:16666" }, "port": { "const": 16666 }, "serviceId": { "const": "hwlab-cloud-web" }, "frpProxy": { "const": "hwlab-dev-cloud-web" } } } ] }, "api": { "allOf": [ { "$ref": "#/$defs/publicEndpoint" }, { "properties": { "url": { "const": "http://74.48.78.17:16667" }, "port": { "const": 16667 }, "serviceId": { "const": "hwlab-edge-proxy" }, "frpProxy": { "const": "hwlab-dev-edge-proxy" } } } ] } }, "additionalProperties": false }, "publicEndpoint": { "type": "object", "required": ["url", "protocol", "host", "port", "serviceId", "frpProxy"], "properties": { "url": { "type": "string", "pattern": "^http://74\\.48\\.78\\.17:1666[67]$" }, "protocol": { "type": "string", "const": "http" }, "host": { "type": "string", "const": "74.48.78.17" }, "port": { "type": "integer", "enum": [16666, 16667] }, "serviceId": { "$ref": "#/$defs/serviceId" }, "frpProxy": { "type": "string", "minLength": 1 } }, "additionalProperties": false }, "frp": { "type": "object", "required": ["server", "proxies"], "properties": { "server": { "type": "object", "required": ["address", "bindPort"], "properties": { "address": { "type": "string", "const": "74.48.78.17" }, "bindPort": { "type": "integer", "const": 7000 } }, "additionalProperties": false }, "proxies": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/frpProxy" } } }, "additionalProperties": false }, "frpProxy": { "type": "object", "required": ["name", "type", "localServiceId", "localHost", "localPort", "remotePort"], "properties": { "name": { "type": "string", "minLength": 1 }, "endpointId": { "type": "string", "enum": ["frontend", "api"] }, "type": { "type": "string", "const": "tcp" }, "localServiceId": { "$ref": "#/$defs/serviceId" }, "localHost": { "type": "string", "pattern": "^[-a-z0-9]+\\.hwlab-dev\\.svc\\.cluster\\.local$" }, "localPort": { "type": "integer", "minimum": 1, "maximum": 65535 }, "remotePort": { "type": "integer", "minimum": 1, "maximum": 65535 } }, "additionalProperties": false }, "k3s": { "type": "object", "required": ["serviceMappings"], "properties": { "serviceMappings": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/k3sServiceMapping" } } }, "additionalProperties": false }, "k3sServiceMapping": { "type": "object", "required": ["serviceId", "name", "namespace", "port", "targetPort"], "properties": { "serviceId": { "$ref": "#/$defs/serviceId" }, "name": { "type": "string", "minLength": 1 }, "namespace": { "type": "string", "const": "hwlab-dev" }, "port": { "type": "integer", "minimum": 1, "maximum": 65535 }, "targetPort": { "type": "string", "const": "http" } }, "additionalProperties": false }, "profile": { "type": "object", "required": ["name", "enabled"], "properties": { "name": { "type": "string", "enum": ["dev", "prod"] }, "enabled": { "type": "boolean" }, "namespace": { "type": "string" }, "endpoint": { "type": "string" }, "notes": { "type": "string" } }, "additionalProperties": false }, "lanes": { "type": "object", "patternProperties": { "^v[0-9]{2,}$": { "$ref": "#/$defs/runtimeLane" } }, "additionalProperties": false }, "runtimeLane": { "type": "object", "required": ["name", "sourceBranch", "gitopsBranch", "namespace", "envReuseServices", "bootScripts", "serviceDeclarations", "envRecipe", "bootConfig"], "properties": { "name": { "type": "string", "pattern": "^v0\\.[0-9]+$" }, "sourceBranch": { "type": "string", "pattern": "^v0\\.[0-9]+$" }, "gitopsBranch": { "type": "string", "pattern": "^v0\\.[0-9]+-gitops$" }, "namespace": { "type": "string", "pattern": "^hwlab-v[0-9]{2,}$" }, "endpoint": { "type": "string" }, "publicEndpoints": { "type": "object", "additionalProperties": { "type": "string" } }, "externalPostgres": { "$ref": "#/$defs/externalPostgres" }, "artifactCatalog": { "type": "string" }, "runtimePath": { "type": "string" }, "imageTagMode": { "type": "string", "enum": ["short", "full"] }, "workbench": { "$ref": "#/$defs/workbenchUiPolicy" }, "agentObserver": { "$ref": "#/$defs/agentObserverPolicy" }, "observability": { "$ref": "#/$defs/runtimeObservabilityPolicy" }, "opencode": { "$ref": "#/$defs/opencodeRuntime" }, "runtimeStore": { "$ref": "#/$defs/runtimeStore" }, "workbenchRuntime": { "$ref": "#/$defs/workbenchRuntime" }, "sourceRepo": { "type": "string" }, "envReuseServices": { "type": "array", "items": { "$ref": "#/$defs/serviceId" }, "uniqueItems": true }, "bootScripts": { "type": "object", "minProperties": 1, "additionalProperties": { "$ref": "#/$defs/repoPath" } }, "serviceDeclarations": { "type": "object", "minProperties": 1, "additionalProperties": { "$ref": "#/$defs/serviceDeclaration" } }, "envRecipe": { "$ref": "#/$defs/envRecipe" }, "bootConfig": { "$ref": "#/$defs/bootConfig" }, "services": { "type": "array", "items": { "$ref": "#/$defs/laneService" } }, "configMaps": { "type": "array", "items": { "$ref": "#/$defs/laneConfigMap" } } }, "additionalProperties": false }, "opencodeRuntime": { "type": "object", "properties": { "providerProfile": { "type": "string", "minLength": 1 }, "providerId": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" }, "displayName": { "type": "string", "minLength": 1 }, "model": { "type": "string", "minLength": 1 }, "smallModel": { "type": "string", "minLength": 1 }, "baseURL": { "type": "string", "minLength": 1 }, "apkProxyURL": { "type": "string", "minLength": 1 }, "npm": { "type": "string", "minLength": 1 }, "apiKeyEnv": { "type": "string", "pattern": "^[A-Z0-9_]+$" }, "apiKeySecretRef": { "type": "string", "pattern": "^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$" }, "contextLimit": { "type": "integer", "minimum": 1 }, "outputLimit": { "type": "integer", "minimum": 1 }, "agentrunSecretNamespace": { "type": "string", "minLength": 1 }, "agentrunSecretName": { "type": "string", "minLength": 1 }, "agentrunSecretKeys": { "type": "array", "items": { "type": "string", "minLength": 1 }, "uniqueItems": true } }, "additionalProperties": false }, "runtimeObservabilityPolicy": { "type": "object", "properties": { "traceExplorerUrlTemplate": { "type": "string", "minLength": 1, "pattern": "\\{trace_id\\}" }, "prometheusOperatorResources": { "type": "boolean" } }, "additionalProperties": false }, "runtimeStore": { "type": "object", "properties": { "postgres": { "$ref": "#/$defs/postgresRuntimeStore" } }, "additionalProperties": false }, "postgresRuntimeStore": { "type": "object", "properties": { "image": { "type": "string", "minLength": 1 }, "sslMode": { "type": "string", "enum": ["disable", "require"] }, "poolMax": { "type": "integer", "minimum": 1 }, "connectionTimeoutMs": { "type": "integer", "minimum": 1 }, "queryTimeoutMs": { "type": "integer", "minimum": 1 }, "queryRetryMaxAttempts": { "type": "integer", "minimum": 1 }, "queryRetryInitialDelayMs": { "type": "integer", "minimum": 0 }, "queryRetryMaxDelayMs": { "type": "integer", "minimum": 0 } }, "additionalProperties": false }, "workbenchRuntime": { "type": "object", "properties": { "client": { "$ref": "#/$defs/workbenchRuntimeClient" }, "sessionsSummary": { "$ref": "#/$defs/workbenchRuntimeSessionsSummary" }, "factsQuery": { "$ref": "#/$defs/workbenchRuntimeFactsQuery" }, "postgres": { "$ref": "#/$defs/workbenchRuntimePostgres" }, "cache": { "$ref": "#/$defs/workbenchRuntimeCache" } }, "additionalProperties": false }, "workbenchRuntimeClient": { "type": "object", "properties": { "timeoutMs": { "type": "integer", "minimum": 1 } }, "additionalProperties": false }, "workbenchRuntimeFactsQuery": { "type": "object", "properties": { "maxAttempts": { "type": "integer", "minimum": 1 }, "backoffBaseMs": { "type": "integer", "minimum": 0 }, "backoffMaxMs": { "type": "integer", "minimum": 1 } }, "additionalProperties": false }, "workbenchRuntimeSessionsSummary": { "type": "object", "properties": { "maxAttempts": { "type": "integer", "minimum": 1 }, "attemptTimeoutMs": { "type": "integer", "minimum": 1 }, "backoffMs": { "type": "integer", "minimum": 0 } }, "additionalProperties": false }, "workbenchRuntimePostgres": { "type": "object", "properties": { "poolMax": { "type": "integer", "minimum": 1 }, "queryTimeoutMs": { "type": "integer", "minimum": 1 }, "readyTimeoutMs": { "type": "integer", "minimum": 1 } }, "additionalProperties": false }, "workbenchRuntimeCache": { "type": "object", "properties": { "redis": { "$ref": "#/$defs/workbenchRuntimeRedisCache" } }, "additionalProperties": false }, "workbenchRuntimeRedisCache": { "type": "object", "required": ["enabled", "namespace", "serviceName", "port", "image", "resources", "memoryPolicy", "ttl", "limits", "timeouts", "metrics", "disableSwitchEnv", "unavailableBehavior"], "properties": { "enabled": { "type": "boolean" }, "namespace": { "type": "string", "pattern": "^hwlab-v[0-9]{2,}$" }, "serviceName": { "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" }, "port": { "type": "integer", "minimum": 1, "maximum": 65535 }, "image": { "type": "string", "minLength": 1 }, "resources": { "$ref": "#/$defs/workbenchRuntimeRedisResources" }, "memoryPolicy": { "$ref": "#/$defs/workbenchRuntimeRedisMemoryPolicy" }, "ttl": { "$ref": "#/$defs/workbenchRuntimeRedisTtl" }, "limits": { "$ref": "#/$defs/workbenchRuntimeRedisLimits" }, "timeouts": { "$ref": "#/$defs/workbenchRuntimeRedisTimeouts" }, "metrics": { "$ref": "#/$defs/workbenchRuntimeRedisMetrics" }, "disableSwitchEnv": { "type": "string", "pattern": "^[A-Z0-9_]+$" }, "unavailableBehavior": { "$ref": "#/$defs/workbenchRuntimeRedisUnavailableBehavior" } }, "additionalProperties": false }, "workbenchRuntimeRedisResources": { "type": "object", "required": ["requests", "limits"], "properties": { "requests": { "$ref": "#/$defs/workbenchRuntimeResourcePair" }, "limits": { "$ref": "#/$defs/workbenchRuntimeResourcePair" } }, "additionalProperties": false }, "workbenchRuntimeResourcePair": { "type": "object", "required": ["cpu", "memory"], "properties": { "cpu": { "type": "string", "minLength": 1 }, "memory": { "type": "string", "minLength": 1 } }, "additionalProperties": false }, "workbenchRuntimeRedisMemoryPolicy": { "type": "object", "required": ["persistence", "maxMemory", "eviction"], "properties": { "persistence": { "type": "string", "enum": ["disabled"] }, "maxMemory": { "type": "string", "minLength": 1 }, "eviction": { "type": "string", "minLength": 1 } }, "additionalProperties": false }, "workbenchRuntimeRedisTtl": { "type": "object", "required": ["sessionsSummaryMs", "terminalTurnMs", "terminalTracePageMs", "runningPageMs"], "properties": { "sessionsSummaryMs": { "type": "integer", "minimum": 0 }, "terminalTurnMs": { "type": "integer", "minimum": 0 }, "terminalTracePageMs": { "type": "integer", "minimum": 0 }, "runningPageMs": { "type": "integer", "minimum": 0 } }, "additionalProperties": false }, "workbenchRuntimeRedisLimits": { "type": "object", "required": ["maxKeyBytes", "maxPayloadBytes"], "properties": { "maxKeyBytes": { "type": "integer", "minimum": 1 }, "maxPayloadBytes": { "type": "integer", "minimum": 1 } }, "additionalProperties": false }, "workbenchRuntimeRedisTimeouts": { "type": "object", "required": ["connectMs", "operationMs"], "properties": { "connectMs": { "type": "integer", "minimum": 1 }, "operationMs": { "type": "integer", "minimum": 1 } }, "additionalProperties": false }, "workbenchRuntimeRedisMetrics": { "type": "object", "required": ["labels"], "properties": { "labels": { "type": "object", "additionalProperties": { "type": "string", "minLength": 1 } } }, "additionalProperties": false }, "workbenchRuntimeRedisUnavailableBehavior": { "type": "object", "required": ["livenessFailure", "readMode", "fallbackStateSource"], "properties": { "livenessFailure": { "type": "boolean" }, "readMode": { "type": "string", "enum": ["db-or-degraded"] }, "fallbackStateSource": { "type": "boolean" } }, "additionalProperties": false }, "workbenchUiPolicy": { "type": "object", "properties": { "traceTimeline": { "$ref": "#/$defs/workbenchTraceTimelinePolicy" }, "rawHwlabEventWindow": { "$ref": "#/$defs/workbenchRawHwlabEventWindowPolicy" } }, "additionalProperties": false }, "workbenchTraceTimelinePolicy": { "type": "object", "properties": { "autoExpandRunning": { "type": "boolean" }, "autoCollapseTerminal": { "type": "boolean" } }, "additionalProperties": false }, "workbenchRawHwlabEventWindowPolicy": { "type": "object", "required": ["enabled", "maxEntries", "maxRetainedBytes"], "properties": { "enabled": { "type": "boolean" }, "maxEntries": { "type": "integer", "minimum": 1 }, "maxRetainedBytes": { "type": "integer", "minimum": 1 } }, "additionalProperties": false }, "agentObserverPolicy": { "type": "object", "required": [ "retentionEventLimit", "retentionScanLimit", "retentionTimeoutMs", "retentionGroupPrefix", "sseHeartbeatMs", "reconnectDelayMs", "batchMaxEvents", "liveBufferLimit", "identityWindowLimit", "reducerEventLimit", "reducerEntityLimit", "treeNodeLimit", "inspectorEventTailLimit", "virtualListWindowLimit", "changeHighlightMs", "staleAfterMs", "reducedMotion" ], "properties": { "retentionEventLimit": { "type": "integer", "minimum": 1 }, "retentionScanLimit": { "type": "integer", "minimum": 1 }, "retentionTimeoutMs": { "type": "integer", "minimum": 250 }, "retentionGroupPrefix": { "type": "string", "minLength": 1 }, "sseHeartbeatMs": { "type": "integer", "minimum": 1000 }, "reconnectDelayMs": { "type": "integer", "minimum": 100 }, "batchMaxEvents": { "type": "integer", "minimum": 1 }, "liveBufferLimit": { "type": "integer", "minimum": 1 }, "identityWindowLimit": { "type": "integer", "minimum": 1 }, "reducerEventLimit": { "type": "integer", "minimum": 1 }, "reducerEntityLimit": { "type": "integer", "minimum": 1 }, "treeNodeLimit": { "type": "integer", "minimum": 1 }, "inspectorEventTailLimit": { "type": "integer", "minimum": 1 }, "virtualListWindowLimit": { "type": "integer", "minimum": 1 }, "changeHighlightMs": { "type": "integer", "minimum": 0 }, "staleAfterMs": { "type": "integer", "minimum": 1000 }, "reducedMotion": { "type": "string", "enum": ["respect-system"] } }, "additionalProperties": false }, "externalPostgres": { "type": "object", "required": ["enabled", "serviceName", "endpointAddress", "port"], "properties": { "enabled": { "type": "boolean" }, "serviceName": { "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" }, "endpointAddress": { "type": "string", "minLength": 1 }, "port": { "type": "integer", "minimum": 1, "maximum": 65535 }, "nodes": { "type": "object", "additionalProperties": { "$ref": "#/$defs/externalPostgresNodeOverride" } } }, "additionalProperties": false }, "externalPostgresNodeOverride": { "type": "object", "required": ["serviceName", "endpointAddress", "port"], "properties": { "serviceName": { "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" }, "endpointAddress": { "type": "string", "minLength": 1 }, "port": { "type": "integer", "minimum": 1, "maximum": 65535 } }, "additionalProperties": false }, "probeTiming": { "type": "object", "properties": { "initialDelaySeconds": { "type": "integer", "minimum": 0 }, "periodSeconds": { "type": "integer", "minimum": 1 }, "timeoutSeconds": { "type": "integer", "minimum": 1 }, "failureThreshold": { "type": "integer", "minimum": 1 }, "successThreshold": { "type": "integer", "minimum": 1 } }, "additionalProperties": false }, "serviceHealthProbe": { "type": "object", "properties": { "readiness": { "$ref": "#/$defs/probeTiming" }, "liveness": { "$ref": "#/$defs/probeTiming" }, "startup": { "$ref": "#/$defs/probeTiming" } }, "additionalProperties": false }, "serviceDeclaration": { "type": "object", "required": ["runtimeKind", "entrypoint", "componentPaths"], "properties": { "runtimeKind": { "type": "string", "enum": ["bun-command", "cloud-web", "skills-bundle", "node-command", "go-service"] }, "entrypoint": { "$ref": "#/$defs/repoPath" }, "artifactKind": { "type": "string", "enum": ["bun-command", "cloud-web", "skills-bundle", "node-command", "go-service"] }, "healthPath": { "type": "string", "pattern": "^/" }, "healthPort": { "type": "integer", "minimum": 1, "maximum": 65535 }, "healthProbe": { "$ref": "#/$defs/serviceHealthProbe" }, "componentPaths": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/repoPath" } }, "env": { "type": "object", "additionalProperties": { "type": "string" } }, "observable": { "type": "boolean" } }, "additionalProperties": false }, "envRecipe": { "type": "object", "required": ["osPackages", "bunVersion", "launcherPath", "runtimeNodeModulesPath", "additionalEnvPaths", "hwpodAliases"], "properties": { "osPackages": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 }, "uniqueItems": true }, "goOsPackages": { "type": "array", "items": { "type": "string", "minLength": 1 }, "uniqueItems": true }, "bunVersion": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+" }, "launcherPath": { "$ref": "#/$defs/repoPath" }, "runtimeNodeModulesPath": { "type": "string", "pattern": "^/" }, "runtimeGoModCachePath": { "type": "string", "pattern": "^/" }, "runtimeGoBuildCachePath": { "type": "string", "pattern": "^/" }, "goToolchain": { "type": "string", "minLength": 1 }, "additionalEnvPaths": { "type": "array", "items": { "$ref": "#/$defs/repoPath" }, "uniqueItems": true }, "hwpodAliases": { "type": "array", "items": { "$ref": "#/$defs/hwpodAlias" } }, "downloadStack": { "type": "object", "additionalProperties": true, "properties": { "goProxy": { "type": "string", "minLength": 1 } } } }, "additionalProperties": false }, "hwpodAlias": { "type": "object", "required": ["command", "script"], "properties": { "command": { "type": "string", "minLength": 1 }, "script": { "$ref": "#/$defs/repoPath" } }, "additionalProperties": false }, "bootConfig": { "type": "object", "required": ["template"], "properties": { "template": { "type": "string", "enum": ["default"] }, "overrides": { "type": "object" } }, "additionalProperties": false }, "laneService": { "type": "object", "required": ["serviceId"], "properties": { "serviceId": { "$ref": "#/$defs/serviceId" }, "env": { "type": "object", "additionalProperties": { "type": "string" } }, "configMapMounts": { "type": "array", "items": { "$ref": "#/$defs/configMapMount" } } }, "additionalProperties": false }, "laneConfigMap": { "type": "object", "required": ["name", "data"], "properties": { "name": { "$ref": "#/$defs/k8sName" }, "labels": { "type": "object", "additionalProperties": { "type": "string" } }, "annotations": { "type": "object", "additionalProperties": { "type": "string" } }, "data": { "type": "object", "minProperties": 1, "additionalProperties": { "type": "string" } } }, "additionalProperties": false }, "configMapMount": { "type": "object", "required": ["name", "configMapName", "mountPath"], "properties": { "name": { "$ref": "#/$defs/k8sName" }, "configMapName": { "$ref": "#/$defs/k8sName" }, "mountPath": { "type": "string", "pattern": "^/" }, "readOnly": { "type": "boolean" }, "items": { "type": "array", "items": { "$ref": "#/$defs/configMapMountItem" } } }, "additionalProperties": false }, "configMapMountItem": { "type": "object", "required": ["key", "path"], "properties": { "key": { "type": "string", "minLength": 1 }, "path": { "type": "string", "minLength": 1, "not": { "pattern": "(^/|(^|/)\\.\\.(/|$))" } } }, "additionalProperties": false }, "k8sName": { "type": "string", "minLength": 1, "maxLength": 63, "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" }, "repoPath": { "type": "string", "minLength": 1, "not": { "pattern": "(^/|(^|/)\\.\\.(/|$))" } }, "service": { "type": "object", "required": ["serviceId", "namespace", "healthPath", "profile"], "properties": { "serviceId": { "$ref": "#/$defs/serviceId" }, "namespace": { "type": "string", "minLength": 1 }, "healthPath": { "type": "string", "pattern": "^/" }, "profile": { "type": "string", "enum": ["dev", "prod"] }, "replicas": { "type": "integer", "minimum": 0 }, "instanceNames": { "type": "array", "items": { "type": "string", "minLength": 1 } }, "identityStrategy": { "type": "string", "enum": ["indexed-workloads"] }, "env": { "type": "object", "additionalProperties": { "type": "string" }, "properties": { "HWLAB_CLOUD_DB_URL": { "type": "string", "const": "secretRef:hwlab-cloud-api-dev-db/database-url" }, "HWLAB_CLOUD_DB_SSL_MODE": { "type": "string", "const": "disable" }, "HWLAB_CLOUD_DB_CONTRACT": { "type": "string", "const": "dev-redacted-presence-only" }, "HWLAB_CLOUD_RUNTIME_ADAPTER": { "type": "string", "const": "postgres" }, "HWLAB_CLOUD_RUNTIME_DURABLE": { "type": "string", "const": "true" }, "HWLAB_CODE_AGENT_PROVIDER": { "type": "string", "const": "codex-stdio" }, "HWLAB_CODE_AGENT_MODEL": { "type": "string", "const": "gpt-5.5" }, "HWLAB_CODE_AGENT_DEFAULT_PROVIDER_PROFILE": { "type": "string", "const": "deepseek" }, "HWLAB_CODE_AGENT_DEEPSEEK_MODEL": { "type": "string", "const": "deepseek-chat" }, "HWLAB_CODE_AGENT_DEEPSEEK_BASE_URL": { "type": "string", "const": "http://hwlab-deepseek-proxy.hwlab-dev.svc.cluster.local:4000/v1/responses" }, "HWLAB_CODE_AGENT_CODEX_API_MODEL": { "type": "string", "const": "gpt-5.5" }, "HWLAB_CODE_AGENT_CODEX_API_BASE_URL": { "type": "string", "const": "http://127.0.0.1:49280/responses" }, "HWLAB_CODE_AGENT_CODEX_API_UPSTREAM_BASE_URL": { "type": "string", "const": "https://hyueapi.com" }, "HWLAB_CODE_AGENT_CODEX_API_FORWARDER_PORT": { "type": "string", "const": "49280" }, "HWLAB_CODE_AGENT_OPENAI_BASE_URL": { "type": "string", "const": "http://127.0.0.1:49280/responses" }, "HWLAB_CODE_AGENT_CODEX_STDIO_ENABLED": { "type": "string", "const": "1" }, "HWLAB_CODE_AGENT_CODEX_STDIO_SUPERVISOR": { "type": "string", "const": "repo-owned" }, "HWLAB_CODE_AGENT_WORKSPACE": { "type": "string", "const": "/workspace/hwlab" }, "HWLAB_CODE_AGENT_CODEX_WORKSPACE": { "type": "string", "const": "/workspace/hwlab" }, "HWLAB_CODE_AGENT_CODEX_SANDBOX": { "type": "string", "const": "danger-full-access" }, "HWLAB_CODE_AGENT_CODEX_COMMAND": { "type": "string", "const": "/app/node_modules/.bin/codex" }, "CODEX_HOME": { "type": "string", "const": "/codex-home" }, "NO_PROXY": { "type": "string" }, "no_proxy": { "type": "string" }, "OPENAI_API_KEY": { "type": "string", "const": "secretRef:hwlab-code-agent-provider/openai-api-key" } } }, "publishEnabled": { "type": "boolean" }, "artifactRequired": { "type": "boolean" }, "artifactScope": { "type": "string", "enum": ["required", "disabled"] }, "notPublishedReason": { "type": ["string", "null"] } }, "additionalProperties": false } } }