ADR 0017, step 3. `password.beginChange` and `password.change` take the old password's SRP proof and a TOTP or recovery code, and the same keys wrapped under the new password; a session alone changes nothing, and an account without a confirmed authenticator is told to set one up first. `password.setRecoveryKeys` replaces the keys' wrapping under the recovery phrase for a TOTP code, so a device holding the keys can make a new phrase. A change of password ends every other session of the account in every service of the instance; resets of the password and of the account end them all. The register ends its own and keeps a notice per member (`sessions_ended_notice`, a migration that only creates it), told at once and hourly until it confirms, as deletions are told: it names a moment, so sessions made since stay, and the session that asked for a change. A member answering one ends its sessions made before that moment; a member signing someone in after a reset ends its own first and makes the new session only once its clock is past the moment. A reset not due says when it takes effect (`takesEffectAt` on `PasswordRefusedException`), across members too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
39 lines
1.3 KiB
Text
39 lines
1.3 KiB
Text
### AUTOMATICALLY GENERATED DO NOT MODIFY
|
|
###
|
|
### This file is generated by Serverpod when creating a migration, do not modify it
|
|
### manually. If a collision is detected in this file when doing a code merge, resolve
|
|
### the conflict by removing and recreating the conflicting migration.
|
|
|
|
20260916165410927
|
|
20260930094729362-studysets
|
|
20260930122235111-cards
|
|
20260930145136285-reviews
|
|
20261001064926911-tree-tags-assets
|
|
20261002035419149-file-allowance
|
|
20261002191122122-notes
|
|
20261002211346701-learning-paths
|
|
20261003110855698-pdf-sources
|
|
20261007205440868-card-buried-at
|
|
20261008165051407-pdf-position
|
|
20261008223835206-dictionaries
|
|
20261009123850448-dictionary-kind
|
|
20261009145434785-dictionary-entry-version
|
|
20261009184924904-public-profiles
|
|
20261009195137836-published-studysets
|
|
20261009202105673-explore
|
|
20261009215552429-learner-count
|
|
20261009220324372-based-on
|
|
20261009224606274-feedback
|
|
20261010095547719-assistant-connector
|
|
20261012162411835-studyset-deleted-at
|
|
20261013035552510-dictionary-keys
|
|
20261014153932647-release-colour
|
|
20261015171326465-email-sign-in
|
|
20261015220121195-verified-links
|
|
20261015220626303-discussions
|
|
20261017110130653
|
|
20261019121406578-halkyon-base
|
|
20261019201023295-profiles-in-halkyon-base
|
|
20261019204112282-deletion-notices
|
|
20261020111943300-passwords
|
|
20261020125117584-sessions-ended
|