feat(demos): add GCP Cloud Armor sync demo tape and gif - #274
Merged
Conversation
Purpose-built demo fixtures (gcp-demo-local.doorman.json/gcp-demo-remote.json) telling the same clean single-add story as the Vercel demo (sync-local/ sync-remote) — one rule already in sync, one new rule to add — rather than reusing the cloudarmor-sync-* fixtures built for unit-test coverage, which produce a busier mixed add/update/delete diff not ideal for a marketing GIF. The already-synced rule explicitly carries `description`/`priority` so it reads as unchanged rather than a spurious update, per this session's own real-e2e finding about GCP's sync/download field parity. Unlike Cloudflare/Fastly/Vercel's tapes, this one genuinely cannot be fully offline: GoogleAuth still mints a real OAuth2 token against Google's real infrastructure (the recorder's own `gcloud auth application-default login` session) even though the actual securityPolicies traffic is routed to cloudarmor-mock-server.mjs. Verified the full interactive flow (real token, mocked backend, real confirmation prompt) before writing the tape, and timed it to calibrate Sleep windows generously rather than guessing. Re-recording requires live GCP credentials — documented in gcp.md's "Manual End-to-End Verification" section.
Incidental cleanup surfaced by the pre-commit hook's repo-wide format:fix step while working on the GCP demo tape — no functional change.
github-actions Bot
pushed a commit
that referenced
this pull request
Aug 24, 2026
# [3.15.0](v3.14.2...v3.15.0) (2026-08-24) ### Features * **demos:** add GCP Cloud Armor sync demo tape and gif ([#274](#274)) ([35804b2](35804b2))
|
🎉 This PR is included in version 3.15.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a VHS-recorded
doorman syncdemo for GCP, matching the existingsync.gif(Vercel)/cloudflare-sync.gif/fastly-sync.gifpattern used on the marketing site's homepage provider switcher.demos/tapes/gcp-sync.tape— the recording recipedemos/fixtures/gcp-demo-local.doorman.json/gcp-demo-remote.json— purpose-built demo fixtures telling a clean single-add story (mirrorssync-local/sync-remote's shape), rather than reusing thecloudarmor-sync-*fixtures built for unit-test coverage, which produce a busier mixed diffassets/demos/gcp-sync.gif— the rendered, gifsicle-optimized output (197KB)One real difference from the other three tapes, called out in the tape's own header comment: GCP's
GoogleAuthstill mints a real OAuth2 access token against Google's real infrastructure even when the actualsecurityPoliciestraffic is routed to the local mock server — there's no way to fake that locally. This tape was recorded using my owngcloud auth application-default loginsession; re-recording it requires live GCP credentials (documented ingcp.md's "Manual End-to-End Verification" section). Verified the full interactive flow manually and timed it before writing the tape, so theSleepwindows are calibrated against real measurements, not guessed.Also includes a small formatting-only commit (pre-existing prettier drift the pre-commit hook's repo-wide
format:fixsurfaced inSKILL.md/cloudflare.md/fastly.md/gcp.md— unrelated to this change, no functional difference).Test plan
syncflow manually (real ADC token + mock backend) before writing the tape./demos/capture.sh gcp-syncpipeline (build → vhs → gifsicle -O3)