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 .