Annotation of embedaddon/strongswan/src/libimcv/imv/tables.sql, revision 1.1

1.1     ! misho       1: /* IMV PTS SQLite database */
        !             2: 
        !             3: DROP TABLE IF EXISTS directories;
        !             4: CREATE TABLE directories (
        !             5:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !             6:   path TEXT NOT NULL
        !             7: );
        !             8: DROP INDEX IF EXISTS directories_path;
        !             9: CREATE INDEX directories_path ON directories (
        !            10:   path
        !            11: );
        !            12: 
        !            13: DROP TABLE IF EXISTS files;
        !            14: CREATE TABLE files (
        !            15:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !            16:   dir INTEGER DEFAULT 0 REFERENCES directories(id),
        !            17:   name TEXT NOT NULL
        !            18: );
        !            19: DROP INDEX IF EXISTS files_name;
        !            20: CREATE INDEX files_name ON files (
        !            21:   name
        !            22: );
        !            23: 
        !            24: DROP TABLE IF EXISTS products;
        !            25: CREATE TABLE products (
        !            26:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !            27:   name TEXT NOT NULL
        !            28: );
        !            29: DROP INDEX IF EXISTS products_name;
        !            30: CREATE INDEX products_name ON products (
        !            31:   name
        !            32: );
        !            33: 
        !            34: DROP TABLE IF EXISTS algorithms;
        !            35: CREATE TABLE algorithms (
        !            36:   id INTEGER PRIMARY KEY,
        !            37:   name VARCHAR(20) not NULL
        !            38: );
        !            39: 
        !            40: DROP TABLE IF EXISTS file_hashes;
        !            41: CREATE TABLE file_hashes (
        !            42:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !            43:   file INTEGER NOT NULL REFERENCES files(id),
        !            44:   version INTEGER REFERENCES versions(id),
        !            45:   device INTEGER REFERENCES devices(id),
        !            46:   size INTEGER,
        !            47:   algo INTEGER NOT NULL REFERENCES algorithms(id),
        !            48:   hash VARCHAR(64) NOT NULL,
        !            49:   mutable INTEGER DEFAULT 0
        !            50: );
        !            51: DROP INDEX IF EXISTS "file_hashes_idx";
        !            52: CREATE INDEX "file_hashes_idx" ON "file_hashes" ("file", "version", "algo");
        !            53: 
        !            54: DROP TABLE IF EXISTS groups;
        !            55: CREATE TABLE groups (
        !            56:   id INTEGER NOT NULL PRIMARY KEY,
        !            57:   name VARCHAR(50) NOT NULL UNIQUE,
        !            58:   parent INTEGER
        !            59: );
        !            60: 
        !            61: DROP TABLE IF EXISTS groups_members;
        !            62: CREATE TABLE groups_members (
        !            63:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !            64:   group_id INTEGER NOT NULL REFERENCES groups(id),
        !            65:   device_id INTEGER NOT NULL REFERENCES devices(id),
        !            66:   UNIQUE (group_id, device_id)
        !            67: );
        !            68: 
        !            69: DROP TABLE IF EXISTS groups_product_defaults;
        !            70: CREATE TABLE groups_product_defaults (
        !            71:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !            72:   group_id INTEGER NOT NULL REFERENCES groups(id),
        !            73:   product_id INTEGER NOT NULL REFERENCES products(id),
        !            74:   UNIQUE (group_id, product_id)
        !            75: );
        !            76: 
        !            77: DROP TABLE IF EXISTS policies;
        !            78: CREATE TABLE policies (
        !            79:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !            80:   type INTEGER NOT NULL,
        !            81:   name VARCHAR(100) NOT NULL UNIQUE,
        !            82:   argument TEXT DEFAULT '' NOT NULL,
        !            83:   rec_fail INTEGER NOT NULL,
        !            84:   rec_noresult INTEGER NOT NULL,
        !            85:   file INTEGER DEFAULT 0 REFERENCES files(id),
        !            86:   dir INTEGER DEFAULT 0 REFERENCES directories(id)
        !            87: );
        !            88: 
        !            89: DROP TABLE IF EXISTS enforcements;
        !            90: CREATE TABLE enforcements (
        !            91:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !            92:   policy INTEGER NOT NULL REFERENCES policies(id),
        !            93:   group_id INTEGER NOT NULL REFERENCES groups(id),
        !            94:   rec_fail INTEGER,
        !            95:   rec_noresult INTEGER,
        !            96:   max_age INTEGER NOT NULL,
        !            97:   UNIQUE (policy, group_id)
        !            98: );
        !            99: 
        !           100: DROP TABLE IF EXISTS sessions;
        !           101: CREATE TABLE sessions (
        !           102:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           103:   time INTEGER NOT NULL,
        !           104:   connection INTEGER NOT NULL,
        !           105:   identity INTEGER DEFAULT 0 REFERENCES identities(id),
        !           106:   device INTEGER DEFAULT 0 REFERENCES devices(id),
        !           107:   product INTEGER DEFAULT 0 REFERENCES products(id),
        !           108:   rec INTEGER DEFAULT 3
        !           109: );
        !           110: 
        !           111: DROP TABLE IF EXISTS sessions_identities;
        !           112: CREATE TABLE sessions_identities (
        !           113:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           114:   session_id INTEGER NOT NULL REFERENCES sessions(id),
        !           115:   identity_id INTEGER NOT NULL REFERENCES identities(id),
        !           116:   UNIQUE (session_id, identity_id)
        !           117: );
        !           118: 
        !           119: DROP TABLE IF EXISTS workitems;
        !           120: CREATE TABLE workitems (
        !           121:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           122:   session INTEGER NOT NULL REFERENCES sessions(id),
        !           123:   enforcement INTEGER NOT NULL REFERENCES enforcements(id),
        !           124:   type INTEGER NOT NULL,
        !           125:   arg_str TEXT,
        !           126:   arg_int INTEGER DEFAULT 0,
        !           127:   rec_fail INTEGER NOT NULL,
        !           128:   rec_noresult INTEGER NOT NULL,
        !           129:   rec_final INTEGER,
        !           130:   result TEXT
        !           131: );
        !           132: DROP INDEX IF EXISTS workitems_session;
        !           133: CREATE INDEX workitems_sessions ON workitems (
        !           134:   session
        !           135: );
        !           136: 
        !           137: DROP TABLE IF EXISTS results;
        !           138: CREATE TABLE results (
        !           139:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           140:   session INTEGER NOT NULL REFERENCES measurements(id),
        !           141:   policy INTEGER NOT NULL REFERENCES policies(id),
        !           142:   rec INTEGER NOT NULL,
        !           143:   result TEXT NOT NULL
        !           144: );
        !           145: DROP INDEX IF EXISTS results_session;
        !           146: CREATE INDEX results_session ON results (
        !           147:   session
        !           148: );
        !           149: 
        !           150: DROP TABLE IF EXISTS components;
        !           151: CREATE TABLE components (
        !           152:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           153:   vendor_id INTEGER NOT NULL,
        !           154:   name INTEGER NOT NULL,
        !           155:   qualifier INTEGER DEFAULT 0,
        !           156:   label TEXT NOT NULL
        !           157: );
        !           158: 
        !           159: DROP TABLE IF EXISTS component_hashes;
        !           160: CREATE TABLE component_hashes (
        !           161:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           162:   component INTEGER NOT NULL REFERENCES components(id),
        !           163:   key INTEGER NOT NULL REFERENCES devices(id),
        !           164:   seq_no INTEGER NOT NULL,
        !           165:   pcr INTEGER NOT NULL,
        !           166:   algo INTEGER NOT NULL REFERENCES algorithms(id),
        !           167:   hash BLOB NOT NULL
        !           168: );
        !           169: 
        !           170: DROP TABLE IF EXISTS packages;
        !           171: CREATE TABLE packages (
        !           172:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           173:   name TEXT NOT NULL,
        !           174:   blacklist INTEGER DEFAULT 0
        !           175: );
        !           176: DROP INDEX IF EXISTS packages_name;
        !           177: CREATE INDEX packages_name ON packages (
        !           178:   name
        !           179: );
        !           180: 
        !           181: DROP TABLE IF EXISTS versions;
        !           182: CREATE TABLE versions (
        !           183:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           184:   product INTEGER NOT NULL REFERENCES products(id),
        !           185:   package INTEGER NOT NULL REFERENCES packages(id),
        !           186:   release TEXT,
        !           187:   security INTEGER DEFAULT 0,
        !           188:   blacklist INTEGER DEFAULT 0,
        !           189:   time INTEGER DEFAULT 0
        !           190: );
        !           191: DROP INDEX IF EXISTS versions_release;
        !           192: CREATE INDEX versions_release ON versions (
        !           193:   release
        !           194: );
        !           195: DROP INDEX IF EXISTS versions_package_product;
        !           196: CREATE INDEX versions_package_product ON versions (
        !           197:   package, product
        !           198: );
        !           199: 
        !           200: DROP TABLE IF EXISTS devices;
        !           201: CREATE TABLE devices (
        !           202:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           203:   description TEXT DEFAULT '',
        !           204:   value TEXT NOT NULL,
        !           205:   product INTEGER REFERENCES products(id),
        !           206:   trusted INTEGER DEFAULT 0,
        !           207:   created INTEGER,
        !           208:   inactive INTEGER DEFAULT 0
        !           209: );
        !           210: DROP INDEX IF EXISTS devices_id;
        !           211: CREATE INDEX devices_value ON devices (
        !           212:   value
        !           213: );
        !           214: 
        !           215: DROP TABLE IF EXISTS identities;
        !           216: CREATE TABLE identities (
        !           217:   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           218:   type INTEGER NOT NULL,
        !           219:   value BLOB NOT NULL,
        !           220:   UNIQUE (type, value)
        !           221: );
        !           222: 
        !           223: DROP TABLE IF EXISTS "swid_entities";
        !           224: CREATE TABLE "swid_entities" (
        !           225:   "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           226:   "name" VARCHAR(255) NOT NULL,
        !           227:   "regid" VARCHAR(255) NOT NULL
        !           228: );
        !           229: DROP INDEX IF EXISTS "swid_entities_name";
        !           230: DROP INDEX IF EXISTS "swid_entities_regid";
        !           231: CREATE INDEX "swid_entities_name" ON "swid_entities" (
        !           232:   "name"
        !           233: );
        !           234: CREATE INDEX "swid_entities_regid" ON "swid_entities" (
        !           235:   "regid"
        !           236: );
        !           237: 
        !           238: DROP TABLE IF EXISTS "swid_entityroles";
        !           239: CREATE TABLE "swid_entityroles" (
        !           240:   "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           241:   "tag_id" INTEGER NOT NULL REFERENCES "swid_tags" ("id"),
        !           242:   "entity_id" INTEGER NOT NULL,
        !           243:   "role" SMALLINT UNSIGNED NOT NULL
        !           244: );
        !           245: DROP INDEX if EXISTS "swid_entityroles_tag_id";
        !           246: DROP INDEX IF EXISTS "swid_entityroles_tag_entity_id";
        !           247: CREATE INDEX "swid_entityroles_tag_id" ON "swid_entityroles" (
        !           248:   "tag_id"
        !           249: );
        !           250: CREATE INDEX "swid_entityroles_entity_id" ON "swid_entityroles" (
        !           251:   "entity_id"
        !           252: );
        !           253: 
        !           254: DROP TABLE IF EXISTS "swid_tags";
        !           255: CREATE TABLE "swid_tags" (
        !           256:   "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           257:   "version_id" INTEGER REFERENCES "versions" ("id"),
        !           258:   "package_name" VARCHAR(255) NOT NULL,
        !           259:   "version_str" VARCHAR(255) NOT NULL,
        !           260:   "unique_id" VARCHAR(255) NOT NULL,
        !           261:   "swid_xml" TEXT NOT NULL,
        !           262:   "software_id" VARCHAR(255) NOT NULL
        !           263: );
        !           264: DROP INDEX IF EXISTS "swid_tags_software_id";
        !           265: DROP INDEX if EXISTS "swid_tags_unique_id";
        !           266: DROP INDEX IF EXISTS "swid_tags_version";
        !           267: DROP INDEX IF EXISTS "swid_tags_package_name";
        !           268: 
        !           269: CREATE INDEX "swid_tags_software_id" ON "swid_tags" (
        !           270:   "software_id"
        !           271: );
        !           272: CREATE INDEX "swid_tags_unique_id" ON "swid_tags" (
        !           273:   "unique_id"
        !           274: );
        !           275: CREATE INDEX "swid_tags_version_id" ON "swid_tags" (
        !           276:   "version_id"
        !           277: );
        !           278: CREATE INDEX "swid_tags_package_name" ON "swid_tags" (
        !           279:   "package_name"
        !           280: );
        !           281: 
        !           282: DROP TABLE IF EXISTS "swid_tags_files";
        !           283: CREATE TABLE "swid_tags_files" (
        !           284:   "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           285:   "tag_id" INTEGER NOT NULL,
        !           286:   "file_id" INTEGER NOT NULL REFERENCES "files" ("id"),
        !           287:   UNIQUE ("tag_id", "file_id")
        !           288: );
        !           289: DROP INDEX IF EXISTS "swid_tags_files_file_id";
        !           290: DROP INDEX IF EXISTS "swid_tags_files_tag_id";
        !           291: CREATE INDEX "swid_tags_files_file_id" ON "swid_tags_files" (
        !           292:   "file_id"
        !           293: );
        !           294: CREATE INDEX "swid_tags_files_tag_id" ON "swid_tags_files" (
        !           295:   "tag_id"
        !           296: );
        !           297: 
        !           298: DROP TABLE IF EXISTS "swid_tags_sessions";
        !           299: CREATE TABLE "swid_tags_sessions" (
        !           300:   "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           301:   "tag_id" INTEGER NOT NULL,
        !           302:   "session_id" INTEGER NOT NULL REFERENCES "sessions" ("id"),
        !           303:   UNIQUE ("tag_id", "session_id")
        !           304: );
        !           305: DROP INDEX IF EXISTS "swid_tags_sessions_tag_id";
        !           306: DROP INDEX IF EXISTS "swid_tags_sessions_session_id";
        !           307: CREATE INDEX "swid_tags_sessions_tag_id" ON "swid_tags_sessions" (
        !           308:   "tag_id"
        !           309: );
        !           310: CREATE INDEX "swid_tags_sessions_session_id" ON "swid_tags_sessions" (
        !           311: "session_id"
        !           312: );
        !           313: 
        !           314: DROP TABLE IF EXISTS "swid_tagstats";
        !           315: CREATE TABLE "swid_tagstats" (
        !           316:   "id" INTEGER NOT NULL PRIMARY KEY,
        !           317:   "tag_id" INTEGER NOT NULL REFERENCES "swid_tags" ("id"),
        !           318:   "device_id" INTEGER NOT NULL REFERENCES "devices" ("id"),
        !           319:   "first_seen_id" INTEGER NOT NULL REFERENCES "sessions" ("id"),
        !           320:   "last_seen_id" INTEGER NOT NULL REFERENCES "sessions" ("id"),
        !           321:   "first_installed_id" INTEGER REFERENCES "swid_events" ("id"),
        !           322:   "last_deleted_id" INTEGER REFERENCES "swid_events" ("id"),
        !           323:   UNIQUE ("tag_id", "device_id")
        !           324: );
        !           325: CREATE INDEX "swid_tagstats_tag_id" ON "swid_tagstats" ("tag_id");
        !           326: CREATE INDEX "swid_tagstats_device_id" ON "swid_tagstats" ("device_id");
        !           327: CREATE INDEX "swid_tagstats_first_seen_id" ON "swid_tagstats" ("first_seen_id");
        !           328: CREATE INDEX "swid_tagstats_last_seen_id" ON "swid_tagstats" ("last_seen_id");
        !           329: 
        !           330: DROP TABLE IF EXISTS "swid_events";
        !           331: CREATE TABLE "swid_events" (
        !           332:   "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           333:   "device" INTEGER REFERENCES "devices" ("id"),
        !           334:   "epoch" INTEGER NOT NULL,
        !           335:   "eid" INTEGER NOT NULL,
        !           336:   "timestamp" CHAR(20) NOT NULL
        !           337: );
        !           338: DROP INDEX IF EXISTS "swid_events_device";
        !           339: CREATE INDEX "swid_events_device" ON "swid_events" (
        !           340:   "device"
        !           341: );
        !           342: 
        !           343: DROP TABLE IF EXISTS "swid_tags_events";
        !           344: CREATE TABLE "swid_tags_events" (
        !           345:   "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        !           346:   "tag_id" INTEGER NOT NULL REFERENCES "swid_tags" ("id"),
        !           347:   "event_id" INTEGER NOT NULL REFERENCES "swid_events" ("id"),
        !           348:   "action" INTEGER NOT NULL,
        !           349:   "record_id" INTEGER DEFAULT 0,
        !           350:   "source_id" INTEGER DEFAULT 0
        !           351: );
        !           352: DROP INDEX IF EXISTS "swid_tags_events_event_id";
        !           353: DROP INDEX IF EXISTS "swid_tags_events_tag_id";
        !           354: CREATE INDEX "swid_tags_events_event_id" ON "swid_tags_events" (
        !           355:   "event_id"
        !           356: );
        !           357: CREATE INDEX "swid_tags_events_tag_id" ON "swid_tags_events" (
        !           358:   "tag_id"
        !           359: );

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>