Releases: drevops/vortex-tooling
Releases · drevops/vortex-tooling
Release list
1.3.0
What's new since 1.2.0
Breaking changes
- Renamed 'VORTEX_LOCALDEV_URL' environment variable to 'LOCALDEV_URL'. @AlexSkrypnyk (drevops/vortex#2748)
Consumers who setVORTEX_LOCALDEV_URL(typically in.env.local) must rename it toLOCALDEV_URL. The shippedvortex-infoandvortex-doctorscripts now readLOCALDEV_URLwhen printing the site URL and checking webserver health and no longer recognise the old name; the value is shared with the unprefixedLAGOON_ROUTE, so dropping theVORTEX_prefix aligns it with its sibling. - #2715 Prefixed all tooling scripts with 'vortex-' and surfaced user-facing ones as Composer binaries. @AlexSkrypnyk (drevops/vortex#2741)
All shipped scripts are renamed with avortex-prefix and the 15 user-facing entrypoints are exposed asvendor/bin/vortex-*Composer binaries. Replace every direct reference tovendor/drevops/vortex-tooling/src/<name>withvendor/bin/vortex-<name>(for examplesrc/provisionbecomesvendor/bin/vortex-provisionandsrc/fetch-dbbecomesvendor/bin/vortex-fetch-db); internal sub-scripts keep the prefix but are not exposed as binaries. - #2739 Renamed 'upload-db-s3' to 'push-db-s3' and aligned tooling and playground script names. @AlexSkrypnyk (drevops/vortex#2740)
Theupload-db-s3script is renamed topush-db-s3and itsVORTEX_UPLOAD_DB_S3_*variables toVORTEX_PUSH_DB_S3_*, fitting thefetch-*(in) /push-*(out) verb taxonomy. Rename anyVORTEX_UPLOAD_DB_S3_*overrides toVORTEX_PUSH_DB_S3_*and update calls to the new script name. - #2733 Renamed the container-image push scripts and variables from 'deploy' to 'push' and dropped the container-registry deploy type. @AlexSkrypnyk (drevops/vortex#2737)
deploy-container-registryanddeploy-db-imageare renamed topush-container-registryandpush-db-image, theVORTEX_DEPLOY_CONTAINER_REGISTRY*variables toVORTEX_PUSH_CONTAINER_REGISTRY*, andVORTEX_EXPORT_DB_CONTAINER_REGISTRY_DEPLOY_PROCEEDtoVORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED. Rename those variables, update calls to the renamed scripts, and remove anycontainer_registryentry fromVORTEX_DEPLOY_TYPES- that deploy type is dropped (the valid types are nowartifact, webhook, lagoon), while the genericVORTEX_CONTAINER_REGISTRY*fallbacks are unchanged. - #2723 Extracted the container image deployment from 'export-db' into a dedicated script. @AlexSkrypnyk (drevops/vortex#2727)
export-dbis now a pure exporter and no longer pushes the exported database container image to the registry; the push moves to the dedicatedpush-db-imagescript, wired as a separate opt-in step gated byVORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED. If you invokedexport-dbdirectly and relied on it also pushing the image, call the dedicated push script after exporting; the CI fresh-fetch semaphore is also renamed from/tmp/fetch-db-successto/tmp/fetch-db-fresh. - #2726 Renamed the 'download-db' command, variables and installer source to 'fetch'. @AlexSkrypnyk (drevops/vortex#2730)
Thedownload-dbscript and its six drivers (-acquia,-container-registry,-ftp,-lagoon,-s3,-url) are renamed tofetch-db*, everyVORTEX_DOWNLOAD_DB*variable toVORTEX_FETCH_DB*, and theVORTEX_SSH_PREFIX_DOWNLOADLagoon variable toVORTEX_SSH_PREFIX_FETCH. Rename those overrides accordingly (theahoy download-dbcommand name is kept as an alias); for the Lagoon-over-SSH path, also rename the GitHub Actions secret and variable toVORTEX_FETCH_DB_SSH_PRIVATE_KEY/VORTEX_FETCH_DB_SSH_KNOWN_HOSTSin repository settings. - #2713 Converted 'ahoy reset hard' to the 'ahoy reset --hard' option flag. @AlexSkrypnyk (drevops/vortex#2717)
Theresetscript now recognises a hard reset only via the--hardoption flag; the legacy positionalreset hardis no longer honoured and falls through to a soft reset. Update anyreset hardinvocations (includingahoy reset hard) toreset --hard.
Highlights
- #2715 Prefixed all tooling scripts with 'vortex-' and surfaced user-facing ones as Composer binaries. @AlexSkrypnyk (drevops/vortex#2741)
The 15 user-facing tooling scripts are now installed asvendor/bin/vortex-*binaries, so you can invokevendor/bin/vortex-provision,vendor/bin/vortex-fetch-db,vendor/bin/vortex-deployand the rest directly from PATH instead of reaching into the package'ssrc/directory. - #2720 Extracted a dedicated 'import-db' script reused by provision and ahoy. @AlexSkrypnyk (drevops/vortex#2728)
ahoy import-dbnow reliably imports the dump: a dedicatedimport-db/import-db-filepair (mirroringexport-db) replaces the old routing throughprovision, which silently preserved the database on an existing site withVORTEX_PROVISION_OVERRIDE_DB=0. The import fails fast when the dump is missing or unreadable - so it can never drop the database and leave nothing imported - and prompts for confirmation first. - #2718 Used 'export-db' for the Lagoon pre-deployment database backup. @AlexSkrypnyk (drevops/vortex#2724)
export-dbnow auto-detects whether it runs on the host or inside a container (honouring aRUN_ON_HOSToverride, otherwise probing fordocker), so it works inside a Lagoon container with no Docker available. The Lagoon pre-deployment backup uses the publicexport-dbrouter directly, dropping the previous hard Docker dependency. - #2719 Added a platform-agnostic 'task' runner for hosting operations. @AlexSkrypnyk (drevops/vortex#2721)
A new platform-agnostictaskrunner lets hosting hooks call a singletask <operation>entrypoint -copy-db,copy-files, orpurge-cache- and dispatches to the implementation for the configured platform (acquiaorlagoon), selected viaVORTEX_TASK_PLATFORMwith a fallback toVORTEX_PLATFORM. Operations and platforms are validated against whitelists before any script runs. - #2643 Hardened the host-side database-download tooling scripts. @AlexSkrypnyk (drevops/vortex#2648)
The host-side database-download scripts are hardened against three latent issues: the Acquia Cloud API token is redacted fromVORTEX_DEBUG=1logs instead of printed verbatim, a failed URL download (curl -fLs) now aborts instead of writing an HTTP error body into a corruptdb.sql, and the S3 SigV4 signing no longer mishandles a%in an object key.
All changes
- Renamed 'VORTEX_LOCALDEV_URL' environment variable to 'LOCALDEV_URL'. @AlexSkrypnyk (drevops/vortex#2748)
The local development URL variable read by the shippedvortex-infoandvortex-doctorscripts is renamed fromVORTEX_LOCALDEV_URLtoLOCALDEV_URL, matching the unprefixedLAGOON_ROUTEit shares a value with. SetLOCALDEV_URLin place ofVORTEX_LOCALDEV_URLto override the local site URL. - #2715 Prefixed all tooling scripts with 'vortex-' and surfaced user-facing ones as Composer binaries. @AlexSkrypnyk (drevops/vortex#2741)
Every shipped script is renamed with avortex-prefix, and the 15 user-facing entrypoints (vortex-deploy,vortex-doctor,vortex-export-db,vortex-fetch-db,vortex-import-db,vortex-info,vortex-login,vortex-login-container-registry,vortex-logout,vortex-notify,vortex-provision,vortex-push-db-image,vortex-reset,vortex-task,vortex-update) are declared incomposer.json'sbinarray so Composer installs them asvendor/bin/vortex-*. Internal sub-scripts gain the prefix but are not surfaced as binaries; update callers fromvendor/drevops/vortex-tooling/src/<name>tovendor/bin/vortex-<name>. - #2739 Renamed 'upload-db-s3' to 'push-db-s3' and aligned tooling and playground script names. @AlexSkrypnyk (drevops/vortex#2740)
Theupload-db-s3script becomespush-db-s3and itsVORTEX_UPLOAD_DB_S3_*variables becomeVORTEX_PUSH_DB_S3_*, fitting thefetch-*(in) /push-*(out) verb taxonomy alongsidefetch-db-s3andpush-db-image. The script is also hardened withpipefail,curlconnect/max timeouts, a URL-encoded S3 object key, and aset -xdeferred past request signing so credentials are never traced. - #2733 Renamed the container-image push scripts and variables from 'deploy' to 'push' and dropped the container-registry deploy type. @AlexSkrypnyk (drevops/vortex#2737)
The registry-push scriptsdeploy-container-registryanddeploy-db-imageare renamed topush-container-registryandpush-db-image, theVORTEX_DEPLOY_CONTAINER_REGISTRY*variables toVORTEX_PUSH_CONTAINER_REGISTRY*, andVORTEX_EXPORT_DB_CONTAINER_REGISTRY_DEPLOY_PROCEEDtoVORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED, because pushing an image to a registry is apush, not adeploy. The vestigialcontainer_registrydeploy type - which never dispatched - is removed, leav...
1.2.0
What's new since 1.1.0
Breaking changes
- Moved custom provision scripts to 'scripts' and deprecated 'scripts/custom'. @AlexSkrypnyk (drevops/vortex#2539)
Theprovisionscript's defaultVORTEX_PROVISION_SCRIPTS_DIRchanged from./scripts/customto./scripts, andscripts/custom/is no longer scanned - there is no backward-compatible fallback. If you keep customprovision-*.shhooks inscripts/custom/, move them up intoscripts/before upgrading, or setVORTEX_PROVISION_SCRIPTS_DIR=./scripts/customexplicitly to retain the old location.
Highlights
- #2613 Fixed 'download-db-acquia' to read backup URL from JSON response. @AlexSkrypnyk (drevops/vortex#2617)
Restores Acquia as a working database source - every Acquia consumer'sahoy download-dbwas failing outright before this fix, and it now succeeds again with no configuration change. - #2548 Added SSH host key pinning as a secure alternative to disabling strict checking. @AlexSkrypnyk (drevops/vortex#2587)
Lets CI pin SSH host keys viaVORTEX_SSH_KNOWN_HOSTSinstead of disabling strict host-key checking, closing the man-in-the-middle exposure on database-download and deployment connections while keeping the old opt-out for anyone not ready to pin. - #2571 Added label-driven deployment gate to deploy router. @AlexSkrypnyk (drevops/vortex#2575)
Gives deployments a per-pull-request authorization switch: setVORTEX_DEPLOY_ALLOW_LABELand only labelled pull requests deploy - a practical lever for controlling preview-environment spend without touching CI logic. - #2549 Hardened fragile site UUID extraction in the provision script. @AlexSkrypnyk (drevops/vortex#2584)
Makes provisioning resilient to real-worldsystem.site.ymllayouts: comments, reordered keys, or preamble no longer corrupt the extracted site UUID, and a missing UUID now fails fast with a clear message instead of a confusing Drush import error. - #2551 Guarded VORTEX_NOTIFY_BRANCH under set -u in notify branch filters. @AlexSkrypnyk (drevops/vortex#2573)
Stops the notify scripts from crashing a deployment with an opaqueunbound variableerror when a branch filter is configured but no branch is in context; they now skip gracefully and exit cleanly.
All changes
- #2613 Fixed 'download-db-acquia' to read backup URL from JSON response. @AlexSkrypnyk (drevops/vortex#2617)
Acquia database downloads were failing for every consumer withUnable to discover backup URL, because the script read the URL from acurlredirect that the Acquia Cloud API v2 no longer issues - the endpoint now returns the pre-signed S3 URL in a JSON body. The script now parses that JSONurlfield and surfaces the raw API response in any failure message, soahoy download-dbworks again on Acquia with no configuration change. - #2596 Added installer support for multiple Vortex scaffold versions (1.x and 2.x). @AlexSkrypnyk (drevops/vortex#2605)
Adds installer and documentation support for serving Vortex 1.x and 2.x from one codebase, driven by theVORTEX_CURRENT_MAJORvariable. The change shipped in this package is inupdate-vortex: its defaultVORTEX_INSTALLER_URLis now pinned to the major-specific/v1/install, so running it keeps an existing project on its current major instead of jumping to a newer one. - #2548 Added SSH host key pinning as a secure alternative to disabling strict checking. @AlexSkrypnyk (drevops/vortex#2587)
AddsVORTEX_SSH_KNOWN_HOSTStosetup-ssh: set it to one or more newline-separatedknown_hostsentries and the script writes them to~/.ssh/known_hostswith strict host-key checking left enabled, so a mismatched key aborts the connection rather than silently proceeding. Pinning takes precedence when both it andVORTEX_SSH_DISABLE_STRICT_HOST_KEY_CHECKINGare set, and the insecure opt-out path and its default are unchanged. - #2549 Hardened fragile site UUID extraction in the provision script. @AlexSkrypnyk (drevops/vortex#2584)
Replaces the fragilegrep/byte-slice that read the site UUID fromsystem.site.ymlduring provisioning with anawkmatch anchored on the top-leveluuid:key, so comments, key reordering, and preamble no longer yield a wrong value. Provisioning now also fails fast with a clear message when no UUID is found instead of seeding an empty value intodrush config:import. - #2571 Added label-driven deployment gate to deploy router. @AlexSkrypnyk (drevops/vortex#2575)
Adds an opt-in gate to thedeployrouter viaVORTEX_DEPLOY_ALLOW_LABEL: when set to a label name, a pull request deploys only if it carries that label (matched against the comma-separatedVORTEX_DEPLOY_PR_LABELS), otherwise it skips cleanly with a note. The gate is inactive by default and never applies to branch or tag builds, so existing deployments are unaffected. - #2551 Guarded VORTEX_NOTIFY_BRANCH under set -u in notify branch filters. @AlexSkrypnyk (drevops/vortex#2573)
Running any of the six notify scripts (notify-slack,notify-email,notify-webhook,notify-github,notify-jira,notify-newrelic) directly with a*_BRANCHESfilter set butVORTEX_NOTIFY_BRANCHunset aborted underset -uwith an opaqueunbound variableerror. Each branch-filter reference now uses the${VORTEX_NOTIFY_BRANCH-}default form, so the script logs a graceful skip and exits 0;notify-newrelicwas the most exposed because its branch filter always runs. - Enhanced 'vortex-tooling' package docs and relocated its maintenance guide. @AlexSkrypnyk (drevops/vortex#2541)
Rewrites the packageREADME.mdto lead with installation, document the post-provision hook system under a new "Extending provisioning" section, and reframe patching shipped scripts as a last resort. The internalCLAUDE.mdthat previously shipped inside the package - leaking maintenance notes onto consumer sites - was removed. - Moved custom provision scripts to 'scripts' and deprecated 'scripts/custom'. @AlexSkrypnyk (drevops/vortex#2539)
Customprovision-*.shhooks now live directly inscripts/rather thanscripts/custom/: theprovisionscript's defaultVORTEX_PROVISION_SCRIPTS_DIRchanged from./scripts/customto./scripts, with no fallback. See Breaking changes above for the migration step.
Full Changelog: 1.1.0...1.2.0
1.1.0
Added optional HTTP basic auth credentials to Diffy visual regression…
1.0.0
Extracted Vortex shell scripts into 'drevops/vortex-tooling' Composer…