diff options
Diffstat (limited to 'src/libimcv/imv/tables-mysql.sql')
-rw-r--r-- | src/libimcv/imv/tables-mysql.sql | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/src/libimcv/imv/tables-mysql.sql b/src/libimcv/imv/tables-mysql.sql new file mode 100644 index 000000000..47ee41c86 --- /dev/null +++ b/src/libimcv/imv/tables-mysql.sql @@ -0,0 +1,200 @@ + +DROP TABLE IF EXISTS `directories`; +CREATE TABLE `directories` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `path` VARCHAR(2048) NOT NULL +); + +DROP TABLE IF EXISTS `files`; +CREATE TABLE `files` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `dir` INTEGER DEFAULT 0 REFERENCES `directories`(`id`), + `name` VARCHAR(512) NOT NULL +); + +DROP TABLE IF EXISTS `products`; +CREATE TABLE `products` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `name` VARCHAR(128) NOT NULL +); + +DROP TABLE IF EXISTS `algorithms`; +CREATE TABLE `algorithms` ( + `id` INTEGER PRIMARY KEY, + `name` VARCHAR(20) NOT NULL +); + +DROP TABLE IF EXISTS `file_hashes`; +CREATE TABLE `file_hashes` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `file` INTEGER NOT NULL REFERENCES `files`(`id`), + `product` INTEGER NOT NULL REFERENCES `products`(`id`), + `device` INTEGER DEFAULT 0, + `key` INTEGER DEFAULT 0 REFERENCES `keys`(id), + `algo` INTEGER NOT NULL REFERENCES `algorithms`(`id`), + `hash` VARBINARY(64) NOT NULL +); + +DROP TABLE IF EXISTS `keys`; +CREATE TABLE `keys` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `keyid` VARBINARY(128) NOT NULL, + `owner` VARCHAR(128) NOT NULL +); + +DROP TABLE IF EXISTS `groups`; +CREATE TABLE `groups` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `name` VARCHAR(50) NOT NULL UNIQUE, + `parent` INTEGER +); + +DROP TABLE IF EXISTS `groups_members`; +CREATE TABLE `groups_members` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `group_id` INTEGER NOT NULL REFERENCES `groups`(`id`), + `device_id` INTEGER NOT NULL REFERENCES `devices`(`id`), + UNIQUE (`group_id`, `device_id`) +); + +DROP TABLE IF EXISTS `groups_product_defaults`; +CREATE TABLE `groups_product_defaults` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `group_id` INTEGER NOT NULL REFERENCES `groups`(`id`), + `product_id` INTEGER NOT NULL REFERENCES `products`(`id`), + UNIQUE (`group_id`, `product_id`) +); + +DROP TABLE IF EXISTS `policies`; +CREATE TABLE `policies` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `type` INTEGER NOT NULL, + `name` VARCHAR(100) NOT NULL UNIQUE, + `argument` VARCHAR(100) DEFAULT '' NOT NULL, + `rec_fail` INTEGER NOT NULL, + `rec_noresult` INTEGER NOT NULL, + `file` INTEGER DEFAULT 0 REFERENCES `files`(`id`), + `dir` INTEGER DEFAULT 0 REFERENCES `directories`(`id`) +); + +DROP TABLE IF EXISTS `enforcements`; +CREATE TABLE `enforcements` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `policy` INTEGER NOT NULL REFERENCES `policies`(`id`), + `group_id` INTEGER NOT NULL REFERENCES `groups`(`id`), + `rec_fail` INTEGER, + `rec_noresult` INTEGER, + `max_age` INTEGER NOT NULL, + UNIQUE (`policy`, `group_id`) +); + +DROP TABLE IF EXISTS `sessions`; +CREATE TABLE `sessions` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `time` INTEGER NOT NULL, + `connection` INTEGER NOT NULL, + `identity` INTEGER DEFAULT 0 REFERENCES `identities`(`id`), + `device` INTEGER DEFAULT 0 REFERENCES `devices`(`id`), + `product` INTEGER DEFAULT 0 REFERENCES `products`(`id`), + `rec` INTEGER DEFAULT 3 +); + +DROP TABLE IF EXISTS `workitems`; +CREATE TABLE `workitems` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `session` INTEGER NOT NULL REFERENCES `sessions`(`id`), + `enforcement` INTEGER NOT NULL REFERENCES `enforcements`(`id`), + `type` INTEGER NOT NULL, + `arg_str` VARCHAR(128), + `arg_int` INTEGER DEFAULT 0, + `rec_fail` INTEGER NOT NULL, + `rec_noresult` INTEGER NOT NULL, + `rec_final` INTEGER, + `result` VARCHAR(128) +); + +DROP TABLE IF EXISTS `results`; +CREATE TABLE `results` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `session` INTEGER NOT NULL REFERENCES `measurements`(`id`), + `policy` INTEGER NOT NULL REFERENCES `policies`(`id`), + `rec` INTEGER NOT NULL, + `result` TEXT NOT NULL +); + +DROP TABLE IF EXISTS `components`; +CREATE TABLE `components` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `vendor_id` INTEGER NOT NULL, + `name` INTEGER NOT NULL, + `qualifier` INTEGER DEFAULT 0 +); + +DROP TABLE IF EXISTS `key_component`; +CREATE TABLE `key_component` ( + `key` INTEGER NOT NULL, + `component` INTEGER NOT NULL, + `depth` INTEGER DEFAULT 0, + `seq_no` INTEGER DEFAULT 0, + PRIMARY KEY (`key`, `component`) +); + +DROP TABLE IF EXISTS `component_hashes`; +CREATE TABLE `component_hashes` ( + `component` INTEGER NOT NULL, + `key` INTEGER NOT NULL, + `seq_no` INTEGER NOT NULL, + `pcr` INTEGER NOT NULL, + `algo` INTEGER NOT NULL, + `hash` VARBINARY(32) NOT NULL, + PRIMARY KEY(`component`, `key`, `seq_no`, `algo`) +); + +DROP TABLE IF EXISTS `packages`; +CREATE TABLE `packages` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `name` VARCHAR(128) NOT NULL, + `blacklist` INTEGER DEFAULT 0 +); + +DROP TABLE IF EXISTS versions; +CREATE TABLE versions ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `package` INTEGER NOT NULL REFERENCES packages(id), + `product` INTEGER NOT NULL REFERENCES products(id), + `release` VARCHAR(32) NOT NULL, + `security` INTEGER DEFAULT 0, + `blacklist` INTEGER DEFAULT 0, + `time` INTEGER DEFAULT 0 +); + +DROP TABLE IF EXISTS `devices`; +CREATE TABLE `devices` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `description` VARCHAR(100) DEFAULT "", + `value` VARCHAR(256) NOT NULL, + `product` INTEGER REFERENCES `products`(`id`), + `created` INTEGER +); + +DROP TABLE IF EXISTS `identities`; +CREATE TABLE `identities` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `type` INTEGER NOT NULL, + `value` VARBINARY(128) NOT NULL, + UNIQUE (type, value) +); + +DROP TABLE IF EXISTS `regids`; +CREATE TABLE `regids` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `name` TEXT NOT NULL +); + +DROP TABLE IF EXISTS `tags`; +CREATE TABLE `tags` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + `regid` INTEGER NOT NULL REFERENCES `regids`(`id`), + `unique_sw_id` VARCHAR(64) NOT NULL, + `value` VARCHAR(128) +); |