Repository navigation
demo(#324): record price-conflict and restricted-write denial - #332
Open
MrDarkRoot wants to merge 1 commit into
Open
MrDarkRoot wants to merge 1 commit into
MrDarkRoot wants to merge 1 commit into
Conversation
Add a disposable WordPress 7.1.2, WooCommerce 11.1.2, and MySQL 8.0.44 fixture plus the recording of repository commit 3be6805 (plugin header 0.2.0). Apply leaves the newer $120.00 regular price in place. A restricted shop manager's PUT /wp-json/wc/v3/products/10 returns HTTP 403 writeleash_perimeter_denied and changes zero product rows. This is an unreleased demonstration. It is not the WordPress.org 0.2.2 package, and these files are not listing assets.
This was referenced Oct 28, 2026
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.
Fixes nothing in the plugin. Records the #324 seatbelt demonstration against repository commit
3be680557c476f30e93e45cf7bf0bc62009ef8c6(plugin header 0.2.0). Do not merge this as a release and do not upload the media to WordPress.org SVN.Scope
Disposable demo only: Docker fixtures, the scenario script, captions, database evidence, and the recorded MP4, WebM, GIF, and poster under
demo/324-seatbelt/. No plugin, readme, orwordpress/assets/change.Invariant / Current Spec Reference
Unreleased demonstration of the tree at
3be6805. WordPress.org currently distributes 0.2.2, which was not the build on camera. The conflict is Bulk Prices optimistic concurrency on the reviewed regular price. The denial is the grant perimeter onPUT /wp-json/wc/v3/products/{id}for a restricted user, matching the #311rest_updatecell. The auditobject_idis the actor user id, not the product id.Relevant Canonical CC-* Tests (
docs/test-plan.md)None added. This PR does not change the test plan. The scenario assertions live in
demo/324-seatbelt/capture.cjsand are demo evidence, not a canonical CC gate.What Changed
demo/324-seatbelt/run.shbuilds a disposable WordPress 7.1.2 / PHP 8.2.34 / WooCommerce 11.1.2 / MySQL 8.0.44 InnoDB site, stages the distribution allowlist, seeds fictional product Northwind Canvas Tote, and tears the stack down.PUT /wp-json/wc/v3/products/10withregular_price49.99. The response is HTTP 403writeleash_perimeter_denied. Product-row sha256 stayseb57b6df695e52df0bba3856b7ed70c485e6233b7d22997bc49f299285ebdde9.out/captions.en.vttare fitted to the 63.8 s MP4.out/scenes.jsonis the longer runner clock and is not the caption timeline.Security Impact
No new enforcement. The clip shows the existing conflict check and the existing REST denial. It does not claim a firewall, universal protection, hostile-plugin isolation, or an agent-safe store. Passwords for the disposable users are generated per run into gitignored
runtime/secrets.json. The committed evidence redacts the application password.PostgreSQL Semantics Considered
Not applicable. The recorded engine is MySQL 8.0.44,
wp_postsInnoDB.Adversarial / Bypass Testing
The recorded request is one real REST PUT from a restricted grant actor. HTTP 403, unchanged product rows, and the debug-log denial line are in
out/evidence.json. This does not add a bypass matrix.Limitations / Unknowns
Preview hash
833f68687def9f21c1b4874ee6a1a5d0e3558665c29dfee1c2dd82d512cfdcadat regular price100.00. After the colleague edit, after Apply, and after the denied PUT, the hash iseb57b6df695e52df0bba3856b7ed70c485e6233b7d22997bc49f299285ebdde9and the regular price is120.00. Counts stay 1 post, 20 meta rows, 1 lookup row across the denial.A fresh
run.shoverwritescaptions.en.vttfrom the runner clock. Check that file against the new pictures before replacing these cues. The H.264 encode logs one OpenH264cmInitParaErrorand the decoded MP4 frames still match the WebM.Playable files:
demo/324-seatbelt/out/writeleash-seatbelt-demo.mp4demo/324-seatbelt/out/writeleash-seatbelt-demo.webmdemo/324-seatbelt/out/writeleash-seatbelt-loop.gifdemo/324-seatbelt/out/writeleash-seatbelt-poster.pngdemo/324-seatbelt/out/captions.en.vttOut-of-Scope Work Explicitly Not Included
Do not merge, do not publish, and do not commit these media files to WordPress.org SVN. The GIF and poster are under the 2 MiB non-icon cap and are still not listing banners (772×250, 1544×500) or icons (128, 256).