Skip to content

Use App as the generic demo actor - #13

Merged
delano merged 6 commits into
mainfrom
feat/app-actor-rename
Sep 6, 2026
Merged

delano merged 6 commits into
mainfrom
feat/app-actor-rename

Conversation

@delano

@delano delano commented Sep 6, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Rename the user-facing OTS actor to App across every SSO demo, trace, template, and index entry, while retaining Onetime Secret as the concrete example application.
  • Clarify the footer fidelity disclosure by removing duplicate framing and using plainer language for mock-service, reconstructed-trace, and vendor-variation caveats.

Review guide

  • Start with the actor configuration and representative protocol steps to confirm App consistently replaces OTS in the rendered flow while identifiers and example URLs remain unchanged.
  • Review the README and landing-page language to ensure Onetime Secret remains identified as the example behind the generic App role.
  • Check the footer info panel for the shorter mock-service note and the revised trace disclaimer.

Validation

  • Pre-commit, pre-push, and CI checks will validate this change.

…the concrete example

The actor row read Browser, OTS, Google: two roles and one product
abbreviation. Every demo now labels the application actor "App", matching
the other role-named actors, and the from/to fields in every HTTP entry
follow so the actor dots keep resolving. Step titles, descriptions,
security notes and entry notes refer to "the app"; JSDoc, README and the
index page follow the same wording.

Onetime Secret remains the concrete example: the mock screens carry its
name (the "OTS" abbreviation is retired from user-visible copy so it no
longer needs introducing), the Okta group becomes "Onetime Secret Admins",
and the secrets.example.com URLs, the _ots_realm cookie and the ots_scim_tk
token prefix are unchanged. Actor keys (ots), color tokens and the
screens/ots directory are identifiers, not labels, and are untouched.

