From 0dbec2cbdbc9eabc1c8ef03f503835829d46ae61 Mon Sep 17 00:00:00 2001 From: Giuseppe Raffa <77052701+sesee3@users.noreply.github.com> Date: Wed, 29 Apr 2026 20:01:33 +0200 Subject: [PATCH] fix: update database configurations and remove unused user-related queries Co-authored-by: Copilot --- .claude/settings.local.json | 8 +++++++ api/src/storage/postgres.js | 14 +++++------- auth/src/routes/users.js | 2 -- auth/src/storage/database.js | 44 +----------------------------------- 4 files changed, 15 insertions(+), 53 deletions(-) create mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..d84381b --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,8 @@ +{ + "permissions": { + "allow": [ + "Bash(find /Users/sese/Local/dev/MEB/meb-custom-server/copernicus/routers -type f -name \"*.py\" -exec basename {} \\\\;)", + "Bash(:)" + ] + } +} diff --git a/api/src/storage/postgres.js b/api/src/storage/postgres.js index 55b4124..d312110 100644 --- a/api/src/storage/postgres.js +++ b/api/src/storage/postgres.js @@ -12,9 +12,7 @@ const config = { const pools = { data: new Pool({ ...config, database: process.env.DATA_DB }), - users: new Pool({ ...config, database: process.env.USERS_DB }), - sensors: new Pool({ ...config, database: process.env.SENSOR_DB || 'users' }), - rules: new Pool({ ...config, database: process.env.RULES_DB || 'rules' }), + sensors: new Pool({ ...config, database: process.env.SENSOR_DB || 'sensors' }), } Object.entries(pools).forEach(([name, pool]) => { @@ -25,7 +23,7 @@ Object.entries(pools).forEach(([name, pool]) => { /** * - * @param {'users' | 'references'} db - the name of the database + * @param {'data' | 'sensors'} db - the name of the database * @returns {Promise} */ async function getClient(db) { @@ -39,9 +37,9 @@ async function getClient(db) { * Esegue una query sul database specificato * @param {string} text - Query SQL * @param {any[]} params - Parametri - * @param {'users' | 'references'} name - Quale DB usare + * @param {'data' | 'sensors'} name - Quale DB usare */ -async function query(text, params, name = 'users') { +async function query(text, params, name = 'data') { const client = await getClient(name); try { return await client.query(text, params); @@ -56,7 +54,7 @@ async function query(text, params, name = 'users') { /** * Inserisce una riga in una tabella */ -async function append(table, data, type = 'users') { +async function append(table, data, type = 'data') { const keys = Object.keys(data); const values = Object.values(data); const placeholders = keys.map((_, i) => `$${i + 1}`).join(', '); @@ -68,7 +66,7 @@ async function append(table, data, type = 'users') { /** * Rimuove una riga */ -async function remove(table, condition, params, type = 'users') { +async function remove(table, condition, params, type = 'data') { const sql = `DELETE FROM ${table} WHERE ${condition}`; return await query(sql, params, type); } diff --git a/auth/src/routes/users.js b/auth/src/routes/users.js index 48cac6e..9f688b4 100644 --- a/auth/src/routes/users.js +++ b/auth/src/routes/users.js @@ -5,11 +5,9 @@ const { query } = require('../storage/database'); const userAuth = require('../middlewares/user.security'); const internalAuth = require('../middlewares/internal.security'); -// ─── VALIDAZIONE INPUT ────────────────────────────────────────────── const USERNAME_REGEX = /^[a-zA-Z0-9_.\-]{3,50}$/; const TELEGRAM_ID_REGEX = /^[0-9]{5,15}$/; -// ─── ROTTE INTERNAL (prima del router.use userAuth) ───────────────── router.get('/', internalAuth, async (req, res) => { try { diff --git a/auth/src/storage/database.js b/auth/src/storage/database.js index 0a7cf41..83b95b9 100644 --- a/auth/src/storage/database.js +++ b/auth/src/storage/database.js @@ -5,7 +5,7 @@ const config = { password: process.env.DB_PASSWORD, host: process.env.DB_HOST, port: process.env.DB_PORT, - database: process.env.USERS_DB || process.env.DB_NAME, + database: 'data', max: 10, idleTimeoutMillis: 30000, connectionTimeoutMillis: 5000 @@ -38,48 +38,6 @@ async function getClient() { async function initDb() { await pool.query('SELECT NOW()'); - - try { - await pool.query(`CREATE EXTENSION IF NOT EXISTS pgcrypto;`); - } catch (err) { - console.warn('[DB] Could not create pgcrypto extension:', err.message); - } - - await pool.query(` - CREATE TABLE IF NOT EXISTS users ( - id UUID PRIMARY KEY DEFAULT gen_random_uuid(), - username VARCHAR(50) UNIQUE NOT NULL, - password_hash VARCHAR(255) NOT NULL, - is_active BOOLEAN DEFAULT TRUE, - created_at TIMESTAMP DEFAULT NOW(), - telegram_id VARCHAR(50) UNIQUE - ); - - CREATE INDEX IF NOT EXISTS idx_users_username ON users(username); - CREATE INDEX IF NOT EXISTS idx_users_telegram_id ON users(telegram_id); - `); - - await pool.query(` - CREATE TABLE IF NOT EXISTS sessions ( - id UUID PRIMARY KEY DEFAULT gen_random_uuid(), - user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE, - session_code VARCHAR(64) NOT NULL, - encoded_username TEXT NOT NULL DEFAULT '', - ip_address INET, - user_agent TEXT, - browser VARCHAR(100), - os VARCHAR(100), - device_type VARCHAR(50), - location_country VARCHAR(100), - location_city VARCHAR(100), - created_at TIMESTAMP DEFAULT NOW(), - last_active TIMESTAMP DEFAULT NOW(), - is_revoked BOOLEAN DEFAULT FALSE - ); - - CREATE INDEX IF NOT EXISTS idx_sessions_code ON sessions(session_code); - CREATE INDEX IF NOT EXISTS idx_sessions_user_id ON sessions(user_id); - `); } async function checkPostgres() {