e9452dcc0a
Probe configured ports for alive hosts, persist port states, and expose scan port results via REST. Made-with: Cursor
43 lines
1.4 KiB
SQL
43 lines
1.4 KiB
SQL
create table if not exists scan_jobs (
|
|
id text primary key,
|
|
name text not null,
|
|
status text not null check (status in ('queued','running','done','failed','canceled')),
|
|
cidrs jsonb not null,
|
|
exclude_ips jsonb not null default '[]'::jsonb,
|
|
options jsonb not null,
|
|
progress int not null default 0,
|
|
stats jsonb not null default '{}'::jsonb,
|
|
snmp_credentials_id text null,
|
|
created_at timestamptz not null default now(),
|
|
started_at timestamptz null,
|
|
finished_at timestamptz null
|
|
);
|
|
|
|
create index if not exists idx_scan_jobs_created_at on scan_jobs (created_at desc);
|
|
|
|
alter table scan_jobs add column if not exists progress int not null default 0;
|
|
alter table scan_jobs add column if not exists stats jsonb not null default '{}'::jsonb;
|
|
|
|
create table if not exists scan_hosts (
|
|
id bigserial primary key,
|
|
scan_id text not null references scan_jobs(id) on delete cascade,
|
|
ip inet not null,
|
|
is_up boolean not null,
|
|
checked_at timestamptz not null
|
|
);
|
|
|
|
create index if not exists idx_scan_hosts_scan_id_checked_at
|
|
on scan_hosts (scan_id, checked_at desc);
|
|
|
|
create table if not exists scan_ports (
|
|
id bigserial primary key,
|
|
scan_id text not null references scan_jobs(id) on delete cascade,
|
|
ip inet not null,
|
|
port int not null,
|
|
is_open boolean not null,
|
|
checked_at timestamptz not null
|
|
);
|
|
|
|
create index if not exists idx_scan_ports_scan_id_checked_at
|
|
on scan_ports (scan_id, checked_at desc);
|