Ecto/Postgres implementation of Attesto.LogoutSessionStore.
One row per (session, Relying Party) pair — carrying the RP's back-channel
and/or front-channel logout URI — backing the schema
AttestoPhoenix.Schema.LogoutSession:
record/1upserts on(sid, client_id)— re-issuing an ID Token for a session the RP already holds refreshes the row (expiry, uri) rather than duplicating it.lease_targets/4reserves live rows atomically. Successful deliveries are deleted withacknowledge_targets/2; failed work is deferred withrelease_targets/2using bounded exponential backoff, and crashed workers' leases expire for retry. The supervisedAttestoPhoenix.Store.Sweeperreclaims due or expired leases every configured:sweep_interval_ms.- The legacy
targets/1,delete/1, andtake_targets/1callbacks remain for compatibility with Attesto 2.5 and earlier callers.
This persists only the OP-side delivery map; the browser login session is the
host's (see Attesto.LogoutSessionStore).