-- -- PostgreSQL database dump -- -- Dumped from database version 12.4 -- Dumped by pg_dump version 12.4 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; -- -- Name: new_edge(integer, integer, integer); Type: FUNCTION; Schema: public; Owner: noah -- CREATE FUNCTION public.new_edge(from_id integer, to_id integer, exploit integer) RETURNS integer LANGUAGE plpgsql AS $$ DECLARE myid INTEGER; BEGIN IF NOT EXISTS (SELECT 1 FROM edge WHERE from_node = from_id AND to_node = to_id AND exploit_id = exploit) THEN INSERT INTO edge VALUES (DEFAULT, from_id, to_id, exploit) RETURNING id INTO myid; ELSE SELECT id INTO myid FROM edge WHERE from_node = from_id AND to_node = to_id AND exploit_id = exploit; END IF; RETURN myid; END; $$; ALTER FUNCTION public.new_edge(from_id integer, to_id integer, exploit integer) OWNER TO noah; -- -- Name: new_factbase(text); Type: FUNCTION; Schema: public; Owner: noah -- CREATE FUNCTION public.new_factbase(myhash text) RETURNS integer LANGUAGE plpgsql AS $$ DECLARE myid INTEGER; BEGIN IF NOT EXISTS (SELECT 1 FROM factbase WHERE hash = myhash) THEN INSERT INTO factbase VALUES (DEFAULT, myhash) RETURNING id INTO myid; ELSE SELECT id INTO myid FROM factbase WHERE hash = myhash; END IF; RETURN myid; END; $$; ALTER FUNCTION public.new_factbase(myhash text) OWNER TO noah; SET default_tablespace = ''; SET default_table_access_method = heap; -- -- Name: asset; Type: TABLE; Schema: public; Owner: noah -- CREATE TABLE public.asset ( id integer NOT NULL, name text ); ALTER TABLE public.asset OWNER TO noah; -- -- Name: asset_id_seq; Type: SEQUENCE; Schema: public; Owner: noah -- CREATE SEQUENCE public.asset_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER TABLE public.asset_id_seq OWNER TO noah; -- -- Name: asset_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: noah -- ALTER SEQUENCE public.asset_id_seq OWNED BY public.asset.id; -- -- Name: edge; Type: TABLE; Schema: public; Owner: noah -- CREATE TABLE public.edge ( id integer NOT NULL, from_node integer, to_node integer, exploit_id integer ); ALTER TABLE public.edge OWNER TO noah; -- -- Name: edge_asset_binding; Type: TABLE; Schema: public; Owner: noah -- CREATE TABLE public.edge_asset_binding ( edge_id integer, exploit_param integer, asset_id integer ); ALTER TABLE public.edge_asset_binding OWNER TO noah; -- -- Name: edge_id_seq; Type: SEQUENCE; Schema: public; Owner: noah -- CREATE SEQUENCE public.edge_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER TABLE public.edge_id_seq OWNER TO noah; -- -- Name: edge_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: noah -- ALTER SEQUENCE public.edge_id_seq OWNED BY public.edge.id; -- -- Name: exploit; Type: TABLE; Schema: public; Owner: noah -- CREATE TABLE public.exploit ( id integer NOT NULL, name text, params integer ); ALTER TABLE public.exploit OWNER TO noah; -- -- Name: exploit_id_seq; Type: SEQUENCE; Schema: public; Owner: noah -- CREATE SEQUENCE public.exploit_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER TABLE public.exploit_id_seq OWNER TO noah; -- -- Name: exploit_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: noah -- ALTER SEQUENCE public.exploit_id_seq OWNED BY public.exploit.id; -- -- Name: exploit_postcondition; Type: TABLE; Schema: public; Owner: noah -- CREATE TABLE public.exploit_postcondition ( id integer NOT NULL, exploit_id integer, type integer, param1 integer, param2 integer, property text, value text, op text, dir text, action text ); ALTER TABLE public.exploit_postcondition OWNER TO noah; -- -- Name: exploit_postcondition_id_seq; Type: SEQUENCE; Schema: public; Owner: noah -- CREATE SEQUENCE public.exploit_postcondition_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER TABLE public.exploit_postcondition_id_seq OWNER TO noah; -- -- Name: exploit_postcondition_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: noah -- ALTER SEQUENCE public.exploit_postcondition_id_seq OWNED BY public.exploit_postcondition.id; -- -- Name: exploit_precondition; Type: TABLE; Schema: public; Owner: noah -- CREATE TABLE public.exploit_precondition ( id integer NOT NULL, exploit_id integer, type integer, param1 integer, param2 integer, property text, value text, op text, dir text ); ALTER TABLE public.exploit_precondition OWNER TO noah; -- -- Name: exploit_precondition_id_seq; Type: SEQUENCE; Schema: public; Owner: noah -- CREATE SEQUENCE public.exploit_precondition_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER TABLE public.exploit_precondition_id_seq OWNER TO noah; -- -- Name: exploit_precondition_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: noah -- ALTER SEQUENCE public.exploit_precondition_id_seq OWNED BY public.exploit_precondition.id; -- -- Name: factbase; Type: TABLE; Schema: public; Owner: noah -- CREATE TABLE public.factbase ( id integer NOT NULL, hash text ); ALTER TABLE public.factbase OWNER TO noah; -- -- Name: factbase_id_seq; Type: SEQUENCE; Schema: public; Owner: noah -- CREATE SEQUENCE public.factbase_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER TABLE public.factbase_id_seq OWNER TO noah; -- -- Name: factbase_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: noah -- ALTER SEQUENCE public.factbase_id_seq OWNED BY public.factbase.id; -- -- Name: factbase_item; Type: TABLE; Schema: public; Owner: noah -- CREATE TABLE public.factbase_item ( factbase_id integer NOT NULL, f bigint NOT NULL, type text NOT NULL ); ALTER TABLE public.factbase_item OWNER TO noah; -- -- Name: keyvalue; Type: TABLE; Schema: public; Owner: noah -- CREATE TABLE public.keyvalue ( id integer NOT NULL, property text ); ALTER TABLE public.keyvalue OWNER TO noah; -- -- Name: quality; Type: TABLE; Schema: public; Owner: noah -- CREATE TABLE public.quality ( asset_id integer NOT NULL, property text NOT NULL, op text, value text ); ALTER TABLE public.quality OWNER TO noah; -- -- Name: topology; Type: TABLE; Schema: public; Owner: noah -- CREATE TABLE public.topology ( asset_from_id integer NOT NULL, asset_to_id integer NOT NULL, direction text, property text NOT NULL, op text, value text ); ALTER TABLE public.topology OWNER TO noah; -- -- Name: asset id; Type: DEFAULT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.asset ALTER COLUMN id SET DEFAULT nextval('public.asset_id_seq'::regclass); -- -- Name: edge id; Type: DEFAULT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.edge ALTER COLUMN id SET DEFAULT nextval('public.edge_id_seq'::regclass); -- -- Name: exploit id; Type: DEFAULT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.exploit ALTER COLUMN id SET DEFAULT nextval('public.exploit_id_seq'::regclass); -- -- Name: exploit_postcondition id; Type: DEFAULT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.exploit_postcondition ALTER COLUMN id SET DEFAULT nextval('public.exploit_postcondition_id_seq'::regclass); -- -- Name: exploit_precondition id; Type: DEFAULT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.exploit_precondition ALTER COLUMN id SET DEFAULT nextval('public.exploit_precondition_id_seq'::regclass); -- -- Name: factbase id; Type: DEFAULT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.factbase ALTER COLUMN id SET DEFAULT nextval('public.factbase_id_seq'::regclass); -- -- Name: asset asset_pkey; Type: CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.asset ADD CONSTRAINT asset_pkey PRIMARY KEY (id); -- -- Name: edge edge_pkey; Type: CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.edge ADD CONSTRAINT edge_pkey PRIMARY KEY (id); -- -- Name: exploit exploit_pkey; Type: CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.exploit ADD CONSTRAINT exploit_pkey PRIMARY KEY (id); -- -- Name: exploit_postcondition exploit_postcondition_pkey; Type: CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.exploit_postcondition ADD CONSTRAINT exploit_postcondition_pkey PRIMARY KEY (id); -- -- Name: exploit_precondition exploit_precondition_pkey; Type: CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.exploit_precondition ADD CONSTRAINT exploit_precondition_pkey PRIMARY KEY (id); -- -- Name: factbase_item factbase_item_pkey; Type: CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.factbase_item ADD CONSTRAINT factbase_item_pkey PRIMARY KEY (factbase_id, f, type); -- -- Name: factbase factbase_pkey; Type: CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.factbase ADD CONSTRAINT factbase_pkey PRIMARY KEY (id); -- -- Name: keyvalue keyvalue_pkey; Type: CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.keyvalue ADD CONSTRAINT keyvalue_pkey PRIMARY KEY (id); -- -- Name: quality quality_pkey; Type: CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.quality ADD CONSTRAINT quality_pkey PRIMARY KEY (asset_id, property); -- -- Name: topology topology_pkey; Type: CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.topology ADD CONSTRAINT topology_pkey PRIMARY KEY (asset_from_id, asset_to_id, property); -- -- Name: edge_asset_binding edge_asset_binding_asset_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.edge_asset_binding ADD CONSTRAINT edge_asset_binding_asset_id_fkey FOREIGN KEY (asset_id) REFERENCES public.asset(id); -- -- Name: edge_asset_binding edge_asset_binding_edge_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.edge_asset_binding ADD CONSTRAINT edge_asset_binding_edge_id_fkey FOREIGN KEY (edge_id) REFERENCES public.edge(id); -- -- Name: edge edge_exploit_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.edge ADD CONSTRAINT edge_exploit_id_fkey FOREIGN KEY (exploit_id) REFERENCES public.exploit(id); -- -- Name: edge edge_from_node_fkey; Type: FK CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.edge ADD CONSTRAINT edge_from_node_fkey FOREIGN KEY (from_node) REFERENCES public.factbase(id); -- -- Name: edge edge_to_node_fkey; Type: FK CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.edge ADD CONSTRAINT edge_to_node_fkey FOREIGN KEY (to_node) REFERENCES public.factbase(id); -- -- Name: exploit_postcondition exploit_postcondition_exploit_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.exploit_postcondition ADD CONSTRAINT exploit_postcondition_exploit_id_fkey FOREIGN KEY (exploit_id) REFERENCES public.exploit(id); -- -- Name: exploit_precondition exploit_precondition_exploit_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.exploit_precondition ADD CONSTRAINT exploit_precondition_exploit_id_fkey FOREIGN KEY (exploit_id) REFERENCES public.exploit(id); -- -- Name: factbase_item factbase_item_factbase_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.factbase_item ADD CONSTRAINT factbase_item_factbase_id_fkey FOREIGN KEY (factbase_id) REFERENCES public.factbase(id); -- -- Name: quality quality_asset_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.quality ADD CONSTRAINT quality_asset_id_fkey FOREIGN KEY (asset_id) REFERENCES public.asset(id); -- -- Name: topology topology_asset_from_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.topology ADD CONSTRAINT topology_asset_from_id_fkey FOREIGN KEY (asset_from_id) REFERENCES public.asset(id); -- -- Name: topology topology_asset_to_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: noah -- ALTER TABLE ONLY public.topology ADD CONSTRAINT topology_asset_to_id_fkey FOREIGN KEY (asset_to_id) REFERENCES public.asset(id); -- -- Name: TABLE asset; Type: ACL; Schema: public; Owner: noah -- GRANT ALL ON TABLE public.asset TO ag_gen; -- -- Name: TABLE edge; Type: ACL; Schema: public; Owner: noah -- GRANT ALL ON TABLE public.edge TO ag_gen; -- -- Name: TABLE edge_asset_binding; Type: ACL; Schema: public; Owner: noah -- GRANT ALL ON TABLE public.edge_asset_binding TO ag_gen; -- -- Name: TABLE exploit; Type: ACL; Schema: public; Owner: noah -- GRANT ALL ON TABLE public.exploit TO ag_gen; -- -- Name: TABLE exploit_postcondition; Type: ACL; Schema: public; Owner: noah -- GRANT ALL ON TABLE public.exploit_postcondition TO ag_gen; -- -- Name: TABLE exploit_precondition; Type: ACL; Schema: public; Owner: noah -- GRANT ALL ON TABLE public.exploit_precondition TO ag_gen; -- -- Name: TABLE factbase; Type: ACL; Schema: public; Owner: noah -- GRANT ALL ON TABLE public.factbase TO ag_gen; -- -- Name: TABLE factbase_item; Type: ACL; Schema: public; Owner: noah -- GRANT ALL ON TABLE public.factbase_item TO ag_gen; -- -- Name: TABLE keyvalue; Type: ACL; Schema: public; Owner: noah -- GRANT ALL ON TABLE public.keyvalue TO ag_gen; -- -- Name: TABLE quality; Type: ACL; Schema: public; Owner: noah -- GRANT ALL ON TABLE public.quality TO ag_gen; -- -- Name: TABLE topology; Type: ACL; Schema: public; Owner: noah -- GRANT ALL ON TABLE public.topology TO ag_gen; -- -- PostgreSQL database dump complete --