DEV-526 added pmci-callback playbook for testing purposes

- new pmci playbook api
qa
Sven Ketelsen 3 years ago
parent e473c19792
commit f90a83e80e

@ -1,82 +1,10 @@
--- ---
# Parameters: # 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) # scope_id := (scope id of the management process)
# process_instance_id := (process instance 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) # 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 <cluster>"
debug:
msg: "{{ cluster }}"
become: false
when:
- cluster is defined
- name: "Print given variables <data>"
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
############################################################# #############################################################
# Sending smardigo management message to process # Sending smardigo management message to process
############################################################# #############################################################

@ -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

@ -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 <cluster>"
debug:
msg: "{{ cluster }}"
become: false
when:
- cluster is defined
- name: "Print given variables <data>"
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

@ -8,6 +8,7 @@ awx_ansible_password: ansible
# plz move it so separate DIR and do a lookup for all file in $DIR # 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 <migrating awx to k8s> # not doing it right now due avoiding breaking change within <migrating awx to k8s>
awx_job_templates: awx_job_templates:
- name: "pmci-empty-playbook"
- name: "create-database" - name: "create-database"
- name: "create-database-backup" - name: "create-database-backup"
- name: "create-kibana-objects" - name: "create-kibana-objects"
@ -16,7 +17,6 @@ awx_job_templates:
- name: "create-server" - name: "create-server"
- name: "create-service" - name: "create-service"
- name: "import-database" - name: "import-database"
- name: "pmci-callback"
- name: "remove-database" - name: "remove-database"
- name: "remove-realm" - name: "remove-realm"
- name: "remove-server" - name: "remove-server"

File diff suppressed because one or more lines are too long

@ -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"
} ]
}

@ -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"
}
]
}

@ -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"
}
]
}

@ -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"
}
]
}

@ -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"
}
]
}

@ -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
}

@ -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"
} ]
}

@ -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"
}

@ -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"
}

@ -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" : "<span>{{[item.firstName, item.lastName].filter(Boolean).join(' ')}}</span>",
"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"
}

@ -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"
}

@ -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!)"
}

@ -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"
}

@ -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" : "<hr>"
}, {
"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"
} ]
} ]
}

@ -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" : "<hr>"
}, {
"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"
} ]
} ]
}

@ -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" : "<hr>"
}, {
"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"
} ]
} ]
}

@ -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" : "<hr>"
}, {
"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"
} ]
} ]
}

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Neue Smardigo-Instanz erfolgreich aufgesetzt</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="shortcut icon" th:href="@{|${baseUrl}/favicon.ico|}" />
</head>
<body>
<p>
Sehr geehrte Damen und Herren,
</p>
<p></p>
<p>
ihre Smardigo-Instanz ist nun einsatzbereit.
</p>
<p>
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.
</p>
<p></p>
<table>
<tr>
<th>Service</th>
<th>Benutzer</th>
<th>Passwort</th>
<th>Link</th>
</tr>
<tr>
<td>Connect</td>
<td th:text="${ connect_admin_username }">some-username</td>
<td th:text="${ connect_admin_password }">some-password</td>
<td th:text="'https://' + ${ cluster.stage } + '-' + ${ tenant.key } + '-' + ${ cluster.name } + '-01-connect.smardigo.digital'">some-link</td>
</tr>
<tr>
<td>Keycloak</td>
<td th:text="${ keycloak_admin_username }">some-username</td>
<td th:text="${ keycloak_admin_password }">some-password</td>
<td th:text="'https://' + ${ cluster.stage } + '-keycloak-01.smardigo.digital/auth/admin/' + ${ tenant.key } + '/console'">some-link</td>
</tr>
<tr>
<td>Wordpress</td>
<td th:text="${ wordpress_admin_username }">some-username</td>
<td th:text="${ wordpress_admin_password }">some-password</td>
<td th:text="'https://' + ${ cluster.stage } + '-' + ${ tenant.key } + '-' + ${ cluster.name } + '-01-wordpress.smardigo.digital'">some-link</td>
</tr>
<tr>
<td>ELK</td>
<td th:text="${ cluster.stage } + '-' + ${ tenant.key }">some-username</td>
<td th:text="${ cluster.stage } + '-' + ${ tenant.key }">some-password</td>
<td th:text="'https://' + ${ cluster.stage } + '-elastic-stack-kibana-01-kibana.smardigo.digital/s/' + ${ cluster.stage } + '-' + ${ tenant.key } + '/app/home#/'">some-link</td>
</tr>
</table>
<p></p>
<p>
Hier geht es zum Antrag: <a target="_blank" th:href="|${baseUrl}/api/redirect/process/${contextScopeId}/dossier/${contextProcessDefinitionKey}/${contextProcessInstanceId}|">Link</a>
</p>
<p>
Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt.
</p>
</body>
</html>

@ -0,0 +1,54 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Ihr Keycloack-Admin wurde angelegt</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="shortcut icon" th:href="@{|${baseUrl}/favicon.ico|}" />
</head>
<body>
<p>
Sehr geehrte Damen und Herren,
</p>
<p></p>
<p>
Ihr Keycloack-Admin wurde eingerichtet.
</p>
<p>
Zum Abschließen der Anlage müssen Sie sich mit den folgenden angegebenen initialen Zugangsdaten anmelden.
</p>
<p>
Sie werden danach aufgefordert, Ihr eigenes Passwort zu setzen.
</p>
<p>
Bitte beachten Sie folgenden Hinweise zu diesem User
<ul>
<li>Das initiale Passwort kann nur für die allererste Anmeldung verwendet werden</li>
<li>Das von Ihnen gesetzte Passwörter wird nicht überschrieben</li>
<li>Dieser Admin-Zugang ist über alle potenziellen Smardigo-Instanzen lediglich zur Administration der User und Berechtigungen zu nutzen ist.</li>
</ul>
</p>
<p></p>
<table>
<tr>
<th>Service</th>
<th>Benutzer</th>
<th>Passwort</th>
<th>Link</th>
</tr>
<tr>
<td>Keycloak</td>
<td th:text="${ keycloak_admin_username }">some-username</td>
<td th:text="${ keycloak_admin_password }">some-password</td>
<td th:text="'https://' + ${ tenant.key} + '-keycloak-01.smardigo.digital/auth/admin/' + ${ tenant.key } + '/console'">some-link</td>
</tr>
</table>
<p></p>
<p>
Hier geht es zum Antrag: <a target="_blank" th:href="|${baseUrl}/api/redirect/process/${contextScopeId}/dossier/${contextProcessDefinitionKey}/${contextProcessInstanceId}|">Link</a>
</p>
</br>
<p>
Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt.
</p>
</body>
</html>

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Ihre Tenant wurde gelöscht</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="shortcut icon" th:href="@{|${baseUrl}/favicon.ico|}" />
</head>
<body>
<p>
Sehr geehrte Damen und Herren,
</p>
<p></p>
<p>
Ihr Tenant und alle dazu gehörigen Smardigo-Instanzen wurden gelöscht.
</p>
<p></p>
Den zugehörigen Vorgang können Sie hier einsehen : <a target="_blank" th:href="|${baseUrl}/api/redirect/process/${contextScopeId}/dossier/${contextProcessDefinitionKey}/${contextProcessInstanceId}|">Link</a>
</p>
</br>
<p>
Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt.
</p>
</body>
</html>

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Ihre Tenant-Daten wurden bearbeitet</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="shortcut icon" th:href="@{|${baseUrl}/favicon.ico|}" />
</head>
<body>
<p>
Sehr geehrte Damen und Herren,
</p>
<p></p>
<p>
Ihre Tenant-Daten wurden bearbeitet.
</p>
<p></p>
Die angepassten Daten können Sie hier einsehen : <a target="_blank" th:href="|${baseUrl}/api/redirect/process/${contextScopeId}/dossier/${contextProcessDefinitionKey}/${contextProcessInstanceId}|">Link</a>
</p>
</br>
<p>
Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt.
</p>
</body>
</html>

