Run dryrun
Run dryrun against a live environment. Then stop.
Guardrails
- MUST confirm
SCALEKIT_ENVIRONMENT_URLandSCALEKIT_CLIENT_IDbefore the command. - MUST ask for
organization_idbefore--mode=sso. - MUST show the CLI output and explain pass/fail in plain language.
- MUST keep dryrun local. MUST NOT expose
http://localhost:12456/auth/callbackto the internet. - MUST NOT write login. Name
implement-saaskitinstead. - MUST NOT finish a go-live checklist. Name
check-saaskit-prodinstead.
Gotchas
- The CLI flag is
--env_url. The app env name isSCALEKIT_ENVIRONMENT_URL. NeverSCALEKIT_ENV_URL. - Register
http://localhost:12456/auth/callbackunder Authentication → Redirect URIs. Spell the port and path exactly. - Node 20+. Local only. Port
12456. Default mode isfsa. - SSO needs
--organization_id(org_…). Copy it from the dashboard. Do not invent it. - Client ID starts with
skc_. Dashboard → Developers → Settings → API Credentials. - Dryrun does not persist tokens after
Ctrl+C. - Dashboard steps are user actions. Print the checklist. Wait. Do not click the dashboard.
Step 1 — Confirm env and Node
Need Node 20+. Need these two values:
echo $SCALEKIT_ENVIRONMENT_URL
echo $SCALEKIT_CLIENT_ID
SCALEKIT_CLIENT_ID must start with skc_. If either value is missing, collect them from app.scalekit.com → Developers → Settings → API Credentials. Do not invent values.
Done when: Node is 20+, both values exist, and the client ID starts with skc_.
Step 2 — Register the dryrun callback
Print this checklist. Wait for the user.
- Dashboard → Authentication → Redirect URIs
- Add
http://localhost:12456/auth/callbackexactly
Done when: the dashboard lists that exact URL.
Step 3 — Pick the mode
| Mode | When |
|---|---|
fsa |
Default. Hosted login, callback, session. |
sso |
User asked to test SSO. Needs --organization_id. |
Default to fsa unless the user asked for SSO. If they asked for SSO and did not give organization_id, ask. Do not guess an org_….
Done when: the mode is fsa, or the mode is sso with a real org_….
Step 4 — Run dryrun
Full-stack auth:
npx @scalekit-sdk/dryrun \
--env_url="$SCALEKIT_ENVIRONMENT_URL" \
--client_id="$SCALEKIT_CLIENT_ID" \
--mode=fsa
SSO:
npx @scalekit-sdk/dryrun \
--env_url="$SCALEKIT_ENVIRONMENT_URL" \
--client_id="$SCALEKIT_CLIENT_ID" \
--mode=sso \
--organization_id=<org_…>
The browser opens. The user signs in. The local dashboard must show the user profile and tokens.
If port 12456 is in use, stop the other process and retry.
Done when: the local dashboard shows the user profile and tokens.
Step 5 — Explain the result
Show the command output. Then map failures:
| Symptom | Next step |
|---|---|
redirect_uri mismatch |
Add http://localhost:12456/auth/callback under Authentication → Redirect URIs |
| Invalid client | Copy skc_… from the same env as --env_url |
| Organization error | Confirm the org exists, SSO is on, and the id is org_… |
| Port in use | Stop the process on 12456 and retry |
Done when: the user has a plain-language pass or fail.
Step 6 — Stop
Do not write login. Do not start the go-live checklist.
Done when: dryrun showed the profile and tokens, or the failure has a next step, and this skill has stopped.
Reach for
setup-saaskitif env is missingimplement-saaskitto write login after dryrunimplement-ssoif SSO mode failed on a missing connectioncheck-saaskit-prodfor the go-live record