Création de la feature API V1
This commit is contained in:
@@ -2254,4 +2254,29 @@ db.exec('CREATE INDEX IF NOT EXISTS idx_objectifs_investisseur ON objectifs(inve
|
||||
}
|
||||
}
|
||||
|
||||
// ── Migration : table api_keys ───────────────────────────────────────────
|
||||
// Clés API générées par l'utilisateur pour un accès programmatique/MCP.
|
||||
// Chaque clé est scopée à un investisseur précis (usage single-user
|
||||
// multi-investisseur — pas de notion multi-tenant ici). Seul le hash SHA-256
|
||||
// est stocké ; la valeur en clair n'est montrée qu'une fois à la création.
|
||||
// `key_prefix` (8 premiers caractères) permet d'identifier une clé dans
|
||||
// l'UI sans jamais réafficher la valeur complète.
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS api_keys (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
investisseur_id INTEGER NOT NULL REFERENCES investisseurs(id) ON DELETE CASCADE,
|
||||
nom TEXT NOT NULL,
|
||||
key_prefix TEXT NOT NULL,
|
||||
key_hash TEXT NOT NULL UNIQUE,
|
||||
scopes TEXT NOT NULL DEFAULT 'read',
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
last_used_at TEXT,
|
||||
revoked_at TEXT
|
||||
)
|
||||
`);
|
||||
db.exec('CREATE INDEX IF NOT EXISTS idx_api_keys_user ON api_keys(user_id)');
|
||||
db.exec('CREATE INDEX IF NOT EXISTS idx_api_keys_inv ON api_keys(investisseur_id)');
|
||||
db.exec('CREATE INDEX IF NOT EXISTS idx_api_keys_hash ON api_keys(key_hash)');
|
||||
|
||||
export default db;
|
||||
|
||||
Reference in New Issue
Block a user