Lab 6 — Tenant-Boundary Escape Room
START HERE · YOUR LAB FILES
Open these resources
Each card opens the supplied file. Keep these alongside the lab; open the same paths in your downloaded course folder when using your AI.
- 1authorization-requests.mdSupplied evidence · read this source
fixtures/authorization-requests.md - 2allocation-requirements.mdSupplied evidence · read this source
fixtures/allocation-requirements.md
Underlined filenames throughout the steps are clickable. A file you create yourself links to saving instructions, not a nonexistent download.
On this page
SESSION 06 / 35-minute practice lab / within a 2-hour session
Check permission boundaries with independent negative and positive controls.
Four-lock evidence for both candidates, a bounded finding and a regression recommendation.
Before you start · recall, then check
From the journey lab, when was denial the expected behavior? What would a positive control add to that investigation?
Use about two minutes of the existing arrival/discussion time. Try in your own words, then check the source with a partner or coach. This is ungraded practice, not a new submission.
Need a hand? A supported route
Use the supplied portable request collection and complete one lock at a time. Record status and body. Keep the authorization probe distinct from a persistent update; simulated selectors are not real authentication.
Time: 35 minutes
Team: pairs; use the portable request runner and collection
Quick start
First action: Start the local server and open a second terminal for the request runner.
Finish with: Four locks compared on both candidates, an evidence report and regression proposal.
Step-by-step help for Session 06 — smaller steps, checkpoints and troubleshooting. Saving and asking for help.
Mac / Linux / Windows
Submission: prepare the deliverables below using the public-safe packet and review workflow. One PR per lab; private review is equally available. Never publish grades or personal information.
Use the cross-platform Node GET examples in the platform guide and Lab setup, or the browser Network panel. Windows PowerShell's curl alias and Command Prompt's quoting differ from bash; do not paste Unix curl examples blindly. Record HTTP status as well as body, and use the local simulator for mutations.
See the platform guide and included local lab track.
Scenario
Two synthetic organizations, Atlas and Beacon, share one CRM instance. You must prove that role and organization boundaries hold despite confusing UI hints and deliberately malformed requests.
Mission
Run all four locks against both candidates and report whether each control holds or fails. A reproduced violation is a successful investigation, not a reason to invent passing evidence. Use R1–R2 and the local PATCH contract:
- Read boundary: as Beacon staff, list contacts and request A-101 directly. The list must contain only Beacon data; direct Atlas detail must be denied.
- Write-permission boundary: as Beacon owner, request PATCH authorization for A-101. It must not allow a cross-organization action. Repeat as Beacon staff against B-201 to check role denial independently.
- Positive control: as Beacon owner, request PATCH authorization for B-201. Expect
allowed:true, butpersisted:false. Reread the contact to confirm no mutation occurred. - UI/API agreement: as Beacon staff, click Send inquiry update (simulation), then call
/api/senddirectly. Both must deny permission under R1. The button is clickable; the response supplies the denial.
PATCH here is an authorization probe, not a record update. Allocation writes are unsupported (405), which does not prove tenant authorization. No part of this exercise proves OAuth, database policies or persistent writes.
Rules
- Never paste a token, cookie, or password into chat or a model.
- Use only supplied synthetic identifiers.
- Capture status, safe response summary, and expected authorization outcome; redact headers.
Deliverables
- a four-lock evidence table;
- an evidence packet for a discovered vulnerability or an isolation-verification report;
- one recommendation for a regression test.
Stretch
Describe which layer would still protect data if a client-side role check accidentally disappeared.
Product Studio homework — Check a real boundary
Exercise validation, persistence and malformed input in your product. If it has accounts, test appropriate positive/negative permissions too; otherwise diagram a hypothetical permission boundary and label it unimplemented.
Budget two to three hours, including evidence and review preparation; ask for coaching or scope adjustment if blocked. Record progress using the milestone template in your own product repository, not the practice packet. See the complete project roadmap, GitHub workflow and small-model guide. The practice lab above remains separate from your individual product.
Leave with a next step
Use the existing closing/debrief time: explain one claim you verified, one limit and your next action. Reuse the lab’s artifacts; this adds no separate worksheet or graded test.
Practice evidence uses the lab submission workflow. Product Studio work belongs in your own product repository. These are different destinations.
Product Studio roadmap · Sharing and review guide
Opening the next session does not mark this one complete. Progress tracking is optional and does not award a credential.
