feat(wp-c): migration colonnes token par poste (patch 1, inerte)

Ajoute token_hash + token_issued_at à enrolled_agents via ALTER TABLE
idempotent (_init_db). Colonnes inertes : aucun branchement auth, runtime
inchangé (tests WP-B verts). Base du token par poste (WP-C, cf DETTE-015).

TDD: tests/unit/test_wpc_migration.py (présence, idempotence, préservation
des données d'une base existante). 3 tests + non-régression WP-B = 9 passed.

refs DETTE-015

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-06-09 21:04:18 +02:00
parent 09f65cecbe
commit f7f6926410
2 changed files with 106 additions and 0 deletions

View File

@@ -111,6 +111,20 @@ class AgentRegistry:
"CREATE INDEX IF NOT EXISTS idx_enrolled_agents_machine "
"ON enrolled_agents(machine_id)"
)
# WP-C Patch 1 : colonnes « token par poste », migration additive
# idempotente. Inertes tant que l'auth par poste n'est pas branchée
# (patchs WP-C ultérieurs). Voir DETTE-015.
existing_cols = {
row[1]
for row in conn.execute(
"PRAGMA table_info(enrolled_agents)"
).fetchall()
}
for col in ("token_hash", "token_issued_at"):
if col not in existing_cols:
conn.execute(
f"ALTER TABLE enrolled_agents ADD COLUMN {col} TEXT"
)
# ------------------------------------------------------------------
# Lecture