@ -0,0 +1 @@
scopeId=pmci

@ -0,0 +1,8 @@
{
"name" : "tenant-create",
"configKey" : "tenant-create-fallback",
"processDefinitionKey" : "tenant-create",
"columns" : [ ],
"sorts" : [ ],
"filters" : [ ]
}

@ -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"
} ]
}

@ -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"
} ]
}

@ -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"
} ]
}

@ -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"
} ]
}

@ -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"
} ]
}

@ -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"
}
}
}

@ -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"
}
}
}

@ -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"
}
}
}

@ -0,0 +1,213 @@
<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:bioc="http://bpmn.io/schema/bpmn/biocolor/1.0" id="sample-diagram" targetNamespace="http://bpmn.io/schema/bpmn" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
<bpmn2:collaboration id="Collaboration_12geczp">
<bpmn2:participant id="Participant_08rb9rc" name="Smardigo Management Action" processRef="smardigo-management-action" />
</bpmn2:collaboration>
<bpmn2:process id="smardigo-management-action" name="smardigo-management-action" isExecutable="true">
<bpmn2:startEvent id="Event_02kqmmg">
<bpmn2:outgoing>Flow_1ow8whd</bpmn2:outgoing>
</bpmn2:startEvent>
<bpmn2:scriptTask id="Activity_1olpao9" name="ansible-start.groovy" scriptFormat="groovy" camunda:resource="ansible-start.groovy">
<bpmn2:incoming>Flow_1ow8whd</bpmn2:incoming>
<bpmn2:outgoing>Flow_0qfq760</bpmn2:outgoing>
</bpmn2:scriptTask>
<bpmn2:callActivity id="Activity_1ewqrs7" name="Management Benachrichtigung senden" calledElement="smardigo-management-message">
<bpmn2:extensionElements>
<camunda:in businessKey="#{execution.processBusinessKey}" />
<camunda:in variables="all" />
<camunda:in sourceExpression="Neue Aufgabe" target="activityTitle" />
<camunda:in sourceExpression="${smardigoManagementAction}" target="activitySubtitle" />
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_0qfq760</bpmn2:incoming>
<bpmn2:outgoing>Flow_11nxxg5</bpmn2:outgoing>
</bpmn2:callActivity>
<bpmn2:serviceTask id="Activity_0wn3csk" name="AWX Provisionierung starten" camunda:delegateExpression="${rest.post(&#39;awx&#39;, awxPath).responseJSONObject(&#39;awxResponse&#39;).bodyJSONMap(awxRequestBody)}">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:inputParameter name="awxRequestBody">
<camunda:map>
<camunda:entry key="extra_vars">${extra_vars}</camunda:entry>
</camunda:map>
</camunda:inputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1nqz9ya</bpmn2:incoming>
<bpmn2:outgoing>Flow_1kxc9t0</bpmn2:outgoing>
</bpmn2:serviceTask>
<bpmn2:task id="Activity_1igdww7" name="AWX Job-Template-ID auslesen">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="job_template_id">
<camunda:script scriptFormat="groovy">datasources.query('awx-job-templates').processScope(contextScopeId, contextProcessId).parameters([name:smardigoManagementAction]).list()[0]['id'];</camunda:script>
</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_0tmasvl</bpmn2:incoming>
<bpmn2:outgoing>Flow_1cnt5hf</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:task id="Activity_1hwc1va" name="AWX REST-Parameter erzeugen">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="awxPath">/api/v2/job_templates/${job_template_id}/launch/</camunda:outputParameter>
<camunda:outputParameter name="extra_vars">
<camunda:script scriptFormat="groovy" resource="create-awx-paramaters.groovy" />
</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1cnt5hf</bpmn2:incoming>
<bpmn2:outgoing>Flow_1nqz9ya</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:scriptTask id="Activity_12p300g" name="Aktuelle Job Id übernehmen" scriptFormat="groovy">
<bpmn2:incoming>Flow_1kxc9t0</bpmn2:incoming>
<bpmn2:outgoing>Flow_1nuku1o</bpmn2:outgoing>
<bpmn2:script>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)</bpmn2:script>
</bpmn2:scriptTask>
<bpmn2:intermediateCatchEvent id="Event_0tax83l" name="Ausführung der Aktion abwarten">
<bpmn2:incoming>Flow_1nuku1o</bpmn2:incoming>
<bpmn2:outgoing>Flow_0gcsmj7</bpmn2:outgoing>
<bpmn2:messageEventDefinition id="MessageEventDefinition_193tmaa" messageRef="Message_13oyyv2" />
</bpmn2:intermediateCatchEvent>
<bpmn2:exclusiveGateway id="Gateway_0n3j4hy" default="Flow_1rngywr">
<bpmn2:incoming>Flow_11nxxg5</bpmn2:incoming>
<bpmn2:outgoing>Flow_0tmasvl</bpmn2:outgoing>
<bpmn2:outgoing>Flow_1rngywr</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:scriptTask id="Activity_136brby" name="ansible-end.groovy" scriptFormat="groovy" camunda:resource="ansible-end.groovy">
<bpmn2:incoming>Flow_0npv638</bpmn2:incoming>
<bpmn2:outgoing>Flow_1ju13h8</bpmn2:outgoing>
</bpmn2:scriptTask>
<bpmn2:endEvent id="Event_0hla739">
<bpmn2:incoming>Flow_1ju13h8</bpmn2:incoming>
</bpmn2:endEvent>
<bpmn2:exclusiveGateway id="Gateway_0p57e80">
<bpmn2:incoming>Flow_0gcsmj7</bpmn2:incoming>
<bpmn2:incoming>Flow_1rngywr</bpmn2:incoming>
<bpmn2:outgoing>Flow_0npv638</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:sequenceFlow id="Flow_1ow8whd" sourceRef="Event_02kqmmg" targetRef="Activity_1olpao9" />
<bpmn2:sequenceFlow id="Flow_0qfq760" sourceRef="Activity_1olpao9" targetRef="Activity_1ewqrs7" />
<bpmn2:sequenceFlow id="Flow_11nxxg5" sourceRef="Activity_1ewqrs7" targetRef="Gateway_0n3j4hy" />
<bpmn2:sequenceFlow id="Flow_1nqz9ya" sourceRef="Activity_1hwc1va" targetRef="Activity_0wn3csk" />
<bpmn2:sequenceFlow id="Flow_1kxc9t0" sourceRef="Activity_0wn3csk" targetRef="Activity_12p300g" />
<bpmn2:sequenceFlow id="Flow_0tmasvl" name="dev-Stage" sourceRef="Gateway_0n3j4hy" targetRef="Activity_1igdww7">
<bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">${envStage=="dev"}</bpmn2:conditionExpression>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="Flow_1cnt5hf" sourceRef="Activity_1igdww7" targetRef="Activity_1hwc1va" />
<bpmn2:sequenceFlow id="Flow_1nuku1o" sourceRef="Activity_12p300g" targetRef="Event_0tax83l" />
<bpmn2:sequenceFlow id="Flow_0gcsmj7" sourceRef="Event_0tax83l" targetRef="Gateway_0p57e80" />
<bpmn2:sequenceFlow id="Flow_1rngywr" name="default" sourceRef="Gateway_0n3j4hy" targetRef="Gateway_0p57e80" />
<bpmn2:sequenceFlow id="Flow_0npv638" sourceRef="Gateway_0p57e80" targetRef="Activity_136brby" />
<bpmn2:sequenceFlow id="Flow_1ju13h8" sourceRef="Activity_136brby" targetRef="Event_0hla739" />
</bpmn2:process>
<bpmn2:message id="Message_13oyyv2" name="action-executed-${execution.getVariable(&#39;smardigoManagementAction&#39;)}" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_12geczp">
<bpmndi:BPMNShape id="Participant_08rb9rc_di" bpmnElement="Participant_08rb9rc" isHorizontal="true">
<dc:Bounds x="350" y="220" width="1500" height="380" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_02kqmmg_di" bpmnElement="Event_02kqmmg">
<dc:Bounds x="402" y="392" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1olpao9_di" bpmnElement="Activity_1olpao9">
<dc:Bounds x="470" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1ewqrs7_di" bpmnElement="Activity_1ewqrs7" bioc:stroke="rgb(67, 160, 71)" bioc:fill="rgb(200, 230, 201)">
<dc:Bounds x="610" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0wn3csk_di" bpmnElement="Activity_0wn3csk">
<dc:Bounds x="1160" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1igdww7_di" bpmnElement="Activity_1igdww7">
<dc:Bounds x="880" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1hwc1va_di" bpmnElement="Activity_1hwc1va">
<dc:Bounds x="1020" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0bu6o2b_di" bpmnElement="Activity_12p300g">
<dc:Bounds x="1300" y="370" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0tax83l_di" bpmnElement="Event_0tax83l">
<dc:Bounds x="1442" y="392" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1424" y="436" width="78" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0n3j4hy_di" bpmnElement="Gateway_0n3j4hy" isMarkerVisible="true">
<dc:Bounds x="745" y="385" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_136brby_di" bpmnElement="Activity_136brby">
<dc:Bounds x="1630" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0kni7xh_di" bpmnElement="Event_0hla739">
<dc:Bounds x="1772" y="392" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0p57e80_di" bpmnElement="Gateway_0p57e80" isMarkerVisible="true">
<dc:Bounds x="1535" y="385" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1ow8whd_di" bpmnElement="Flow_1ow8whd">
<di:waypoint x="438" y="410" />
<di:waypoint x="470" y="410" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0qfq760_di" bpmnElement="Flow_0qfq760">
<di:waypoint x="570" y="410" />
<di:waypoint x="610" y="410" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_11nxxg5_di" bpmnElement="Flow_11nxxg5">
<di:waypoint x="710" y="410" />
<di:waypoint x="745" y="410" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1nqz9ya_di" bpmnElement="Flow_1nqz9ya">
<di:waypoint x="1120" y="410" />
<di:waypoint x="1160" y="410" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1kxc9t0_di" bpmnElement="Flow_1kxc9t0">
<di:waypoint x="1260" y="410" />
<di:waypoint x="1300" y="410" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0tmasvl_di" bpmnElement="Flow_0tmasvl">
<di:waypoint x="795" y="410" />
<di:waypoint x="880" y="410" />
<bpmndi:BPMNLabel>
<dc:Bounds x="812" y="392" width="51" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1cnt5hf_di" bpmnElement="Flow_1cnt5hf">
<di:waypoint x="980" y="410" />
<di:waypoint x="1020" y="410" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1nuku1o_di" bpmnElement="Flow_1nuku1o">
<di:waypoint x="1400" y="410" />
<di:waypoint x="1442" y="410" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0gcsmj7_di" bpmnElement="Flow_0gcsmj7">
<di:waypoint x="1478" y="410" />
<di:waypoint x="1535" y="410" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1rngywr_di" bpmnElement="Flow_1rngywr">
<di:waypoint x="770" y="385" />
<di:waypoint x="770" y="300" />
<di:waypoint x="1560" y="300" />
<di:waypoint x="1560" y="385" />
<bpmndi:BPMNLabel>
<dc:Bounds x="813" y="282" width="34" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0npv638_di" bpmnElement="Flow_0npv638">
<di:waypoint x="1585" y="410" />
<di:waypoint x="1630" y="410" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ju13h8_di" bpmnElement="Flow_1ju13h8">
<di:waypoint x="1730" y="410" />
<di:waypoint x="1772" y="410" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:bioc="http://bpmn.io/schema/bpmn/biocolor/1.0" id="sample-diagram" targetNamespace="http://bpmn.io/schema/bpmn" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
<bpmn2:collaboration id="Collaboration_0g4ibv9">
<bpmn2:participant id="Participant_0r2nfs7" name="Smardigo Management Message" processRef="smardigo-management-message" />
</bpmn2:collaboration>
<bpmn2:process id="smardigo-management-message" name="smardigo-management-message" isExecutable="true">
<bpmn2:startEvent id="Event_14clga5">
<bpmn2:outgoing>Flow_1nu8qqa</bpmn2:outgoing>
</bpmn2:startEvent>
<bpmn2:sequenceFlow id="Flow_1nu8qqa" sourceRef="Event_14clga5" targetRef="Activity_1ipajwe" />
<bpmn2:sequenceFlow id="Flow_127qqnb" sourceRef="Activity_1ipajwe" targetRef="Event_063hewk" />
<bpmn2:serviceTask id="Activity_1ipajwe" name="MS-Teams Benachrichtigung senden" camunda:delegateExpression="${rest.post(teamsChannelUrl, &#39;/&#39;).responseJSONObject(&#39;teamsResponse&#39;).bodyJSONMap(teamsRequestBody)}">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:inputParameter name="teamsRequestBody">
<camunda:script scriptFormat="groovy" resource="create-teams-message.groovy" />
</camunda:inputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1nu8qqa</bpmn2:incoming>
<bpmn2:outgoing>Flow_127qqnb</bpmn2:outgoing>
</bpmn2:serviceTask>
<bpmn2:endEvent id="Event_063hewk">
<bpmn2:incoming>Flow_127qqnb</bpmn2:incoming>
</bpmn2:endEvent>
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_0g4ibv9">
<bpmndi:BPMNShape id="Participant_0r2nfs7_di" bpmnElement="Participant_0r2nfs7" isHorizontal="true">
<dc:Bounds x="362" y="220" width="498" height="380" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_14clga5_di" bpmnElement="Event_14clga5">
<dc:Bounds x="424" y="392" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1ipajwe_di" bpmnElement="Activity_1ipajwe" bioc:stroke="black" bioc:fill="white">
<dc:Bounds x="540" y="370" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0sikrg3_di" bpmnElement="Event_063hewk">
<dc:Bounds x="742" y="392" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1nu8qqa_di" bpmnElement="Flow_1nu8qqa">
<di:waypoint x="460" y="410" />
<di:waypoint x="540" y="410" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_127qqnb_di" bpmnElement="Flow_127qqnb">
<di:waypoint x="640" y="410" />
<di:waypoint x="742" y="410" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>

