Repository navigation
v1.5.0
·
42 commits
to master
since this release
What's Changed
- #19: Symfony Console updated to fix PHP8 issues. by @alancarvalho in #21
- Rewrite install script with clean UI and --nightly support by @jonathonbyrdziak in #23
- Add cf:login, cf:cache-purge and improve cf:init by @jonathonbyrdziak in #24
- Install script: require PHP >=8.4 on all platforms by @jonathonbyrdziak in #25
- Replace backup/purge commands with API rollbacks by @jonathonbyrdziak in #26
- Fix global install: direct symlink and command detection by @jonathonbyrdziak in #27
- Fix init flow: ask for repo URL and skip Docker for existing projects by @jonathonbyrdziak in #28
- Change install directory from ~/protocol to ~/.protocol by @jonathonbyrdziak in #29
- Move node-level data to .node/ subdirectory by @jonathonbyrdziak in #30
- Remove Docker image prompt from existing project init by @jonathonbyrdziak in #31
- Run composer install after self:update by @jonathonbyrdziak in #32
- Fix default releases directory path by @jonathonbyrdziak in #33
- Redesign init: ask environment first, auto-detect the rest by @jonathonbyrdziak in #34
- Improve dev init: confirm install or detect migration by @jonathonbyrdziak in #35
- Unify project setup flow and simplify dev init routing by @jonathonbyrdziak in #36
- Add GitHub token auth for production server init by @jonathonbyrdziak in #37
- Generate clickable GitHub token URL for production init by @jonathonbyrdziak in #38
- Replace PAT auth with GitHub App for production servers by @jonathonbyrdziak in #39
- Replace manifest URL with direct link and ASCII settings table by @jonathonbyrdziak in #40
- Accept pasted PEM keys for GitHub App auth by @jonathonbyrdziak in #42
- Make production init idempotent and user-controlled by @jonathonbyrdziak in #43
- Add Step 3: first deploy with release picker and nightly fallback by @jonathonbyrdziak in #44
- Stop writing protocol.json to home directory on slave nodes by @jonathonbyrdziak in #45
- Make protocol status work from anywhere on slave nodes by @jonathonbyrdziak in #46
- Make start/stop/status work from anywhere on slave nodes by @jonathonbyrdziak in #47
- Fix config repo resolution on slave nodes by @jonathonbyrdziak in #48
- Move config repo clone to init, place inside releases dir by @jonathonbyrdziak in #49
- Never convert SSH URLs to HTTPS in flowGitAuth by @jonathonbyrdziak in #50
- Verify repos at completion, suppress passthru output by @jonathonbyrdziak in #51
- Ensure releases dir exists before cloning config repo by @jonathonbyrdziak in #52
- Resolve SSH to HTTPS for GitHub App git operations by @jonathonbyrdziak in #53
- GitHub App SSH-to-HTTPS resolution + stage logging by @jonathonbyrdziak in #54
- Fix git remote URLs for GitHub App HTTPS auth by @jonathonbyrdziak in #55
- Fail fast on credential refresh, add git fetch timeouts by @jonathonbyrdziak in #56
- Add diagnostic logging and HOME env for git fetch by @jonathonbyrdziak in #57
- Add diagnostic logging inside git:pull command by @jonathonbyrdziak in #58
- Log post-fetch steps in git:pull to find hang by @jonathonbyrdziak in #59
- Add verbose mode to protocol start by @jonathonbyrdziak in #60
- Fix composer install hang with timeout and --no-interaction by @jonathonbyrdziak in #61
- Stream live output in verbose mode for composer and submodules by @jonathonbyrdziak in #62
- Add --force flag to override stale locks by @jonathonbyrdziak in #63
- Read config repo remote from node config on slave nodes by @jonathonbyrdziak in #64
- Inject GitHub App token into composer for private repos by @jonathonbyrdziak in #65
- Suppress PHP deprecation noise from composer.phar by @jonathonbyrdziak in #67
- Auto-install cronie and add crontab debug logging by @jonathonbyrdziak in #69
- Fix crontab append when no existing crontab by @jonathonbyrdziak in #70
- Fix watcher credential spam + AWS Secrets Manager plugin by @jonathonbyrdziak in #72
- Fix composer.lock missing aws/aws-sdk-php by @jonathonbyrdziak in #73
- Add 2-minute TTL to command locks by @jonathonbyrdziak in #66
- Fix crontab detection in protocol status by @jonathonbyrdziak in #71
- Store encryption keys per-project in non-production envs by @jonathonbyrdziak in #74
- Fix config:switch and add environment-aware aws:push by @jonathonbyrdziak in #75
- aws:init profile selector with SM access check by @jonathonbyrdziak in #76
- Fix SOC 2: audit log for branch deploys, git remote normalization by @jonathonbyrdziak in #77
- Fix SOC 2: audit log to /var/log/protocol with proper permissions by @jonathonbyrdziak in #78
- Auto-refresh Cloudflare OAuth token on expired auth by @jonathonbyrdziak in #79
- Add deploy:strategy command and branch-to-release auto-switch by @jonathonbyrdziak in #80
- Unified DeploymentState for all deployment strategies by @jonathonbyrdziak in #82
- Fix slave node dir resolution fallback for awaiting-release state by @jonathonbyrdziak in #83
- Replace gh CLI with GitHub REST API via App tokens by @jonathonbyrdziak in #84
- Read blue-green config from node config, not protocol.json by @jonathonbyrdziak in #85
- Fix repo_dir home directory fallback and ~ dir creation by @jonathonbyrdziak in #87
- Fix protocol exec failing with multiple containers by @jonathonbyrdziak in #89
- Fix protocol exec and installer for Amazon Linux 2023 by @jonathonbyrdziak in #90
- Fix critical deployment bugs from audit by @jonathonbyrdziak in #88
- Remove duplicate writeComposerAuth() — fatal error on all commands by @jonathonbyrdziak in #91
- Production-ready: fix fatal error, installer AL2023, docker exec by @jonathonbyrdziak in #92
- Suppress git fatal errors during protocol init on fresh servers by @jonathonbyrdziak in #93
- Fix init clone path and post-init crash on fresh servers by @jonathonbyrdziak in #94
- Fix init showing 'no release deployed' after successful clone by @jonathonbyrdziak in #95
- Fix protocol status crash when no release deployed by @jonathonbyrdziak in #96
- Make restart slave-aware, fix docker compose detection by @jonathonbyrdziak in #98
- Make soc2:check, security:audit, cron commands slave-aware by @jonathonbyrdziak in #100
- Resolve env vars in docker-compose container names by @jonathonbyrdziak in #101
- Inject AWS secrets into containers via env_file override by @jonathonbyrdziak in #103
- Install cronie and docker-compose-plugin in installer by @jonathonbyrdziak in #97
- Install Docker CE with compose plugin on AL2023 by @jonathonbyrdziak in #99
- Fix literal ~ directory created in project directory by @jonathonbyrdziak in #102
- Remove shell.outputfile config, hardcode /var/log/protocol/ log path by @jonathonbyrdziak in #104
- Fix release watcher SSH/HTTPS mismatch on tag fetch by @jonathonbyrdziak in #105
- Add release strategy, blue-green improvements, and AWS/Cloudflare enhancements by @jonathonbyrdziak in #106
- Fix blue-green shadow deploy port and container name collisions by @jonathonbyrdziak in #107
- Make patchComposeFile idempotent — no manual cleanup needed by @jonathonbyrdziak in #108
- Fix patchComposeFile trim() destroying YAML indentation by @jonathonbyrdziak in #109
- Fix invalid compose project name — dots not allowed by @jonathonbyrdziak in #110
- Use dynamic shadow ports instead of fixed constants by @jonathonbyrdziak in #111
- Separate release and bluegreen deployment strategies by @jonathonbyrdziak in #112
- Fix active version lookup to fall back to release.current by @jonathonbyrdziak in #113
- Fix stop not using --env-file; add logging everywhere by @jonathonbyrdziak in #114
- Fix status checking bare container name and showing Release: none by @jonathonbyrdziak in #115
- Fix watcher getcwd errors after release dir deletion by @jonathonbyrdziak in #116
- Add watcher self-restart after successful deploys by @jonathonbyrdziak in #117
- Remove error_log debug output leaking to console by @jonathonbyrdziak in #118
- Stop existing containers before build to fix retry failures by @jonathonbyrdziak in #120
- Prevent bare container names and log build failure output by @jonathonbyrdziak in #121
- Use protocol restart instead of direct container calls in watcher by @jonathonbyrdziak in #122
- Use explicit protocol stop (old dir) + start (new dir) by @jonathonbyrdziak in #123
- Fix release strategy recognition in SOC2 check and protocol exec by @jonathonbyrdziak in #124
- Fix shell-init getcwd errors with cwd recovery and diagnostics by @jonathonbyrdziak in #119
- Fix install failing on macOS: add PATH bootstrap by @jonathonbyrdziak in #125
- Add configurable lifecycle post_start hooks by @jonathonbyrdziak in #126
- Save GitHub App credentials immediately during init by @jonathonbyrdziak in #128
- Document lifecycle post-start hooks by @jonathonbyrdziak in #129
- Fix config:init GitHub App auth and improve deploy commands by @jonathonbyrdziak in #130
- Fix config repo path to use protocol.json configuration.local by @jonathonbyrdziak in #131
- Consolidated logging to single protocol.log by @jonathonbyrdziak in #132
- Consolidate all logs into single protocol.log by @jonathonbyrdziak in #133
- Sanitize secrets from logs and separate watcher output by @jonathonbyrdziak in #134
- Redirect watcher logging to watcher.log by @jonathonbyrdziak in #135
- Replace shell-dump logging with structured application logging by @jonathonbyrdziak in #137
- Add diagnostic logging to deploy:slave by @jonathonbyrdziak in #138
- Fix exec() pipe-blocking that hangs deploy:slave by @jonathonbyrdziak in #139
- Replace exec() with proc_open() for daemon spawning by @jonathonbyrdziak in #140
- Patch docker-compose.yml on start for versioned container names by @jonathonbyrdziak in #141
- Persist active version in node config before stop+start by @jonathonbyrdziak in #142
- ProtocolStart reads node config as active version fallback by @jonathonbyrdziak in #143
New Contributors
- @alancarvalho made their first contribution in #21
- @jonathonbyrdziak made their first contribution in #23
Full Changelog: https://github.com/merchantprotocol/protocol/commits/v1.5.0