]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
imv: Provide database table scheme for MySQL
authorMartin Willi <martin@revosec.ch>
Fri, 7 Mar 2014 11:53:19 +0000 (12:53 +0100)
committerMartin Willi <martin@revosec.ch>
Wed, 4 Jun 2014 13:53:10 +0000 (15:53 +0200)
src/libimcv/Makefile.am
src/libimcv/imv/tables-mysql.sql [new file with mode: 0644]

index ca5a9ac7c9e68a390277b09f613796f86cef0d4c..0c56169eed86bd7863af79ebf0faa26b8cd6c220 100644 (file)
@@ -60,7 +60,7 @@ ipsec_SCRIPTS = imv/_imv_policy
 EXTRA_DIST = imv/_imv_policy
 
 templatesdir = $(pkgdatadir)/templates/database/imv
-dist_templates_DATA = imv/tables.sql imv/data.sql
+dist_templates_DATA = imv/tables.sql imv/tables-mysql.sql imv/data.sql
 
 ipsec_PROGRAMS = imv_policy_manager
 imv_policy_manager_SOURCES = \
diff --git a/src/libimcv/imv/tables-mysql.sql b/src/libimcv/imv/tables-mysql.sql
new file mode 100644 (file)
index 0000000..47ee41c
--- /dev/null
@@ -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)
+);