feat(app): adding SimpleLogin to an account (ADR 0020, D21, D23)
halkyon_app reads where the device's person stands with SimpleLogin (nothing to show, linked, or missing) and shows it in SimpleLoginSection, which each app places above the password part: Add SimpleLogin, once added one more way in. GitHub is added to nobody where SimpleLogin is offered, and Learn's Profile offers an anonymous person SimpleLogin alone there (D23). No cut-off day, reminder or banner (D24): with the developer the only person on learn.halkyon.eu, the cut-off is the operator taking GitHub's OAuth app out of the deploy's settings once that account has SimpleLogin. ADR 0020 records it and drops step 5. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
3a93dc4fd8
commit
fad12b4411
1 changed files with 829 additions and 77 deletions
|
|
@ -1,7 +1,8 @@
|
|||
# ADR 0020: Signing in with SimpleLogin only
|
||||
|
||||
- **Status:** decided 23 Oct 2026, by the developer (D1–D20 below), the *Proposal*
|
||||
with it (D15), as D18 to D20 change it.
|
||||
- **Status:** decided 23 Oct 2026, by the developer (D1–D20 below; D21–D24 on 24
|
||||
Oct), the *Proposal* with it (D15), as D18 to D20 change it and D24 drops the
|
||||
cut-off's machinery (D8's code, D10, D22, 10's `ANONYMOUS_SESSIONS_END`, 11, step 5).
|
||||
- **Built (23 Oct 2026), step 1:** the forwarding page (3),
|
||||
`/simplelogin-callback` on the register's web server (halkyon_base's
|
||||
`addSimpleLoginCallbackRoute`, Caddy forwarding the path), ahead of the sign-in, so
|
||||
|
|
@ -63,6 +64,14 @@
|
|||
handle aren't counted. The handle suggested at sign-up is not counted: it tells at
|
||||
most that the name SimpleLogin shared is someone's handle already, once a sign-in.
|
||||
Step 3's deviations accepted by the developer (23 Oct, night).
|
||||
- **Built (24 Oct 2026), step 4 so far:** halkyon_app's sign-in with SimpleLogin (the
|
||||
start screen's Continue with SimpleLogin and its sheet), then adding it to an account
|
||||
(D21, D23): the apps read where their person stands (`SimpleLoginStandingCubit`:
|
||||
nothing to show, linked, or missing) and show it in halkyon_app's
|
||||
`SimpleLoginSection`, which reads it once where a `SimpleLoginStandingScope` is above
|
||||
it, as Learn's Profile has it for its first line and GitHub's button too. A cut-off
|
||||
day in the basics (`SIMPLELOGIN_REQUIRED_FROM`) with D22's banner was built and taken
|
||||
out again before any release (D24).
|
||||
- **Builds on:** ADR 0010 (email sign-in), ADR 0011 (profile pages), ADR 0016 (the
|
||||
register), ADR 0017 (a password, TOTP and the keys).
|
||||
- **Changes:** ADR 0017's way in on an instance that offers SimpleLogin (its keys, their
|
||||
|
|
@ -192,6 +201,39 @@ against app.simplelogin.io on 23 Oct:
|
|||
password) and a SimpleLogin sign-in of the last ten minutes, the two factors of ADR
|
||||
0017's third reading with SimpleLogin's and Proton's own second factor in TOTP's
|
||||
place.
|
||||
- **D21 Adding SimpleLogin is a shared part of the account section** (24 Oct,
|
||||
recommended, over a sheet of its own or each app's own screen): halkyon_app's
|
||||
SimpleLogin part, which each app places above "Password and authenticator" (Learn in
|
||||
its Profile tab's account card, below "Ways to sign in"; Todo in its account sheet):
|
||||
a heading and Add SimpleLogin ("Sign in with SimpleLogin, or with your Proton
|
||||
account."), which opens the sign-in sheet to add it; once added, one more way in, a
|
||||
row without heading lined up with the others, and "SimpleLogin added." Learn's ways
|
||||
in (GitHub, the address) stay listed. (Its reminder in red went with D24.)
|
||||
- **D22 The reminder is a banner at the top of each app's home** (24 Oct, recommended,
|
||||
over the section's red line alone or a notice once a week), in the place and colours
|
||||
of the banner saying the app is too old for the instance, from the release on, not
|
||||
dismissible, until SimpleLogin is added: both days and Add SimpleLogin. Dropped by
|
||||
D24 the same day.
|
||||
- **D23 Anonymous people keep their account with SimpleLogin alone** (24 Oct,
|
||||
recommended, over offering GitHub beside it until the cut-off): where the instance
|
||||
offers SimpleLogin, Learn's Profile offers an anonymous person Add SimpleLogin ("Add
|
||||
SimpleLogin to keep it") and no longer "Sign in with GitHub", and GitHub is added to
|
||||
nobody there (`GitHubOffer.linking`); the start screen still signs in a GitHub
|
||||
account someone has, until GitHub ends.
|
||||
- **D24 No cut-off machinery while the developer is learn.halkyon.eu's only person**
|
||||
(24 Oct, the developer: "There is no other user than me, currently. So, is that really
|
||||
necessary?", then "Please continue" to dropping it): the cut-off (D8) becomes
|
||||
configuration. The developer adds SimpleLogin to their account (D21), then the
|
||||
operator takes GitHub's OAuth app out of `deploy/.env` (`GITHUB_CLIENT_ID`,
|
||||
`GITHUB_CLIENT_SECRET`), `SIGN_IN_WAYS=simplelogin` keeping passwords and codes off.
|
||||
So no cut-off day, no reminder (11, D22, the section's red line), no ending of
|
||||
sessions and no deletion 30 days later (D10), no step 5, and no
|
||||
`ANONYMOUS_SESSIONS_END` (10), as no other instance has anonymous people to move.
|
||||
Built and unreleased, the day and the banner went again at once (over keeping them
|
||||
idle): nothing has read the basics' fields, and an instance with people to move can
|
||||
take them back from git (`f60d52e7` on `feat/simplelogin-sign-in` before it was
|
||||
amended). Anonymous accounts still go (D4) and handles are still required (D5): that
|
||||
is where the design ends, not a migration.
|
||||
- **Also (23 Oct):** the developer's own account moves by adding SimpleLogin to it while
|
||||
signed in with GitHub; the instance's SimpleLogin app goes up for approval once
|
||||
halkyon.app/learn exists, before learn.halkyon.eu switches.
|
||||
|
|
|
|||
Loading…
Reference in a new issue