Summary
The VORTEX_* environment variables exposed by the shipped tooling scripts in .vortex/tooling/src use several different words for the same concept. Because drevops/vortex-tooling is a published Composer package and consumer projects set these variables directly in their .env files, CI configuration and hosting dashboards, the vocabulary is a public contract - so the inconsistency cannot be fixed on main without breaking existing sites.
This was found during a codebase convergence audit of main. Every other naming inconsistency surfaced by that audit was converged in place; this one was deliberately deferred here because it needs a deprecation path rather than a rename.
Details
Roughly 70 variables across 42 scripts are affected. The distinct families:
Credential nouns - five spellings for one concept. _PASS (FTP, container registry), _SECRET (Acquia), _SECRET_KEY (S3), _TOKEN (GitHub, JIRA, Diffy), _USER_KEY (New Relic). The identifier side splits the same way: _USER, _KEY (Acquia client id), _ACCESS_KEY (S3), _USER_EMAIL (JIRA).
Host nouns. _HOST (VORTEX_FETCH_DB_FTP_HOST, VORTEX_FETCH_DB_LAGOON_SSH_HOST) versus _HOSTNAME (VORTEX_DEPLOY_LAGOON_INSTANCE_HOSTNAME, VORTEX_TASK_CUSTOM_LAGOON_INSTANCE_HOSTNAME).
Environment nouns. _ENVIRONMENT (VORTEX_FETCH_DB_ENVIRONMENT) versus _ENV (VORTEX_TASK_PURGE_CACHE_ACQUIA_ENV, VORTEX_NOTIFY_DIFFY_SOURCE_ENV).
Lagoon CLI settings. LAGOONCLI fused, with a generic fallback (VORTEX_DEPLOY_LAGOON_LAGOONCLI_PATH falling back to VORTEX_LAGOONCLI_PATH) versus CLI separated, with no fallback (VORTEX_TASK_CUSTOM_LAGOON_CLI_PATH).
A missing namespace segment. VORTEX_PURGE_CACHE_ACQUIA_SKIP drops the TASK_ segment that every sibling variable in the same file carries (VORTEX_TASK_PURGE_CACHE_ACQUIA_ENV, VORTEX_TASK_PURGE_CACHE_ACQUIA_DOMAINS_FILE).
_LOG means two different things. VORTEX_DEPLOY_ARTIFACT_LOG is a file path, but VORTEX_NOTIFY_LOG and VORTEX_PROVISION_LOG are 0/1 flags with separate _LOG_FILE and _LOG_DIR variables for the paths.
Two freshness flags in one namespace. VORTEX_FETCH_DB_FORCE means "ignore the local cached dump" while VORTEX_FETCH_DB_FRESH means "trigger a new remote dump" - both under VORTEX_FETCH_DB*, with nothing in the names to distinguish them.
Directory versus path suffix. _DIR is used for data directories (17 variables) and _PATH for binary locations (4 variables), but VORTEX_LOGIN_CONTAINER_REGISTRY_DOCKER_CONFIG is a directory carrying neither suffix.
Mixed prefix families for one role. The provision subscripts read behaviour knobs under DRUPAL_* (DRUPAL_MIGRATION_SKIP, DRUPAL_SEARCH_INDEX_SKIP) while sibling knobs in the same scripts use VORTEX_* (VORTEX_DB_DIR, VORTEX_PROVISION_OVERRIDE_DB).
Un-prefixed third-party names used as fallbacks. LAGOON_PROJECT, S3_ACCESS_KEY, S3_SECRET_KEY, S3_BUCKET, GITHUB_TOKEN, NEWRELIC_ENABLED, DRUPAL_SITE_EMAIL, DOCKER_CONFIG, WEBROOT, RUN_ON_HOST.
Automation actor defaults. Three spellings of one actor: Deployment Robot (git user), Deployment robot (New Relic user), Deployment Bot (Slack username).
Suggested approach
Any rename needs an alias shim so existing consumer configuration keeps working: read the new name first, fall back to the old one, and emit a deprecation notice when the old name is what actually resolved. That shim can then be dropped in a later major.
Worth deciding up front whether the canonical spelling is chosen per family by majority, or whether the whole vocabulary is redesigned in one pass - the second is more disruptive but avoids a second round of renames later.
Summary
The
VORTEX_*environment variables exposed by the shipped tooling scripts in.vortex/tooling/srcuse several different words for the same concept. Becausedrevops/vortex-toolingis a published Composer package and consumer projects set these variables directly in their.envfiles, CI configuration and hosting dashboards, the vocabulary is a public contract - so the inconsistency cannot be fixed onmainwithout breaking existing sites.This was found during a codebase convergence audit of
main. Every other naming inconsistency surfaced by that audit was converged in place; this one was deliberately deferred here because it needs a deprecation path rather than a rename.Details
Roughly 70 variables across 42 scripts are affected. The distinct families:
Credential nouns - five spellings for one concept.
_PASS(FTP, container registry),_SECRET(Acquia),_SECRET_KEY(S3),_TOKEN(GitHub, JIRA, Diffy),_USER_KEY(New Relic). The identifier side splits the same way:_USER,_KEY(Acquia client id),_ACCESS_KEY(S3),_USER_EMAIL(JIRA).Host nouns.
_HOST(VORTEX_FETCH_DB_FTP_HOST,VORTEX_FETCH_DB_LAGOON_SSH_HOST) versus_HOSTNAME(VORTEX_DEPLOY_LAGOON_INSTANCE_HOSTNAME,VORTEX_TASK_CUSTOM_LAGOON_INSTANCE_HOSTNAME).Environment nouns.
_ENVIRONMENT(VORTEX_FETCH_DB_ENVIRONMENT) versus_ENV(VORTEX_TASK_PURGE_CACHE_ACQUIA_ENV,VORTEX_NOTIFY_DIFFY_SOURCE_ENV).Lagoon CLI settings.
LAGOONCLIfused, with a generic fallback (VORTEX_DEPLOY_LAGOON_LAGOONCLI_PATHfalling back toVORTEX_LAGOONCLI_PATH) versusCLIseparated, with no fallback (VORTEX_TASK_CUSTOM_LAGOON_CLI_PATH).A missing namespace segment.
VORTEX_PURGE_CACHE_ACQUIA_SKIPdrops theTASK_segment that every sibling variable in the same file carries (VORTEX_TASK_PURGE_CACHE_ACQUIA_ENV,VORTEX_TASK_PURGE_CACHE_ACQUIA_DOMAINS_FILE)._LOGmeans two different things.VORTEX_DEPLOY_ARTIFACT_LOGis a file path, butVORTEX_NOTIFY_LOGandVORTEX_PROVISION_LOGare0/1flags with separate_LOG_FILEand_LOG_DIRvariables for the paths.Two freshness flags in one namespace.
VORTEX_FETCH_DB_FORCEmeans "ignore the local cached dump" whileVORTEX_FETCH_DB_FRESHmeans "trigger a new remote dump" - both underVORTEX_FETCH_DB*, with nothing in the names to distinguish them.Directory versus path suffix.
_DIRis used for data directories (17 variables) and_PATHfor binary locations (4 variables), butVORTEX_LOGIN_CONTAINER_REGISTRY_DOCKER_CONFIGis a directory carrying neither suffix.Mixed prefix families for one role. The provision subscripts read behaviour knobs under
DRUPAL_*(DRUPAL_MIGRATION_SKIP,DRUPAL_SEARCH_INDEX_SKIP) while sibling knobs in the same scripts useVORTEX_*(VORTEX_DB_DIR,VORTEX_PROVISION_OVERRIDE_DB).Un-prefixed third-party names used as fallbacks.
LAGOON_PROJECT,S3_ACCESS_KEY,S3_SECRET_KEY,S3_BUCKET,GITHUB_TOKEN,NEWRELIC_ENABLED,DRUPAL_SITE_EMAIL,DOCKER_CONFIG,WEBROOT,RUN_ON_HOST.Automation actor defaults. Three spellings of one actor:
Deployment Robot(git user),Deployment robot(New Relic user),Deployment Bot(Slack username).Suggested approach
Any rename needs an alias shim so existing consumer configuration keeps working: read the new name first, fall back to the old one, and emit a deprecation notice when the old name is what actually resolved. That shim can then be dropped in a later major.
Worth deciding up front whether the canonical spelling is chosen per family by majority, or whether the whole vocabulary is redesigned in one pass - the second is more disruptive but avoids a second round of renames later.