Internal executor for platform application deployment steps.
This service is called by the dataflow-platform-deploy-app NiFi flow after
platform-deploy-service queues an operation and the Flink preparation job
publishes a prepared deployment request.
The executor can still run in dry_run for validation-only checks. In that mode
the executor:
- validates the prepared deployment payload from NiFi
- validates the requested step and operation sequence
- authenticates with the same internal bearer token used by
platform-deploy-service - returns step result metadata without mutating Terraform, Cloudflare, GitHub, or shell app resources
terraform_cloud execution is implemented behind the provider switch. The
Kubernetes manifest currently deploys this service with
EXECUTOR_MODE=terraform_cloud for real deployment testing.
The local_terraform provider remains stubbed and returns HTTP 501 until
implemented.
POST /internal/operations/{operation_id}/steps/prod-deployPOST /internal/operations/{operation_id}/steps/preview-deployPOST /internal/operations/{operation_id}/steps/preview-destroyPOST /internal/operations/{operation_id}/steps/prod-destroy
Health and contract endpoints:
GET /healthzGET /readyzGET /openapi.json
EXECUTOR_MODE:dry_run,terraform_cloud, orlocal_terraformAUTH_REQUIRED: defaults totrueINTERNAL_TOKEN: optional static internal token for local developmentINTERNAL_TOKEN_VAULT_PATH: defaults tosecret/data/platform-deploy-serviceINTERNAL_TOKEN_VAULT_KEY: defaults totokenTFE_TOKEN_VAULT_PATH: defaults tosecret/data/platform-deploy-serviceTFE_AGENT_POOL_ID_VAULT_PATH: defaults tosecret/data/platform-deploy-serviceTFE_ORGANIZATION_VAULT_PATH: defaults tosecret/data/platform-deploy-serviceAPP_AUTH_GATEWAY_ADMIN_TOKEN_VAULT_PATH: defaults tosecret/data/auth-gateway-admin-apikeyvalueCLOUDFLARE_TOKEN_VAULT_PATH: defaults tosecret/data/platform-deploy-serviceCLOUDFLARE_ACCOUNT_ID_VAULT_PATH: defaults tosecret/data/platform-deploy-serviceCLOUDFLARE_ZONE_ID_VAULT_PATH: defaults tosecret/data/platform-deploy-serviceVAULT_ADDR: defaults to in-cluster VaultVAULT_TOKEN_FILE: defaults to/vault-secrets/vault-token
npm install
npm run buildSecrets are resolved at runtime from Vault/Kubernetes. Do not commit secret values to this repo.