Annotation of embedaddon/strongswan/src/libimcv/imv/tables.sql, revision 1.1.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>