diff --git a/lib/Brass/DBIC.pm b/lib/Brass/DBIC.pm
new file mode 100644
index 0000000..1b3432e
--- /dev/null
+++ b/lib/Brass/DBIC.pm
@@ -0,0 +1,72 @@
+=pod
+Brass
+Copyright (C) 2024 Ctrl O Ltd
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+=cut
+
+package Brass::DBIC;
+
+use base qw(DBIx::Class);
+
+# Used as a component for result sources to perform additional DBIC functions
+# (such as validation of values). For validation, the Result needs a
+# validate() function. It should raise an exception if there is a problem.
+
+sub insert
+{ my $self = shift;
+ $self->_validate(@_);
+ $self->_before_create(@_);
+ my $guard = $self->result_source->schema->txn_scope_guard;
+ my $return = $self->next::method(@_);
+ $self->after_create
+ if $self->can('after_create');
+ $guard->commit;
+ $return;
+}
+
+sub delete
+{ my $self = shift;
+ $self->before_delete
+ if $self->can('before_delete');
+ $self->next::method(@_);
+}
+
+sub update
+{ my $self = shift;
+ $self->_validate(@_);
+ $self->next::method(@_);
+}
+
+sub _validate
+{ my ($self, $values) = @_;
+ # If update() has been called with a set of values, then these need to be
+ # updated in the object first, otherwise validation will be done on the
+ # existing values in the object not the new ones.
+ if ($values)
+ {
+ $self->$_($values->{$_}) foreach keys %$values;
+ }
+ $self->validate
+ if $self->can('validate');
+};
+
+sub _before_create
+{ my $self = shift;
+ $self->before_create
+ if $self->can('before_create');
+};
+
+
+1;
diff --git a/lib/Brass/Schema/Result/Config.pm b/lib/Brass/Schema/Result/Config.pm
new file mode 100644
index 0000000..c77ffe0
--- /dev/null
+++ b/lib/Brass/Schema/Result/Config.pm
@@ -0,0 +1,37 @@
+use utf8;
+package Brass::Schema::Result::Config;
+
+use strict;
+use warnings;
+
+use Log::Report;
+use Net::CIDR;
+
+use base 'DBIx::Class::Core';
+
+__PACKAGE__->load_components("+Brass::DBIC");
+
+__PACKAGE__->table("config");
+
+__PACKAGE__->add_columns(
+ "id",
+ { data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
+ "internal_networks",
+ { data_type => "text", is_nullable => 1 },
+ "smtp_relayhost",
+ { data_type => "text", is_nullable => 1 },
+);
+
+__PACKAGE__->set_primary_key("id");
+
+sub validate
+{ my $self = shift;
+
+ foreach my $range (split /[\s,]+/, $self->internal_networks)
+ {
+ Net::CIDR::cidrvalidate($range)
+ or error __x"Invalid IP range restriction: {range}", range => $range;
+ }
+}
+
+1;
diff --git a/share/fixtures/43/conf/all_tables.json b/share/fixtures/43/conf/all_tables.json
new file mode 100644
index 0000000..80e0cd5
--- /dev/null
+++ b/share/fixtures/43/conf/all_tables.json
@@ -0,0 +1,185 @@
+{
+ "belongs_to" : {
+ "fetch" : 0
+ },
+ "sets" : [
+ {
+ "quantity" : "all",
+ "class" : "Config"
+ },
+ {
+ "quantity" : "all",
+ "class" : "ServerServertype"
+ },
+ {
+ "class" : "IssueTag",
+ "quantity" : "all"
+ },
+ {
+ "quantity" : "all",
+ "class" : "CertLocationUse"
+ },
+ {
+ "quantity" : "all",
+ "class" : "Domain"
+ },
+ {
+ "quantity" : "all",
+ "class" : "Docsend"
+ },
+ {
+ "class" : "App",
+ "quantity" : "all"
+ },
+ {
+ "class" : "Docreadtype",
+ "quantity" : "all"
+ },
+ {
+ "quantity" : "all",
+ "class" : "DocDocreadtype"
+ },
+ {
+ "quantity" : "all",
+ "class" : "File"
+ },
+ {
+ "class" : "Customer",
+ "quantity" : "all"
+ },
+ {
+ "class" : "User",
+ "quantity" : "all"
+ },
+ {
+ "class" : "Tag",
+ "quantity" : "all"
+ },
+ {
+ "quantity" : "all",
+ "class" : "UserDocread"
+ },
+ {
+ "class" : "Uad",
+ "quantity" : "all"
+ },
+ {
+ "quantity" : "all",
+ "class" : "ServerPw"
+ },
+ {
+ "class" : "Project",
+ "quantity" : "all"
+ },
+ {
+ "quantity" : "all",
+ "class" : "Cert"
+ },
+ {
+ "quantity" : "all",
+ "class" : "UserTopic"
+ },
+ {
+ "class" : "EventPerson",
+ "quantity" : "all"
+ },
+ {
+ "class" : "Permission",
+ "quantity" : "all"
+ },
+ {
+ "class" : "Comment",
+ "quantity" : "all"
+ },
+ {
+ "quantity" : "all",
+ "class" : "CertUse"
+ },
+ {
+ "quantity" : "all",
+ "class" : "Servertype"
+ },
+ {
+ "class" : "UserProject",
+ "quantity" : "all"
+ },
+ {
+ "class" : "ServerCert",
+ "quantity" : "all"
+ },
+ {
+ "class" : "Pw",
+ "quantity" : "all"
+ },
+ {
+ "class" : "Event",
+ "quantity" : "all"
+ },
+ {
+ "quantity" : "all",
+ "class" : "PwServertype"
+ },
+ {
+ "quantity" : "all",
+ "class" : "Site"
+ },
+ {
+ "class" : "Issuetype",
+ "quantity" : "all"
+ },
+ {
+ "class" : "IssuePriority",
+ "quantity" : "all"
+ },
+ {
+ "class" : "Status",
+ "quantity" : "all"
+ },
+ {
+ "class" : "Calendar",
+ "quantity" : "all"
+ },
+ {
+ "quantity" : "all",
+ "class" : "Server"
+ },
+ {
+ "quantity" : "all",
+ "class" : "IssueStatus"
+ },
+ {
+ "class" : "Eventtype",
+ "quantity" : "all"
+ },
+ {
+ "quantity" : "all",
+ "class" : "Issue"
+ },
+ {
+ "quantity" : "all",
+ "class" : "UserDocreadtype"
+ },
+ {
+ "class" : "Priority",
+ "quantity" : "all"
+ },
+ {
+ "class" : "CertLocation",
+ "quantity" : "all"
+ },
+ {
+ "class" : "UserPermission",
+ "quantity" : "all"
+ },
+ {
+ "class" : "UserServertype",
+ "quantity" : "all"
+ }
+ ],
+ "has_many" : {
+ "fetch" : 0
+ },
+ "might_have" : {
+ "fetch" : 0
+ }
+}
diff --git a/share/fixtures/43/conf/permission.json b/share/fixtures/43/conf/permission.json
new file mode 100644
index 0000000..5e5688c
--- /dev/null
+++ b/share/fixtures/43/conf/permission.json
@@ -0,0 +1,17 @@
+{
+ "has_many" : {
+ "fetch" : 0
+ },
+ "sets" : [
+ {
+ "quantity" : "all",
+ "class" : "Permission"
+ }
+ ],
+ "might_have" : {
+ "fetch" : 0
+ },
+ "belongs_to" : {
+ "fetch" : 0
+ }
+}
diff --git a/share/fixtures/43/permission/_config_set b/share/fixtures/43/permission/_config_set
new file mode 100644
index 0000000..a44c766
--- /dev/null
+++ b/share/fixtures/43/permission/_config_set
@@ -0,0 +1,17 @@
+$VAR1 = {
+ 'belongs_to' => {
+ 'fetch' => 0
+ },
+ 'has_many' => {
+ 'fetch' => 0
+ },
+ 'might_have' => {
+ 'fetch' => 0
+ },
+ 'sets' => [
+ {
+ 'quantity' => 'all',
+ 'class' => 'Permission'
+ }
+ ]
+ };
diff --git a/share/fixtures/43/permission/_dumper_version b/share/fixtures/43/permission/_dumper_version
new file mode 100644
index 0000000..55eb15e
--- /dev/null
+++ b/share/fixtures/43/permission/_dumper_version
@@ -0,0 +1 @@
+1.001039
\ No newline at end of file
diff --git a/share/fixtures/43/permission/permission/1.fix b/share/fixtures/43/permission/permission/1.fix
new file mode 100644
index 0000000..5d6d3d2
--- /dev/null
+++ b/share/fixtures/43/permission/permission/1.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can view documents',
+ id => 1,
+ name => 'doc'
+ };
diff --git a/share/fixtures/43/permission/permission/10.fix b/share/fixtures/43/permission/permission/10.fix
new file mode 100644
index 0000000..4ecd84b
--- /dev/null
+++ b/share/fixtures/43/permission/permission/10.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can view configuration information',
+ id => 10,
+ name => 'config'
+ };
diff --git a/share/fixtures/43/permission/permission/11.fix b/share/fixtures/43/permission/permission/11.fix
new file mode 100644
index 0000000..19346a6
--- /dev/null
+++ b/share/fixtures/43/permission/permission/11.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can write configuration information',
+ id => 11,
+ name => 'config_write'
+ };
diff --git a/share/fixtures/43/permission/permission/12.fix b/share/fixtures/43/permission/permission/12.fix
new file mode 100644
index 0000000..3faf7b0
--- /dev/null
+++ b/share/fixtures/43/permission/permission/12.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can create and update any issue for certain projects',
+ id => 12,
+ name => 'issue_write_project'
+ };
diff --git a/share/fixtures/43/permission/permission/13.fix b/share/fixtures/43/permission/permission/13.fix
new file mode 100644
index 0000000..b1a3a33
--- /dev/null
+++ b/share/fixtures/43/permission/permission/13.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can read the calendar',
+ id => 13,
+ name => 'calendar_read'
+ };
diff --git a/share/fixtures/43/permission/permission/14.fix b/share/fixtures/43/permission/permission/14.fix
new file mode 100644
index 0000000..be1e59c
--- /dev/null
+++ b/share/fixtures/43/permission/permission/14.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can write to the calendar',
+ id => 14,
+ name => 'calendar_write'
+ };
diff --git a/share/fixtures/43/permission/permission/15.fix b/share/fixtures/43/permission/permission/15.fix
new file mode 100644
index 0000000..23b74ae
--- /dev/null
+++ b/share/fixtures/43/permission/permission/15.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User administrator',
+ id => 15,
+ name => 'user_admin'
+ };
diff --git a/share/fixtures/43/permission/permission/16.fix b/share/fixtures/43/permission/permission/16.fix
new file mode 100644
index 0000000..9d8793b
--- /dev/null
+++ b/share/fixtures/43/permission/permission/16.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User receives brass reports',
+ id => 16,
+ name => 'reports'
+ };
diff --git a/share/fixtures/43/permission/permission/17.fix b/share/fixtures/43/permission/permission/17.fix
new file mode 100644
index 0000000..09dadbe
--- /dev/null
+++ b/share/fixtures/43/permission/permission/17.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User receives notification of all new issues',
+ id => 17,
+ name => 'new_issue_alert'
+ };
diff --git a/share/fixtures/43/permission/permission/2.fix b/share/fixtures/43/permission/permission/2.fix
new file mode 100644
index 0000000..66daa29
--- /dev/null
+++ b/share/fixtures/43/permission/permission/2.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can publish documents',
+ id => 2,
+ name => 'doc_publish'
+ };
diff --git a/share/fixtures/43/permission/permission/3.fix b/share/fixtures/43/permission/permission/3.fix
new file mode 100644
index 0000000..8f21926
--- /dev/null
+++ b/share/fixtures/43/permission/permission/3.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can save drafts',
+ id => 3,
+ name => 'doc_save'
+ };
diff --git a/share/fixtures/43/permission/permission/4.fix b/share/fixtures/43/permission/permission/4.fix
new file mode 100644
index 0000000..5318b2e
--- /dev/null
+++ b/share/fixtures/43/permission/permission/4.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can save records',
+ id => 4,
+ name => 'doc_record'
+ };
diff --git a/share/fixtures/43/permission/permission/5.fix b/share/fixtures/43/permission/permission/5.fix
new file mode 100644
index 0000000..83437f1
--- /dev/null
+++ b/share/fixtures/43/permission/permission/5.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can view own issues',
+ id => 5,
+ name => 'issue_read'
+ };
diff --git a/share/fixtures/43/permission/permission/6.fix b/share/fixtures/43/permission/permission/6.fix
new file mode 100644
index 0000000..7ba2ae2
--- /dev/null
+++ b/share/fixtures/43/permission/permission/6.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can view all issues',
+ id => 6,
+ name => 'issue_read_all'
+ };
diff --git a/share/fixtures/43/permission/permission/7.fix b/share/fixtures/43/permission/permission/7.fix
new file mode 100644
index 0000000..7bbcbdb
--- /dev/null
+++ b/share/fixtures/43/permission/permission/7.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can write to new and own issues',
+ id => 7,
+ name => 'issue_write'
+ };
diff --git a/share/fixtures/43/permission/permission/8.fix b/share/fixtures/43/permission/permission/8.fix
new file mode 100644
index 0000000..4d7e2f4
--- /dev/null
+++ b/share/fixtures/43/permission/permission/8.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can write to all issues',
+ id => 8,
+ name => 'issue_write_all'
+ };
diff --git a/share/fixtures/43/permission/permission/9.fix b/share/fixtures/43/permission/permission/9.fix
new file mode 100644
index 0000000..c7fa350
--- /dev/null
+++ b/share/fixtures/43/permission/permission/9.fix
@@ -0,0 +1,6 @@
+$HASH1 = {
+ description
+ => 'User can view all issues for certain projects',
+ id => 9,
+ name => 'issue_read_project'
+ };
diff --git a/share/migrations/MySQL/deploy/43/001-auto-__VERSION.sql b/share/migrations/MySQL/deploy/43/001-auto-__VERSION.sql
new file mode 100644
index 0000000..a0e1b61
--- /dev/null
+++ b/share/migrations/MySQL/deploy/43/001-auto-__VERSION.sql
@@ -0,0 +1,18 @@
+--
+-- Created by SQL::Translator::Producer::MySQL
+-- Created on Mon Oct 7 11:29:22 2024
+--
+;
+SET foreign_key_checks=0;
+--
+-- Table: `dbix_class_deploymenthandler_versions`
+--
+CREATE TABLE `dbix_class_deploymenthandler_versions` (
+ `id` integer NOT NULL auto_increment,
+ `version` varchar(50) NOT NULL,
+ `ddl` text NULL,
+ `upgrade_sql` text NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE `dbix_class_deploymenthandler_versions_version` (`version`)
+);
+SET foreign_key_checks=1;
diff --git a/share/migrations/MySQL/deploy/43/001-auto.sql b/share/migrations/MySQL/deploy/43/001-auto.sql
new file mode 100644
index 0000000..7466b3c
--- /dev/null
+++ b/share/migrations/MySQL/deploy/43/001-auto.sql
@@ -0,0 +1,587 @@
+--
+-- Created by SQL::Translator::Producer::MySQL
+-- Created on Mon Oct 7 11:29:22 2024
+--
+;
+SET foreign_key_checks=0;
+--
+-- Table: `app`
+--
+CREATE TABLE `app` (
+ `id` integer NOT NULL auto_increment,
+ `status_last_run` datetime NULL,
+ PRIMARY KEY (`id`)
+);
+--
+-- Table: `calendar`
+--
+CREATE TABLE `calendar` (
+ `id` integer NOT NULL auto_increment,
+ `start` datetime NULL,
+ `end` datetime NULL,
+ `sequence` integer NOT NULL DEFAULT 0,
+ `description` text NULL,
+ `location` text NULL,
+ `attendees` text NULL,
+ `html` text NULL,
+ `user_id` integer NULL,
+ INDEX `calendar_idx_user_id` (`user_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `calendar_fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `cert`
+--
+CREATE TABLE `cert` (
+ `id` integer NOT NULL auto_increment,
+ `content` text NULL,
+ `cn` varchar(45) NULL,
+ `type` varchar(45) NULL,
+ `expiry` date NULL,
+ `usedby` varchar(45) NULL,
+ `description` text NULL,
+ `filename` text NULL,
+ `file_user` text NULL,
+ `file_group` text NULL,
+ `content_cert` text NULL,
+ `content_key` text NULL,
+ `content_ca` text NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `cert_location`
+--
+CREATE TABLE `cert_location` (
+ `id` integer NOT NULL auto_increment,
+ `cert_id` integer NOT NULL,
+ `filename_cert` text NULL,
+ `filename_key` text NULL,
+ `filename_ca` text NULL,
+ `file_user` text NULL,
+ `file_group` text NULL,
+ INDEX `cert_location_idx_cert_id` (`cert_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `cert_location_fk_cert_id` FOREIGN KEY (`cert_id`) REFERENCES `cert` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `cert_location_use`
+--
+CREATE TABLE `cert_location_use` (
+ `id` integer NOT NULL auto_increment,
+ `cert_location_id` integer NOT NULL,
+ `use_id` integer NOT NULL,
+ INDEX `cert_location_use_idx_cert_location_id` (`cert_location_id`),
+ INDEX `cert_location_use_idx_use_id` (`use_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `cert_location_use_fk_cert_location_id` FOREIGN KEY (`cert_location_id`) REFERENCES `cert_location` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `cert_location_use_fk_use_id` FOREIGN KEY (`use_id`) REFERENCES `cert_use` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `cert_use`
+--
+CREATE TABLE `cert_use` (
+ `id` integer NOT NULL auto_increment,
+ `name` varchar(128) NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `comment`
+--
+CREATE TABLE `comment` (
+ `id` integer NOT NULL auto_increment,
+ `author` integer NOT NULL,
+ `issue` integer NOT NULL,
+ `datetime` datetime NULL,
+ `text` text NULL,
+ INDEX `comment_idx_author` (`author`),
+ INDEX `comment_idx_issue` (`issue`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `comment_fk_author` FOREIGN KEY (`author`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `comment_fk_issue` FOREIGN KEY (`issue`) REFERENCES `issue` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `config`
+--
+CREATE TABLE `config` (
+ `id` integer NOT NULL auto_increment,
+ `internal_networks` text NULL,
+ `smtp_relayhost` text NULL,
+ PRIMARY KEY (`id`)
+);
+--
+-- Table: `customer`
+--
+CREATE TABLE `customer` (
+ `id` integer NOT NULL auto_increment,
+ `name` text NULL,
+ `authnames` text NULL,
+ `updated` datetime NULL,
+ `updated_by` integer NOT NULL,
+ INDEX `customer_idx_updated_by` (`updated_by`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `customer_fk_updated_by` FOREIGN KEY (`updated_by`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `doc_docreadtype`
+--
+CREATE TABLE `doc_docreadtype` (
+ `id` integer NOT NULL auto_increment,
+ `doc_id` integer NOT NULL,
+ `docreadtype_id` integer NOT NULL,
+ INDEX `doc_docreadtype_idx_docreadtype_id` (`docreadtype_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `doc_docreadtype_fk_docreadtype_id` FOREIGN KEY (`docreadtype_id`) REFERENCES `docreadtype` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `docreadtype`
+--
+CREATE TABLE `docreadtype` (
+ `id` integer NOT NULL auto_increment,
+ `name` text NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `docsend`
+--
+CREATE TABLE `docsend` (
+ `id` integer NOT NULL auto_increment,
+ `doc_id` integer NULL,
+ `email` text NULL,
+ `code` varchar(32) NULL,
+ `created` datetime NULL,
+ `download_time` datetime NULL,
+ `download_ip_address` text NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE `docsend_ux_code` (`code`)
+);
+--
+-- Table: `domain`
+--
+CREATE TABLE `domain` (
+ `id` integer NOT NULL auto_increment,
+ `name` varchar(45) NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `event`
+--
+CREATE TABLE `event` (
+ `id` integer NOT NULL auto_increment,
+ `title` text NULL,
+ `description` text NULL,
+ `from` datetime NULL,
+ `to` datetime NULL,
+ `editor_id` integer NULL,
+ `eventtype_id` integer NULL,
+ `customer_id` integer NULL,
+ `invoiced` smallint NOT NULL DEFAULT 0,
+ INDEX `event_idx_customer_id` (`customer_id`),
+ INDEX `event_idx_editor_id` (`editor_id`),
+ INDEX `event_idx_eventtype_id` (`eventtype_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `event_fk_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `event_fk_editor_id` FOREIGN KEY (`editor_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `event_fk_eventtype_id` FOREIGN KEY (`eventtype_id`) REFERENCES `eventtype` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `event_person`
+--
+CREATE TABLE `event_person` (
+ `id` integer NOT NULL auto_increment,
+ `event_id` integer NULL,
+ `user_id` integer NULL,
+ INDEX `event_person_idx_event_id` (`event_id`),
+ INDEX `event_person_idx_user_id` (`user_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `event_person_fk_event_id` FOREIGN KEY (`event_id`) REFERENCES `event` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `event_person_fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `eventtype`
+--
+CREATE TABLE `eventtype` (
+ `id` integer NOT NULL auto_increment,
+ `name` varchar(128) NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `file`
+--
+CREATE TABLE `file` (
+ `id` integer NOT NULL auto_increment,
+ `uploaded_by` integer NOT NULL,
+ `issue` integer NOT NULL,
+ `datetime` datetime NULL,
+ `name` text NULL,
+ `mimetype` text NULL,
+ `content` longblob NULL,
+ INDEX `file_idx_issue` (`issue`),
+ INDEX `file_idx_uploaded_by` (`uploaded_by`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `file_fk_issue` FOREIGN KEY (`issue`) REFERENCES `issue` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `file_fk_uploaded_by` FOREIGN KEY (`uploaded_by`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `issue`
+--
+CREATE TABLE `issue` (
+ `id` integer NOT NULL auto_increment,
+ `title` text NULL,
+ `description` text NULL,
+ `type` integer NULL,
+ `author` integer NULL,
+ `owner` integer NULL,
+ `approver` integer NULL,
+ `reference` varchar(128) NULL,
+ `project` integer NULL,
+ `security_considerations` text NULL,
+ `rca` text NULL,
+ `corrective_action` text NULL,
+ `related_issue_id` integer NULL,
+ `target_date` datetime NULL,
+ `resources_required` text NULL,
+ `success_description` text NULL,
+ INDEX `issue_idx_approver` (`approver`),
+ INDEX `issue_idx_author` (`author`),
+ INDEX `issue_idx_owner` (`owner`),
+ INDEX `issue_idx_project` (`project`),
+ INDEX `issue_idx_related_issue_id` (`related_issue_id`),
+ INDEX `issue_idx_type` (`type`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `issue_fk_approver` FOREIGN KEY (`approver`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `issue_fk_author` FOREIGN KEY (`author`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `issue_fk_owner` FOREIGN KEY (`owner`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `issue_fk_project` FOREIGN KEY (`project`) REFERENCES `project` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `issue_fk_related_issue_id` FOREIGN KEY (`related_issue_id`) REFERENCES `issue` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `issue_fk_type` FOREIGN KEY (`type`) REFERENCES `issuetype` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `issue_priority`
+--
+CREATE TABLE `issue_priority` (
+ `id` integer NOT NULL auto_increment,
+ `issue` integer NOT NULL,
+ `priority` integer NOT NULL,
+ `datetime` datetime NULL,
+ `user` integer NULL,
+ INDEX `issue_priority_idx_issue` (`issue`),
+ INDEX `issue_priority_idx_priority` (`priority`),
+ INDEX `issue_priority_idx_user` (`user`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `issue_priority_fk_issue` FOREIGN KEY (`issue`) REFERENCES `issue` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `issue_priority_fk_priority` FOREIGN KEY (`priority`) REFERENCES `priority` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `issue_priority_fk_user` FOREIGN KEY (`user`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `issue_status`
+--
+CREATE TABLE `issue_status` (
+ `id` integer NOT NULL auto_increment,
+ `issue` integer NOT NULL,
+ `status` integer NOT NULL,
+ `datetime` datetime NULL,
+ `user` integer NULL,
+ INDEX `issue_status_idx_issue` (`issue`),
+ INDEX `issue_status_idx_status` (`status`),
+ INDEX `issue_status_idx_user` (`user`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `issue_status_fk_issue` FOREIGN KEY (`issue`) REFERENCES `issue` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `issue_status_fk_status` FOREIGN KEY (`status`) REFERENCES `status` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `issue_status_fk_user` FOREIGN KEY (`user`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `issue_tag`
+--
+CREATE TABLE `issue_tag` (
+ `id` integer NOT NULL auto_increment,
+ `issue` integer NOT NULL,
+ `tag` integer NOT NULL,
+ INDEX `issue_tag_idx_issue` (`issue`),
+ INDEX `issue_tag_idx_tag` (`tag`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `issue_tag_fk_issue` FOREIGN KEY (`issue`) REFERENCES `issue` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `issue_tag_fk_tag` FOREIGN KEY (`tag`) REFERENCES `tag` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `issuetype`
+--
+CREATE TABLE `issuetype` (
+ `id` integer NOT NULL auto_increment,
+ `name` varchar(128) NULL,
+ `identifier` varchar(32) NULL,
+ `is_vulnerability` smallint NOT NULL DEFAULT 0,
+ `is_breach` smallint NOT NULL DEFAULT 0,
+ `is_audit` smallint NOT NULL DEFAULT 0,
+ `is_other_security` smallint NOT NULL DEFAULT 0,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `permission`
+--
+CREATE TABLE `permission` (
+ `id` integer NOT NULL auto_increment,
+ `name` varchar(45) NULL,
+ `description` text NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `priority`
+--
+CREATE TABLE `priority` (
+ `id` integer NOT NULL auto_increment,
+ `name` varchar(128) NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `project`
+--
+CREATE TABLE `project` (
+ `id` integer NOT NULL auto_increment,
+ `name` varchar(128) NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `pw`
+--
+CREATE TABLE `pw` (
+ `id` integer NOT NULL auto_increment,
+ `server_id` integer NULL,
+ `uad_id` integer NULL,
+ `username` varchar(45) NULL,
+ `user_id` integer NULL,
+ `password` varchar(45) NULL,
+ `pwencrypt` blob NULL,
+ `type` varchar(128) NULL,
+ `last_changed` datetime NULL,
+ `publickey` text NULL,
+ INDEX `pw_idx_server_id` (`server_id`),
+ INDEX `pw_idx_uad_id` (`uad_id`),
+ INDEX `pw_idx_user_id` (`user_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `pw_fk_server_id` FOREIGN KEY (`server_id`) REFERENCES `server` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `pw_fk_uad_id` FOREIGN KEY (`uad_id`) REFERENCES `uad` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `pw_fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `pw_servertype`
+--
+CREATE TABLE `pw_servertype` (
+ `id` integer NOT NULL auto_increment,
+ `servertype_id` integer NULL,
+ `pw_id` integer NULL,
+ INDEX `pw_servertype_idx_pw_id` (`pw_id`),
+ INDEX `pw_servertype_idx_servertype_id` (`servertype_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `pw_servertype_fk_pw_id` FOREIGN KEY (`pw_id`) REFERENCES `pw` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `pw_servertype_fk_servertype_id` FOREIGN KEY (`servertype_id`) REFERENCES `servertype` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `server`
+--
+CREATE TABLE `server` (
+ `id` integer NOT NULL auto_increment,
+ `name` varchar(128) NULL,
+ `domain_id` integer NULL,
+ `sudo` text NULL,
+ `update_datetime` datetime NULL,
+ `update_result` text NULL,
+ `restart_required` text NULL,
+ `os_version` varchar(128) NULL,
+ `backup_verify` text NULL,
+ `notes` text NULL,
+ `is_production` smallint NOT NULL DEFAULT 0,
+ `local_ip` text NULL,
+ `metadata` text NULL,
+ INDEX `server_idx_domain_id` (`domain_id`),
+ PRIMARY KEY (`id`),
+ UNIQUE `name_UNIQUE` (`name`),
+ CONSTRAINT `server_fk_domain_id` FOREIGN KEY (`domain_id`) REFERENCES `domain` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `server_cert`
+--
+CREATE TABLE `server_cert` (
+ `id` integer NOT NULL auto_increment,
+ `server_id` integer NOT NULL,
+ `cert_id` integer NOT NULL,
+ `type` varchar(45) NULL,
+ `use` integer NULL,
+ INDEX `server_cert_idx_cert_id` (`cert_id`),
+ INDEX `server_cert_idx_server_id` (`server_id`),
+ INDEX `server_cert_idx_use` (`use`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `server_cert_fk_cert_id` FOREIGN KEY (`cert_id`) REFERENCES `cert` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `server_cert_fk_server_id` FOREIGN KEY (`server_id`) REFERENCES `server` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `server_cert_fk_use` FOREIGN KEY (`use`) REFERENCES `cert_use` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `server_pw`
+--
+CREATE TABLE `server_pw` (
+ `id` integer NOT NULL auto_increment,
+ `server_id` integer NULL,
+ `pw_id` integer NULL,
+ INDEX `server_pw_idx_pw_id` (`pw_id`),
+ INDEX `server_pw_idx_server_id` (`server_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `server_pw_fk_pw_id` FOREIGN KEY (`pw_id`) REFERENCES `pw` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `server_pw_fk_server_id` FOREIGN KEY (`server_id`) REFERENCES `server` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `server_servertype`
+--
+CREATE TABLE `server_servertype` (
+ `id` integer NOT NULL auto_increment,
+ `server_id` integer NOT NULL,
+ `servertype_id` integer NOT NULL,
+ INDEX `server_servertype_idx_server_id` (`server_id`),
+ INDEX `server_servertype_idx_servertype_id` (`servertype_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `server_servertype_fk_server_id` FOREIGN KEY (`server_id`) REFERENCES `server` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `server_servertype_fk_servertype_id` FOREIGN KEY (`servertype_id`) REFERENCES `servertype` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `servertype`
+--
+CREATE TABLE `servertype` (
+ `id` integer NOT NULL auto_increment,
+ `name` varchar(45) NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `site`
+--
+CREATE TABLE `site` (
+ `id` integer NOT NULL auto_increment,
+ `name` varchar(128) NULL,
+ `server_id` integer NULL,
+ INDEX `site_idx_server_id` (`server_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `site_fk_server_id` FOREIGN KEY (`server_id`) REFERENCES `server` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `status`
+--
+CREATE TABLE `status` (
+ `id` integer NOT NULL auto_increment,
+ `name` varchar(128) NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `tag`
+--
+CREATE TABLE `tag` (
+ `id` integer NOT NULL auto_increment,
+ `name` varchar(128) NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `uad`
+--
+CREATE TABLE `uad` (
+ `id` integer NOT NULL auto_increment,
+ `name` text NULL,
+ `owner` integer NULL,
+ `serial` text NULL,
+ `purchased` date NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `user`
+--
+CREATE TABLE `user` (
+ `id` integer NOT NULL auto_increment,
+ `username` varchar(128) NOT NULL,
+ `firstname` varchar(128) NULL,
+ `surname` varchar(128) NULL,
+ `email` varchar(128) NULL,
+ `deleted` datetime NULL,
+ `password` varchar(128) NULL,
+ `pwchanged` datetime NULL,
+ `pwresetcode` char(32) NULL,
+ `lastlogin` datetime NULL,
+ `lastfail` datetime NULL,
+ `failcount` integer NOT NULL DEFAULT 0,
+ `api_key` text NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB;
+--
+-- Table: `user_docread`
+--
+CREATE TABLE `user_docread` (
+ `id` integer NOT NULL auto_increment,
+ `user_id` integer NOT NULL,
+ `doc_id` integer NOT NULL,
+ `datetime` datetime NULL,
+ `ip_address` text NULL,
+ INDEX `user_docread_idx_user_id` (`user_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `user_docread_fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `user_docreadtype`
+--
+CREATE TABLE `user_docreadtype` (
+ `id` integer NOT NULL auto_increment,
+ `user_id` integer NOT NULL,
+ `docreadtype_id` integer NOT NULL,
+ INDEX `user_docreadtype_idx_docreadtype_id` (`docreadtype_id`),
+ INDEX `user_docreadtype_idx_user_id` (`user_id`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `user_docreadtype_fk_docreadtype_id` FOREIGN KEY (`docreadtype_id`) REFERENCES `docreadtype` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `user_docreadtype_fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `user_permission`
+--
+CREATE TABLE `user_permission` (
+ `id` integer NOT NULL auto_increment,
+ `user` integer NULL,
+ `permission` integer NULL,
+ INDEX `user_permission_idx_permission` (`permission`),
+ INDEX `user_permission_idx_user` (`user`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `user_permission_fk_permission` FOREIGN KEY (`permission`) REFERENCES `permission` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `user_permission_fk_user` FOREIGN KEY (`user`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `user_project`
+--
+CREATE TABLE `user_project` (
+ `id` integer NOT NULL auto_increment,
+ `user` integer NOT NULL,
+ `project` integer NOT NULL,
+ INDEX `user_project_idx_project` (`project`),
+ INDEX `user_project_idx_user` (`user`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `user_project_fk_project` FOREIGN KEY (`project`) REFERENCES `project` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `user_project_fk_user` FOREIGN KEY (`user`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `user_servertype`
+--
+CREATE TABLE `user_servertype` (
+ `id` integer NOT NULL auto_increment,
+ `user` integer NOT NULL,
+ `servertype` integer NOT NULL,
+ INDEX `user_servertype_idx_servertype` (`servertype`),
+ INDEX `user_servertype_idx_user` (`user`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `user_servertype_fk_servertype` FOREIGN KEY (`servertype`) REFERENCES `servertype` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `user_servertype_fk_user` FOREIGN KEY (`user`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+--
+-- Table: `user_topic`
+--
+CREATE TABLE `user_topic` (
+ `id` integer NOT NULL auto_increment,
+ `user` integer NOT NULL,
+ `topic` integer NOT NULL,
+ `permission` integer NOT NULL,
+ INDEX `user_topic_idx_permission` (`permission`),
+ INDEX `user_topic_idx_user` (`user`),
+ PRIMARY KEY (`id`),
+ CONSTRAINT `user_topic_fk_permission` FOREIGN KEY (`permission`) REFERENCES `permission` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT `user_topic_fk_user` FOREIGN KEY (`user`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+SET foreign_key_checks=1;
diff --git a/share/migrations/MySQL/downgrade/43-42/001-auto.sql b/share/migrations/MySQL/downgrade/43-42/001-auto.sql
new file mode 100644
index 0000000..1fa4bfd
--- /dev/null
+++ b/share/migrations/MySQL/downgrade/43-42/001-auto.sql
@@ -0,0 +1,12 @@
+-- Convert schema '/srv/Brass/share/migrations/_source/deploy/43/001-auto.yml' to '/srv/Brass/share/migrations/_source/deploy/42/001-auto.yml':;
+
+;
+BEGIN;
+
+;
+DROP TABLE config;
+
+;
+
+COMMIT;
+
diff --git a/share/migrations/MySQL/upgrade/42-43/001-auto.sql b/share/migrations/MySQL/upgrade/42-43/001-auto.sql
new file mode 100644
index 0000000..aabcd5e
--- /dev/null
+++ b/share/migrations/MySQL/upgrade/42-43/001-auto.sql
@@ -0,0 +1,23 @@
+-- Convert schema '/srv/Brass/share/migrations/_source/deploy/42/001-auto.yml' to '/srv/Brass/share/migrations/_source/deploy/43/001-auto.yml':;
+
+;
+BEGIN;
+
+;
+SET foreign_key_checks=0;
+
+;
+CREATE TABLE `config` (
+ `id` integer NOT NULL auto_increment,
+ `internal_networks` text NULL,
+ `smtp_relayhost` text NULL,
+ PRIMARY KEY (`id`)
+);
+
+;
+SET foreign_key_checks=1;
+
+;
+
+COMMIT;
+
diff --git a/share/migrations/_source/deploy/43/001-auto-__VERSION.yml b/share/migrations/_source/deploy/43/001-auto-__VERSION.yml
new file mode 100644
index 0000000..d823250
--- /dev/null
+++ b/share/migrations/_source/deploy/43/001-auto-__VERSION.yml
@@ -0,0 +1,91 @@
+---
+schema:
+ procedures: {}
+ tables:
+ dbix_class_deploymenthandler_versions:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - version
+ match_type: ''
+ name: dbix_class_deploymenthandler_versions_version
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ fields:
+ ddl:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: ddl
+ order: 3
+ size:
+ - 0
+ id:
+ data_type: int
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ upgrade_sql:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: upgrade_sql
+ order: 4
+ size:
+ - 0
+ version:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 1
+ name: version
+ order: 2
+ size:
+ - 50
+ indices: []
+ name: dbix_class_deploymenthandler_versions
+ options: []
+ order: 1
+ triggers: {}
+ views: {}
+translator:
+ add_drop_table: 0
+ filename: ~
+ no_comments: 0
+ parser_args:
+ sources:
+ - __VERSION
+ parser_type: SQL::Translator::Parser::DBIx::Class
+ producer_args: {}
+ producer_type: SQL::Translator::Producer::YAML
+ show_warnings: 0
+ trace: 0
+ version: 1.64
diff --git a/share/migrations/_source/deploy/43/001-auto.yml b/share/migrations/_source/deploy/43/001-auto.yml
new file mode 100644
index 0000000..9a7296b
--- /dev/null
+++ b/share/migrations/_source/deploy/43/001-auto.yml
@@ -0,0 +1,4037 @@
+---
+schema:
+ procedures: {}
+ tables:
+ app:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ status_last_run:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: status_last_run
+ order: 2
+ size:
+ - 0
+ indices: []
+ name: app
+ options: []
+ order: 1
+ calendar:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - user_id
+ match_type: ''
+ name: calendar_fk_user_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ attendees:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: attendees
+ order: 7
+ size:
+ - 0
+ description:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: description
+ order: 5
+ size:
+ - 0
+ end:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: end
+ order: 3
+ size:
+ - 0
+ html:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: html
+ order: 8
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ location:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: location
+ order: 6
+ size:
+ - 0
+ sequence:
+ data_type: integer
+ default_value: 0
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: sequence
+ order: 4
+ size:
+ - 0
+ start:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: start
+ order: 2
+ size:
+ - 0
+ user_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: user_id
+ order: 9
+ size:
+ - 0
+ indices:
+ - fields:
+ - user_id
+ name: calendar_idx_user_id
+ options: []
+ type: NORMAL
+ name: calendar
+ options: []
+ order: 2
+ cert:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ cn:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: cn
+ order: 3
+ size:
+ - 45
+ content:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: content
+ order: 2
+ size:
+ - 0
+ content_ca:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: content_ca
+ order: 13
+ size:
+ - 0
+ content_cert:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: content_cert
+ order: 11
+ size:
+ - 0
+ content_key:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: content_key
+ order: 12
+ size:
+ - 0
+ description:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: description
+ order: 7
+ size:
+ - 0
+ expiry:
+ data_type: date
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: expiry
+ order: 5
+ size:
+ - 0
+ file_group:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: file_group
+ order: 10
+ size:
+ - 0
+ file_user:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: file_user
+ order: 9
+ size:
+ - 0
+ filename:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: filename
+ order: 8
+ size:
+ - 256
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ type:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: type
+ order: 4
+ size:
+ - 45
+ usedby:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: usedby
+ order: 6
+ size:
+ - 45
+ indices: []
+ name: cert
+ options: []
+ order: 3
+ cert_location:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - cert_id
+ match_type: ''
+ name: cert_location_fk_cert_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: cert
+ type: FOREIGN KEY
+ fields:
+ cert_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: cert_id
+ order: 2
+ size:
+ - 0
+ file_group:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: file_group
+ order: 7
+ size:
+ - 0
+ file_user:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: file_user
+ order: 6
+ size:
+ - 0
+ filename_ca:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: filename_ca
+ order: 5
+ size:
+ - 0
+ filename_cert:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: filename_cert
+ order: 3
+ size:
+ - 0
+ filename_key:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: filename_key
+ order: 4
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ indices:
+ - fields:
+ - cert_id
+ name: cert_location_idx_cert_id
+ options: []
+ type: NORMAL
+ name: cert_location
+ options: []
+ order: 4
+ cert_location_use:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - cert_location_id
+ match_type: ''
+ name: cert_location_use_fk_cert_location_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: cert_location
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - use_id
+ match_type: ''
+ name: cert_location_use_fk_use_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: cert_use
+ type: FOREIGN KEY
+ fields:
+ cert_location_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: cert_location_id
+ order: 2
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ use_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: use_id
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - cert_location_id
+ name: cert_location_use_idx_cert_location_id
+ options: []
+ type: NORMAL
+ - fields:
+ - use_id
+ name: cert_location_use_idx_use_id
+ options: []
+ type: NORMAL
+ name: cert_location_use
+ options: []
+ order: 5
+ cert_use:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 128
+ indices: []
+ name: cert_use
+ options: []
+ order: 6
+ comment:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - author
+ match_type: ''
+ name: comment_fk_author
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - issue
+ match_type: ''
+ name: comment_fk_issue
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: issue
+ type: FOREIGN KEY
+ fields:
+ author:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: author
+ order: 2
+ size:
+ - 0
+ datetime:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: datetime
+ order: 4
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ issue:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: issue
+ order: 3
+ size:
+ - 0
+ text:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: text
+ order: 5
+ size:
+ - 0
+ indices:
+ - fields:
+ - author
+ name: comment_idx_author
+ options: []
+ type: NORMAL
+ - fields:
+ - issue
+ name: comment_idx_issue
+ options: []
+ type: NORMAL
+ name: comment
+ options: []
+ order: 7
+ config:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ internal_networks:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: internal_networks
+ order: 2
+ size:
+ - 0
+ smtp_relayhost:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: smtp_relayhost
+ order: 3
+ size:
+ - 0
+ indices: []
+ name: config
+ options: []
+ order: 8
+ customer:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - updated_by
+ match_type: ''
+ name: customer_fk_updated_by
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ authnames:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: authnames
+ order: 3
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 0
+ updated:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: updated
+ order: 4
+ size:
+ - 0
+ updated_by:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: updated_by
+ order: 5
+ size:
+ - 0
+ indices:
+ - fields:
+ - updated_by
+ name: customer_idx_updated_by
+ options: []
+ type: NORMAL
+ name: customer
+ options: []
+ order: 9
+ doc_docreadtype:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - docreadtype_id
+ match_type: ''
+ name: doc_docreadtype_fk_docreadtype_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: docreadtype
+ type: FOREIGN KEY
+ fields:
+ doc_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: doc_id
+ order: 2
+ size:
+ - 0
+ docreadtype_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: docreadtype_id
+ order: 3
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ indices:
+ - fields:
+ - docreadtype_id
+ name: doc_docreadtype_idx_docreadtype_id
+ options: []
+ type: NORMAL
+ name: doc_docreadtype
+ options: []
+ order: 10
+ docreadtype:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 0
+ indices: []
+ name: docreadtype
+ options: []
+ order: 11
+ docsend:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - code
+ match_type: ''
+ name: docsend_ux_code
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ fields:
+ code:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 1
+ name: code
+ order: 4
+ size:
+ - 32
+ created:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: created
+ order: 5
+ size:
+ - 0
+ doc_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: doc_id
+ order: 2
+ size:
+ - 0
+ download_ip_address:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: download_ip_address
+ order: 7
+ size:
+ - 0
+ download_time:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: download_time
+ order: 6
+ size:
+ - 0
+ email:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: email
+ order: 3
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ indices: []
+ name: docsend
+ options: []
+ order: 12
+ domain:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 45
+ indices: []
+ name: domain
+ options: []
+ order: 13
+ event:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - customer_id
+ match_type: ''
+ name: event_fk_customer_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: customer
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - editor_id
+ match_type: ''
+ name: event_fk_editor_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - eventtype_id
+ match_type: ''
+ name: event_fk_eventtype_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: eventtype
+ type: FOREIGN KEY
+ fields:
+ customer_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: customer_id
+ order: 8
+ size:
+ - 0
+ description:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: description
+ order: 3
+ size:
+ - 0
+ editor_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: editor_id
+ order: 6
+ size:
+ - 0
+ eventtype_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: eventtype_id
+ order: 7
+ size:
+ - 0
+ from:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: from
+ order: 4
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ invoiced:
+ data_type: smallint
+ default_value: 0
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: invoiced
+ order: 9
+ size:
+ - 0
+ title:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: title
+ order: 2
+ size:
+ - 256
+ to:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: to
+ order: 5
+ size:
+ - 0
+ indices:
+ - fields:
+ - customer_id
+ name: event_idx_customer_id
+ options: []
+ type: NORMAL
+ - fields:
+ - editor_id
+ name: event_idx_editor_id
+ options: []
+ type: NORMAL
+ - fields:
+ - eventtype_id
+ name: event_idx_eventtype_id
+ options: []
+ type: NORMAL
+ name: event
+ options: []
+ order: 14
+ event_person:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - event_id
+ match_type: ''
+ name: event_person_fk_event_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: event
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - user_id
+ match_type: ''
+ name: event_person_fk_user_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ event_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: event_id
+ order: 2
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ user_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: user_id
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - event_id
+ name: event_person_idx_event_id
+ options: []
+ type: NORMAL
+ - fields:
+ - user_id
+ name: event_person_idx_user_id
+ options: []
+ type: NORMAL
+ name: event_person
+ options: []
+ order: 15
+ eventtype:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 128
+ indices: []
+ name: eventtype
+ options: []
+ order: 16
+ file:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - issue
+ match_type: ''
+ name: file_fk_issue
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: issue
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - uploaded_by
+ match_type: ''
+ name: file_fk_uploaded_by
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ content:
+ data_type: longblob
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: content
+ order: 7
+ size:
+ - 0
+ datetime:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: datetime
+ order: 4
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ issue:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: issue
+ order: 3
+ size:
+ - 0
+ mimetype:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: mimetype
+ order: 6
+ size:
+ - 0
+ name:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 5
+ size:
+ - 0
+ uploaded_by:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: uploaded_by
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - issue
+ name: file_idx_issue
+ options: []
+ type: NORMAL
+ - fields:
+ - uploaded_by
+ name: file_idx_uploaded_by
+ options: []
+ type: NORMAL
+ name: file
+ options: []
+ order: 17
+ issue:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - approver
+ match_type: ''
+ name: issue_fk_approver
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - author
+ match_type: ''
+ name: issue_fk_author
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - owner
+ match_type: ''
+ name: issue_fk_owner
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - project
+ match_type: ''
+ name: issue_fk_project
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: project
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - related_issue_id
+ match_type: ''
+ name: issue_fk_related_issue_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: issue
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - type
+ match_type: ''
+ name: issue_fk_type
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: issuetype
+ type: FOREIGN KEY
+ fields:
+ approver:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: approver
+ order: 7
+ size:
+ - 0
+ author:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: author
+ order: 5
+ size:
+ - 0
+ corrective_action:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: corrective_action
+ order: 12
+ size:
+ - 0
+ description:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: description
+ order: 3
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ owner:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: owner
+ order: 6
+ size:
+ - 0
+ project:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: project
+ order: 9
+ size:
+ - 0
+ rca:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: rca
+ order: 11
+ size:
+ - 0
+ reference:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: reference
+ order: 8
+ size:
+ - 128
+ related_issue_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: related_issue_id
+ order: 13
+ size:
+ - 0
+ resources_required:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: resources_required
+ order: 15
+ size:
+ - 0
+ security_considerations:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: security_considerations
+ order: 10
+ size:
+ - 0
+ success_description:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: success_description
+ order: 16
+ size:
+ - 0
+ target_date:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: target_date
+ order: 14
+ size:
+ - 0
+ title:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: title
+ order: 2
+ size:
+ - 256
+ type:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: type
+ order: 4
+ size:
+ - 0
+ indices:
+ - fields:
+ - approver
+ name: issue_idx_approver
+ options: []
+ type: NORMAL
+ - fields:
+ - author
+ name: issue_idx_author
+ options: []
+ type: NORMAL
+ - fields:
+ - owner
+ name: issue_idx_owner
+ options: []
+ type: NORMAL
+ - fields:
+ - project
+ name: issue_idx_project
+ options: []
+ type: NORMAL
+ - fields:
+ - related_issue_id
+ name: issue_idx_related_issue_id
+ options: []
+ type: NORMAL
+ - fields:
+ - type
+ name: issue_idx_type
+ options: []
+ type: NORMAL
+ name: issue
+ options: []
+ order: 18
+ issue_priority:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - issue
+ match_type: ''
+ name: issue_priority_fk_issue
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: issue
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - priority
+ match_type: ''
+ name: issue_priority_fk_priority
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: priority
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - user
+ match_type: ''
+ name: issue_priority_fk_user
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ datetime:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: datetime
+ order: 4
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ issue:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: issue
+ order: 2
+ size:
+ - 0
+ priority:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: priority
+ order: 3
+ size:
+ - 0
+ user:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: user
+ order: 5
+ size:
+ - 0
+ indices:
+ - fields:
+ - issue
+ name: issue_priority_idx_issue
+ options: []
+ type: NORMAL
+ - fields:
+ - priority
+ name: issue_priority_idx_priority
+ options: []
+ type: NORMAL
+ - fields:
+ - user
+ name: issue_priority_idx_user
+ options: []
+ type: NORMAL
+ name: issue_priority
+ options: []
+ order: 19
+ issue_status:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - issue
+ match_type: ''
+ name: issue_status_fk_issue
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: issue
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - status
+ match_type: ''
+ name: issue_status_fk_status
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: status
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - user
+ match_type: ''
+ name: issue_status_fk_user
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ datetime:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: datetime
+ order: 4
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ issue:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: issue
+ order: 2
+ size:
+ - 0
+ status:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: status
+ order: 3
+ size:
+ - 0
+ user:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: user
+ order: 5
+ size:
+ - 0
+ indices:
+ - fields:
+ - issue
+ name: issue_status_idx_issue
+ options: []
+ type: NORMAL
+ - fields:
+ - status
+ name: issue_status_idx_status
+ options: []
+ type: NORMAL
+ - fields:
+ - user
+ name: issue_status_idx_user
+ options: []
+ type: NORMAL
+ name: issue_status
+ options: []
+ order: 20
+ issue_tag:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - issue
+ match_type: ''
+ name: issue_tag_fk_issue
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: issue
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - tag
+ match_type: ''
+ name: issue_tag_fk_tag
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: tag
+ type: FOREIGN KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ issue:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: issue
+ order: 2
+ size:
+ - 0
+ tag:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: tag
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - issue
+ name: issue_tag_idx_issue
+ options: []
+ type: NORMAL
+ - fields:
+ - tag
+ name: issue_tag_idx_tag
+ options: []
+ type: NORMAL
+ name: issue_tag
+ options: []
+ order: 21
+ issuetype:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ identifier:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: identifier
+ order: 3
+ size:
+ - 32
+ is_audit:
+ data_type: smallint
+ default_value: 0
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: is_audit
+ order: 6
+ size:
+ - 0
+ is_breach:
+ data_type: smallint
+ default_value: 0
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: is_breach
+ order: 5
+ size:
+ - 0
+ is_other_security:
+ data_type: smallint
+ default_value: 0
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: is_other_security
+ order: 7
+ size:
+ - 0
+ is_vulnerability:
+ data_type: smallint
+ default_value: 0
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: is_vulnerability
+ order: 4
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 128
+ indices: []
+ name: issuetype
+ options: []
+ order: 22
+ permission:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ description:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: description
+ order: 3
+ size:
+ - 256
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 45
+ indices: []
+ name: permission
+ options: []
+ order: 23
+ priority:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 128
+ indices: []
+ name: priority
+ options: []
+ order: 24
+ project:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 128
+ indices: []
+ name: project
+ options: []
+ order: 25
+ pw:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - server_id
+ match_type: ''
+ name: pw_fk_server_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: server
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - uad_id
+ match_type: ''
+ name: pw_fk_uad_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: uad
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - user_id
+ match_type: ''
+ name: pw_fk_user_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ last_changed:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: last_changed
+ order: 9
+ size:
+ - 0
+ password:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: password
+ order: 6
+ size:
+ - 45
+ publickey:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: publickey
+ order: 10
+ size:
+ - 0
+ pwencrypt:
+ data_type: blob
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: pwencrypt
+ order: 7
+ size:
+ - 0
+ server_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: server_id
+ order: 2
+ size:
+ - 0
+ type:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: type
+ order: 8
+ size:
+ - 128
+ uad_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: uad_id
+ order: 3
+ size:
+ - 0
+ user_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: user_id
+ order: 5
+ size:
+ - 0
+ username:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: username
+ order: 4
+ size:
+ - 45
+ indices:
+ - fields:
+ - server_id
+ name: pw_idx_server_id
+ options: []
+ type: NORMAL
+ - fields:
+ - uad_id
+ name: pw_idx_uad_id
+ options: []
+ type: NORMAL
+ - fields:
+ - user_id
+ name: pw_idx_user_id
+ options: []
+ type: NORMAL
+ name: pw
+ options: []
+ order: 26
+ pw_servertype:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - pw_id
+ match_type: ''
+ name: pw_servertype_fk_pw_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: pw
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - servertype_id
+ match_type: ''
+ name: pw_servertype_fk_servertype_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: servertype
+ type: FOREIGN KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ pw_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: pw_id
+ order: 3
+ size:
+ - 0
+ servertype_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: servertype_id
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - pw_id
+ name: pw_servertype_idx_pw_id
+ options: []
+ type: NORMAL
+ - fields:
+ - servertype_id
+ name: pw_servertype_idx_servertype_id
+ options: []
+ type: NORMAL
+ name: pw_servertype
+ options: []
+ order: 27
+ server:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - name
+ match_type: ''
+ name: name_UNIQUE
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: UNIQUE
+ - deferrable: 1
+ expression: ''
+ fields:
+ - domain_id
+ match_type: ''
+ name: server_fk_domain_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: domain
+ type: FOREIGN KEY
+ fields:
+ backup_verify:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: backup_verify
+ order: 9
+ size:
+ - 0
+ domain_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: domain_id
+ order: 3
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ is_production:
+ data_type: smallint
+ default_value: 0
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: is_production
+ order: 11
+ size:
+ - 0
+ local_ip:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: local_ip
+ order: 12
+ size:
+ - 0
+ metadata:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: metadata
+ order: 13
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 1
+ name: name
+ order: 2
+ size:
+ - 128
+ notes:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: notes
+ order: 10
+ size:
+ - 0
+ os_version:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: os_version
+ order: 8
+ size:
+ - 128
+ restart_required:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: restart_required
+ order: 7
+ size:
+ - 0
+ sudo:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: sudo
+ order: 4
+ size:
+ - 0
+ update_datetime:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: update_datetime
+ order: 5
+ size:
+ - 0
+ update_result:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: update_result
+ order: 6
+ size:
+ - 0
+ indices:
+ - fields:
+ - domain_id
+ name: server_idx_domain_id
+ options: []
+ type: NORMAL
+ name: server
+ options: []
+ order: 28
+ server_cert:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - cert_id
+ match_type: ''
+ name: server_cert_fk_cert_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: cert
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - server_id
+ match_type: ''
+ name: server_cert_fk_server_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: server
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - use
+ match_type: ''
+ name: server_cert_fk_use
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: cert_use
+ type: FOREIGN KEY
+ fields:
+ cert_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: cert_id
+ order: 3
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ server_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: server_id
+ order: 2
+ size:
+ - 0
+ type:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: type
+ order: 4
+ size:
+ - 45
+ use:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: use
+ order: 5
+ size:
+ - 0
+ indices:
+ - fields:
+ - cert_id
+ name: server_cert_idx_cert_id
+ options: []
+ type: NORMAL
+ - fields:
+ - server_id
+ name: server_cert_idx_server_id
+ options: []
+ type: NORMAL
+ - fields:
+ - use
+ name: server_cert_idx_use
+ options: []
+ type: NORMAL
+ name: server_cert
+ options: []
+ order: 29
+ server_pw:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - pw_id
+ match_type: ''
+ name: server_pw_fk_pw_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: pw
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - server_id
+ match_type: ''
+ name: server_pw_fk_server_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: server
+ type: FOREIGN KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ pw_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: pw_id
+ order: 3
+ size:
+ - 0
+ server_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: server_id
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - pw_id
+ name: server_pw_idx_pw_id
+ options: []
+ type: NORMAL
+ - fields:
+ - server_id
+ name: server_pw_idx_server_id
+ options: []
+ type: NORMAL
+ name: server_pw
+ options: []
+ order: 30
+ server_servertype:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - server_id
+ match_type: ''
+ name: server_servertype_fk_server_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: server
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - servertype_id
+ match_type: ''
+ name: server_servertype_fk_servertype_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: servertype
+ type: FOREIGN KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ server_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: server_id
+ order: 2
+ size:
+ - 0
+ servertype_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: servertype_id
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - server_id
+ name: server_servertype_idx_server_id
+ options: []
+ type: NORMAL
+ - fields:
+ - servertype_id
+ name: server_servertype_idx_servertype_id
+ options: []
+ type: NORMAL
+ name: server_servertype
+ options: []
+ order: 31
+ servertype:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 45
+ indices: []
+ name: servertype
+ options: []
+ order: 32
+ site:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - server_id
+ match_type: ''
+ name: site_fk_server_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: server
+ type: FOREIGN KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 128
+ server_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: server_id
+ order: 3
+ size:
+ - 0
+ indices:
+ - fields:
+ - server_id
+ name: site_idx_server_id
+ options: []
+ type: NORMAL
+ name: site
+ options: []
+ order: 33
+ status:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 128
+ indices: []
+ name: status
+ options: []
+ order: 34
+ tag:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 128
+ indices: []
+ name: tag
+ options: []
+ order: 35
+ uad:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ name:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: name
+ order: 2
+ size:
+ - 256
+ owner:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: owner
+ order: 3
+ size:
+ - 0
+ purchased:
+ data_type: date
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: purchased
+ order: 5
+ size:
+ - 0
+ serial:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: serial
+ order: 4
+ size:
+ - 0
+ indices: []
+ name: uad
+ options: []
+ order: 36
+ user:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ fields:
+ api_key:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: api_key
+ order: 13
+ size:
+ - 0
+ deleted:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: deleted
+ order: 6
+ size:
+ - 0
+ email:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: email
+ order: 5
+ size:
+ - 128
+ failcount:
+ data_type: integer
+ default_value: 0
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: failcount
+ order: 12
+ size:
+ - 0
+ firstname:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: firstname
+ order: 3
+ size:
+ - 128
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ lastfail:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: lastfail
+ order: 11
+ size:
+ - 0
+ lastlogin:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: lastlogin
+ order: 10
+ size:
+ - 0
+ password:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: password
+ order: 7
+ size:
+ - 128
+ pwchanged:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: pwchanged
+ order: 8
+ size:
+ - 0
+ pwresetcode:
+ data_type: char
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: pwresetcode
+ order: 9
+ size:
+ - 32
+ surname:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: surname
+ order: 4
+ size:
+ - 128
+ username:
+ data_type: varchar
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: username
+ order: 2
+ size:
+ - 128
+ indices: []
+ name: user
+ options: []
+ order: 37
+ user_docread:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - user_id
+ match_type: ''
+ name: user_docread_fk_user_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ datetime:
+ data_type: datetime
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: datetime
+ order: 4
+ size:
+ - 0
+ doc_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: doc_id
+ order: 3
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ ip_address:
+ data_type: text
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: ip_address
+ order: 5
+ size:
+ - 0
+ user_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: user_id
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - user_id
+ name: user_docread_idx_user_id
+ options: []
+ type: NORMAL
+ name: user_docread
+ options: []
+ order: 38
+ user_docreadtype:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - docreadtype_id
+ match_type: ''
+ name: user_docreadtype_fk_docreadtype_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: docreadtype
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - user_id
+ match_type: ''
+ name: user_docreadtype_fk_user_id
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ docreadtype_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: docreadtype_id
+ order: 3
+ size:
+ - 0
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ user_id:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: user_id
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - docreadtype_id
+ name: user_docreadtype_idx_docreadtype_id
+ options: []
+ type: NORMAL
+ - fields:
+ - user_id
+ name: user_docreadtype_idx_user_id
+ options: []
+ type: NORMAL
+ name: user_docreadtype
+ options: []
+ order: 39
+ user_permission:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - permission
+ match_type: ''
+ name: user_permission_fk_permission
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: permission
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - user
+ match_type: ''
+ name: user_permission_fk_user
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ permission:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: permission
+ order: 3
+ size:
+ - 0
+ user:
+ data_type: integer
+ default_value: ~
+ is_nullable: 1
+ is_primary_key: 0
+ is_unique: 0
+ name: user
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - permission
+ name: user_permission_idx_permission
+ options: []
+ type: NORMAL
+ - fields:
+ - user
+ name: user_permission_idx_user
+ options: []
+ type: NORMAL
+ name: user_permission
+ options: []
+ order: 40
+ user_project:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - project
+ match_type: ''
+ name: user_project_fk_project
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: project
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - user
+ match_type: ''
+ name: user_project_fk_user
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ project:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: project
+ order: 3
+ size:
+ - 0
+ user:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: user
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - project
+ name: user_project_idx_project
+ options: []
+ type: NORMAL
+ - fields:
+ - user
+ name: user_project_idx_user
+ options: []
+ type: NORMAL
+ name: user_project
+ options: []
+ order: 41
+ user_servertype:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - servertype
+ match_type: ''
+ name: user_servertype_fk_servertype
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: servertype
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - user
+ match_type: ''
+ name: user_servertype_fk_user
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ servertype:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: servertype
+ order: 3
+ size:
+ - 0
+ user:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: user
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - servertype
+ name: user_servertype_idx_servertype
+ options: []
+ type: NORMAL
+ - fields:
+ - user
+ name: user_servertype_idx_user
+ options: []
+ type: NORMAL
+ name: user_servertype
+ options: []
+ order: 42
+ user_topic:
+ constraints:
+ - deferrable: 1
+ expression: ''
+ fields:
+ - id
+ match_type: ''
+ name: ''
+ on_delete: ''
+ on_update: ''
+ options: []
+ reference_fields: []
+ reference_table: ''
+ type: PRIMARY KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - permission
+ match_type: ''
+ name: user_topic_fk_permission
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: permission
+ type: FOREIGN KEY
+ - deferrable: 1
+ expression: ''
+ fields:
+ - user
+ match_type: ''
+ name: user_topic_fk_user
+ on_delete: NO ACTION
+ on_update: NO ACTION
+ options: []
+ reference_fields:
+ - id
+ reference_table: user
+ type: FOREIGN KEY
+ fields:
+ id:
+ data_type: integer
+ default_value: ~
+ is_auto_increment: 1
+ is_nullable: 0
+ is_primary_key: 1
+ is_unique: 0
+ name: id
+ order: 1
+ size:
+ - 0
+ permission:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: permission
+ order: 4
+ size:
+ - 0
+ topic:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: topic
+ order: 3
+ size:
+ - 0
+ user:
+ data_type: integer
+ default_value: ~
+ is_nullable: 0
+ is_primary_key: 0
+ is_unique: 0
+ name: user
+ order: 2
+ size:
+ - 0
+ indices:
+ - fields:
+ - permission
+ name: user_topic_idx_permission
+ options: []
+ type: NORMAL
+ - fields:
+ - user
+ name: user_topic_idx_user
+ options: []
+ type: NORMAL
+ name: user_topic
+ options: []
+ order: 43
+ triggers: {}
+ views: {}
+translator:
+ add_drop_table: 0
+ filename: ~
+ no_comments: 0
+ parser_args:
+ sources:
+ - App
+ - Calendar
+ - Cert
+ - CertLocation
+ - CertLocationUse
+ - CertUse
+ - Comment
+ - Config
+ - Customer
+ - DocDocreadtype
+ - Docreadtype
+ - Docsend
+ - Domain
+ - Event
+ - EventPerson
+ - Eventtype
+ - File
+ - Issue
+ - IssuePriority
+ - IssueStatus
+ - IssueTag
+ - Issuetype
+ - Permission
+ - Priority
+ - Project
+ - Pw
+ - PwServertype
+ - Server
+ - ServerCert
+ - ServerPw
+ - ServerServertype
+ - Servertype
+ - Site
+ - Status
+ - Tag
+ - Uad
+ - User
+ - UserDocread
+ - UserDocreadtype
+ - UserPermission
+ - UserProject
+ - UserServertype
+ - UserTopic
+ parser_type: SQL::Translator::Parser::DBIx::Class
+ producer_args: {}
+ producer_type: SQL::Translator::Producer::YAML
+ show_warnings: 0
+ trace: 0
+ version: 1.64
diff --git a/views/config/site.tt b/views/config/site.tt
new file mode 100644
index 0000000..1353f0f
--- /dev/null
+++ b/views/config/site.tt
@@ -0,0 +1,18 @@
+