-- ===================================================================== -- 054 — Scadenza dei magic-link del portale stakeholder (Epic C / C5.2 hardening) -- ===================================================================== -- Aggiunge stk_activity_targets.token_expires_at: i magic-link generati da -- StakeholderActivityController::send() ricevono una scadenza (scadenza attività -- +30gg, altrimenti +90gg). StakeholderPortalController::resolveTarget() rifiuta -- i token scaduti (410 TOKEN_EXPIRED). Mitiga il riuso indefinito di un link -- eventualmente trapelato (finding flotta di verifica C5). -- -- Additivo, reversibile. Runner-safe: ALTER nuda; idempotenza garantita dal -- try/catch su errno 1060 nel CLI seed_stakeholder_activities.php. -- ===================================================================== ALTER TABLE stk_activity_targets ADD COLUMN token_expires_at DATETIME NULL DEFAULT NULL AFTER access_token_hash; -- ROLLBACK (manuale): -- ALTER TABLE stk_activity_targets DROP COLUMN token_expires_at