diff --git a/pmci-callback.yml b/pmci-callback.yml index 6f32232..0f010e1 100644 --- a/pmci-callback.yml +++ b/pmci-callback.yml @@ -1,81 +1,9 @@ --- # Parameters: -# playbook inventory -# stage := the name of the stage (e.g. dev, int, qa, prod) -# tenant := object with tenant related data -# key := -# name := -# cluster := object with cluster specific data (optional) -# ... -# data := object with action specific data (optional) -# ... -# smardigo message callback -# scope_id := (scope id of the management process) -# process_instance_id := (process instance id of the management process) -# smardigo_management_action := (smardigo management action anme of the management process) - -############################################################# -# Creating inventory dynamically for given parameters -############################################################# - -- hosts: localhost - gather_facts: false - connection: local - - pre_tasks: - - name: "Print given variables " - debug: - msg: "{{ cluster }}" - become: false - when: - - cluster is defined - - name: "Print given variables " - debug: - msg: "{{ data }}" - become: false - when: - - data is defined - - - name: "Check if ansible version is at least 2.10.x" - assert: - that: - - ansible_version.major >= 2 - - ansible_version.minor >= 10 - msg: "The ansible version has to be at least ({{ ansible_version.full }})" -# add virtual server to load stage specific variables as context - - name: "Add <{{ stage }}-virtual-host-to-read-groups-vars> to hosts" - add_host: - name: "{{ stage }}-virtual-host-to-read-groups-vars" - groups: - - "stage_{{ stage }}" - changed_when: False - - tasks: - - name: Add hosts - add_host: - name: "{{ stage }}-{{ tenant.key }}-{{ cluster.key }}-{{ '%02d' | format(item|int) }}" - groups: "{{ ['stage_' + stage ] + [cluster.service] + cluster.features }}" - with_sequence: start=1 end={{ cluster.size | default(1) }} - changed_when: False - when: - - cluster is defined - -############################################################# -# -############################################################# - -- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars" - serial: "{{ serial_number | default(1) }}" - gather_facts: false - connection: local - - pre_tasks: - - name: "Import autodiscover pre-tasks" - import_tasks: tasks/autodiscover_pre_tasks.yml - become: false - tags: - - always +# scope_id := (scope id of the management process) +# process_instance_id := (process instance id of the management process) +# smardigo_management_action := (smardigo management action anme of the management process) ############################################################# # Sending smardigo management message to process diff --git a/pmci-empty-playbook.yml b/pmci-empty-playbook.yml new file mode 100644 index 0000000..06b1288 --- /dev/null +++ b/pmci-empty-playbook.yml @@ -0,0 +1,46 @@ +--- + +# Parameters: +# playbook inventory +# stage := the name of the stage (e.g. dev, int, qa, prod) +# tenant := object with tenant related data +# key := +# name := +# cluster := object with cluster specific data (optional) +# ... +# data := object with action specific data (optional) +# ... +# smardigo message callback +# scope_id := (scope id of the management process) +# process_instance_id := (process instance id of the management process) +# smardigo_management_action := (smardigo management action anme of the management process) + +############################################################# +# Creating inventory dynamically for given parameters +############################################################# + +- import_playbook: pmci-inventory-cluster.yml + +############################################################# +# Running the PMCI roles +############################################################# + +- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars" + serial: "{{ serial_number | default(1) }}" + gather_facts: false + connection: local + + pre_tasks: + - name: "Import autodiscover pre-tasks" + import_tasks: tasks/autodiscover_pre_tasks.yml + become: false + tags: + - always + + roles: + +############################################################# +# Sending smardigo management message to process +############################################################# + +- import_playbook: pmci-callback.yml diff --git a/pmci-inventory-cluster.yml b/pmci-inventory-cluster.yml new file mode 100644 index 0000000..c1c6f8b --- /dev/null +++ b/pmci-inventory-cluster.yml @@ -0,0 +1,58 @@ +--- + +# Parameters: +# playbook inventory +# stage := the name of the stage (e.g. dev, int, qa, prod) +# tenant := object with tenant related data +# key := +# name := +# cluster := object with cluster specific data (optional) +# ... +# data := object with action specific data (optional) +# ... + +############################################################# +# Creating inventory dynamically for given cluster +############################################################# + +- hosts: localhost + gather_facts: false + connection: local + + pre_tasks: + - name: "Print given variables " + debug: + msg: "{{ cluster }}" + become: false + when: + - cluster is defined + - name: "Print given variables " + debug: + msg: "{{ data }}" + become: false + when: + - data is defined + + - name: "Check if ansible version is at least 2.10.x" + assert: + that: + - ansible_version.major >= 2 + - ansible_version.minor >= 10 + msg: "The ansible version has to be at least ({{ ansible_version.full }})" +# add virtual server to load stage specific variables as context + - name: "Add <{{ stage }}-virtual-host-to-read-groups-vars> to hosts" + add_host: + name: "{{ stage }}-virtual-host-to-read-groups-vars" + groups: + - "stage_{{ stage }}" + changed_when: False + + tasks: + - name: "Add hosts for given cluster" + add_host: + name: "{{ stage }}-{{ tenant.key }}-{{ cluster.key }}-{{ '%02d' | format(item|int) }}" + groups: "{{ ['stage_' + stage ] + [cluster.service] + cluster.features }}" + with_sequence: start=1 end={{ cluster.size | default(1) }} + changed_when: False + when: + - cluster is defined diff --git a/roles/kubernetes/awx/defaults/main.yml b/roles/kubernetes/awx/defaults/main.yml index c366d7f..22886f9 100644 --- a/roles/kubernetes/awx/defaults/main.yml +++ b/roles/kubernetes/awx/defaults/main.yml @@ -8,6 +8,7 @@ awx_ansible_password: ansible # plz move it so separate DIR and do a lookup for all file in $DIR # not doing it right now due avoiding breaking change within awx_job_templates: + - name: "pmci-empty-playbook" - name: "create-database" - name: "create-database-backup" - name: "create-kibana-objects" @@ -16,7 +17,6 @@ awx_job_templates: - name: "create-server" - name: "create-service" - name: "import-database" - - name: "pmci-callback" - name: "remove-database" - name: "remove-realm" - name: "remove-server" diff --git a/smardigo/pmci/app/process.json b/smardigo/pmci/app/process.json new file mode 100644 index 0000000..f440734 --- /dev/null +++ b/smardigo/pmci/app/process.json @@ -0,0 +1,73 @@ +{ + "configType" : "process", + "configKey" : "process", + "name" : "PMCI", + "imageUrl" : "data:image/png;base64,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", + "description" : "pmci-template", + "menuItems" : [ { + "name" : "Tenant Management", + "tabName" : "Tenant Management", + "logoId" : "groups", + "configKey" : "tenant-management", + "configType" : "datasource-action", + "items" : [ ], + "groups" : [ ], + "additionalProperties" : null + }, { + "name" : "Tenant Events", + "tabName" : "Tenant Events", + "logoId" : "recent_actors", + "configKey" : null, + "configType" : "process-search", + "processDefinitionKey" : "tenant-events", + "processDefinitionKeys" : [ "tenant-create", "tenant-edit", "tenant-delete" ], + "items" : [ ], + "groups" : [ ], + "additionalProperties" : null + }, { + "name" : "Create Tenants", + "tabName" : "Create Tenants", + "logoId" : "person_add", + "configKey" : null, + "configType" : "process-search", + "processDefinitionKey" : "tenant-create", + "processDefinitionKeys" : [ "tenant-create" ], + "items" : [ ], + "groups" : [ ], + "additionalProperties" : null + }, { + "name" : "Edit Tenants", + "tabName" : "Edit Tenants", + "logoId" : "engineering", + "configKey" : null, + "configType" : "process-search", + "processDefinitionKey" : "tenant-edit", + "processDefinitionKeys" : [ "tenant-edit" ], + "items" : [ ], + "groups" : [ ], + "additionalProperties" : null + }, { + "name" : "Delete Tenants", + "tabName" : "Delete Tenants", + "logoId" : "person_remove", + "configKey" : null, + "configType" : "process-search", + "processDefinitionKey" : "tenant-delete", + "processDefinitionKeys" : [ "tenant-delete" ], + "items" : [ ], + "groups" : [ ], + "additionalProperties" : null + }, { + "name" : "Vorfälle", + "tabName" : "Vorfälle", + "logoId" : "report", + "configKey" : null, + "configType" : "incidents", + "items" : [ ], + "groups" : [ ], + "additionalProperties" : { + "showAllScopes" : false + } + } ], + "allowScopeToBeUsedAsReference" : false +} \ No newline at end of file diff --git a/smardigo/pmci/datasource-action/tenant-management.json b/smardigo/pmci/datasource-action/tenant-management.json new file mode 100644 index 0000000..caea0e0 --- /dev/null +++ b/smardigo/pmci/datasource-action/tenant-management.json @@ -0,0 +1,40 @@ +{ + "name" : "Tenant Management", + "configType" : "datasource-action", + "configKey" : "tenant-management", + "datasource" : { + "key" : "data-entity-tenants" + }, + "columns" : [ { + "key" : "id", + "name" : "ID", + "width" : 100 + }, { + "key" : "name", + "name" : "Name", + "width" : 200 + }, { + "key" : "key", + "name" : "Key", + "width" : 100 + } ], + "actions" : [ { + "icon" : "add_circle", + "name" : "Create New Tenant", + "searchKey": "tenant-events", + "processDefinitionKey" : "tenant-create" + } ], + "rowActions" : [ { + "icon" : "edit", + "name" : "Edit Tenant", + "searchKey": "tenant-events", + "processDefinitionKey" : "tenant-edit", + "variable" : "tenant" + }, { + "icon" : "delete", + "name" : "Delete Tenant", + "searchKey": "tenant-events", + "processDefinitionKey" : "tenant-delete", + "variable" : "tenant" + } ] +} \ No newline at end of file diff --git a/smardigo/pmci/datasource/awx-job-plain.json b/smardigo/pmci/datasource/awx-job-plain.json new file mode 100644 index 0000000..323f4f6 --- /dev/null +++ b/smardigo/pmci/datasource/awx-job-plain.json @@ -0,0 +1,23 @@ +{ + "name": "awx-job-plain", + "restApi": true, + "configKey": "awx-job-plain", + "payloadType": "REST", + "config": [ + { + "name": "connection", + "type": "CONNECTION", + "value": "awx" + }, + { + "name": "resource", + "type": "STRING", + "value": "api/v2/jobs/${id}/" + }, + { + "name": "sqlStatement", + "type": "STRING", + "value": "SELECT status,failed,started,finished,name,description FROM default_table" + } + ] +} diff --git a/smardigo/pmci/datasource/awx-job-templates-plain.json b/smardigo/pmci/datasource/awx-job-templates-plain.json new file mode 100644 index 0000000..6436fe3 --- /dev/null +++ b/smardigo/pmci/datasource/awx-job-templates-plain.json @@ -0,0 +1,23 @@ +{ + "name": "awx-job-templates-plain", + "restApi": true, + "configKey": "awx-job-templates-plain", + "payloadType": "REST", + "config": [ + { + "name": "connection", + "type": "CONNECTION", + "value": "awx" + }, + { + "name": "resource", + "type": "STRING", + "value": "api/v2/job_templates?search=${name}" + }, + { + "name": "sqlStatement", + "type": "STRING", + "value": "SELECT results FROM default_table" + } + ] +} diff --git a/smardigo/pmci/datasource/awx-job-templates.json b/smardigo/pmci/datasource/awx-job-templates.json new file mode 100644 index 0000000..2dbef9f --- /dev/null +++ b/smardigo/pmci/datasource/awx-job-templates.json @@ -0,0 +1,18 @@ +{ + "name": "awx-job-templates", + "restApi": true, + "configKey": "awx-job-templates", + "payloadType": "POST_PROCESSING", + "config": [ + { + "name": "datasource_key", + "type": "STRING", + "value": "awx-job-templates-plain" + }, + { + "name": "groovy_script", + "type": "STRING", + "value": "def result = []\ndata.each{templates ->\n templates.results.each{ template ->\n if (parameters['name'] == template.name) {\n result.add([id: template.id, name: template.name])\n }\n }\n}\nresult" + } + ] +} diff --git a/smardigo/pmci/datasource/data-entity-tenants-filtered.json b/smardigo/pmci/datasource/data-entity-tenants-filtered.json new file mode 100644 index 0000000..24cd3c2 --- /dev/null +++ b/smardigo/pmci/datasource/data-entity-tenants-filtered.json @@ -0,0 +1,18 @@ +{ + "name": "data-entity-tenants-filtered", + "restApi": true, + "configKey": "data-entity-tenants-filtered", + "payloadType": "POST_PROCESSING", + "config": [ + { + "name": "datasource_key", + "type": "STRING", + "value": "data-entity-tenants" + }, + { + "name": "groovy_script", + "type": "STRING", + "value": "def result = []\ndata.each{tenant ->\n if (tenant.user_ids.contains(parameters['user_id'])) {\n result.add(tenant)\n }\n}\nresult" + } + ] +} diff --git a/smardigo/pmci/datasource/data-entity-tenants.json b/smardigo/pmci/datasource/data-entity-tenants.json new file mode 100644 index 0000000..e113a25 --- /dev/null +++ b/smardigo/pmci/datasource/data-entity-tenants.json @@ -0,0 +1,21 @@ +{ + "configKey": "data-entity-tenants", + "name": "data-entity-tenants", + "payloadType": "ENTITY", + "config": [ + { + "name": "entityId", + "type": "STRING", + "value": "tenant" + }, + { + "name": "propertyFilterKey", + "type": "STRING" + }, + { + "name": "propertyFilterValue", + "type": "STRING" + } + ], + "restApi": true +} diff --git a/smardigo/pmci/form/attachments.json b/smardigo/pmci/form/attachments.json new file mode 100644 index 0000000..4d981bf --- /dev/null +++ b/smardigo/pmci/form/attachments.json @@ -0,0 +1,87 @@ +{ + "name" : "Anhänge", + "configKey" : "attachments", + "page" : 0, + "components" : [ { + "dropzoneConfig" : { + "maxFilesize" : "10", + "dictDefaultMessage" : "Dateien zum Anhängen/Hochladen ablegen oder durchsuchen", + "dictHelpText" : "Maximale Dateigröße: {{config.maxFilesize}}MB. Akzeptierte Dateitypen: Office-Dokumente und Bilder.", + "acceptedFiles" : ".pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, image/*, .csv, .xml, .txt", + "paramName" : "content", + "url" : "api/scope/{{context.scopeId}}/process/{{context.processId}}/attachment" + }, + "columns" : [ { + "name" : "Name", + "property" : "name", + "value" : "", + "type" : "filename", + "width" : "20%" + }, { + "name" : "Erstellt am", + "property" : "creationDate", + "type" : "date", + "value" : "{{moment(creationDate).format('DD.MM.YYYY HH:mm:ss')}}", + "width" : "80%" + } ], + "label" : "Anlagen", + "deleteUrl" : "api/scope/{{context.scopeId}}/process/{{context.processId}}/attachment/{{attachmentId}}", + "downloadUrl" : "api/scope/{{context.scopeId}}/process/{{context.processId}}/attachment-data/{{attachmentId}}", + "resolveUserDataURL" : "api/scope/{{context.scopeId}}/process/{{context.processId}}/users?id.equals={{userId}}", + "csrfCookiePath" : "XSRF-TOKEN", + "taggingExpression" : "", + "button" : { + "iconOnly" : true, + "removeVisibleWhen" : "return false;", + "showVersion" : false, + "showOnlyCurrentVersion" : false, + "showCheckboxCurrentVersion" : false + }, + "mask" : false, + "tableView" : true, + "type" : "attachments", + "input" : true, + "key" : "anlagen", + "components" : [ ], + "placeholder" : "", + "prefix" : "", + "customClass" : "", + "suffix" : "", + "multiple" : false, + "defaultValue" : null, + "protected" : false, + "unique" : false, + "persistent" : true, + "hidden" : false, + "clearOnHide" : true, + "dataGridLabel" : false, + "labelPosition" : "top", + "labelWidth" : 30, + "labelMargin" : 3, + "description" : "", + "errorLabel" : "", + "tooltip" : "", + "hideLabel" : true, + "tabindex" : "", + "disabled" : false, + "autofocus" : false, + "dbIndex" : false, + "customDefaultValue" : "", + "calculateValue" : "", + "widget" : null, + "refreshOn" : "", + "clearOnRefresh" : false, + "validateOn" : "change", + "validate" : { + "required" : false, + "custom" : "", + "customPrivate" : false + }, + "conditional" : { + "show" : null, + "when" : null, + "eq" : "" + }, + "id" : "e9zp29e" + } ] +} \ No newline at end of file diff --git a/smardigo/pmci/form/confirm-delete-tenant.json b/smardigo/pmci/form/confirm-delete-tenant.json new file mode 100644 index 0000000..bb3d4c2 --- /dev/null +++ b/smardigo/pmci/form/confirm-delete-tenant.json @@ -0,0 +1,37 @@ +{ + "components" : [ { + "label" : "HTML", + "className" : "", + "attrs" : [ { + "attr" : "", + "value" : "" + } ], + "content" : "Sie sind dabei den Tenant zu löschen.", + "refreshOnChange" : false, + "mask" : false, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "htmlelement", + "input" : false, + "key" : "html", + "validate" : { + "customMessage" : "", + "json" : "" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "reorder" : false, + "encrypted" : false, + "properties" : { }, + "tags" : null, + "customConditional" : "", + "logic" : [ ] + } ], + "display" : "form", + "configKey" : "confirm-delete-tenant", + "name" : "confirm-delete-tenant" +} \ No newline at end of file diff --git a/smardigo/pmci/form/cons-delete-tenant.json b/smardigo/pmci/form/cons-delete-tenant.json new file mode 100644 index 0000000..89cecd3 --- /dev/null +++ b/smardigo/pmci/form/cons-delete-tenant.json @@ -0,0 +1,37 @@ +{ + "components" : [ { + "label" : "HTML", + "className" : "", + "attrs" : [ { + "attr" : "", + "value" : "" + } ], + "content" : "Sie sind danbei den Tenant zu löschen.", + "refreshOnChange" : false, + "mask" : false, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "htmlelement", + "input" : false, + "key" : "html", + "validate" : { + "customMessage" : "", + "json" : "" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "reorder" : false, + "encrypted" : false, + "properties" : { }, + "tags" : null, + "customConditional" : "", + "logic" : [ ] + } ], + "display" : "form", + "configKey" : "cons-delete-tenant", + "name" : "cons-delete-tenant" +} \ No newline at end of file diff --git a/smardigo/pmci/form/header-left.json b/smardigo/pmci/form/header-left.json new file mode 100644 index 0000000..04210d5 --- /dev/null +++ b/smardigo/pmci/form/header-left.json @@ -0,0 +1,227 @@ +{ + "name" : "header-left", + "configKey" : "header-left", + "page" : 0, + "components" : [ { + "label" : "Columns", + "columns" : [ { + "components" : [ { + "label" : "Ersteller", + "mask" : false, + "disabled" : true, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "select", + "input" : true, + "key" : "creation_user_id", + "validate" : { + "unique" : false, + "customMessage" : "", + "json" : "", + "select" : false + }, + "data" : { + "headers" : [ { + "key" : "", + "value" : "" + } ], + "url" : "api/v1/scopes/{{context.scopeId}}/processes/{{context.processId}}/users?id.equals={{data.creation_user_id}}", + "values" : [ ] + }, + "properties" : { }, + "tags" : [ ], + "defaultValue" : "", + "dataSrc" : "url", + "lazyLoad" : false, + "valueProperty" : "id", + "selectValues" : "", + "disableLimit" : false, + "template" : "{{[item.firstName, item.lastName].filter(Boolean).join(' ')}}", + "searchEnabled" : false, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "reorder" : false, + "sort" : "", + "reference" : false, + "selectThreshold" : 0.3, + "encrypted" : false, + "customConditional" : "", + "logic" : [ ] + } ], + "width" : 3, + "offset" : 0, + "push" : 0, + "pull" : 0, + "type" : "column", + "input" : false, + "key" : "column1", + "tableView" : true, + "label" : "", + "hideOnChildrenHidden" : false + }, { + "components" : [ { + "label" : "Erstellt am", + "mask" : false, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "datetime", + "input" : true, + "key" : "creation_date", + "suffix" : true, + "widget" : { + "type" : "calendar", + "displayInTimezone" : "viewer", + "language" : "en", + "useLocaleSettings" : false, + "allowInput" : true, + "mode" : "single", + "enableTime" : true, + "noCalendar" : false, + "format" : "dd.MM.yyyy", + "defaultDate" : "", + "hourIncrement" : 1, + "minuteIncrement" : 1, + "time_24hr" : false, + "readOnly" : false, + "minDate" : "", + "maxDate" : "", + "icons" : "fontawesome", + "i18n" : { + "lng" : "en", + "resources" : { + "de" : { + "translation" : { + "complete" : "Eingabe vollständig", + "error" : "Bitte beheben Sie vor dem Abschicken folgende Fehler.", + "required" : "{{field}} ist ein Pflichtfeld", + "pattern" : "{{field}} entspricht nicht dem Muster {{pattern}}", + "minLength" : "{{field}} muss länger als {{length}} Zeichen sein.", + "maxLength" : "{{field}} muss kürzer als {{length}} Zeichen sein.", + "min" : "{{field}} darf nicht kleiner als {{min}} sein.", + "max" : "{{field}} darf nicht größer als {{max}} sein.", + "invalid_email" : "{{field}} ist keine valide E-Mail-Adresse.", + "invalid_regex" : "{{field}} entspricht nicht dem Muster {{regex}}.", + "invalid_date" : "{{field}} ist kein valides Datum.", + "mask" : "{{field}} entspricht nicht der Maske.", + "stripe" : "{{stripe}}", + "month" : "Monat", + "day" : "Tag", + "year" : "Jahr", + "january" : "Januar", + "february" : "Februar", + "march" : "März", + "april" : "April", + "may" : "Mai", + "june" : "Juni", + "july" : "Juli", + "august" : "August", + "september" : "September", + "october" : "Oktober", + "november" : "November", + "december" : "Dezember", + "next" : "Weiter", + "previous" : "Zurück", + "cancel" : "Abbrechen", + "submit" : "Vorgang starten", + "dualMultiselect_filterPlaceholder" : "Tippen um zu filtern.", + "dualMultiselect_labelAll" : "Alle Werte", + "dualMultiselect_labelSelected" : "Ausgewählte Werte", + "dualMultiselect_buttonSelectAll" : "Alle auswählen", + "dualMultiselect_buttonDeselectAll" : "Alle abwählen", + "listSelection_buttonSelectAriaLabel" : "Eintrag Auswählen", + "mapView_zoomInButton" : "Vergrößern", + "mapView_zoomOutButton" : "Verkleinern", + "selectComponent_searchPlaceholder" : "Tippe um zu Suchen", + "selectComponent_noChoicesText" : "Keine Elemente zur Auswahl", + "selectComponent_noResultsText" : "Keine Ergebnisse gefunden" + } + } + } + } + }, + "defaultValue" : "", + "timePicker" : { + "showMeridian" : true + }, + "validate" : { + "customMessage" : "", + "json" : "" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "datePicker" : { + "minDate" : "", + "maxDate" : "" + }, + "tabs" : null, + "reorder" : false, + "encrypted" : false, + "properties" : { }, + "tags" : null, + "customConditional" : "", + "logic" : [ ] + } ], + "width" : 3, + "offset" : 0, + "push" : 0, + "pull" : 0, + "type" : "column", + "input" : false, + "key" : "column2", + "tableView" : true, + "label" : "", + "hideOnChildrenHidden" : false + }, { + "width" : 3, + "offset" : 0, + "push" : 0, + "pull" : 0, + "type" : "column", + "input" : false, + "hideOnChildrenHidden" : false, + "key" : "column", + "tableView" : true, + "label" : "Column", + "components" : [ ] + }, { + "width" : 3, + "offset" : 0, + "push" : 0, + "pull" : 0, + "type" : "column", + "input" : false, + "hideOnChildrenHidden" : false, + "key" : "column", + "tableView" : true, + "label" : "Column", + "components" : [ ] + } ], + "mask" : false, + "tableView" : false, + "alwaysEnabled" : false, + "type" : "columns", + "input" : false, + "tags" : [ ], + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "properties" : { + "" : "" + }, + "key" : "columns", + "tabs" : null, + "customConditional" : "", + "logic" : [ ], + "reorder" : false + } ], + "display" : "form" +} \ No newline at end of file diff --git a/smardigo/pmci/form/header-right.json b/smardigo/pmci/form/header-right.json new file mode 100644 index 0000000..e2d6fca --- /dev/null +++ b/smardigo/pmci/form/header-right.json @@ -0,0 +1,45 @@ +{ + "name" : "header-right", + "configKey" : "header-right", + "page" : 0, + "components" : [ { + "label" : "Status", + "allowMultipleMasks" : false, + "persistent" : false, + "showWordCount" : false, + "showCharCount" : false, + "clearOnHide" : false, + "disabled" : true, + "tableView" : false, + "alwaysEnabled" : false, + "labelWidth" : 40, + "type" : "textfield", + "input" : true, + "key" : "vorgang_status_text", + "defaultValue" : "", + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tags" : [ ], + "properties" : { + "" : "" + }, + "lockKey" : true, + "validate" : { + "customMessage" : "", + "json" : "" + }, + "tabs" : null, + "widget" : { + "type" : "" + }, + "reorder" : false, + "inputFormat" : "plain", + "encrypted" : false, + "customConditional" : "", + "logic" : [ ] + } ], + "display" : "form" +} \ No newline at end of file diff --git a/smardigo/pmci/form/tenant-select-wizard.json b/smardigo/pmci/form/tenant-select-wizard.json new file mode 100644 index 0000000..f0d7814 --- /dev/null +++ b/smardigo/pmci/form/tenant-select-wizard.json @@ -0,0 +1,109 @@ +{ + "display" : "wizard", + "page" : 0, + "numPages" : 1, + "components" : [ { + "title" : "Page 1", + "label" : "Page 1", + "type" : "panel", + "key" : "page1", + "input" : false, + "tableView" : false, + "components" : [ { + "label" : "Container", + "hideLabel" : true, + "mask" : false, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "container", + "input" : true, + "key" : "tenant", + "validate" : { + "customMessage" : "", + "json" : "" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "components" : [ { + "label" : "Mandant", + "customClass" : "ml-4", + "clearOnHide" : false, + "mask" : false, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "listselection", + "input" : true, + "key" : "selected_tenant", + "data" : { + "url" : "/api/v1/scopes/{{context.scopeId}}/tags/{{context.scopeTag}}/datasources/data-entity-tenants/query", + "requestBody" : "", + "values" : [ { } ], + "custom" : "" + }, + "columns" : [ { + "name" : "Name", + "prop" : "name", + "value" : "", + "width" : "", + "sortable" : true + }, { + "name" : "Schlüssel", + "prop" : "key", + "value" : "", + "width" : "", + "sortable" : true + } ], + "projection" : [ { + "key" : "id", + "prop" : "id" + }, { + "key" : "name", + "prop" : "name" + }, { + "key" : "key", + "prop" : "key" + }, { + "key" : "admin", + "prop" : "admin" + }, { + "key" : "user_ids", + "prop" : "user_ids" + } ], + "identity" : "id", + "validate" : { + "required" : true, + "unique" : false, + "customMessage" : "", + "json" : "" + }, + "properties" : { }, + "tags" : [ ], + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "customConditional" : "", + "logic" : [ ], + "tabs" : null, + "datapath" : "", + "defaultFilter" : "", + "encrypted" : false, + "reloadOnAction" : false, + "reorder" : false + } ], + "tabs" : null, + "encrypted" : false, + "properties" : { }, + "tags" : [ ], + "customConditional" : "", + "logic" : [ ], + "reorder" : false + } ] + } ], + "configKey" : "tenant-select-wizard", + "name" : "tenant-select-wizard (Achtung alle Felder herausprojezieren!)" +} \ No newline at end of file diff --git a/smardigo/pmci/form/tenant.json b/smardigo/pmci/form/tenant.json new file mode 100644 index 0000000..6c80711 --- /dev/null +++ b/smardigo/pmci/form/tenant.json @@ -0,0 +1,525 @@ +{ + "components" : [ { + "label" : "HIDDEN process_definition_key", + "allowMultipleMasks" : false, + "showWordCount" : false, + "showCharCount" : false, + "hidden" : true, + "disabled" : true, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "textfield", + "input" : true, + "key" : "process_definition_key", + "defaultValue" : "", + "validate" : { + "customMessage" : "", + "json" : "" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "properties" : { }, + "tags" : [ ], + "inputFormat" : "plain", + "encrypted" : false, + "customConditional" : "", + "logic" : [ ], + "widget" : { + "type" : "" + }, + "reorder" : false + }, { + "label" : "tenant", + "hideLabel" : true, + "mask" : false, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "container", + "input" : true, + "key" : "tenant", + "validate" : { + "customMessage" : "", + "json" : "" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "components" : [ { + "label" : "Columns", + "columns" : [ { + "components" : [ { + "label" : "Id", + "description" : "Automatisch generiert", + "allowMultipleMasks" : false, + "showWordCount" : false, + "showCharCount" : false, + "disabled" : true, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "textfield", + "input" : true, + "key" : "id", + "defaultValue" : "", + "validate" : { + "customMessage" : "", + "json" : "" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "properties" : { }, + "inputFormat" : "plain", + "encrypted" : false, + "tags" : null, + "customConditional" : "", + "logic" : [ ], + "widget" : { + "type" : "" + }, + "reorder" : false + } ], + "width" : 6, + "offset" : 0, + "push" : 0, + "pull" : 0, + "type" : "column", + "input" : false, + "hideOnChildrenHidden" : false, + "key" : "column", + "tableView" : true, + "label" : "Column" + }, { + "components" : [ ], + "width" : 6, + "offset" : 0, + "push" : 0, + "pull" : 0, + "type" : "column", + "input" : false, + "hideOnChildrenHidden" : false, + "key" : "column", + "tableView" : true, + "label" : "Column" + } ], + "mask" : false, + "tableView" : false, + "alwaysEnabled" : false, + "type" : "columns", + "input" : false, + "key" : "columns4", + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "reorder" : false, + "properties" : { }, + "tags" : null, + "customConditional" : "", + "logic" : [ ] + }, { + "label" : "Columns", + "columns" : [ { + "components" : [ { + "label" : "Name", + "allowMultipleMasks" : false, + "showWordCount" : false, + "showCharCount" : false, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "textfield", + "input" : true, + "key" : "name", + "properties" : { }, + "tags" : [ ], + "defaultValue" : "", + "validate" : { + "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 4 und höchstens 20 Zeichen", + "json" : "", + "required" : true, + "minLength" : null, + "maxLength" : null, + "minWords" : null, + "maxWords" : null, + "pattern" : "^[ a-zA-Z0-9-]{4,20}$" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "inputFormat" : "plain", + "encrypted" : false, + "customConditional" : "", + "logic" : [ ], + "widget" : { + "type" : "" + }, + "reorder" : false + } ], + "width" : 6, + "offset" : 0, + "push" : 0, + "pull" : 0, + "type" : "column", + "input" : false, + "hideOnChildrenHidden" : false, + "key" : "column", + "tableView" : true, + "label" : "Column" + }, { + "components" : [ ], + "width" : 6, + "offset" : 0, + "push" : 0, + "pull" : 0, + "type" : "column", + "input" : false, + "hideOnChildrenHidden" : false, + "key" : "column", + "tableView" : true, + "label" : "Column" + } ], + "mask" : false, + "tableView" : false, + "alwaysEnabled" : false, + "type" : "columns", + "input" : false, + "key" : "columns3", + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "reorder" : false, + "properties" : { }, + "tags" : null, + "customConditional" : "", + "logic" : [ ] + }, { + "label" : "Columns", + "columns" : [ { + "components" : [ { + "label" : "Key", + "allowMultipleMasks" : false, + "showWordCount" : false, + "showCharCount" : false, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "textfield", + "input" : true, + "key" : "key", + "defaultValue" : "", + "validate" : { + "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 4 und höchstens 10 Zeichen, alles kleingeschrieben", + "json" : "", + "required" : true, + "minLength" : null, + "maxLength" : null, + "minWords" : null, + "maxWords" : null, + "pattern" : "^[a-z]{4,10}$" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "properties" : { }, + "inputFormat" : "plain", + "encrypted" : false, + "tags" : null, + "customConditional" : "", + "logic" : [ { + "name" : "disable tenant-key", + "trigger" : { + "type" : "simple", + "simple" : { + "show" : true, + "when" : "process_definition_key", + "eq" : "tenant-edit" + } + }, + "actions" : [ { + "name" : "disable", + "type" : "property", + "property" : { + "label" : "Disabled", + "value" : "disabled", + "type" : "boolean" + }, + "state" : "true" + } ] + } ], + "widget" : { + "type" : "" + }, + "reorder" : false + } ], + "width" : 6, + "offset" : 0, + "push" : 0, + "pull" : 0, + "type" : "column", + "input" : false, + "hideOnChildrenHidden" : false, + "key" : "column", + "tableView" : true, + "label" : "Column" + }, { + "components" : [ ], + "width" : 6, + "offset" : 0, + "push" : 0, + "pull" : 0, + "type" : "column", + "input" : false, + "hideOnChildrenHidden" : false, + "key" : "column", + "tableView" : true, + "label" : "Column" + } ], + "mask" : false, + "tableView" : false, + "alwaysEnabled" : false, + "type" : "columns", + "input" : false, + "key" : "columns5", + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "reorder" : false, + "properties" : { }, + "tags" : null, + "customConditional" : "", + "logic" : [ ] + }, { + "label" : "Admin", + "mask" : false, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "container", + "input" : true, + "key" : "admin", + "validate" : { + "customMessage" : "", + "json" : "" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "components" : [ { + "label" : "Columns", + "columns" : [ { + "components" : [ { + "label" : "Email", + "tableView" : true, + "alwaysEnabled" : false, + "type" : "email", + "input" : true, + "key" : "email", + "defaultValue" : "", + "validate" : { + "customMessage" : "", + "json" : "", + "required" : true + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "encrypted" : false, + "properties" : { }, + "tags" : [ ], + "customConditional" : "", + "logic" : [ ], + "reorder" : false + }, { + "label" : "First name", + "allowMultipleMasks" : false, + "showWordCount" : false, + "showCharCount" : false, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "textfield", + "input" : true, + "key" : "first_name", + "properties" : { }, + "tags" : [ ], + "defaultValue" : "", + "validate" : { + "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 1 und höchstens 20 Zeichen", + "json" : "", + "required" : true, + "minLength" : null, + "maxLength" : null, + "minWords" : null, + "maxWords" : null, + "pattern" : "^[ a-zA-Z0-9-]{1,20}$" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "inputFormat" : "plain", + "encrypted" : false, + "customConditional" : "", + "logic" : [ ], + "widget" : { + "type" : "" + }, + "reorder" : false + }, { + "label" : "Last name", + "allowMultipleMasks" : false, + "showWordCount" : false, + "showCharCount" : false, + "tableView" : true, + "alwaysEnabled" : false, + "type" : "textfield", + "input" : true, + "key" : "last_name", + "properties" : { }, + "tags" : [ ], + "defaultValue" : "", + "validate" : { + "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 1 und höchstens 20 Zeichen", + "json" : "", + "required" : true, + "minLength" : null, + "maxLength" : null, + "minWords" : null, + "maxWords" : null, + "pattern" : "^[ a-zA-Z0-9-]{1,20}$" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "inputFormat" : "plain", + "encrypted" : false, + "customConditional" : "", + "logic" : [ ], + "widget" : { + "type" : "" + }, + "reorder" : false + } ], + "width" : 6, + "offset" : 0, + "push" : 0, + "pull" : 0, + "type" : "column", + "input" : false, + "hideOnChildrenHidden" : false, + "key" : "column", + "tableView" : true, + "label" : "Column" + }, { + "components" : [ ], + "width" : 6, + "offset" : 0, + "push" : 0, + "pull" : 0, + "type" : "column", + "input" : false, + "hideOnChildrenHidden" : false, + "key" : "column", + "tableView" : true, + "label" : "Column" + } ], + "mask" : false, + "tableView" : false, + "alwaysEnabled" : false, + "type" : "columns", + "input" : false, + "key" : "columns6", + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "tabs" : null, + "reorder" : false, + "properties" : { }, + "tags" : null, + "customConditional" : "", + "logic" : [ ] + } ], + "tabs" : null, + "properties" : { }, + "encrypted" : false, + "tags" : null, + "customConditional" : "", + "logic" : [ ], + "reorder" : false + }, { + "label" : "Benutzer", + "multiple" : true, + "reorder" : false, + "mask" : false, + "tableView" : false, + "alwaysEnabled" : false, + "type" : "dualmultiselect", + "input" : true, + "key" : "user_ids", + "defaultValue" : [ ], + "validate" : { + "required" : true, + "customMessage" : "", + "json" : "" + }, + "conditional" : { + "show" : "", + "when" : "", + "json" : "" + }, + "data" : { + "url" : "api/v1/scopes/{{context.scopeId}}/groups/workflow/members?roleIds=user", + "values" : [ { } ] + }, + "tabs" : null, + "encrypted" : false, + "properties" : { }, + "tags" : [ ], + "customConditional" : "", + "logic" : [ ], + "template" : "{{ item.id }} ({{ item.email }})", + "projection" : "id" + } ], + "tabs" : null, + "properties" : { }, + "tags" : [ ], + "encrypted" : false, + "customConditional" : "", + "logic" : [ ], + "reorder" : false + } ], + "display" : "form", + "configKey" : "tenant", + "name" : "tenant" +} \ No newline at end of file diff --git a/smardigo/pmci/layout/tenant-create.json b/smardigo/pmci/layout/tenant-create.json new file mode 100644 index 0000000..c3fb408 --- /dev/null +++ b/smardigo/pmci/layout/tenant-create.json @@ -0,0 +1,72 @@ +{ + "name" : "tenant-create", + "configKey" : "tenant-create", + "tabExpression" : "Tenant {{ data.tenant.name?:'new' }}", + "components" : [ { + "type" : "columns", + "key" : "dossier", + "columns" : [ { + "components" : [ { + "type" : "columns", + "key" : "header", + "autoGrow" : "true", + "columns" : [ { + "components" : [ { + "type" : "form", + "key" : "header-left", + "readonlyExpression" : "true" + } ], + "width" : "calc(100% - 350px)" + }, { + "components" : [ { + "type" : "form", + "key" : "header-right", + "readonlyExpression" : "true" + } ], + "width" : "350px" + } ] + }, { + "type" : "html", + "content" : "
" + }, { + "type" : "columns", + "key" : "first-column", + "columns" : [ { + "components" : [ { + "type" : "page", + "key" : "dossier-page", + "toc" : "left", + "sections" : [ { + "type" : "section", + "key" : "Tenant", + "title" : "Tenant", + "components" : [ { + "type" : "form", + "key" : "tenant" + } ] + }, { + "type" : "section", + "key" : "dossier-comments", + "title" : "Comments", + "components" : [ { + "type" : "comments", + "key" : "comments" + } ] + } ] + } ], + "width" : "9" + }, { + "components" : [ { + "type" : "help-text", + "key" : "help-text" + }, { + "type" : "action-list", + "key" : "action-list" + } ], + "width" : "350px" + } ] + } ], + "width" : "12" + } ] + } ] +} \ No newline at end of file diff --git a/smardigo/pmci/layout/tenant-delete.json b/smardigo/pmci/layout/tenant-delete.json new file mode 100644 index 0000000..2259078 --- /dev/null +++ b/smardigo/pmci/layout/tenant-delete.json @@ -0,0 +1,74 @@ +{ + "name" : "tenant-delete", + "configKey" : "tenant-delete", + "tabExpression" : "Tenant {{ data.tenant.name }}", + "readonlyExpression" : "true", + "components" : [ { + "type" : "columns", + "key" : "dossier", + "columns" : [ { + "components" : [ { + "type" : "columns", + "key" : "header", + "autoGrow" : "true", + "columns" : [ { + "components" : [ { + "type" : "form", + "key" : "header-left", + "readonlyExpression" : "true" + } ], + "width" : "calc(100% - 350px)" + }, { + "components" : [ { + "type" : "form", + "key" : "header-right", + "readonlyExpression" : "true" + } ], + "width" : "350px" + } ] + }, { + "type" : "html", + "content" : "
" + }, { + "type" : "columns", + "key" : "first-column", + "columns" : [ { + "components" : [ { + "type" : "page", + "key" : "dossier-page", + "toc" : "left", + "sections" : [ { + "type" : "section", + "key" : "Tenant", + "title" : "Tenant", + "components" : [ { + "type" : "form", + "key" : "tenant", + "readonlyExpression" : "true" + } ] + }, { + "type" : "section", + "key" : "dossier-comments", + "title" : "Comments", + "components" : [ { + "type" : "comments", + "key" : "comments" + } ] + } ] + } ], + "width" : "9" + }, { + "components" : [ { + "type" : "help-text", + "key" : "help-text" + }, { + "type" : "action-list", + "key" : "action-list" + } ], + "width" : "350px" + } ] + } ], + "width" : "12" + } ] + } ] +} \ No newline at end of file diff --git a/smardigo/pmci/layout/tenant-edit.json b/smardigo/pmci/layout/tenant-edit.json new file mode 100644 index 0000000..6456642 --- /dev/null +++ b/smardigo/pmci/layout/tenant-edit.json @@ -0,0 +1,72 @@ +{ + "name" : "tenant-edit", + "configKey" : "tenant-edit", + "tabExpression" : "Tenant {{ data.tenant.name }}", + "components" : [ { + "type" : "columns", + "key" : "dossier", + "columns" : [ { + "components" : [ { + "type" : "columns", + "key" : "header", + "autoGrow" : "true", + "columns" : [ { + "components" : [ { + "type" : "form", + "key" : "header-left", + "readonlyExpression" : "true" + } ], + "width" : "calc(100% - 350px)" + }, { + "components" : [ { + "type" : "form", + "key" : "header-right", + "readonlyExpression" : "true" + } ], + "width" : "350px" + } ] + }, { + "type" : "html", + "content" : "
" + }, { + "type" : "columns", + "key" : "first-column", + "columns" : [ { + "components" : [ { + "type" : "page", + "key" : "dossier-page", + "toc" : "left", + "sections" : [ { + "type" : "section", + "key" : "Tenant", + "title" : "Tenant", + "components" : [ { + "type" : "form", + "key" : "tenant" + } ] + }, { + "type" : "section", + "key" : "dossier-comments", + "title" : "Comments", + "components" : [ { + "type" : "comments", + "key" : "comments" + } ] + } ] + } ], + "width" : "9" + }, { + "components" : [ { + "type" : "help-text", + "key" : "help-text" + }, { + "type" : "action-list", + "key" : "action-list" + } ], + "width" : "350px" + } ] + } ], + "width" : "12" + } ] + } ] +} \ No newline at end of file diff --git a/smardigo/pmci/layout/tenant-events.json b/smardigo/pmci/layout/tenant-events.json new file mode 100644 index 0000000..ba89c03 --- /dev/null +++ b/smardigo/pmci/layout/tenant-events.json @@ -0,0 +1,72 @@ +{ + "name" : "tenant-events", + "configKey" : "tenant-events", + "tabExpression" : "Tenant Events", + "components" : [ { + "type" : "columns", + "key" : "dossier", + "columns" : [ { + "components" : [ { + "type" : "columns", + "key" : "header", + "autoGrow" : "true", + "columns" : [ { + "components" : [ { + "type" : "form", + "key" : "header-left", + "readonlyExpression" : "true" + } ], + "width" : "calc(100% - 350px)" + }, { + "components" : [ { + "type" : "form", + "key" : "header-right", + "readonlyExpression" : "true" + } ], + "width" : "350px" + } ] + }, { + "type" : "html", + "content" : "
" + }, { + "type" : "columns", + "key" : "first-column", + "columns" : [ { + "components" : [ { + "type" : "page", + "key" : "dossier-page", + "toc" : "left", + "sections" : [ { + "type" : "section", + "key" : "Tenant", + "title" : "Tenant", + "components" : [ { + "type" : "form", + "key" : "tenant" + } ] + }, { + "type" : "section", + "key" : "dossier-comments", + "title" : "Comments", + "components" : [ { + "type" : "comments", + "key" : "comments" + } ] + } ] + } ], + "width" : "9" + }, { + "components" : [ { + "type" : "help-text", + "key" : "help-text" + }, { + "type" : "action-list", + "key" : "action-list" + } ], + "width" : "350px" + } ] + } ], + "width" : "12" + } ] + } ] +} \ No newline at end of file diff --git a/smardigo/pmci/mail-template/smardigo-up-and-running.html b/smardigo/pmci/mail-template/smardigo-up-and-running.html new file mode 100644 index 0000000..85a81e1 --- /dev/null +++ b/smardigo/pmci/mail-template/smardigo-up-and-running.html @@ -0,0 +1,64 @@ + + + + Neue Smardigo-Instanz erfolgreich aufgesetzt + + + + +

