v2: таблицы v2_→оригинальные + impersonation модуль (IMPERSONATION_TARGET + EXTRA_COMPANIES)
This commit is contained in:
+9
-9
@@ -8,9 +8,9 @@
|
||||
// 3. Безопасно для production: IF NOT EXISTS.
|
||||
//
|
||||
// ТАБЛИЦЫ:
|
||||
// v2_companies — client_id (W-номер), name, custom_limit
|
||||
// v2_entries — CIDR, комментарий, кто создал/изменил/удалил
|
||||
// v2_audit — все действия: CREATE/UPDATE/DELETE, с impersonated_by
|
||||
// companies — client_id (W-номер), name, custom_limit
|
||||
// whitelist_entries — CIDR, комментарий, кто создал/изменил/удалил
|
||||
// audit_log — все действия: CREATE/UPDATE/DELETE, с impersonated_by
|
||||
//
|
||||
// ИНДЕКСЫ: на company_id для быстрых SELECT + на unique(client_id).
|
||||
// ═══════════════════════════════════════════════════════════════════════════════
|
||||
@@ -18,7 +18,7 @@
|
||||
async function ensureSchema(pool) {
|
||||
await pool.query(`
|
||||
-- Компании: W-номер уникален, upsert через ON CONFLICT
|
||||
CREATE TABLE IF NOT EXISTS v2_companies (
|
||||
CREATE TABLE IF NOT EXISTS companies (
|
||||
id SERIAL PRIMARY KEY,
|
||||
client_id VARCHAR(64) NOT NULL UNIQUE,
|
||||
name VARCHAR(255),
|
||||
@@ -28,7 +28,7 @@ async function ensureSchema(pool) {
|
||||
);
|
||||
|
||||
-- Записи: CIDR + метаданные, soft delete
|
||||
CREATE TABLE IF NOT EXISTS v2_entries (
|
||||
CREATE TABLE IF NOT EXISTS whitelist_entries (
|
||||
id SERIAL PRIMARY KEY,
|
||||
company_id INTEGER NOT NULL,
|
||||
value_cidr VARCHAR(64) NOT NULL,
|
||||
@@ -42,7 +42,7 @@ async function ensureSchema(pool) {
|
||||
);
|
||||
|
||||
-- Аудит: каждое действие с возможностью отследить имперсонацию
|
||||
CREATE TABLE IF NOT EXISTS v2_audit (
|
||||
CREATE TABLE IF NOT EXISTS audit_log (
|
||||
id SERIAL PRIMARY KEY,
|
||||
user_email VARCHAR(255) NOT NULL,
|
||||
company_id INTEGER NOT NULL,
|
||||
@@ -54,11 +54,11 @@ async function ensureSchema(pool) {
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_v2_audit_company_time
|
||||
ON v2_audit(company_id, created_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_audit_log_company_time
|
||||
ON audit_log(company_id, created_at DESC);
|
||||
`);
|
||||
|
||||
console.log('[v2:db] Schema ensured');
|
||||
console.log('[db] Schema ensured');
|
||||
}
|
||||
|
||||
module.exports = { ensureSchema };
|
||||
|
||||
Reference in New Issue
Block a user