Agreed in the step-view hierarchy design review (PR #12 follow-up).
Copilot AI lite review requested due to automatic review settings September 6, 2026 02:01
@greptile-apps

greptile-apps Bot commented Sep 6, 2026

Copy link
Copy Markdown

Required label not found on this PR.

@claude

claude Bot commented Sep 6, 2026 •

Copy link
Copy Markdown

Claude finished @delano's task —— View job


Review checklist

  • Gather context (repo structure — no CLAUDE.md present)
  • Review diff for renamed actor label consistency
  • Check for missed "OTS" references / inconsistent naming
  • Check test coverage for the rename
  • Check for security/performance concerns
  • Post final review feedback

Review

This is a clean, mechanical rename PR that does exactly what it says. I read through the full diff and spot-checked every file category (configs, steps, screens, tests, docs, index page).

Correctness

  • grep -rn "OTS" across src/**/*.ts and **/*.svelte returns zero hits — no stray abbreviations were missed.
  • from/to fields in diff.test.ts and executor.test.ts were updated in lockstep with the steps.ts HTTP entries (src/lib/sso-demos/shared/live/diff.test.ts, src/lib/sso-demos/shared/live/executor.test.ts), so the actor-dot resolution logic (which matches on label string) stays correct.
  • The intentional exclusions listed in the PR body — actor key ots (_template/config.ts:22), bg-actor-ots tokens, screens/ots/ directory name, secrets.example.com, _ots_realm, ots_scim_tk — are indeed untouched. Good judgement distinguishing identifiers from user-facing labels.
  • Prose was adapted, not just find/replaced: e.g. README.md and src/lib/sso-demos/README.md reword sentences around "the app" naturally rather than leaving grammatically awkward substitutions. Same for +page.svelte's closing blurb, which was rewritten to reference the App actor label directly instead of the old "(OTS)" parenthetical.
  • Screens that show the product to the end user (GoogleOAuth.svelte, OktaAdminConsole.svelte, Dashboard.svelte, TeamMembers.svelte) now say "Onetime Secret" in full instead of the "OTS" abbreviation, matching the stated intent that the concrete example no longer needs the abbreviation introduced.

Minor nits (non-blocking)

  • screens/ots/Dashboard.svelte:3 and TeamMembers.svelte:3 JSDoc now read "App dashboard screen (Onetime Secret) - the authenticated..." / "App team-members admin page (Onetime Secret) (secrets.example.com/account/team)." — the double parenthetical-style phrasing is a little clunky compared to the rest of the PR's prose quality, but it's a comment, not user-facing copy, so low priority.
  • Since this is a scripted rename across 40 files, it might be worth a quick follow-up grep for "OTS" in CI (e.g. a lint rule or test asserting no bare "OTS" string remains outside the allow-listed identifiers) to guard against regressions if new demos are added later using the old naming by copy-paste from an old branch/PR. Not required for this PR, just a thought for the _template/ scaffold.

Test coverage

  • The two touched test files only needed literal string updates (OTS → App) since they assert on the from/to fields directly; no new test scenarios are needed for a pure rename. Coverage is otherwise unaffected — the rename doesn't touch matching/resolution logic itself, just data.

Security / performance

  • No security-relevant code paths touched (no auth logic, no URLs/tokens/cookies changed). No performance impact — this is a string-literal-only change.

Environment note: I wasn't able to run pnpm install / pnpm test / pnpm check in this sandbox (command approval required and not in the allowed tool list), so I verified correctness by reading the full diff and cross-referencing every changed file rather than executing the test suite. The PR body's reported results (pnpm test: 41 passed, pnpm check: 0 errors) look plausible given the diff is purely literal string substitutions with no logic changes.

Overall: LGTM. Well-scoped, consistent, and the identifier/label distinction is applied correctly throughout.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

Only a minor grammar issue was found in updated demo copy; the renaming is consistent across configs/steps and aligned with updated tests/docs.

Pull request overview

This PR standardizes the “application” actor naming across the SSO demo suite by renaming the actor label from OTS to the generic role App, while keeping Onetime Secret as the concrete example product in UI mockups and documentation.

Changes:

  • Renamed the app actor label from OTS → App across demo configs and step HTTP from/to fields so actor-dot resolution remains correct.
  • Updated step copy, subtitles, and JSDoc headers to refer to “the app”, while updating mock UI text to use “Onetime Secret” (full name).
  • Updated shared live-mode tests and README docs to match the new actor label semantics.
File summaries
File Description
src/routes/+page.svelte Updates demo subtitles and homepage copy to use “the app” / “App” label language.
src/lib/sso-demos/sp-saml-okta/steps.ts Renames SP actor references in step narratives and HTTP exchanges to App.
src/lib/sso-demos/sp-saml-okta/SPSAMLOkta.svelte Updates demo header/JSDoc text to “App”.
src/lib/sso-demos/sp-saml-okta/config.ts Changes actor/protocol-stack labels from OTS → App and updates subtitle copy.
src/lib/sso-demos/slo-saml-okta/steps.ts Renames SP actor references in SLO narrative and exchanges to App.
src/lib/sso-demos/slo-saml-okta/SLOSAMLOkta.svelte Updates demo header/JSDoc text to “App”.
src/lib/sso-demos/slo-saml-okta/config.ts Changes actor/protocol-stack labels from OTS → App.
src/lib/sso-demos/shared/live/executor.test.ts Updates live executor expectations to route SCIM traffic to/from App.
src/lib/sso-demos/shared/live/diff.test.ts Updates HTTP diff tests to expect App as the SCIM server target/source.
src/lib/sso-demos/screens/ots/TeamMembers.svelte Updates mock app UI branding to “Onetime Secret” and adjusts comments to “App”.
src/lib/sso-demos/screens/ots/SignInDiscovery.svelte Updates screen header docs to “App (Onetime Secret)”.
src/lib/sso-demos/screens/ots/SignedOut.svelte Updates screen header docs to “App (Onetime Secret)”.
src/lib/sso-demos/screens/ots/DashboardBob.svelte Updates screen header docs to “App (Onetime Secret)”.
src/lib/sso-demos/screens/ots/Dashboard.svelte Updates mock app UI branding to “Onetime Secret” and adjusts header docs.
src/lib/sso-demos/screens/idp/OktaDashboard.svelte Updates Okta dashboard mock comments to “App tile”.
src/lib/sso-demos/screens/idp/OktaAdminConsole.svelte Updates mock admin console copy to “Onetime Secret application”.
src/lib/sso-demos/screens/idp/LogtoSignIn.svelte Updates IdP mock UI text to “Sign in to Onetime Secret”.
src/lib/sso-demos/screens/idp/GoogleOAuth.svelte Updates consent UI text to “Onetime Secret”.
src/lib/sso-demos/screens/idp/Auth0Universal.svelte Updates IdP mock UI text to “Sign in to Onetime Secret”.
src/lib/sso-demos/scim-okta/steps.ts Renames SCIM server actor references to App, updates Okta group naming, and adjusts explanatory copy.
src/lib/sso-demos/scim-okta/SCIMOkta.svelte Updates demo header/JSDoc text to reflect “the app” as SCIM server.
src/lib/sso-demos/scim-okta/config.ts Changes actor/protocol-stack labels from OTS → App and updates overview wording.
src/lib/sso-demos/README.md Updates docs to describe “App screens” and clarifies screens/ots are Onetime Secret mock screens.
src/lib/sso-demos/oidc-saml-bridge/steps.ts Renames the application actor references in step narrative and HTTP exchanges to App.
src/lib/sso-demos/oidc-saml-bridge/OIDCSAMLBridge.svelte Updates demo header/JSDoc text to avoid “(OTS)” and use generic “application”.
src/lib/sso-demos/oidc-saml-bridge/config.ts Changes actor/protocol-stack labels from OTS → App.
src/lib/sso-demos/oidc-entra/steps.ts Renames application actor references across narrative and HTTP exchanges to App.
src/lib/sso-demos/oidc-entra/OIDCEntra.svelte Updates demo header/JSDoc text to “App + Entra”.
src/lib/sso-demos/oidc-entra/config.ts Changes actor/protocol-stack labels from OTS → App and updates subtitle copy.
src/lib/sso-demos/oauth2-google/steps.ts Renames application actor references across narrative and HTTP exchanges to App.
src/lib/sso-demos/oauth2-google/OAuth2Google.svelte Updates demo header/JSDoc text to “App + Google”.
src/lib/sso-demos/oauth2-google/config.ts Changes actor/protocol-stack labels from OTS → App and updates subtitle copy.
src/lib/sso-demos/multi-idp-discovery/steps.ts Renames application actor references across narrative and HTTP exchanges to App.
src/lib/sso-demos/multi-idp-discovery/config.ts Changes actor/protocol-stack labels from OTS → App and updates overview wording.
src/lib/sso-demos/idp-saml-okta/steps.ts Renames application actor references across narrative and HTTP exchanges to App.
src/lib/sso-demos/idp-saml-okta/IdPSAMLOkta.svelte Updates demo header/JSDoc text to “the app (SP)”.
src/lib/sso-demos/idp-saml-okta/config.ts Changes actor/protocol-stack labels from OTS → App and updates subtitle copy.
src/lib/sso-demos/_template/Demo.svelte Updates template comments/docs to describe “App screens” and “Authenticated app dashboard”.
src/lib/sso-demos/_template/config.ts Updates template actor/protocol-stack default label to App.
README.md Updates repo-level README copy and demo table descriptions to use “App” wording consistently.
Review details
  • Files reviewed: 40/40 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/lib/sso-demos/scim-okta/steps.ts Outdated
Remove duplicate educational-demo framing from the footer panel and describe trace limitations in plain language while preserving the mock-service and vendor-variation caveats.
@delano delano changed the title Rename the OTS actor to the generic role "App" Use App as the generic demo actor Sep 6, 2026
…ookie

The step-3 hedge claimed a missing cookie does not by itself stop the
Wiki's response from expiring a known cookie name. Chrome rejects
Set-Cookie for SameSite=Lax cookies in cross-site responses, and
Safari and Firefox block third-party cookie writes, so the browser
cookie always survives front-channel SLO. State that plainly in the
description, security note, and request note; server-side revocation
is the only lever.
…e nuance

Copilot flagged the sentence fragment after the semicolon in the SCIM
step-6 security note; rewritten as two sentences.

QA on the previous SLO fix noted that "survives no matter what" was
too strong: cookie identity is name/domain/path, so a deletion
reissued as SameSite=None; Secure is accepted by Chrome in default
settings. Safari blocks it and Firefox partitions it, so the
cross-browser assumption stays: expect the cookie to survive and
revoke server-side.
@delano
delano merged commit a9e893d into main Sep 6, 2026
4 checks passed
@delano
delano deleted the feat/app-actor-rename branch September 6, 2026 04:03
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