+ Sehr geehrte Damen und Herren, +

+

+

+ ihre Smardigo-Instanz ist nun einsatzbereit. +

+

+ Zum Abschließen der Installation müssen Sie sich mit den folgend angegebenen initialen Zugangsdaten + anmelden. Sie werden danach aufgefordert, Ihre eigenen Passwörter zu setzen. Beachten Sie, dass die + zugehörigen Benutzer über alle Ihre Smardigo-Instanzen hin geteilt werden. Die initialen Passwörter + können nur für die allererste Anmeldung verwendet werden. Von Ihnen gesetzte Passwörter werden nicht + überschrieben. +

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ServiceBenutzerPasswortLink
Connectsome-usernamesome-passwordsome-link
Keycloaksome-usernamesome-passwordsome-link
Wordpresssome-usernamesome-passwordsome-link
ELKsome-usernamesome-passwordsome-link
+

+

+ Hier geht es zum Antrag: Link +

+

+ Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt. +

+ + diff --git a/smardigo/pmci/mail-template/tenant-created.html b/smardigo/pmci/mail-template/tenant-created.html new file mode 100644 index 0000000..db67d46 --- /dev/null +++ b/smardigo/pmci/mail-template/tenant-created.html @@ -0,0 +1,54 @@ + + + + Ihr Keycloack-Admin wurde angelegt + + + + +