@ -0,0 +1,264 @@
<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:bioc="http://bpmn.io/schema/bpmn/biocolor/1.0" id="sample-diagram" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.9.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
<bpmn2:signal id="Signal_1rr7wdd" name="Signal_05vo0km" />
<bpmn2:collaboration id="Collaboration_0oahy0i">
<bpmn2:participant id="Participant_19lpjee" name="Create Tenant" processRef="tenant-create" />
</bpmn2:collaboration>
<bpmn2:process id="tenant-create" name="Create Tenant" isExecutable="true" camunda:candidateStarterGroups="tenant-create">
<bpmn2:startEvent id="Event_0wqvypp">
<bpmn2:outgoing>Flow_1a8vxf0</bpmn2:outgoing>
</bpmn2:startEvent>
<bpmn2:sequenceFlow id="Flow_1a8vxf0" sourceRef="Event_0wqvypp" targetRef="Event_1ho1j80" />
<bpmn2:intermediateThrowEvent id="Event_1ho1j80" name="set state &#34;new&#34;" camunda:asyncAfter="true">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${10}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">new</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1a8vxf0</bpmn2:incoming>
<bpmn2:outgoing>Flow_0oc7f69</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:sequenceFlow id="Flow_0oc7f69" sourceRef="Event_1ho1j80" targetRef="Activity_1xhfee5" />
<bpmn2:sequenceFlow id="Flow_080k63h" sourceRef="Activity_1xhfee5" targetRef="ExclusiveGateway_17rfq4o" />
<bpmn2:sequenceFlow id="Flow_0ufs5lg" sourceRef="Event_1l1qtec" targetRef="Gateway_1rke7se" />
<bpmn2:sequenceFlow id="Flow_1itjvyi" name="Cancel" sourceRef="ExclusiveGateway_17rfq4o" targetRef="Event_1l1qtec">
<bpmn2:extensionElements>
<camunda:properties>
<camunda:property name="discard_form_changes" value="true" />
<camunda:property name="validate_form" value="false" />
<camunda:property name="variant" value="secondary" />
</camunda:properties>
</bpmn2:extensionElements>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="Flow_0jqgye3" name="Create" sourceRef="ExclusiveGateway_17rfq4o" targetRef="Event_0gz9dof" />
<bpmn2:sequenceFlow id="Flow_1dzhr2w" sourceRef="Gateway_1rke7se" targetRef="Event_1vlkq00" />
<bpmn2:sequenceFlow id="Flow_03qvqdv" sourceRef="Event_1mq528l" targetRef="Gateway_1rke7se" />
<bpmn2:sequenceFlow id="Flow_0h2salf" sourceRef="Event_0gz9dof" targetRef="Activity_12c4494" />
<bpmn2:sequenceFlow id="Flow_01p8umx" sourceRef="Activity_12c4494" targetRef="Activity_04268hv" />
<bpmn2:sequenceFlow id="Flow_19apghu" sourceRef="Activity_04268hv" targetRef="Activity_0il62ix" />
<bpmn2:sequenceFlow id="Flow_1i1qgmz" sourceRef="Activity_1lyywu3" targetRef="Event_1mq528l" />
<bpmn2:sequenceFlow id="Flow_1vkbt5o" sourceRef="Activity_0il62ix" targetRef="Activity_1lyywu3" />
<bpmn2:userTask id="Activity_1xhfee5" name="Edit tenant" camunda:candidateGroups="user">
<bpmn2:incoming>Flow_0oc7f69</bpmn2:incoming>
<bpmn2:outgoing>Flow_080k63h</bpmn2:outgoing>
</bpmn2:userTask>
<bpmn2:exclusiveGateway id="ExclusiveGateway_17rfq4o">
<bpmn2:incoming>Flow_080k63h</bpmn2:incoming>
<bpmn2:outgoing>Flow_1itjvyi</bpmn2:outgoing>
<bpmn2:outgoing>Flow_0jqgye3</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:intermediateThrowEvent id="Event_0gz9dof" name="set state &#34;is being created&#34;" camunda:asyncAfter="true">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${10}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">is being created</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_0jqgye3</bpmn2:incoming>
<bpmn2:outgoing>Flow_0h2salf</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:task id="Activity_12c4494" name="Set initial keycloak_admin_xxx">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="keycloak_admin_password">
<camunda:script scriptFormat="groovy" resource="create-password.groovy" />
</camunda:outputParameter>
<camunda:outputParameter name="keycloak_admin_username">${tenant.key}-realm-admin</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_0h2salf</bpmn2:incoming>
<bpmn2:outgoing>Flow_01p8umx</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:callActivity id="Activity_04268hv" name="sma-mgmt-act pmci-tenant-create" calledElement="smardigo-management-action">
<bpmn2:extensionElements>
<camunda:in businessKey="#{execution.processBusinessKey}" />
<camunda:in sourceExpression="pmci-empty-playbook" target="smardigoManagementAction" />
<camunda:in sourceExpression="Realm/Clients erstellen" target="comment" />
<camunda:inputOutput />
<camunda:in variables="all" />
<camunda:in sourceExpression="teams" target="teamsChannelUrl" />
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_01p8umx</bpmn2:incoming>
<bpmn2:outgoing>Flow_19apghu</bpmn2:outgoing>
</bpmn2:callActivity>
<bpmn2:serviceTask id="Activity_0il62ix" name="Save tenant" camunda:delegateExpression="${dataEntity.save(&#39;tenant&#39;, &#39;tenant&#39;)}">
<bpmn2:extensionElements>
<camunda:inputOutput />
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_19apghu</bpmn2:incoming>
<bpmn2:outgoing>Flow_1vkbt5o</bpmn2:outgoing>
</bpmn2:serviceTask>
<bpmn2:serviceTask id="Activity_1lyywu3" name="Send mail to creation_user and tenant-admin" camunda:type="external" camunda:topic="send-mail">
<bpmn2:extensionElements>
<camunda:properties>
<camunda:property name="maxRetries" value="10" />
</camunda:properties>
<camunda:inputOutput>
<camunda:inputParameter name="toGroups" />
<camunda:inputParameter name="to">${tenant.admin.email}</camunda:inputParameter>
<camunda:inputParameter name="toUsers" />
<camunda:inputParameter name="subject">Tenant angelegt</camunda:inputParameter>
<camunda:inputParameter name="messageBody">template(tenant-created)</camunda:inputParameter>
<camunda:inputParameter name="ccUsers">${creation_user_id}</camunda:inputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1vkbt5o</bpmn2:incoming>
<bpmn2:outgoing>Flow_1i1qgmz</bpmn2:outgoing>
</bpmn2:serviceTask>
<bpmn2:endEvent id="Event_1vlkq00">
<bpmn2:incoming>Flow_1dzhr2w</bpmn2:incoming>
</bpmn2:endEvent>
<bpmn2:intermediateThrowEvent id="Event_1mq528l" name="set state &#34;created&#34;" camunda:asyncAfter="true">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${100}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">created</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1i1qgmz</bpmn2:incoming>
<bpmn2:outgoing>Flow_03qvqdv</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:exclusiveGateway id="Gateway_1rke7se">
<bpmn2:incoming>Flow_0ufs5lg</bpmn2:incoming>
<bpmn2:incoming>Flow_03qvqdv</bpmn2:incoming>
<bpmn2:outgoing>Flow_1dzhr2w</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:intermediateThrowEvent id="Event_1l1qtec" name="set state &#34;canceled&#34;" camunda:asyncAfter="true">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${101}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">canceled</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1itjvyi</bpmn2:incoming>
<bpmn2:outgoing>Flow_0ufs5lg</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_0oahy0i">
<bpmndi:BPMNShape id="Participant_19lpjee_di" bpmnElement="Participant_19lpjee" isHorizontal="true">
<dc:Bounds x="280" y="40" width="1630" height="570" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0wqvypp_di" bpmnElement="Event_0wqvypp">
<dc:Bounds x="362" y="322" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1ho1j80_di" bpmnElement="Event_1ho1j80">
<dc:Bounds x="472" y="322" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="455" y="368" width="73" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_154ggtp_di" bpmnElement="Activity_1xhfee5">
<dc:Bounds x="580" y="300" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ExclusiveGateway_17rfq4o_di" bpmnElement="ExclusiveGateway_17rfq4o" isMarkerVisible="true">
<dc:Bounds x="745" y="315" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_12ln7jv" bpmnElement="Event_0gz9dof">
<dc:Bounds x="852" y="182" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="831" y="228" width="87" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0lgsgy8_di" bpmnElement="Activity_12c4494">
<dc:Bounds x="940" y="160" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1scb708" bpmnElement="Activity_04268hv" bioc:stroke="rgb(67, 160, 71)" bioc:fill="rgb(200, 230, 201)">
<dc:Bounds x="1090" y="160" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1tb5nfy" bpmnElement="Activity_0il62ix">
<dc:Bounds x="1250" y="160" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0aw6pf2" bpmnElement="Activity_1lyywu3">
<dc:Bounds x="1400" y="160" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1vlkq00_di" bpmnElement="Event_1vlkq00">
<dc:Bounds x="1762" y="322" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_03m4l55" bpmnElement="Event_1mq528l">
<dc:Bounds x="1562" y="182" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1557" y="145" width="46" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1rke7se_di" bpmnElement="Gateway_1rke7se" isMarkerVisible="true">
<dc:Bounds x="1635" y="315" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1l1qtec_di" bpmnElement="Event_1l1qtec">
<dc:Bounds x="1562" y="462" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1558" y="508" width="53" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1a8vxf0_di" bpmnElement="Flow_1a8vxf0">
<di:waypoint x="398" y="340" />
<di:waypoint x="472" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0oc7f69_di" bpmnElement="Flow_0oc7f69">
<di:waypoint x="508" y="340" />
<di:waypoint x="580" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_080k63h_di" bpmnElement="Flow_080k63h">
<di:waypoint x="680" y="340" />
<di:waypoint x="745" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ufs5lg_di" bpmnElement="Flow_0ufs5lg">
<di:waypoint x="1598" y="480" />
<di:waypoint x="1660" y="480" />
<di:waypoint x="1660" y="365" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1itjvyi_di" bpmnElement="Flow_1itjvyi">
<di:waypoint x="770" y="365" />
<di:waypoint x="770" y="480" />
<di:waypoint x="1562" y="480" />
<bpmndi:BPMNLabel>
<dc:Bounds x="792" y="453" width="35" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0jqgye3_di" bpmnElement="Flow_0jqgye3">
<di:waypoint x="770" y="315" />
<di:waypoint x="770" y="200" />
<di:waypoint x="852" y="200" />
<bpmndi:BPMNLabel>
<dc:Bounds x="793" y="173" width="34" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1dzhr2w_di" bpmnElement="Flow_1dzhr2w">
<di:waypoint x="1685" y="340" />
<di:waypoint x="1762" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_03qvqdv_di" bpmnElement="Flow_03qvqdv">
<di:waypoint x="1598" y="200" />
<di:waypoint x="1660" y="200" />
<di:waypoint x="1660" y="315" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0h2salf_di" bpmnElement="Flow_0h2salf">
<di:waypoint x="888" y="200" />
<di:waypoint x="940" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_01p8umx_di" bpmnElement="Flow_01p8umx">
<di:waypoint x="1040" y="200" />
<di:waypoint x="1090" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_19apghu_di" bpmnElement="Flow_19apghu">
<di:waypoint x="1190" y="200" />
<di:waypoint x="1250" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1i1qgmz_di" bpmnElement="Flow_1i1qgmz">
<di:waypoint x="1500" y="200" />
<di:waypoint x="1562" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1vkbt5o_di" bpmnElement="Flow_1vkbt5o">
<di:waypoint x="1350" y="200" />
<di:waypoint x="1400" y="200" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>

