- APIKey.alias (unique, required). Creating with an existing alias
renews that key: same key string kept, validity reset to 15d,
reactivated, name/roles updated (response has renewed=true).
- get_actor(): X-API-Key -> key alias, Bearer -> 'admin'.
- markdown & patch create/update record author / created_at /
updated_at / last_modified_by from the actor.
- Idempotent run_migrations() (information_schema-guarded ALTERs +
backfill) so existing tables/data gain the new columns on startup;
create_all still covers fresh DBs.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>