Naming Conventions
Rules enforced by QAConfig.Validation and shared across every step.
Env names
Regex |
|
Length |
3–50 characters. |
Allowed characters |
lowercase ASCII letters, digits, hyphen. |
Leading character |
letter or digit — starting with a digit is allowed (commit |
Reserved names |
|
Helpers:
-
QAConfig.Validation.isValidEnvName(name)— regex match only. -
QAConfig.Validation.isReservedName(name)— reserved-list check. -
utils.validateEnvName(name, checkExists = true)— combined validator used by pipeline steps. Fails fast with a human-readable message.
Container names
Containers are named ${ENV_NAME:-ft}_<service> in every Compose block. Consequences:
-
Host-wide container names are unique per env (given unique env names).
-
Cleanup / diagnostics can rely on this prefix:
docker ps --filter "name=${ENV_NAME}_". -
Never hard-code container names in Compose overrides — always use the
${ENV_NAME:-ft}_prefix.
Network names
Each Compose bundle declares a top-level project via name: ft-services-mysql / name: ft-services-oracle. By default the services use the implicit project default network (<project>_default). QAConfig.Defaults.NETWORK_NAME_SUFFIX = '_net' is reserved for env-scoped networks if services later opt into per-env networking — today they do not.
If you need a per-env network, set networks.<name>: { driver: bridge } on the service block and use ${ENV_NAME}${QAConfig.Defaults.NETWORK_NAME_SUFFIX} — but this is not the current pattern and should be introduced deliberately.
Variable names in .env files
By convention across the bundles:
| Prefix / suffix | Use |
|---|---|
|
Docker image reference, format |
|
Host port mapping. |
|
Hostname or Compose service name. |
|
Account name. |
|
Sensitive value — masked by |
|
Base path for bind mounts; defaults to |
|
Current env name — consumed by every |
|
Host-side tunables that need the |
Jenkins job names
Under the QA-Environments/ folder in Jenkins (v2.6.0):
-
Create-Environment -
Deploy-Environment -
Update-Environment -
Manage-Environment— dispatcher forstart/stop/restart/delete/manage-owners -
List-Environments -
Cleanup-Environments
There are no separate Stop-Environment, Delete-Environment, or Restore-Environment jobs; the underlying shared-library steps (deleteEnvStep, restoreEnvStep) exist but are invoked from Manage-Environment actions. Stick to the names above — utils.logOperation and the audit log reference them verbatim.