@ -0,0 +1,312 @@
<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:bioc="http://bpmn.io/schema/bpmn/biocolor/1.0" id="sample-diagram" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.9.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
<bpmn2:signal id="Signal_1rr7wdd" name="Signal_05vo0km" />
<bpmn2:collaboration id="Collaboration_0oahy0i">
<bpmn2:participant id="Participant_19lpjee" name="Delete Tenant" processRef="tenant-delete" />
</bpmn2:collaboration>
<bpmn2:process id="tenant-delete" name="Delete Tenant" isExecutable="true" camunda:candidateStarterGroups="tenant-delete">
<bpmn2:startEvent id="Event_0wqvypp" camunda:formKey="tenant-select-wizard">
<bpmn2:outgoing>Flow_1a8vxf0</bpmn2:outgoing>
</bpmn2:startEvent>
<bpmn2:sequenceFlow id="Flow_1a8vxf0" sourceRef="Event_0wqvypp" targetRef="Event_1ho1j80" />
<bpmn2:sequenceFlow id="Flow_0oc7f69" sourceRef="Event_1ho1j80" targetRef="Activity_13oiped" />
<bpmn2:sequenceFlow id="Flow_04k00j1" sourceRef="Gateway_1rke7se" targetRef="Event_0abt8ww" />
<bpmn2:userTask id="Activity_13oiped" name="Edit tenant" camunda:candidateGroups="user">
<bpmn2:incoming>Flow_0oc7f69</bpmn2:incoming>
<bpmn2:incoming>Flow_1wpzyq7</bpmn2:incoming>
<bpmn2:outgoing>Flow_0kcmdp7</bpmn2:outgoing>
</bpmn2:userTask>
<bpmn2:exclusiveGateway id="Gateway_03qib89">
<bpmn2:incoming>Flow_0kcmdp7</bpmn2:incoming>
<bpmn2:outgoing>Flow_0a1iw3h</bpmn2:outgoing>
<bpmn2:outgoing>Flow_029ur97</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:sequenceFlow id="Flow_0kcmdp7" sourceRef="Activity_13oiped" targetRef="Gateway_03qib89" />
<bpmn2:sequenceFlow id="Flow_0a1iw3h" name="Cancel" sourceRef="Gateway_03qib89" targetRef="Event_0s9giax">
<bpmn2:extensionElements>
<camunda:properties>
<camunda:property name="discard_form_changes" value="true" />
<camunda:property name="validate_form" value="false" />
<camunda:property name="variant" value="secondary" />
</camunda:properties>
</bpmn2:extensionElements>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="Flow_029ur97" name="Ok" sourceRef="Gateway_03qib89" targetRef="Event_0gz9dof" />
<bpmn2:sequenceFlow id="Flow_0h2salf" sourceRef="Event_0gz9dof" targetRef="Activity_07x0r4f" />
<bpmn2:sequenceFlow id="Flow_1j8nnwn" sourceRef="Activity_0hm7y70" targetRef="Event_1mq528l" />
<bpmn2:sequenceFlow id="Flow_03qvqdv" sourceRef="Event_1mq528l" targetRef="Gateway_1rke7se" />
<bpmn2:sequenceFlow id="Flow_04lmj9g" sourceRef="Event_0s9giax" targetRef="Gateway_1rke7se" />
<bpmn2:sequenceFlow id="Flow_19apghu" sourceRef="Activity_0nfyr4o" targetRef="Activity_18fmt0v" />
<bpmn2:sequenceFlow id="Flow_1vkbt5o" sourceRef="Activity_18fmt0v" targetRef="Activity_0hm7y70" />
<bpmn2:intermediateThrowEvent id="Event_1ho1j80" name="set state &#34;new&#34;" camunda:asyncAfter="true">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${10}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">new</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1a8vxf0</bpmn2:incoming>
<bpmn2:outgoing>Flow_0oc7f69</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:endEvent id="Event_0abt8ww">
<bpmn2:incoming>Flow_04k00j1</bpmn2:incoming>
</bpmn2:endEvent>
<bpmn2:intermediateThrowEvent id="Event_1mq528l" name="set state &#34;deleted&#34;" camunda:asyncAfter="true">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${100}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">deleted</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1j8nnwn</bpmn2:incoming>
<bpmn2:outgoing>Flow_03qvqdv</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:exclusiveGateway id="Gateway_1rke7se">
<bpmn2:incoming>Flow_03qvqdv</bpmn2:incoming>
<bpmn2:incoming>Flow_04lmj9g</bpmn2:incoming>
<bpmn2:outgoing>Flow_04k00j1</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:intermediateThrowEvent id="Event_0s9giax" name="set state &#34;canceled&#34;" camunda:asyncAfter="true">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${101}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">canceled</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_0a1iw3h</bpmn2:incoming>
<bpmn2:outgoing>Flow_04lmj9g</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:sequenceFlow id="Flow_1czdw49" sourceRef="Activity_07x0r4f" targetRef="Gateway_1h2zzis" />
<bpmn2:sequenceFlow id="Flow_17n4rbv" name="Ok" sourceRef="Gateway_1h2zzis" targetRef="Activity_0nfyr4o" />
<bpmn2:sequenceFlow id="Flow_1wpzyq7" name="Cancel" sourceRef="Gateway_1h2zzis" targetRef="Activity_13oiped">
<bpmn2:extensionElements>
<camunda:properties>
<camunda:property name="variant" value="secondary" />
</camunda:properties>
</bpmn2:extensionElements>
</bpmn2:sequenceFlow>
<bpmn2:serviceTask id="Activity_0hm7y70" name="Send mail to creation_user and tenant-admin" camunda:type="external" camunda:topic="send-mail">
<bpmn2:extensionElements>
<camunda:properties>
<camunda:property name="maxRetries" value="10" />
</camunda:properties>
<camunda:inputOutput>
<camunda:inputParameter name="toGroups" />
<camunda:inputParameter name="to">${tenant.admin.email}</camunda:inputParameter>
<camunda:inputParameter name="toUsers" />
<camunda:inputParameter name="subject">Tenant editiert</camunda:inputParameter>
<camunda:inputParameter name="messageBody">template(tenant-deleted)</camunda:inputParameter>
<camunda:inputParameter name="ccUsers">${creation_user_id}</camunda:inputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1vkbt5o</bpmn2:incoming>
<bpmn2:outgoing>Flow_1j8nnwn</bpmn2:outgoing>
</bpmn2:serviceTask>
<bpmn2:serviceTask id="Activity_18fmt0v" name="Delete Tenant" camunda:delegateExpression="${dataEntity.delete(&#39;tenant&#39;, tenant.id)}">
<bpmn2:extensionElements>
<camunda:inputOutput />
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_19apghu</bpmn2:incoming>
<bpmn2:outgoing>Flow_1vkbt5o</bpmn2:outgoing>
</bpmn2:serviceTask>
<bpmn2:callActivity id="Activity_0nfyr4o" name="sma-mgmt-act pmci-tenant-create" calledElement="smardigo-management-action">
<bpmn2:extensionElements>
<camunda:in businessKey="#{execution.processBusinessKey}" />
<camunda:in sourceExpression="pmci-empty-playbook" target="smardigoManagementAction" />
<camunda:in sourceExpression="Realm/Clients erstellen" target="comment" />
<camunda:inputOutput />
<camunda:in variables="all" />
<camunda:in sourceExpression="teams" target="teamsChannelUrl" />
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_17n4rbv</bpmn2:incoming>
<bpmn2:outgoing>Flow_19apghu</bpmn2:outgoing>
</bpmn2:callActivity>
<bpmn2:exclusiveGateway id="Gateway_1h2zzis">
<bpmn2:incoming>Flow_1czdw49</bpmn2:incoming>
<bpmn2:outgoing>Flow_17n4rbv</bpmn2:outgoing>
<bpmn2:outgoing>Flow_1wpzyq7</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:userTask id="Activity_07x0r4f" name="confirm-delete-tenant" camunda:formKey="confirm-delete-tenant" camunda:candidateGroups="user">
<bpmn2:incoming>Flow_0h2salf</bpmn2:incoming>
<bpmn2:outgoing>Flow_1czdw49</bpmn2:outgoing>
</bpmn2:userTask>
<bpmn2:intermediateThrowEvent id="Event_0gz9dof" name="set state &#34;is being deleted&#34;" camunda:asyncAfter="true">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${10}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">is being deleted</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_029ur97</bpmn2:incoming>
<bpmn2:outgoing>Flow_0h2salf</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:textAnnotation id="TextAnnotation_0ew9not">
<bpmn2:text>Alles löschen?</bpmn2:text>
</bpmn2:textAnnotation>
<bpmn2:association id="Association_0fzzu7g" sourceRef="Activity_13oiped" targetRef="TextAnnotation_0ew9not" />
<bpmn2:textAnnotation id="TextAnnotation_1g13zn3">
<bpmn2:text>ACHTUNG: Ändert sich das Datenmodell des Tenants muss die Projektion im Wizard angepasst werden, sonst gehen die Daten verloren!</bpmn2:text>
</bpmn2:textAnnotation>
<bpmn2:association id="Association_0olvrs4" sourceRef="Event_0wqvypp" targetRef="TextAnnotation_1g13zn3" />
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_0oahy0i">
<bpmndi:BPMNShape id="Participant_19lpjee_di" bpmnElement="Participant_19lpjee" isHorizontal="true">
<dc:Bounds x="280" y="30" width="1890" height="590" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0wqvypp_di" bpmnElement="Event_0wqvypp">
<dc:Bounds x="362" y="322" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0n7lm40" bpmnElement="Activity_13oiped">
<dc:Bounds x="540" y="300" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0rtv8ew" bpmnElement="Gateway_03qib89" isMarkerVisible="true">
<dc:Bounds x="705" y="315" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1ho1j80_di" bpmnElement="Event_1ho1j80">
<dc:Bounds x="442" y="322" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="423" y="298" width="74" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0abt8ww_di" bpmnElement="Event_0abt8ww">
<dc:Bounds x="1932" y="322" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_03m4l55" bpmnElement="Event_1mq528l">
<dc:Bounds x="1712" y="182" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1686" y="145" width="90" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1rke7se_di" bpmnElement="Gateway_1rke7se" isMarkerVisible="true">
<dc:Bounds x="1785" y="315" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0sc2dsp" bpmnElement="Event_0s9giax">
<dc:Bounds x="1712" y="462" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1708" y="508" width="53" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1rz5beu" bpmnElement="Activity_0hm7y70">
<dc:Bounds x="1550" y="160" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_07xrcwq" bpmnElement="Activity_18fmt0v">
<dc:Bounds x="1400" y="160" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0m7suee" bpmnElement="Activity_0nfyr4o" bioc:stroke="rgb(67, 160, 71)" bioc:fill="rgb(200, 230, 201)">
<dc:Bounds x="1240" y="160" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1h2zzis_di" bpmnElement="Gateway_1h2zzis" isMarkerVisible="true">
<dc:Bounds x="1095" y="175" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0ed4mde_di" bpmnElement="Activity_07x0r4f">
<dc:Bounds x="920" y="160" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_12ln7jv" bpmnElement="Event_0gz9dof">
<dc:Bounds x="812" y="182" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="793" y="228" width="87" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="TextAnnotation_0ew9not_di" bpmnElement="TextAnnotation_0ew9not">
<dc:Bounds x="410" y="160" width="100" height="30" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="TextAnnotation_1g13zn3_di" bpmnElement="TextAnnotation_1g13zn3">
<dc:Bounds x="360" y="462" width="280" height="58" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1a8vxf0_di" bpmnElement="Flow_1a8vxf0">
<di:waypoint x="398" y="340" />
<di:waypoint x="442" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0oc7f69_di" bpmnElement="Flow_0oc7f69">
<di:waypoint x="478" y="340" />
<di:waypoint x="540" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_04k00j1_di" bpmnElement="Flow_04k00j1">
<di:waypoint x="1835" y="340" />
<di:waypoint x="1932" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_0hx68qr" bpmnElement="Flow_0kcmdp7">
<di:waypoint x="640" y="340" />
<di:waypoint x="705" y="340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_1wv0zdv" bpmnElement="Flow_0a1iw3h">
<di:waypoint x="730" y="365" />
<di:waypoint x="730" y="480" />
<di:waypoint x="1712" y="480" />
<bpmndi:BPMNLabel>
<dc:Bounds x="752" y="493" width="35" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_12w5zpl" bpmnElement="Flow_029ur97">
<di:waypoint x="730" y="315" />
<di:waypoint x="730" y="200" />
<di:waypoint x="812" y="200" />
<bpmndi:BPMNLabel>
<dc:Bounds x="763" y="173" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0h2salf_di" bpmnElement="Flow_0h2salf">
<di:waypoint x="848" y="200" />
<di:waypoint x="920" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1j8nnwn_di" bpmnElement="Flow_1j8nnwn">
<di:waypoint x="1650" y="200" />
<di:waypoint x="1712" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_03qvqdv_di" bpmnElement="Flow_03qvqdv">
<di:waypoint x="1748" y="200" />
<di:waypoint x="1810" y="200" />
<di:waypoint x="1810" y="315" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_1ecjvgg" bpmnElement="Flow_04lmj9g">
<di:waypoint x="1748" y="480" />
<di:waypoint x="1810" y="480" />
<di:waypoint x="1810" y="365" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_19apghu_di" bpmnElement="Flow_19apghu">
<di:waypoint x="1340" y="200" />
<di:waypoint x="1400" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1vkbt5o_di" bpmnElement="Flow_1vkbt5o">
<di:waypoint x="1500" y="200" />
<di:waypoint x="1550" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1czdw49_di" bpmnElement="Flow_1czdw49">
<di:waypoint x="1020" y="200" />
<di:waypoint x="1095" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_17n4rbv_di" bpmnElement="Flow_17n4rbv">
<di:waypoint x="1145" y="200" />
<di:waypoint x="1240" y="200" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1185" y="182" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1wpzyq7_di" bpmnElement="Flow_1wpzyq7">
<di:waypoint x="1120" y="175" />
<di:waypoint x="1120" y="80" />
<di:waypoint x="590" y="80" />
<di:waypoint x="590" y="300" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1052" y="53" width="35" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Association_0fzzu7g_di" bpmnElement="Association_0fzzu7g">
<di:waypoint x="558" y="300" />
<di:waypoint x="472" y="190" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Association_0olvrs4_di" bpmnElement="Association_0olvrs4">
<di:waypoint x="384" y="357" />
<di:waypoint x="408" y="462" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>

