Ét sted at spørge "hvilke postkasser har den her person". Gmails tokens, udløser, etiket, set-liste og målprojekt ligger nu som en række i mailboxes ved siden af dem, der læses over IMAP, og baggrundsjobbet fejer én gang i stedet for to og skifter vej efter rækkens kind. PKCE-værdierne bliver i user_settings. De hører til ét forsøg på at logge ind, ikke til en postkasse, og de skal væk igen når forsøget er ovre. Målprojektet fik sin egen kolonne, som IMAP-postkasser også får glæde af — en arbejdspostkasse, der filer i arbejdsprojektet, er det åbenlyse at ville have. Ikke en fremmednøgle: sletter man projektet, skal destinationen stille holde op med at gælde, ikke afvise sletningen eller tage postkassen med sig. Flytningen kunne først køre nu. Den tømmer indstillingsrækken, og havde den ligget i v0.14.0, mens handlerne stadig læste den, var en fungerende postkasse blevet koblet fra. Værdierne kopieres som chiffertekst — begge tabeller forsegler med samme nøgle — så migrationen behøver ikke nøglen, hvilket en migration heller ikke har noget at gøre med at holde. Der er en prøve for præcis dét: en Gmail forbundet før flytningen, med et forseglet token skrevet som indstillingstabellen skrev dem, kommer ud på den anden side med token, udløser, adresse, målprojekt og set-liste i behold. Co-Authored-By: Claude Opus 5 <[email protected]>
13 lines
696 B
SQL
13 lines
696 B
SQL
-- Where a mailbox's tasks land.
|
|
--
|
|
-- Gmail carried this as `project_id` in its settings blob. It belongs to the
|
|
-- mailbox, and it is worth having for the ones read over IMAP too: a work mailbox
|
|
-- filing into the work project is the obvious thing to want, and the alternative
|
|
-- is everything landing in the inbox to be moved by hand.
|
|
--
|
|
-- Empty means the person's inbox, which is also what an id that no longer names a
|
|
-- project they can write to falls back to. Not a foreign key for that reason: a
|
|
-- deleted project should quietly stop being the destination, not refuse the delete
|
|
-- or take the mailbox down with it.
|
|
ALTER TABLE mailboxes ADD COLUMN project_id TEXT NOT NULL DEFAULT '';
|