[Spike] Keycloak-gated public forms — identity via auth, not self-ID #59
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Spike
Lineage
Standalone — emerged 2026-04-10 while scoping
jersey-public.html(issue #57). Interim fix: Email field added to the public form as a reconciliation key. This spike evaluates whether the next generation of outreach forms (tryout interest, waiver, fundraising opt-in, tournament RSVP, etc.) should instead require Keycloak login so identity is never self-declared.Repo
multiple —
forgejo_admin/westside-landing(frontend auth),forgejo_admin/basketball-api(backend user mapping),forgejo_admin/pal-e-platform(Keycloak realm config)Question
Should we require Keycloak login before any public outreach form can be submitted, and if yes, what's the lightest-weight auth flow (magic link? password? first-time self-registration?) that Westside families will actually complete?
What to Explore
keycloak.tail5b443a.ts.net, realmpal-e): check existing user base, see ifparents/playersalready have Keycloak accounts, verify whether the realm has passwordless/magic-link flow enabledroutes/checkout.pyand any existingkeycloak_userdependency to see how JWT claims are consumed today. Check for akeycloak_subcolumn onparents/playerstables (if absent, plan the backfill)/login//accountroutes and how the SvelteKit app handles redirect-to-keycloak. Determine whether we can reuse an existing pattern or have to build oneparents/playersrows would need to be mapped to Keycloak users (and whether email is reliably populated on both sides for matching)feedback_keycloak_first.md(prior guidance to prefer Keycloak built-ins). No human consultation needed beyond Lucas for the go/no-go decisionSuccess Criteria
keycloak_subschema gap documented (exists? needs adding? backfill plan?)spike-keycloak-gated-forms, taggedspike,active, tied to projectwestside-basketballTime-box
Maximum: 1 session, 2–4 hours. If the Keycloak realm inspection alone blows the budget, stop and escalate — that itself is a finding (it means the auth surface is under-documented and the spike has to become a doc-then-reassess ticket).
Related
westside-basketball— project this affectsstory:WS-S31— the user story that prompted this spike (public jersey intake)forgejo_admin/westside-playground#57— interim email-based solutionfeedback_keycloak_first.md— prior guidance: check Keycloak built-ins before building custom autharch-generic-checkout— existing parent-token flow (System C) for reference on how identity currently attaches to orders