Skip to content

Lab 1: fix three README success signals that don't match real CLI output - #1

Merged
ajy0127 merged 1 commit into
GRCEngClub:mainfrom
abdie-grcengineer:feedback/lab-1-readme-fixes
Sep 16, 2026
Merged

ajy0127 merged 1 commit into
GRCEngClub:mainfrom
abdie-grcengineer:feedback/lab-1-readme-fixes

Conversation

@abdie-grcengineer

Copy link
Copy Markdown
Contributor

Ran through Lab 1 end to end on a fresh free account. The setup works and all resources build correctly. Three places in labs/01-sandbox/README.md, though, tell the learner to look for something the CLI doesn't actually print — each one can make a correct step look broken. Fixes below.

1. Step 3 — success signal references a field the command doesn't return

The README says the az role assignment create output shows roleDefinitionName: Reader. It doesn't. The create command only returns roleDefinitionId, which is a GUID path (ends in acdd72a7-3385-48ef-bd42-f606fba81ae7, the built-in Reader role). A learner scans the output for the word "Reader," never finds it, and reasonably thinks they did the step wrong — even though the assignment is correct.

Fix: base the success check on what the output actually contains (principalType: Group + the RG-scoped scope), note that the role shows up only as roleDefinitionId on create, and point to az role assignment list (or the read-back command already in the step) to see the friendly roleDefinitionName.

2. Step 4 — placeholder email is never flagged for replacement

Step 2 explicitly says "Replace you@example.com with your real email." Step 4 shows ./create-budget.sh you@example.com with no such note. That argument becomes the contactEmails for both budget alerts (80% actual, 100% forecast), so a learner who copies it verbatim sends their alerts to a mailbox they don't own and never hears about a runaway.

Fix: add the same "replace with your real email" instruction before the command, and say explicitly that this address is where the budget alerts are delivered.

3. Verify checklist #1 — the given command doesn't show the subscription

The first Verify item is az account management-group show --name mg-grc --expand. --expand only goes one level, so it shows mg-grc → mg-grc-sandbox but not the subscription. Since step 1's subscription add returns silently, a learner running this to confirm their work sees no subscription and can't tell whether it attached.

Fix: add --recurse so the command shows all three levels (mg-grc → mg-grc-sandbox → subscription) and actually confirms the silent add worked.

All three are documentation-only changes to labs/01-sandbox/README.md.

- Step 3: create output returns roleDefinitionId (GUID), not roleDefinitionName
- Step 4: tell learners to replace you@example.com; that address gets the budget alerts
- Verify: --expand alone hides the subscription; --recurse shows the full tree
@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing

@coderabbitai

coderabbitai Bot commented Sep 14, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 98cd9a42-018f-43f0-8099-e9f3e6c9959d


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ajy0127
ajy0127 merged commit 6876410 into GRCEngClub:main Sep 16, 2026
4 checks passed
ajy0127 added a commit that referenced this pull request Sep 16, 2026
- Lab 3: answer the open question from PR #3 — the deny test now tees its
  output to lab3-deny-evidence.txt and the text says the raw error (with the
  Policy identifiers block) is the artifact, not JSON
- Lab 5: derive TF_VAR_state_storage_account from backend.hcl (same fix
  PR #4 made in Lab 4 — the placeholder produced a cryptic 'no such host')
- Lab 2: note the one-time log-analytics CLI extension prompt (query block
  verified live against law-grc-sandbox)
- VALIDATION-LOG: F16-F19 recording all four runthrough findings; stage 03
  rename verified as a no-op plan against the live environment on azurerm 4.81

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants