forked from Hithomelabs/CFTunnels
## Description - db integration Co-authored-by: hitanshu310 <hitanshu98@gmail.com> Co-authored-by: = <=> Co-authored-by: Kruti Shah <kruti@logiqids.com> Reviewed-on: Hithomelabs/CFTunnels#96 Co-authored-by: Kruti Shah <krutis0201@gmail.com> Co-committed-by: Kruti Shah <krutis0201@gmail.com> Reviewed-on: Hithomelabs/CFTunnels#98 Reviewed-by: hitanshu <hitanshu98@gmail.com> Co-authored-by: Kruti Shah <krutis0201@gmail.com> Co-committed-by: Kruti Shah <krutis0201@gmail.com>
29 lines
1002 B
SQL
29 lines
1002 B
SQL
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
|
|
|
|
CREATE TABLE IF NOT EXISTS tunnels (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
environment VARCHAR(10) NOT NULL,
|
|
cf_tunnel_id UUID UNIQUE NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
name VARCHAR(50) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS mappings (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
tunnel_id UUID NOT NULL REFERENCES tunnels(id) ON DELETE CASCADE,
|
|
port INT NOT NULL,
|
|
subdomain VARCHAR(50) NOT NULL
|
|
-- UNIQUE (tunnel_id, port),
|
|
-- UNIQUE (tunnel_id, subdomain)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS requests (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
mapping_id UUID NOT NULL REFERENCES mappings(id) ON DELETE CASCADE,
|
|
created_by UUID NOT NULL REFERENCES users(id) ON DELETE RESTRICT,
|
|
accepted_by UUID REFERENCES users(id) ON DELETE SET NULL,
|
|
status VARCHAR(20) NOT NULL CHECK (status IN ('PENDING', 'APPROVED', 'REJECTED'))
|
|
); |