+ Sehr geehrte Damen und Herren, +

+

+

+ Ihr Keycloack-Admin wurde eingerichtet. +

+

+ Zum Abschließen der Anlage müssen Sie sich mit den folgenden angegebenen initialen Zugangsdaten anmelden. +

+

+ Sie werden danach aufgefordert, Ihr eigenes Passwort zu setzen. +

+

+ Bitte beachten Sie folgenden Hinweise zu diesem User +

    +
  • Das initiale Passwort kann nur für die allererste Anmeldung verwendet werden
  • +
  • Das von Ihnen gesetzte Passwörter wird nicht überschrieben
  • +
  • Dieser Admin-Zugang ist über alle potenziellen Smardigo-Instanzen lediglich zur Administration der User und Berechtigungen zu nutzen ist.
  • +
+

+

+ + + + + + + + + + + + + +
ServiceBenutzerPasswortLink
Keycloaksome-usernamesome-passwordsome-link
+

+

+ Hier geht es zum Antrag: Link +

+
+

+ Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt. +

+ + diff --git a/smardigo/pmci/mail-template/tenant-deleted.html b/smardigo/pmci/mail-template/tenant-deleted.html new file mode 100644 index 0000000..54e6bd8 --- /dev/null +++ b/smardigo/pmci/mail-template/tenant-deleted.html @@ -0,0 +1,24 @@ + + + + Ihre Tenant wurde gelöscht + + + + +

