diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..22a5ad5
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,31 @@
+FROM tomcat:8.0.44-jre8
+ENV JAVA_OPTS="-server -Xms256m -Xmx512m -Dmidpoint.home=/var/opt/midpoint/ -Djavax.net.ssl.trustStore=/var/opt/midpoint/keystore.jceks -Djavax.net.ssl.trustStoreType=jceks"
+
+MAINTAINER info@evolveum.com
+
+ENV version 3.6.1
+
+RUN apt-get update \
+&& apt-get -y install wget netcat mysql-client libmysql-java
+
+RUN wget https://evolveum.com/downloads/midpoint/${version}/midpoint-${version}-dist.tar.bz2
+
+RUN echo 'Extracting midPoint archive...' \
+&& tar xjf midpoint-${version}-dist.tar.bz2 \
+&& rm -f midpoint-${version}-dist.tar.bz2
+
+RUN cp midpoint-${version}/war/midpoint.war /usr/local/tomcat/webapps \
+&& rm -rf midpoint-${version}
+
+COPY assets/server.xml assets/context.xml /usr/local/tomcat/conf/
+COPY assets/config.xml assets/run-midpoint.sh /var/opt/midpoint/
+COPY assets/mysql-3.7-all.sql /
+
+CMD mkdir /midpoint_objects/
+COPY assets/objects/ /midpoint_objects/
+
+RUN ln -s /usr/share/java/mysql-connector-java.jar /usr/local/tomcat/lib/mysql-connector-java.jar
+
+#TODO: Use an init system of some sort to avoid zombie processes left over from Tomcat
+#TODO: https://github.com/krallin/tini/blob/master/README.md ?
+CMD ["/var/opt/midpoint/run-midpoint.sh"]
diff --git a/assets/config.xml b/assets/config.xml
new file mode 100644
index 0000000..9d1656f
--- /dev/null
+++ b/assets/config.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+ ${midpoint.home}/import
+
+
+ com.evolveum.midpoint.repo.sql.SqlRepositoryFactory
+ mysql
+ root
+ root
+ jdbc:mysql://midpoint-poc-mysql:3306/midpoint?characterEncoding=utf8&autoReconnect=true&useSSL=false
+
+
+
+ com.evolveum.midpoint.audit.impl.LoggerAuditServiceFactory
+
+
+ com.evolveum.midpoint.repo.sql.SqlAuditServiceFactory
+
+
+
+ true
+ ${midpoint.home}/icf-connectors
+
+
+ ${midpoint.home}/keystore.jceks
+ changeit
+ default
+
+
+
+
+
diff --git a/assets/context.xml b/assets/context.xml
new file mode 100644
index 0000000..02f3355
--- /dev/null
+++ b/assets/context.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+ WEB-INF/web.xml
+ ${catalina.base}/conf/web.xml
+
+
+
+
+
+
+
diff --git a/assets/mysql-3.7-all.sql b/assets/mysql-3.7-all.sql
new file mode 100644
index 0000000..d642a61
--- /dev/null
+++ b/assets/mysql-3.7-all.sql
@@ -0,0 +1,2252 @@
+# use for db create
+ CREATE DATABASE midpoint
+ CHARACTER SET utf8
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ DEFAULT COLLATE utf8_bin
+ ;
+
+use midpoint;
+
+# replace "ENGINE=InnoDB" with "DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE=InnoDB"
+# replace "DATETIME" with "DATETIME(6)"
+
+# remove iAncestor and iDescendant index, they are the same as FK for that fields
+
+CREATE TABLE m_abstract_role (
+ approvalProcess VARCHAR(255),
+ displayName_norm VARCHAR(255),
+ displayName_orig VARCHAR(255),
+ identifier VARCHAR(255),
+ ownerRef_relation VARCHAR(157),
+ ownerRef_targetOid VARCHAR(36),
+ ownerRef_type INTEGER,
+ requestable BIT,
+ riskLevel VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_acc_cert_campaign (
+ definitionRef_relation VARCHAR(157),
+ definitionRef_targetOid VARCHAR(36),
+ definitionRef_type INTEGER,
+ endTimestamp DATETIME(6),
+ handlerUri VARCHAR(255),
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ ownerRef_relation VARCHAR(157),
+ ownerRef_targetOid VARCHAR(36),
+ ownerRef_type INTEGER,
+ stageNumber INTEGER,
+ startTimestamp DATETIME(6),
+ state INTEGER,
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_acc_cert_case (
+ id INTEGER NOT NULL,
+ owner_oid VARCHAR(36) NOT NULL,
+ administrativeStatus INTEGER,
+ archiveTimestamp DATETIME(6),
+ disableReason VARCHAR(255),
+ disableTimestamp DATETIME(6),
+ effectiveStatus INTEGER,
+ enableTimestamp DATETIME(6),
+ validFrom DATETIME(6),
+ validTo DATETIME(6),
+ validityChangeTimestamp DATETIME(6),
+ validityStatus INTEGER,
+ currentStageOutcome VARCHAR(255),
+ fullObject LONGBLOB,
+ objectRef_relation VARCHAR(157),
+ objectRef_targetOid VARCHAR(36),
+ objectRef_type INTEGER,
+ orgRef_relation VARCHAR(157),
+ orgRef_targetOid VARCHAR(36),
+ orgRef_type INTEGER,
+ outcome VARCHAR(255),
+ remediedTimestamp DATETIME(6),
+ reviewDeadline DATETIME(6),
+ reviewRequestedTimestamp DATETIME(6),
+ stageNumber INTEGER,
+ targetRef_relation VARCHAR(157),
+ targetRef_targetOid VARCHAR(36),
+ targetRef_type INTEGER,
+ tenantRef_relation VARCHAR(157),
+ tenantRef_targetOid VARCHAR(36),
+ tenantRef_type INTEGER,
+ PRIMARY KEY (id, owner_oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_acc_cert_definition (
+ handlerUri VARCHAR(255),
+ lastCampaignClosedTimestamp DATETIME(6),
+ lastCampaignStartedTimestamp DATETIME(6),
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ ownerRef_relation VARCHAR(157),
+ ownerRef_targetOid VARCHAR(36),
+ ownerRef_type INTEGER,
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_acc_cert_wi (
+ id INTEGER NOT NULL,
+ owner_id INTEGER NOT NULL,
+ owner_owner_oid VARCHAR(36) NOT NULL,
+ closeTimestamp DATETIME(6),
+ outcome VARCHAR(255),
+ outputChangeTimestamp DATETIME(6),
+ performerRef_relation VARCHAR(157),
+ performerRef_targetOid VARCHAR(36),
+ performerRef_type INTEGER,
+ stageNumber INTEGER,
+ PRIMARY KEY (id, owner_id, owner_owner_oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_acc_cert_wi_reference (
+ owner_id INTEGER NOT NULL,
+ owner_owner_id INTEGER NOT NULL,
+ owner_owner_owner_oid VARCHAR(36) NOT NULL,
+ relation VARCHAR(157) NOT NULL,
+ targetOid VARCHAR(36) NOT NULL,
+ targetType INTEGER,
+ PRIMARY KEY (owner_id, owner_owner_id, owner_owner_owner_oid, relation, targetOid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_assignment (
+ id INTEGER NOT NULL,
+ owner_oid VARCHAR(36) NOT NULL,
+ administrativeStatus INTEGER,
+ archiveTimestamp DATETIME(6),
+ disableReason VARCHAR(255),
+ disableTimestamp DATETIME(6),
+ effectiveStatus INTEGER,
+ enableTimestamp DATETIME(6),
+ validFrom DATETIME(6),
+ validTo DATETIME(6),
+ validityChangeTimestamp DATETIME(6),
+ validityStatus INTEGER,
+ assignmentOwner INTEGER,
+ createChannel VARCHAR(255),
+ createTimestamp DATETIME(6),
+ creatorRef_relation VARCHAR(157),
+ creatorRef_targetOid VARCHAR(36),
+ creatorRef_type INTEGER,
+ lifecycleState VARCHAR(255),
+ modifierRef_relation VARCHAR(157),
+ modifierRef_targetOid VARCHAR(36),
+ modifierRef_type INTEGER,
+ modifyChannel VARCHAR(255),
+ modifyTimestamp DATETIME(6),
+ orderValue INTEGER,
+ orgRef_relation VARCHAR(157),
+ orgRef_targetOid VARCHAR(36),
+ orgRef_type INTEGER,
+ resourceRef_relation VARCHAR(157),
+ resourceRef_targetOid VARCHAR(36),
+ resourceRef_type INTEGER,
+ targetRef_relation VARCHAR(157),
+ targetRef_targetOid VARCHAR(36),
+ targetRef_type INTEGER,
+ tenantRef_relation VARCHAR(157),
+ tenantRef_targetOid VARCHAR(36),
+ tenantRef_type INTEGER,
+ extId INTEGER,
+ extOid VARCHAR(36),
+ PRIMARY KEY (id, owner_oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_assignment_ext_boolean (
+ eName VARCHAR(157) NOT NULL,
+ anyContainer_owner_id INTEGER NOT NULL,
+ anyContainer_owner_owner_oid VARCHAR(36) NOT NULL,
+ booleanValue BIT NOT NULL,
+ extensionType INTEGER,
+ dynamicDef BIT,
+ eType VARCHAR(157),
+ valueType INTEGER,
+ PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, booleanValue)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_assignment_ext_date (
+ eName VARCHAR(157) NOT NULL,
+ anyContainer_owner_id INTEGER NOT NULL,
+ anyContainer_owner_owner_oid VARCHAR(36) NOT NULL,
+ dateValue DATETIME(6) NOT NULL,
+ extensionType INTEGER,
+ dynamicDef BIT,
+ eType VARCHAR(157),
+ valueType INTEGER,
+ PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, dateValue)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_assignment_ext_long (
+ eName VARCHAR(157) NOT NULL,
+ anyContainer_owner_id INTEGER NOT NULL,
+ anyContainer_owner_owner_oid VARCHAR(36) NOT NULL,
+ longValue BIGINT NOT NULL,
+ extensionType INTEGER,
+ dynamicDef BIT,
+ eType VARCHAR(157),
+ valueType INTEGER,
+ PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, longValue)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_assignment_ext_poly (
+ eName VARCHAR(157) NOT NULL,
+ anyContainer_owner_id INTEGER NOT NULL,
+ anyContainer_owner_owner_oid VARCHAR(36) NOT NULL,
+ orig VARCHAR(255) NOT NULL,
+ extensionType INTEGER,
+ dynamicDef BIT,
+ norm VARCHAR(255),
+ eType VARCHAR(157),
+ valueType INTEGER,
+ PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, orig)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_assignment_ext_reference (
+ eName VARCHAR(157) NOT NULL,
+ anyContainer_owner_id INTEGER NOT NULL,
+ anyContainer_owner_owner_oid VARCHAR(36) NOT NULL,
+ targetoid VARCHAR(36) NOT NULL,
+ extensionType INTEGER,
+ dynamicDef BIT,
+ relation VARCHAR(157),
+ targetType INTEGER,
+ eType VARCHAR(157),
+ valueType INTEGER,
+ PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, targetoid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_assignment_ext_string (
+ eName VARCHAR(157) NOT NULL,
+ anyContainer_owner_id INTEGER NOT NULL,
+ anyContainer_owner_owner_oid VARCHAR(36) NOT NULL,
+ stringValue VARCHAR(255) NOT NULL,
+ extensionType INTEGER,
+ dynamicDef BIT,
+ eType VARCHAR(157),
+ valueType INTEGER,
+ PRIMARY KEY (eName, anyContainer_owner_id, anyContainer_owner_owner_oid, stringValue)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_assignment_extension (
+ owner_id INTEGER NOT NULL,
+ owner_owner_oid VARCHAR(36) NOT NULL,
+ booleansCount SMALLINT,
+ datesCount SMALLINT,
+ longsCount SMALLINT,
+ polysCount SMALLINT,
+ referencesCount SMALLINT,
+ stringsCount SMALLINT,
+ PRIMARY KEY (owner_id, owner_owner_oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_assignment_policy_situation (
+ assignment_id INTEGER NOT NULL,
+ assignment_oid VARCHAR(36) NOT NULL,
+ policySituation VARCHAR(255)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_assignment_reference (
+ owner_id INTEGER NOT NULL,
+ owner_owner_oid VARCHAR(36) NOT NULL,
+ reference_type INTEGER NOT NULL,
+ relation VARCHAR(157) NOT NULL,
+ targetOid VARCHAR(36) NOT NULL,
+ targetType INTEGER,
+ PRIMARY KEY (owner_id, owner_owner_oid, reference_type, relation, targetOid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_audit_delta (
+ checksum VARCHAR(32) NOT NULL,
+ record_id BIGINT NOT NULL,
+ delta LONGTEXT,
+ deltaOid VARCHAR(36),
+ deltaType INTEGER,
+ fullResult LONGTEXT,
+ objectName_norm VARCHAR(255),
+ objectName_orig VARCHAR(255),
+ resourceName_norm VARCHAR(255),
+ resourceName_orig VARCHAR(255),
+ resourceOid VARCHAR(36),
+ status INTEGER,
+ PRIMARY KEY (checksum, record_id)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_audit_event (
+ id BIGINT NOT NULL,
+ channel VARCHAR(255),
+ eventIdentifier VARCHAR(255),
+ eventStage INTEGER,
+ eventType INTEGER,
+ hostIdentifier VARCHAR(255),
+ initiatorName VARCHAR(255),
+ initiatorOid VARCHAR(36),
+ message VARCHAR(1024),
+ nodeIdentifier VARCHAR(255),
+ outcome INTEGER,
+ parameter VARCHAR(255),
+ remoteHostAddress VARCHAR(255),
+ result VARCHAR(255),
+ sessionIdentifier VARCHAR(255),
+ targetName VARCHAR(255),
+ targetOid VARCHAR(36),
+ targetOwnerName VARCHAR(255),
+ targetOwnerOid VARCHAR(36),
+ targetType INTEGER,
+ taskIdentifier VARCHAR(255),
+ taskOID VARCHAR(255),
+ timestampValue DATETIME(6),
+ PRIMARY KEY (id)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_audit_item (
+ changedItemPath VARCHAR(255) NOT NULL,
+ record_id BIGINT NOT NULL,
+ PRIMARY KEY (changedItemPath, record_id)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_audit_prop_value (
+ id BIGINT NOT NULL,
+ name VARCHAR(255),
+ record_id BIGINT,
+ value VARCHAR(1024),
+ PRIMARY KEY (id)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_audit_ref_value (
+ id BIGINT NOT NULL,
+ name VARCHAR(255),
+ oid VARCHAR(255),
+ record_id BIGINT,
+ targetName_norm VARCHAR(255),
+ targetName_orig VARCHAR(255),
+ type VARCHAR(255),
+ PRIMARY KEY (id)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_case (
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_connector (
+ connectorBundle VARCHAR(255),
+ connectorHostRef_relation VARCHAR(157),
+ connectorHostRef_targetOid VARCHAR(36),
+ connectorHostRef_type INTEGER,
+ connectorType VARCHAR(255),
+ connectorVersion VARCHAR(255),
+ framework VARCHAR(255),
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_connector_host (
+ hostname VARCHAR(255),
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ port VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_connector_target_system (
+ connector_oid VARCHAR(36) NOT NULL,
+ targetSystemType VARCHAR(255)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_exclusion (
+ id INTEGER NOT NULL,
+ owner_oid VARCHAR(36) NOT NULL,
+ policy INTEGER,
+ targetRef_relation VARCHAR(157),
+ targetRef_targetOid VARCHAR(36),
+ targetRef_type INTEGER,
+ PRIMARY KEY (id, owner_oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_focus (
+ administrativeStatus INTEGER,
+ archiveTimestamp DATETIME(6),
+ disableReason VARCHAR(255),
+ disableTimestamp DATETIME(6),
+ effectiveStatus INTEGER,
+ enableTimestamp DATETIME(6),
+ validFrom DATETIME(6),
+ validTo DATETIME(6),
+ validityChangeTimestamp DATETIME(6),
+ validityStatus INTEGER,
+ hasPhoto BIT DEFAULT FALSE NOT NULL,
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_focus_photo (
+ owner_oid VARCHAR(36) NOT NULL,
+ photo LONGBLOB,
+ PRIMARY KEY (owner_oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_focus_policy_situation (
+ focus_oid VARCHAR(36) NOT NULL,
+ policySituation VARCHAR(255)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_form (
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_generic_object (
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ objectType VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_lookup_table (
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_lookup_table_row (
+ id INTEGER NOT NULL,
+ owner_oid VARCHAR(36) NOT NULL,
+ row_key VARCHAR(255),
+ label_norm VARCHAR(255),
+ label_orig VARCHAR(255),
+ lastChangeTimestamp DATETIME(6),
+ row_value VARCHAR(255),
+ PRIMARY KEY (id, owner_oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_node (
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ nodeIdentifier VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_object (
+ oid VARCHAR(36) NOT NULL,
+ booleansCount SMALLINT,
+ createChannel VARCHAR(255),
+ createTimestamp DATETIME(6),
+ creatorRef_relation VARCHAR(157),
+ creatorRef_targetOid VARCHAR(36),
+ creatorRef_type INTEGER,
+ datesCount SMALLINT,
+ fullObject LONGBLOB,
+ lifecycleState VARCHAR(255),
+ longsCount SMALLINT,
+ modifierRef_relation VARCHAR(157),
+ modifierRef_targetOid VARCHAR(36),
+ modifierRef_type INTEGER,
+ modifyChannel VARCHAR(255),
+ modifyTimestamp DATETIME(6),
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ objectTypeClass INTEGER,
+ polysCount SMALLINT,
+ referencesCount SMALLINT,
+ stringsCount SMALLINT,
+ tenantRef_relation VARCHAR(157),
+ tenantRef_targetOid VARCHAR(36),
+ tenantRef_type INTEGER,
+ version INTEGER NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_object_ext_boolean (
+ eName VARCHAR(157) NOT NULL,
+ owner_oid VARCHAR(36) NOT NULL,
+ ownerType INTEGER NOT NULL,
+ booleanValue BIT NOT NULL,
+ dynamicDef BIT,
+ eType VARCHAR(157),
+ valueType INTEGER,
+ PRIMARY KEY (eName, owner_oid, ownerType, booleanValue)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_object_ext_date (
+ eName VARCHAR(157) NOT NULL,
+ owner_oid VARCHAR(36) NOT NULL,
+ ownerType INTEGER NOT NULL,
+ dateValue DATETIME(6) NOT NULL,
+ dynamicDef BIT,
+ eType VARCHAR(157),
+ valueType INTEGER,
+ PRIMARY KEY (eName, owner_oid, ownerType, dateValue)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_object_ext_long (
+ eName VARCHAR(157) NOT NULL,
+ owner_oid VARCHAR(36) NOT NULL,
+ ownerType INTEGER NOT NULL,
+ longValue BIGINT NOT NULL,
+ dynamicDef BIT,
+ eType VARCHAR(157),
+ valueType INTEGER,
+ PRIMARY KEY (eName, owner_oid, ownerType, longValue)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_object_ext_poly (
+ eName VARCHAR(157) NOT NULL,
+ owner_oid VARCHAR(36) NOT NULL,
+ ownerType INTEGER NOT NULL,
+ orig VARCHAR(255) NOT NULL,
+ dynamicDef BIT,
+ norm VARCHAR(255),
+ eType VARCHAR(157),
+ valueType INTEGER,
+ PRIMARY KEY (eName, owner_oid, ownerType, orig)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_object_ext_reference (
+ eName VARCHAR(157) NOT NULL,
+ owner_oid VARCHAR(36) NOT NULL,
+ ownerType INTEGER NOT NULL,
+ targetoid VARCHAR(36) NOT NULL,
+ dynamicDef BIT,
+ relation VARCHAR(157),
+ targetType INTEGER,
+ eType VARCHAR(157),
+ valueType INTEGER,
+ PRIMARY KEY (eName, owner_oid, ownerType, targetoid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_object_ext_string (
+ eName VARCHAR(157) NOT NULL,
+ owner_oid VARCHAR(36) NOT NULL,
+ ownerType INTEGER NOT NULL,
+ stringValue VARCHAR(255) NOT NULL,
+ dynamicDef BIT,
+ eType VARCHAR(157),
+ valueType INTEGER,
+ PRIMARY KEY (eName, owner_oid, ownerType, stringValue)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_object_template (
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ type INTEGER,
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_object_text_info (
+ owner_oid VARCHAR(36) NOT NULL,
+ text VARCHAR(255) NOT NULL,
+ PRIMARY KEY (owner_oid, text)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_operation_execution (
+ id INTEGER NOT NULL,
+ owner_oid VARCHAR(36) NOT NULL,
+ initiatorRef_relation VARCHAR(157),
+ initiatorRef_targetOid VARCHAR(36),
+ initiatorRef_type INTEGER,
+ status INTEGER,
+ taskRef_relation VARCHAR(157),
+ taskRef_targetOid VARCHAR(36),
+ taskRef_type INTEGER,
+ timestampValue DATETIME(6),
+ PRIMARY KEY (id, owner_oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_org (
+ costCenter VARCHAR(255),
+ displayOrder INTEGER,
+ locality_norm VARCHAR(255),
+ locality_orig VARCHAR(255),
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ tenant BIT,
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_org_closure (
+ ancestor_oid VARCHAR(36) NOT NULL,
+ descendant_oid VARCHAR(36) NOT NULL,
+ val INTEGER,
+ PRIMARY KEY (ancestor_oid, descendant_oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_org_org_type (
+ org_oid VARCHAR(36) NOT NULL,
+ orgType VARCHAR(255)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_reference (
+ owner_oid VARCHAR(36) NOT NULL,
+ reference_type INTEGER NOT NULL,
+ relation VARCHAR(157) NOT NULL,
+ targetOid VARCHAR(36) NOT NULL,
+ targetType INTEGER,
+ PRIMARY KEY (owner_oid, reference_type, relation, targetOid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_report (
+ export INTEGER,
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ orientation INTEGER,
+ parent BIT,
+ useHibernateSession BIT,
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_report_output (
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ reportRef_relation VARCHAR(157),
+ reportRef_targetOid VARCHAR(36),
+ reportRef_type INTEGER,
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_resource (
+ administrativeState INTEGER,
+ connectorRef_relation VARCHAR(157),
+ connectorRef_targetOid VARCHAR(36),
+ connectorRef_type INTEGER,
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ o16_lastAvailabilityStatus INTEGER,
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_role (
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ roleType VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_security_policy (
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_sequence (
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_service (
+ displayOrder INTEGER,
+ locality_norm VARCHAR(255),
+ locality_orig VARCHAR(255),
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_service_type (
+ service_oid VARCHAR(36) NOT NULL,
+ serviceType VARCHAR(255)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_shadow (
+ attemptNumber INTEGER,
+ dead BIT,
+ exist BIT,
+ failedOperationType INTEGER,
+ fullSynchronizationTimestamp DATETIME(6),
+ intent VARCHAR(255),
+ kind INTEGER,
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ objectClass VARCHAR(157),
+ pendingOperationCount INTEGER,
+ resourceRef_relation VARCHAR(157),
+ resourceRef_targetOid VARCHAR(36),
+ resourceRef_type INTEGER,
+ status INTEGER,
+ synchronizationSituation INTEGER,
+ synchronizationTimestamp DATETIME(6),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_system_configuration (
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_task (
+ binding INTEGER,
+ canRunOnNode VARCHAR(255),
+ category VARCHAR(255),
+ completionTimestamp DATETIME(6),
+ executionStatus INTEGER,
+ handlerUri VARCHAR(255),
+ lastRunFinishTimestamp DATETIME(6),
+ lastRunStartTimestamp DATETIME(6),
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ node VARCHAR(255),
+ objectRef_relation VARCHAR(157),
+ objectRef_targetOid VARCHAR(36),
+ objectRef_type INTEGER,
+ ownerRef_relation VARCHAR(157),
+ ownerRef_targetOid VARCHAR(36),
+ ownerRef_type INTEGER,
+ parent VARCHAR(255),
+ recurrence INTEGER,
+ status INTEGER,
+ taskIdentifier VARCHAR(255),
+ threadStopAction INTEGER,
+ waitingReason INTEGER,
+ wfEndTimestamp DATETIME(6),
+ wfObjectRef_relation VARCHAR(157),
+ wfObjectRef_targetOid VARCHAR(36),
+ wfObjectRef_type INTEGER,
+ wfProcessInstanceId VARCHAR(255),
+ wfRequesterRef_relation VARCHAR(157),
+ wfRequesterRef_targetOid VARCHAR(36),
+ wfRequesterRef_type INTEGER,
+ wfStartTimestamp DATETIME(6),
+ wfTargetRef_relation VARCHAR(157),
+ wfTargetRef_targetOid VARCHAR(36),
+ wfTargetRef_type INTEGER,
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_task_dependent (
+ task_oid VARCHAR(36) NOT NULL,
+ dependent VARCHAR(255)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_trigger (
+ id INTEGER NOT NULL,
+ owner_oid VARCHAR(36) NOT NULL,
+ handlerUri VARCHAR(255),
+ timestampValue DATETIME(6),
+ PRIMARY KEY (id, owner_oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_user (
+ additionalName_norm VARCHAR(255),
+ additionalName_orig VARCHAR(255),
+ costCenter VARCHAR(255),
+ emailAddress VARCHAR(255),
+ employeeNumber VARCHAR(255),
+ familyName_norm VARCHAR(255),
+ familyName_orig VARCHAR(255),
+ fullName_norm VARCHAR(255),
+ fullName_orig VARCHAR(255),
+ givenName_norm VARCHAR(255),
+ givenName_orig VARCHAR(255),
+ honorificPrefix_norm VARCHAR(255),
+ honorificPrefix_orig VARCHAR(255),
+ honorificSuffix_norm VARCHAR(255),
+ honorificSuffix_orig VARCHAR(255),
+ locale VARCHAR(255),
+ locality_norm VARCHAR(255),
+ locality_orig VARCHAR(255),
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ nickName_norm VARCHAR(255),
+ nickName_orig VARCHAR(255),
+ preferredLanguage VARCHAR(255),
+ status INTEGER,
+ telephoneNumber VARCHAR(255),
+ timezone VARCHAR(255),
+ title_norm VARCHAR(255),
+ title_orig VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_user_employee_type (
+ user_oid VARCHAR(36) NOT NULL,
+ employeeType VARCHAR(255)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_user_organization (
+ user_oid VARCHAR(36) NOT NULL,
+ norm VARCHAR(255),
+ orig VARCHAR(255)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_user_organizational_unit (
+ user_oid VARCHAR(36) NOT NULL,
+ norm VARCHAR(255),
+ orig VARCHAR(255)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE TABLE m_value_policy (
+ name_norm VARCHAR(255),
+ name_orig VARCHAR(255),
+ oid VARCHAR(36) NOT NULL,
+ PRIMARY KEY (oid)
+)
+ DEFAULT CHARACTER SET utf8
+ COLLATE utf8_bin
+ ENGINE = InnoDB;
+
+CREATE INDEX iAbstractRoleIdentifier ON m_abstract_role (identifier);
+
+CREATE INDEX iRequestable ON m_abstract_role (requestable);
+
+ALTER TABLE m_acc_cert_campaign
+ ADD CONSTRAINT uc_acc_cert_campaign_name UNIQUE (name_norm);
+
+CREATE INDEX iCaseObjectRefTargetOid ON m_acc_cert_case (objectRef_targetOid);
+
+CREATE INDEX iCaseTargetRefTargetOid ON m_acc_cert_case (targetRef_targetOid);
+
+CREATE INDEX iCaseTenantRefTargetOid ON m_acc_cert_case (tenantRef_targetOid);
+
+CREATE INDEX iCaseOrgRefTargetOid ON m_acc_cert_case (orgRef_targetOid);
+
+ALTER TABLE m_acc_cert_definition
+ ADD CONSTRAINT uc_acc_cert_definition_name UNIQUE (name_norm);
+
+CREATE INDEX iCertWorkItemRefTargetOid ON m_acc_cert_wi_reference (targetOid);
+
+CREATE INDEX iAssignmentAdministrative ON m_assignment (administrativeStatus);
+
+CREATE INDEX iAssignmentEffective ON m_assignment (effectiveStatus);
+
+CREATE INDEX iTargetRefTargetOid ON m_assignment (targetRef_targetOid);
+
+CREATE INDEX iTenantRefTargetOid ON m_assignment (tenantRef_targetOid);
+
+CREATE INDEX iOrgRefTargetOid ON m_assignment (orgRef_targetOid);
+
+CREATE INDEX iResourceRefTargetOid ON m_assignment (resourceRef_targetOid);
+
+CREATE INDEX iAExtensionBoolean ON m_assignment_ext_boolean (extensionType, eName, booleanValue);
+
+CREATE INDEX iAExtensionDate ON m_assignment_ext_date (extensionType, eName, dateValue);
+
+CREATE INDEX iAExtensionLong ON m_assignment_ext_long (extensionType, eName, longValue);
+
+CREATE INDEX iAExtensionPolyString ON m_assignment_ext_poly (extensionType, eName, orig);
+
+CREATE INDEX iAExtensionReference ON m_assignment_ext_reference (extensionType, eName, targetoid);
+
+CREATE INDEX iAExtensionString ON m_assignment_ext_string (extensionType, eName, stringValue);
+
+CREATE INDEX iAssignmentReferenceTargetOid ON m_assignment_reference (targetOid);
+
+CREATE INDEX iTimestampValue ON m_audit_event (timestampValue);
+
+CREATE INDEX iChangedItemPath ON m_audit_item (changedItemPath);
+
+CREATE INDEX iAuditPropValRecordId
+ ON m_audit_prop_value (record_id);
+
+CREATE INDEX iAuditRefValRecordId
+ ON m_audit_ref_value (record_id);
+
+ALTER TABLE m_case
+ ADD CONSTRAINT uc_case_name UNIQUE (name_norm);
+
+ALTER TABLE m_connector_host
+ADD CONSTRAINT uc_connector_host_name UNIQUE (name_norm);
+
+CREATE INDEX iFocusAdministrative ON m_focus (administrativeStatus);
+
+CREATE INDEX iFocusEffective ON m_focus (effectiveStatus);
+
+ALTER TABLE m_form
+ ADD CONSTRAINT uc_form_name UNIQUE (name_norm);
+
+ALTER TABLE m_generic_object
+ADD CONSTRAINT uc_generic_object_name UNIQUE (name_norm);
+
+ALTER TABLE m_lookup_table
+ADD CONSTRAINT uc_lookup_name UNIQUE (name_norm);
+
+ALTER TABLE m_lookup_table_row
+ADD CONSTRAINT uc_row_key UNIQUE (owner_oid, row_key);
+
+ALTER TABLE m_node
+ADD CONSTRAINT uc_node_name UNIQUE (name_norm);
+
+CREATE INDEX iObjectNameOrig ON m_object (name_orig);
+
+CREATE INDEX iObjectNameNorm ON m_object (name_norm);
+
+CREATE INDEX iObjectTypeClass ON m_object (objectTypeClass);
+
+CREATE INDEX iObjectCreateTimestamp ON m_object (createTimestamp);
+
+CREATE INDEX iObjectLifecycleState ON m_object (lifecycleState);
+
+CREATE INDEX iExtensionBoolean ON m_object_ext_boolean (ownerType, eName, booleanValue);
+
+CREATE INDEX iExtensionBooleanDef ON m_object_ext_boolean (owner_oid, ownerType);
+
+CREATE INDEX iExtensionDate ON m_object_ext_date (ownerType, eName, dateValue);
+
+CREATE INDEX iExtensionDateDef ON m_object_ext_date (owner_oid, ownerType);
+
+CREATE INDEX iExtensionLong ON m_object_ext_long (ownerType, eName, longValue);
+
+CREATE INDEX iExtensionLongDef ON m_object_ext_long (owner_oid, ownerType);
+
+CREATE INDEX iExtensionPolyString ON m_object_ext_poly (ownerType, eName, orig);
+
+CREATE INDEX iExtensionPolyStringDef ON m_object_ext_poly (owner_oid, ownerType);
+
+CREATE INDEX iExtensionReference ON m_object_ext_reference (ownerType, eName, targetoid);
+
+CREATE INDEX iExtensionReferenceDef ON m_object_ext_reference (owner_oid, ownerType);
+
+CREATE INDEX iExtensionString ON m_object_ext_string (ownerType, eName, stringValue);
+
+CREATE INDEX iExtensionStringDef ON m_object_ext_string (owner_oid, ownerType);
+
+ALTER TABLE m_object_template
+ADD CONSTRAINT uc_object_template_name UNIQUE (name_norm);
+
+CREATE INDEX iOpExecTaskOid
+ ON m_operation_execution (taskRef_targetOid);
+
+CREATE INDEX iOpExecInitiatorOid
+ ON m_operation_execution (initiatorRef_targetOid);
+
+CREATE INDEX iOpExecStatus
+ ON m_operation_execution (status);
+
+ALTER TABLE m_org
+ADD CONSTRAINT uc_org_name UNIQUE (name_norm);
+
+CREATE INDEX iDisplayOrder ON m_org (displayOrder);
+
+-- Not needed [FK already creates this index]
+-- CREATE INDEX iAncestor ON m_org_closure (ancestor_oid);
+
+-- Not needed [FK already creates this index]
+-- CREATE INDEX iDescendant ON m_org_closure (descendant_oid);
+
+CREATE INDEX iDescendantAncestor ON m_org_closure (descendant_oid, ancestor_oid);
+
+CREATE INDEX iReferenceTargetOid ON m_reference (targetOid);
+
+ALTER TABLE m_report
+ADD CONSTRAINT uc_report_name UNIQUE (name_norm);
+
+CREATE INDEX iReportParent ON m_report (parent);
+
+ALTER TABLE m_resource
+ADD CONSTRAINT uc_resource_name UNIQUE (name_norm);
+
+ALTER TABLE m_role
+ADD CONSTRAINT uc_role_name UNIQUE (name_norm);
+
+ALTER TABLE m_security_policy
+ADD CONSTRAINT uc_security_policy_name UNIQUE (name_norm);
+
+ALTER TABLE m_sequence
+ADD CONSTRAINT uc_sequence_name UNIQUE (name_norm);
+
+CREATE INDEX iShadowResourceRef ON m_shadow (resourceRef_targetOid);
+
+CREATE INDEX iShadowDead ON m_shadow (dead);
+
+CREATE INDEX iShadowKind ON m_shadow (kind);
+
+CREATE INDEX iShadowIntent ON m_shadow (intent);
+
+CREATE INDEX iShadowObjectClass ON m_shadow (objectClass);
+
+CREATE INDEX iShadowFailedOperationType ON m_shadow (failedOperationType);
+
+CREATE INDEX iShadowSyncSituation ON m_shadow (synchronizationSituation);
+
+CREATE INDEX iShadowPendingOperationCount ON m_shadow (pendingOperationCount);
+
+ALTER TABLE m_system_configuration
+ADD CONSTRAINT uc_system_configuration_name UNIQUE (name_norm);
+
+CREATE INDEX iParent ON m_task (parent);
+
+CREATE INDEX iTaskWfProcessInstanceId ON m_task (wfProcessInstanceId);
+
+CREATE INDEX iTaskWfStartTimestamp ON m_task (wfStartTimestamp);
+
+CREATE INDEX iTaskWfEndTimestamp ON m_task (wfEndTimestamp);
+
+CREATE INDEX iTaskWfRequesterOid ON m_task (wfRequesterRef_targetOid);
+
+CREATE INDEX iTaskWfObjectOid ON m_task (wfObjectRef_targetOid);
+
+CREATE INDEX iTaskWfTargetOid ON m_task (wfTargetRef_targetOid);
+
+CREATE INDEX iTriggerTimestamp ON m_trigger (timestampValue);
+
+ALTER TABLE m_user
+ADD CONSTRAINT uc_user_name UNIQUE (name_norm);
+
+CREATE INDEX iEmployeeNumber ON m_user (employeeNumber);
+
+CREATE INDEX iFullName ON m_user (fullName_orig);
+
+CREATE INDEX iFamilyName ON m_user (familyName_orig);
+
+CREATE INDEX iGivenName ON m_user (givenName_orig);
+
+CREATE INDEX iLocality ON m_user (locality_orig);
+
+ALTER TABLE m_value_policy
+ADD CONSTRAINT uc_value_policy_name UNIQUE (name_norm);
+
+ALTER TABLE m_abstract_role
+ADD CONSTRAINT fk_abstract_role
+FOREIGN KEY (oid)
+REFERENCES m_focus (oid);
+
+ALTER TABLE m_acc_cert_campaign
+ ADD CONSTRAINT fk_acc_cert_campaign
+ FOREIGN KEY (oid)
+ REFERENCES m_object (oid);
+
+ALTER TABLE m_acc_cert_case
+ADD CONSTRAINT fk_acc_cert_case_owner
+FOREIGN KEY (owner_oid)
+REFERENCES m_acc_cert_campaign (oid);
+
+ALTER TABLE m_acc_cert_definition
+ ADD CONSTRAINT fk_acc_cert_definition
+ FOREIGN KEY (oid)
+ REFERENCES m_object (oid);
+
+ALTER TABLE m_acc_cert_wi
+ ADD CONSTRAINT fk_acc_cert_wi_owner
+FOREIGN KEY (owner_id, owner_owner_oid)
+REFERENCES m_acc_cert_case (id, owner_oid);
+
+ALTER TABLE m_acc_cert_wi_reference
+ ADD CONSTRAINT fk_acc_cert_wi_ref_owner
+FOREIGN KEY (owner_id, owner_owner_id, owner_owner_owner_oid)
+REFERENCES m_acc_cert_wi (id, owner_id, owner_owner_oid);
+
+ALTER TABLE m_assignment
+ADD CONSTRAINT fk_assignment_owner
+FOREIGN KEY (owner_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_assignment_ext_boolean
+ADD CONSTRAINT fk_assignment_ext_boolean
+FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid)
+REFERENCES m_assignment_extension (owner_id, owner_owner_oid);
+
+ALTER TABLE m_assignment_ext_date
+ADD CONSTRAINT fk_assignment_ext_date
+FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid)
+REFERENCES m_assignment_extension (owner_id, owner_owner_oid);
+
+ALTER TABLE m_assignment_ext_long
+ADD CONSTRAINT fk_assignment_ext_long
+FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid)
+REFERENCES m_assignment_extension (owner_id, owner_owner_oid);
+
+ALTER TABLE m_assignment_ext_poly
+ADD CONSTRAINT fk_assignment_ext_poly
+FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid)
+REFERENCES m_assignment_extension (owner_id, owner_owner_oid);
+
+ALTER TABLE m_assignment_ext_reference
+ADD CONSTRAINT fk_assignment_ext_reference
+FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid)
+REFERENCES m_assignment_extension (owner_id, owner_owner_oid);
+
+ALTER TABLE m_assignment_ext_string
+ADD CONSTRAINT fk_assignment_ext_string
+FOREIGN KEY (anyContainer_owner_id, anyContainer_owner_owner_oid)
+REFERENCES m_assignment_extension (owner_id, owner_owner_oid);
+
+ALTER TABLE m_assignment_policy_situation
+ ADD CONSTRAINT fk_assignment_policy_situation
+FOREIGN KEY (assignment_id, assignment_oid)
+REFERENCES m_assignment (id, owner_oid);
+
+ALTER TABLE m_assignment_reference
+ADD CONSTRAINT fk_assignment_reference
+FOREIGN KEY (owner_id, owner_owner_oid)
+REFERENCES m_assignment (id, owner_oid);
+
+ALTER TABLE m_audit_delta
+ADD CONSTRAINT fk_audit_delta
+FOREIGN KEY (record_id)
+REFERENCES m_audit_event (id);
+
+ALTER TABLE m_audit_item
+ ADD CONSTRAINT fk_audit_item
+FOREIGN KEY (record_id)
+REFERENCES m_audit_event (id);
+
+ALTER TABLE m_audit_prop_value
+ ADD CONSTRAINT fk_audit_prop_value
+FOREIGN KEY (record_id)
+REFERENCES m_audit_event (id);
+
+ALTER TABLE m_audit_ref_value
+ ADD CONSTRAINT fk_audit_ref_value
+FOREIGN KEY (record_id)
+REFERENCES m_audit_event (id);
+
+ALTER TABLE m_case
+ ADD CONSTRAINT fk_case
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_connector
+ADD CONSTRAINT fk_connector
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_connector_host
+ADD CONSTRAINT fk_connector_host
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_connector_target_system
+ADD CONSTRAINT fk_connector_target_system
+FOREIGN KEY (connector_oid)
+REFERENCES m_connector (oid);
+
+ALTER TABLE m_exclusion
+ADD CONSTRAINT fk_exclusion_owner
+FOREIGN KEY (owner_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_focus
+ADD CONSTRAINT fk_focus
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_focus_photo
+ADD CONSTRAINT fk_focus_photo
+FOREIGN KEY (owner_oid)
+REFERENCES m_focus (oid);
+
+ALTER TABLE m_focus_policy_situation
+ ADD CONSTRAINT fk_focus_policy_situation
+FOREIGN KEY (focus_oid)
+REFERENCES m_focus (oid);
+
+ALTER TABLE m_form
+ ADD CONSTRAINT fk_form
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_generic_object
+ADD CONSTRAINT fk_generic_object
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_lookup_table
+ADD CONSTRAINT fk_lookup_table
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_lookup_table_row
+ADD CONSTRAINT fk_lookup_table_owner
+FOREIGN KEY (owner_oid)
+REFERENCES m_lookup_table (oid);
+
+ALTER TABLE m_node
+ADD CONSTRAINT fk_node
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_object_ext_boolean
+ADD CONSTRAINT fk_object_ext_boolean
+FOREIGN KEY (owner_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_object_ext_date
+ADD CONSTRAINT fk_object_ext_date
+FOREIGN KEY (owner_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_object_ext_long
+ADD CONSTRAINT fk_object_ext_long
+FOREIGN KEY (owner_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_object_ext_poly
+ADD CONSTRAINT fk_object_ext_poly
+FOREIGN KEY (owner_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_object_ext_reference
+ADD CONSTRAINT fk_object_ext_reference
+FOREIGN KEY (owner_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_object_ext_string
+ADD CONSTRAINT fk_object_ext_string
+FOREIGN KEY (owner_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_object_template
+ADD CONSTRAINT fk_object_template
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_object_text_info
+ ADD CONSTRAINT fk_object_text_info_owner
+FOREIGN KEY (owner_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_operation_execution
+ ADD CONSTRAINT fk_op_exec_owner
+FOREIGN KEY (owner_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_org
+ADD CONSTRAINT fk_org
+FOREIGN KEY (oid)
+REFERENCES m_abstract_role (oid);
+
+ALTER TABLE m_org_closure
+ADD CONSTRAINT fk_ancestor
+FOREIGN KEY (ancestor_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_org_closure
+ADD CONSTRAINT fk_descendant
+FOREIGN KEY (descendant_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_org_org_type
+ADD CONSTRAINT fk_org_org_type
+FOREIGN KEY (org_oid)
+REFERENCES m_org (oid);
+
+ALTER TABLE m_reference
+ADD CONSTRAINT fk_reference_owner
+FOREIGN KEY (owner_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_report
+ADD CONSTRAINT fk_report
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_report_output
+ADD CONSTRAINT fk_report_output
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_resource
+ADD CONSTRAINT fk_resource
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_role
+ADD CONSTRAINT fk_role
+FOREIGN KEY (oid)
+REFERENCES m_abstract_role (oid);
+
+ALTER TABLE m_security_policy
+ADD CONSTRAINT fk_security_policy
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_sequence
+ADD CONSTRAINT fk_sequence
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_service
+ ADD CONSTRAINT fk_service
+FOREIGN KEY (oid)
+REFERENCES m_abstract_role (oid);
+
+ALTER TABLE m_service_type
+ ADD CONSTRAINT fk_service_type
+FOREIGN KEY (service_oid)
+REFERENCES m_service (oid);
+
+ALTER TABLE m_shadow
+ADD CONSTRAINT fk_shadow
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_system_configuration
+ADD CONSTRAINT fk_system_configuration
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_task
+ADD CONSTRAINT fk_task
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_task_dependent
+ADD CONSTRAINT fk_task_dependent
+FOREIGN KEY (task_oid)
+REFERENCES m_task (oid);
+
+ALTER TABLE m_trigger
+ADD CONSTRAINT fk_trigger_owner
+FOREIGN KEY (owner_oid)
+REFERENCES m_object (oid);
+
+ALTER TABLE m_user
+ADD CONSTRAINT fk_user
+FOREIGN KEY (oid)
+REFERENCES m_focus (oid);
+
+ALTER TABLE m_user_employee_type
+ADD CONSTRAINT fk_user_employee_type
+FOREIGN KEY (user_oid)
+REFERENCES m_user (oid);
+
+ALTER TABLE m_user_organization
+ADD CONSTRAINT fk_user_organization
+FOREIGN KEY (user_oid)
+REFERENCES m_user (oid);
+
+ALTER TABLE m_user_organizational_unit
+ADD CONSTRAINT fk_user_org_unit
+FOREIGN KEY (user_oid)
+REFERENCES m_user (oid);
+
+ALTER TABLE m_value_policy
+ADD CONSTRAINT fk_value_policy
+FOREIGN KEY (oid)
+REFERENCES m_object (oid);
+
+CREATE TABLE hibernate_sequence (
+ next_val BIGINT
+);
+
+INSERT INTO hibernate_sequence VALUES (1);
+
+# By: Ron Cordell - roncordell
+# I didn't see this anywhere, so I thought I'd post it here. This is the script from Quartz to create the tables in a MySQL database, modified to use INNODB instead of MYISAM.
+
+DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
+DROP TABLE IF EXISTS QRTZ_LOCKS;
+DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
+DROP TABLE IF EXISTS QRTZ_CALENDARS;
+
+CREATE TABLE QRTZ_JOB_DETAILS(
+SCHED_NAME VARCHAR(120) NOT NULL,
+JOB_NAME VARCHAR(200) NOT NULL,
+JOB_GROUP VARCHAR(200) NOT NULL,
+DESCRIPTION VARCHAR(250) NULL,
+JOB_CLASS_NAME VARCHAR(250) NOT NULL,
+IS_DURABLE VARCHAR(1) NOT NULL,
+IS_NONCONCURRENT VARCHAR(1) NOT NULL,
+IS_UPDATE_DATA VARCHAR(1) NOT NULL,
+REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
+JOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+JOB_NAME VARCHAR(200) NOT NULL,
+JOB_GROUP VARCHAR(200) NOT NULL,
+DESCRIPTION VARCHAR(250) NULL,
+NEXT_FIRE_TIME BIGINT(13) NULL,
+PREV_FIRE_TIME BIGINT(13) NULL,
+PRIORITY INTEGER NULL,
+EXECUTION_GROUP VARCHAR(200) NULL,
+TRIGGER_STATE VARCHAR(16) NOT NULL,
+TRIGGER_TYPE VARCHAR(8) NOT NULL,
+START_TIME BIGINT(13) NOT NULL,
+END_TIME BIGINT(13) NULL,
+CALENDAR_NAME VARCHAR(200) NULL,
+MISFIRE_INSTR SMALLINT(2) NULL,
+JOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+REPEAT_COUNT BIGINT(7) NOT NULL,
+REPEAT_INTERVAL BIGINT(12) NOT NULL,
+TIMES_TRIGGERED BIGINT(10) NOT NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_CRON_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+CRON_EXPRESSION VARCHAR(120) NOT NULL,
+TIME_ZONE_ID VARCHAR(80),
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_SIMPROP_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR(1) NULL,
+ BOOL_PROP_2 VARCHAR(1) NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_BLOB_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+BLOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_CALENDARS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+CALENDAR_NAME VARCHAR(200) NOT NULL,
+CALENDAR BLOB NOT NULL,
+PRIMARY KEY (SCHED_NAME,CALENDAR_NAME))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_FIRED_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+ENTRY_ID VARCHAR(95) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+INSTANCE_NAME VARCHAR(200) NOT NULL,
+FIRED_TIME BIGINT(13) NOT NULL,
+SCHED_TIME BIGINT(13) NOT NULL,
+PRIORITY INTEGER NOT NULL,
+EXECUTION_GROUP VARCHAR(200) NULL,
+STATE VARCHAR(16) NOT NULL,
+JOB_NAME VARCHAR(200) NULL,
+JOB_GROUP VARCHAR(200) NULL,
+IS_NONCONCURRENT VARCHAR(1) NULL,
+REQUESTS_RECOVERY VARCHAR(1) NULL,
+PRIMARY KEY (SCHED_NAME,ENTRY_ID))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_SCHEDULER_STATE (
+SCHED_NAME VARCHAR(120) NOT NULL,
+INSTANCE_NAME VARCHAR(200) NOT NULL,
+LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
+CHECKIN_INTERVAL BIGINT(13) NOT NULL,
+PRIMARY KEY (SCHED_NAME,INSTANCE_NAME))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_LOCKS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+LOCK_NAME VARCHAR(40) NOT NULL,
+PRIMARY KEY (SCHED_NAME,LOCK_NAME))
+ENGINE=InnoDB;
+
+CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY);
+CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP);
+
+CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME);
+CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
+CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE);
+
+CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME);
+CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY);
+CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);
+CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
+
+create table ACT_GE_PROPERTY (
+ NAME_ varchar(64),
+ VALUE_ varchar(300),
+ REV_ integer,
+ primary key (NAME_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+insert into ACT_GE_PROPERTY
+values ('schema.version', '5.22.0.0', 1);
+
+insert into ACT_GE_PROPERTY
+values ('schema.history', 'create(5.22.0.0)', 1);
+
+insert into ACT_GE_PROPERTY
+values ('next.dbid', '1', 1);
+
+create table ACT_GE_BYTEARRAY (
+ ID_ varchar(64),
+ REV_ integer,
+ NAME_ varchar(255),
+ DEPLOYMENT_ID_ varchar(64),
+ BYTES_ LONGBLOB,
+ GENERATED_ TINYINT,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RE_DEPLOYMENT (
+ ID_ varchar(64),
+ NAME_ varchar(255),
+ CATEGORY_ varchar(255),
+ TENANT_ID_ varchar(255) default '',
+ DEPLOY_TIME_ timestamp(3) NULL,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RE_MODEL (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ NAME_ varchar(255),
+ KEY_ varchar(255),
+ CATEGORY_ varchar(255),
+ CREATE_TIME_ timestamp(3) null,
+ LAST_UPDATE_TIME_ timestamp(3) null,
+ VERSION_ integer,
+ META_INFO_ varchar(4000),
+ DEPLOYMENT_ID_ varchar(64),
+ EDITOR_SOURCE_VALUE_ID_ varchar(64),
+ EDITOR_SOURCE_EXTRA_VALUE_ID_ varchar(64),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_EXECUTION (
+ ID_ varchar(64),
+ REV_ integer,
+ PROC_INST_ID_ varchar(64),
+ BUSINESS_KEY_ varchar(255),
+ PARENT_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ SUPER_EXEC_ varchar(64),
+ ACT_ID_ varchar(255),
+ IS_ACTIVE_ TINYINT,
+ IS_CONCURRENT_ TINYINT,
+ IS_SCOPE_ TINYINT,
+ IS_EVENT_SCOPE_ TINYINT,
+ SUSPENSION_STATE_ integer,
+ CACHED_ENT_STATE_ integer,
+ TENANT_ID_ varchar(255) default '',
+ NAME_ varchar(255),
+ LOCK_TIME_ timestamp(3) NULL,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_JOB (
+ ID_ varchar(64) NOT NULL,
+ REV_ integer,
+ TYPE_ varchar(255) NOT NULL,
+ LOCK_EXP_TIME_ timestamp(3) NULL,
+ LOCK_OWNER_ varchar(255),
+ EXCLUSIVE_ boolean,
+ EXECUTION_ID_ varchar(64),
+ PROCESS_INSTANCE_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ RETRIES_ integer,
+ EXCEPTION_STACK_ID_ varchar(64),
+ EXCEPTION_MSG_ varchar(4000),
+ DUEDATE_ timestamp(3) NULL,
+ REPEAT_ varchar(255),
+ HANDLER_TYPE_ varchar(255),
+ HANDLER_CFG_ varchar(4000),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RE_PROCDEF (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ NAME_ varchar(255),
+ KEY_ varchar(255) not null,
+ VERSION_ integer not null,
+ DEPLOYMENT_ID_ varchar(64),
+ RESOURCE_NAME_ varchar(4000),
+ DGRM_RESOURCE_NAME_ varchar(4000),
+ DESCRIPTION_ varchar(4000),
+ HAS_START_FORM_KEY_ TINYINT,
+ HAS_GRAPHICAL_NOTATION_ TINYINT,
+ SUSPENSION_STATE_ integer,
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_TASK (
+ ID_ varchar(64),
+ REV_ integer,
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ NAME_ varchar(255),
+ PARENT_TASK_ID_ varchar(64),
+ DESCRIPTION_ varchar(4000),
+ TASK_DEF_KEY_ varchar(255),
+ OWNER_ varchar(255),
+ ASSIGNEE_ varchar(255),
+ DELEGATION_ varchar(64),
+ PRIORITY_ integer,
+ CREATE_TIME_ timestamp(3) NULL,
+ DUE_DATE_ datetime(3),
+ CATEGORY_ varchar(255),
+ SUSPENSION_STATE_ integer,
+ TENANT_ID_ varchar(255) default '',
+ FORM_KEY_ varchar(255),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_IDENTITYLINK (
+ ID_ varchar(64),
+ REV_ integer,
+ GROUP_ID_ varchar(255),
+ TYPE_ varchar(255),
+ USER_ID_ varchar(255),
+ TASK_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_VARIABLE (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ TYPE_ varchar(255) not null,
+ NAME_ varchar(255) not null,
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double,
+ LONG_ bigint,
+ TEXT_ varchar(4000),
+ TEXT2_ varchar(4000),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_EVENT_SUBSCR (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ EVENT_TYPE_ varchar(255) not null,
+ EVENT_NAME_ varchar(255),
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ ACTIVITY_ID_ varchar(64),
+ CONFIGURATION_ varchar(255),
+ CREATED_ timestamp(3) not null DEFAULT CURRENT_TIMESTAMP(3),
+ PROC_DEF_ID_ varchar(64),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_EVT_LOG (
+ LOG_NR_ bigint auto_increment,
+ TYPE_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ TIME_STAMP_ timestamp(3) not null,
+ USER_ID_ varchar(255),
+ DATA_ LONGBLOB,
+ LOCK_OWNER_ varchar(255),
+ LOCK_TIME_ timestamp(3) null,
+ IS_PROCESSED_ tinyint default 0,
+ primary key (LOG_NR_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_PROCDEF_INFO (
+ ID_ varchar(64) not null,
+ PROC_DEF_ID_ varchar(64) not null,
+ REV_ integer,
+ INFO_JSON_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_);
+create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_);
+create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_);
+create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_);
+create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_);
+create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_);
+create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_);
+
+alter table ACT_GE_BYTEARRAY
+ add constraint ACT_FK_BYTEARR_DEPL
+ foreign key (DEPLOYMENT_ID_)
+ references ACT_RE_DEPLOYMENT (ID_);
+
+alter table ACT_RE_PROCDEF
+ add constraint ACT_UNIQ_PROCDEF
+ unique (KEY_,VERSION_, TENANT_ID_);
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_) on delete cascade on update cascade;
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PARENT
+ foreign key (PARENT_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_SUPER
+ foreign key (SUPER_EXEC_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_TSKASS_TASK
+ foreign key (TASK_ID_)
+ references ACT_RU_TASK (ID_);
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_ATHRZ_PROCEDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF(ID_);
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_IDL_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_EXE
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_EXE
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION(ID_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_BYTEARRAY
+ foreign key (BYTEARRAY_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_EVENT_SUBSCR
+ add constraint ACT_FK_EVENT_EXEC
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION(ID_);
+
+alter table ACT_RE_MODEL
+ add constraint ACT_FK_MODEL_SOURCE
+ foreign key (EDITOR_SOURCE_VALUE_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RE_MODEL
+ add constraint ACT_FK_MODEL_SOURCE_EXTRA
+ foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RE_MODEL
+ add constraint ACT_FK_MODEL_DEPLOYMENT
+ foreign key (DEPLOYMENT_ID_)
+ references ACT_RE_DEPLOYMENT (ID_);
+
+alter table ACT_PROCDEF_INFO
+ add constraint ACT_FK_INFO_JSON_BA
+ foreign key (INFO_JSON_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_PROCDEF_INFO
+ add constraint ACT_FK_INFO_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_PROCDEF_INFO
+ add constraint ACT_UNIQ_INFO_PROCDEF
+ unique (PROC_DEF_ID_);
+
+create table ACT_HI_PROCINST (
+ ID_ varchar(64) not null,
+ PROC_INST_ID_ varchar(64) not null,
+ BUSINESS_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64) not null,
+ START_TIME_ datetime(3) not null,
+ END_TIME_ datetime(3),
+ DURATION_ bigint,
+ START_USER_ID_ varchar(255),
+ START_ACT_ID_ varchar(255),
+ END_ACT_ID_ varchar(255),
+ SUPER_PROCESS_INSTANCE_ID_ varchar(64),
+ DELETE_REASON_ varchar(4000),
+ TENANT_ID_ varchar(255) default '',
+ NAME_ varchar(255),
+ primary key (ID_),
+ unique (PROC_INST_ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_ACTINST (
+ ID_ varchar(64) not null,
+ PROC_DEF_ID_ varchar(64) not null,
+ PROC_INST_ID_ varchar(64) not null,
+ EXECUTION_ID_ varchar(64) not null,
+ ACT_ID_ varchar(255) not null,
+ TASK_ID_ varchar(64),
+ CALL_PROC_INST_ID_ varchar(64),
+ ACT_NAME_ varchar(255),
+ ACT_TYPE_ varchar(255) not null,
+ ASSIGNEE_ varchar(255),
+ START_TIME_ datetime(3) not null,
+ END_TIME_ datetime(3),
+ DURATION_ bigint,
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_TASKINST (
+ ID_ varchar(64) not null,
+ PROC_DEF_ID_ varchar(64),
+ TASK_DEF_KEY_ varchar(255),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ NAME_ varchar(255),
+ PARENT_TASK_ID_ varchar(64),
+ DESCRIPTION_ varchar(4000),
+ OWNER_ varchar(255),
+ ASSIGNEE_ varchar(255),
+ START_TIME_ datetime(3) not null,
+ CLAIM_TIME_ datetime(3),
+ END_TIME_ datetime(3),
+ DURATION_ bigint,
+ DELETE_REASON_ varchar(4000),
+ PRIORITY_ integer,
+ DUE_DATE_ datetime(3),
+ FORM_KEY_ varchar(255),
+ CATEGORY_ varchar(255),
+ TENANT_ID_ varchar(255) default '',
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_VARINST (
+ ID_ varchar(64) not null,
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ NAME_ varchar(255) not null,
+ VAR_TYPE_ varchar(100),
+ REV_ integer,
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double,
+ LONG_ bigint,
+ TEXT_ varchar(4000),
+ TEXT2_ varchar(4000),
+ CREATE_TIME_ datetime(3),
+ LAST_UPDATED_TIME_ datetime(3),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_DETAIL (
+ ID_ varchar(64) not null,
+ TYPE_ varchar(255) not null,
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ ACT_INST_ID_ varchar(64),
+ NAME_ varchar(255) not null,
+ VAR_TYPE_ varchar(255),
+ REV_ integer,
+ TIME_ datetime(3) not null,
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double,
+ LONG_ bigint,
+ TEXT_ varchar(4000),
+ TEXT2_ varchar(4000),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_COMMENT (
+ ID_ varchar(64) not null,
+ TYPE_ varchar(255),
+ TIME_ datetime(3) not null,
+ USER_ID_ varchar(255),
+ TASK_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ ACTION_ varchar(255),
+ MESSAGE_ varchar(4000),
+ FULL_MSG_ LONGBLOB,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_ATTACHMENT (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ USER_ID_ varchar(255),
+ NAME_ varchar(255),
+ DESCRIPTION_ varchar(4000),
+ TYPE_ varchar(255),
+ TASK_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ URL_ varchar(4000),
+ CONTENT_ID_ varchar(64),
+ TIME_ datetime(3),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_IDENTITYLINK (
+ ID_ varchar(64),
+ GROUP_ID_ varchar(255),
+ TYPE_ varchar(255),
+ USER_ID_ varchar(255),
+ TASK_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+
+create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_);
+create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_);
+create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_);
+create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_);
+create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_);
+create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_);
+create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_);
+create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_);
+create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_);
+create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_);
+create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_);
+create index ACT_IDX_HI_PROCVAR_TASK_ID on ACT_HI_VARINST(TASK_ID_);
+create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_);
+create index ACT_IDX_HI_ACT_INST_EXEC on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_);
+create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_HI_IDENT_LNK_TASK on ACT_HI_IDENTITYLINK(TASK_ID_);
+create index ACT_IDX_HI_IDENT_LNK_PROCINST on ACT_HI_IDENTITYLINK(PROC_INST_ID_);
+create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_);
+
+create table ACT_ID_GROUP (
+ ID_ varchar(64),
+ REV_ integer,
+ NAME_ varchar(255),
+ TYPE_ varchar(255),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_ID_MEMBERSHIP (
+ USER_ID_ varchar(64),
+ GROUP_ID_ varchar(64),
+ primary key (USER_ID_, GROUP_ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_ID_USER (
+ ID_ varchar(64),
+ REV_ integer,
+ FIRST_ varchar(255),
+ LAST_ varchar(255),
+ EMAIL_ varchar(255),
+ PWD_ varchar(255),
+ PICTURE_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_ID_INFO (
+ ID_ varchar(64),
+ REV_ integer,
+ USER_ID_ varchar(64),
+ TYPE_ varchar(64),
+ KEY_ varchar(255),
+ VALUE_ varchar(255),
+ PASSWORD_ LONGBLOB,
+ PARENT_ID_ varchar(255),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+alter table ACT_ID_MEMBERSHIP
+ add constraint ACT_FK_MEMB_GROUP
+ foreign key (GROUP_ID_)
+ references ACT_ID_GROUP (ID_);
+
+alter table ACT_ID_MEMBERSHIP
+ add constraint ACT_FK_MEMB_USER
+ foreign key (USER_ID_)
+ references ACT_ID_USER (ID_);
+
+commit;
diff --git a/assets/objects/import_objects.sh b/assets/objects/import_objects.sh
new file mode 100755
index 0000000..2802108
--- /dev/null
+++ b/assets/objects/import_objects.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+#
+# import_objects.sh, DESCRIPTION
+#
+echo "Importing Midpoint objects"
+curl --user administrator:5ecr3t -H "Content-Type: application/xml" -X POST http://localhost:8080/midpoint/ws/rest/resources -d @/midpoint_objects/simple_dbtable.xml -v
+echo "Done importing Midpoint objects"
diff --git a/assets/objects/simple_dbtable.xml b/assets/objects/simple_dbtable.xml
new file mode 100644
index 0000000..713885d
--- /dev/null
+++ b/assets/objects/simple_dbtable.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+ mysql-sis
+
+
+
+
+
+ c:connectorType
+ org.identityconnectors.databasetable.DatabaseTableConnector
+
+
+
+
+
+
+
+
+
+ 3306
+
+ mysql
+ root
+ root
+ myapp_development
+ users
+ Id
+ password
+ com.mysql.jdbc.Driver
+ jdbc:mysql://mysql:3306/myapp_development?autoReconnect=true&useSSL=false
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+
diff --git a/assets/run-midpoint.sh b/assets/run-midpoint.sh
new file mode 100755
index 0000000..afcbc25
--- /dev/null
+++ b/assets/run-midpoint.sh
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+# Is MySQL available?
+until nc -vz midpoint-poc-mysql 3306
+do
+ echo "MySQL is unavailable - sleeping"
+ sleep 1
+done
+echo "MySQL is up!"
+
+if [ -f "/mysql-3.7-all.sql" ]
+then
+ echo "*** Bootstrapping midpoint database.."
+ mysql -h mysql -u root -proot < /mysql-3.7-all.sql
+ echo "*** Done bootstrapping midpoint database.."
+ rm /mysql-3.7-all.sql
+fi
+
+# set environment to point the JVM at midpoint's trust store
+CATALINA_OPTS=-Djavax.net.ssl.trustStore=/var/opt/midpoint/keystore.jceks -Djavax.net.ssl.trustStoreType=jceks
+
+echo "Starting midpoint"
+catalina.sh start
+
+if [ ! -f "/BOOTSTRAPPED" ]
+then
+
+ echo "Waiting for midpoint to come up.."
+ #TODO: actually detect if midpoint is up
+ sleep 60
+
+ echo "Importing midpoint objects"
+ /midpoint_objects/import_objects.sh
+ echo "Done importing midpoint objects"
+
+ ###NOTE### uncomment this line to not have the contaienr import objects on every start
+ ###NOTE### you may want to consider volume mounting this file to not have the container
+ ###NOTE### try to re-import objects after a container update on the host
+
+ #touch "/BOOTSTRAPPED"
+
+fi
+
+# tomcat is backgrounded. just tail the log
+tail -f /usr/local/tomcat/logs/catalina.out
diff --git a/assets/server.xml b/assets/server.xml
new file mode 100644
index 0000000..3bfb449
--- /dev/null
+++ b/assets/server.xml
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..f74d8e4
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+#
+# build.sh, DESCRIPTION
+#
+#
+docker build -t midpoint-poc-midpoint .