diff --git a/package.json b/package.json index 330bc0c..17eaf47 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ipwhitelist", - "version": "0.5.35", + "version": "0.5.36", "description": "IP WhiteList microservice for cloud provider", "main": "server.js", "scripts": { diff --git a/src/db.js b/src/db.js index 3c43c0c..083476d 100644 --- a/src/db.js +++ b/src/db.js @@ -35,7 +35,7 @@ async function ensureSchema() { CREATE TABLE IF NOT EXISTS whitelist_entries ( id SERIAL PRIMARY KEY, company_id INTEGER NOT NULL REFERENCES companies(id) ON DELETE RESTRICT, - value_cidr VARCHAR(18) NOT NULL CHECK (value_cidr ~ '^(\d{1,3}\.){3}\d{1,3}/\d{1,2}$'), + value_cidr VARCHAR(18) NOT NULL CHECK (value_cidr LIKE '%/%'), comment VARCHAR(255), created_by VARCHAR(255) NOT NULL, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), @@ -60,6 +60,13 @@ async function ensureSchema() { ); CREATE INDEX IF NOT EXISTS idx_audit_company_time ON audit_log(company_id, created_at DESC); `); + + // Замена constraint на managed-совместимый (без regex, который ломается от standard_conforming_strings) + await pool.query(` + ALTER TABLE whitelist_entries DROP CONSTRAINT IF EXISTS whitelist_entries_value_cidr_check; + ALTER TABLE whitelist_entries ADD CONSTRAINT whitelist_entries_value_cidr_check CHECK (value_cidr LIKE '%/%'); + `).catch(() => {}); // игнор если нет прав на ALTER + console.log('[db] Schema ensured'); }