+ Sehr geehrte Damen und Herren, +

+

+

+ Ihr Tenant und alle dazu gehörigen Smardigo-Instanzen wurden gelöscht. +

+

+ Den zugehörigen Vorgang können Sie hier einsehen : Link +

+
+

+ Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt. +

+ + \ No newline at end of file diff --git a/smardigo/pmci/mail-template/tenant-edited.html b/smardigo/pmci/mail-template/tenant-edited.html new file mode 100644 index 0000000..c58067d --- /dev/null +++ b/smardigo/pmci/mail-template/tenant-edited.html @@ -0,0 +1,24 @@ + + + + Ihre Tenant-Daten wurden bearbeitet + + + + +

+ Sehr geehrte Damen und Herren, +

+

+

+ Ihre Tenant-Daten wurden bearbeitet. +

+

+ Die angepassten Daten können Sie hier einsehen : Link +

+
+

+ Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt. +

+ + diff --git a/smardigo/pmci/meta.info b/smardigo/pmci/meta.info new file mode 100644 index 0000000..03e7fea --- /dev/null +++ b/smardigo/pmci/meta.info @@ -0,0 +1 @@ +scopeId=pmci \ No newline at end of file diff --git a/smardigo/pmci/process-search/tenant-create-fallback.json b/smardigo/pmci/process-search/tenant-create-fallback.json new file mode 100644 index 0000000..b02255d --- /dev/null +++ b/smardigo/pmci/process-search/tenant-create-fallback.json @@ -0,0 +1,8 @@ +{ + "name" : "tenant-create", + "configKey" : "tenant-create-fallback", + "processDefinitionKey" : "tenant-create", + "columns" : [ ], + "sorts" : [ ], + "filters" : [ ] +} \ No newline at end of file diff --git a/smardigo/pmci/process-search/tenant-create.json b/smardigo/pmci/process-search/tenant-create.json new file mode 100644 index 0000000..fd35ff1 --- /dev/null +++ b/smardigo/pmci/process-search/tenant-create.json @@ -0,0 +1,55 @@ +{ + "name" : "tenant-create", + "configKey" : "tenant-create", + "processDefinitionKey" : "tenant-create", + "columns" : [ { + "key" : "id", + "name" : "ID", + "width" : 50, + "hidden" : true + }, { + "key" : "process_definition_key", + "name" : "Prozess", + "width" : 100, + "hidden" : true + }, { + "key" : "creation_date", + "name" : "Erstelldatum", + "width" : 100 + }, { + "key" : "tenant.name", + "name" : "Mandant Name", + "width" : 100 + }, { + "key" : "tenant.key", + "name" : "Mandant Schlüssel", + "width" : 100 + }, { + "key" : "creation_user_id", + "name" : "Ersteller", + "width" : "100" + }, { + "key" : "vorgang_status_text", + "name" : "Status", + "width" : 100 + } ], + "filters" : [ { + "name" : "Ersteller", + "key" : "creation_user_id", + "defaultOption" : { + "key" : "default", + "name" : "Alle" + } + }, { + "name" : "Status", + "key" : "vorgang_status_text", + "defaultOption" : { + "key" : "default", + "name" : "Alle" + } + } ], + "sorts" : [ { + "key" : "creation_date", + "direction" : "desc" + } ] +} \ No newline at end of file diff --git a/smardigo/pmci/process-search/tenant-delete.json b/smardigo/pmci/process-search/tenant-delete.json new file mode 100644 index 0000000..3d9f753 --- /dev/null +++ b/smardigo/pmci/process-search/tenant-delete.json @@ -0,0 +1,55 @@ +{ + "name" : "tenant-delete", + "configKey" : "tenant-delete", + "processDefinitionKey" : "tenant-delete", + "columns" : [ { + "key" : "id", + "name" : "ID", + "width" : 50, + "hidden" : true + }, { + "key" : "process_definition_key", + "name" : "Prozess", + "width" : 100, + "hidden" : true + }, { + "key" : "creation_date", + "name" : "Erstelldatum", + "width" : 100 + }, { + "key" : "tenant.name", + "name" : "Mandant Name", + "width" : 100 + }, { + "key" : "tenant.key", + "name" : "Mandant Schlüssel", + "width" : 100 + }, { + "key" : "creation_user_id", + "name" : "Ersteller", + "width" : 150 + }, { + "key" : "vorgang_status_text", + "name" : "Status", + "width" : 100 + } ], + "filters" : [ { + "name" : "Ersteller", + "key" : "creation_user_id", + "defaultOption" : { + "key" : "default", + "name" : "Alle" + } + }, { + "name" : "Status", + "key" : "vorgang_status_text", + "defaultOption" : { + "key" : "default", + "name" : "Alle" + } + } ], + "sorts" : [ { + "key" : "creation_date", + "direction" : "desc" + } ] +} \ No newline at end of file diff --git a/smardigo/pmci/process-search/tenant-edit.json b/smardigo/pmci/process-search/tenant-edit.json new file mode 100644 index 0000000..bdd34ba --- /dev/null +++ b/smardigo/pmci/process-search/tenant-edit.json @@ -0,0 +1,55 @@ +{ + "name" : "tenant-edit", + "configKey" : "tenant-edit", + "processDefinitionKey" : "tenant-edit", + "columns" : [ { + "key" : "id", + "name" : "ID", + "width" : 50, + "hidden" : true + }, { + "key" : "process_definition_key", + "name" : "Prozess", + "width" : 100, + "hidden" : true + }, { + "key" : "creation_date", + "name" : "Erstelldatum", + "width" : 100 + }, { + "key" : "tenant.name", + "name" : "Mandant Name", + "width" : 100 + }, { + "key" : "tenant.key", + "name" : "Mandant Schlüssel", + "width" : 100 + }, { + "key" : "creation_user_id", + "name" : "Ersteller", + "width" : 150 + }, { + "key" : "vorgang_status_text", + "name" : "Status", + "width" : 100 + } ], + "filters" : [ { + "name" : "Ersteller", + "key" : "creation_user_id", + "defaultOption" : { + "key" : "default", + "name" : "Alle" + } + }, { + "name" : "Status", + "key" : "vorgang_status_text", + "defaultOption" : { + "key" : "default", + "name" : "Alle" + } + } ], + "sorts" : [ { + "key" : "creation_date", + "direction" : "desc" + } ] +} \ No newline at end of file diff --git a/smardigo/pmci/process-search/tenant-events.json b/smardigo/pmci/process-search/tenant-events.json new file mode 100644 index 0000000..9cb3dfd --- /dev/null +++ b/smardigo/pmci/process-search/tenant-events.json @@ -0,0 +1,54 @@ +{ + "name" : "tenant-events", + "configKey" : "tenant-events", + "columns" : [ { + "key" : "id", + "name" : "ID", + "width" : 50, + "hidden" : true + }, { + "key" : "process_definition_key", + "name" : "Prozess", + "width" : 100, + "hidden" : false + }, { + "key" : "creation_date", + "name" : "Erstelldatum", + "width" : 100 + }, { + "key" : "tenant.name", + "name" : "Mandant Name", + "width" : 100 + }, { + "key" : "tenant.key", + "name" : "Mandant Schlüssel", + "width" : 100 + }, { + "key" : "creation_user_id", + "name" : "Ersteller", + "width" : "100" + }, { + "key" : "vorgang_status_text", + "name" : "Status", + "width" : 100 + } ], + "filters" : [ { + "name" : "Ersteller", + "key" : "creation_user_id", + "defaultOption" : { + "key" : "default", + "name" : "Alle" + } + }, { + "name" : "Status", + "key" : "vorgang_status_text", + "defaultOption" : { + "key" : "default", + "name" : "Alle" + } + } ], + "sorts" : [ { + "key" : "creation_date", + "direction" : "desc" + } ] +} \ No newline at end of file diff --git a/smardigo/pmci/process-search/tenant-search.json b/smardigo/pmci/process-search/tenant-search.json new file mode 100644 index 0000000..83ca5e7 --- /dev/null +++ b/smardigo/pmci/process-search/tenant-search.json @@ -0,0 +1,54 @@ +{ + "name" : "tenant-search", + "configKey" : "tenant-search", + "columns" : [ { + "key" : "id", + "name" : "ID", + "width" : 50, + "hidden" : true + }, { + "key" : "process_definition_key", + "name" : "Prozess", + "width" : 100, + "hidden" : true + }, { + "key" : "creation_date", + "name" : "Erstelldatum", + "width" : 100 + }, { + "key" : "tenant.name", + "name" : "Mandant Name", + "width" : 100 + }, { + "key" : "tenant.key", + "name" : "Mandant Schlüssel", + "width" : 100 + }, { + "key" : "creation_user_id", + "name" : "Ersteller", + "width" : 150 + }, { + "key" : "vorgang_status_text", + "name" : "Status", + "width" : 100 + } ], + "filters" : [ { + "name" : "Ersteller", + "key" : "creation_user_id", + "defaultOption" : { + "key" : "default", + "name" : "Alle" + } + }, { + "name" : "Status", + "key" : "vorgang_status_text", + "defaultOption" : { + "key" : "default", + "name" : "Alle" + } + } ], + "sorts" : [ { + "key" : "creation_date", + "direction" : "desc" + } ] +} \ No newline at end of file diff --git a/smardigo/pmci/process-variable-declaration/tenant-create.json b/smardigo/pmci/process-variable-declaration/tenant-create.json new file mode 100644 index 0000000..d47ee02 --- /dev/null +++ b/smardigo/pmci/process-variable-declaration/tenant-create.json @@ -0,0 +1,49 @@ +{ + "name" : "tenant-create", + "configKey" : "tenant-create", + "configType" : "process-variable-declaration", + "variableDeclarations" : { + "cluster" : { + "type" : "object", + "classification" : "PRIVATE" + }, + "creation_date" : { + "type" : "date", + "classification" : "PRIVATE" + }, + "creation_user_id" : { + "type" : "userId", + "classification" : "PRIVATE" + }, + "id" : { + "type" : "string", + "classification" : "PRIVATE", + "searchable" : true, + "label" : "id" + }, + "keycloak_admin_password" : { + "type" : "string", + "classification" : "PRIVATE" + }, + "keycloak_admin_username" : { + "type" : "string", + "classification" : "PRIVATE" + }, + "tenant" : { + "type" : "object", + "classification" : "PRIVATE" + }, + "user_ids" : { + "type" : "object", + "classification" : "PRIVATE" + }, + "vorgang_status" : { + "type" : "string", + "classification" : "PRIVATE" + }, + "vorgang_status_text" : { + "type" : "string", + "classification" : "PRIVATE" + } + } +} \ No newline at end of file diff --git a/smardigo/pmci/process-variable-declaration/tenant-delete.json b/smardigo/pmci/process-variable-declaration/tenant-delete.json new file mode 100644 index 0000000..890a8b5 --- /dev/null +++ b/smardigo/pmci/process-variable-declaration/tenant-delete.json @@ -0,0 +1,37 @@ +{ + "name" : "tenant-delete", + "configKey" : "tenant-delete", + "configType" : "process-variable-declaration", + "variableDeclarations" : { + "creation_date" : { + "type" : "date", + "classification" : "PRIVATE" + }, + "creation_user_id" : { + "type" : "userId", + "classification" : "PRIVATE" + }, + "id" : { + "type" : "string", + "classification" : "PRIVATE", + "searchable" : true, + "label" : "id" + }, + "tenant" : { + "type" : "object", + "classification" : "PRIVATE" + }, + "user_ids" : { + "type" : "object", + "classification" : "PRIVATE" + }, + "vorgang_status" : { + "type" : "string", + "classification" : "PRIVATE" + }, + "vorgang_status_text" : { + "type" : "string", + "classification" : "PRIVATE" + } + } +} \ No newline at end of file diff --git a/smardigo/pmci/process-variable-declaration/tenant-edit.json b/smardigo/pmci/process-variable-declaration/tenant-edit.json new file mode 100644 index 0000000..ec2268b --- /dev/null +++ b/smardigo/pmci/process-variable-declaration/tenant-edit.json @@ -0,0 +1,37 @@ +{ + "name" : "tenant-edit", + "configKey" : "tenant-edit", + "configType" : "process-variable-declaration", + "variableDeclarations" : { + "creation_date" : { + "type" : "date", + "classification" : "PRIVATE" + }, + "creation_user_id" : { + "type" : "userId", + "classification" : "PRIVATE" + }, + "id" : { + "type" : "string", + "classification" : "PRIVATE", + "searchable" : true, + "label" : "id" + }, + "tenant" : { + "type" : "object", + "classification" : "PRIVATE" + }, + "user_ids" : { + "type" : "object", + "classification" : "PRIVATE" + }, + "vorgang_status" : { + "type" : "string", + "classification" : "PRIVATE" + }, + "vorgang_status_text" : { + "type" : "string", + "classification" : "PRIVATE" + } + } +} \ No newline at end of file diff --git a/smardigo/pmci/process/smardigo-management-action.bpmn b/smardigo/pmci/process/smardigo-management-action.bpmn new file mode 100644 index 0000000..a1a8f58 --- /dev/null +++ b/smardigo/pmci/process/smardigo-management-action.bpmn @@ -0,0 +1,213 @@ + + + + + + + + Flow_1ow8whd + + + Flow_1ow8whd + Flow_0qfq760 + + + + + + + + + Flow_0qfq760 + Flow_11nxxg5 + + + + + + + ${extra_vars} + + + + + Flow_1nqz9ya + Flow_1kxc9t0 + + + + + + datasources.query('awx-job-templates').processScope(contextScopeId, contextProcessId).parameters([name:smardigoManagementAction]).list()[0]['id']; + + + + Flow_0tmasvl + Flow_1cnt5hf + + + + + /api/v2/job_templates/${job_template_id}/launch/ + + + + + + Flow_1cnt5hf + Flow_1nqz9ya + + + Flow_1kxc9t0 + Flow_1nuku1o + def jobs = processes.byId(contextScopeId, contextProcessId).getVariable('jobs') +jobs = !!jobs ? jobs : [] +jobs.add(0, awxResponse.job) +processes.byId(contextScopeId, contextProcessId).setVariable('jobs', jobs) + +processes.byId(contextScopeId, contextProcessId).setVariable('current_job_id', awxResponse.job) + +processes.byId(contextScopeId, contextProcessId).createComment('current_job_id := ' + awxResponse.job) + + + Flow_1nuku1o + Flow_0gcsmj7 + + + + Flow_11nxxg5 + Flow_0tmasvl + Flow_1rngywr + + + Flow_0npv638 + Flow_1ju13h8 + + + Flow_1ju13h8 + + + Flow_0gcsmj7 + Flow_1rngywr + Flow_0npv638 + + + + + + + + ${envStage=="dev"} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/smardigo/pmci/process/smardigo-management-message.bpmn b/smardigo/pmci/process/smardigo-management-message.bpmn new file mode 100644 index 0000000..513e602 --- /dev/null +++ b/smardigo/pmci/process/smardigo-management-message.bpmn @@ -0,0 +1,51 @@ + + + + + + + + Flow_1nu8qqa + + + + + + + + + + + + Flow_1nu8qqa + Flow_127qqnb + + + Flow_127qqnb + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/smardigo/pmci/process/tenant-create.bpmn b/smardigo/pmci/process/tenant-create.bpmn new file mode 100644 index 0000000..a3c84e6 --- /dev/null +++ b/smardigo/pmci/process/tenant-create.bpmn @@ -0,0 +1,264 @@ + + + + + + + + + Flow_1a8vxf0 + + + + + + ${10} + new + + + Flow_1a8vxf0 + Flow_0oc7f69 + + + + + + + + + + + + + + + + + + + + + + + Flow_0oc7f69 + Flow_080k63h + + + Flow_080k63h + Flow_1itjvyi + Flow_0jqgye3 + + + + + ${10} + is being created + + + Flow_0jqgye3 + Flow_0h2salf + + + + + + + + ${tenant.key}-realm-admin + + + Flow_0h2salf + Flow_01p8umx + + + + + + + + + + + Flow_01p8umx + Flow_19apghu + + + + + + Flow_19apghu + Flow_1vkbt5o + + + + + + + + + ${tenant.admin.email} + + Tenant angelegt + template(tenant-created) + ${creation_user_id} + + + Flow_1vkbt5o + Flow_1i1qgmz + + + Flow_1dzhr2w + + + + + ${100} + created + + + Flow_1i1qgmz + Flow_03qvqdv + + + Flow_0ufs5lg + Flow_03qvqdv + Flow_1dzhr2w + + + + + ${101} + canceled + + + Flow_1itjvyi + Flow_0ufs5lg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/smardigo/pmci/process/tenant-delete.bpmn b/smardigo/pmci/process/tenant-delete.bpmn new file mode 100644 index 0000000..ea2769a --- /dev/null +++ b/smardigo/pmci/process/tenant-delete.bpmn @@ -0,0 +1,312 @@ + + + + + + + + + Flow_1a8vxf0 + + + + + + Flow_0oc7f69 + Flow_1wpzyq7 + Flow_0kcmdp7 + + + Flow_0kcmdp7 + Flow_0a1iw3h + Flow_029ur97 + + + + + + + + + + + + + + + + + + + + + + ${10} + new + + + Flow_1a8vxf0 + Flow_0oc7f69 + + + Flow_04k00j1 + + + + + ${100} + deleted + + + Flow_1j8nnwn + Flow_03qvqdv + + + Flow_03qvqdv + Flow_04lmj9g + Flow_04k00j1 + + + + + ${101} + canceled + + + Flow_0a1iw3h + Flow_04lmj9g + + + + + + + + + + + + + + + + + + ${tenant.admin.email} + + Tenant editiert + template(tenant-deleted) + ${creation_user_id} + + + Flow_1vkbt5o + Flow_1j8nnwn + + + + + + Flow_19apghu + Flow_1vkbt5o + + + + + + + + + + + Flow_17n4rbv + Flow_19apghu + + + Flow_1czdw49 + Flow_17n4rbv + Flow_1wpzyq7 + + + Flow_0h2salf + Flow_1czdw49 + + + + + ${10} + is being deleted + + + Flow_029ur97 + Flow_0h2salf + + + Alles löschen? + + + + ACHTUNG: Ändert sich das Datenmodell des Tenants muss die Projektion im Wizard angepasst werden, sonst gehen die Daten verloren! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/smardigo/pmci/process/tenant-edit.bpmn b/smardigo/pmci/process/tenant-edit.bpmn new file mode 100644 index 0000000..48d22a3 --- /dev/null +++ b/smardigo/pmci/process/tenant-edit.bpmn @@ -0,0 +1,276 @@ + + + + + + + + + Flow_1a8vxf0 + + + + + ${10} + new + + + Flow_1a8vxf0 + Flow_0oc7f69 + + + + + + + + + + + + + + + + + + + + + + + + + + ${tenant.admin.email} + ${former_admin_email} + + + Flow_0oc7f69 + Flow_080k63h + + + Flow_080k63h + Flow_1itjvyi + Flow_0jqgye3 + + + + + ${10} + saving + + + Flow_0jqgye3 + Flow_0h2salf + + + + + + Flow_19apghu + Flow_1vkbt5o + + + Flow_1dzhr2w + + + + + ${100} + saved + + + Flow_1j8nnwn + Flow_03qvqdv + + + Flow_03qvqdv + Flow_0ufs5lg + Flow_1dzhr2w + + + + + ${101} + canceled + + + Flow_1t62ed0 + Flow_0ufs5lg + + + + + + + + + + + Flow_0h2salf + Flow_19apghu + + + + + + + + + ${tenant.admin.email},${former_admin_email} + + Tenant editiert + template(tenant-edited) + ${creation_user_id} + + + Flow_1vkbt5o + Flow_1j8nnwn + + + + + + Flow_1itjvyi + Flow_1t62ed0 + + + ACHTUNG: Ändert sich das Datenmodell des Tenants muss die Projektion im Wizard angepasst werden, sonst gehen die Daten verloren! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/smardigo/pmci/roles/roles.json b/smardigo/pmci/roles/roles.json new file mode 100644 index 0000000..65e162f --- /dev/null +++ b/smardigo/pmci/roles/roles.json @@ -0,0 +1,18 @@ +{ + "name" : "roles", + "configKey" : "roles", + "configType" : "roles", + "roles" : [ { + "id" : "user", + "name" : "User" + }, { + "id" : "tenant-create", + "name" : "tenant-create" + }, { + "id" : "tenant-edit", + "name" : "tenant-edit" + }, { + "id" : "tenant-delete", + "name" : "tenant-delete" + } ] +} \ No newline at end of file diff --git a/smardigo/pmci/script/ansible-end.groovy b/smardigo/pmci/script/ansible-end.groovy new file mode 100644 index 0000000..e08ddf8 --- /dev/null +++ b/smardigo/pmci/script/ansible-end.groovy @@ -0,0 +1 @@ +processes.byId(contextScopeId, contextProcessId).createComment(comment + ' beendet') \ No newline at end of file diff --git a/smardigo/pmci/script/ansible-start.groovy b/smardigo/pmci/script/ansible-start.groovy new file mode 100644 index 0000000..5f107b3 --- /dev/null +++ b/smardigo/pmci/script/ansible-start.groovy @@ -0,0 +1,28 @@ +def env = [ + stage: envStage, + scope_id: contextScopeId, + process_instance_id: execution.getProcessInstanceId(), + smardigo_management_action: smardigoManagementAction, + tenant: tenant +] +if (binding.hasVariable('extraVariables')) { + env << extraVariables +} + +def filename = 'xvars-' + smardigoManagementAction + '-' + execution.getProcessInstanceId() + '.yml' +def ansibleCommand= 'ansible-playbook ' + smardigoManagementAction + '.yml --vault-password-file ~/vault-pass -e "@' + filename + '"' +def ansibleVariables= 'cat <> ' + filename + '\n' +ansibleVariables+= '---\n' +env.each { key, val -> + if (val instanceof List) { + ansibleVariables+= key + ':\n- \'' + val.join('\'\n- \'') + '\'\n' + } else { + ansibleVariables+= key + ': \'' + val + '\'\n' + } +} +ansibleVariables+= 'EOT' + +processes.byId(contextScopeId, contextProcessId).createComment(comment + ' gestartet') +processes.byId(contextScopeId, contextProcessId).createComment(ansibleVariables + '\n' + ansibleCommand) + +ansibleCommand \ No newline at end of file diff --git a/smardigo/pmci/script/create-awx-paramaters.groovy b/smardigo/pmci/script/create-awx-paramaters.groovy new file mode 100644 index 0000000..7373c62 --- /dev/null +++ b/smardigo/pmci/script/create-awx-paramaters.groovy @@ -0,0 +1,11 @@ +def env = [ + stage: envStage, + scope_id: contextScopeId, + process_instance_id: execution.getProcessInstanceId(), + smardigo_management_action: smardigoManagementAction, + tenant: tenant +] +if (binding.hasVariable('extraVariables')) { + env << extraVariables +} +env \ No newline at end of file diff --git a/smardigo/pmci/script/create-password.groovy b/smardigo/pmci/script/create-password.groovy new file mode 100644 index 0000000..935f273 --- /dev/null +++ b/smardigo/pmci/script/create-password.groovy @@ -0,0 +1,26 @@ +def pool_length = 20; +def digits = [0..9].flatten() - [ 'O', '0', 'l', '1', 'I' ] +def upperCase = ['A'..'Z'].flatten() - [ 'O', '0', 'l', '1', 'I' ] +def lowerCase = ['a'..'z'].flatten() - [ 'O', '0', 'l', '1', 'I' ] +def special = ['~','!','#','%','&','(',')','{','}','[',']','-','+'] + +def pool = digits + upperCase + lowerCase + special + +Random rand = new Random(System.currentTimeMillis()); +def passChars = (0..pool_length - 1).collect { pool[rand.nextInt(pool.size())] }; + +passChars[0] = special[rand.nextInt(special.size())] +passChars[pool_length - 0] = special[rand.nextInt(special.size())] + +passChars[1] = upperCase[rand.nextInt(upperCase.size())] +passChars[pool_length - 1] = upperCase[rand.nextInt(upperCase.size())] + +passChars[2] = lowerCase[rand.nextInt(lowerCase.size())] +passChars[pool_length - 2] = lowerCase[rand.nextInt(lowerCase.size())] + +passChars[3] = digits[rand.nextInt(digits.size())] +passChars[pool_length - 3] = digits[rand.nextInt(digits.size())] + +def PASSWORD = passChars.join(''); + +PASSWORD \ No newline at end of file diff --git a/smardigo/pmci/script/create-teams-message.groovy b/smardigo/pmci/script/create-teams-message.groovy new file mode 100644 index 0000000..79404b7 --- /dev/null +++ b/smardigo/pmci/script/create-teams-message.groovy @@ -0,0 +1,43 @@ +def smardigoUrl = "https://" + envBaseUrl + "/api/redirect/process/" + contextScopeId + "/dossier/" + process_definition_key + "/" + contextProcessId +def smardigoMessageUrl = "https://" + envBaseUrl + "/api/v1/scopes/" + contextScopeId + "/processes/" + contextProcessId + "/messages" + +def message = [:] +message["@type"] = "MessageCard" +message["@context"] = "http://schema.org/extensions" +message["themeColor"] = "0076D7" +message["summary"] = "Neue Aufgabe: " + "Mein comment" + +def section = [:] +section["activityTitle"] = "activityTitle" +section["activitySubtitle"] = "activitySubtitle" +section["activityImage"] = "https://smardigo.de/wp-content/uploads/2020/01/smardigo-min.png" +section["facts"] = [ + [name:"Stage",value:envStage], + [name:"Mandant",value:tenant.name] +] +message.sections = [section] + +def potentialAction = [] + +def openInSmardigo = [:] +openInSmardigo["@type"] = "ViewAction" +openInSmardigo["@context"] = "http://schema.org" +openInSmardigo["name"] = "Vorgang öffnen" +openInSmardigo["target"] = [smardigoUrl] +potentialAction.add(openInSmardigo) + +if (vorgang_status < 30) { + def approveInSmardigo = [:] + approveInSmardigo["@type"] = "HttpPOST" + approveInSmardigo["name"] = "Server freigeben" + approveInSmardigo["target"] = smardigoMessageUrl + approveInSmardigo["body"] = "{\"message\":\"process-approved-" + contextProcessId + "\"}" + approveInSmardigo["headers"] = [ + [name:"Smardigo-User-Token",value:envSmardigoUserToken] + ] + potentialAction.add(approveInSmardigo) +} + +message.potentialAction = potentialAction + +message \ No newline at end of file diff --git a/smardigo/pmci/script/external-task-mock.groovy b/smardigo/pmci/script/external-task-mock.groovy new file mode 100644 index 0000000..91b1368 --- /dev/null +++ b/smardigo/pmci/script/external-task-mock.groovy @@ -0,0 +1,24 @@ +/**************************************** + insert process variable values start +*****************************************/ +def processVariables = [:] +processVariables.result = creation_user_id + " is not a cat" + +/**************************************** + insert process variable values end +*****************************************/ +/**************************************** + insert local variable values start +*****************************************/ +def localVariables = [:] + +/**************************************** + insert local variable values end +*****************************************/ + +def result = [ + processVariables:processVariables, + localVariables:localVariables +] + +return result; \ No newline at end of file