@ -0,0 +1,276 @@
<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:bioc="http://bpmn.io/schema/bpmn/biocolor/1.0" id="sample-diagram" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.9.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
<bpmn2:signal id="Signal_1rr7wdd" name="Signal_05vo0km" />
<bpmn2:collaboration id="Collaboration_0oahy0i">
<bpmn2:participant id="Participant_19lpjee" name="Edit Tenant" processRef="tenant-edit" />
</bpmn2:collaboration>
<bpmn2:process id="tenant-edit" name="Edit Tenant" isExecutable="true" camunda:candidateStarterGroups="tenant-edit">
<bpmn2:startEvent id="Event_0wqvypp" camunda:formKey="tenant-select-wizard">
<bpmn2:outgoing>Flow_1a8vxf0</bpmn2:outgoing>
</bpmn2:startEvent>
<bpmn2:intermediateThrowEvent id="Event_1ho1j80" name="set state &#34;new&#34;" camunda:asyncAfter="true">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${10}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">new</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1a8vxf0</bpmn2:incoming>
<bpmn2:outgoing>Flow_0oc7f69</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:sequenceFlow id="Flow_1a8vxf0" sourceRef="Event_0wqvypp" targetRef="Event_1ho1j80" />
<bpmn2:sequenceFlow id="Flow_0oc7f69" sourceRef="Event_1ho1j80" targetRef="Activity_1xhfee5" />
<bpmn2:sequenceFlow id="Flow_080k63h" sourceRef="Activity_1xhfee5" targetRef="ExclusiveGateway_17rfq4o" />
<bpmn2:sequenceFlow id="Flow_1itjvyi" name="Cancel" sourceRef="ExclusiveGateway_17rfq4o" targetRef="Activity_0wrx5sv">
<bpmn2:extensionElements>
<camunda:properties>
<camunda:property name="discard_form_changes" value="true" />
<camunda:property name="validate_form" value="false" />
<camunda:property name="variant" value="secondary" />
</camunda:properties>
</bpmn2:extensionElements>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="Flow_0jqgye3" name="Save" sourceRef="ExclusiveGateway_17rfq4o" targetRef="Event_0gz9dof" />
<bpmn2:sequenceFlow id="Flow_0h2salf" sourceRef="Event_0gz9dof" targetRef="Activity_0nfyr4o" />
<bpmn2:sequenceFlow id="Flow_19apghu" sourceRef="Activity_0nfyr4o" targetRef="Activity_0il62ix" />
<bpmn2:sequenceFlow id="Flow_1vkbt5o" sourceRef="Activity_0il62ix" targetRef="Activity_0hm7y70" />
<bpmn2:sequenceFlow id="Flow_1dzhr2w" sourceRef="Gateway_1rke7se" targetRef="Event_1vlkq00" />
<bpmn2:sequenceFlow id="Flow_03qvqdv" sourceRef="Event_1mq528l" targetRef="Gateway_1rke7se" />
<bpmn2:sequenceFlow id="Flow_0ufs5lg" sourceRef="Event_1l1qtec" targetRef="Gateway_1rke7se" />
<bpmn2:sequenceFlow id="Flow_1j8nnwn" sourceRef="Activity_0hm7y70" targetRef="Event_1mq528l" />
<bpmn2:sequenceFlow id="Flow_1t62ed0" sourceRef="Activity_0wrx5sv" targetRef="Event_1l1qtec" />
<bpmn2:userTask id="Activity_1xhfee5" name="Edit tenant" camunda:candidateGroups="user">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:inputParameter name="former_admin_email">${tenant.admin.email}</camunda:inputParameter>
<camunda:outputParameter name="former_admin_email">${former_admin_email}</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_0oc7f69</bpmn2:incoming>
<bpmn2:outgoing>Flow_080k63h</bpmn2:outgoing>
</bpmn2:userTask>
<bpmn2:exclusiveGateway id="ExclusiveGateway_17rfq4o">
<bpmn2:incoming>Flow_080k63h</bpmn2:incoming>
<bpmn2:outgoing>Flow_1itjvyi</bpmn2:outgoing>
<bpmn2:outgoing>Flow_0jqgye3</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:intermediateThrowEvent id="Event_0gz9dof" name="set state &#34;saving&#34;" camunda:asyncAfter="true">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${10}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">saving</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_0jqgye3</bpmn2:incoming>
<bpmn2:outgoing>Flow_0h2salf</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:serviceTask id="Activity_0il62ix" name="Save tenant" camunda:delegateExpression="${dataEntity.save(&#39;tenant&#39;, &#39;tenant&#39;)}">
<bpmn2:extensionElements>
<camunda:inputOutput />
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_19apghu</bpmn2:incoming>
<bpmn2:outgoing>Flow_1vkbt5o</bpmn2:outgoing>
</bpmn2:serviceTask>
<bpmn2:endEvent id="Event_1vlkq00">
<bpmn2:incoming>Flow_1dzhr2w</bpmn2:incoming>
</bpmn2:endEvent>
<bpmn2:intermediateThrowEvent id="Event_1mq528l" name="set state &#34;edited&#34;" camunda:asyncAfter="true">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${100}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">saved</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1j8nnwn</bpmn2:incoming>
<bpmn2:outgoing>Flow_03qvqdv</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:exclusiveGateway id="Gateway_1rke7se">
<bpmn2:incoming>Flow_03qvqdv</bpmn2:incoming>
<bpmn2:incoming>Flow_0ufs5lg</bpmn2:incoming>
<bpmn2:outgoing>Flow_1dzhr2w</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:intermediateThrowEvent id="Event_1l1qtec" name="set state &#34;canceled&#34;" camunda:asyncAfter="true">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${101}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">canceled</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1t62ed0</bpmn2:incoming>
<bpmn2:outgoing>Flow_0ufs5lg</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:callActivity id="Activity_0nfyr4o" name="sma-mgmt-act pmci-tenant-create" calledElement="smardigo-management-action">
<bpmn2:extensionElements>
<camunda:in businessKey="#{execution.processBusinessKey}" />
<camunda:in sourceExpression="pmci-empty-playbook" target="smardigoManagementAction" />
<camunda:in sourceExpression="Realm/Clients erstellen" target="comment" />
<camunda:inputOutput />
<camunda:in variables="all" />
<camunda:in sourceExpression="teams" target="teamsChannelUrl" />
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_0h2salf</bpmn2:incoming>
<bpmn2:outgoing>Flow_19apghu</bpmn2:outgoing>
</bpmn2:callActivity>
<bpmn2:serviceTask id="Activity_0hm7y70" name="Send mail to creation_user, tenant-admin, former_admin_email" camunda:type="external" camunda:topic="send-mail">
<bpmn2:extensionElements>
<camunda:properties>
<camunda:property name="maxRetries" value="10" />
</camunda:properties>
<camunda:inputOutput>
<camunda:inputParameter name="toGroups" />
<camunda:inputParameter name="to">${tenant.admin.email},${former_admin_email}</camunda:inputParameter>
<camunda:inputParameter name="toUsers" />
<camunda:inputParameter name="subject">Tenant editiert</camunda:inputParameter>
<camunda:inputParameter name="messageBody">template(tenant-edited)</camunda:inputParameter>
<camunda:inputParameter name="ccUsers">${creation_user_id}</camunda:inputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1vkbt5o</bpmn2:incoming>
<bpmn2:outgoing>Flow_1j8nnwn</bpmn2:outgoing>
</bpmn2:serviceTask>
<bpmn2:serviceTask id="Activity_0wrx5sv" name="Restore tenant in instance" camunda:delegateExpression="${dataEntity.read(&#39;tenant&#39;, &#39;myTenant&#39;, tenant.id)}">
<bpmn2:extensionElements>
<camunda:inputOutput />
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1itjvyi</bpmn2:incoming>
<bpmn2:outgoing>Flow_1t62ed0</bpmn2:outgoing>
</bpmn2:serviceTask>
<bpmn2:textAnnotation id="TextAnnotation_04wr5ba">
<bpmn2:text>ACHTUNG: Ändert sich das Datenmodell des Tenants muss die Projektion im Wizard angepasst werden, sonst gehen die Daten verloren!</bpmn2:text>
</bpmn2:textAnnotation>
<bpmn2:association id="Association_1lit514" sourceRef="Event_0wqvypp" targetRef="TextAnnotation_04wr5ba" />
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_0oahy0i">
<bpmndi:BPMNShape id="Participant_19lpjee_di" bpmnElement="Participant_19lpjee" isHorizontal="true">
<dc:Bounds x="280" y="30" width="1448" height="580" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="TextAnnotation_04wr5ba_di" bpmnElement="TextAnnotation_04wr5ba">
<dc:Bounds x="350" y="180" width="270" height="85" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_06zkhbt" bpmnElement="Event_0wqvypp">
<dc:Bounds x="342" y="302" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0xgyc8y" bpmnElement="Event_1ho1j80">
<dc:Bounds x="452" y="302" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="435" y="348" width="74" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0n7lm40" bpmnElement="Activity_1xhfee5">
<dc:Bounds x="520" y="280" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0rtv8ew" bpmnElement="ExclusiveGateway_17rfq4o" isMarkerVisible="true">
<dc:Bounds x="685" y="295" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_12ln7jv" bpmnElement="Event_0gz9dof">
<dc:Bounds x="792" y="162" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="773" y="208" width="86" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1tb5nfy" bpmnElement="Activity_0il62ix">
<dc:Bounds x="1080" y="140" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1vlkq00_di" bpmnElement="Event_1vlkq00">
<dc:Bounds x="1592" y="302" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_03m4l55" bpmnElement="Event_1mq528l">
<dc:Bounds x="1392" y="162" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1369" y="125" width="84" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1rke7se_di" bpmnElement="Gateway_1rke7se" isMarkerVisible="true">
<dc:Bounds x="1465" y="295" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0sc2dsp" bpmnElement="Event_1l1qtec">
<dc:Bounds x="1392" y="442" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1388" y="488" width="53" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0m7suee" bpmnElement="Activity_0nfyr4o" bioc:stroke="rgb(67, 160, 71)" bioc:fill="rgb(200, 230, 201)">
<dc:Bounds x="920" y="140" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1rz5beu" bpmnElement="Activity_0hm7y70">
<dc:Bounds x="1230" y="140" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1poz0rf_di" bpmnElement="Activity_0wrx5sv">
<dc:Bounds x="1080" y="420" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Association_1lit514_di" bpmnElement="Association_1lit514">
<di:waypoint x="365" y="303" />
<di:waypoint x="377" y="265" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_0imsvl4" bpmnElement="Flow_1a8vxf0">
<di:waypoint x="378" y="320" />
<di:waypoint x="452" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_0y5z0at" bpmnElement="Flow_0oc7f69">
<di:waypoint x="488" y="320" />
<di:waypoint x="520" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_0hx68qr" bpmnElement="Flow_080k63h">
<di:waypoint x="620" y="320" />
<di:waypoint x="685" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_1wv0zdv" bpmnElement="Flow_1itjvyi">
<di:waypoint x="710" y="345" />
<di:waypoint x="710" y="460" />
<di:waypoint x="1080" y="460" />
<bpmndi:BPMNLabel>
<dc:Bounds x="776" y="433" width="35" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_12w5zpl" bpmnElement="Flow_0jqgye3">
<di:waypoint x="710" y="295" />
<di:waypoint x="710" y="180" />
<di:waypoint x="792" y="180" />
<bpmndi:BPMNLabel>
<dc:Bounds x="737" y="153" width="26" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0h2salf_di" bpmnElement="Flow_0h2salf">
<di:waypoint x="828" y="180" />
<di:waypoint x="920" y="180" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_19apghu_di" bpmnElement="Flow_19apghu">
<di:waypoint x="1020" y="180" />
<di:waypoint x="1080" y="180" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1vkbt5o_di" bpmnElement="Flow_1vkbt5o">
<di:waypoint x="1180" y="180" />
<di:waypoint x="1230" y="180" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1dzhr2w_di" bpmnElement="Flow_1dzhr2w">
<di:waypoint x="1515" y="320" />
<di:waypoint x="1592" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_03qvqdv_di" bpmnElement="Flow_03qvqdv">
<di:waypoint x="1428" y="180" />
<di:waypoint x="1490" y="180" />
<di:waypoint x="1490" y="295" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_1ecjvgg" bpmnElement="Flow_0ufs5lg">
<di:waypoint x="1428" y="460" />
<di:waypoint x="1490" y="460" />
<di:waypoint x="1490" y="345" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1j8nnwn_di" bpmnElement="Flow_1j8nnwn">
<di:waypoint x="1330" y="180" />
<di:waypoint x="1392" y="180" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1t62ed0_di" bpmnElement="Flow_1t62ed0">
<di:waypoint x="1180" y="460" />
<di:waypoint x="1392" y="460" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>

@ -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"
} ]
}

@ -0,0 +1 @@
processes.byId(contextScopeId, contextProcessId).createComment(comment + ' beendet')

@ -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 <<EOT >> ' + 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

@ -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

@ -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

@ -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

@ -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;
Loading…
Cancel
Save