RequestNest — Manual Test Checklist¶
A hands-on walkthrough against a real Postman account and a scratch git repo. Go through it in order; for each step there's the command, what you should see, and a Friction? line — jot anything that felt clunky, surprising, or that you had to think about. That's the raw material for making this mindless.
Tip: keep two terminals open — one for the "publisher" repo dir, one for the "consumer" repo dir (Part 3).
Part 0 — Prerequisites (one time)¶
- [ ]
python --versionshows 3.10 or newer. - [ ]
git --versionworks, andgit config --global user.name/user.emailare set. - [ ] RequestNest installed:
requestnest --versionprints a version. - [ ] You have a Postman API key (
PMAK-…) from Settings → API keys. - [ ] (Ideal) A second free Postman account + its API key, to play the "consumer" in Part 3. (Fallback: reuse the same account — noted inline.)
- [ ] An empty remote git repo you can push to (GitHub/GitLab), e.g.
git@github.com:you/rn-scratch.git.
Friction? __________
Part 1 — Publisher: first-time setup & publish¶
Set up source material in Postman first:
- [ ] In Postman, create two collections (e.g.
Orders API,Billing API), each with a request or two. - [ ] Create an environment (e.g.
Staging) with a normal variable (base_url) and a secret variable — set its Type = secret (e.g.api_token).
Now wire up the repo:
- [ ] Clone your empty remote and enter it:
git clone <remote> rn-pub && cd rn-pub - [ ]
requestnest init - Expected: prompts for your API key → "Authenticated as …" → lists your
collections, then environments → you pick the two collections +
Staging. - Expected: ends with "Initialized RequestNest: 2 collection(s), 1
environment(s). Run
requestnest pushto publish." - [ ] Confirm files exist:
.requestnest.yaml,.requestnest.state.yaml, and.gitignorenow lists the local files.
Friction? __________
- [ ]
requestnest push - Expected: "Wrote 3 resource file(s)." → "Committed." → "Pushed to origin/main."
- Expected: a warning listing secrets to share out-of-band, e.g.
staging: api_token. - [ ] Inspect the committed environment file:
collections/+environments/staging.json. - [ ] The real token value is NOT present.
- [ ]
api_tokenshows"{{api_token}}". - [ ]
.requestnest.secrets.example.yamlexists and listsapi_token(no value). - [ ] Confirm the secret value was captured locally (gitignored):
open
.requestnest.secrets.yaml→ it has the realapi_token. - [ ]
git log --onelineshows the RequestNest commit;git statusis clean.
Friction? __________
Part 2 — Safety features (publisher repo)¶
- [ ] Dry run: change a request in Postman, then
requestnest push --dry-run. - Expected: a semantic diff preview; "No files written, no commits made."
- Expected:
git statusstill clean afterwards. - [ ] Diff:
requestnest diff - Expected: human-readable
+ / - / ~changes (e.g.~ Orders API/get-order (method)), not raw JSON. Secret values never shown. - [ ] Verify:
requestnest verify→ "verify passed". - [ ] Unmarked-secret guard: in Postman, put a fake token that looks real
(e.g. an
Authorization: Bearer AKIAIOSFODNN7EXAMPLEheader) into a request, thenrequestnest push. - Expected: it refuses, points at the location, and writes nothing.
- [ ] Remove the fake token afterwards.
- [ ] Secrets check:
requestnest secrets check→ "All required secret values are present." (You have them locally as the publisher.) - [ ] List / status:
requestnest listandrequestnest statusrender readable tables/summaries with sensible values.
Friction? __________
Part 3 — Consumer: onboarding a teammate¶
Use the second Postman account's API key here (or reuse the first — see note).
- [ ] In a new directory, clone the same remote:
git clone <remote> rn-consumer && cd rn-consumer - [ ]
requestnest setup - Expected: prompts for the (consumer's) API key → "Joined existing config…" →
imports collections/environments into that workspace → prompts for the
missing secret
staging.api_token. - [ ] Paste the real value (the one the publisher shared) when prompted.
- Expected: "Imported 3 resource(s)…", then "Setup complete."
- [ ] Open the consumer's Postman workspace:
- [ ] The two collections and
Stagingenvironment are present. - [ ]
Staging.api_tokenholds the real value (resolved from your local secrets).
Single-account fallback: if you reused the first account,
setupwill just re-map/update the same resources rather than create new ones — still a valid check of the join + secret-prompt path, just not a true "fresh workspace".
Friction? __________
Part 4 — The day-to-day loop & conflict handling¶
Simulate two people editing.
- [ ] In the consumer repo: edit a request in that workspace, then
requestnest push. Confirm it commits & pushes. - [ ] In the publisher repo:
requestnest pull - Expected: it
git pulls and imports the consumer's change into your workspace. - [ ] Verify the change appears in your Postman.
- [ ] Conflict guard: now make the publisher and consumer each edit the same
request without pulling, and have the second one to
pushhit the guard. - Expected: "Remote is ahead … changed resources you're about to overwrite …
run
requestnest pullfirst." Nothing is clobbered. - [ ]
requestnest pull, reconcile in Postman, thenpushsucceeds. - [ ] (Optional) confirm
push --forcewould override the guard.
Friction? __________
Part 5 — Cleanup¶
- [ ] Delete the scratch repos (
rn-pub,rn-consumer) and the remote if you made it just for this. - [ ] (Optional) Remove the test collections/environments from your Postman account(s).
Overall impressions¶
- Biggest friction point: ______
- Anything you expected the tool to do automatically but it didn't: ______
- Anything that felt risky / unclear about secrets: ______
- Naming / wording that confused you: ______
- Would you trust this for real team use yet? ______