Class ManagerEnvKeys

java.lang.Object
com.cloudforge.core.manager.ManagerEnvKeys

public final class ManagerEnvKeys extends Object
Canonical environment / system-property keys for CloudForge Manager.

Deploy adapters (CloudForgeManagerOidcIntegration, DatabaseSpec wiring) and the Manager runtime (Spring Boot or otherwise) share these names so DeploymentConfig → container env → process config stays one contract.

  • Field Details

    • PORT

      public static final String PORT
      See Also:
    • BIND

      public static final String BIND
      See Also:
    • PUBLIC_URL

      public static final String PUBLIC_URL
      See Also:
    • PUBLIC_TLS_TRUSTED

      public static final String PUBLIC_TLS_TRUSTED
      "true"/"false" — whether THIS deployment's ALB HTTPS listener is wearing a publicly-trusted certificate (the imported-ARN or DNS-validated ACM paths in FargateRuntimeConfiguration) as opposed to the untrusted AWS Private CA fallback used when SSL is on but no domain/cert is configured, or absent entirely when SSL is off. Set by ContainerFactory, computed the same way FargateRuntimeConfiguration itself decides which cert path to take — see that class for why Private CA certs can't answer "yes" here. Consumed by cloudforge-manager to decide whether embedding a real payment form (which requires the hosting page to be genuinely trusted) is safe on this installation, or whether to fall back to a redirect-based purchase flow instead.
      See Also:
    • TARGET

      public static final String TARGET
      See Also:
    • SYNTH_SERVICE_URL

      public static final String SYNTH_SERVICE_URL
      Base URL of the cloudforge-synth-service sidecar (see ManagerSynthesisService, cloudforge-manager) — read directly by the sidecar HTTP client, not one of the CFC_MANAGER_*-prefixed keys, since it names the sidecar, not Manager itself. Unset on an AWS deploy (the code default, http://localhost:8090, is already correct there: Fargate's awsvpc networking shares one ENI/loopback across every container in a task). LocalStack's and MiniStack's own ECS emulation gives each task container a separate Docker network namespace instead of sharing one — a divergence from AWS's own networking model, not a configuration gap — so LocalStackTemplateAdapter/MiniStackTemplateAdapter set this explicitly to a host-reachable address for those two targets only.
      See Also:
    • SYNTH_SERVICE_DEFAULT_PORT

      public static final int SYNTH_SERVICE_DEFAULT_PORT
      The sidecar's own listen port, and the port every hardcoded fallback URL above must agree with — SynthServiceMain's SYNTH_SERVICE_PORT env-var default, LocalStackTemplateAdapter's host.docker.internal override, and ApplicationSpec's health-check command example all reference this one constant instead of repeating the literal, so a future port change can't drift out of sync in one of them.
      See Also:
    • AUTH_MODE

      public static final String AUTH_MODE
      See Also:
    • DB_MODE

      public static final String DB_MODE
      See Also:
    • VERSION

      public static final String VERSION
      See Also:
    • SETUP_TOKEN

      public static final String SETUP_TOKEN
      See Also:
    • TRUST_ALB_OIDC_HEADERS

      public static final String TRUST_ALB_OIDC_HEADERS
      See Also:
    • OIDC_ISSUER

      public static final String OIDC_ISSUER
      See Also:
    • OIDC_AUTHORIZATION_ENDPOINT

      public static final String OIDC_AUTHORIZATION_ENDPOINT
      See Also:
    • OIDC_TOKEN_ENDPOINT

      public static final String OIDC_TOKEN_ENDPOINT
      See Also:
    • OIDC_USERINFO_ENDPOINT

      public static final String OIDC_USERINFO_ENDPOINT
      See Also:
    • OIDC_JWKS_URI

      public static final String OIDC_JWKS_URI
      See Also:
    • OIDC_CLIENT_ID

      public static final String OIDC_CLIENT_ID
      See Also:
    • OIDC_CLIENT_SECRET

      public static final String OIDC_CLIENT_SECRET
      See Also:
    • OIDC_REDIRECT_URL

      public static final String OIDC_REDIRECT_URL
      See Also:
    • OIDC_SCOPES

      public static final String OIDC_SCOPES
      See Also:
    • OIDC_USERNAME_CLAIM

      public static final String OIDC_USERNAME_CLAIM
      See Also:
    • OIDC_EMAIL_CLAIM

      public static final String OIDC_EMAIL_CLAIM
      See Also:
    • OIDC_GROUPS_CLAIM

      public static final String OIDC_GROUPS_CLAIM
      See Also:
    • OIDC_ADMIN_GROUP

      public static final String OIDC_ADMIN_GROUP
      See Also:
    • OIDC_MANAGER_GROUP

      public static final String OIDC_MANAGER_GROUP
      See Also:
    • DEFAULT_OIDC_ADMIN_GROUP

      public static final String DEFAULT_OIDC_ADMIN_GROUP
      The one real source for these two role-group defaults — every place that needs a fallback when cognitoAdminGroupName/cognitoUserGroupName aren't explicitly set (cloudforge-manager's own ManagerRuntimeConfiguration and CognitoUserManagementService; cloudforge-manager-deployment's CloudForgeManagerApplicationSpec, for alb-oidc specifically — application-oidc gets the real configured value from CloudForgeManagerOidcIntegration instead, see that class's javadoc) references these constants instead of its own copy of the literal strings. Three independent copies of "ManagerAdmins"/"ManagerUsers" already drifted once — one hardcoded "admin"/"manager"/"viewer" instead, which meant every Cognito-backend-listed user resolved to "viewer" regardless of real group membership — this is what prevents that class of bug from recurring a fourth time.
      See Also:
    • DEFAULT_OIDC_MANAGER_GROUP

      public static final String DEFAULT_OIDC_MANAGER_GROUP
      See Also:
    • DB_HOST

      public static final String DB_HOST
      See Also:
    • DB_PORT

      public static final String DB_PORT
      See Also:
    • DB_NAME

      public static final String DB_NAME
      See Also:
    • DB_USER

      public static final String DB_USER
      See Also:
    • DB_ENGINE

      public static final String DB_ENGINE
      See Also:
    • DB_PASSWORD

      public static final String DB_PASSWORD
      See Also:
    • DB_REPLICA_HOST

      public static final String DB_REPLICA_HOST
      See Also:
    • DB_REPLICA_PORT

      public static final String DB_REPLICA_PORT
      See Also:
    • SESSION_MODE

      public static final String SESSION_MODE
      memory (default) or redis — see SessionStore's javadoc.
      See Also:
    • REDIS_HOST

      public static final String REDIS_HOST
      See Also:
    • REDIS_PORT

      public static final String REDIS_PORT
      See Also:
    • REDIS_AUTH_TOKEN

      public static final String REDIS_AUTH_TOKEN
      See Also:
    • REDIS_TLS

      public static final String REDIS_TLS
      See Also:
    • ACCOUNT_SECRET_KEY

      public static final String ACCOUNT_SECRET_KEY
      AES key for SecretCipher's AesGcmSecretCipher (cross-account connections' external IDs) — absent means PlaintextSecretCipher (local dev only). When Manager is deployed via CloudForge's own CDK pipeline, this is injected as an ECS Secret bound to a CDK-provisioned Secrets Manager entry, the same delivery mechanism DB_PASSWORD already uses — never a literal env-var value in the task definition.
      See Also:
    • TRUST_PRINCIPAL_ARN

      public static final String TRUST_PRINCIPAL_ARN
      Overrides the trust-policy principal ManagerIdentityResolver would otherwise derive from Manager's own sts:GetCallerIdentity — for deployments that front Manager with a different role than the one its own AWS calls run as.
      See Also:
    • LICENSE_KEY

      public static final String LICENSE_KEY
      Matches ManagerRuntimeConfiguration.LicenseSeat's "stopgap" env-var path exactly (cloudforge-manager) — a deploy-time-supplied customer license key, delivered as a Secrets Manager-backed ECS Secret, never a literal value in the task definition.
      See Also:
    • LOCALSTACK_ENDPOINT

      public static final String LOCALSTACK_ENDPOINT
      See Also:
    • AWS_ENDPOINT_URL

      public static final String AWS_ENDPOINT_URL
      See Also:
    • AWS_DEFAULT_REGION

      public static final String AWS_DEFAULT_REGION
      See Also:
    • MINISTACK_ENDPOINT

      public static final String MINISTACK_ENDPOINT
      See Also:
    • PROP_TARGET

      public static final String PROP_TARGET
      Spring property keys (application-local.properties).
      See Also:
    • PROP_AUTH_MODE

      public static final String PROP_AUTH_MODE
      See Also:
    • PROP_PUBLIC_URL

      public static final String PROP_PUBLIC_URL
      See Also:
    • PROP_BIND

      public static final String PROP_BIND
      See Also:
    • PROP_DB_MODE

      public static final String PROP_DB_MODE
      See Also:
    • PROP_LOCALSTACK_ENDPOINT

      public static final String PROP_LOCALSTACK_ENDPOINT
      See Also:
    • PROP_MINISTACK_ENDPOINT

      public static final String PROP_MINISTACK_ENDPOINT
      See Also:
    • PROP_OIDC_REDIRECT_URL

      public static final String PROP_OIDC_REDIRECT_URL
      See Also:
    • PROP_AWS_ENDPOINT_URL

      public static final String PROP_AWS_ENDPOINT_URL
      See Also:
    • PROP_AWS_REGION

      public static final String PROP_AWS_REGION
      See Also: