diff --git a/pmci-callback.yml b/pmci-callback.yml
index 6f32232..0f010e1 100644
--- a/pmci-callback.yml
+++ b/pmci-callback.yml
@@ -1,81 +1,9 @@
---
# Parameters:
-# playbook inventory
-# stage := the name of the stage (e.g. dev, int, qa, prod)
-# tenant := object with tenant related data
-# key :=
-# name :=
-# cluster := object with cluster specific data (optional)
-# ...
-# data := object with action specific data (optional)
-# ...
-# smardigo message callback
-# scope_id := (scope id of the management process)
-# process_instance_id := (process instance id of the management process)
-# smardigo_management_action := (smardigo management action anme of the management process)
-
-#############################################################
-# Creating inventory dynamically for given parameters
-#############################################################
-
-- hosts: localhost
- gather_facts: false
- connection: local
-
- pre_tasks:
- - name: "Print given variables "
- debug:
- msg: "{{ cluster }}"
- become: false
- when:
- - cluster is defined
- - name: "Print given variables "
- debug:
- msg: "{{ data }}"
- become: false
- when:
- - data is defined
-
- - name: "Check if ansible version is at least 2.10.x"
- assert:
- that:
- - ansible_version.major >= 2
- - ansible_version.minor >= 10
- msg: "The ansible version has to be at least ({{ ansible_version.full }})"
-# add virtual server to load stage specific variables as context
- - name: "Add <{{ stage }}-virtual-host-to-read-groups-vars> to hosts"
- add_host:
- name: "{{ stage }}-virtual-host-to-read-groups-vars"
- groups:
- - "stage_{{ stage }}"
- changed_when: False
-
- tasks:
- - name: Add hosts
- add_host:
- name: "{{ stage }}-{{ tenant.key }}-{{ cluster.key }}-{{ '%02d' | format(item|int) }}"
- groups: "{{ ['stage_' + stage ] + [cluster.service] + cluster.features }}"
- with_sequence: start=1 end={{ cluster.size | default(1) }}
- changed_when: False
- when:
- - cluster is defined
-
-#############################################################
-#
-#############################################################
-
-- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
- serial: "{{ serial_number | default(1) }}"
- gather_facts: false
- connection: local
-
- pre_tasks:
- - name: "Import autodiscover pre-tasks"
- import_tasks: tasks/autodiscover_pre_tasks.yml
- become: false
- tags:
- - always
+# scope_id := (scope id of the management process)
+# process_instance_id := (process instance id of the management process)
+# smardigo_management_action := (smardigo management action anme of the management process)
#############################################################
# Sending smardigo management message to process
diff --git a/pmci-empty-playbook.yml b/pmci-empty-playbook.yml
new file mode 100644
index 0000000..06b1288
--- /dev/null
+++ b/pmci-empty-playbook.yml
@@ -0,0 +1,46 @@
+---
+
+# Parameters:
+# playbook inventory
+# stage := the name of the stage (e.g. dev, int, qa, prod)
+# tenant := object with tenant related data
+# key :=
+# name :=
+# cluster := object with cluster specific data (optional)
+# ...
+# data := object with action specific data (optional)
+# ...
+# smardigo message callback
+# scope_id := (scope id of the management process)
+# process_instance_id := (process instance id of the management process)
+# smardigo_management_action := (smardigo management action anme of the management process)
+
+#############################################################
+# Creating inventory dynamically for given parameters
+#############################################################
+
+- import_playbook: pmci-inventory-cluster.yml
+
+#############################################################
+# Running the PMCI roles
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ gather_facts: false
+ connection: local
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ roles:
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-inventory-cluster.yml b/pmci-inventory-cluster.yml
new file mode 100644
index 0000000..c1c6f8b
--- /dev/null
+++ b/pmci-inventory-cluster.yml
@@ -0,0 +1,58 @@
+---
+
+# Parameters:
+# playbook inventory
+# stage := the name of the stage (e.g. dev, int, qa, prod)
+# tenant := object with tenant related data
+# key :=
+# name :=
+# cluster := object with cluster specific data (optional)
+# ...
+# data := object with action specific data (optional)
+# ...
+
+#############################################################
+# Creating inventory dynamically for given cluster
+#############################################################
+
+- hosts: localhost
+ gather_facts: false
+ connection: local
+
+ pre_tasks:
+ - name: "Print given variables "
+ debug:
+ msg: "{{ cluster }}"
+ become: false
+ when:
+ - cluster is defined
+ - name: "Print given variables "
+ debug:
+ msg: "{{ data }}"
+ become: false
+ when:
+ - data is defined
+
+ - name: "Check if ansible version is at least 2.10.x"
+ assert:
+ that:
+ - ansible_version.major >= 2
+ - ansible_version.minor >= 10
+ msg: "The ansible version has to be at least ({{ ansible_version.full }})"
+# add virtual server to load stage specific variables as context
+ - name: "Add <{{ stage }}-virtual-host-to-read-groups-vars> to hosts"
+ add_host:
+ name: "{{ stage }}-virtual-host-to-read-groups-vars"
+ groups:
+ - "stage_{{ stage }}"
+ changed_when: False
+
+ tasks:
+ - name: "Add hosts for given cluster"
+ add_host:
+ name: "{{ stage }}-{{ tenant.key }}-{{ cluster.key }}-{{ '%02d' | format(item|int) }}"
+ groups: "{{ ['stage_' + stage ] + [cluster.service] + cluster.features }}"
+ with_sequence: start=1 end={{ cluster.size | default(1) }}
+ changed_when: False
+ when:
+ - cluster is defined
diff --git a/roles/kubernetes/awx/defaults/main.yml b/roles/kubernetes/awx/defaults/main.yml
index c366d7f..22886f9 100644
--- a/roles/kubernetes/awx/defaults/main.yml
+++ b/roles/kubernetes/awx/defaults/main.yml
@@ -8,6 +8,7 @@ awx_ansible_password: ansible
# plz move it so separate DIR and do a lookup for all file in $DIR
# not doing it right now due avoiding breaking change within
awx_job_templates:
+ - name: "pmci-empty-playbook"
- name: "create-database"
- name: "create-database-backup"
- name: "create-kibana-objects"
@@ -16,7 +17,6 @@ awx_job_templates:
- name: "create-server"
- name: "create-service"
- name: "import-database"
- - name: "pmci-callback"
- name: "remove-database"
- name: "remove-realm"
- name: "remove-server"
diff --git a/smardigo/pmci/app/process.json b/smardigo/pmci/app/process.json
new file mode 100644
index 0000000..f440734
--- /dev/null
+++ b/smardigo/pmci/app/process.json
@@ -0,0 +1,73 @@
+{
+ "configType" : "process",
+ "configKey" : "process",
+ "name" : "PMCI",
+ "imageUrl" : "data:image/png;base64,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",
+ "description" : "pmci-template",
+ "menuItems" : [ {
+ "name" : "Tenant Management",
+ "tabName" : "Tenant Management",
+ "logoId" : "groups",
+ "configKey" : "tenant-management",
+ "configType" : "datasource-action",
+ "items" : [ ],
+ "groups" : [ ],
+ "additionalProperties" : null
+ }, {
+ "name" : "Tenant Events",
+ "tabName" : "Tenant Events",
+ "logoId" : "recent_actors",
+ "configKey" : null,
+ "configType" : "process-search",
+ "processDefinitionKey" : "tenant-events",
+ "processDefinitionKeys" : [ "tenant-create", "tenant-edit", "tenant-delete" ],
+ "items" : [ ],
+ "groups" : [ ],
+ "additionalProperties" : null
+ }, {
+ "name" : "Create Tenants",
+ "tabName" : "Create Tenants",
+ "logoId" : "person_add",
+ "configKey" : null,
+ "configType" : "process-search",
+ "processDefinitionKey" : "tenant-create",
+ "processDefinitionKeys" : [ "tenant-create" ],
+ "items" : [ ],
+ "groups" : [ ],
+ "additionalProperties" : null
+ }, {
+ "name" : "Edit Tenants",
+ "tabName" : "Edit Tenants",
+ "logoId" : "engineering",
+ "configKey" : null,
+ "configType" : "process-search",
+ "processDefinitionKey" : "tenant-edit",
+ "processDefinitionKeys" : [ "tenant-edit" ],
+ "items" : [ ],
+ "groups" : [ ],
+ "additionalProperties" : null
+ }, {
+ "name" : "Delete Tenants",
+ "tabName" : "Delete Tenants",
+ "logoId" : "person_remove",
+ "configKey" : null,
+ "configType" : "process-search",
+ "processDefinitionKey" : "tenant-delete",
+ "processDefinitionKeys" : [ "tenant-delete" ],
+ "items" : [ ],
+ "groups" : [ ],
+ "additionalProperties" : null
+ }, {
+ "name" : "Vorfälle",
+ "tabName" : "Vorfälle",
+ "logoId" : "report",
+ "configKey" : null,
+ "configType" : "incidents",
+ "items" : [ ],
+ "groups" : [ ],
+ "additionalProperties" : {
+ "showAllScopes" : false
+ }
+ } ],
+ "allowScopeToBeUsedAsReference" : false
+}
\ No newline at end of file
diff --git a/smardigo/pmci/datasource-action/tenant-management.json b/smardigo/pmci/datasource-action/tenant-management.json
new file mode 100644
index 0000000..caea0e0
--- /dev/null
+++ b/smardigo/pmci/datasource-action/tenant-management.json
@@ -0,0 +1,40 @@
+{
+ "name" : "Tenant Management",
+ "configType" : "datasource-action",
+ "configKey" : "tenant-management",
+ "datasource" : {
+ "key" : "data-entity-tenants"
+ },
+ "columns" : [ {
+ "key" : "id",
+ "name" : "ID",
+ "width" : 100
+ }, {
+ "key" : "name",
+ "name" : "Name",
+ "width" : 200
+ }, {
+ "key" : "key",
+ "name" : "Key",
+ "width" : 100
+ } ],
+ "actions" : [ {
+ "icon" : "add_circle",
+ "name" : "Create New Tenant",
+ "searchKey": "tenant-events",
+ "processDefinitionKey" : "tenant-create"
+ } ],
+ "rowActions" : [ {
+ "icon" : "edit",
+ "name" : "Edit Tenant",
+ "searchKey": "tenant-events",
+ "processDefinitionKey" : "tenant-edit",
+ "variable" : "tenant"
+ }, {
+ "icon" : "delete",
+ "name" : "Delete Tenant",
+ "searchKey": "tenant-events",
+ "processDefinitionKey" : "tenant-delete",
+ "variable" : "tenant"
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/datasource/awx-job-plain.json b/smardigo/pmci/datasource/awx-job-plain.json
new file mode 100644
index 0000000..323f4f6
--- /dev/null
+++ b/smardigo/pmci/datasource/awx-job-plain.json
@@ -0,0 +1,23 @@
+{
+ "name": "awx-job-plain",
+ "restApi": true,
+ "configKey": "awx-job-plain",
+ "payloadType": "REST",
+ "config": [
+ {
+ "name": "connection",
+ "type": "CONNECTION",
+ "value": "awx"
+ },
+ {
+ "name": "resource",
+ "type": "STRING",
+ "value": "api/v2/jobs/${id}/"
+ },
+ {
+ "name": "sqlStatement",
+ "type": "STRING",
+ "value": "SELECT status,failed,started,finished,name,description FROM default_table"
+ }
+ ]
+}
diff --git a/smardigo/pmci/datasource/awx-job-templates-plain.json b/smardigo/pmci/datasource/awx-job-templates-plain.json
new file mode 100644
index 0000000..6436fe3
--- /dev/null
+++ b/smardigo/pmci/datasource/awx-job-templates-plain.json
@@ -0,0 +1,23 @@
+{
+ "name": "awx-job-templates-plain",
+ "restApi": true,
+ "configKey": "awx-job-templates-plain",
+ "payloadType": "REST",
+ "config": [
+ {
+ "name": "connection",
+ "type": "CONNECTION",
+ "value": "awx"
+ },
+ {
+ "name": "resource",
+ "type": "STRING",
+ "value": "api/v2/job_templates?search=${name}"
+ },
+ {
+ "name": "sqlStatement",
+ "type": "STRING",
+ "value": "SELECT results FROM default_table"
+ }
+ ]
+}
diff --git a/smardigo/pmci/datasource/awx-job-templates.json b/smardigo/pmci/datasource/awx-job-templates.json
new file mode 100644
index 0000000..2dbef9f
--- /dev/null
+++ b/smardigo/pmci/datasource/awx-job-templates.json
@@ -0,0 +1,18 @@
+{
+ "name": "awx-job-templates",
+ "restApi": true,
+ "configKey": "awx-job-templates",
+ "payloadType": "POST_PROCESSING",
+ "config": [
+ {
+ "name": "datasource_key",
+ "type": "STRING",
+ "value": "awx-job-templates-plain"
+ },
+ {
+ "name": "groovy_script",
+ "type": "STRING",
+ "value": "def result = []\ndata.each{templates ->\n templates.results.each{ template ->\n if (parameters['name'] == template.name) {\n result.add([id: template.id, name: template.name])\n }\n }\n}\nresult"
+ }
+ ]
+}
diff --git a/smardigo/pmci/datasource/data-entity-tenants-filtered.json b/smardigo/pmci/datasource/data-entity-tenants-filtered.json
new file mode 100644
index 0000000..24cd3c2
--- /dev/null
+++ b/smardigo/pmci/datasource/data-entity-tenants-filtered.json
@@ -0,0 +1,18 @@
+{
+ "name": "data-entity-tenants-filtered",
+ "restApi": true,
+ "configKey": "data-entity-tenants-filtered",
+ "payloadType": "POST_PROCESSING",
+ "config": [
+ {
+ "name": "datasource_key",
+ "type": "STRING",
+ "value": "data-entity-tenants"
+ },
+ {
+ "name": "groovy_script",
+ "type": "STRING",
+ "value": "def result = []\ndata.each{tenant ->\n if (tenant.user_ids.contains(parameters['user_id'])) {\n result.add(tenant)\n }\n}\nresult"
+ }
+ ]
+}
diff --git a/smardigo/pmci/datasource/data-entity-tenants.json b/smardigo/pmci/datasource/data-entity-tenants.json
new file mode 100644
index 0000000..e113a25
--- /dev/null
+++ b/smardigo/pmci/datasource/data-entity-tenants.json
@@ -0,0 +1,21 @@
+{
+ "configKey": "data-entity-tenants",
+ "name": "data-entity-tenants",
+ "payloadType": "ENTITY",
+ "config": [
+ {
+ "name": "entityId",
+ "type": "STRING",
+ "value": "tenant"
+ },
+ {
+ "name": "propertyFilterKey",
+ "type": "STRING"
+ },
+ {
+ "name": "propertyFilterValue",
+ "type": "STRING"
+ }
+ ],
+ "restApi": true
+}
diff --git a/smardigo/pmci/form/attachments.json b/smardigo/pmci/form/attachments.json
new file mode 100644
index 0000000..4d981bf
--- /dev/null
+++ b/smardigo/pmci/form/attachments.json
@@ -0,0 +1,87 @@
+{
+ "name" : "Anhänge",
+ "configKey" : "attachments",
+ "page" : 0,
+ "components" : [ {
+ "dropzoneConfig" : {
+ "maxFilesize" : "10",
+ "dictDefaultMessage" : "Dateien zum Anhängen/Hochladen ablegen oder durchsuchen",
+ "dictHelpText" : "Maximale Dateigröße: {{config.maxFilesize}}MB. Akzeptierte Dateitypen: Office-Dokumente und Bilder.",
+ "acceptedFiles" : ".pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, image/*, .csv, .xml, .txt",
+ "paramName" : "content",
+ "url" : "api/scope/{{context.scopeId}}/process/{{context.processId}}/attachment"
+ },
+ "columns" : [ {
+ "name" : "Name",
+ "property" : "name",
+ "value" : "",
+ "type" : "filename",
+ "width" : "20%"
+ }, {
+ "name" : "Erstellt am",
+ "property" : "creationDate",
+ "type" : "date",
+ "value" : "{{moment(creationDate).format('DD.MM.YYYY HH:mm:ss')}}",
+ "width" : "80%"
+ } ],
+ "label" : "Anlagen",
+ "deleteUrl" : "api/scope/{{context.scopeId}}/process/{{context.processId}}/attachment/{{attachmentId}}",
+ "downloadUrl" : "api/scope/{{context.scopeId}}/process/{{context.processId}}/attachment-data/{{attachmentId}}",
+ "resolveUserDataURL" : "api/scope/{{context.scopeId}}/process/{{context.processId}}/users?id.equals={{userId}}",
+ "csrfCookiePath" : "XSRF-TOKEN",
+ "taggingExpression" : "",
+ "button" : {
+ "iconOnly" : true,
+ "removeVisibleWhen" : "return false;",
+ "showVersion" : false,
+ "showOnlyCurrentVersion" : false,
+ "showCheckboxCurrentVersion" : false
+ },
+ "mask" : false,
+ "tableView" : true,
+ "type" : "attachments",
+ "input" : true,
+ "key" : "anlagen",
+ "components" : [ ],
+ "placeholder" : "",
+ "prefix" : "",
+ "customClass" : "",
+ "suffix" : "",
+ "multiple" : false,
+ "defaultValue" : null,
+ "protected" : false,
+ "unique" : false,
+ "persistent" : true,
+ "hidden" : false,
+ "clearOnHide" : true,
+ "dataGridLabel" : false,
+ "labelPosition" : "top",
+ "labelWidth" : 30,
+ "labelMargin" : 3,
+ "description" : "",
+ "errorLabel" : "",
+ "tooltip" : "",
+ "hideLabel" : true,
+ "tabindex" : "",
+ "disabled" : false,
+ "autofocus" : false,
+ "dbIndex" : false,
+ "customDefaultValue" : "",
+ "calculateValue" : "",
+ "widget" : null,
+ "refreshOn" : "",
+ "clearOnRefresh" : false,
+ "validateOn" : "change",
+ "validate" : {
+ "required" : false,
+ "custom" : "",
+ "customPrivate" : false
+ },
+ "conditional" : {
+ "show" : null,
+ "when" : null,
+ "eq" : ""
+ },
+ "id" : "e9zp29e"
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/confirm-delete-tenant.json b/smardigo/pmci/form/confirm-delete-tenant.json
new file mode 100644
index 0000000..bb3d4c2
--- /dev/null
+++ b/smardigo/pmci/form/confirm-delete-tenant.json
@@ -0,0 +1,37 @@
+{
+ "components" : [ {
+ "label" : "HTML",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "Sie sind dabei den Tenant zu löschen.",
+ "refreshOnChange" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "reorder" : false,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ]
+ } ],
+ "display" : "form",
+ "configKey" : "confirm-delete-tenant",
+ "name" : "confirm-delete-tenant"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/cons-delete-tenant.json b/smardigo/pmci/form/cons-delete-tenant.json
new file mode 100644
index 0000000..89cecd3
--- /dev/null
+++ b/smardigo/pmci/form/cons-delete-tenant.json
@@ -0,0 +1,37 @@
+{
+ "components" : [ {
+ "label" : "HTML",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "Sie sind danbei den Tenant zu löschen.",
+ "refreshOnChange" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "reorder" : false,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ]
+ } ],
+ "display" : "form",
+ "configKey" : "cons-delete-tenant",
+ "name" : "cons-delete-tenant"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/header-left.json b/smardigo/pmci/form/header-left.json
new file mode 100644
index 0000000..04210d5
--- /dev/null
+++ b/smardigo/pmci/form/header-left.json
@@ -0,0 +1,227 @@
+{
+ "name" : "header-left",
+ "configKey" : "header-left",
+ "page" : 0,
+ "components" : [ {
+ "label" : "Columns",
+ "columns" : [ {
+ "components" : [ {
+ "label" : "Ersteller",
+ "mask" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "select",
+ "input" : true,
+ "key" : "creation_user_id",
+ "validate" : {
+ "unique" : false,
+ "customMessage" : "",
+ "json" : "",
+ "select" : false
+ },
+ "data" : {
+ "headers" : [ {
+ "key" : "",
+ "value" : ""
+ } ],
+ "url" : "api/v1/scopes/{{context.scopeId}}/processes/{{context.processId}}/users?id.equals={{data.creation_user_id}}",
+ "values" : [ ]
+ },
+ "properties" : { },
+ "tags" : [ ],
+ "defaultValue" : "",
+ "dataSrc" : "url",
+ "lazyLoad" : false,
+ "valueProperty" : "id",
+ "selectValues" : "",
+ "disableLimit" : false,
+ "template" : "{{[item.firstName, item.lastName].filter(Boolean).join(' ')}} ",
+ "searchEnabled" : false,
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "reorder" : false,
+ "sort" : "",
+ "reference" : false,
+ "selectThreshold" : 0.3,
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ]
+ } ],
+ "width" : 3,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "key" : "column1",
+ "tableView" : true,
+ "label" : "",
+ "hideOnChildrenHidden" : false
+ }, {
+ "components" : [ {
+ "label" : "Erstellt am",
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "datetime",
+ "input" : true,
+ "key" : "creation_date",
+ "suffix" : true,
+ "widget" : {
+ "type" : "calendar",
+ "displayInTimezone" : "viewer",
+ "language" : "en",
+ "useLocaleSettings" : false,
+ "allowInput" : true,
+ "mode" : "single",
+ "enableTime" : true,
+ "noCalendar" : false,
+ "format" : "dd.MM.yyyy",
+ "defaultDate" : "",
+ "hourIncrement" : 1,
+ "minuteIncrement" : 1,
+ "time_24hr" : false,
+ "readOnly" : false,
+ "minDate" : "",
+ "maxDate" : "",
+ "icons" : "fontawesome",
+ "i18n" : {
+ "lng" : "en",
+ "resources" : {
+ "de" : {
+ "translation" : {
+ "complete" : "Eingabe vollständig",
+ "error" : "Bitte beheben Sie vor dem Abschicken folgende Fehler.",
+ "required" : "{{field}} ist ein Pflichtfeld",
+ "pattern" : "{{field}} entspricht nicht dem Muster {{pattern}}",
+ "minLength" : "{{field}} muss länger als {{length}} Zeichen sein.",
+ "maxLength" : "{{field}} muss kürzer als {{length}} Zeichen sein.",
+ "min" : "{{field}} darf nicht kleiner als {{min}} sein.",
+ "max" : "{{field}} darf nicht größer als {{max}} sein.",
+ "invalid_email" : "{{field}} ist keine valide E-Mail-Adresse.",
+ "invalid_regex" : "{{field}} entspricht nicht dem Muster {{regex}}.",
+ "invalid_date" : "{{field}} ist kein valides Datum.",
+ "mask" : "{{field}} entspricht nicht der Maske.",
+ "stripe" : "{{stripe}}",
+ "month" : "Monat",
+ "day" : "Tag",
+ "year" : "Jahr",
+ "january" : "Januar",
+ "february" : "Februar",
+ "march" : "März",
+ "april" : "April",
+ "may" : "Mai",
+ "june" : "Juni",
+ "july" : "Juli",
+ "august" : "August",
+ "september" : "September",
+ "october" : "Oktober",
+ "november" : "November",
+ "december" : "Dezember",
+ "next" : "Weiter",
+ "previous" : "Zurück",
+ "cancel" : "Abbrechen",
+ "submit" : "Vorgang starten",
+ "dualMultiselect_filterPlaceholder" : "Tippen um zu filtern.",
+ "dualMultiselect_labelAll" : "Alle Werte",
+ "dualMultiselect_labelSelected" : "Ausgewählte Werte",
+ "dualMultiselect_buttonSelectAll" : "Alle auswählen",
+ "dualMultiselect_buttonDeselectAll" : "Alle abwählen",
+ "listSelection_buttonSelectAriaLabel" : "Eintrag Auswählen",
+ "mapView_zoomInButton" : "Vergrößern",
+ "mapView_zoomOutButton" : "Verkleinern",
+ "selectComponent_searchPlaceholder" : "Tippe um zu Suchen",
+ "selectComponent_noChoicesText" : "Keine Elemente zur Auswahl",
+ "selectComponent_noResultsText" : "Keine Ergebnisse gefunden"
+ }
+ }
+ }
+ }
+ },
+ "defaultValue" : "",
+ "timePicker" : {
+ "showMeridian" : true
+ },
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "datePicker" : {
+ "minDate" : "",
+ "maxDate" : ""
+ },
+ "tabs" : null,
+ "reorder" : false,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ]
+ } ],
+ "width" : 3,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "key" : "column2",
+ "tableView" : true,
+ "label" : "",
+ "hideOnChildrenHidden" : false
+ }, {
+ "width" : 3,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column",
+ "components" : [ ]
+ }, {
+ "width" : 3,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column",
+ "components" : [ ]
+ } ],
+ "mask" : false,
+ "tableView" : false,
+ "alwaysEnabled" : false,
+ "type" : "columns",
+ "input" : false,
+ "tags" : [ ],
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "properties" : {
+ "" : ""
+ },
+ "key" : "columns",
+ "tabs" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "display" : "form"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/header-right.json b/smardigo/pmci/form/header-right.json
new file mode 100644
index 0000000..e2d6fca
--- /dev/null
+++ b/smardigo/pmci/form/header-right.json
@@ -0,0 +1,45 @@
+{
+ "name" : "header-right",
+ "configKey" : "header-right",
+ "page" : 0,
+ "components" : [ {
+ "label" : "Status",
+ "allowMultipleMasks" : false,
+ "persistent" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "clearOnHide" : false,
+ "disabled" : true,
+ "tableView" : false,
+ "alwaysEnabled" : false,
+ "labelWidth" : 40,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "vorgang_status_text",
+ "defaultValue" : "",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tags" : [ ],
+ "properties" : {
+ "" : ""
+ },
+ "lockKey" : true,
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false,
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ]
+ } ],
+ "display" : "form"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/tenant-select-wizard.json b/smardigo/pmci/form/tenant-select-wizard.json
new file mode 100644
index 0000000..f0d7814
--- /dev/null
+++ b/smardigo/pmci/form/tenant-select-wizard.json
@@ -0,0 +1,109 @@
+{
+ "display" : "wizard",
+ "page" : 0,
+ "numPages" : 1,
+ "components" : [ {
+ "title" : "Page 1",
+ "label" : "Page 1",
+ "type" : "panel",
+ "key" : "page1",
+ "input" : false,
+ "tableView" : false,
+ "components" : [ {
+ "label" : "Container",
+ "hideLabel" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "tenant",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "Mandant",
+ "customClass" : "ml-4",
+ "clearOnHide" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "listselection",
+ "input" : true,
+ "key" : "selected_tenant",
+ "data" : {
+ "url" : "/api/v1/scopes/{{context.scopeId}}/tags/{{context.scopeTag}}/datasources/data-entity-tenants/query",
+ "requestBody" : "",
+ "values" : [ { } ],
+ "custom" : ""
+ },
+ "columns" : [ {
+ "name" : "Name",
+ "prop" : "name",
+ "value" : "",
+ "width" : "",
+ "sortable" : true
+ }, {
+ "name" : "Schlüssel",
+ "prop" : "key",
+ "value" : "",
+ "width" : "",
+ "sortable" : true
+ } ],
+ "projection" : [ {
+ "key" : "id",
+ "prop" : "id"
+ }, {
+ "key" : "name",
+ "prop" : "name"
+ }, {
+ "key" : "key",
+ "prop" : "key"
+ }, {
+ "key" : "admin",
+ "prop" : "admin"
+ }, {
+ "key" : "user_ids",
+ "prop" : "user_ids"
+ } ],
+ "identity" : "id",
+ "validate" : {
+ "required" : true,
+ "unique" : false,
+ "customMessage" : "",
+ "json" : ""
+ },
+ "properties" : { },
+ "tags" : [ ],
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "customConditional" : "",
+ "logic" : [ ],
+ "tabs" : null,
+ "datapath" : "",
+ "defaultFilter" : "",
+ "encrypted" : false,
+ "reloadOnAction" : false,
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ]
+ } ],
+ "configKey" : "tenant-select-wizard",
+ "name" : "tenant-select-wizard (Achtung alle Felder herausprojezieren!)"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/tenant.json b/smardigo/pmci/form/tenant.json
new file mode 100644
index 0000000..6c80711
--- /dev/null
+++ b/smardigo/pmci/form/tenant.json
@@ -0,0 +1,525 @@
+{
+ "components" : [ {
+ "label" : "HIDDEN process_definition_key",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "hidden" : true,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "process_definition_key",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ }, {
+ "label" : "tenant",
+ "hideLabel" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "tenant",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "Columns",
+ "columns" : [ {
+ "components" : [ {
+ "label" : "Id",
+ "description" : "Automatisch generiert",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "id",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ } ],
+ "width" : 6,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
+ }, {
+ "components" : [ ],
+ "width" : 6,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
+ } ],
+ "mask" : false,
+ "tableView" : false,
+ "alwaysEnabled" : false,
+ "type" : "columns",
+ "input" : false,
+ "key" : "columns4",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "reorder" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ]
+ }, {
+ "label" : "Columns",
+ "columns" : [ {
+ "components" : [ {
+ "label" : "Name",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "name",
+ "properties" : { },
+ "tags" : [ ],
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 4 und höchstens 20 Zeichen",
+ "json" : "",
+ "required" : true,
+ "minLength" : null,
+ "maxLength" : null,
+ "minWords" : null,
+ "maxWords" : null,
+ "pattern" : "^[ a-zA-Z0-9-]{4,20}$"
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ } ],
+ "width" : 6,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
+ }, {
+ "components" : [ ],
+ "width" : 6,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
+ } ],
+ "mask" : false,
+ "tableView" : false,
+ "alwaysEnabled" : false,
+ "type" : "columns",
+ "input" : false,
+ "key" : "columns3",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "reorder" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ]
+ }, {
+ "label" : "Columns",
+ "columns" : [ {
+ "components" : [ {
+ "label" : "Key",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "key",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 4 und höchstens 10 Zeichen, alles kleingeschrieben",
+ "json" : "",
+ "required" : true,
+ "minLength" : null,
+ "maxLength" : null,
+ "minWords" : null,
+ "maxWords" : null,
+ "pattern" : "^[a-z]{4,10}$"
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ {
+ "name" : "disable tenant-key",
+ "trigger" : {
+ "type" : "simple",
+ "simple" : {
+ "show" : true,
+ "when" : "process_definition_key",
+ "eq" : "tenant-edit"
+ }
+ },
+ "actions" : [ {
+ "name" : "disable",
+ "type" : "property",
+ "property" : {
+ "label" : "Disabled",
+ "value" : "disabled",
+ "type" : "boolean"
+ },
+ "state" : "true"
+ } ]
+ } ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ } ],
+ "width" : 6,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
+ }, {
+ "components" : [ ],
+ "width" : 6,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
+ } ],
+ "mask" : false,
+ "tableView" : false,
+ "alwaysEnabled" : false,
+ "type" : "columns",
+ "input" : false,
+ "key" : "columns5",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "reorder" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ]
+ }, {
+ "label" : "Admin",
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "admin",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "Columns",
+ "columns" : [ {
+ "components" : [ {
+ "label" : "Email",
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "email",
+ "input" : true,
+ "key" : "email",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : "",
+ "required" : true
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "First name",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "first_name",
+ "properties" : { },
+ "tags" : [ ],
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 1 und höchstens 20 Zeichen",
+ "json" : "",
+ "required" : true,
+ "minLength" : null,
+ "maxLength" : null,
+ "minWords" : null,
+ "maxWords" : null,
+ "pattern" : "^[ a-zA-Z0-9-]{1,20}$"
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ }, {
+ "label" : "Last name",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "last_name",
+ "properties" : { },
+ "tags" : [ ],
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 1 und höchstens 20 Zeichen",
+ "json" : "",
+ "required" : true,
+ "minLength" : null,
+ "maxLength" : null,
+ "minWords" : null,
+ "maxWords" : null,
+ "pattern" : "^[ a-zA-Z0-9-]{1,20}$"
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ } ],
+ "width" : 6,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
+ }, {
+ "components" : [ ],
+ "width" : 6,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
+ } ],
+ "mask" : false,
+ "tableView" : false,
+ "alwaysEnabled" : false,
+ "type" : "columns",
+ "input" : false,
+ "key" : "columns6",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "reorder" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ]
+ } ],
+ "tabs" : null,
+ "properties" : { },
+ "encrypted" : false,
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "Benutzer",
+ "multiple" : true,
+ "reorder" : false,
+ "mask" : false,
+ "tableView" : false,
+ "alwaysEnabled" : false,
+ "type" : "dualmultiselect",
+ "input" : true,
+ "key" : "user_ids",
+ "defaultValue" : [ ],
+ "validate" : {
+ "required" : true,
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "data" : {
+ "url" : "api/v1/scopes/{{context.scopeId}}/groups/workflow/members?roleIds=user",
+ "values" : [ { } ]
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "template" : "{{ item.id }} ({{ item.email }})",
+ "projection" : "id"
+ } ],
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "display" : "form",
+ "configKey" : "tenant",
+ "name" : "tenant"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/layout/tenant-create.json b/smardigo/pmci/layout/tenant-create.json
new file mode 100644
index 0000000..c3fb408
--- /dev/null
+++ b/smardigo/pmci/layout/tenant-create.json
@@ -0,0 +1,72 @@
+{
+ "name" : "tenant-create",
+ "configKey" : "tenant-create",
+ "tabExpression" : "Tenant {{ data.tenant.name?:'new' }}",
+ "components" : [ {
+ "type" : "columns",
+ "key" : "dossier",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "columns",
+ "key" : "header",
+ "autoGrow" : "true",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "form",
+ "key" : "header-left",
+ "readonlyExpression" : "true"
+ } ],
+ "width" : "calc(100% - 350px)"
+ }, {
+ "components" : [ {
+ "type" : "form",
+ "key" : "header-right",
+ "readonlyExpression" : "true"
+ } ],
+ "width" : "350px"
+ } ]
+ }, {
+ "type" : "html",
+ "content" : " "
+ }, {
+ "type" : "columns",
+ "key" : "first-column",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "page",
+ "key" : "dossier-page",
+ "toc" : "left",
+ "sections" : [ {
+ "type" : "section",
+ "key" : "Tenant",
+ "title" : "Tenant",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-comments",
+ "title" : "Comments",
+ "components" : [ {
+ "type" : "comments",
+ "key" : "comments"
+ } ]
+ } ]
+ } ],
+ "width" : "9"
+ }, {
+ "components" : [ {
+ "type" : "help-text",
+ "key" : "help-text"
+ }, {
+ "type" : "action-list",
+ "key" : "action-list"
+ } ],
+ "width" : "350px"
+ } ]
+ } ],
+ "width" : "12"
+ } ]
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/layout/tenant-delete.json b/smardigo/pmci/layout/tenant-delete.json
new file mode 100644
index 0000000..2259078
--- /dev/null
+++ b/smardigo/pmci/layout/tenant-delete.json
@@ -0,0 +1,74 @@
+{
+ "name" : "tenant-delete",
+ "configKey" : "tenant-delete",
+ "tabExpression" : "Tenant {{ data.tenant.name }}",
+ "readonlyExpression" : "true",
+ "components" : [ {
+ "type" : "columns",
+ "key" : "dossier",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "columns",
+ "key" : "header",
+ "autoGrow" : "true",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "form",
+ "key" : "header-left",
+ "readonlyExpression" : "true"
+ } ],
+ "width" : "calc(100% - 350px)"
+ }, {
+ "components" : [ {
+ "type" : "form",
+ "key" : "header-right",
+ "readonlyExpression" : "true"
+ } ],
+ "width" : "350px"
+ } ]
+ }, {
+ "type" : "html",
+ "content" : " "
+ }, {
+ "type" : "columns",
+ "key" : "first-column",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "page",
+ "key" : "dossier-page",
+ "toc" : "left",
+ "sections" : [ {
+ "type" : "section",
+ "key" : "Tenant",
+ "title" : "Tenant",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-comments",
+ "title" : "Comments",
+ "components" : [ {
+ "type" : "comments",
+ "key" : "comments"
+ } ]
+ } ]
+ } ],
+ "width" : "9"
+ }, {
+ "components" : [ {
+ "type" : "help-text",
+ "key" : "help-text"
+ }, {
+ "type" : "action-list",
+ "key" : "action-list"
+ } ],
+ "width" : "350px"
+ } ]
+ } ],
+ "width" : "12"
+ } ]
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/layout/tenant-edit.json b/smardigo/pmci/layout/tenant-edit.json
new file mode 100644
index 0000000..6456642
--- /dev/null
+++ b/smardigo/pmci/layout/tenant-edit.json
@@ -0,0 +1,72 @@
+{
+ "name" : "tenant-edit",
+ "configKey" : "tenant-edit",
+ "tabExpression" : "Tenant {{ data.tenant.name }}",
+ "components" : [ {
+ "type" : "columns",
+ "key" : "dossier",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "columns",
+ "key" : "header",
+ "autoGrow" : "true",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "form",
+ "key" : "header-left",
+ "readonlyExpression" : "true"
+ } ],
+ "width" : "calc(100% - 350px)"
+ }, {
+ "components" : [ {
+ "type" : "form",
+ "key" : "header-right",
+ "readonlyExpression" : "true"
+ } ],
+ "width" : "350px"
+ } ]
+ }, {
+ "type" : "html",
+ "content" : " "
+ }, {
+ "type" : "columns",
+ "key" : "first-column",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "page",
+ "key" : "dossier-page",
+ "toc" : "left",
+ "sections" : [ {
+ "type" : "section",
+ "key" : "Tenant",
+ "title" : "Tenant",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-comments",
+ "title" : "Comments",
+ "components" : [ {
+ "type" : "comments",
+ "key" : "comments"
+ } ]
+ } ]
+ } ],
+ "width" : "9"
+ }, {
+ "components" : [ {
+ "type" : "help-text",
+ "key" : "help-text"
+ }, {
+ "type" : "action-list",
+ "key" : "action-list"
+ } ],
+ "width" : "350px"
+ } ]
+ } ],
+ "width" : "12"
+ } ]
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/layout/tenant-events.json b/smardigo/pmci/layout/tenant-events.json
new file mode 100644
index 0000000..ba89c03
--- /dev/null
+++ b/smardigo/pmci/layout/tenant-events.json
@@ -0,0 +1,72 @@
+{
+ "name" : "tenant-events",
+ "configKey" : "tenant-events",
+ "tabExpression" : "Tenant Events",
+ "components" : [ {
+ "type" : "columns",
+ "key" : "dossier",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "columns",
+ "key" : "header",
+ "autoGrow" : "true",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "form",
+ "key" : "header-left",
+ "readonlyExpression" : "true"
+ } ],
+ "width" : "calc(100% - 350px)"
+ }, {
+ "components" : [ {
+ "type" : "form",
+ "key" : "header-right",
+ "readonlyExpression" : "true"
+ } ],
+ "width" : "350px"
+ } ]
+ }, {
+ "type" : "html",
+ "content" : " "
+ }, {
+ "type" : "columns",
+ "key" : "first-column",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "page",
+ "key" : "dossier-page",
+ "toc" : "left",
+ "sections" : [ {
+ "type" : "section",
+ "key" : "Tenant",
+ "title" : "Tenant",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-comments",
+ "title" : "Comments",
+ "components" : [ {
+ "type" : "comments",
+ "key" : "comments"
+ } ]
+ } ]
+ } ],
+ "width" : "9"
+ }, {
+ "components" : [ {
+ "type" : "help-text",
+ "key" : "help-text"
+ }, {
+ "type" : "action-list",
+ "key" : "action-list"
+ } ],
+ "width" : "350px"
+ } ]
+ } ],
+ "width" : "12"
+ } ]
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/mail-template/smardigo-up-and-running.html b/smardigo/pmci/mail-template/smardigo-up-and-running.html
new file mode 100644
index 0000000..85a81e1
--- /dev/null
+++ b/smardigo/pmci/mail-template/smardigo-up-and-running.html
@@ -0,0 +1,64 @@
+
+
+
+ Neue Smardigo-Instanz erfolgreich aufgesetzt
+
+
+
+
+
+ Sehr geehrte Damen und Herren,
+
+
+
+ ihre Smardigo-Instanz ist nun einsatzbereit.
+
+
+ Zum Abschließen der Installation müssen Sie sich mit den folgend angegebenen initialen Zugangsdaten
+ anmelden. Sie werden danach aufgefordert, Ihre eigenen Passwörter zu setzen. Beachten Sie, dass die
+ zugehörigen Benutzer über alle Ihre Smardigo-Instanzen hin geteilt werden. Die initialen Passwörter
+ können nur für die allererste Anmeldung verwendet werden. Von Ihnen gesetzte Passwörter werden nicht
+ überschrieben.
+
+
+
+
+ Service
+ Benutzer
+ Passwort
+ Link
+
+
+ Connect
+ some-username
+ some-password
+ some-link
+
+
+ Keycloak
+ some-username
+ some-password
+ some-link
+
+
+ Wordpress
+ some-username
+ some-password
+ some-link
+
+
+ ELK
+ some-username
+ some-password
+ some-link
+
+
+
+
+ Hier geht es zum Antrag: Link
+
+
+ Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt.
+
+
+
diff --git a/smardigo/pmci/mail-template/tenant-created.html b/smardigo/pmci/mail-template/tenant-created.html
new file mode 100644
index 0000000..db67d46
--- /dev/null
+++ b/smardigo/pmci/mail-template/tenant-created.html
@@ -0,0 +1,54 @@
+
+
+
+ Ihr Keycloack-Admin wurde angelegt
+
+
+
+
+
+ Sehr geehrte Damen und Herren,
+
+
+
+ Ihr Keycloack-Admin wurde eingerichtet.
+
+
+ Zum Abschließen der Anlage müssen Sie sich mit den folgenden angegebenen initialen Zugangsdaten anmelden.
+
+
+ Sie werden danach aufgefordert, Ihr eigenes Passwort zu setzen.
+
+
+ Bitte beachten Sie folgenden Hinweise zu diesem User
+
+ Das initiale Passwort kann nur für die allererste Anmeldung verwendet werden
+ Das von Ihnen gesetzte Passwörter wird nicht überschrieben
+ Dieser Admin-Zugang ist über alle potenziellen Smardigo-Instanzen lediglich zur Administration der User und Berechtigungen zu nutzen ist.
+
+
+
+
+
+ Service
+ Benutzer
+ Passwort
+ Link
+
+
+ Keycloak
+ some-username
+ some-password
+ some-link
+
+
+
+
+ Hier geht es zum Antrag: Link
+
+
+
+ Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt.
+
+
+
diff --git a/smardigo/pmci/mail-template/tenant-deleted.html b/smardigo/pmci/mail-template/tenant-deleted.html
new file mode 100644
index 0000000..54e6bd8
--- /dev/null
+++ b/smardigo/pmci/mail-template/tenant-deleted.html
@@ -0,0 +1,24 @@
+
+
+
+ Ihre Tenant wurde gelöscht
+
+
+
+
+
+ Sehr geehrte Damen und Herren,
+
+
+
+ Ihr Tenant und alle dazu gehörigen Smardigo-Instanzen wurden gelöscht.
+
+
+ Den zugehörigen Vorgang können Sie hier einsehen : Link
+
+
+
+ Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt.
+
+
+
\ No newline at end of file
diff --git a/smardigo/pmci/mail-template/tenant-edited.html b/smardigo/pmci/mail-template/tenant-edited.html
new file mode 100644
index 0000000..c58067d
--- /dev/null
+++ b/smardigo/pmci/mail-template/tenant-edited.html
@@ -0,0 +1,24 @@
+
+
+
+ Ihre Tenant-Daten wurden bearbeitet
+
+
+
+
+
+ Sehr geehrte Damen und Herren,
+
+
+
+ Ihre Tenant-Daten wurden bearbeitet.
+
+
+ Die angepassten Daten können Sie hier einsehen : Link
+
+
+
+ Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt.
+
+
+
diff --git a/smardigo/pmci/meta.info b/smardigo/pmci/meta.info
new file mode 100644
index 0000000..03e7fea
--- /dev/null
+++ b/smardigo/pmci/meta.info
@@ -0,0 +1 @@
+scopeId=pmci
\ No newline at end of file
diff --git a/smardigo/pmci/process-search/tenant-create-fallback.json b/smardigo/pmci/process-search/tenant-create-fallback.json
new file mode 100644
index 0000000..b02255d
--- /dev/null
+++ b/smardigo/pmci/process-search/tenant-create-fallback.json
@@ -0,0 +1,8 @@
+{
+ "name" : "tenant-create",
+ "configKey" : "tenant-create-fallback",
+ "processDefinitionKey" : "tenant-create",
+ "columns" : [ ],
+ "sorts" : [ ],
+ "filters" : [ ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-search/tenant-create.json b/smardigo/pmci/process-search/tenant-create.json
new file mode 100644
index 0000000..fd35ff1
--- /dev/null
+++ b/smardigo/pmci/process-search/tenant-create.json
@@ -0,0 +1,55 @@
+{
+ "name" : "tenant-create",
+ "configKey" : "tenant-create",
+ "processDefinitionKey" : "tenant-create",
+ "columns" : [ {
+ "key" : "id",
+ "name" : "ID",
+ "width" : 50,
+ "hidden" : true
+ }, {
+ "key" : "process_definition_key",
+ "name" : "Prozess",
+ "width" : 100,
+ "hidden" : true
+ }, {
+ "key" : "creation_date",
+ "name" : "Erstelldatum",
+ "width" : 100
+ }, {
+ "key" : "tenant.name",
+ "name" : "Mandant Name",
+ "width" : 100
+ }, {
+ "key" : "tenant.key",
+ "name" : "Mandant Schlüssel",
+ "width" : 100
+ }, {
+ "key" : "creation_user_id",
+ "name" : "Ersteller",
+ "width" : "100"
+ }, {
+ "key" : "vorgang_status_text",
+ "name" : "Status",
+ "width" : 100
+ } ],
+ "filters" : [ {
+ "name" : "Ersteller",
+ "key" : "creation_user_id",
+ "defaultOption" : {
+ "key" : "default",
+ "name" : "Alle"
+ }
+ }, {
+ "name" : "Status",
+ "key" : "vorgang_status_text",
+ "defaultOption" : {
+ "key" : "default",
+ "name" : "Alle"
+ }
+ } ],
+ "sorts" : [ {
+ "key" : "creation_date",
+ "direction" : "desc"
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-search/tenant-delete.json b/smardigo/pmci/process-search/tenant-delete.json
new file mode 100644
index 0000000..3d9f753
--- /dev/null
+++ b/smardigo/pmci/process-search/tenant-delete.json
@@ -0,0 +1,55 @@
+{
+ "name" : "tenant-delete",
+ "configKey" : "tenant-delete",
+ "processDefinitionKey" : "tenant-delete",
+ "columns" : [ {
+ "key" : "id",
+ "name" : "ID",
+ "width" : 50,
+ "hidden" : true
+ }, {
+ "key" : "process_definition_key",
+ "name" : "Prozess",
+ "width" : 100,
+ "hidden" : true
+ }, {
+ "key" : "creation_date",
+ "name" : "Erstelldatum",
+ "width" : 100
+ }, {
+ "key" : "tenant.name",
+ "name" : "Mandant Name",
+ "width" : 100
+ }, {
+ "key" : "tenant.key",
+ "name" : "Mandant Schlüssel",
+ "width" : 100
+ }, {
+ "key" : "creation_user_id",
+ "name" : "Ersteller",
+ "width" : 150
+ }, {
+ "key" : "vorgang_status_text",
+ "name" : "Status",
+ "width" : 100
+ } ],
+ "filters" : [ {
+ "name" : "Ersteller",
+ "key" : "creation_user_id",
+ "defaultOption" : {
+ "key" : "default",
+ "name" : "Alle"
+ }
+ }, {
+ "name" : "Status",
+ "key" : "vorgang_status_text",
+ "defaultOption" : {
+ "key" : "default",
+ "name" : "Alle"
+ }
+ } ],
+ "sorts" : [ {
+ "key" : "creation_date",
+ "direction" : "desc"
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-search/tenant-edit.json b/smardigo/pmci/process-search/tenant-edit.json
new file mode 100644
index 0000000..bdd34ba
--- /dev/null
+++ b/smardigo/pmci/process-search/tenant-edit.json
@@ -0,0 +1,55 @@
+{
+ "name" : "tenant-edit",
+ "configKey" : "tenant-edit",
+ "processDefinitionKey" : "tenant-edit",
+ "columns" : [ {
+ "key" : "id",
+ "name" : "ID",
+ "width" : 50,
+ "hidden" : true
+ }, {
+ "key" : "process_definition_key",
+ "name" : "Prozess",
+ "width" : 100,
+ "hidden" : true
+ }, {
+ "key" : "creation_date",
+ "name" : "Erstelldatum",
+ "width" : 100
+ }, {
+ "key" : "tenant.name",
+ "name" : "Mandant Name",
+ "width" : 100
+ }, {
+ "key" : "tenant.key",
+ "name" : "Mandant Schlüssel",
+ "width" : 100
+ }, {
+ "key" : "creation_user_id",
+ "name" : "Ersteller",
+ "width" : 150
+ }, {
+ "key" : "vorgang_status_text",
+ "name" : "Status",
+ "width" : 100
+ } ],
+ "filters" : [ {
+ "name" : "Ersteller",
+ "key" : "creation_user_id",
+ "defaultOption" : {
+ "key" : "default",
+ "name" : "Alle"
+ }
+ }, {
+ "name" : "Status",
+ "key" : "vorgang_status_text",
+ "defaultOption" : {
+ "key" : "default",
+ "name" : "Alle"
+ }
+ } ],
+ "sorts" : [ {
+ "key" : "creation_date",
+ "direction" : "desc"
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-search/tenant-events.json b/smardigo/pmci/process-search/tenant-events.json
new file mode 100644
index 0000000..9cb3dfd
--- /dev/null
+++ b/smardigo/pmci/process-search/tenant-events.json
@@ -0,0 +1,54 @@
+{
+ "name" : "tenant-events",
+ "configKey" : "tenant-events",
+ "columns" : [ {
+ "key" : "id",
+ "name" : "ID",
+ "width" : 50,
+ "hidden" : true
+ }, {
+ "key" : "process_definition_key",
+ "name" : "Prozess",
+ "width" : 100,
+ "hidden" : false
+ }, {
+ "key" : "creation_date",
+ "name" : "Erstelldatum",
+ "width" : 100
+ }, {
+ "key" : "tenant.name",
+ "name" : "Mandant Name",
+ "width" : 100
+ }, {
+ "key" : "tenant.key",
+ "name" : "Mandant Schlüssel",
+ "width" : 100
+ }, {
+ "key" : "creation_user_id",
+ "name" : "Ersteller",
+ "width" : "100"
+ }, {
+ "key" : "vorgang_status_text",
+ "name" : "Status",
+ "width" : 100
+ } ],
+ "filters" : [ {
+ "name" : "Ersteller",
+ "key" : "creation_user_id",
+ "defaultOption" : {
+ "key" : "default",
+ "name" : "Alle"
+ }
+ }, {
+ "name" : "Status",
+ "key" : "vorgang_status_text",
+ "defaultOption" : {
+ "key" : "default",
+ "name" : "Alle"
+ }
+ } ],
+ "sorts" : [ {
+ "key" : "creation_date",
+ "direction" : "desc"
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-search/tenant-search.json b/smardigo/pmci/process-search/tenant-search.json
new file mode 100644
index 0000000..83ca5e7
--- /dev/null
+++ b/smardigo/pmci/process-search/tenant-search.json
@@ -0,0 +1,54 @@
+{
+ "name" : "tenant-search",
+ "configKey" : "tenant-search",
+ "columns" : [ {
+ "key" : "id",
+ "name" : "ID",
+ "width" : 50,
+ "hidden" : true
+ }, {
+ "key" : "process_definition_key",
+ "name" : "Prozess",
+ "width" : 100,
+ "hidden" : true
+ }, {
+ "key" : "creation_date",
+ "name" : "Erstelldatum",
+ "width" : 100
+ }, {
+ "key" : "tenant.name",
+ "name" : "Mandant Name",
+ "width" : 100
+ }, {
+ "key" : "tenant.key",
+ "name" : "Mandant Schlüssel",
+ "width" : 100
+ }, {
+ "key" : "creation_user_id",
+ "name" : "Ersteller",
+ "width" : 150
+ }, {
+ "key" : "vorgang_status_text",
+ "name" : "Status",
+ "width" : 100
+ } ],
+ "filters" : [ {
+ "name" : "Ersteller",
+ "key" : "creation_user_id",
+ "defaultOption" : {
+ "key" : "default",
+ "name" : "Alle"
+ }
+ }, {
+ "name" : "Status",
+ "key" : "vorgang_status_text",
+ "defaultOption" : {
+ "key" : "default",
+ "name" : "Alle"
+ }
+ } ],
+ "sorts" : [ {
+ "key" : "creation_date",
+ "direction" : "desc"
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-variable-declaration/tenant-create.json b/smardigo/pmci/process-variable-declaration/tenant-create.json
new file mode 100644
index 0000000..d47ee02
--- /dev/null
+++ b/smardigo/pmci/process-variable-declaration/tenant-create.json
@@ -0,0 +1,49 @@
+{
+ "name" : "tenant-create",
+ "configKey" : "tenant-create",
+ "configType" : "process-variable-declaration",
+ "variableDeclarations" : {
+ "cluster" : {
+ "type" : "object",
+ "classification" : "PRIVATE"
+ },
+ "creation_date" : {
+ "type" : "date",
+ "classification" : "PRIVATE"
+ },
+ "creation_user_id" : {
+ "type" : "userId",
+ "classification" : "PRIVATE"
+ },
+ "id" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "id"
+ },
+ "keycloak_admin_password" : {
+ "type" : "string",
+ "classification" : "PRIVATE"
+ },
+ "keycloak_admin_username" : {
+ "type" : "string",
+ "classification" : "PRIVATE"
+ },
+ "tenant" : {
+ "type" : "object",
+ "classification" : "PRIVATE"
+ },
+ "user_ids" : {
+ "type" : "object",
+ "classification" : "PRIVATE"
+ },
+ "vorgang_status" : {
+ "type" : "string",
+ "classification" : "PRIVATE"
+ },
+ "vorgang_status_text" : {
+ "type" : "string",
+ "classification" : "PRIVATE"
+ }
+ }
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-variable-declaration/tenant-delete.json b/smardigo/pmci/process-variable-declaration/tenant-delete.json
new file mode 100644
index 0000000..890a8b5
--- /dev/null
+++ b/smardigo/pmci/process-variable-declaration/tenant-delete.json
@@ -0,0 +1,37 @@
+{
+ "name" : "tenant-delete",
+ "configKey" : "tenant-delete",
+ "configType" : "process-variable-declaration",
+ "variableDeclarations" : {
+ "creation_date" : {
+ "type" : "date",
+ "classification" : "PRIVATE"
+ },
+ "creation_user_id" : {
+ "type" : "userId",
+ "classification" : "PRIVATE"
+ },
+ "id" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "id"
+ },
+ "tenant" : {
+ "type" : "object",
+ "classification" : "PRIVATE"
+ },
+ "user_ids" : {
+ "type" : "object",
+ "classification" : "PRIVATE"
+ },
+ "vorgang_status" : {
+ "type" : "string",
+ "classification" : "PRIVATE"
+ },
+ "vorgang_status_text" : {
+ "type" : "string",
+ "classification" : "PRIVATE"
+ }
+ }
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-variable-declaration/tenant-edit.json b/smardigo/pmci/process-variable-declaration/tenant-edit.json
new file mode 100644
index 0000000..ec2268b
--- /dev/null
+++ b/smardigo/pmci/process-variable-declaration/tenant-edit.json
@@ -0,0 +1,37 @@
+{
+ "name" : "tenant-edit",
+ "configKey" : "tenant-edit",
+ "configType" : "process-variable-declaration",
+ "variableDeclarations" : {
+ "creation_date" : {
+ "type" : "date",
+ "classification" : "PRIVATE"
+ },
+ "creation_user_id" : {
+ "type" : "userId",
+ "classification" : "PRIVATE"
+ },
+ "id" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "id"
+ },
+ "tenant" : {
+ "type" : "object",
+ "classification" : "PRIVATE"
+ },
+ "user_ids" : {
+ "type" : "object",
+ "classification" : "PRIVATE"
+ },
+ "vorgang_status" : {
+ "type" : "string",
+ "classification" : "PRIVATE"
+ },
+ "vorgang_status_text" : {
+ "type" : "string",
+ "classification" : "PRIVATE"
+ }
+ }
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process/smardigo-management-action.bpmn b/smardigo/pmci/process/smardigo-management-action.bpmn
new file mode 100644
index 0000000..a1a8f58
--- /dev/null
+++ b/smardigo/pmci/process/smardigo-management-action.bpmn
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+ Flow_1ow8whd
+
+
+ Flow_1ow8whd
+ Flow_0qfq760
+
+
+
+
+
+
+
+
+ Flow_0qfq760
+ Flow_11nxxg5
+
+
+
+
+
+
+ ${extra_vars}
+
+
+
+
+ Flow_1nqz9ya
+ Flow_1kxc9t0
+
+
+
+
+
+ datasources.query('awx-job-templates').processScope(contextScopeId, contextProcessId).parameters([name:smardigoManagementAction]).list()[0]['id'];
+
+
+
+ Flow_0tmasvl
+ Flow_1cnt5hf
+
+
+
+
+ /api/v2/job_templates/${job_template_id}/launch/
+
+
+
+
+
+ Flow_1cnt5hf
+ Flow_1nqz9ya
+
+
+ Flow_1kxc9t0
+ Flow_1nuku1o
+ def jobs = processes.byId(contextScopeId, contextProcessId).getVariable('jobs')
+jobs = !!jobs ? jobs : []
+jobs.add(0, awxResponse.job)
+processes.byId(contextScopeId, contextProcessId).setVariable('jobs', jobs)
+
+processes.byId(contextScopeId, contextProcessId).setVariable('current_job_id', awxResponse.job)
+
+processes.byId(contextScopeId, contextProcessId).createComment('current_job_id := ' + awxResponse.job)
+
+
+ Flow_1nuku1o
+ Flow_0gcsmj7
+
+
+
+ Flow_11nxxg5
+ Flow_0tmasvl
+ Flow_1rngywr
+
+
+ Flow_0npv638
+ Flow_1ju13h8
+
+
+ Flow_1ju13h8
+
+
+ Flow_0gcsmj7
+ Flow_1rngywr
+ Flow_0npv638
+
+
+
+
+
+
+
+ ${envStage=="dev"}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/smardigo-management-message.bpmn b/smardigo/pmci/process/smardigo-management-message.bpmn
new file mode 100644
index 0000000..513e602
--- /dev/null
+++ b/smardigo/pmci/process/smardigo-management-message.bpmn
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+ Flow_1nu8qqa
+
+
+
+
+
+
+
+
+
+
+
+ Flow_1nu8qqa
+ Flow_127qqnb
+
+
+ Flow_127qqnb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/tenant-create.bpmn b/smardigo/pmci/process/tenant-create.bpmn
new file mode 100644
index 0000000..a3c84e6
--- /dev/null
+++ b/smardigo/pmci/process/tenant-create.bpmn
@@ -0,0 +1,264 @@
+
+
+
+
+
+
+
+
+ Flow_1a8vxf0
+
+
+
+
+
+ ${10}
+ new
+
+
+ Flow_1a8vxf0
+ Flow_0oc7f69
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flow_0oc7f69
+ Flow_080k63h
+
+
+ Flow_080k63h
+ Flow_1itjvyi
+ Flow_0jqgye3
+
+
+
+
+ ${10}
+ is being created
+
+
+ Flow_0jqgye3
+ Flow_0h2salf
+
+
+
+
+
+
+
+ ${tenant.key}-realm-admin
+
+
+ Flow_0h2salf
+ Flow_01p8umx
+
+
+
+
+
+
+
+
+
+
+ Flow_01p8umx
+ Flow_19apghu
+
+
+
+
+
+ Flow_19apghu
+ Flow_1vkbt5o
+
+
+
+
+
+
+
+
+ ${tenant.admin.email}
+
+ Tenant angelegt
+ template(tenant-created)
+ ${creation_user_id}
+
+
+ Flow_1vkbt5o
+ Flow_1i1qgmz
+
+
+ Flow_1dzhr2w
+
+
+
+
+ ${100}
+ created
+
+
+ Flow_1i1qgmz
+ Flow_03qvqdv
+
+
+ Flow_0ufs5lg
+ Flow_03qvqdv
+ Flow_1dzhr2w
+
+
+
+
+ ${101}
+ canceled
+
+
+ Flow_1itjvyi
+ Flow_0ufs5lg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/tenant-delete.bpmn b/smardigo/pmci/process/tenant-delete.bpmn
new file mode 100644
index 0000000..ea2769a
--- /dev/null
+++ b/smardigo/pmci/process/tenant-delete.bpmn
@@ -0,0 +1,312 @@
+
+
+
+
+
+
+
+
+ Flow_1a8vxf0
+
+
+
+
+
+ Flow_0oc7f69
+ Flow_1wpzyq7
+ Flow_0kcmdp7
+
+
+ Flow_0kcmdp7
+ Flow_0a1iw3h
+ Flow_029ur97
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${10}
+ new
+
+
+ Flow_1a8vxf0
+ Flow_0oc7f69
+
+
+ Flow_04k00j1
+
+
+
+
+ ${100}
+ deleted
+
+
+ Flow_1j8nnwn
+ Flow_03qvqdv
+
+
+ Flow_03qvqdv
+ Flow_04lmj9g
+ Flow_04k00j1
+
+
+
+
+ ${101}
+ canceled
+
+
+ Flow_0a1iw3h
+ Flow_04lmj9g
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${tenant.admin.email}
+
+ Tenant editiert
+ template(tenant-deleted)
+ ${creation_user_id}
+
+
+ Flow_1vkbt5o
+ Flow_1j8nnwn
+
+
+
+
+
+ Flow_19apghu
+ Flow_1vkbt5o
+
+
+
+
+
+
+
+
+
+
+ Flow_17n4rbv
+ Flow_19apghu
+
+
+ Flow_1czdw49
+ Flow_17n4rbv
+ Flow_1wpzyq7
+
+
+ Flow_0h2salf
+ Flow_1czdw49
+
+
+
+
+ ${10}
+ is being deleted
+
+
+ Flow_029ur97
+ Flow_0h2salf
+
+
+ Alles löschen?
+
+
+
+ ACHTUNG: Ändert sich das Datenmodell des Tenants muss die Projektion im Wizard angepasst werden, sonst gehen die Daten verloren!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/tenant-edit.bpmn b/smardigo/pmci/process/tenant-edit.bpmn
new file mode 100644
index 0000000..48d22a3
--- /dev/null
+++ b/smardigo/pmci/process/tenant-edit.bpmn
@@ -0,0 +1,276 @@
+
+
+
+
+
+
+
+
+ Flow_1a8vxf0
+
+
+
+
+ ${10}
+ new
+
+
+ Flow_1a8vxf0
+ Flow_0oc7f69
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${tenant.admin.email}
+ ${former_admin_email}
+
+
+ Flow_0oc7f69
+ Flow_080k63h
+
+
+ Flow_080k63h
+ Flow_1itjvyi
+ Flow_0jqgye3
+
+
+
+
+ ${10}
+ saving
+
+
+ Flow_0jqgye3
+ Flow_0h2salf
+
+
+
+
+
+ Flow_19apghu
+ Flow_1vkbt5o
+
+
+ Flow_1dzhr2w
+
+
+
+
+ ${100}
+ saved
+
+
+ Flow_1j8nnwn
+ Flow_03qvqdv
+
+
+ Flow_03qvqdv
+ Flow_0ufs5lg
+ Flow_1dzhr2w
+
+
+
+
+ ${101}
+ canceled
+
+
+ Flow_1t62ed0
+ Flow_0ufs5lg
+
+
+
+
+
+
+
+
+
+
+ Flow_0h2salf
+ Flow_19apghu
+
+
+
+
+
+
+
+
+ ${tenant.admin.email},${former_admin_email}
+
+ Tenant editiert
+ template(tenant-edited)
+ ${creation_user_id}
+
+
+ Flow_1vkbt5o
+ Flow_1j8nnwn
+
+
+
+
+
+ Flow_1itjvyi
+ Flow_1t62ed0
+
+
+ ACHTUNG: Ändert sich das Datenmodell des Tenants muss die Projektion im Wizard angepasst werden, sonst gehen die Daten verloren!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/roles/roles.json b/smardigo/pmci/roles/roles.json
new file mode 100644
index 0000000..65e162f
--- /dev/null
+++ b/smardigo/pmci/roles/roles.json
@@ -0,0 +1,18 @@
+{
+ "name" : "roles",
+ "configKey" : "roles",
+ "configType" : "roles",
+ "roles" : [ {
+ "id" : "user",
+ "name" : "User"
+ }, {
+ "id" : "tenant-create",
+ "name" : "tenant-create"
+ }, {
+ "id" : "tenant-edit",
+ "name" : "tenant-edit"
+ }, {
+ "id" : "tenant-delete",
+ "name" : "tenant-delete"
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/script/ansible-end.groovy b/smardigo/pmci/script/ansible-end.groovy
new file mode 100644
index 0000000..e08ddf8
--- /dev/null
+++ b/smardigo/pmci/script/ansible-end.groovy
@@ -0,0 +1 @@
+processes.byId(contextScopeId, contextProcessId).createComment(comment + ' beendet')
\ No newline at end of file
diff --git a/smardigo/pmci/script/ansible-start.groovy b/smardigo/pmci/script/ansible-start.groovy
new file mode 100644
index 0000000..5f107b3
--- /dev/null
+++ b/smardigo/pmci/script/ansible-start.groovy
@@ -0,0 +1,28 @@
+def env = [
+ stage: envStage,
+ scope_id: contextScopeId,
+ process_instance_id: execution.getProcessInstanceId(),
+ smardigo_management_action: smardigoManagementAction,
+ tenant: tenant
+]
+if (binding.hasVariable('extraVariables')) {
+ env << extraVariables
+}
+
+def filename = 'xvars-' + smardigoManagementAction + '-' + execution.getProcessInstanceId() + '.yml'
+def ansibleCommand= 'ansible-playbook ' + smardigoManagementAction + '.yml --vault-password-file ~/vault-pass -e "@' + filename + '"'
+def ansibleVariables= 'cat <> ' + filename + '\n'
+ansibleVariables+= '---\n'
+env.each { key, val ->
+ if (val instanceof List) {
+ ansibleVariables+= key + ':\n- \'' + val.join('\'\n- \'') + '\'\n'
+ } else {
+ ansibleVariables+= key + ': \'' + val + '\'\n'
+ }
+}
+ansibleVariables+= 'EOT'
+
+processes.byId(contextScopeId, contextProcessId).createComment(comment + ' gestartet')
+processes.byId(contextScopeId, contextProcessId).createComment(ansibleVariables + '\n' + ansibleCommand)
+
+ansibleCommand
\ No newline at end of file
diff --git a/smardigo/pmci/script/create-awx-paramaters.groovy b/smardigo/pmci/script/create-awx-paramaters.groovy
new file mode 100644
index 0000000..7373c62
--- /dev/null
+++ b/smardigo/pmci/script/create-awx-paramaters.groovy
@@ -0,0 +1,11 @@
+def env = [
+ stage: envStage,
+ scope_id: contextScopeId,
+ process_instance_id: execution.getProcessInstanceId(),
+ smardigo_management_action: smardigoManagementAction,
+ tenant: tenant
+]
+if (binding.hasVariable('extraVariables')) {
+ env << extraVariables
+}
+env
\ No newline at end of file
diff --git a/smardigo/pmci/script/create-password.groovy b/smardigo/pmci/script/create-password.groovy
new file mode 100644
index 0000000..935f273
--- /dev/null
+++ b/smardigo/pmci/script/create-password.groovy
@@ -0,0 +1,26 @@
+def pool_length = 20;
+def digits = [0..9].flatten() - [ 'O', '0', 'l', '1', 'I' ]
+def upperCase = ['A'..'Z'].flatten() - [ 'O', '0', 'l', '1', 'I' ]
+def lowerCase = ['a'..'z'].flatten() - [ 'O', '0', 'l', '1', 'I' ]
+def special = ['~','!','#','%','&','(',')','{','}','[',']','-','+']
+
+def pool = digits + upperCase + lowerCase + special
+
+Random rand = new Random(System.currentTimeMillis());
+def passChars = (0..pool_length - 1).collect { pool[rand.nextInt(pool.size())] };
+
+passChars[0] = special[rand.nextInt(special.size())]
+passChars[pool_length - 0] = special[rand.nextInt(special.size())]
+
+passChars[1] = upperCase[rand.nextInt(upperCase.size())]
+passChars[pool_length - 1] = upperCase[rand.nextInt(upperCase.size())]
+
+passChars[2] = lowerCase[rand.nextInt(lowerCase.size())]
+passChars[pool_length - 2] = lowerCase[rand.nextInt(lowerCase.size())]
+
+passChars[3] = digits[rand.nextInt(digits.size())]
+passChars[pool_length - 3] = digits[rand.nextInt(digits.size())]
+
+def PASSWORD = passChars.join('');
+
+PASSWORD
\ No newline at end of file
diff --git a/smardigo/pmci/script/create-teams-message.groovy b/smardigo/pmci/script/create-teams-message.groovy
new file mode 100644
index 0000000..79404b7
--- /dev/null
+++ b/smardigo/pmci/script/create-teams-message.groovy
@@ -0,0 +1,43 @@
+def smardigoUrl = "https://" + envBaseUrl + "/api/redirect/process/" + contextScopeId + "/dossier/" + process_definition_key + "/" + contextProcessId
+def smardigoMessageUrl = "https://" + envBaseUrl + "/api/v1/scopes/" + contextScopeId + "/processes/" + contextProcessId + "/messages"
+
+def message = [:]
+message["@type"] = "MessageCard"
+message["@context"] = "http://schema.org/extensions"
+message["themeColor"] = "0076D7"
+message["summary"] = "Neue Aufgabe: " + "Mein comment"
+
+def section = [:]
+section["activityTitle"] = "activityTitle"
+section["activitySubtitle"] = "activitySubtitle"
+section["activityImage"] = "https://smardigo.de/wp-content/uploads/2020/01/smardigo-min.png"
+section["facts"] = [
+ [name:"Stage",value:envStage],
+ [name:"Mandant",value:tenant.name]
+]
+message.sections = [section]
+
+def potentialAction = []
+
+def openInSmardigo = [:]
+openInSmardigo["@type"] = "ViewAction"
+openInSmardigo["@context"] = "http://schema.org"
+openInSmardigo["name"] = "Vorgang öffnen"
+openInSmardigo["target"] = [smardigoUrl]
+potentialAction.add(openInSmardigo)
+
+if (vorgang_status < 30) {
+ def approveInSmardigo = [:]
+ approveInSmardigo["@type"] = "HttpPOST"
+ approveInSmardigo["name"] = "Server freigeben"
+ approveInSmardigo["target"] = smardigoMessageUrl
+ approveInSmardigo["body"] = "{\"message\":\"process-approved-" + contextProcessId + "\"}"
+ approveInSmardigo["headers"] = [
+ [name:"Smardigo-User-Token",value:envSmardigoUserToken]
+ ]
+ potentialAction.add(approveInSmardigo)
+}
+
+message.potentialAction = potentialAction
+
+message
\ No newline at end of file
diff --git a/smardigo/pmci/script/external-task-mock.groovy b/smardigo/pmci/script/external-task-mock.groovy
new file mode 100644
index 0000000..91b1368
--- /dev/null
+++ b/smardigo/pmci/script/external-task-mock.groovy
@@ -0,0 +1,24 @@
+/****************************************
+ insert process variable values start
+*****************************************/
+def processVariables = [:]
+processVariables.result = creation_user_id + " is not a cat"
+
+/****************************************
+ insert process variable values end
+*****************************************/
+/****************************************
+ insert local variable values start
+*****************************************/
+def localVariables = [:]
+
+/****************************************
+ insert local variable values end
+*****************************************/
+
+def result = [
+ processVariables:processVariables,
+ localVariables:localVariables
+]
+
+return result;
\ No newline at end of file