From 253df0e6bc34a658fb767d1ee7b6e7e7ac8e5709 Mon Sep 17 00:00:00 2001 From: marco370 <48531002-marco370@users.noreply.replit.com> Date: Mon, 17 Nov 2025 18:26:01 +0000 Subject: [PATCH] Add table for managing MikroTik router configurations Create a new SQL table named 'routers' to store MikroTik router configuration details, including IP addresses, credentials, and status, with example data. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7a657272-55ba-4a79-9a2e-f1ed9bc7a528 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 4b47610c-d428-476f-95dd-d18864bbda27 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/449cf7c4-c97a-45ae-8234-e5c5b8d6a84f/7a657272-55ba-4a79-9a2e-f1ed9bc7a528/1P26v7M --- database-schema/create_routers.sql | 37 +++++ database-schema/schema.sql | 221 ----------------------------- 2 files changed, 37 insertions(+), 221 deletions(-) create mode 100644 database-schema/create_routers.sql diff --git a/database-schema/create_routers.sql b/database-schema/create_routers.sql new file mode 100644 index 0000000..71bb7aa --- /dev/null +++ b/database-schema/create_routers.sql @@ -0,0 +1,37 @@ +-- ========================================================= +-- SCHEMA: Tabella routers per gestione router MikroTik +-- ========================================================= +-- Memorizza configurazione router per comunicazione API REST +-- ========================================================= + +-- Drop tabella se esiste (solo per ambiente di sviluppo) +DROP TABLE IF EXISTS routers CASCADE; + +-- Crea tabella routers +CREATE TABLE routers ( + id VARCHAR PRIMARY KEY DEFAULT gen_random_uuid(), + name TEXT NOT NULL, + ip_address TEXT NOT NULL UNIQUE, + username TEXT NOT NULL, + password TEXT NOT NULL, + api_port INTEGER NOT NULL DEFAULT 443, + enabled BOOLEAN NOT NULL DEFAULT TRUE, + last_check TIMESTAMP, + status TEXT, + created_at TIMESTAMP NOT NULL DEFAULT NOW() +); + +-- Indici per performance +CREATE INDEX IF NOT EXISTS routers_ip_idx ON routers(ip_address); +CREATE INDEX IF NOT EXISTS routers_enabled_idx ON routers(enabled); + +-- Commento tabella +COMMENT ON TABLE routers IS 'Configurazione router MikroTik per comunicazione API REST'; + +-- Inserisci router di esempio (FIBRA) +INSERT INTO routers (name, ip_address, username, password, api_port, enabled) +VALUES ('Router FIBRA', '192.178.204.1', 'admin', 'change_me', 443, true) +ON CONFLICT (ip_address) DO NOTHING; + +-- Verifica +SELECT 'Tabella routers creata con successo!' AS status; diff --git a/database-schema/schema.sql b/database-schema/schema.sql index c20e37a..e69de29 100644 --- a/database-schema/schema.sql +++ b/database-schema/schema.sql @@ -1,221 +0,0 @@ --- --- PostgreSQL database dump --- - --- Dumped from database version 16.9 (415ebe8) --- Dumped by pg_dump version 16.9 - -SET statement_timeout = 0; -SET lock_timeout = 0; -SET idle_in_transaction_session_timeout = 0; -SET client_encoding = 'UTF8'; -SET standard_conforming_strings = on; -SELECT pg_catalog.set_config('search_path', '', false); -SET check_function_bodies = false; -SET xmloption = content; -SET client_min_messages = warning; -SET row_security = off; - -SET default_tablespace = ''; - -SET default_table_access_method = heap; - --- --- Name: detections; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.detections ( - id character varying DEFAULT gen_random_uuid() NOT NULL, - source_ip text NOT NULL, - risk_score numeric(5,2) NOT NULL, - confidence numeric(5,2) NOT NULL, - anomaly_type text NOT NULL, - reason text, - log_count integer NOT NULL, - first_seen timestamp without time zone NOT NULL, - last_seen timestamp without time zone NOT NULL, - blocked boolean DEFAULT false NOT NULL, - blocked_at timestamp without time zone, - detected_at timestamp without time zone DEFAULT now() NOT NULL -); - - --- --- Name: network_logs; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.network_logs ( - id character varying DEFAULT gen_random_uuid() NOT NULL, - router_id character varying NOT NULL, - "timestamp" timestamp without time zone NOT NULL, - source_ip text NOT NULL, - dest_ip text, - source_port integer, - dest_port integer, - protocol text, - action text, - bytes integer, - packets integer, - logged_at timestamp without time zone DEFAULT now() NOT NULL -); - - --- --- Name: routers; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.routers ( - id character varying DEFAULT gen_random_uuid() NOT NULL, - name text NOT NULL, - ip_address text NOT NULL, - api_port integer DEFAULT 8728 NOT NULL, - username text NOT NULL, - password text NOT NULL, - enabled boolean DEFAULT true NOT NULL, - last_sync timestamp without time zone, - created_at timestamp without time zone DEFAULT now() NOT NULL -); - - --- --- Name: training_history; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.training_history ( - id character varying DEFAULT gen_random_uuid() NOT NULL, - model_version text NOT NULL, - records_processed integer NOT NULL, - features_count integer NOT NULL, - accuracy numeric(5,2), - training_duration integer, - status text NOT NULL, - notes text, - trained_at timestamp without time zone DEFAULT now() NOT NULL -); - - --- --- Name: whitelist; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.whitelist ( - id character varying DEFAULT gen_random_uuid() NOT NULL, - ip_address text NOT NULL, - comment text, - reason text, - created_by text, - active boolean DEFAULT true NOT NULL, - created_at timestamp without time zone DEFAULT now() NOT NULL -); - - --- --- Name: detections detections_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.detections - ADD CONSTRAINT detections_pkey PRIMARY KEY (id); - - --- --- Name: network_logs network_logs_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.network_logs - ADD CONSTRAINT network_logs_pkey PRIMARY KEY (id); - - --- --- Name: routers routers_ip_address_unique; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.routers - ADD CONSTRAINT routers_ip_address_unique UNIQUE (ip_address); - - --- --- Name: routers routers_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.routers - ADD CONSTRAINT routers_pkey PRIMARY KEY (id); - - --- --- Name: training_history training_history_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.training_history - ADD CONSTRAINT training_history_pkey PRIMARY KEY (id); - - --- --- Name: whitelist whitelist_ip_address_unique; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.whitelist - ADD CONSTRAINT whitelist_ip_address_unique UNIQUE (ip_address); - - --- --- Name: whitelist whitelist_pkey; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.whitelist - ADD CONSTRAINT whitelist_pkey PRIMARY KEY (id); - - --- --- Name: detected_at_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX detected_at_idx ON public.detections USING btree (detected_at); - - --- --- Name: detection_source_ip_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX detection_source_ip_idx ON public.detections USING btree (source_ip); - - --- --- Name: risk_score_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX risk_score_idx ON public.detections USING btree (risk_score); - - --- --- Name: router_id_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX router_id_idx ON public.network_logs USING btree (router_id); - - --- --- Name: source_ip_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX source_ip_idx ON public.network_logs USING btree (source_ip); - - --- --- Name: timestamp_idx; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX timestamp_idx ON public.network_logs USING btree ("timestamp"); - - --- --- Name: network_logs network_logs_router_id_routers_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.network_logs - ADD CONSTRAINT network_logs_router_id_routers_id_fk FOREIGN KEY (router_id) REFERENCES public.routers(id); - - --- --- PostgreSQL database dump complete --- -