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>