From 8e9268ca3b4657ce5bc57eace47315ffb8b88571 Mon Sep 17 00:00:00 2001
From: "Ketelsen, Sven"
Date: Tue, 2 May 2023 10:14:33 +0000
Subject: [PATCH] DEV-526 added pmci tenant management
---
create-database-backup.yml | 8 +-
create-database.yml | 11 +-
create-realm.yml | 3 -
group_vars/all/connect.yml | 4 -
group_vars/all/versions.yml | 2 +-
group_vars/management/plain.yml | 26 +-
group_vars/stage_dev/awx.yml | 2 +-
pmci-callback.yml | 6 +-
pmci-database-backup-create.yml | 94 +
pmci-database-backup-import.yml | 90 +
pmci-database-backup-restore.yml | 84 +
pmci-database-create.yml | 63 +
pmci-database-delete.yml | 64 +
pmci-inventory-cluster.yml | 8 +-
pmci-inventory-database.yml | 58 +
pmci-kibana-create-objects.yml | 169 ++
pmci-monitoring-update.yml | 70 +
pmci-realm-client-create.yml | 60 +
pmci-realm-client-delete.yml | 56 +
pmci-server-create.yml | 127 ++
pmci-server-delete.yml | 51 +
pmci-service-create.yml | 60 +
pmci-service-delete.yml | 64 +
pmci-service-state-update.yml | 89 +
pmci-tenant-create.yml | 66 +
pmci-tenant-delete.yml | 66 +
pmci-tenant-edit.yml | 66 +
pmci-tenant-sync.yml | 68 +
remove-database.yml | 8 +-
restore-database-backup.yml | 8 +-
roles/confirm_postgres/defaults/main.yml | 8 -
roles/confirm_postgres/tasks/main.yml | 18 -
roles/connect/vars/main.yml | 9 +-
roles/connect_realm/defaults/main.yml | 10 +-
roles/gitea_realm/defaults/main.yml | 21 +-
roles/harbor_realm/defaults/main.yml | 32 +-
roles/infrastructure_realm/defaults/main.yml | 21 +-
roles/keycloak/tasks/_authenticate.yml | 10 +-
roles/keycloak/tasks/_create_realm_admin.yml | 17 +-
roles/keycloak/tasks/_delete_realm.yml | 11 +
roles/kibana/defaults/main.yaml | 1 +
roles/kubernetes/awx/defaults/main.yml | 1 -
.../awx/tasks/awx-config-cleanup.yml | 2 +-
.../awx/tasks/awx-config-get-typ-id.yml | 2 +-
.../awx-config-job-template-credential.yml | 4 +-
.../awx/tasks/awx-config-job-template.yml | 2 +-
.../awx/tasks/awx-config-pmci-template.yml | 68 +
roles/kubernetes/awx/tasks/awx-config.yml | 26 +-
roles/kubernetes/awx/tasks/main.yml | 14 +-
roles/management/defaults/main.yml | 1 +
roles/pmci/tenant/create/defaults/main.yml | 15 +
roles/pmci/tenant/create/tasks/main.yml | 27 +
roles/pmci/tenant/delete/defaults/main.yml | 15 +
roles/pmci/tenant/delete/tasks/main.yml | 11 +
roles/pmci/tenant/edit/defaults/main.yml | 15 +
roles/pmci/tenant/edit/tasks/main.yml | 27 +
roles/pmci/tenant/sync/defaults/main.yml | 15 +
roles/pmci/tenant/sync/tasks/main.yml | 55 +
.../tenant/sync/tasks/update_user_tenants.yml | 59 +
.../workflow_index_postgres/defaults/main.yml | 13 -
roles/workflow_index_postgres/tasks/main.yml | 18 -
.../workflow_proxy_postgres/defaults/main.yml | 13 -
roles/workflow_proxy_postgres/tasks/main.yml | 18 -
roles/workflow_proxy_realm/defaults/main.yml | 35 -
roles/workflow_proxy_realm/tasks/main.yml | 25 -
roles/workflow_proxy_realm/vars/main.yml | 1 -
smardigo/package.sh | 3 +
smardigo/pmci/app/process.json | 96 +-
.../datasource-action/service-management.json | 68 +
.../datasource-action/tenant-management.json | 41 +-
.../datasource-file/connect-features.xlsx | Bin 0 -> 9268 bytes
smardigo/pmci/datasource/awx-job-plain.json | 40 +-
.../datasource/awx-job-templates-plain.json | 40 +-
.../pmci/datasource/awx-job-templates.json | 31 +-
.../pmci/datasource/connect-features.json | 38 +
.../data-entity-services-processed.json | 18 +
.../pmci/datasource/data-entity-services.json | 25 +
.../data-entity-tenants-filtered.json | 32 +-
.../pmci/datasource/data-entity-tenants.json | 43 +-
.../whitelabel-docker-image-tags-plain.json | 21 +
.../whitelabel-docker-image-tags.json | 16 +
smardigo/pmci/dependency/dependency.json | 7 +
smardigo/pmci/filter/service-create.json | 14 +
.../pmci/filter/service-replay-setup.json | 10 +
smardigo/pmci/form/approve-dialog.json | 82 +
smardigo/pmci/form/confirm-delete-tenant.json | 6 +-
smardigo/pmci/form/current-job-left.json | 168 ++
smardigo/pmci/form/current-job-right.json | 138 ++
smardigo/pmci/form/current-jobs.json | 280 +++
...s-delete-tenant.json => error-dialog.json} | 12 +-
smardigo/pmci/form/progress-bar.json | 98 +
.../pmci/form/select-connect-feature-set.json | 63 +
.../pmci/form/select-connect-version.json | 108 ++
smardigo/pmci/form/service-notice.json | 39 +
smardigo/pmci/form/service-select-wizard.json | 110 ++
smardigo/pmci/form/service.json | 414 +++++
smardigo/pmci/form/tenant-in-service.json | 256 +++
smardigo/pmci/form/tenant-notice.json | 104 ++
smardigo/pmci/form/tenant-select-wizard.json | 4 +-
smardigo/pmci/form/tenant-select.json | 91 +
smardigo/pmci/form/tenant.json | 252 ++-
smardigo/pmci/layout/service-change.json | 129 ++
smardigo/pmci/layout/service-create.json | 129 ++
smardigo/pmci/layout/service-delete.json | 129 ++
.../pmci/layout/service-replay-setup.json | 129 ++
smardigo/pmci/layout/tenant-change.json | 121 ++
smardigo/pmci/layout/tenant-create.json | 57 +-
smardigo/pmci/layout/tenant-delete.json | 57 +-
smardigo/pmci/layout/tenant-edit.json | 72 -
.../pmci/mail-template/service-changed.html | 24 +
...-and-running.html => service-created.html} | 30 +-
.../pmci/mail-template/service-deleted.html | 24 +
...tenant-edited.html => tenant-changed.html} | 4 +-
.../pmci/mail-template/tenant-created.html | 15 +-
.../pmci/mail-template/tenant-deleted.html | 4 +-
smardigo/pmci/mapping/service-change.json | 18 +
smardigo/pmci/mapping/service-create.json | 18 +
smardigo/pmci/mapping/service-delete.json | 18 +
.../pmci/mapping/service-replay-setup.json | 18 +
smardigo/pmci/mapping/tenant-change.json | 18 +
smardigo/pmci/mapping/tenant-create.json | 18 +
smardigo/pmci/mapping/tenant-delete.json | 18 +
smardigo/pmci/policy/policy.json | 5 +
.../process-preset/send-msTeams-message.json | 6 +
.../pmci/process-search/service-search.json | 143 ++
.../tenant-create-fallback.json | 8 -
.../pmci/process-search/tenant-create.json | 55 -
.../pmci/process-search/tenant-delete.json | 55 -
smardigo/pmci/process-search/tenant-edit.json | 55 -
.../pmci/process-search/tenant-events.json | 54 -
.../pmci/process-search/tenant-search.json | 50 +-
.../service-change.json | 125 ++
.../service-create.json | 129 ++
.../service-delete.json | 119 ++
.../service-replay-setup.json | 129 ++
.../service-setup.json | 83 +
.../simulation.json | 20 +
.../tenant-change.json | 76 +
.../tenant-create.json | 62 +-
.../tenant-delete.json | 51 +-
.../tenant-edit.json | 37 -
smardigo/pmci/process/pmci_dmns.dmn | 28 +
smardigo/pmci/process/service-change.bpmn | 1656 +++++++++++++++++
smardigo/pmci/process/service-create.bpmn | 985 ++++++++++
smardigo/pmci/process/service-delete.bpmn | 732 ++++++++
.../pmci/process/service-replay-setup.bpmn | 376 ++++
smardigo/pmci/process/service-setup.bpmn | 447 +++++
smardigo/pmci/process/simulation.bpmn | 89 +
.../process/smardigo-management-action.bpmn | 283 +--
.../process/smardigo-management-mail.bpmn | 92 +
.../process/smardigo-management-message.bpmn | 71 +-
smardigo/pmci/process/tenant-change.bpmn | 482 +++++
smardigo/pmci/process/tenant-create.bpmn | 514 +++--
smardigo/pmci/process/tenant-delete.bpmn | 571 ++++--
smardigo/pmci/process/tenant-edit.bpmn | 276 ---
.../role-policy-mapping.json | 16 +
smardigo/pmci/roles/roles.json | 24 +-
smardigo/pmci/script/ansible-start.groovy | 67 +-
.../pmci/script/create-awx-paramaters.groovy | 11 -
.../pmci/script/create-awx-parameters.groovy | 34 +
smardigo/pmci/script/create-data.groovy | 39 +
smardigo/pmci/script/create-low-string.groovy | 14 +
.../pmci/script/create-teams-message.groovy | 14 +-
.../script/initialize-connect-features.groovy | 10 +
.../provisioning/form/simple-connect.json | 1488 +++++++--------
.../provisioning/layout/simple-connect.json | 201 +-
smardigo/provisioning/policy/policy.json | 2 +-
.../simple-connect.json | 64 +-
.../provisioning/script/ansible-start.groovy | 14 +-
.../script/external-task-mock.groovy | 0
templates/connect/config/custom-whitelist.j2 | 14 +
171 files changed, 13305 insertions(+), 2580 deletions(-)
delete mode 100644 group_vars/all/connect.yml
create mode 100644 pmci-database-backup-create.yml
create mode 100644 pmci-database-backup-import.yml
create mode 100644 pmci-database-backup-restore.yml
create mode 100644 pmci-database-create.yml
create mode 100644 pmci-database-delete.yml
create mode 100644 pmci-inventory-database.yml
create mode 100644 pmci-kibana-create-objects.yml
create mode 100644 pmci-monitoring-update.yml
create mode 100644 pmci-realm-client-create.yml
create mode 100644 pmci-realm-client-delete.yml
create mode 100644 pmci-server-create.yml
create mode 100644 pmci-server-delete.yml
create mode 100644 pmci-service-create.yml
create mode 100644 pmci-service-delete.yml
create mode 100644 pmci-service-state-update.yml
create mode 100644 pmci-tenant-create.yml
create mode 100644 pmci-tenant-delete.yml
create mode 100644 pmci-tenant-edit.yml
create mode 100644 pmci-tenant-sync.yml
delete mode 100644 roles/confirm_postgres/defaults/main.yml
delete mode 100644 roles/confirm_postgres/tasks/main.yml
create mode 100644 roles/keycloak/tasks/_delete_realm.yml
create mode 100644 roles/kubernetes/awx/tasks/awx-config-pmci-template.yml
create mode 100644 roles/pmci/tenant/create/defaults/main.yml
create mode 100644 roles/pmci/tenant/create/tasks/main.yml
create mode 100644 roles/pmci/tenant/delete/defaults/main.yml
create mode 100644 roles/pmci/tenant/delete/tasks/main.yml
create mode 100644 roles/pmci/tenant/edit/defaults/main.yml
create mode 100644 roles/pmci/tenant/edit/tasks/main.yml
create mode 100644 roles/pmci/tenant/sync/defaults/main.yml
create mode 100644 roles/pmci/tenant/sync/tasks/main.yml
create mode 100644 roles/pmci/tenant/sync/tasks/update_user_tenants.yml
delete mode 100644 roles/workflow_index_postgres/defaults/main.yml
delete mode 100644 roles/workflow_index_postgres/tasks/main.yml
delete mode 100644 roles/workflow_proxy_postgres/defaults/main.yml
delete mode 100644 roles/workflow_proxy_postgres/tasks/main.yml
delete mode 100644 roles/workflow_proxy_realm/defaults/main.yml
delete mode 100644 roles/workflow_proxy_realm/tasks/main.yml
delete mode 100644 roles/workflow_proxy_realm/vars/main.yml
create mode 100644 smardigo/pmci/datasource-action/service-management.json
create mode 100644 smardigo/pmci/datasource-file/connect-features.xlsx
create mode 100644 smardigo/pmci/datasource/connect-features.json
create mode 100644 smardigo/pmci/datasource/data-entity-services-processed.json
create mode 100644 smardigo/pmci/datasource/data-entity-services.json
create mode 100644 smardigo/pmci/datasource/whitelabel-docker-image-tags-plain.json
create mode 100644 smardigo/pmci/datasource/whitelabel-docker-image-tags.json
create mode 100644 smardigo/pmci/dependency/dependency.json
create mode 100644 smardigo/pmci/filter/service-create.json
create mode 100644 smardigo/pmci/filter/service-replay-setup.json
create mode 100644 smardigo/pmci/form/approve-dialog.json
create mode 100644 smardigo/pmci/form/current-job-left.json
create mode 100644 smardigo/pmci/form/current-job-right.json
create mode 100644 smardigo/pmci/form/current-jobs.json
rename smardigo/pmci/form/{cons-delete-tenant.json => error-dialog.json} (51%)
create mode 100644 smardigo/pmci/form/progress-bar.json
create mode 100644 smardigo/pmci/form/select-connect-feature-set.json
create mode 100644 smardigo/pmci/form/select-connect-version.json
create mode 100644 smardigo/pmci/form/service-notice.json
create mode 100644 smardigo/pmci/form/service-select-wizard.json
create mode 100644 smardigo/pmci/form/service.json
create mode 100644 smardigo/pmci/form/tenant-in-service.json
create mode 100644 smardigo/pmci/form/tenant-notice.json
create mode 100644 smardigo/pmci/form/tenant-select.json
create mode 100644 smardigo/pmci/layout/service-change.json
create mode 100644 smardigo/pmci/layout/service-create.json
create mode 100644 smardigo/pmci/layout/service-delete.json
create mode 100644 smardigo/pmci/layout/service-replay-setup.json
create mode 100644 smardigo/pmci/layout/tenant-change.json
delete mode 100644 smardigo/pmci/layout/tenant-edit.json
create mode 100644 smardigo/pmci/mail-template/service-changed.html
rename smardigo/pmci/mail-template/{smardigo-up-and-running.html => service-created.html} (55%)
create mode 100644 smardigo/pmci/mail-template/service-deleted.html
rename smardigo/pmci/mail-template/{tenant-edited.html => tenant-changed.html} (87%)
create mode 100644 smardigo/pmci/mapping/service-change.json
create mode 100644 smardigo/pmci/mapping/service-create.json
create mode 100644 smardigo/pmci/mapping/service-delete.json
create mode 100644 smardigo/pmci/mapping/service-replay-setup.json
create mode 100644 smardigo/pmci/mapping/tenant-change.json
create mode 100644 smardigo/pmci/mapping/tenant-create.json
create mode 100644 smardigo/pmci/mapping/tenant-delete.json
create mode 100644 smardigo/pmci/policy/policy.json
create mode 100644 smardigo/pmci/process-preset/send-msTeams-message.json
create mode 100644 smardigo/pmci/process-search/service-search.json
delete mode 100644 smardigo/pmci/process-search/tenant-create-fallback.json
delete mode 100644 smardigo/pmci/process-search/tenant-create.json
delete mode 100644 smardigo/pmci/process-search/tenant-delete.json
delete mode 100644 smardigo/pmci/process-search/tenant-edit.json
delete mode 100644 smardigo/pmci/process-search/tenant-events.json
create mode 100644 smardigo/pmci/process-variable-declaration/service-change.json
create mode 100644 smardigo/pmci/process-variable-declaration/service-create.json
create mode 100644 smardigo/pmci/process-variable-declaration/service-delete.json
create mode 100644 smardigo/pmci/process-variable-declaration/service-replay-setup.json
create mode 100644 smardigo/pmci/process-variable-declaration/service-setup.json
create mode 100644 smardigo/pmci/process-variable-declaration/simulation.json
create mode 100644 smardigo/pmci/process-variable-declaration/tenant-change.json
delete mode 100644 smardigo/pmci/process-variable-declaration/tenant-edit.json
create mode 100644 smardigo/pmci/process/pmci_dmns.dmn
create mode 100644 smardigo/pmci/process/service-change.bpmn
create mode 100644 smardigo/pmci/process/service-create.bpmn
create mode 100644 smardigo/pmci/process/service-delete.bpmn
create mode 100644 smardigo/pmci/process/service-replay-setup.bpmn
create mode 100644 smardigo/pmci/process/service-setup.bpmn
create mode 100644 smardigo/pmci/process/simulation.bpmn
create mode 100644 smardigo/pmci/process/smardigo-management-mail.bpmn
create mode 100644 smardigo/pmci/process/tenant-change.bpmn
delete mode 100644 smardigo/pmci/process/tenant-edit.bpmn
create mode 100644 smardigo/pmci/role-policy-mapping/role-policy-mapping.json
delete mode 100644 smardigo/pmci/script/create-awx-paramaters.groovy
create mode 100644 smardigo/pmci/script/create-awx-parameters.groovy
create mode 100644 smardigo/pmci/script/create-data.groovy
create mode 100644 smardigo/pmci/script/create-low-string.groovy
create mode 100644 smardigo/pmci/script/initialize-connect-features.groovy
rename smardigo/{pmci => provisioning}/script/external-task-mock.groovy (100%)
create mode 100644 templates/connect/config/custom-whitelist.j2
diff --git a/create-database-backup.yml b/create-database-backup.yml
index 55636c4..2b5d1a9 100644
--- a/create-database-backup.yml
+++ b/create-database-backup.yml
@@ -51,7 +51,7 @@
- "{{ item }}"
changed_when: False
with_items: "{{ cluster_features }}"
- when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'workflow_index', 'workflow_proxy', 'pdns']
+ when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'pdns']
- name: "Add maria servers to hosts if necessary"
add_host:
@@ -93,12 +93,6 @@
- role: webdav_postgres
when: "'webdav' in group_names"
- - role: workflow_index_postgres
- when: "'workflow_index' in group_names"
-
- - role: workflow_proxy_postgres
- when: "'workflow_proxy' in group_names"
-
- role: connect_wordpress_maria
when: "'connect_wordpress' in group_names"
diff --git a/create-database.yml b/create-database.yml
index 4161fac..f139769 100644
--- a/create-database.yml
+++ b/create-database.yml
@@ -57,7 +57,7 @@
- "{{ item }}"
changed_when: False
with_items: "{{ cluster_features }}"
- when: item in ['confirm', 'connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'workflow_index', 'workflow_proxy', 'pdns']
+ when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'pdns']
- name: "Add maria servers to hosts if necessary"
add_host:
@@ -87,9 +87,6 @@
- always
roles:
- - role: confirm_postgres
- when: "'confirm' in group_names"
-
- role: connect_postgres
when: "'connect' in group_names"
@@ -112,12 +109,6 @@
- role: webdav_postgres
when: "'webdav' in group_names"
- - role: workflow_index_postgres
- when: "'workflow_index' in group_names"
-
- - role: workflow_proxy_postgres
- when: "'workflow_proxy' in group_names"
-
- role: connect_wordpress_maria
when: "'connect_wordpress' in group_names"
diff --git a/create-realm.yml b/create-realm.yml
index c679571..de38f07 100644
--- a/create-realm.yml
+++ b/create-realm.yml
@@ -77,9 +77,6 @@
- role: gitea_realm
when: '"gitea" in group_names'
- - role: workflow_proxy_realm
- when: '"workflow-proxy" in group_names'
-
#############################################################
# Sending smardigo management message to process
#############################################################
diff --git a/group_vars/all/connect.yml b/group_vars/all/connect.yml
deleted file mode 100644
index 99a49c5..0000000
--- a/group_vars/all/connect.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-
-connect_client_admin_username: "connect-admin"
-connect_realm_admin_username: "connect-realm-admin"
diff --git a/group_vars/all/versions.yml b/group_vars/all/versions.yml
index 9ea4ab2..b776957 100644
--- a/group_vars/all/versions.yml
+++ b/group_vars/all/versions.yml
@@ -24,7 +24,7 @@ prom_prom2teams_version: "3.2.3"
traefik_version: "v2.8.5"
-connect_version: "10.4.12"
+connect_version: "10.5"
iam_version: "10.0"
webdav_version: "8.4.1"
diff --git a/group_vars/management/plain.yml b/group_vars/management/plain.yml
index da126e1..acc949c 100644
--- a/group_vars/management/plain.yml
+++ b/group_vars/management/plain.yml
@@ -4,7 +4,7 @@ hetzner_server_type: cx21
connect_client_admin_username: "{{ management_admin_username }}"
connect_client_admin_password: "{{ management_admin_password }}"
-connect_workflow_env: "stage:{{ stage }};smardigoUserToken:{{ smardigo_auth_token_value }}"
+connect_workflow_env: "baseUrl:{{ connect_base_url }};stage:{{ stage }};smardigoUserToken:{{ smardigo_auth_token_value }}"
connect_oidc_client_secret: "{{ management_oidc_client_secret }}"
connect_config_delete_scope_enabled: true
@@ -42,16 +42,14 @@ current_realm_clients: [
}
]
-current_realm_users: [
- {
- "username": "{{ management_admin_username }}",
- "password": "{{ management_admin_password }}",
- "email": "{{ connect_admin_email }}",
- "requiredActions": []
- }
-]
-current_realm_admin_user:
- username: "{{ management_realm_admin_username }}"
- password: "{{ management_realm_admin_password }}"
- email: "{{ connect_admin_email }}"
- requiredActions: []
+current_realm_users:
+ - username: "{{ management_admin_username }}"
+ password: "{{ management_admin_password }}"
+ email: "{{ connect_admin_email }}"
+ requiredActions: []
+
+current_realm_admin_users:
+ - username: "{{ management_realm_admin_username }}"
+ password: "{{ management_realm_admin_password }}"
+ email: "{{ connect_admin_email }}"
+ requiredActions: []
diff --git a/group_vars/stage_dev/awx.yml b/group_vars/stage_dev/awx.yml
index 79a5623..55a3627 100644
--- a/group_vars/stage_dev/awx.yml
+++ b/group_vars/stage_dev/awx.yml
@@ -1,3 +1,3 @@
---
-awx_hetzner_ansible_revision: "main"
+awx_hetzner_ansible_revision: "feature/DEV-526"
diff --git a/pmci-callback.yml b/pmci-callback.yml
index fdcdbbe..a9f5140 100644
--- a/pmci-callback.yml
+++ b/pmci-callback.yml
@@ -1,9 +1,9 @@
---
# Parameters:
-# 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)
+# stage := name of the stage (e.g. dev, int, qa, prod)
+# scope_id := scope id from management process
+# process_instance_id := process instance id from management process
#############################################################
# Sending smardigo management message to process
diff --git a/pmci-database-backup-create.yml b/pmci-database-backup-create.yml
new file mode 100644
index 0000000..68a9802
--- /dev/null
+++ b/pmci-database-backup-create.yml
@@ -0,0 +1,94 @@
+---
+
+# 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)
+# custom_backup_name :=
+# 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
+ connection: local
+ gather_facts: false
+
+ pre_tasks:
+ - name: "Check if ansible version is at least {{ ansible_minimal_version }}"
+ assert:
+ that:
+ - ansible_version.string is version(ansible_minimal_version, ">=")
+ msg: "The ansible version has to be at least {{ ansible_minimal_version }}"
+
+# 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 postgres servers to hosts if necessary"
+ add_host:
+ name: "{{ stage }}-postgres-01"
+ groups:
+ - "stage_{{ stage }}"
+ - "{{ item }}"
+ changed_when: False
+ with_items: "{{ cluster_features }}"
+ when: item in ['connect']
+
+ - name: "Add maria servers to hosts if necessary"
+ add_host:
+ name: "{{ stage }}-maria-01"
+ groups:
+ - "stage_{{ stage }}"
+ - "{{ item }}"
+ changed_when: False
+ with_items: "{{ cluster_features }}"
+ when: item in ['connect_wordpress']
+
+#############################################################
+# Creating database backups for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ remote_user: root
+ vars:
+ database_backup_state: dump
+ ansible_ssh_host: "{{ stage_server_domain }}"
+
+ roles:
+ - role: connect_postgres
+ when: "'connect' in group_names"
+
+ - role: connect_wordpress_maria
+ when: "'connect_wordpress' in group_names"
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- hosts: "{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ gather_facts: false
+ connection: local
+ run_once: true
+ vars:
+ connect_jwt_username: "{{ management_admin_username }}"
+
+ tasks:
+ - name: "Sending smardigo management message to <{{ shared_service_url_management }}>"
+ include_tasks: tasks/smardigo_management_message.yml
diff --git a/pmci-database-backup-import.yml b/pmci-database-backup-import.yml
new file mode 100644
index 0000000..be74020
--- /dev/null
+++ b/pmci-database-backup-import.yml
@@ -0,0 +1,90 @@
+---
+
+# 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
+ connection: local
+ gather_facts: false
+
+ pre_tasks:
+ - name: "Check if ansible version is at least {{ ansible_minimal_version }}"
+ assert:
+ that:
+ - ansible_version.string is version(ansible_minimal_version, ">=")
+ msg: "The ansible version has to be at least {{ ansible_minimal_version }}"
+
+# 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 maria servers to hosts if necessary
+ add_host:
+ name: "{{ stage }}-maria-01"
+ groups:
+ - "stage_{{ stage }}"
+ - "{{ item }}"
+ changed_when: False
+ with_items: "{{ cluster.features }}"
+ when: item in ['connect_wordpress']
+
+#############################################################
+# Importing database backups for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ remote_user: root
+ vars:
+ ansible_ssh_host: "{{ stage_server_domain }}"
+ tenant_id: "{{ tenant.key }}" # legacy paramater, backwards compatibility
+ cluster_name: "{{ cluster.key }}" # legacy paramater, backwards compatibility
+ database_backup_file: "{{ data.database.backup_file }}" # legacy paramater, backwards compatibility
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ roles:
+ - role: import_maria_database
+ when:
+ - "'connect_wordpress' in group_names"
+ - "target_database is defined"
+ - "database_backup_file is defined"
+
+ - role: import_maria_database
+ vars:
+ target_database: "{{ connect_wordpress_maria_database }}"
+ when:
+ - "'connect_wordpress' in group_names"
+ - "database_backup_file is defined"
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-database-backup-restore.yml b/pmci-database-backup-restore.yml
new file mode 100644
index 0000000..e720047
--- /dev/null
+++ b/pmci-database-backup-restore.yml
@@ -0,0 +1,84 @@
+---
+
+# restores a database backup
+# - postgres
+# - executed on stage specific server: {{ stage }}-postgres-01
+# - restores a database backup
+
+# Parameters:
+# playbook inventory
+# stage := the name of the stage (e.g. dev, int, qa, prod)
+# tenant_id := (unique key for the tenant, e.g. customer)
+# cluster_name := (business name for the cluster, e.g. product, department )
+# cluster_service := (service to setup, e.g. 'connect', ...)
+# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...])
+# custom_backup_name := defines a substring for backup file => {{ stage }}_{{ tenant_id }}_{{ cluster_name }}_{{ cluster_service }}__gehtdichnixan.sql
+# 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
+ connection: local
+ gather_facts: false
+
+ pre_tasks:
+ - name: "Check if ansible version is at least {{ ansible_minimal_version }}"
+ assert:
+ that:
+ - ansible_version.string is version(ansible_minimal_version, ">=")
+ msg: "The ansible version has to be at least {{ ansible_minimal_version }}"
+
+# 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 postgres servers to hosts if necessary"
+ add_host:
+ name: "{{ stage }}-postgres-01"
+ groups:
+ - "stage_{{ stage }}"
+ - "{{ item }}"
+ changed_when: False
+ with_items: "{{ cluster_features }}"
+ when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'pdns']
+
+#############################################################
+# Restoring databases for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ remote_user: root
+ vars:
+ database_backup_state: restore
+ ansible_ssh_host: "{{ stage_server_domain }}"
+
+ roles:
+ - role: connect_postgres
+ when: "'connect' in group_names"
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- hosts: "{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ gather_facts: false
+ connection: local
+ run_once: true
+ vars:
+ connect_jwt_username: "{{ management_admin_username }}"
+
+ tasks:
+ - name: "Sending smardigo management message to <{{ shared_service_url_management }}>"
+ include_tasks: tasks/smardigo_management_message.yml
diff --git a/pmci-database-create.yml b/pmci-database-create.yml
new file mode 100644
index 0000000..80ff85e
--- /dev/null
+++ b/pmci-database-create.yml
@@ -0,0 +1,63 @@
+---
+
+# 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-database.yml
+
+#############################################################
+# Creating databases for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ remote_user: root
+ vars:
+ ansible_ssh_host: "{{ stage_server_domain }}"
+ tenant_id: "{{ tenant.key }}" # legacy paramater, backwards compatibility
+ cluster_name: "{{ cluster.key }}" # legacy paramater, backwards compatibility
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ roles:
+ - role: connect_postgres
+ when: "'connect' in group_names"
+
+ - role: gitea_postgres
+ when: "'gitea' in group_names"
+
+ - role: keycloak_postgres
+ when: "'keycloak' in group_names"
+
+ - role: webdav_postgres
+ when: "'webdav' in group_names"
+
+ - role: connect_wordpress_maria
+ when: "'connect_wordpress' in group_names"
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-database-delete.yml b/pmci-database-delete.yml
new file mode 100644
index 0000000..fc25b2c
--- /dev/null
+++ b/pmci-database-delete.yml
@@ -0,0 +1,64 @@
+---
+
+# 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-database.yml
+
+#############################################################
+# Deleting databases for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ remote_user: root
+ vars:
+ database_state: absent
+ ansible_ssh_host: "{{ stage_server_domain }}"
+ tenant_id: "{{ tenant.key }}" # legacy paramater, backwards compatibility
+ cluster_name: "{{ cluster.key }}" # legacy paramater, backwards compatibility
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ roles:
+ - role: connect_postgres
+ when: "'connect' in group_names"
+
+ - role: gitea_postgres
+ when: "'gitea' in group_names"
+
+ - role: keycloak_postgres
+ when: "'keycloak' in group_names"
+
+ - role: webdav_postgres
+ when: "'webdav' in group_names"
+
+ - role: connect_wordpress_maria
+ when: "'connect_wordpress' in group_names"
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-inventory-cluster.yml b/pmci-inventory-cluster.yml
index 7d5819a..cbf704a 100644
--- a/pmci-inventory-cluster.yml
+++ b/pmci-inventory-cluster.yml
@@ -5,9 +5,11 @@
# 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)
-# ...
+# key :=
+# size :=
+# service :=
+# features :=
# data := object with action specific data (optional)
# ...
@@ -51,7 +53,7 @@
- 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 }}"
+ groups: "{{ ['hcloud'] + ['stage_' + stage ] + [cluster.service] + (cluster.features | default([])) }}"
with_sequence: start=1 end={{ cluster.size | default(1) }}
changed_when: False
when:
diff --git a/pmci-inventory-database.yml b/pmci-inventory-database.yml
new file mode 100644
index 0000000..a0a89ad
--- /dev/null
+++ b/pmci-inventory-database.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 :=
+# cluster := object with cluster specific data (optional)
+# key :=
+# size :=
+# service :=
+# features :=
+# data := object with action specific data (optional)
+# ...
+
+#############################################################
+# Creating inventory dynamically for given cluster
+#############################################################
+
+- hosts: localhost
+ gather_facts: false
+ connection: local
+
+ pre_tasks:
+ - name: "Check if ansible version is at least {{ ansible_minimal_version }}"
+ assert:
+ that:
+ - ansible_version.string is version(ansible_minimal_version, ">=")
+ msg: "The ansible version has to be at least {{ ansible_minimal_version }}"
+
+# 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 postgres servers to hosts if necessary"
+ add_host:
+ name: "{{ stage }}-postgres-01"
+ groups:
+ - "{{ item }}"
+ - "stage_{{ stage }}"
+ changed_when: False
+ with_items: "{{ ['hcloud'] + ['stage_' + stage ] + [cluster.service] + (cluster.features | default([])) }}"
+ when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'pdns']
+
+ - name: "Add maria servers to hosts if necessary"
+ add_host:
+ name: "{{ stage }}-maria-01"
+ groups:
+ - "{{ item }}"
+ - "stage_{{ stage }}"
+ changed_when: False
+ with_items: "{{ ['hcloud'] + ['stage_' + stage ] + [cluster.service] + (cluster.features | default([])) }}"
+ when: item in ['connect_wordpress']
diff --git a/pmci-kibana-create-objects.yml b/pmci-kibana-create-objects.yml
new file mode 100644
index 0000000..dde6c7a
--- /dev/null
+++ b/pmci-kibana-create-objects.yml
@@ -0,0 +1,169 @@
+---
+
+# 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: no
+ remote_user: root
+ vars:
+ ansible_connection: local
+ ansible_ssh_host: "{{ stage_server_domain }}"
+ tenant_id: "{{ tenant.key }}" # legacy paramater, backwards compatibility
+ cluster_name: "{{ cluster.key }}" # legacy paramater, backwards compatibility
+ cluster_service: "{{ cluster.service }}"
+ elastic_state: present
+ elastic_users:
+ -
+ username: '{{ stage }}-{{ tenant_id }}'
+ roles:
+ - '{{ stage }}-{{ tenant_id }}'
+ full_name: ''
+ password: '{{ password | default( stage + "-" + tenant_id ) }}'
+ email: '{{ email | default("") }}'
+ enabled: true
+ elastic_state: '{{ elastic_state }}'
+ elastic_roles:
+ -
+ elastic_state: '{{ elastic_state }}'
+ name: '{{ stage }}-{{ tenant_id }}'
+ elasticsearch:
+ cluster: []
+ indices:
+ - names:
+ - '{{ stage }}-{{ tenant_id }}-*'
+ privileges:
+ - read
+ - read_cross_cluster
+ - view_index_metadata
+ allow_restricted_indices: false
+ run_as: []
+ kibana:
+ - base: []
+ feature:
+ advancedSettings:
+ - all
+ dashboard:
+ - all
+ discover:
+ - all
+ indexPatterns:
+ - all
+ savedObjectsManagement:
+ - all
+ visualize:
+ - all
+ spaces:
+ - '{{ stage }}-{{ tenant_id }}'
+ elastic_spaces:
+ -
+ elastic_state: '{{ elastic_state }}'
+ id: &es_space_name '{{ stage }}-{{ tenant_id }}'
+ name: '{{ stage }}-{{ tenant_id }}'
+ description: ''
+ disabledFeatures:
+ - canvas
+ - maps
+ - ml
+ - visualize
+ - enterpriseSearch
+ - logs
+ - infrastructure
+ - apm
+ - uptime
+ - observabilityCases
+ - siem
+ - monitoring
+ - fleet
+ - stackAlerts
+ - actions
+ - osquery
+ - savedObjectsTagging
+ es_index_pattern_tenant: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*'
+ es_index_pattern_services:
+ - id: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*-{{ cluster_service }}-*"
+ name: "{{ cluster_service }}"
+
+ tasks:
+ - name: "Do some stuff in elastic with spaces ... "
+ include_role:
+ name: kibana
+ tasks_from: _configure_spaces.yml
+ apply:
+ tags:
+ - es-spaces
+ loop: "{{ elastic_spaces }}"
+ loop_control:
+ loop_var: elastic_space
+ tags:
+ - es-spaces
+
+ - name: "Do some stuff in elastic with roles ..."
+ include_role:
+ name: kibana
+ tasks_from: _configure_roles.yml
+ apply:
+ tags:
+ - es-roles
+ loop: "{{ elastic_roles }}"
+ loop_control:
+ loop_var: elastic_role
+ tags:
+ - es-roles
+
+ - name: "Do some stuff in elastic with users ..."
+ include_role:
+ name: kibana
+ tasks_from: _configure_users.yml
+ apply:
+ tags:
+ - es-users
+ loop: "{{ elastic_users }}"
+ loop_control:
+ loop_var: elastic_user
+ tags:
+ - es-users
+
+ - name: "Do some stuff in elastic with spaces ..."
+ include_role:
+ name: kibana
+ tasks_from: _import_savedobjects.yml
+ apply:
+ tags:
+ - es-importobjects
+ vars:
+ es_space: *es_space_name
+ es_indexpattern_title: '{{ es_indexpattern_name }}'
+ es_index_pattern_tenant_uuid: '{{ es_index_pattern_tenant | to_uuid }}'
+ es_panel_uuid: "{{ 'panel_' + es_dashboard_name | to_uuid }}"
+ tags:
+ - es-importobjects
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-monitoring-update.yml b/pmci-monitoring-update.yml
new file mode 100644
index 0000000..c29f686
--- /dev/null
+++ b/pmci-monitoring-update.yml
@@ -0,0 +1,70 @@
+---
+
+# 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
+
+#############################################################
+# Creating inventory dynamically for given parameters
+#############################################################
+
+- hosts: "{{ 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
+
+ tasks:
+ - name: "Add all servers for stage {{ stage }} to inventory"
+ add_host:
+ name: "{{ item.name }}"
+ groups:
+ - "stage_{{ stage }}"
+ - "{{ item.service }}"
+ stage_server_infos: "{{ stage_server_infos }}"
+ changed_when: False
+ with_items: "{{ stage_server_infos }}"
+
+#############################################################
+# Updating monitoring for all servers
+#############################################################
+
+- hosts: "{{ stage }}-prometheus-01"
+ serial: "{{ serial_number | default(1) }}"
+ remote_user: root
+ vars:
+ ansible_ssh_host: "{{ stage_server_domain }}"
+
+ tasks:
+ - include_role:
+ name: prometheus
+ tasks_from: _update_config
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-realm-client-create.yml b/pmci-realm-client-create.yml
new file mode 100644
index 0000000..8258c57
--- /dev/null
+++ b/pmci-realm-client-create.yml
@@ -0,0 +1,60 @@
+---
+
+# 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
+
+#############################################################
+# Creating realms for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ gather_facts: false
+ connection: local
+ vars:
+ ansible_ssh_host: "{{ stage_server_domain }}"
+ tenant_id: "{{ tenant.key }}" # legacy paramater, backwards compatibility
+ cluster_name: "{{ cluster.key }}" # legacy paramater, backwards compatibility
+ current_realm_name: "{{ tenant.key }}" # legacy paramater, backwards compatibility
+ connect_client_admin_username: "{{ data.connect.admin.username }}" # legacy paramater, backwards compatibility
+ connect_client_admin_password: "{{ data.connect.admin.password }}" # legacy paramater, backwards compatibility
+ connect_wordpress_buergerportal_username: "{{ data.wordpress.admin.username }}" # legacy paramater, backwards compatibility
+ connect_wordpress_buergerportal_password: "{{ data.wordpress.admin.password }}" # legacy paramater, backwards compatibility
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ roles:
+ - role: connect_realm
+ when: '"connect" in group_names'
+
+ - role: gitea_realm
+ when: '"gitea" in group_names'
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-realm-client-delete.yml b/pmci-realm-client-delete.yml
new file mode 100644
index 0000000..fd818f1
--- /dev/null
+++ b/pmci-realm-client-delete.yml
@@ -0,0 +1,56 @@
+---
+
+# 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
+
+#############################################################
+# Deleting client for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ gather_facts: false
+ vars:
+ ansible_ssh_host: "{{ stage_server_domain }}"
+ cluster_name: "{{ cluster.key }}" # legacy paramater, backwards compatibility
+ current_realm_name: "{{ tenant.key }}" # legacy paramater, backwards compatibility
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ tasks:
+ - name: "Delete client in realm <{{ current_realm_name }}>"
+ include_role:
+ name: keycloak
+ tasks_from: _delete_client
+ vars:
+ realm_name: "{{ current_realm_name }}"
+ client_name: "{{ cluster_name }}"
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-server-create.yml b/pmci-server-create.yml
new file mode 100644
index 0000000..d7b8e5e
--- /dev/null
+++ b/pmci-server-create.yml
@@ -0,0 +1,127 @@
+---
+
+# 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
+
+#############################################################
+# Creating servers for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(5) }}"
+ gather_facts: false
+ remote_user: root
+
+ pre_tasks:
+ - name: Get all Firewalls from Hetzner
+ uri:
+ url: "https://api.hetzner.cloud/v1/firewalls"
+ headers:
+ accept: application/json
+ authorization: Bearer {{ hetzner_authentication_ansible }}
+ return_content: yes
+ register: hetzner_firewalls_response
+ delegate_to: 127.0.0.1
+ tags:
+ - update_networks
+
+ - name: Save firewall entries as variable (fact)
+ set_fact:
+ hetzner_firewalls_response_json: "{{ hetzner_firewalls_response.json }}"
+ tags:
+ - update_networks
+
+ - name: Parse firewall entries
+ set_fact:
+ firewall_records: "{{ hetzner_firewalls_response_json.firewalls | json_query(jmesquery) }}"
+ vars:
+ jmesquery: '[*].{id: id, name: name}'
+ tags:
+ - update_networks
+
+ - name: Print firewall entries
+ debug:
+ msg: "{{ firewall_records }}"
+ tags:
+ - update_networks
+
+ roles:
+ - role: hetzner-ansible-hcloud
+
+ - role: hetzner-ansible-dns
+ vars:
+ record_data: "{{ stage_server_ip }}"
+ record_name: "{{ inventory_hostname }}"
+
+#############################################################
+# Provisioning servers for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ remote_user: root
+ vars:
+ ansible_ssh_host: "{{ stage_server_domain }}"
+
+ pre_tasks:
+ - name: Remove outdated dependencies
+ apt:
+ name: [
+ 'docker',
+ 'docker-client',
+ 'docker-client-latest',
+ 'docker-common',
+ 'docker-latest',
+ 'docker-latest-logrotate',
+ 'docker-logrotate',
+ 'docker-engine',
+ 'smartmontools',
+ ]
+ state: 'absent'
+ when: ansible_distribution == "Ubuntu"
+
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ roles:
+ - role: ansible-role-docker
+ when:
+ - docker_enabled
+
+ - role: common
+
+ - role: filebeat
+ when: filebeat_enabled | default(True)
+
+ - role: node_exporter
+ when: node_exporter_enabled | default(True)
+
+ - role: traefik
+ when: traefik_enabled | default(True)
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-server-delete.yml b/pmci-server-delete.yml
new file mode 100644
index 0000000..5d4f91c
--- /dev/null
+++ b/pmci-server-delete.yml
@@ -0,0 +1,51 @@
+---
+
+# 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
+
+#############################################################
+# Deleting servers/domains for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}"
+ serial: "{{ serial_number | default(5) }}"
+ gather_facts: false
+
+ tasks:
+ - name: "Delete server <{{ inventory_hostname }}>"
+ include_role:
+ name: hetzner-ansible-hcloud
+ tasks_from: _set_server_state
+ vars:
+ - server_state: "absent"
+
+ - name: "Delete DNS entry <{{ inventory_hostname }}> for <{{ domain }}>"
+ include_role:
+ name: hetzner-ansible-dns
+ tasks_from: _remove_dns
+ vars:
+ record_to_remove: '{{ inventory_hostname }}'
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-service-create.yml b/pmci-service-create.yml
new file mode 100644
index 0000000..3c8cc76
--- /dev/null
+++ b/pmci-service-create.yml
@@ -0,0 +1,60 @@
+---
+
+# 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
+
+#############################################################
+# Creating services for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ remote_user: root
+ vars:
+ ansible_ssh_host: "{{ stage_server_domain }}"
+ tenant_id: "{{ tenant.key }}" # legacy paramater, backwards compatibility
+ cluster_name: "{{ cluster.key }}" # legacy paramater, backwards compatibility
+ current_realm_name: "{{ tenant.key }}" # legacy paramater, backwards compatibility
+ connect_version: "{{ data.connect.version }}" # legacy paramater, backwards compatibility
+ connect_client_admin_username: "{{ data.connect.admin.username }}" # legacy paramater, backwards compatibility
+ connect_client_admin_password: "{{ data.connect.admin.password }}" # legacy paramater, backwards compatibility
+ connect_wordpress_buergerportal_username: "{{ data.wordpress.admin.username }}" # legacy paramater, backwards compatibility
+ connect_wordpress_buergerportal_password: "{{ data.wordpress.admin.password }}" # legacy paramater, backwards compatibility
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ roles:
+ - role: connect
+ when: "'connect' in group_names"
+
+ - role: connect_wordpress
+ when: "'connect_wordpress' in group_names"
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-service-delete.yml b/pmci-service-delete.yml
new file mode 100644
index 0000000..5d4a681
--- /dev/null
+++ b/pmci-service-delete.yml
@@ -0,0 +1,64 @@
+---
+
+# 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
+
+#############################################################
+# Removing services for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}"
+ serial: "{{ serial_number | default(1) }}"
+ gather_facts: false
+ vars:
+ ansible_ssh_host: "{{ stage_server_domain }}"
+ tenant_id: "{{ tenant.key }}" # legacy paramater, backwards compatibility
+ cluster_name: "{{ cluster.key }}" # legacy paramater, backwards compatibility
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ tasks:
+ - name: "Delete DNS entry <{{ inventory_hostname }}> for <{{ domain }}>"
+ include_role:
+ name: hetzner-ansible-dns
+ tasks_from: _remove_dns
+ vars:
+ record_to_remove: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-01-connect'
+ when: "'connect' in group_names"
+
+ - name: "Delete DNS entry <{{ inventory_hostname }}> for <{{ domain }}>"
+ include_role:
+ name: hetzner-ansible-dns
+ tasks_from: _remove_dns
+ vars:
+ record_to_remove: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-01-wordpress'
+ when: "'connect_wordpress' in group_names"
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-service-state-update.yml b/pmci-service-state-update.yml
new file mode 100644
index 0000000..4fc14f6
--- /dev/null
+++ b/pmci-service-state-update.yml
@@ -0,0 +1,89 @@
+---
+
+# Parameters:
+# playbook inventory
+# stage := the name of the stage (e.g. dev, int, qa, prod)
+# tenant_id := (unique key for the tenant, e.g. customer)
+# cluster_name := (business name for the cluster, e.g. product, department )
+# cluster_features := (services to setup, e.g. ['connect', 'wordpress', ...])
+# service_state := the state of the service (e.g. up, down, upgrade)
+# 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: "Check if ansible version is at least {{ ansible_minimal_version }}"
+ assert:
+ that:
+ - ansible_version.string is version(ansible_minimal_version, ">=")
+ msg: "The ansible version has to be at least {{ ansible_minimal_version }}"
+
+# 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_id }}-{{ cluster_name }}-{{ '%02d' | format(item|int) }}"
+ groups: "{{ ['stage_' + stage ] + [cluster_service] + cluster_features }}"
+ with_sequence: start=1 end={{ cluster_size | default(1) }}
+ changed_when: False
+
+#############################################################
+# Stopping services for created inventory
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ remote_user: root
+ vars:
+ service_state: up
+ ansible_ssh_host: "{{ stage_server_domain }}"
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ roles:
+ - role: service_state
+ vars:
+ service_id: "{{ connect_id }}"
+ when: "'connect' in group_names"
+
+ - role: service_state
+ vars:
+ service_id: "{{ wordpress_id }}"
+ when: "'connect_wordpress' in group_names"
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- hosts: "{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ gather_facts: false
+ connection: local
+ run_once: true
+ vars:
+ connect_jwt_username: "{{ management_admin_username }}"
+
+ tasks:
+ - name: "Sending smardigo management message to <{{ shared_service_url_management }}>"
+ include_tasks: tasks/smardigo_management_message.yml
diff --git a/pmci-tenant-create.yml b/pmci-tenant-create.yml
new file mode 100644
index 0000000..aa7f3fa
--- /dev/null
+++ b/pmci-tenant-create.yml
@@ -0,0 +1,66 @@
+---
+
+# Tenant creation
+# (keycloak realm)
+# (kibana space, user, role)
+
+# Parameters:
+# playbook inventory
+# stage := the name of the stage (e.g. dev, int, qa, prod)
+# tenant := object with tenant related data
+# id := uuid used in pmci
+# key := unique tenant key
+# name := name of the tenant
+# admin := teannt admin account
+# email :=
+# first_name :=
+# last_name :=
+# data :=
+# admin :=
+# username :=
+# password :=
+# 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
+ vars:
+ cluster:
+ key: pmci
+ service: 'pmci_tenant_create'
+ features: []
+
+#############################################################
+# Running the PMCI roles
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ gather_facts: false
+ connection: local
+ vars:
+ management_realm_name: "management"
+ management_base_url: "{{ stage }}-management-01-connect.{{ domain }}"
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ tasks:
+ - name: "Creating keycloak realm <{{ tenant.key }}>"
+ include_role:
+ name: pmci/tenant/create
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-tenant-delete.yml b/pmci-tenant-delete.yml
new file mode 100644
index 0000000..a5c8702
--- /dev/null
+++ b/pmci-tenant-delete.yml
@@ -0,0 +1,66 @@
+---
+
+# Tenant deletion
+# (keycloak realm)
+# (kibana space, user, role)
+
+# Parameters:
+# playbook inventory
+# stage := the name of the stage (e.g. dev, int, qa, prod)
+# tenant := object with tenant related data
+# id := uuid used in pmci
+# key := unique tenant key
+# name := name of the tenant
+# admin := teannt admin account
+# email :=
+# first_name :=
+# last_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
+ vars:
+ cluster:
+ key: pmci
+ service: 'realm'
+ features: []
+
+#############################################################
+# Running the PMCI roles
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ gather_facts: false
+ connection: local
+ vars:
+ management_realm_name: "management"
+ management_base_url: "{{ stage }}-management-01-connect.{{ domain }}"
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ tasks:
+ - name: "Delete keycloak realm <{{ tenant.key }}>"
+ include_role:
+ name: pmci/tenant/delete
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-tenant-edit.yml b/pmci-tenant-edit.yml
new file mode 100644
index 0000000..6b25b8d
--- /dev/null
+++ b/pmci-tenant-edit.yml
@@ -0,0 +1,66 @@
+---
+
+# Tenant maintenance
+# (keycloak realm)
+# (kibana space, user, role)
+
+# Parameters:
+# playbook inventory
+# stage := the name of the stage (e.g. dev, int, qa, prod)
+# tenant := object with tenant related data
+# id := uuid used in pmci
+# key := unique tenant key
+# name := name of the tenant
+# admin := teannt admin account
+# email :=
+# first_name :=
+# last_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
+ vars:
+ cluster:
+ key: pmci
+ service: 'pmci_realm'
+ features: []
+
+#############################################################
+# Running the PMCI roles
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ gather_facts: false
+ connection: local
+ vars:
+ management_realm_name: "management"
+ management_base_url: "{{ stage }}-management-01-connect.{{ domain }}"
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ tasks:
+ - name: "Edit keycloak realm <{{ tenant.key }}>"
+ include_role:
+ name: pmci/tenant/edit
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/pmci-tenant-sync.yml b/pmci-tenant-sync.yml
new file mode 100644
index 0000000..83501ec
--- /dev/null
+++ b/pmci-tenant-sync.yml
@@ -0,0 +1,68 @@
+---
+
+# Tenant maintenance
+# (keycloak realm)
+# (kibana space, user, role)
+
+# Parameters:
+# playbook inventory
+# stage := the name of the stage (e.g. dev, int, qa, prod)
+# tenant := object with tenant related data
+# id := uuid used in pmci
+# key := unique tenant key
+# name := name of the tenant
+# admin := teannt admin account
+# email :=
+# first_name :=
+# last_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
+ vars:
+ cluster:
+ key: pmci
+ service: 'pmci_realm'
+ features: []
+
+#############################################################
+# Running the PMCI roles
+#############################################################
+
+- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
+ serial: "{{ serial_number | default(1) }}"
+ gather_facts: false
+ connection: local
+ vars:
+ management_realm_name: "management"
+ management_base_url: "{{ stage }}-management-01-connect.{{ domain }}"
+ sma_management_scope_id: "pmci"
+ sma_management_role_id: "user"
+
+ pre_tasks:
+ - name: "Import autodiscover pre-tasks"
+ import_tasks: tasks/autodiscover_pre_tasks.yml
+ become: false
+ tags:
+ - always
+
+ tasks:
+ - name: "Updating assigned tenant ids for each user <{{ tenant.key }}>"
+ include_role:
+ name: pmci/tenant/sync
+
+#############################################################
+# Sending smardigo management message to process
+#############################################################
+
+- import_playbook: pmci-callback.yml
diff --git a/remove-database.yml b/remove-database.yml
index 98faa0f..6f60e1a 100644
--- a/remove-database.yml
+++ b/remove-database.yml
@@ -49,7 +49,7 @@
- "{{ item }}"
changed_when: False
with_items: "{{ cluster_features }}"
- when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'workflow_index', 'workflow_proxy', 'pdns']
+ when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'pdns']
- name: Add maria servers to hosts if necessary
add_host:
@@ -98,12 +98,6 @@
- role: webdav_postgres
when: "'webdav' in group_names"
- - role: workflow_index_postgres
- when: "'workflow_index' in group_names"
-
- - role: workflow_proxy_postgres
- when: "'workflow_proxy' in group_names"
-
- role: connect_wordpress_maria
when: "'connect_wordpress' in group_names"
diff --git a/restore-database-backup.yml b/restore-database-backup.yml
index 15a0511..4b19f5e 100644
--- a/restore-database-backup.yml
+++ b/restore-database-backup.yml
@@ -50,7 +50,7 @@
- "{{ item }}"
changed_when: False
with_items: "{{ cluster_features }}"
- when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'workflow_index', 'workflow_proxy', 'pdns']
+ when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea']
#############################################################
# Restoring databases for created inventory
@@ -76,12 +76,6 @@
- role: webdav_postgres
when: "'webdav' in group_names"
- - role: workflow_index_postgres
- when: "'workflow_index' in group_names"
-
- - role: workflow_proxy_postgres
- when: "'workflow_proxy' in group_names"
-
#############################################################
# Sending smardigo management message to process
#############################################################
diff --git a/roles/confirm_postgres/defaults/main.yml b/roles/confirm_postgres/defaults/main.yml
deleted file mode 100644
index 152483c..0000000
--- a/roles/confirm_postgres/defaults/main.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-confirm_postgres_database: '{{ stage }}_{{ tenant_id }}_{{ cluster_name }}_confirm'
-confirm_postgres_password: 'confirm-postgres-admin'
-
-postgres_acls:
- - name: "{{ confirm_postgres_database }}"
- password: "{{ confirm_postgres_password }}"
- trusted_cidr_entry: "{{ shared_service_network }}"
diff --git a/roles/confirm_postgres/tasks/main.yml b/roles/confirm_postgres/tasks/main.yml
deleted file mode 100644
index c9146e3..0000000
--- a/roles/confirm_postgres/tasks/main.yml
+++ /dev/null
@@ -1,18 +0,0 @@
----
-
-### tags:
-
-- name: "Updating database on {{ inventory_hostname }}"
- include_role:
- name: postgres
- tasks_from: _update_database_state
- when:
- - database_backup_state is not defined
-
-- name: "Creating/Restoring database backup on {{ inventory_hostname }}"
- include_role:
- name: postgres
- tasks_from: _create_database_backup.yml
- when:
- - database_backup_state is defined
- - database_backup_state in ['dump', 'restore']
diff --git a/roles/connect/vars/main.yml b/roles/connect/vars/main.yml
index 5267744..24a7fc3 100644
--- a/roles/connect/vars/main.yml
+++ b/roles/connect/vars/main.yml
@@ -37,8 +37,6 @@ connect_environment: [
"TENANT_ID: \"{{ connect_client_id }}\"",
"SMA_LANGUAGE_CODE: \"{{ connect_language_code | default('de') }}\"",
- "ADMIN_LOGIN: \"{{ connect_client_admin_username }}\"",
- "ADMIN_PASSWORD: \"{{ connect_client_admin_password }}\"",
"SMA_JWT_ENABLED: \"{{ connect_jwt_enabled | default('false') }}\"",
"SMA_JWT_SECRET: \"{{ connect_jwt_secret | default('') }}\"",
"SMA_CSRF_TOKEN_NAME: \"{{ connect_csrf_token_name | default('') }}\"",
@@ -105,7 +103,7 @@ connect_environment: [
"SMA_WEBDAV_JWT_SECRET: \"{{ webdav_jwt_secret }}\"",
"SPRINGDOC_SERVER_URL: \"{{ http_s }}://{{ connect_base_url }}\"",
-
+
"SMA_CORS_ORIGINS: \"{{ http_s }}://{{ connect_base_url }}:{{ admin_port_service }}\"",
"SMA_CORS_ALLOWED_METHODS: \"*\"",
"SMA_CORS_ALLOWED_HEADERS: \"*\"",
@@ -117,13 +115,15 @@ connect_environment: [
"LOG_LEVEL_DOCUMENT_INDEX: \"{{ connect_loglevel_document_index | default('INFO') }}\"",
"LOG_LEVEL_WORKFLOW_INDEX: \"{{ connect_loglevel_workflow_index | default('INFO') }}\"",
"LOG_LEVEL_WORKFLOW_ANALYSIS: \"{{ connect_loglevel_workflow_analysis | default('INFO') }}\"",
-
+
"OPENTRACING_JAEGER_ENABLED: \"{{ connect_opentracing_jaeger_enabled | default('false') }}\"",
"OPENTRACING_JAEGER_LOG_SPANS: \"{{ connect_opentracing_jaeger_log_spans | default('false') }}\"",
"OPENTRACING_JAEGER_SERVICE_NAME: \"{{ connect_opentracing_jaeger_service_name | default(connect_id) }}\"",
"OPENTRACING_JAEGER_HTTP_SENDER_URL: \"{{ connect_opentracing_jaeger_http_sender_url | default() }}\"",
"JDK_JAVA_OPTIONS: \"{{ ( connect_java_options + connect_java_options_default ) | join(' ') }}\"",
+
+ "SMA_CUSTOM_SCRIPTING_WHITELIST_FILE: \"/usr/share/smardigo/custom-whitelist\"",
]
connect_docker: {
@@ -147,6 +147,7 @@ connect_docker: {
environment: "{{ connect_environment + ( connect_environment_additional | default([])) }}",
volumes: [
'"./certs/ca/ca.crt:/usr/share/smardigo/ca.crt:ro"',
+ '"./config/custom-whitelist:/usr/share/smardigo/custom-whitelist:ro"',
],
networks: [
'"back-tier"',
diff --git a/roles/connect_realm/defaults/main.yml b/roles/connect_realm/defaults/main.yml
index 89f0f24..6781380 100644
--- a/roles/connect_realm/defaults/main.yml
+++ b/roles/connect_realm/defaults/main.yml
@@ -1,8 +1,5 @@
---
-connect_client_admin_password: "C0nnect-Admin!"
-connect_realm_admin_password: "C0nnect-Realm-Admin!"
-
client_web_origin_connect: "{{ http_s }}://{{ connect_base_url }}"
client_web_origin_wordpress: "{{ http_s }}://{{ wordpress_base_url }}"
client_web_origin_connect_external: "{{ http_s }}://{{ connect_external_subdomain | default('unset') }}.{{ domain }}"
@@ -46,9 +43,4 @@ current_realm_users: >-
[{{ current_realm_users_base }}]
{%- endif -%}
-current_realm_admin_users: [
- {
- "username": "{{ connect_realm_admin_username }}",
- "password": "{{ connect_realm_admin_password }}",
- }
-]
\ No newline at end of file
+current_realm_admin_users: []
diff --git a/roles/gitea_realm/defaults/main.yml b/roles/gitea_realm/defaults/main.yml
index 065bc70..04cab0b 100644
--- a/roles/gitea_realm/defaults/main.yml
+++ b/roles/gitea_realm/defaults/main.yml
@@ -18,13 +18,14 @@ current_realm_clients: [
}
]
-current_realm_users: [
- {
- "username": "{{ gitea_admin_username }}",
- "password": "{{ gitea_admin_password }}",
- "requiredActions": []
- }
-]
-current_realm_admin_user:
- username: "{{ gitea_realm_admin_username }}"
- password: "{{ gitea_realm_admin_password }}"
+current_realm_users:
+ - username: "{{ gitea_admin_username }}"
+ password: "{{ gitea_admin_password }}"
+ email: "{{ gitea_admin_email }}"
+ requiredActions: []
+
+current_realm_admin_users:
+ - username: "{{ gitea_realm_admin_username }}"
+ password: "{{ gitea_realm_admin_password }}"
+ email: "{{ gitea_admin_email }}"
+ requiredActions: []
diff --git a/roles/harbor_realm/defaults/main.yml b/roles/harbor_realm/defaults/main.yml
index 691cee5..7bc00a4 100644
--- a/roles/harbor_realm/defaults/main.yml
+++ b/roles/harbor_realm/defaults/main.yml
@@ -28,29 +28,17 @@ current_realm_groups: [
},
]
-current_realm_users: [
- {
- "username": "{{ harbor_oidc_admin_username }}",
- "password": "{{ harbor_oidc_admin_password }}",
- "email": "{{ harbor_oidc_admin_email }}",
- "requiredActions": []
- }
-]
-
-current_realm_admin_users: [
- {
- "username": "{{ harbor_oidc_admin_username }}",
- "password": "{{ harbor_oidc_admin_password }}",
- "email": "{{ harbor_oidc_admin_email }}",
- "requiredActions": []
- }
-]
+current_realm_users:
+ - username: "{{ harbor_oidc_admin_username }}"
+ password: "{{ harbor_oidc_admin_password }}"
+ email: "{{ harbor_oidc_admin_email }}"
+ requiredActions: []
-current_realm_admin_user:
- username: "{{ harbor_oidc_admin_username }}"
- password: "{{ harbor_oidc_admin_password }}"
- email: "{{ harbor_oidc_admin_email }}"
- requiredActions: []
+current_realm_admin_users:
+ - username: "{{ harbor_oidc_admin_username }}"
+ password: "{{ harbor_oidc_admin_password }}"
+ email: "{{ harbor_oidc_admin_email }}"
+ requiredActions: []
current_user_groupmembership: [
{
diff --git a/roles/infrastructure_realm/defaults/main.yml b/roles/infrastructure_realm/defaults/main.yml
index 4e80d62..5f6cb62 100644
--- a/roles/infrastructure_realm/defaults/main.yml
+++ b/roles/infrastructure_realm/defaults/main.yml
@@ -25,17 +25,6 @@ current_realm_clients: [
}
]
-current_realm_admin_user:
- username: "infrastructure-realm-admin"
- password: "{{ infrastructure_realm_admin_password_vault }}"
- email: "{{ argocd_admin_email }}"
- firstName: "Netgo"
- lastName: "Administrator"
- requiredActions: []
-
-current_realm_admin_users:
- - "{{ current_realm_admin_user }}"
-
current_realm_users:
- username: "{{ argocd_admin_username }}"
password: "{{ argocd_admin_password_vault }}"
@@ -43,7 +32,15 @@ current_realm_users:
firstName: "Netgo"
lastName: "Administrator"
requiredActions: []
-
+
+current_realm_admin_users:
+ - username: "infrastructure-realm-admin"
+ password: "{{ infrastructure_realm_admin_password_vault }}"
+ email: "{{ argocd_admin_email }}"
+ firstName: "Netgo"
+ lastName: "Administrator"
+ requiredActions: []
+
current_realm_groups:
- name: "argocd-admins"
diff --git a/roles/keycloak/tasks/_authenticate.yml b/roles/keycloak/tasks/_authenticate.yml
index a3c284b..dacbe74 100644
--- a/roles/keycloak/tasks/_authenticate.yml
+++ b/roles/keycloak/tasks/_authenticate.yml
@@ -1,12 +1,13 @@
---
-- name: "Authenticating with keycloak server"
+- name: "Authenticating with keycloak server <{{ shared_service_url_keycloak }}>"
+ delegate_to: 127.0.0.1
+ become: false
uri:
url: "{{ shared_service_url_keycloak }}/auth/realms/master/protocol/openid-connect/token"
method: POST
body_format: form-urlencoded
body: 'username={{ keycloak_admin_username }}&password={{ keycloak_admin_password }}&client_id=admin-cli&grant_type=password'
register: keycloak_authentication
- become: false
retries: 5
delay: 5
@@ -17,6 +18,7 @@
- name: "Printing access_token for keycloak server"
debug:
msg: "{{ access_token }}"
- become: false
+ tags:
+ - always
when:
- - debug
\ No newline at end of file
+ - debug
\ No newline at end of file
diff --git a/roles/keycloak/tasks/_create_realm_admin.yml b/roles/keycloak/tasks/_create_realm_admin.yml
index dcbb2e7..92ab129 100644
--- a/roles/keycloak/tasks/_create_realm_admin.yml
+++ b/roles/keycloak/tasks/_create_realm_admin.yml
@@ -1,5 +1,5 @@
---
-- name: "Reading users of realm {{ current_realm_name }}"
+- name: "Reading admin users of realm {{ current_realm_name }}"
uri:
url: "{{ shared_service_url_keycloak }}/auth/admin/realms/{{ current_realm_name }}/users"
method: GET
@@ -10,7 +10,7 @@
delegate_to: 127.0.0.1
become: false
-- name: "Printing realm users"
+- name: "Printing realm admin users"
debug:
msg: "{{ realm_users }}"
delegate_to: 127.0.0.1
@@ -18,13 +18,13 @@
when:
- debug
-- name: "Saving users of realm {{ current_realm_name }} as variable (fact)"
+- name: "Saving admin users of realm {{ current_realm_name }} as variable (fact)"
set_fact:
realm_users_json: "{{ realm_users.json }}"
delegate_to: 127.0.0.1
become: false
-- name: "Reading user ids of realm {{ current_realm_name }}"
+- name: "Reading admin user ids of realm {{ current_realm_name }}"
set_fact:
realm_user_usernames: "{{ realm_users_json | json_query(jmesquery) }}"
vars:
@@ -32,7 +32,7 @@
delegate_to: 127.0.0.1
become: false
-- name: "Printing usernames of realm {{ current_realm_name }}"
+- name: "Printing admin usernames of realm {{ current_realm_name }}"
debug:
msg: "{{ realm_user_usernames }}"
delegate_to: 127.0.0.1
@@ -40,7 +40,7 @@
when:
- debug
-- name: "Printing usernames for realm {{ current_realm_name }}"
+- name: "Printing admin usernames for realm {{ current_realm_name }}"
debug:
msg: "{{ current_realm_admin_users }}"
delegate_to: 127.0.0.1
@@ -48,7 +48,7 @@
when:
- debug
-- name: "Creating users for realm {{ current_realm_name }}"
+- name: "Creating admin users for realm {{ current_realm_name }}"
uri:
url: "{{ shared_service_url_keycloak }}/auth/admin/realms/{{ current_realm_name }}/users"
method: POST
@@ -68,3 +68,6 @@
- name: "Adding admin users from realm {{ current_realm_name }}"
include_tasks: _configure_realm_admin_users.yml
+ loop: "{{ current_realm_admin_users }}"
+ loop_control:
+ loop_var: current_realm_admin_user
diff --git a/roles/keycloak/tasks/_delete_realm.yml b/roles/keycloak/tasks/_delete_realm.yml
new file mode 100644
index 0000000..5dc7947
--- /dev/null
+++ b/roles/keycloak/tasks/_delete_realm.yml
@@ -0,0 +1,11 @@
+---
+
+- name: "Deleting keycloak realm <{{ tenant.key }}>"
+ community.general.keycloak_realm:
+ auth_client_id: admin-cli
+ auth_keycloak_url: "{{ shared_service_url_keycloak }}/auth"
+ auth_realm: master
+ auth_username: "{{ keycloak_admin_username }}"
+ auth_password: "{{ keycloak_admin_password }}"
+ realm: "{{ current_realm_name }}"
+ state: absent
diff --git a/roles/kibana/defaults/main.yaml b/roles/kibana/defaults/main.yaml
index c5c474e..b5845a4 100644
--- a/roles/kibana/defaults/main.yaml
+++ b/roles/kibana/defaults/main.yaml
@@ -129,3 +129,4 @@ kibana_technical_users:
typeMeta: "{}"
references: []
elastic_state: present
+
diff --git a/roles/kubernetes/awx/defaults/main.yml b/roles/kubernetes/awx/defaults/main.yml
index f587b51..1b64754 100644
--- a/roles/kubernetes/awx/defaults/main.yml
+++ b/roles/kubernetes/awx/defaults/main.yml
@@ -8,7 +8,6 @@ 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"
diff --git a/roles/kubernetes/awx/tasks/awx-config-cleanup.yml b/roles/kubernetes/awx/tasks/awx-config-cleanup.yml
index b2b8165..3936442 100644
--- a/roles/kubernetes/awx/tasks/awx-config-cleanup.yml
+++ b/roles/kubernetes/awx/tasks/awx-config-cleanup.yml
@@ -4,7 +4,7 @@
delegate_to: localhost
no_log: true
uri:
- url: "{{ awx_base_url }}/api/v2/{{ awx_rest_api_type }}/"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/{{ awx_rest_api_type }}/"
method: GET
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
diff --git a/roles/kubernetes/awx/tasks/awx-config-get-typ-id.yml b/roles/kubernetes/awx/tasks/awx-config-get-typ-id.yml
index 422f2ae..17846a7 100644
--- a/roles/kubernetes/awx/tasks/awx-config-get-typ-id.yml
+++ b/roles/kubernetes/awx/tasks/awx-config-get-typ-id.yml
@@ -8,7 +8,7 @@
- name: "Search {{ awx_rest_api_type }} informations for {{ awx_search_name }}"
delegate_to: localhost
uri:
- url: "{{ awx_base_url }}/api/v2/{{ awx_rest_api_type }}/?search={{ awx_search_name | urlencode }}"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/{{ awx_rest_api_type }}/?search={{ awx_search_name | urlencode }}"
method: GET
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
diff --git a/roles/kubernetes/awx/tasks/awx-config-job-template-credential.yml b/roles/kubernetes/awx/tasks/awx-config-job-template-credential.yml
index 87f259f..8f3deec 100644
--- a/roles/kubernetes/awx/tasks/awx-config-job-template-credential.yml
+++ b/roles/kubernetes/awx/tasks/awx-config-job-template-credential.yml
@@ -6,7 +6,7 @@
- name: "Get {{ job.name }} job_template credential id's from awx server"
delegate_to: localhost
uri:
- url: "{{ awx_base_url }}/api/v2/job_templates/{{ awx_job_template_id }}/credentials"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/job_templates/{{ awx_job_template_id }}/credentials"
method: GET
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
@@ -48,7 +48,7 @@
- name: "Add credential id {{ awx_credential_id }} to {{ job.name }} job_template"
delegate_to: localhost
uri:
- url: "{{ awx_base_url }}/api/v2/job_templates/{{ awx_job_template_id }}/credentials/"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/job_templates/{{ awx_job_template_id }}/credentials/"
method: POST
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
diff --git a/roles/kubernetes/awx/tasks/awx-config-job-template.yml b/roles/kubernetes/awx/tasks/awx-config-job-template.yml
index d30d682..bf6d7dc 100644
--- a/roles/kubernetes/awx/tasks/awx-config-job-template.yml
+++ b/roles/kubernetes/awx/tasks/awx-config-job-template.yml
@@ -29,7 +29,7 @@
playbook: "{{ job.playbook_file | default(job.name + '.yml') }}"
ask_variables_on_launch: true
uri:
- url: "{{ awx_base_url }}/api/v2/job_templates/"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/job_templates/"
method: POST
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
diff --git a/roles/kubernetes/awx/tasks/awx-config-pmci-template.yml b/roles/kubernetes/awx/tasks/awx-config-pmci-template.yml
new file mode 100644
index 0000000..9979eb5
--- /dev/null
+++ b/roles/kubernetes/awx/tasks/awx-config-pmci-template.yml
@@ -0,0 +1,68 @@
+---
+
+- name: "Initialize VARs"
+ set_fact:
+ awx_job_template_id: "None"
+ job:
+ name: "{{ item | regex_replace('^(.*)/pmci-(.*).yml$', 'pmci-\\2') }}"
+ description: "{{ item | regex_replace('^(.*)/pmci-(.*).yml$', 'pmci-\\2') }}"
+ changed_when: False
+
+- name: "Search job template {{ job.name }}"
+ include_tasks: awx-config-get-typ-id.yml
+ vars:
+ awx_rest_api_type: job_templates
+ awx_search_key: name
+ awx_search_name: "{{ job.name }}"
+
+- name: "Update awx_job_template_id"
+ set_fact:
+ awx_job_template_id: "{{ awx_type_id }}"
+ when:
+ - (awx_type_id | default(None)) != "None"
+
+- name: "Add job template {{ job.name }}"
+ delegate_to: localhost
+ vars:
+ name: "{{ job.name }}"
+ description: "{{ job.description | default(job.name) }}"
+ inventory_id: "{{ awx_localhost_inventory_id }}"
+ project_id: "{{ awx_hetzner_ansible_project_id }}"
+ execution_environment_id: "{{ awx_ee_hetzner_ansible_id }}"
+ playbook: "{{ job.playbook_file | default(job.name + '.yml') }}"
+ ask_variables_on_launch: true
+ uri:
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/job_templates/"
+ method: POST
+ user: "{{ awx_rest_api_access_user }}"
+ password: "{{ awx_rest_api_access_pw }}"
+ headers:
+ Content-Type: "application/json"
+ Accept: "application/json"
+ body_format: "json"
+ body: "{{ lookup('template','awx-create-job-template.json.j2') }}"
+ force_basic_auth: true
+ validate_certs: false
+ status_code: 201
+ register: response
+ changed_when: response.status == 201
+ when: awx_job_template_id == "None"
+
+- name: "Search job template {{ job.name }}"
+ include_tasks: awx-config-get-typ-id.yml
+ vars:
+ awx_rest_api_type: job_templates
+ awx_search_key: name
+ awx_search_name: "{{ job.name }}"
+ when: awx_job_template_id == "None"
+
+- name: "Update awx_job_template_id"
+ set_fact:
+ awx_job_template_id: "{{ awx_type_id }}"
+ when: awx_job_template_id == "None"
+
+- include_tasks: awx-config-job-template-credential.yml
+ loop: "{{ job_templates_credentials }}"
+ loop_control:
+ loop_var: awx_credential_id
+ when: awx_job_template_id is defined
diff --git a/roles/kubernetes/awx/tasks/awx-config.yml b/roles/kubernetes/awx/tasks/awx-config.yml
index e3828ae..d8ec870 100644
--- a/roles/kubernetes/awx/tasks/awx-config.yml
+++ b/roles/kubernetes/awx/tasks/awx-config.yml
@@ -1,4 +1,5 @@
---
+
- name: "Remove all "
include_tasks: awx-config-cleanup.yml
vars:
@@ -25,7 +26,7 @@
password: "{{ awx_ansible_password }}"
is_system_auditor: "true"
uri:
- url: "{{ awx_base_url }}/api/v2/users/"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/users/"
method: POST
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
@@ -108,7 +109,7 @@
- name: "Add credentials <{{ awx_credential_machine_hetzner_name }}> with user: {{ ansible_awx_user_id }}"
delegate_to: localhost
uri:
- url: "{{ awx_base_url }}/api/v2/credentials/"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/credentials/"
method: POST
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
@@ -167,7 +168,7 @@
- name: "Add credentials <{{ stage }}-gitea>"
delegate_to: localhost
uri:
- url: "{{ awx_base_url }}/api/v2/credentials/"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/credentials/"
method: POST
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
@@ -225,12 +226,16 @@
awx_rest_api_type: credentials
awx_search_key: name
awx_search_name: "hetzner-ansible-vault"
+ tags:
+ - always
- name: "Update awx_credential_hetzner_ansible_vault_id"
set_fact:
awx_credential_hetzner_ansible_vault_id: "{{ awx_type_id }}"
when:
- awx_type_id != "None"
+ tags:
+ - always
- name: "Add credentials "
delegate_to: localhost
@@ -240,7 +245,7 @@
credential_type_name: "Vault"
vault_password: "{{ ansible_vault_password }}"
uri:
- url: "{{ awx_base_url }}/api/v2/credentials/"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/credentials/"
method: POST
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
@@ -307,7 +312,7 @@
username: "{{ harbor_username }}"
password: "{{ harbor_token }}"
uri:
- url: "{{ awx_base_url }}/api/v2/credentials/"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/credentials/"
method: POST
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
@@ -364,7 +369,7 @@
credential: "{{ awx_credential_harbor_id }}"
pull: "always"
uri:
- url: "{{ awx_base_url }}/api/v2/execution_environments/"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/execution_environments/"
method: POST
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
@@ -418,7 +423,7 @@
name: "localhost"
description: "localhost"
uri:
- url: "{{ awx_base_url }}/api/v2/inventories/"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/inventories/"
method: POST
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
@@ -484,7 +489,7 @@
default_environment_id: "{{ awx_ee_hetzner_ansible_id }}"
credential_id: '{{ awx_credential_stagedspecific_gitea_id }}'
uri:
- url: "{{ awx_base_url }}/api/v2/projects/"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/v2/projects/"
method: POST
user: "{{ awx_rest_api_access_user }}"
password: "{{ awx_rest_api_access_pw }}"
@@ -537,3 +542,8 @@
loop: "{{ awx_job_templates | flatten(levels=1) }}"
loop_control:
loop_var: job
+
+- name: "Create job templates"
+ include_tasks: awx-config-pmci-template.yml
+ with_fileglob:
+ - "{{ playbook_dir }}/pmci-*.yml"
diff --git a/roles/kubernetes/awx/tasks/main.yml b/roles/kubernetes/awx/tasks/main.yml
index 8998e4c..4741a27 100644
--- a/roles/kubernetes/awx/tasks/main.yml
+++ b/roles/kubernetes/awx/tasks/main.yml
@@ -1,14 +1,9 @@
---
-- name: "Set awx_base_url"
- set_fact:
- awx_base_url: "https://{{ stage_kube }}-awx.{{ domain }}"
- tags:
- - awx
- name: "Checkin if awx in k8s cluster is avail"
delegate_to: localhost
uri:
- url: "{{ awx_base_url }}/api/login"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/login"
method: GET
user: "{{ awx_admin_username }}"
password: "{{ awx_admin_password }}"
@@ -28,7 +23,7 @@
- name: "Authenticating with awx server"
delegate_to: localhost
uri:
- url: "{{ awx_base_url }}/api/login"
+ url: "https://{{ shared_service_kube_awx_hostname }}/api/login"
method: GET
user: "{{ awx_admin_username }}"
password: "{{ awx_admin_password }}"
@@ -58,6 +53,7 @@
args:
apply:
tags:
- - awx
+ - update_awx_config
tags:
- - awx
+ - never # shouldn't be done automatically due to removal logic
+ - update_awx_config
diff --git a/roles/management/defaults/main.yml b/roles/management/defaults/main.yml
index a2be646..b59a976 100644
--- a/roles/management/defaults/main.yml
+++ b/roles/management/defaults/main.yml
@@ -31,5 +31,6 @@ current_realm_password_policy: ''
connect_config_delete_scope_enabled: true
connect_configurations:
+ - pmci
- backup
- provisioning
diff --git a/roles/pmci/tenant/create/defaults/main.yml b/roles/pmci/tenant/create/defaults/main.yml
new file mode 100644
index 0000000..6357517
--- /dev/null
+++ b/roles/pmci/tenant/create/defaults/main.yml
@@ -0,0 +1,15 @@
+---
+
+current_realm_name: "{{ tenant.key }}"
+current_realm_display_name: "{{ tenant.name }}"
+
+current_realm_users: []
+
+current_realm_clients: []
+
+current_realm_admin_users:
+ - username: "{{ data.admin.username }}"
+ password: "{{ data.admin.password }}"
+ email: "{{ tenant.admin.email }}"
+ firstName: "{{ tenant.admin.first_name }}"
+ lastName: "{{ tenant.admin.last_name }}"
diff --git a/roles/pmci/tenant/create/tasks/main.yml b/roles/pmci/tenant/create/tasks/main.yml
new file mode 100644
index 0000000..c8371e5
--- /dev/null
+++ b/roles/pmci/tenant/create/tasks/main.yml
@@ -0,0 +1,27 @@
+---
+
+- name: "Authenticate on keycloak "
+ include_role:
+ name: keycloak
+ tasks_from: _authenticate
+
+- name: "Creating realm <{{ current_realm_name }}>"
+ include_role:
+ name: keycloak
+ tasks_from: _configure_realm
+
+- name: "Creating admin users for realm <{{ current_realm_name }}>"
+ include_role:
+ name: keycloak
+ tasks_from: _create_realm_admin
+ when:
+ - data is defined
+ - data.admin is defined
+
+- name: "Creating users for realm <{{ current_realm_name }}>"
+ include_role:
+ name: keycloak
+ tasks_from: _create_realm_users
+ when:
+ - data is defined
+ - data.admin is defined
diff --git a/roles/pmci/tenant/delete/defaults/main.yml b/roles/pmci/tenant/delete/defaults/main.yml
new file mode 100644
index 0000000..6357517
--- /dev/null
+++ b/roles/pmci/tenant/delete/defaults/main.yml
@@ -0,0 +1,15 @@
+---
+
+current_realm_name: "{{ tenant.key }}"
+current_realm_display_name: "{{ tenant.name }}"
+
+current_realm_users: []
+
+current_realm_clients: []
+
+current_realm_admin_users:
+ - username: "{{ data.admin.username }}"
+ password: "{{ data.admin.password }}"
+ email: "{{ tenant.admin.email }}"
+ firstName: "{{ tenant.admin.first_name }}"
+ lastName: "{{ tenant.admin.last_name }}"
diff --git a/roles/pmci/tenant/delete/tasks/main.yml b/roles/pmci/tenant/delete/tasks/main.yml
new file mode 100644
index 0000000..c26b6f8
--- /dev/null
+++ b/roles/pmci/tenant/delete/tasks/main.yml
@@ -0,0 +1,11 @@
+---
+
+- name: "Authenticate on keycloak "
+ include_role:
+ name: keycloak
+ tasks_from: _authenticate
+
+- name: "Creating realm <{{ current_realm_name }}>"
+ include_role:
+ name: keycloak
+ tasks_from: _delete_realm
diff --git a/roles/pmci/tenant/edit/defaults/main.yml b/roles/pmci/tenant/edit/defaults/main.yml
new file mode 100644
index 0000000..6357517
--- /dev/null
+++ b/roles/pmci/tenant/edit/defaults/main.yml
@@ -0,0 +1,15 @@
+---
+
+current_realm_name: "{{ tenant.key }}"
+current_realm_display_name: "{{ tenant.name }}"
+
+current_realm_users: []
+
+current_realm_clients: []
+
+current_realm_admin_users:
+ - username: "{{ data.admin.username }}"
+ password: "{{ data.admin.password }}"
+ email: "{{ tenant.admin.email }}"
+ firstName: "{{ tenant.admin.first_name }}"
+ lastName: "{{ tenant.admin.last_name }}"
diff --git a/roles/pmci/tenant/edit/tasks/main.yml b/roles/pmci/tenant/edit/tasks/main.yml
new file mode 100644
index 0000000..c8371e5
--- /dev/null
+++ b/roles/pmci/tenant/edit/tasks/main.yml
@@ -0,0 +1,27 @@
+---
+
+- name: "Authenticate on keycloak "
+ include_role:
+ name: keycloak
+ tasks_from: _authenticate
+
+- name: "Creating realm <{{ current_realm_name }}>"
+ include_role:
+ name: keycloak
+ tasks_from: _configure_realm
+
+- name: "Creating admin users for realm <{{ current_realm_name }}>"
+ include_role:
+ name: keycloak
+ tasks_from: _create_realm_admin
+ when:
+ - data is defined
+ - data.admin is defined
+
+- name: "Creating users for realm <{{ current_realm_name }}>"
+ include_role:
+ name: keycloak
+ tasks_from: _create_realm_users
+ when:
+ - data is defined
+ - data.admin is defined
diff --git a/roles/pmci/tenant/sync/defaults/main.yml b/roles/pmci/tenant/sync/defaults/main.yml
new file mode 100644
index 0000000..6357517
--- /dev/null
+++ b/roles/pmci/tenant/sync/defaults/main.yml
@@ -0,0 +1,15 @@
+---
+
+current_realm_name: "{{ tenant.key }}"
+current_realm_display_name: "{{ tenant.name }}"
+
+current_realm_users: []
+
+current_realm_clients: []
+
+current_realm_admin_users:
+ - username: "{{ data.admin.username }}"
+ password: "{{ data.admin.password }}"
+ email: "{{ tenant.admin.email }}"
+ firstName: "{{ tenant.admin.first_name }}"
+ lastName: "{{ tenant.admin.last_name }}"
diff --git a/roles/pmci/tenant/sync/tasks/main.yml b/roles/pmci/tenant/sync/tasks/main.yml
new file mode 100644
index 0000000..2fdb804
--- /dev/null
+++ b/roles/pmci/tenant/sync/tasks/main.yml
@@ -0,0 +1,55 @@
+---
+
+- name: "Authenticate on keycloak "
+ include_role:
+ name: keycloak
+ tasks_from: _authenticate
+
+- name: "Creating smardigo user token"
+ delegate_to: 127.0.0.1
+ become: false
+ smardigo_user_token:
+ secret: "{{ connect_jwt_secret }}"
+ user_id: "{{ management_admin_username }}"
+ register: smardigo_user_token_result
+
+- name: "Setting smardigo_auth_token_value as fact"
+ set_fact:
+ smardigo_auth_token_value: "{{ smardigo_user_token_result.token }}"
+
+- name: "Reading all pmci users from <{{ management_base_url }}>"
+ delegate_to: 127.0.0.1
+ become: false
+ uri:
+ url: "{{ http_s }}://{{ management_base_url }}/api/v1/scopes/{{ sma_management_scope_id }}/groups/workflow/members?roleIds={{ sma_management_role_id }}"
+ method: GET
+ headers:
+ "Smardigo-User-Token": "{{ smardigo_auth_token_value }}"
+ status_code: [200,201]
+ register: pmci_users_results
+
+- name: "Reading users from <{{ management_base_url }}>"
+ delegate_to: 127.0.0.1
+ become: false
+ set_fact:
+ pmci_users: "{{ pmci_users_results.json | json_query(querystr1) | json_query(querystr2) | unique | sort | default([]) }}"
+ vars:
+ querystr1: "[*].id"
+ querystr2: "[]"
+
+- name: "Reading tenants from <{{ management_base_url }}>"
+ delegate_to: 127.0.0.1
+ become: false
+ uri:
+ url: "{{ http_s }}://{{ management_base_url }}/api/v1/scopes/pmci/tags/latest/datasources/data-entity-tenants/query"
+ method: GET
+ headers:
+ "Smardigo-User-Token": "{{ smardigo_auth_token_value }}"
+ status_code: [200,201]
+ register: pmci_tenants_results
+
+- name: "Updating assigned tenants for each user"
+ include_tasks: update_user_tenants.yml
+ loop: '{{ pmci_users }}'
+ loop_control:
+ loop_var: current_user_id
diff --git a/roles/pmci/tenant/sync/tasks/update_user_tenants.yml b/roles/pmci/tenant/sync/tasks/update_user_tenants.yml
new file mode 100644
index 0000000..9910f00
--- /dev/null
+++ b/roles/pmci/tenant/sync/tasks/update_user_tenants.yml
@@ -0,0 +1,59 @@
+---
+
+- name: "Reading users by username <{{ current_user_id }}> from realm <{{ management_realm_name }}>"
+ delegate_to: 127.0.0.1
+ become: false
+ uri:
+ url: "{{ shared_service_url_keycloak }}/auth/admin/realms/{{ management_realm_name }}/users?username={{ current_user_id }}"
+ method: GET
+ headers:
+ Authorization: "Bearer {{ access_token }} "
+ status_code: [200]
+ register: keycloak_user_result
+
+- name: "Reading user id for username <{{ current_user_id }}>"
+ set_fact:
+ keycloak_user_id: "{{ keycloak_user_result.json | json_query(querystr1) | first }}"
+ vars:
+ querystr1: "[*].id"
+
+- name: "Reading user attibutes for username <{{ current_user_id }}>"
+ set_fact:
+ keycloak_user_attributes: "{{ keycloak_user_result.json | json_query(querystr1) | first | default([]) }}"
+ vars:
+ querystr1: "[*].attributes"
+
+- name: "Calculate assigned tenant ids for username <{{ current_user_id }}>"
+ set_fact:
+ user_tenant_ids: "\
+ {% set list= [] %}\
+ {% for tenant in pmci_tenants_results.json %}\
+ {% for user in tenant.user_ids %}\
+ {% if user == current_user_id %}\
+ {{ list.append(tenant.key) }}\
+ {% endif %}\
+ {% endfor %}\
+ {% endfor %}\
+ {{ list | list | unique | sort }}"
+
+- name: "Calculate assigned tenant ids for username <{{ current_user_id }}>"
+ set_fact:
+ keycloak_user_attributes_tenant_ids:
+ tenantIds: "{{ (['###'] + user_tenant_ids) | join(',') }}"
+
+- name: "Calculate assigned tenant ids for username <{{ current_user_id }}>"
+ set_fact:
+ keycloak_user_attributes: "{{ keycloak_user_attributes | combine( keycloak_user_attributes_tenant_ids ) }}"
+
+- name: "Updating user attributes for username <{{ current_user_id }}>"
+ delegate_to: 127.0.0.1
+ become: false
+ uri:
+ url: "{{ shared_service_url_keycloak }}/auth/admin/realms/{{ management_realm_name }}/users/{{ keycloak_user_id }}"
+ method: PUT
+ body_format: json
+ body: '{"attributes": {{ keycloak_user_attributes }}}'
+ headers:
+ Content-Type: "application/json"
+ Authorization: "Bearer {{ access_token }}"
+ status_code: [204]
diff --git a/roles/workflow_index_postgres/defaults/main.yml b/roles/workflow_index_postgres/defaults/main.yml
deleted file mode 100644
index 145b47b..0000000
--- a/roles/workflow_index_postgres/defaults/main.yml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-
-workflow_index_postgres_database: "{{ stage }}_{{ tenant_id }}_workflow_index"
-workflow_index_postgres_password: "workflow-index-postgres-admin"
-
-postgres_acls:
- - name: "{{ workflow_index_postgres_database }}"
- password: "{{ workflow_index_postgres_password }}"
- trusted_cidr_entry: "{{ shared_service_network }}"
-
-database_create: True
-database_backup: False
-database_restore: False
diff --git a/roles/workflow_index_postgres/tasks/main.yml b/roles/workflow_index_postgres/tasks/main.yml
deleted file mode 100644
index 1f56aac..0000000
--- a/roles/workflow_index_postgres/tasks/main.yml
+++ /dev/null
@@ -1,18 +0,0 @@
----
-
-### tags:
-
-- name: "Updating database on {{ inventory_hostname }}"
- include_role:
- name: postgres
- tasks_from: _update_database_state
- when:
- - database_backup_state is not defined
-
-- name: "Creating/Restoring database backup on {{ inventory_hostname }}"
- include_role:
- name: postgres
- tasks_from: _create_database_backup.yml
- when:
- - database_backup_state is defined
- - database_backup_state in ['dump', 'restore']
diff --git a/roles/workflow_proxy_postgres/defaults/main.yml b/roles/workflow_proxy_postgres/defaults/main.yml
deleted file mode 100644
index b06ace8..0000000
--- a/roles/workflow_proxy_postgres/defaults/main.yml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-
-workflow_proxy_postgres_database: "{{ stage }}_{{ tenant_id }}_workflow_proxy"
-workflow_proxy_postgres_password: "workflow-proxy-postgres-admin"
-
-postgres_acls:
- - name: "{{ workflow_proxy_postgres_database }}"
- password: "{{ workflow_proxy_postgres_password }}"
- trusted_cidr_entry: "{{ shared_service_network }}"
-
-database_create: True
-database_backup: False
-database_restore: False
diff --git a/roles/workflow_proxy_postgres/tasks/main.yml b/roles/workflow_proxy_postgres/tasks/main.yml
deleted file mode 100644
index 2b49eb9..0000000
--- a/roles/workflow_proxy_postgres/tasks/main.yml
+++ /dev/null
@@ -1,18 +0,0 @@
----
-
-### tags:
-
-- name: "Updating database on {{ inventory_hostname }}"
- include_role:
- name: postgres
- tasks_from: _update_database_state
- when:
- - database_backup_state is not defined
-
-- name: "Creating/Restoring database backup on {{ inventory_hostname }}"
- include_role:
- name: postgres
- tasks_from: _create_database_backup.yml
- when:
- - database_backup_state is defined
- - database_backup_state in ['dump', 'restore']
diff --git a/roles/workflow_proxy_realm/defaults/main.yml b/roles/workflow_proxy_realm/defaults/main.yml
deleted file mode 100644
index 4b4ea52..0000000
--- a/roles/workflow_proxy_realm/defaults/main.yml
+++ /dev/null
@@ -1,35 +0,0 @@
----
-
-workflow_proxy_client_id: "{{ cluster_name }}"
-
-workflow_proxy_base_url: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}.{{ domain }}"
-
-current_realm_clients: [
- {
- name: '{{ workflow_proxy_client_id }}',
- clientId: "{{ workflow_proxy_client_id }}",
- admin_url: '',
- root_url: '',
- redirect_uris: '
- [
- "http://{{ workflow_proxy_base_url }}/*",
- "https://{{ workflow_proxy_base_url }}/*",
- ]',
- secret: '{{ workflow_proxy_client_id }}',
- web_origins: '
- [
- "http://{{ workflow_proxy_base_url }}/*",
- "https://{{ workflow_proxy_base_url }}/*",
- ]',
- }
-]
-
-current_realm_users: [
- {
- "username": "{{ connect_client_admin_username }}",
- "password": "{{ connect_client_admin_password }}",
- }
-]
-current_realm_admin_user:
- username: "{{ connect_realm_admin_username }}"
- password: "{{ connect_realm_admin_password }}"
diff --git a/roles/workflow_proxy_realm/tasks/main.yml b/roles/workflow_proxy_realm/tasks/main.yml
deleted file mode 100644
index 1091c13..0000000
--- a/roles/workflow_proxy_realm/tasks/main.yml
+++ /dev/null
@@ -1,25 +0,0 @@
----
-
-### tags:
-
-- name: "Setup realm for {{ inventory_hostname }}"
- include_role:
- name: keycloak
- tasks_from: _authenticate
-
-- name: "Setup realm for {{ inventory_hostname }}"
- include_role:
- name: keycloak
- tasks_from: _configure_realm
- vars:
- current_realm_password_policy: ''
-
-- name: "Create realm users"
- include_role:
- name: keycloak
- tasks_from: _create_realm_users
-
-- name: "Create realm admin"
- include_role:
- name: keycloak
- tasks_from: _create_realm_admin
diff --git a/roles/workflow_proxy_realm/vars/main.yml b/roles/workflow_proxy_realm/vars/main.yml
deleted file mode 100644
index ed97d53..0000000
--- a/roles/workflow_proxy_realm/vars/main.yml
+++ /dev/null
@@ -1 +0,0 @@
----
diff --git a/smardigo/package.sh b/smardigo/package.sh
index bb5f93b..e05fb0e 100755
--- a/smardigo/package.sh
+++ b/smardigo/package.sh
@@ -8,3 +8,6 @@ zip -r template.zip template/
rm -f backup.zip
zip -r backup.zip backup/
+
+rm -f pmci.zip
+zip -r pmci.zip pmci/
\ No newline at end of file
diff --git a/smardigo/pmci/app/process.json b/smardigo/pmci/app/process.json
index f440734..1565857 100644
--- a/smardigo/pmci/app/process.json
+++ b/smardigo/pmci/app/process.json
@@ -1,61 +1,107 @@
{
"configType" : "process",
"configKey" : "process",
- "name" : "PMCI",
+ "name" : "Smardigo as a Service",
"imageUrl" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAhGVYSWZNTQAqAAAACAAFARIAAwAAAAEAAQAAARoABQAAAAEAAABKARsABQAAAAEAAABSASgAAwAAAAEAAgAAh2kABAAAAAEAAABaAAAAAAAAAGAAAAABAAAAYAAAAAEAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABaNsN0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACZmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkN7zdgAABLLSURBVHgB5VsJdFRVmv5SqSWVhZAdJCxJCCSBhE12ZU1kdQEasQFPO31AT4t4lKbpHhWPg3TPNNJuLfRp6B7EARXpBkXWRlYRFVkDoSALgSxsIRvZqipLzf/dqpdUQpCUJnMGuedUvVvvvfv///dv97/31fNCk7Zv3z796NGja3j63dWrI3vHxEwNCAxM9jWbE/R6faQXYGoy5P/VTwdgq6muzqu0Ws+WlZZ+cSYra9Pzc+fmUUh3bM0KzRt4YeXKlUGHvvpqZXpGhrWurs5xtzbKTgyHDh0SSCuDiE3DyH6jpl34bNu2lNNnzhS6gbZLv1qI1Upz3A0fykqZ5UPZVSMmYiNoDWu9ArQTu3btmpV/+bI2xiZgidpBTd6NH5ex6MI2giI2YmykBA08taOBF7A1dzPwpsZyYanRlHCLJzA+NLcn+KYEfkK/lRKIVcsJOrpDUlLS73v36hUsXcaMN8/9FJsLm51YiZkYvTnV9ende01IcLBeLK3zkvZTBE9MhCZKUBhtdntSbFLS+3rO891jYji3V8vHwBvbvDkcFIQSOVlJX+ld+922ApBpNTH3zs2dqmeR4zK6HNre+DKdQOftjeY4yZQDL52KyjZTgTtWYtf7+vgkkBtdo824kr4A9xLgBG8vr0D+0eMoOHVasQzrk4hO9/eH0d8P4heQYqNNFeEKAxC7Xm8wRFIK7aSSqBW/lKuLixM4LZx94EucW74SZTs2QgdVeCIbNQiYMB1xC+eh28gH6u9liLSFV2pYiV0vrtg2tb2Y0uFwujv1WXA+Haf//FcUrHgTpqih8BvzqJzVAsEB+7lcfDd2FC7OW4DE+c8grGcPZQYVFl7inNqt6mzrfBG7V3p6uiM2NhYyA7SatjV3p8yVxcWwbPgnLvxqrli8J0yj4+Cw2WE/nCZ2z1FI9OgC4/Be8DIaYdt3DnU4j+i/rEb8jGnwDQpq9bCgV+ok12RkZLh8sHUUquKcbkt3r62pQfbeAzj70h9hPbYb5mET4GVqANjhlSXoOGKY4nzl4GFcXfqqm4KikSUKy//7J0j4w28RNXokvPV6ZSRxq1bND63iAe5xTkRXUs8g7b3VKFz9LkzxD0LfKRQ1lwthO3sQYc8uQK9n5yCiV3wjtV9LsyBt5d9QsFJCJGEE9PeFoCb/BmyWLxE693kkPDcXHZN6qzEMix+TH9w94McpQKyhiInF2Yov5cCybgPyXlkkrtULxjHd4bDaUXV4B3z6jkXCspcQPWak8hCGiVKcjGOi4/RHYBfoNYv+AOvJPU6v8THCvjdTwiUNkUuXIX72DAR17aL4OfODBJqH03erKECbzylJxY1CnN+8BdlPvyrxWgHTiOEKkG1/qsTzRUSvdMVz8O3juVHeKCqSvLEJF55l3ugG06gkFV62g4ckF/ojatUS9JzyCPxCQxoU4UH98KMVoIGvtduRsXM3zv/mj7ClfwmfweOg8zej+lQO7DeOo8OiV9Brzi8QGtv9FkEpBOd8NiZLbbrTaPP8jYxMpP1tLa4uWwpjaH8Y+nRBXXkVrN/ugqnHA+j5xu8QOz4F3pI8lTe0UAnuCvC4+NEELM2/jL3PvIBTj06WycQbvmMfQ11ZFSr2fArf5L4Y9s0RjPivJQp8XW2dc5ZxCSjbCyoLe8tvfpiReY5NhYKEB8dQcaRBWqRJ2uRBXjDpFW/KQFmYeAnM0+ZRDtA0V369AHtG/Qw1ljwYR0ghWVML6+GdMA1IRvzrC1XW1vuYlEDKtV3AKZxGo6LKivxrBUreThFh8DP73DIVa2PpHTVWG7L3HYBl8XLYju2Bz7BxgF6qyoNnoU/ojLH7NsI/POwWGs0pRJPB82nQpeGMLdtgtRyE36hHlEvaju5G1zf/jMSnZsMc1F7x1FzSvbbXGB8+eQbPv78Zxy5dV/cO6BqOd5+agmF9ezcCoI0lLSo0dsJDiBwyCKffX4dLC+bDdH+K5IfeqNi/BZSp35ynqGGPkqJHIcBavk7m9+LjqTCYJDGJ5W1H96LH2vUY9OJzCjyF1Sznrn3N7Y9b0jH8ueU4VlyGqIhA9WF/+HN/wglLRqNw0MZTEaRJ2lQwefVYu07xpgwGYxKKT5wW2WQN4ZqRtLF3OrZcAaJZJqva6hrYC4vhFW5GnQhuHjUJcVNZ1qIhETUzLel0ai2OVZ/vAToFIdpsQna1rA3kwz46BWLVVrmmWkOCdJ1QVlX5QZTAFjf1MZhHTlIyeEWYJekWiWzVzorZg1zQcgW4JGF977ALIz8DatKuot3gvjD6+TZrddcQFfeM41JZBR7IuQb4mpAnnqS1XPb9zNiQmYeC4lJ404oCQnYztVvqj5o3kGe7Yf1Ehisii1HJRNk8bR4rQEwBiDWVICiGMbi9msK4lrhTM+j1iJDChuD0QocexVYtOAOEZrEUTXP+tBrfpp6tnyVIl7nDvfEXFWoIbMee85JKtBpF97u/v++xArwI3mCAo6oa3uFdUJ51EbbyclWrCzLlCU1ZUthaAcJMP2NwIpBdgATxgghvHe6TTB5l0CNMjl3NRmzJvoIhC9/Gy3/5AHlXC5Q3OKfJWxVcXVIqFWI6dIG+IpOoVGTztHnPnz//tZCQkHo3/T4CBMIkmL15K2qKb8K7Q3tUfXYSeZajMMd0RWCnTk7PcFmM97s3/o7r1hkXr+bjX4csKNfrUFZuRcmNMhQXl6NUlBQfHICIEH9sOpmJt/Z8jTh/I6Ij74PJ6NytYzIlWdIyd+oIKQtQsvUjmBP6IGbqw9CJl9HD1E3uzJv0Ob5IKs6WK8DJlUZG7hf7UbprI4wdo+AdEwr7mRxcevM1FFV7wa9LpCpRyUDNBmQsffVbBPORFeGEwf0wKLYjuvmZMCyqI16anoz5D4+E2W7F9u/SUWDQoV94e9SKRT/YeQTfWs4jNjwInTuES2iIEYQOaQeEh6PbpIekJngAFRdz0WV8stMTPVCAR4UQNcvYt5beRMbWHciYvQS1OAefB2WpK4nLuv+E6CcX3d5ZgbjHpyGgQ4TSu1YT8IdWC6gLTb547RuJ/5fWbcH+U9no0C0MHU0GnCgpB67dxIJJQ/CrKePQvUsnNVIegsJbwpF+Zisrk1rBBzr5rTygCW33n5oMLIQ8UwCpuJTA7s3LV2D58BPk/OYF51p+DDc7qmH9ajv07fuj5+rFiJ04DgZfs7IYGavkKUclBL3ESZLfKvHRU1glbt57CE9+sE2eVFQjoWOw5F0vnLlaLHOtA+89kYIZ40YitH0gxQAVIdtbitadwPN+dwW0PAQ4kk0EIRN53ARzYCAihw1B6OMzUO5diZINa8QCoVISD5RaXYfL7/4n8i2XYI6W/BDpyg/iuioknNScJOWbiY6NWd8ki5ukHtH45QP94FdtxaavLbju5UDfiPbwlUS5/uApvPH1cfQL8EG3Th1g5GKIdKlgyteCxvs8ywEuoioJSRxyrq6VyovaDIgIR9eHxsJ/TAqK0tJQuXsTDJHdZTMkCfYT2bj41mso9fZBYEwUzGI1MqcnuH8UeQKQ86RJQEHtAjBmYB9M7t8DJVevY+/xCyiW2WOAeMQ1ew0++vwwUjMzERMejEjJD6SrpkgPFOBRCJCBVZbAb3+8BZOHDkDv2CjFit5AC/K6rawc6cwPMxfLXsB1mGSXl8124JCESQS6f/AqokRZ1pISFJw+K94AhCbEITw+Tt3H5CaEVJ/Jjj3StksFuu/ICSzasB2p5/MR0TUMoTL1pZVWAJcKsWzuJPz6yWlaVaDG3+7LPQRarABqlnFIQca/vBz7vsvAW3MnY9aE0QiT+lxzQS5L2Urz8nFmzTrkv/o7GDreD0NCJGqldLYd3wNDyADUFV6TOTxPCUza3VesQr9nfums5d2UQFqkrapD6d+sqMSW/Yfx5PodqiCLCTAjq9KGURHB2LH01/CR6VJTHMc219wV4HEhJP8UQLDU7j7R4XjxvU+xZM1GxYOWovtSWGZ9xvzwxb/FsCNHZaMkTq3l6Z/m4ROh6xwIw8B4+Eqfm6V+ox/F+XlPI2P7LqdCxPLuTRVCco6e1k5K4NmTknHhjYUYKaGQJdUjE2MwK8wf0DxWAEFUSda1yoYFuoUiQJapzuZ0Wy2+qQQqI3LgACSvX4VeH/8DjutlqC0qU7c7rNWou1mpNjjqxI3NnQfh0oZPUSMh1tyKTgsF0qQioqQIGhHbVVxCKiGpKG2Sj5gEPW0tV4CLNt3Hwd0bSiRTnklKWDY5q47al0pwEjJUBKfB3rLH/+D+D+ElelOCuuKc96tHYf4m2HOvorqyqlkvqKcr46hkNi8NsPykYuplaCyKNrTZY8sV4AJIBVTT+kpMWR5rQjRL3i0sRMDgmGj4DktE3ZWb8hDE+ViMw1jHO4qqYIqJdK4sec5NQbch7aZy2TESmSibs2nH241sOO+BAhpI14MW1yursrkJ0kDYvafAiHA8Rv98GiqvH4OXzOe6dr7qw37ltaOInjldVXb0iDs1QiyTgonu7/Q/OdNy3PXkG8xQf+p2HafbcSZQbk8h/X2wMzMXS8RtA8TNtemwOQra/B6TMgaV6z/GuVlP1MtLyknrNyAmebSyIu+9XaOrc0YoE547Zf+AMnBP0iDnGrzGKevtaLifb7EClEeKFQ3irhEBfsL0GnrIJsa53AJs2LUfc6ZMcBZHohgK0iCMGzsZ75BriTNnIHL4UBRlZqmLwd1j1MMOZUC6sWLmNk66KvfINW06JE/y7iFPkNKt5QgXmSgb80szwxsTc/vVYgVwTK0kP71oenCPrlh7IBXGIFm6Snk6d81W3Cgtw9NTxiNYbVLIvaIIrbyt50fJxILMIHy6oz3h4XVaVtTWLHjN6ryvSPis2rwD/77pACJkOW6UqhQ3yjFYZgTKJv/sE74t94AWF0JkTisQ1DXZE+ywaJlMQZWIDwuETRRz4XIR/DsE4cNZk5AyZIBa9vJ+52borQKphCXXVRPFNOcx2lhes8oT5S++OYaZH25D2ZViRN8XLMsNL1gKSgHJJVeXLZJ9hCCnIu/gAhoOrgZvH2xO0Rp9UxDu7JBRzu9fxM8SusFy/jIuSXXYV0rTctkseeT1/8a0194Gt77ZvCVJkaEC7EaNtNRUKQptCl67n2PZvjpxBtP+4x08LLTLXLzIk7wpA2WhTJStKS03ls12PfIAjQItQ+HsUhBtPfANpolVcLUEXTqHIkSmtxOyu8P1+/wJAzFP1u89o7qooQwLBVoj1ORIf+BaQIvzc9k5eG/TTqzY+R0gW+j9gvxRKIugnNwbgLj/P8XbJo8YAqMshT1xfXcP+EEKoNyaEtgvKC7Bxt1fYt4nX6iMHC/uqRcLn75WIuv5Grz98xTMljVDCNfv4g20VNP8oOKc2V/GFcpe37od+/DCR7vVI7BE2R2SfzjCImHGp0ErHk/G9JQH1RqE/BU9GdfS1ioKILMGV3VWg9n5V7BG9vZf//QQIBuVfULbSVjUIosWE6Vs/8WjSJFVJJMVLa1te3NqpWfI/3Ox++tjmLj2M0DAxohH+QvgUzduyuqqEosfewD/NnmsKoPJX3kUx3oAXpObBvhhO0Kk0KQ5FeGMd146eS4Tyzdux/oD8i+wziHoJ3P1iQopWnIK8dSYPlgwfSISY6MbUTmdfgFv/mM73t97CugiY/xkjGyYIrcQs0YmYuH0CegbF6vG0N2J2VPgGsNW8wCNoHbUlqHUbrVYnln7if/Zgpt5hcqafrILnMqsXWHDwocGYkz/Xmro3uNpWP4viXMBnRTWDhU1deI1BbKiDMVHTz6CZJlVDOIJDBPmCXrMj2ltpgBNqMbz9k2sl3h+fv0ueSIkW11h7VEprp5JRZTKSo4t0IzuMp36SmikFkjeqLTjnZnjMHvi6O+vK5yjPf5ucwVQoqYZ3XLhEpZ9/LnTxeXZYJ8AeZjhEp33niqrBPKLVYgseuJhxMs+ItudZg51k4dfjRRwPj3d2iM21kSr/dCY+j7+ZEaA/CMEkxy3tV75ZCeOnL4kLu/axKiwY1BiVyx9fDxGD+rnrOgoj4xrK5kYpvI6jU3PF4yET4wwYoXqUWEk99+xEQCB0JJ6YZoy9H4M7dML35624Pg551qgf1wMBifGw18WVGqalHubTpN3ZOTBDRpWYtfz7SoZqxQg1mp1BWhyERA9gRskBDp2cH/10a7zSCXxvrYETz6aAohdx1fL6KbS5KCO7LdZIziGG8Hy6N5va+AE5Y6V2HV8ry4zK8sm1/j0se01IEwYFgSrwsOtL5f+LxoxGoiZ2BVDvldH80vjm2JSpN2db4ndSW5iI0Z+ETPBq5hPTU19+UxamhTaMIpV7rwfpdR29325sBmJlZgVAu21uW330GtzxErwGvb6zj354qTmyJo27slXZ5sqgS8V3isvT2vluKYDFQ730uvz/wuU0tGQFNgD5AAAAABJRU5ErkJggg==",
- "description" : "pmci-template",
+ "description" : "Smardigo as as Service powerd by PMCI",
"menuItems" : [ {
- "name" : "Tenant Management",
- "tabName" : "Tenant Management",
- "logoId" : "groups",
- "configKey" : "tenant-management",
+ "name" : "Serviceverwaltung",
+ "tabName" : "Serviceverwaltung",
+ "logoId" : "reorder",
+ "configKey" : "service-management",
"configType" : "datasource-action",
+ "processDefinitionKey" : null,
+ "processDefinitionKeys" : [ ],
"items" : [ ],
- "groups" : [ ],
+ "groups" : [ "service-create", "service-delete", "service-change" ],
"additionalProperties" : null
}, {
- "name" : "Tenant Events",
- "tabName" : "Tenant Events",
- "logoId" : "recent_actors",
+ "name" : "Service erstellen",
+ "tabName" : "Service erstellen",
+ "logoId" : "playlist_add",
"configKey" : null,
"configType" : "process-search",
- "processDefinitionKey" : "tenant-events",
- "processDefinitionKeys" : [ "tenant-create", "tenant-edit", "tenant-delete" ],
+ "processDefinitionKey" : "service-create",
+ "processDefinitionKeys" : [ "service-create" ],
"items" : [ ],
- "groups" : [ ],
+ "groups" : [ "service-create" ],
+ "additionalProperties" : null
+ }, {
+ "name" : "Service erneut erstellen",
+ "tabName" : "Service erneut erstellen",
+ "logoId" : "playlist_play",
+ "configKey" : null,
+ "configType" : "process-search",
+ "processDefinitionKey" : "service-replay-setup",
+ "processDefinitionKeys" : [ "service-replay-setup" ],
+ "items" : [ ],
+ "groups" : [ "service-replay-setup" ],
+ "additionalProperties" : null
+ }, {
+ "name" : "Service ändern",
+ "tabName" : "Service ändern",
+ "logoId" : "edit_note",
+ "configKey" : null,
+ "configType" : "process-search",
+ "processDefinitionKey" : "service-change",
+ "processDefinitionKeys" : [ "service-change" ],
+ "items" : [ ],
+ "groups" : [ "service-change" ],
"additionalProperties" : null
}, {
- "name" : "Create Tenants",
- "tabName" : "Create Tenants",
+ "name" : "Service entfernen",
+ "tabName" : "Service entfernen",
+ "logoId" : "delete_sweep",
+ "configKey" : null,
+ "configType" : "process-search",
+ "processDefinitionKey" : "service-delete",
+ "processDefinitionKeys" : [ "service-delete" ],
+ "items" : [ ],
+ "groups" : [ "service-delete" ],
+ "additionalProperties" : null
+ }, {
+ "name" : "Mandantenverwaltung",
+ "tabName" : "Mandantenverwaltung",
+ "logoId" : "groups",
+ "configKey" : "tenant-management",
+ "configType" : "datasource-action",
+ "processDefinitionKey" : null,
+ "processDefinitionKeys" : [ ],
+ "items" : [ ],
+ "groups" : [ "tenant-create", "tenant-delete", "tenant-change" ],
+ "additionalProperties" : null
+ }, {
+ "name" : "Mandant erstellen",
+ "tabName" : "Mandant erstellen",
"logoId" : "person_add",
"configKey" : null,
"configType" : "process-search",
"processDefinitionKey" : "tenant-create",
"processDefinitionKeys" : [ "tenant-create" ],
"items" : [ ],
- "groups" : [ ],
+ "groups" : [ "tenant-create" ],
"additionalProperties" : null
}, {
- "name" : "Edit Tenants",
- "tabName" : "Edit Tenants",
+ "name" : "Mandant bearbeiten",
+ "tabName" : "Mandant bearbeiten",
"logoId" : "engineering",
"configKey" : null,
"configType" : "process-search",
- "processDefinitionKey" : "tenant-edit",
- "processDefinitionKeys" : [ "tenant-edit" ],
+ "processDefinitionKey" : "tenant-change",
+ "processDefinitionKeys" : [ "tenant-change" ],
"items" : [ ],
- "groups" : [ ],
+ "groups" : [ "tenant-change" ],
"additionalProperties" : null
}, {
- "name" : "Delete Tenants",
- "tabName" : "Delete Tenants",
+ "name" : "Mandant entfernen",
+ "tabName" : "Mandant entfernen",
"logoId" : "person_remove",
"configKey" : null,
"configType" : "process-search",
"processDefinitionKey" : "tenant-delete",
"processDefinitionKeys" : [ "tenant-delete" ],
"items" : [ ],
- "groups" : [ ],
+ "groups" : [ "tenant-delete" ],
"additionalProperties" : null
}, {
"name" : "Vorfälle",
@@ -63,6 +109,8 @@
"logoId" : "report",
"configKey" : null,
"configType" : "incidents",
+ "processDefinitionKey" : null,
+ "processDefinitionKeys" : [ ],
"items" : [ ],
"groups" : [ ],
"additionalProperties" : {
diff --git a/smardigo/pmci/datasource-action/service-management.json b/smardigo/pmci/datasource-action/service-management.json
new file mode 100644
index 0000000..6846c33
--- /dev/null
+++ b/smardigo/pmci/datasource-action/service-management.json
@@ -0,0 +1,68 @@
+{
+ "name" : "Serviceverwaltung",
+ "configType" : "datasource-action",
+ "configKey" : "service-management",
+ "datasource" : {
+ "key" : "data-entity-services-processed",
+ "parameter" : [ {
+ "key" : "param1",
+ "value" : "envStage"
+ } ]
+ },
+ "columns" : [ {
+ "key" : "id",
+ "name" : "ID",
+ "width" : 100
+ }, {
+ "key" : "cluster.stage",
+ "name" : "Stage",
+ "width" : 50
+ }, {
+ "key" : "tenant_key",
+ "name" : "Mandantenschlüssel",
+ "width" : 50
+ }, {
+ "key" : "cluster.key",
+ "name" : "Servicename",
+ "width" : 100
+ }, {
+ "key" : "cluster.service",
+ "name" : "Service",
+ "width" : 100
+ }, {
+ "key" : "connect_version",
+ "name" : "Version",
+ "width" : 100
+ } ],
+ "actions" : [ {
+ "icon" : "add_circle",
+ "name" : "Service erstellen...",
+ "processDefinitionKey" : "service-create"
+ } ],
+ "rowActions" : [ {
+ "icon" : "replay",
+ "name" : "Setup starten...",
+ "processDefinitionKey" : "service-replay-setup",
+ "variable" : "service"
+ }, {
+ "icon" : "edit",
+ "name" : "Service ändern...",
+ "processDefinitionKey" : "service-change",
+ "variable" : "service"
+ }, {
+ "icon" : "delete",
+ "name" : "Service löschen...",
+ "processDefinitionKey" : "service-delete",
+ "variable" : "service"
+ }, {
+ "type" : "open-link",
+ "icon" : "open_in_new",
+ "name" : "Anwendung öffnen...",
+ "link" : "https://{{ cluster.stage }}-{{ tenant_key }}-{{ cluster.key }}-01-{{ cluster.service }}.smardigo.digital"
+ }, {
+ "type" : "open-link",
+ "icon" : "manage_accounts",
+ "name" : "Benutzerverwaltung öffnen...",
+ "link" : "https://{{ cluster.stage }}-keycloak-01.smardigo.digital/auth/admin/{{ tenant_key }}/console/"
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/datasource-action/tenant-management.json b/smardigo/pmci/datasource-action/tenant-management.json
index caea0e0..4a2bfcb 100644
--- a/smardigo/pmci/datasource-action/tenant-management.json
+++ b/smardigo/pmci/datasource-action/tenant-management.json
@@ -1,40 +1,53 @@
{
- "name" : "Tenant Management",
+ "name" : "Mandantenverwaltung",
"configType" : "datasource-action",
"configKey" : "tenant-management",
"datasource" : {
- "key" : "data-entity-tenants"
+ "key" : "data-entity-tenants",
+ "parameter" : [ {
+ "key" : "userId",
+ "value" : "{{user.id}}"
+ } ]
},
"columns" : [ {
"key" : "id",
"name" : "ID",
"width" : 100
+ }, {
+ "key" : "key",
+ "name" : "Mandantenschlüssel",
+ "width" : 50
}, {
"key" : "name",
- "name" : "Name",
- "width" : 200
+ "name" : "Mandantenname",
+ "width" : 100
}, {
- "key" : "key",
- "name" : "Key",
+ "key" : "admin.last_name",
+ "name" : "Administrator",
"width" : 100
} ],
"actions" : [ {
"icon" : "add_circle",
- "name" : "Create New Tenant",
- "searchKey": "tenant-events",
- "processDefinitionKey" : "tenant-create"
+ "name" : "Mandant erstellen...",
+ "processDefinitionKey" : "tenant-create",
+ "groups" : [ "tenant-create" ]
} ],
"rowActions" : [ {
"icon" : "edit",
- "name" : "Edit Tenant",
- "searchKey": "tenant-events",
- "processDefinitionKey" : "tenant-edit",
+ "name" : "Mandant ändern...",
+ "processDefinitionKey" : "tenant-change",
+ "groups" : [ "tenant-change" ],
"variable" : "tenant"
}, {
"icon" : "delete",
- "name" : "Delete Tenant",
- "searchKey": "tenant-events",
+ "name" : "Mandant löschen...",
"processDefinitionKey" : "tenant-delete",
+ "groups" : [ "tenant-delete" ],
"variable" : "tenant"
+ }, {
+ "type" : "open-link",
+ "icon" : "manage_accounts",
+ "name" : "Benutzerverwaltung öffnen...",
+ "link" : "https://dev-keycloak-01.smardigo.digital/auth/admin/{{ key }}/console/"
} ]
}
\ No newline at end of file
diff --git a/smardigo/pmci/datasource-file/connect-features.xlsx b/smardigo/pmci/datasource-file/connect-features.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..4322f8ca9cba3dffa0f381cdbd3147ad4668496a
GIT binary patch
literal 9268
zcmeHNg;!hI)(`Fw+})ib1&S0a?iAMscXxLy1%ej}6e~`lc#BgYP~3{UgyLSLeCf=4
zZ)Q64{RQuxtaZ-H%H8|sp0j`Zx8hi0~}=0C?E-{~Q0sJ5ZTAq}sy+e0C*&C%wt3xL7BF
zDsT|ikH@AV-r1YdS8i^YYis+E8+!|sdP`_0Sc^Bh=+ApHY*Xjt*ccYm_fZowK6Ic{
z+k{+@`*Z(3V+S!Q*v&xyD4&2_;t{E-X@XTYAk(#}N0VP>O;WLv%!ZIiJY?g|e7_Fv
zN?!|Rxk0J$z(Uums?IX5&|ujlaAO>Q%FdS6-{fqAQvora&VP}}%cNMHR!@r+q}k$j
zlcCh^&eF^`ZDtO?%oCN=hP^bhg8Z>vkV=K0tgbBXyxgEK$)3FH(-lv3x%0tK9G)uRPYxoqsE94ffxrs>@sw8xd
z9IM6sxiV_Pf^1Ht*4
ze}8PtF#PZ&9U9F00~r8#ct8NC{{@x}+C22Ap`kR2QvlmIaxS@TyR^^
z-QdEKXu{qA?d3XuWjr2%2z{e>RaC}}t0xK@lUus1Yvo!muGjR%^ktTuqA!bATOwOU
zbLm?p$O^seP=gLA0KVfn!KmJay?ZjG_Jxl2Gx~j5FAdw8B6_20(@L
zap3+PC*IC(_8@0x`=9LfZ_L2KC=90Mzk5__swnmH0NXHrMDuuOdlBN!d2rM1Yk$K*
zh19byFwyb_ov)CywHoWqC~+e=NBJHN_j_FlV6P+KUv#mT#^E9Q;X53OAUO}84I`j}
z4yvfaP39AIF-cE@iK2M=)M5(sTyvoMlI7nab;oVQFw@!O5?c=Fo0k5LZ7
zY-Xr_Gvp>hYriV2zNv}kHLKOuLyPpnC30SvFZK8tDVl;PmM>s@cZ!z%y6f2`>glID
zD;3`n`>w(p%q@xvC8}}(v4AKKn&<&J>R?u|`&L2LNA06E52@Qh){cc!j-m4-t4&D%
z^a|{x|86pssS*Uq2mru4SoDJfy8>o1e>Rp%ZAa%qA>faoiF=e@Z#(4>#OJN(a2{#%
z+S9|0)a)oZW=K5N*-UMA54Q<#G8(fdS!df=YHP)Ue5|&!AX^!Z3woo^<@-MN_7PV*
zj#qCIe$$D)4>S?NUjWB>5Ze04;on9o-VRM4br?G}>v0R28Un^3z13-Z<`EY9lj#E(
z%ahou=|=T3U7D3i`$&vwm8{y1;i9ux8cKTBM?jD(HnJ&~z5<^KHs`?)o7+Nvn|G+pI!w%Y#po8&hyq%i}Zyhm1ju&wrJ7=#j
zW>R@lg|UFoIusXSM+^wXuh|XU@!iSB5Wp%>QOBS?lE|
zp128qweVdOA^Ps-O$+r46K=96wSmBX$T;U5mFjzPoJzmKlfA>IuX2OQu&tlg_q6hf
z^Ry;A4^AlA-ww3KIpZyy&NG#CD@%CU$l2Ndw_N05>(
z22VMOac-BjYazEc{8)j^192KWeRCW*ae{U8_gl<{bBI|B(fJ6rA6{MP?RzI?-!AU+
zUA(oLlM?FV`ijzKJykG;a5&lFEh(M
zhNqeOP4foL;*vd|Pd~T$>=s}~v_g2aVmU*JXy{1lj!Kg{d@|Frlmj$$%qqH+J<1H@
zPIwG{^7S=Vtw@iJ<2@~_JVg|1aw@wh%@@myr!?T#J6^=k4Gv2;?75mn&hP{5e*$qsM+RPw*~!3f&eA?ZL))mB
z7dcZbLVM&e+7{3}KvtFWEX^qm;ZbO*bJv|d^r-wi?~{8B8}BW`K^Z{pr9!f{flWAt
zJj$E+PjVWNs2G2?>v@+Whtkb;p5|Nkw)uV`$lELNI3KG1&)u|Ky;<7(Xd#6I65{v$Zx=^()Eaehu5TJ7oNLsd)nAz6`uzT%bM4#{D%b2lVH>eY6Lpo8cS
z#`%zYE4?X!+3OG=$=kSdVX;%c9iQnHPpzJP3dyn7t!~!~l)(@KZ*zR9n$WY18s|}A
zobv)JEXPRyC&6D%Y=W%>oGk-h-E?2gUjT)v4%AF4ST2P1cEt5bc=R;veO?8NbBKRQ
z$FZbP?)l80xmd@L$rx{$q*BDxRLm)fu9u@&Pe
zOB8|#_d$xGmyB2XIZ@OpESQ4}Jm^fUZ;&U?AEOO2#AQG&PLfg~NLQO_IM3t@Y<%2A
zzgrwOTZC1l=rBiewb9@?JZK^cvr6`Lgs%(!BOU3X2trj+0Dw-KpV{|sbmU=U>1fIQ
z+x+OKS?}u)$CC>ZbP(S>#dP<+6WB;(TwWb@NLgaAc#}%e(73Om!^aE$M2-*7D14#G
zQdFEFB06wEc^j#@~JOzEzz95V{qIlE#w8c;W|Q4`@bT5mvMNT
zPOTukz(({LH7dEe(@H3Gh3RF#d^dd_Q9lJ`_;Mx@d$DE}2|f7QBn+hPAIM8fzwgXF
zeaX73TBMFZKX{d<`RNrUbvmIGhfIds5$bq44&TeU6W~fpyIgY8vGfo(^l3+PU~Nnz
zFD;wk0GS)YeFnr5exoNYH$@FcCk0uOWNM!Mo=jrvNww+G>`g{qZY6)i=NbJP
zk8n);kck@Xr8d7BgT~{iAA7Hd57YxWJ|P$1gbUo6jUjOx_+TlXtdWWD^NWZXb|4pD
z&y%&A*jgC_b!y1O|#
z>Nx&!a}lkZ*rD)FJeHX0$JVH6``vxwY*{qnPPNa;K}v>N-lyxsil@PT`(w-7yPXj@
z3NItQv8eq8^)WF#z9!;aLm8rQ>CzG7B$}i>O=XFW=ixPotHT|Mm$y54xmLHn8xPIg
z$BZ(%ehCnW<6NaOukUG|gwvfiii(atv)Iec8C6+SiFjq??yUhrYJQpr*M^rd=oG=p
z=d7M8&;J=MJ@+Po611U?s9vd^zXC&WZi1WGz($Y?7DQC@6
zo6{Qc&I(t~qTXnmk$8W-+NEnuHUdj$j2QQ3#_relI7O^yO-@*PBseQ2xI8#?dU_nKbR
zYIDf`mqg4l)}dgM6P4FBl2cVvky;}P#k0`eF+>x3^=rv?p*L>EA=vaSx7qc}F-e|Y
zW!7sWvq(+rSC9QMFSnK^50#R--lfBVg6&r@aT}Nh@U3FTtfm^O@n1vVrGnk%H#%
zPh|b{1T{|3mRgVa6R*As9eAVbCop4O141-9DC@pOI
zBz?toTotn+L%ZdxIkrWD!YQvw0gRWt2&eLbX;tJI?{qRs<_%@$dAsEW7f|W3=zVZU
z>Lwjp@+>Q}edRgNQrXi#(h3$XUju7(7~I0hZ9u$8DxWseO)H{Y@_3~_q(2RP^(Y|0
zI!Q#T&6D;?Bt}N^CNwIT*ec7F)?Z$xtVaM^EUUTk28-57RE*j$eNj$#)OJmyCG*L~RygdACe~-;8F6tDhUpj9v25Yq)~tjWkrK-~*~9bDY99t5M4CAjN(CY3NC6
z6)8pQVRv}h6SI}uslYRhDpBhss~{_b$^umt!K|QW>E-uqPh~hOH1}qXrs#HBx53|N
zG~T@HC0AW)5&~jQouM`p?Z%`5G3F|zTaSUJ4v5uI;Kk_>bUxZX@qx9BQ
zPsP@74-FeSdbtn}6rx;3yR$`NGcM}8BR(_rL&%yyc1ZT;t-xK&7ThV?TH%g7$Tvj$
z7^z9WPaI~a&c@&E)i8$LW7k5RuGFTw1xLZb8#naAPvdC_J7()Z^|y=b`Lw`KpNd;}
zK(5J9_U{FcjZEh<*k7^xJC{0b2POibi#6KF!*(CE*!e3CBx!d&$s(-{|&bfgPHH-cq@U(f&mlHcj~XEx|=V`=H(&i&i+8wcl1DkaYI08x(pi-S;x
zu9BGN80ji$2t1v&^Q`-`fEXgGj%S+FN6QLz5{z6njPP9wK@X&&UrbdM!3ZSm9@F
zc!uKbE8)8}@N_%!DPYhwP@M7-xMCxrhN3TXW7sSY!?RwYhp@5ZBWP%U)
zOOo-rc8&z@*V7Jx3#4Y#$4THI0>rYKOdBYR#Wt?=Y{TmNnSh#nPkN99Z}i22tjA>m
z>krg-nR5psiT2a98tANxz7nh&qW(*b^Y1l5EAMz-`(^|a7oVvkKkO|u2T01)^e+0_=C5|Wm2S^-qObt%%
zc175=@(vlV837ZG6}t0b%5Qe%I!*}=?A831nbdn7fFwURBy@gxWjF|2Gvy;XTlmiC
z%=hJ-SX$BQ?bvBXsZsdbf#>QU+B{4zPWWORH(UfhFW;^~%FoC+`pZ6pm^4<57dp@omJmnpk+wq5|EfXYT9^
zqkbJxr_t4Mo)LIoYGMU7&+af{wf?g9Ptp3SXLXM`o_ww(oTL)dN^h6x=?k8Cy$=ViYUAJyp-I)Cswt(FgjM8lj7xwq&wYGQN+y*NyA@
ziZpK8Bvo27_&Z*H+mJd|d1bW=6%NJGFYG!43M%Zi+Pq_Yx|%G5%A+B*N~ai|1w`9S
z$WbNROzA+glA@$kQ%!JQyfiPpz$3;6R0iA1qNMaZQ}~VDg}L2~9b!vj>!OnMuRm*X
ze@Emz+ZB5x>?aTml?1RWVD%Yyn-^}D7Fr%|wocZ+C3*oVl1{Kh@7WcSA4=G*tSZqn
z4SDpJC6ZSP3&lK4{dlx)rEao~?zJZQ#OzyrvNUtXZrdjhYs~t~)M2_J%KLQMHS4w`SbH}@aG`p=h@jG(F(*G2>mPcS2GM|zqY4@qPh+5XYceQzR06HDxvJw*Jk>WKDr_#&G
zQW8xlakn_(ajvw@>!&Jvruk#^h;=mb0RoQ`7TYNZzv$k>)UxJNPc>$(R}>PpZ%b}
zF#X44`@n67q6s@Te^_#k3#-IhIGd}xIlH)Xn>)K%{;P-hzXB|5>jJGgh(Gz+hT)`1qpXdBq2=ur(N`efMXlIQkl0QM)Xh}4inSr?W*|}z0+>TqTR%f
z&7y|%ZV})9cvlym?9?6MZmo-
z^1d)x}x?Rj{T|ZiRM$NTn{`w(SL0;6ugdw62?M*V;
z3F3fOz@_mi_dgoqhN<8}7R(UoVEzO6XG479;_^Q`gl*ZsMh>_O=0jo4BZN!rsKbPu
zYL+Mo9gQM(KfPLjg1@!J6Cx(1r~wj4uC;R=akfKY+2rLEIVA7qBDSDan4jw#4;ZT*
zc&5+Ad(MyVGa<^*^3O}4)`^db~;*M725ivoEVdEDtw@@D2H<_h*dhO_rv
zXdEG1Jy*Q9QNbi&8=>mb8x7st@9)aja+@!~+aVhkHxS=5g4mYNAX9Kn61Kw2m2TQg
ziqV{J7=|VkY4^utV?}2s-=`q^u-0(`FU=x%X$+2Y0Jn{gNI|oBa)IPcHd&2_E2dU2
z6-%l$NV}n-whlGt0XFhozUIz66AWuP?&fo}_vJdk?+E+f3H;4S-pb{mhhE`ADc6oq
zJ!Z+TENu*q`x$Zy@@5`N-g)64hMZWI?>uX$rUhk*uk&AMNs1MP%FbqU*dL2mgWUtwo{cvZP+wQHYb?Vu25ez$+-{}wzo)boW|NMT&zmMp#4$p|12-1%K@%
z|6B0qngPSepZdzb3jVdb_GiIQu=4Bw-)s9-_)KQtY|nlQgKV15<;wc`7Sa24k7
z(ZPS}zrTw9T3h==Gzb>m!0!8NrR`S*zh(!2D7Yv3&maF=uJEgtUn817v?P-K{sh0q
zH@|B5E4lt54*JtAfK1%f`@qal;btNR&=>h=guulk#&2wpge)~V?
CuOJHm
literal 0
HcmV?d00001
diff --git a/smardigo/pmci/datasource/awx-job-plain.json b/smardigo/pmci/datasource/awx-job-plain.json
index 323f4f6..00db778 100644
--- a/smardigo/pmci/datasource/awx-job-plain.json
+++ b/smardigo/pmci/datasource/awx-job-plain.json
@@ -1,23 +1,19 @@
{
- "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"
- }
- ]
-}
+ "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"
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/datasource/awx-job-templates-plain.json b/smardigo/pmci/datasource/awx-job-templates-plain.json
index 6436fe3..b9a07b5 100644
--- a/smardigo/pmci/datasource/awx-job-templates-plain.json
+++ b/smardigo/pmci/datasource/awx-job-templates-plain.json
@@ -1,23 +1,19 @@
{
- "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"
- }
- ]
-}
+ "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"
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/datasource/awx-job-templates.json b/smardigo/pmci/datasource/awx-job-templates.json
index 2dbef9f..e0b9d21 100644
--- a/smardigo/pmci/datasource/awx-job-templates.json
+++ b/smardigo/pmci/datasource/awx-job-templates.json
@@ -1,18 +1,15 @@
{
- "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"
- }
- ]
-}
+ "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"
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/datasource/connect-features.json b/smardigo/pmci/datasource/connect-features.json
new file mode 100644
index 0000000..4237baf
--- /dev/null
+++ b/smardigo/pmci/datasource/connect-features.json
@@ -0,0 +1,38 @@
+{
+ "name": "connect-features",
+ "restApi": true,
+ "configKey": "connect-features",
+ "payloadType": "EXCEL",
+ "config": [
+ {
+ "name": "file",
+ "type": "FILE",
+ "value": "connect-features.xlsx"
+ },
+ {
+ "name": "columnNames",
+ "type": "STRING",
+ "value": ""
+ },
+ {
+ "name": "sqlStatement",
+ "type": "STRING",
+ "value": "select * from features where default in (${default})"
+ },
+ {
+ "name": "columnNameLineNumber",
+ "type": "INT",
+ "value": 1
+ },
+ {
+ "name": "skipEmptyLines",
+ "type": "BOOLEAN",
+ "value": false
+ },
+ {
+ "name": "skipEmptyColumns",
+ "type": "BOOLEAN",
+ "value": false
+ }
+ ]
+}
diff --git a/smardigo/pmci/datasource/data-entity-services-processed.json b/smardigo/pmci/datasource/data-entity-services-processed.json
new file mode 100644
index 0000000..884614a
--- /dev/null
+++ b/smardigo/pmci/datasource/data-entity-services-processed.json
@@ -0,0 +1,18 @@
+{
+ "name": "data-entity-services-processed",
+ "restApi": true,
+ "configKey": "data-entity-services-processed",
+ "payloadType": "POST_PROCESSING",
+ "config": [
+ {
+ "name": "datasource_key",
+ "type": "STRING",
+ "value": "data-entity-services"
+ },
+ {
+ "name": "groovy_script",
+ "type": "STRING",
+ "value": "data.collect{ row ->\n row.link = 'https://' + row.cluster.stage + '-' + row.tenant_key + '-01-' + row.cluster.service + '.smardigo.digital'\n row\n}"
+ }
+ ]
+}
diff --git a/smardigo/pmci/datasource/data-entity-services.json b/smardigo/pmci/datasource/data-entity-services.json
new file mode 100644
index 0000000..d963017
--- /dev/null
+++ b/smardigo/pmci/datasource/data-entity-services.json
@@ -0,0 +1,25 @@
+{
+ "name": "data-entity-services",
+ "restApi": true,
+ "configKey": "data-entity-services",
+ "payloadType": "ENTITY",
+ "config": [
+ {
+ "name": "entityId",
+ "type": "STRING",
+ "value": "service"
+ },
+ {
+ "name": "propertyFilterKey",
+ "type": "STRING"
+ },
+ {
+ "name": "propertyFilterValue",
+ "type": "STRING"
+ },
+ {
+ "name": "filterParameters",
+ "type": "STRING"
+ }
+ ]
+}
diff --git a/smardigo/pmci/datasource/data-entity-tenants-filtered.json b/smardigo/pmci/datasource/data-entity-tenants-filtered.json
index 24cd3c2..17b28e3 100644
--- a/smardigo/pmci/datasource/data-entity-tenants-filtered.json
+++ b/smardigo/pmci/datasource/data-entity-tenants-filtered.json
@@ -1,18 +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"
- }
- ]
+ "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": "data.findAll{it.user_ids.findAll{it == parameters.user_id}}"
+ }
+ ]
}
diff --git a/smardigo/pmci/datasource/data-entity-tenants.json b/smardigo/pmci/datasource/data-entity-tenants.json
index e113a25..5e11a65 100644
--- a/smardigo/pmci/datasource/data-entity-tenants.json
+++ b/smardigo/pmci/datasource/data-entity-tenants.json
@@ -1,21 +1,26 @@
{
- "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
+ "name": "data-entity-tenants",
+ "restApi": true,
+ "configKey": "data-entity-tenants",
+ "payloadType": "ENTITY",
+ "config": [
+ {
+ "name": "entityId",
+ "type": "STRING",
+ "value": "tenant"
+ },
+ {
+ "name": "propertyFilterKey",
+ "type": "STRING"
+ },
+ {
+ "name": "propertyFilterValue",
+ "type": "STRING"
+ },
+ {
+ "name": "filterParameters",
+ "type": "STRING",
+ "value": "key,id"
+ }
+ ]
}
diff --git a/smardigo/pmci/datasource/whitelabel-docker-image-tags-plain.json b/smardigo/pmci/datasource/whitelabel-docker-image-tags-plain.json
new file mode 100644
index 0000000..80cebcc
--- /dev/null
+++ b/smardigo/pmci/datasource/whitelabel-docker-image-tags-plain.json
@@ -0,0 +1,21 @@
+{
+ "name" : "whitelabel-docker-image-tags-plain",
+ "restApi" : true,
+ "configKey" : "whitelabel-docker-image-tags-plain",
+ "payloadType" : "REST",
+ "config" : [ {
+ "name" : "connection",
+ "type" : "CONNECTION",
+ "value" : "harbor"
+ },
+ {
+ "name" : "resource",
+ "type" : "STRING",
+ "value" : "/smardigo/connect-whitelabel-app/tags/list"
+ },
+ {
+ "name" : "sqlStatement",
+ "type" : "STRING",
+ "value" : "SELECT * FROM default_table"
+ } ]
+}
diff --git a/smardigo/pmci/datasource/whitelabel-docker-image-tags.json b/smardigo/pmci/datasource/whitelabel-docker-image-tags.json
new file mode 100644
index 0000000..9307b6e
--- /dev/null
+++ b/smardigo/pmci/datasource/whitelabel-docker-image-tags.json
@@ -0,0 +1,16 @@
+{
+ "name" : "whitelabel-docker-image-tags",
+ "restApi" : true,
+ "configKey" : "whitelabel-docker-image-tags",
+ "payloadType" : "POST_PROCESSING",
+ "config" : [ {
+ "name" : "datasource_key",
+ "type" : "STRING",
+ "value" : "whitelabel-docker-image-tags-plain"
+ },
+ {
+ "name" : "groovy_script",
+ "type" : "STRING",
+ "value" : "def result = []\ndata.each{values ->\n values.tags.each{ value ->\n result.add([value: value, label: value])\n }\n}\nresult"
+ } ]
+}
diff --git a/smardigo/pmci/dependency/dependency.json b/smardigo/pmci/dependency/dependency.json
new file mode 100644
index 0000000..eb6359c
--- /dev/null
+++ b/smardigo/pmci/dependency/dependency.json
@@ -0,0 +1,7 @@
+{
+ "scopeId" : null,
+ "name" : "Dependencies",
+ "configKey" : "dependency",
+ "configType" : "dependency",
+ "scopes" : [ ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/filter/service-create.json b/smardigo/pmci/filter/service-create.json
new file mode 100644
index 0000000..8590501
--- /dev/null
+++ b/smardigo/pmci/filter/service-create.json
@@ -0,0 +1,14 @@
+{
+ "configKey" : "service-create",
+ "processDefinitionKey" : "service-create",
+ "documents" : [ ],
+ "dossiers" : [ {
+ "configKey" : "vorgang",
+ "currentUserConfig" : [ [ {
+ "key" : "filterTenantId",
+ "operation" : "in",
+ "value" : "${currentUserAttributes.tenantIds}"
+ } ] ],
+ "gruppenConfigs" : { }
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/filter/service-replay-setup.json b/smardigo/pmci/filter/service-replay-setup.json
new file mode 100644
index 0000000..981e832
--- /dev/null
+++ b/smardigo/pmci/filter/service-replay-setup.json
@@ -0,0 +1,10 @@
+{
+ "configKey" : "service-replay-setup",
+ "processDefinitionKey" : "service-replay-setup",
+ "documents" : [ ],
+ "dossiers" : [ {
+ "configKey" : "vorgang",
+ "currentUserConfig" : [ [ ] ],
+ "gruppenConfigs" : { }
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/approve-dialog.json b/smardigo/pmci/form/approve-dialog.json
new file mode 100644
index 0000000..c737ce7
--- /dev/null
+++ b/smardigo/pmci/form/approve-dialog.json
@@ -0,0 +1,82 @@
+{
+ "components" : [ {
+ "label" : "Entscheidung",
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "select",
+ "input" : true,
+ "key" : "request_decision",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : "",
+ "required" : true,
+ "select" : false
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "data" : {
+ "custom" : "values = [\n { \"label\": \"Ablehnen\", \"value\": \"requestRejected\" }\n];\nif (true) {\n values.splice(1, 0, { \"label\": \"Freigeben\", \"value\": \"requestApproved\" });\n}",
+ "values" : [ ]
+ },
+ "valueProperty" : "value",
+ "selectThreshold" : 0.3,
+ "encrypted" : false,
+ "properties" : { },
+ "customConditional" : "",
+ "logic" : [ ],
+ "tags" : [ ],
+ "dataSrc" : "custom",
+ "searchEnabled" : false,
+ "tabs" : null,
+ "lazyLoad" : false,
+ "selectValues" : "",
+ "disableLimit" : false,
+ "sort" : "",
+ "reference" : false,
+ "reorder" : false
+ }, {
+ "label" : "Optionaler Kommentar",
+ "isUploadEnabled" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "autofocus" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "rows" : 5,
+ "wysiwyg" : "",
+ "type" : "textarea",
+ "input" : true,
+ "key" : "createComment",
+ "defaultValue" : "",
+ "validate" : {
+ "unique" : false,
+ "json" : "",
+ "customMessage" : ""
+ },
+ "properties" : { },
+ "tags" : [ ],
+ "inputFormat" : "plain",
+ "spellcheck" : true,
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "encrypted" : false,
+ "logic" : [ ],
+ "customConditional" : "",
+ "tabs" : null,
+ "uploadUrl" : "",
+ "uploadOptions" : "",
+ "uploadDir" : "",
+ "reorder" : false
+ } ],
+ "display" : "form",
+ "configKey" : "approve-dialog",
+ "name" : "Dialog zur Freigabe"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/confirm-delete-tenant.json b/smardigo/pmci/form/confirm-delete-tenant.json
index bb3d4c2..53917f8 100644
--- a/smardigo/pmci/form/confirm-delete-tenant.json
+++ b/smardigo/pmci/form/confirm-delete-tenant.json
@@ -6,7 +6,7 @@
"attr" : "",
"value" : ""
} ],
- "content" : "Sie sind dabei den Tenant zu löschen.",
+ "content" : "Sind Sie sich sicher, dass der Mandant gelöscht werden soll? ",
"refreshOnChange" : false,
"mask" : false,
"tableView" : true,
@@ -24,12 +24,12 @@
"json" : ""
},
"tabs" : null,
- "reorder" : false,
"encrypted" : false,
"properties" : { },
"tags" : null,
"customConditional" : "",
- "logic" : [ ]
+ "logic" : [ ],
+ "reorder" : false
} ],
"display" : "form",
"configKey" : "confirm-delete-tenant",
diff --git a/smardigo/pmci/form/current-job-left.json b/smardigo/pmci/form/current-job-left.json
new file mode 100644
index 0000000..efb5654
--- /dev/null
+++ b/smardigo/pmci/form/current-job-left.json
@@ -0,0 +1,168 @@
+{
+ "name" : "Current Job Left",
+ "configKey" : "current-job-left",
+ "page" : 0,
+ "components" : [ {
+ "label" : "Current Job",
+ "hideLabel" : true,
+ "persistent" : false,
+ "mask" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "datasourcecontainer",
+ "input" : true,
+ "key" : "job",
+ "defaultValue" : {
+ "tenant" : {
+ "id" : ""
+ }
+ },
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "data" : {
+ "url" : "api/v1/scopes/{{context.scopeId}}/tags/{{context.scopeTag}}/datasources/awx-job-plain/query?id={{data.current_job_id}}",
+ "method" : "GET",
+ "values" : [ { } ]
+ },
+ "components" : [ {
+ "label" : "Current Job",
+ "hideLabel" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "job",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "Name",
+ "labelPosition" : "left-left",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "name",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ }, {
+ "label" : "Beschreibung",
+ "labelPosition" : "left-left",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "description",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ }, {
+ "label" : "Status",
+ "labelPosition" : "left-left",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "status",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "properties" : { },
+ "datapath" : "0",
+ "encrypted" : false,
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "display" : "form"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/current-job-right.json b/smardigo/pmci/form/current-job-right.json
new file mode 100644
index 0000000..1e58e92
--- /dev/null
+++ b/smardigo/pmci/form/current-job-right.json
@@ -0,0 +1,138 @@
+{
+ "name" : "Current Job Right",
+ "configKey" : "current-job-right",
+ "page" : 0,
+ "components" : [ {
+ "label" : "Current Job",
+ "hideLabel" : true,
+ "persistent" : false,
+ "mask" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "datasourcecontainer",
+ "input" : true,
+ "key" : "job",
+ "defaultValue" : {
+ "tenant" : {
+ "id" : ""
+ }
+ },
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "data" : {
+ "url" : "api/v1/scopes/{{context.scopeId}}/tags/{{context.scopeTag}}/datasources/awx-job-plain/query?id={{data.current_job_id}}",
+ "method" : "GET",
+ "values" : [ { } ]
+ },
+ "components" : [ {
+ "label" : "Current Job",
+ "hideLabel" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "job",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "HTML",
+ "labelPosition" : "left-left",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "\n \n {{ data.status }} \n {{ data.status }} \n {{ data.status }} \n {{ data.status }} \n {{ data.status }} \n {{ data.status }} \n
",
+ "refreshOnChange" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "refreshOn" : "data",
+ "reorder" : false
+ }, {
+ "label" : "Status",
+ "labelPosition" : "left-left",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "hidden" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "status",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "properties" : { },
+ "datapath" : "0",
+ "encrypted" : false,
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "display" : "form"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/current-jobs.json b/smardigo/pmci/form/current-jobs.json
new file mode 100644
index 0000000..fe718e9
--- /dev/null
+++ b/smardigo/pmci/form/current-jobs.json
@@ -0,0 +1,280 @@
+{
+ "name" : "Current Jobs",
+ "configKey" : "current-jobs",
+ "page" : 0,
+ "components" : [ {
+ "label" : "Jobs",
+ "persistent" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "list",
+ "input" : true,
+ "key" : "jobs",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "job",
+ "mask" : false,
+ "hideLabel" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "customClass" : "pb-0",
+ "type" : "datasourcecontainer",
+ "input" : true,
+ "key" : "job",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "data" : {
+ "url" : "api/v1/scopes/{{context.scopeId}}/tags/{{context.scopeTag}}/datasources/awx-job-plain/query?id={{ row }}",
+ "method" : "GET",
+ "values" : [ { } ]
+ },
+ "components" : [ {
+ "label" : "job",
+ "hideLabel" : true,
+ "customClass" : "pb-0",
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "job",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "Columns",
+ "hideLabel" : true,
+ "columns" : [ {
+ "components" : [ {
+ "label" : "Name",
+ "hideLabel" : true,
+ "labelPosition" : "left-left",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "name",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ } ],
+ "width" : 4,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
+ }, {
+ "components" : [ {
+ "label" : "Name",
+ "hideLabel" : true,
+ "labelPosition" : "left-left",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "description",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ } ],
+ "width" : 4,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
+ }, {
+ "width" : 4,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column",
+ "components" : [ {
+ "label" : "Name",
+ "hideLabel" : true,
+ "labelPosition" : "left-left",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "clearOnHide" : false,
+ "hidden" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "status",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ }, {
+ "label" : "HTML",
+ "labelPosition" : "left-left",
+ "className" : "pb-0",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "\n \n {{ data.status }} \n {{ data.status }} \n {{ data.status }} \n {{ data.status }} \n {{ data.status }} \n {{ data.status }} \n
",
+ "refreshOnChange" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "refreshOn" : "data",
+ "reorder" : false
+ } ]
+ } ],
+ "customClass" : "pb-0",
+ "mask" : false,
+ "tableView" : false,
+ "alwaysEnabled" : false,
+ "type" : "columns",
+ "input" : false,
+ "key" : "columns",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "datapath" : "0",
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "customConditional" : "",
+ "properties" : { },
+ "tags" : [ ],
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "display" : "form"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/cons-delete-tenant.json b/smardigo/pmci/form/error-dialog.json
similarity index 51%
rename from smardigo/pmci/form/cons-delete-tenant.json
rename to smardigo/pmci/form/error-dialog.json
index 89cecd3..ac01893 100644
--- a/smardigo/pmci/form/cons-delete-tenant.json
+++ b/smardigo/pmci/form/error-dialog.json
@@ -6,8 +6,8 @@
"attr" : "",
"value" : ""
} ],
- "content" : "Sie sind danbei den Tenant zu löschen.",
- "refreshOnChange" : false,
+ "content" : "\n
\n
Es ist ein Fehler aufgetreten \n
Es ist ein nicht behandelbarer Fehler aufgetreten, bitte wenden Sie sich an einen Administrator.
\n
\n Fehlercode: {{ data.error_code }} \n Fehlerbeschreibung: {{ data.error_message }} \n \n
\n
",
+ "refreshOnChange" : true,
"mask" : false,
"tableView" : true,
"alwaysEnabled" : false,
@@ -24,14 +24,14 @@
"json" : ""
},
"tabs" : null,
- "reorder" : false,
"encrypted" : false,
"properties" : { },
"tags" : null,
"customConditional" : "",
- "logic" : [ ]
+ "logic" : [ ],
+ "reorder" : false
} ],
"display" : "form",
- "configKey" : "cons-delete-tenant",
- "name" : "cons-delete-tenant"
+ "configKey" : "error-dialog",
+ "name" : "error-dialog"
}
\ No newline at end of file
diff --git a/smardigo/pmci/form/progress-bar.json b/smardigo/pmci/form/progress-bar.json
new file mode 100644
index 0000000..6c4c6b2
--- /dev/null
+++ b/smardigo/pmci/form/progress-bar.json
@@ -0,0 +1,98 @@
+{
+ "name" : "Progress Bar",
+ "configKey" : "progress-bar",
+ "page" : 0,
+ "components" : [ {
+ "label" : "HTML",
+ "labelPosition" : "left-left",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "",
+ "refreshOnChange" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "refreshOn" : "data",
+ "reorder" : false
+ }, {
+ "label" : "progress_current",
+ "labelPosition" : "left-left",
+ "hidden" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "number",
+ "input" : true,
+ "key" : "progress_current",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "delimiter" : false,
+ "requireDecimal" : false,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "decimalLimit" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "progress_max",
+ "labelPosition" : "left-left",
+ "hidden" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "number",
+ "input" : true,
+ "key" : "progress_max",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "delimiter" : false,
+ "requireDecimal" : false,
+ "encrypted" : false,
+ "decimalLimit" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "display" : "form"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/select-connect-feature-set.json b/smardigo/pmci/form/select-connect-feature-set.json
new file mode 100644
index 0000000..f8d9d40
--- /dev/null
+++ b/smardigo/pmci/form/select-connect-feature-set.json
@@ -0,0 +1,63 @@
+{
+ "configKey" : "select-connect-feature-set",
+ "name" : "select-connect-feature-set",
+ "components" : [ {
+ "label" : "service",
+ "hideLabel" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "service",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "Optionale Connect-Features",
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "dualmultiselect",
+ "input" : true,
+ "key" : "connect_features",
+ "defaultValue" : [ ],
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "data" : {
+ "url" : "api/v1/scopes/{{ context.scopeId }}/processes/{{ context.processId }}/datasources/connect-features/query?default='0','1'",
+ "values" : [ { } ]
+ },
+ "template" : "{{ item.key }}",
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "projection" : "key",
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "display" : "form"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/select-connect-version.json b/smardigo/pmci/form/select-connect-version.json
new file mode 100644
index 0000000..ffd2da1
--- /dev/null
+++ b/smardigo/pmci/form/select-connect-version.json
@@ -0,0 +1,108 @@
+{
+ "configKey" : "select-connect-version",
+ "name" : "select-connect-version",
+ "components" : [ {
+ "label" : "service",
+ "hideLabel" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "service",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "HTML",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "Connect-Version\n
\n
\n\n",
+ "refreshOnChange" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html4",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "connect_version",
+ "hideLabel" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "select",
+ "input" : true,
+ "key" : "connect_version",
+ "defaultValue" : "latest",
+ "validate" : {
+ "customMessage" : "",
+ "json" : "",
+ "required" : true,
+ "select" : false
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "data" : {
+ "url" : "api/v1/scopes/{{context.scopeId}}/tags/{{context.scopeTag}}/datasources/whitelabel-docker-image-tags/query",
+ "headers" : [ {
+ "key" : "",
+ "value" : ""
+ } ],
+ "values" : [ ]
+ },
+ "dataSrc" : "url",
+ "valueProperty" : "value",
+ "tabs" : null,
+ "properties" : { },
+ "selectThreshold" : 0.3,
+ "encrypted" : false,
+ "lazyLoad" : false,
+ "selectValues" : "",
+ "disableLimit" : false,
+ "sort" : "",
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "customDefaultValue" : "value='latest'",
+ "reference" : false,
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "display" : "form"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/service-notice.json b/smardigo/pmci/form/service-notice.json
new file mode 100644
index 0000000..ba992fc
--- /dev/null
+++ b/smardigo/pmci/form/service-notice.json
@@ -0,0 +1,39 @@
+{
+ "components" : [ {
+ "label" : "Hinweis Create",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "\n
\n
Die Simulation ist gerade aktiv \n
Es werden keine Aktionen ausgeführt, da alle Aufrufe zu externen Systemen übersprungen werden.
\n
\n
",
+ "refreshOnChange" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "hinweisCreate3",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "true",
+ "when" : "process_definition_key",
+ "json" : "",
+ "eq" : "tenant-create"
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "show = !!data.simulation;",
+ "logic" : [ ],
+ "clearOnRefresh" : true,
+ "reorder" : false
+ } ],
+ "display" : "form",
+ "configKey" : "service-notice",
+ "name" : "service-notice"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/service-select-wizard.json b/smardigo/pmci/form/service-select-wizard.json
new file mode 100644
index 0000000..f67904b
--- /dev/null
+++ b/smardigo/pmci/form/service-select-wizard.json
@@ -0,0 +1,110 @@
+{
+ "display" : "wizard",
+ "page" : 0,
+ "numPages" : 1,
+ "components" : [ {
+ "title" : "Page 1",
+ "label" : "Page 1",
+ "type" : "panel",
+ "key" : "page1",
+ "input" : false,
+ "tableView" : false,
+ "components" : [ {
+ "label" : "service",
+ "hideLabel" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "service",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "Service",
+ "customClass" : "ml-4",
+ "clearOnHide" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "listselection",
+ "input" : true,
+ "key" : "selected_service",
+ "data" : {
+ "url" : "/api/v1/scopes/{{context.scopeId}}/tags/{{context.scopeTag}}/datasources/data-entity-services/query",
+ "requestBody" : "",
+ "values" : [ { } ],
+ "custom" : ""
+ },
+ "columns" : [ {
+ "name" : "Name",
+ "prop" : "name",
+ "value" : "",
+ "width" : "",
+ "sortable" : true
+ } ],
+ "projection" : [ {
+ "key" : "id",
+ "prop" : "id"
+ }, {
+ "key" : "name",
+ "prop" : "name"
+ }, {
+ "key" : "cluster",
+ "prop" : "cluster"
+ }, {
+ "key" : "connect_features",
+ "prop" : "connect_features"
+ }, {
+ "key" : "connect_version",
+ "prop" : "connect_version"
+ }, {
+ "key" : "locked",
+ "prop" : "locked"
+ }, {
+ "key" : "tenant_id",
+ "prop" : "tenant_id"
+ } ],
+ "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,
+ "filterPlaceholder" : "Tap to filter.",
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ]
+ } ],
+ "configKey" : "service-select-wizard",
+ "name" : "service-select-wizard (Achtung alle Felder herausprojezieren!)"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/service.json b/smardigo/pmci/form/service.json
new file mode 100644
index 0000000..777ddbf
--- /dev/null
+++ b/smardigo/pmci/form/service.json
@@ -0,0 +1,414 @@
+{
+ "components" : [ {
+ "label" : "service",
+ "hideLabel" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "service",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "HTML",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "Cluster ",
+ "refreshOnChange" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html6",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "cluster",
+ "hideLabel" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "cluster",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "Columns",
+ "columns" : [ {
+ "components" : [ {
+ "label" : "Stage",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "stage",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : "",
+ "required" : true,
+ "minLength" : null,
+ "maxLength" : null,
+ "minWords" : null,
+ "maxWords" : null
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ }, {
+ "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 15 Zeichen, alles kleingeschrieben",
+ "json" : "",
+ "required" : true,
+ "minLength" : null,
+ "maxLength" : null,
+ "minWords" : null,
+ "maxWords" : null,
+ "pattern" : "^[a-z0-9]{4,15}$"
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "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" : [ {
+ "label" : "Size",
+ "mask" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "number",
+ "input" : true,
+ "key" : "size",
+ "validate" : {
+ "customMessage" : "",
+ "json" : "",
+ "required" : true,
+ "min" : null,
+ "max" : null
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "delimiter" : false,
+ "requireDecimal" : false,
+ "encrypted" : false,
+ "decimalLimit" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "Service",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "service",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : "",
+ "required" : true,
+ "minLength" : null,
+ "maxLength" : null,
+ "minWords" : null,
+ "maxWords" : null
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "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"
+ } ],
+ "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" : [ ]
+ } ],
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "HTML",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "
\nConnect-Version ",
+ "refreshOnChange" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html4",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "connect_version",
+ "hideLabel" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "select",
+ "input" : true,
+ "key" : "connect_version",
+ "defaultValue" : "latest",
+ "validate" : {
+ "customMessage" : "",
+ "json" : "",
+ "required" : true,
+ "select" : false
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "data" : {
+ "url" : "api/v1/scopes/{{context.scopeId}}/tags/{{context.scopeTag}}/datasources/whitelabel-docker-image-tags/query",
+ "headers" : [ {
+ "key" : "",
+ "value" : ""
+ } ],
+ "values" : [ ]
+ },
+ "dataSrc" : "url",
+ "valueProperty" : "value",
+ "tabs" : null,
+ "properties" : { },
+ "selectThreshold" : 0.3,
+ "encrypted" : false,
+ "lazyLoad" : false,
+ "selectValues" : "",
+ "disableLimit" : false,
+ "sort" : "",
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "customDefaultValue" : "value='latest'",
+ "reference" : false,
+ "reorder" : false
+ }, {
+ "label" : "HTML",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "
\n
",
+ "refreshOnChange" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html5",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "Optionale Connect-Features",
+ "hideLabel" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "dualmultiselect",
+ "input" : true,
+ "key" : "connect_features",
+ "defaultValue" : [ ],
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "data" : {
+ "url" : "api/v1/scopes/{{ context.scopeId }}/processes/{{ context.processId }}/datasources/connect-features/query?default='0','1'",
+ "values" : [ { } ]
+ },
+ "template" : "{{ item.key }}",
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "projection" : "key",
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "display" : "form",
+ "configKey" : "service",
+ "name" : "service"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/tenant-in-service.json b/smardigo/pmci/form/tenant-in-service.json
new file mode 100644
index 0000000..7a45a64
--- /dev/null
+++ b/smardigo/pmci/form/tenant-in-service.json
@@ -0,0 +1,256 @@
+{
+ "components" : [ {
+ "label" : "Datasource Tenant",
+ "hideLabel" : true,
+ "persistent" : false,
+ "clearOnHide" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "datasourcecontainer",
+ "input" : true,
+ "key" : "tenant",
+ "defaultValue" : {
+ "tenant" : {
+ "id" : "",
+ "key" : ""
+ }
+ },
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "data" : {
+ "url" : "api/v1/scopes/{{context.scopeId}}/tags/{{context.scopeTag}}/datasources/data-entity-tenants/query?id={{data.service.tenant_id}}",
+ "method" : "GET",
+ "values" : [ { } ]
+ },
+ "components" : [ {
+ "label" : "Container 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",
+ "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" : { },
+ "tags" : [ ],
+ "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" : "columns4",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "reorder" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ]
+ }, {
+ "label" : "Columns",
+ "columns" : [ {
+ "components" : [ {
+ "label" : "Mandantenschlüssel",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "key",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "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" : [ {
+ "label" : "Mandantenname",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "name",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "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"
+ } ],
+ "mask" : false,
+ "tableView" : false,
+ "alwaysEnabled" : false,
+ "type" : "columns",
+ "input" : false,
+ "key" : "columns2",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "reorder" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ]
+ } ],
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "datapath" : "0",
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "display" : "form",
+ "configKey" : "tenant-in-service",
+ "name" : "tenant-in-service"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/tenant-notice.json b/smardigo/pmci/form/tenant-notice.json
new file mode 100644
index 0000000..661404c
--- /dev/null
+++ b/smardigo/pmci/form/tenant-notice.json
@@ -0,0 +1,104 @@
+{
+ "components" : [ {
+ "label" : "Hinweis Create",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "\n
\n
Die Simulation ist gerade aktiv \n
Es werden keine Aktionen ausgeführt, da alle Aufrufe zu externen Systemen übersprungen werden.
\n
\n
",
+ "refreshOnChange" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "hinweisCreate3",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "true",
+ "when" : "process_definition_key",
+ "json" : "",
+ "eq" : "tenant-create"
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "show = !!data.simulation;",
+ "logic" : [ ],
+ "clearOnRefresh" : true,
+ "reorder" : false
+ }, {
+ "label" : "Mandantenhinweise",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "\n
\n
Keine Mandanten mit Services löschen \n
Ein Mandant darf nur dann gelöscht werden, wenn keine Services mehr existieren.
\n
\n
",
+ "refreshOnChange" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "hinweisCreate4",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "true",
+ "when" : "process_definition_key",
+ "json" : "",
+ "eq" : "tenant-create"
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "show = context.processDefinitionKey == \"tenant-delete\";",
+ "logic" : [ ],
+ "clearOnRefresh" : true,
+ "reorder" : false
+ }, {
+ "label" : "Hinweis Create",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "\n
\n
Änderung vorhandender Mandanten \n
Die Änderung vorhandender Mandanten muss in Keycloak durch einen Realm-Administrator erfolgen.
\n
\n
",
+ "refreshOnChange" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "hinweisCreate5",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "show = (context.processDefinitionKey == \"tenant-create\") || (context.processDefinitionKey == \"tenant-change\");",
+ "logic" : [ ],
+ "clearOnRefresh" : true,
+ "reorder" : false
+ } ],
+ "display" : "form",
+ "configKey" : "tenant-notice",
+ "name" : "tenant-notice"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/tenant-select-wizard.json b/smardigo/pmci/form/tenant-select-wizard.json
index f0d7814..96ca7c0 100644
--- a/smardigo/pmci/form/tenant-select-wizard.json
+++ b/smardigo/pmci/form/tenant-select-wizard.json
@@ -50,7 +50,7 @@
"width" : "",
"sortable" : true
}, {
- "name" : "Schlüssel",
+ "name" : "Key",
"prop" : "key",
"value" : "",
"width" : "",
@@ -105,5 +105,5 @@
} ]
} ],
"configKey" : "tenant-select-wizard",
- "name" : "tenant-select-wizard (Achtung alle Felder herausprojezieren!)"
+ "name" : "tenant-select-wizard (Achtung alle Felder herausprojizieren!)"
}
\ No newline at end of file
diff --git a/smardigo/pmci/form/tenant-select.json b/smardigo/pmci/form/tenant-select.json
new file mode 100644
index 0000000..275c11d
--- /dev/null
+++ b/smardigo/pmci/form/tenant-select.json
@@ -0,0 +1,91 @@
+{
+ "components" : [ {
+ "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" : "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-filtered/query?user_id={{user.id}}",
+ "requestBody" : "",
+ "values" : [ { } ],
+ "custom" : ""
+ },
+ "columns" : [ {
+ "name" : "Name",
+ "prop" : "name",
+ "value" : "",
+ "width" : "",
+ "sortable" : true
+ }, {
+ "name" : "Key",
+ "prop" : "key",
+ "value" : "",
+ "width" : "",
+ "sortable" : true
+ } ],
+ "projection" : [ {
+ "key" : "key",
+ "prop" : "key"
+ }, {
+ "key" : "id",
+ "prop" : "id"
+ } ],
+ "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,
+ "filterPlaceholder" : "Tap to filter.",
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
+ "display" : "form",
+ "configKey" : "tenant-select",
+ "name" : "tenant-select"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/form/tenant.json b/smardigo/pmci/form/tenant.json
index 6c80711..e5cecaa 100644
--- a/smardigo/pmci/form/tenant.json
+++ b/smardigo/pmci/form/tenant.json
@@ -131,7 +131,7 @@
"label" : "Columns",
"columns" : [ {
"components" : [ {
- "label" : "Name",
+ "label" : "Mandantenschlüssel",
"allowMultipleMasks" : false,
"showWordCount" : false,
"showCharCount" : false,
@@ -139,19 +139,17 @@
"alwaysEnabled" : false,
"type" : "textfield",
"input" : true,
- "key" : "name",
- "properties" : { },
- "tags" : [ ],
+ "key" : "key",
"defaultValue" : "",
"validate" : {
- "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 4 und höchstens 20 Zeichen",
+ "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-zA-Z0-9-]{4,20}$"
+ "pattern" : "^[a-z1-9]{4,10}$"
},
"conditional" : {
"show" : "",
@@ -159,10 +157,32 @@
"json" : ""
},
"tabs" : null,
+ "properties" : { },
"inputFormat" : "plain",
"encrypted" : false,
+ "tags" : null,
"customConditional" : "",
- "logic" : [ ],
+ "logic" : [ {
+ "name" : "disable tenant-key",
+ "trigger" : {
+ "type" : "simple",
+ "simple" : {
+ "show" : true,
+ "when" : "process_definition_key",
+ "eq" : "tenant-change"
+ }
+ },
+ "actions" : [ {
+ "name" : "disable",
+ "type" : "property",
+ "property" : {
+ "label" : "Disabled",
+ "value" : "disabled",
+ "type" : "boolean"
+ },
+ "state" : "true"
+ } ]
+ } ],
"widget" : {
"type" : ""
},
@@ -179,40 +199,8 @@
"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",
+ "label" : "Mandantenname",
"allowMultipleMasks" : false,
"showWordCount" : false,
"showCharCount" : false,
@@ -220,17 +208,19 @@
"alwaysEnabled" : false,
"type" : "textfield",
"input" : true,
- "key" : "key",
+ "key" : "name",
+ "properties" : { },
+ "tags" : [ ],
"defaultValue" : "",
"validate" : {
- "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 4 und höchstens 10 Zeichen, alles kleingeschrieben",
+ "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 4 und höchstens 20 Zeichen",
"json" : "",
"required" : true,
"minLength" : null,
"maxLength" : null,
"minWords" : null,
"maxWords" : null,
- "pattern" : "^[a-z]{4,10}$"
+ "pattern" : "^[ a-zA-Z0-9-]{4,20}$"
},
"conditional" : {
"show" : "",
@@ -238,10 +228,8 @@
"json" : ""
},
"tabs" : null,
- "properties" : { },
"inputFormat" : "plain",
"encrypted" : false,
- "tags" : null,
"customConditional" : "",
"logic" : [ {
"name" : "disable tenant-key",
@@ -250,7 +238,7 @@
"simple" : {
"show" : true,
"when" : "process_definition_key",
- "eq" : "tenant-edit"
+ "eq" : "tenant-change"
}
},
"actions" : [ {
@@ -279,6 +267,38 @@
"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" : [ ],
+ "width" : 6,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
}, {
"components" : [ ],
"width" : 6,
@@ -297,7 +317,7 @@
"alwaysEnabled" : false,
"type" : "columns",
"input" : false,
- "key" : "columns5",
+ "key" : "columns2",
"conditional" : {
"show" : "",
"when" : "",
@@ -311,6 +331,7 @@
"logic" : [ ]
}, {
"label" : "Admin",
+ "hideLabel" : true,
"mask" : false,
"tableView" : true,
"alwaysEnabled" : false,
@@ -327,6 +348,37 @@
"json" : ""
},
"components" : [ {
+ "label" : "HTML",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : " \nAdmin ",
+ "refreshOnChange" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
"label" : "Columns",
"columns" : [ {
"components" : [ {
@@ -352,10 +404,30 @@
"properties" : { },
"tags" : [ ],
"customConditional" : "",
- "logic" : [ ],
+ "logic" : [ {
+ "name" : "disable tenant-key",
+ "trigger" : {
+ "type" : "simple",
+ "simple" : {
+ "show" : true,
+ "when" : "process_definition_key",
+ "eq" : "tenant-change"
+ }
+ },
+ "actions" : [ {
+ "name" : "disable",
+ "type" : "property",
+ "property" : {
+ "label" : "Disabled",
+ "value" : "disabled",
+ "type" : "boolean"
+ },
+ "state" : "true"
+ } ]
+ } ],
"reorder" : false
}, {
- "label" : "First name",
+ "label" : "Vorname",
"allowMultipleMasks" : false,
"showWordCount" : false,
"showCharCount" : false,
@@ -386,13 +458,33 @@
"inputFormat" : "plain",
"encrypted" : false,
"customConditional" : "",
- "logic" : [ ],
+ "logic" : [ {
+ "name" : "disable tenant-key",
+ "trigger" : {
+ "type" : "simple",
+ "simple" : {
+ "show" : true,
+ "when" : "process_definition_key",
+ "eq" : "tenant-change"
+ }
+ },
+ "actions" : [ {
+ "name" : "disable",
+ "type" : "property",
+ "property" : {
+ "label" : "Disabled",
+ "value" : "disabled",
+ "type" : "boolean"
+ },
+ "state" : "true"
+ } ]
+ } ],
"widget" : {
"type" : ""
},
"reorder" : false
}, {
- "label" : "Last name",
+ "label" : "Nachname",
"allowMultipleMasks" : false,
"showWordCount" : false,
"showCharCount" : false,
@@ -423,7 +515,27 @@
"inputFormat" : "plain",
"encrypted" : false,
"customConditional" : "",
- "logic" : [ ],
+ "logic" : [ {
+ "name" : "disable tenant-key",
+ "trigger" : {
+ "type" : "simple",
+ "simple" : {
+ "show" : true,
+ "when" : "process_definition_key",
+ "eq" : "tenant-change"
+ }
+ },
+ "actions" : [ {
+ "name" : "disable",
+ "type" : "property",
+ "property" : {
+ "label" : "Disabled",
+ "value" : "disabled",
+ "type" : "boolean"
+ },
+ "state" : "true"
+ } ]
+ } ],
"widget" : {
"type" : ""
},
@@ -457,7 +569,7 @@
"alwaysEnabled" : false,
"type" : "columns",
"input" : false,
- "key" : "columns6",
+ "key" : "columns5",
"conditional" : {
"show" : "",
"when" : "",
@@ -471,14 +583,46 @@
"logic" : [ ]
} ],
"tabs" : null,
+ "encrypted" : false,
"properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "HTML",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : " \nBenutzer ",
+ "refreshOnChange" : false,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html2",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
"encrypted" : false,
+ "properties" : { },
"tags" : null,
"customConditional" : "",
"logic" : [ ],
"reorder" : false
}, {
- "label" : "Benutzer",
+ "label" : " ",
+ "hideLabel" : true,
"multiple" : true,
"reorder" : false,
"mask" : false,
diff --git a/smardigo/pmci/layout/service-change.json b/smardigo/pmci/layout/service-change.json
new file mode 100644
index 0000000..7020615
--- /dev/null
+++ b/smardigo/pmci/layout/service-change.json
@@ -0,0 +1,129 @@
+{
+ "name" : "service-change",
+ "configKey" : "service-change",
+ "tabExpression" : "Service {{ data.service.name?:'neu' }}",
+ "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" : "service-notice",
+ "title" : "Hinweise",
+ "components" : [ {
+ "type" : "form",
+ "key" : "service-notice"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "applicserviceation",
+ "title" : "Service",
+ "components" : [ {
+ "type" : "form",
+ "key" : "service"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "tenant-in-service",
+ "title" : "Mandant",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant-in-service"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "aktionen",
+ "title" : "Aktionen",
+ "visibleExpression" : "true",
+ "components" : [ {
+ "type" : "form",
+ "key" : "progress-bar",
+ "readonlyExpression" : "true"
+ }, {
+ "type" : "columns",
+ "key" : "a_key",
+ "columns" : [ {
+ "width" : "75%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-left",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "width" : "25%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-right",
+ "readonlyExpression" : "true"
+ } ]
+ } ]
+ }, {
+ "type" : "form",
+ "key" : "current-jobs",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-comments",
+ "title" : "Kommentare",
+ "components" : [ {
+ "type" : "comments",
+ "key" : "comments"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-history",
+ "title" : "Protokoll",
+ "components" : [ {
+ "type" : "history",
+ "key" : "history"
+ } ]
+ } ]
+ } ],
+ "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/service-create.json b/smardigo/pmci/layout/service-create.json
new file mode 100644
index 0000000..6778505
--- /dev/null
+++ b/smardigo/pmci/layout/service-create.json
@@ -0,0 +1,129 @@
+{
+ "name" : "service-create",
+ "configKey" : "service-create",
+ "tabExpression" : "Service {{ data.service.name?:'neu' }}",
+ "readonlyExpression" : "data.vorgang_status > 90",
+ "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" : "service-notice",
+ "title" : "Hinweise",
+ "components" : [ {
+ "type" : "form",
+ "key" : "service-notice"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "service",
+ "title" : "Service",
+ "components" : [ {
+ "type" : "form",
+ "key" : "service"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "tenant-in-service",
+ "title" : "Mandant",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant-in-service"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "aktionen",
+ "title" : "Aktionen",
+ "visibleExpression" : "true",
+ "components" : [ {
+ "type" : "form",
+ "key" : "progress-bar",
+ "readonlyExpression" : "true"
+ }, {
+ "type" : "columns",
+ "key" : "a_key",
+ "columns" : [ {
+ "width" : "75%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-left",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "width" : "25%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-right",
+ "readonlyExpression" : "true"
+ } ]
+ } ]
+ }, {
+ "type" : "form",
+ "key" : "current-jobs",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-comments",
+ "title" : "Kommentare",
+ "components" : [ {
+ "type" : "comments",
+ "key" : "comments"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-history",
+ "title" : "Protokoll",
+ "components" : [ {
+ "type" : "history",
+ "key" : "history"
+ } ]
+ } ]
+ } ],
+ "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/service-delete.json b/smardigo/pmci/layout/service-delete.json
new file mode 100644
index 0000000..a2370f0
--- /dev/null
+++ b/smardigo/pmci/layout/service-delete.json
@@ -0,0 +1,129 @@
+{
+ "name" : "service-delete",
+ "configKey" : "service-delete",
+ "tabExpression" : "Service {{ data.service.name?:'neu' }}",
+ "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" : "service-notice",
+ "title" : "Hinweise",
+ "components" : [ {
+ "type" : "form",
+ "key" : "service-notice"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "service",
+ "title" : "Service",
+ "components" : [ {
+ "type" : "form",
+ "key" : "service"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "tenant-in-service",
+ "title" : "Mandant",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant-in-service"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "aktionen",
+ "title" : "Aktionen",
+ "visibleExpression" : "true",
+ "components" : [ {
+ "type" : "form",
+ "key" : "progress-bar",
+ "readonlyExpression" : "true"
+ }, {
+ "type" : "columns",
+ "key" : "a_key",
+ "columns" : [ {
+ "width" : "75%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-left",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "width" : "25%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-right",
+ "readonlyExpression" : "true"
+ } ]
+ } ]
+ }, {
+ "type" : "form",
+ "key" : "current-jobs",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-comments",
+ "title" : "Kommentare",
+ "components" : [ {
+ "type" : "comments",
+ "key" : "comments"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-history",
+ "title" : "Protokoll",
+ "components" : [ {
+ "type" : "history",
+ "key" : "history"
+ } ]
+ } ]
+ } ],
+ "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/service-replay-setup.json b/smardigo/pmci/layout/service-replay-setup.json
new file mode 100644
index 0000000..8fb995b
--- /dev/null
+++ b/smardigo/pmci/layout/service-replay-setup.json
@@ -0,0 +1,129 @@
+{
+ "name" : "service-replay-setup",
+ "configKey" : "service-replay-setup",
+ "tabExpression" : "Service {{ data.service.name?:'neu' }}",
+ "readonlyExpression" : "data.vorgang_status > 90",
+ "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" : "service-notice",
+ "title" : "Hinweise",
+ "components" : [ {
+ "type" : "form",
+ "key" : "service-notice"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "service",
+ "title" : "Service",
+ "components" : [ {
+ "type" : "form",
+ "key" : "service"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "tenant-in-service",
+ "title" : "Mandant",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant-in-service"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "aktionen",
+ "title" : "Aktionen",
+ "visibleExpression" : "true",
+ "components" : [ {
+ "type" : "form",
+ "key" : "progress-bar",
+ "readonlyExpression" : "true"
+ }, {
+ "type" : "columns",
+ "key" : "a_key",
+ "columns" : [ {
+ "width" : "75%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-left",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "width" : "25%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-right",
+ "readonlyExpression" : "true"
+ } ]
+ } ]
+ }, {
+ "type" : "form",
+ "key" : "current-jobs",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-comments",
+ "title" : "Kommentare",
+ "components" : [ {
+ "type" : "comments",
+ "key" : "comments"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-history",
+ "title" : "Protokoll",
+ "components" : [ {
+ "type" : "history",
+ "key" : "history"
+ } ]
+ } ]
+ } ],
+ "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-change.json b/smardigo/pmci/layout/tenant-change.json
new file mode 100644
index 0000000..012b8fd
--- /dev/null
+++ b/smardigo/pmci/layout/tenant-change.json
@@ -0,0 +1,121 @@
+{
+ "name" : "tenant-change",
+ "configKey" : "tenant-change",
+ "tabExpression" : "Mandant {{ data.tenant.name?:'neu' }}",
+ "readonlyExpression" : "data.vorgang_status > 90",
+ "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-notice",
+ "title" : "Hinweise",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant-notice"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "tenant",
+ "title" : "Mandant",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "aktionen",
+ "title" : "Aktionen",
+ "visibleExpression" : "true",
+ "components" : [ {
+ "type" : "form",
+ "key" : "progress-bar",
+ "readonlyExpression" : "true"
+ }, {
+ "type" : "columns",
+ "key" : "a_key",
+ "columns" : [ {
+ "width" : "75%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-left",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "width" : "25%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-right",
+ "readonlyExpression" : "true"
+ } ]
+ } ]
+ }, {
+ "type" : "form",
+ "key" : "current-jobs",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-comments",
+ "title" : "Kommentare",
+ "components" : [ {
+ "type" : "comments",
+ "key" : "comments"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-history",
+ "title" : "Protokoll",
+ "components" : [ {
+ "type" : "history",
+ "key" : "history"
+ } ]
+ } ]
+ } ],
+ "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-create.json b/smardigo/pmci/layout/tenant-create.json
index c3fb408..af4012a 100644
--- a/smardigo/pmci/layout/tenant-create.json
+++ b/smardigo/pmci/layout/tenant-create.json
@@ -1,7 +1,8 @@
{
"name" : "tenant-create",
"configKey" : "tenant-create",
- "tabExpression" : "Tenant {{ data.tenant.name?:'new' }}",
+ "tabExpression" : "Mandant {{ data.tenant.name?:'neu' }}",
+ "readonlyExpression" : "data.vorgang_status > 90",
"components" : [ {
"type" : "columns",
"key" : "dossier",
@@ -38,20 +39,68 @@
"toc" : "left",
"sections" : [ {
"type" : "section",
- "key" : "Tenant",
- "title" : "Tenant",
+ "key" : "tenant-notice",
+ "title" : "Hinweise",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant-notice"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "tenant",
+ "title" : "Mandant",
"components" : [ {
"type" : "form",
"key" : "tenant"
} ]
+ }, {
+ "type" : "section",
+ "key" : "aktionen",
+ "title" : "Aktionen",
+ "visibleExpression" : "true",
+ "components" : [ {
+ "type" : "form",
+ "key" : "progress-bar",
+ "readonlyExpression" : "true"
+ }, {
+ "type" : "columns",
+ "key" : "a_key",
+ "columns" : [ {
+ "width" : "75%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-left",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "width" : "25%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-right",
+ "readonlyExpression" : "true"
+ } ]
+ } ]
+ }, {
+ "type" : "form",
+ "key" : "current-jobs",
+ "readonlyExpression" : "true"
+ } ]
}, {
"type" : "section",
"key" : "dossier-comments",
- "title" : "Comments",
+ "title" : "Kommentare",
"components" : [ {
"type" : "comments",
"key" : "comments"
} ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-history",
+ "title" : "Protokoll",
+ "components" : [ {
+ "type" : "history",
+ "key" : "history"
+ } ]
} ]
} ],
"width" : "9"
diff --git a/smardigo/pmci/layout/tenant-delete.json b/smardigo/pmci/layout/tenant-delete.json
index 2259078..f7cfe76 100644
--- a/smardigo/pmci/layout/tenant-delete.json
+++ b/smardigo/pmci/layout/tenant-delete.json
@@ -1,7 +1,7 @@
{
"name" : "tenant-delete",
"configKey" : "tenant-delete",
- "tabExpression" : "Tenant {{ data.tenant.name }}",
+ "tabExpression" : "Mandant {{ data.tenant.name?:'neu' }}",
"readonlyExpression" : "true",
"components" : [ {
"type" : "columns",
@@ -39,21 +39,68 @@
"toc" : "left",
"sections" : [ {
"type" : "section",
- "key" : "Tenant",
- "title" : "Tenant",
+ "key" : "tenant-notice",
+ "title" : "Hinweise",
"components" : [ {
"type" : "form",
- "key" : "tenant",
+ "key" : "tenant-notice"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "tenant",
+ "title" : "Mandant",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "aktionen",
+ "title" : "Aktionen",
+ "visibleExpression" : "true",
+ "components" : [ {
+ "type" : "form",
+ "key" : "progress-bar",
+ "readonlyExpression" : "true"
+ }, {
+ "type" : "columns",
+ "key" : "a_key",
+ "columns" : [ {
+ "width" : "75%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-left",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "width" : "25%",
+ "components" : [ {
+ "type" : "form",
+ "key" : "current-job-right",
+ "readonlyExpression" : "true"
+ } ]
+ } ]
+ }, {
+ "type" : "form",
+ "key" : "current-jobs",
"readonlyExpression" : "true"
} ]
}, {
"type" : "section",
"key" : "dossier-comments",
- "title" : "Comments",
+ "title" : "Kommentare",
"components" : [ {
"type" : "comments",
"key" : "comments"
} ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-history",
+ "title" : "Protokoll",
+ "components" : [ {
+ "type" : "history",
+ "key" : "history"
+ } ]
} ]
} ],
"width" : "9"
diff --git a/smardigo/pmci/layout/tenant-edit.json b/smardigo/pmci/layout/tenant-edit.json
deleted file mode 100644
index 6456642..0000000
--- a/smardigo/pmci/layout/tenant-edit.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "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/mail-template/service-changed.html b/smardigo/pmci/mail-template/service-changed.html
new file mode 100644
index 0000000..df4e85b
--- /dev/null
+++ b/smardigo/pmci/mail-template/service-changed.html
@@ -0,0 +1,24 @@
+
+
+
+ Smardigo-Instanz wurde erfolgreich gewartet
+
+
+
+
+
+ Sehr geehrte Damen und Herren,
+
+
+
+ ihre Smardigo-Instanz ist nun nach ${maintenance_topic} einsatzbereit.
+
+
+
+ Hier geht es zum Antrag: Link
+
+
+ Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt.
+
+
+
diff --git a/smardigo/pmci/mail-template/smardigo-up-and-running.html b/smardigo/pmci/mail-template/service-created.html
similarity index 55%
rename from smardigo/pmci/mail-template/smardigo-up-and-running.html
rename to smardigo/pmci/mail-template/service-created.html
index 85a81e1..64c6c36 100644
--- a/smardigo/pmci/mail-template/smardigo-up-and-running.html
+++ b/smardigo/pmci/mail-template/service-created.html
@@ -28,29 +28,23 @@
Passwort
Link
-
+
Connect
- some-username
- some-password
- some-link
-
-
- Keycloak
- some-username
- some-password
- some-link
+ some-username
+ some-password
+ some-link
-
+
Wordpress
- some-username
- some-password
- some-link
+ some-username
+ some-password
+ some-link
- ELK
- some-username
- some-password
- some-link
+ Kibana
+ some-username
+ some-password
+ some-link
diff --git a/smardigo/pmci/mail-template/service-deleted.html b/smardigo/pmci/mail-template/service-deleted.html
new file mode 100644
index 0000000..96ffe50
--- /dev/null
+++ b/smardigo/pmci/mail-template/service-deleted.html
@@ -0,0 +1,24 @@
+
+
+
+ Ihre Smardigo-Instanz wurde gelöscht
+
+
+
+
+
+ Sehr geehrte Damen und Herren,
+
+
+
+ Ihre Smardigo-Instanz wurde 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-changed.html
similarity index 87%
rename from smardigo/pmci/mail-template/tenant-edited.html
rename to smardigo/pmci/mail-template/tenant-changed.html
index c58067d..b501f36 100644
--- a/smardigo/pmci/mail-template/tenant-edited.html
+++ b/smardigo/pmci/mail-template/tenant-changed.html
@@ -1,7 +1,7 @@
- Ihre Tenant-Daten wurden bearbeitet
+ Ihr Mandant wurde bearbeitet
@@ -11,7 +11,7 @@
- Ihre Tenant-Daten wurden bearbeitet.
+ Ihr Mandant wurde bearbeitet.
Die angepassten Daten können Sie hier einsehen : Link
diff --git a/smardigo/pmci/mail-template/tenant-created.html b/smardigo/pmci/mail-template/tenant-created.html
index db67d46..ab7946c 100644
--- a/smardigo/pmci/mail-template/tenant-created.html
+++ b/smardigo/pmci/mail-template/tenant-created.html
@@ -1,7 +1,7 @@
- Ihr Keycloack-Admin wurde angelegt
+ Ihr Mandant wurde angelegt
@@ -11,7 +11,8 @@
- Ihr Keycloack-Admin wurde eingerichtet.
+ Ihr Mandant wurde eingerichtet.
+ Bitte ignorieren Sie die Mail, sollten Sie bereits Zugriff auf den Mandanten haben.
Zum Abschließen der Anlage müssen Sie sich mit den folgenden angegebenen initialen Zugangsdaten anmelden.
@@ -23,8 +24,8 @@
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.
+ Sollten Sie bereits ein eigenes Passwort gesetzt haben, können Sie das in dieser Email enthaltene Passwort ignorieren
+ Dieser Admin-Zugang sollte lediglich zur Administration der Benutzer und Berechtigungen verwendet werden.
@@ -37,9 +38,9 @@
Keycloak
- some-username
- some-password
- some-link
+ some-username
+ some-password
+ some-link
diff --git a/smardigo/pmci/mail-template/tenant-deleted.html b/smardigo/pmci/mail-template/tenant-deleted.html
index 54e6bd8..e912f34 100644
--- a/smardigo/pmci/mail-template/tenant-deleted.html
+++ b/smardigo/pmci/mail-template/tenant-deleted.html
@@ -1,7 +1,7 @@
- Ihre Tenant wurde gelöscht
+ Ihr Mandant wurde gelöscht
@@ -11,7 +11,7 @@
- Ihr Tenant und alle dazu gehörigen Smardigo-Instanzen wurden gelöscht.
+ Ihr Mandant und alle dazu gehörigen Smardigo-Instanzen wurden gelöscht.
Den zugehörigen Vorgang können Sie hier einsehen : Link
diff --git a/smardigo/pmci/mapping/service-change.json b/smardigo/pmci/mapping/service-change.json
new file mode 100644
index 0000000..4c94b9a
--- /dev/null
+++ b/smardigo/pmci/mapping/service-change.json
@@ -0,0 +1,18 @@
+{
+ "configKey" : "service-change",
+ "configs" : [ {
+ "configKey" : "service-search",
+ "configs" : [ {
+ "key" : "service-search",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ }, {
+ "configKey" : "layout",
+ "configs" : [ {
+ "key" : "service-change",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/mapping/service-create.json b/smardigo/pmci/mapping/service-create.json
new file mode 100644
index 0000000..8d50c49
--- /dev/null
+++ b/smardigo/pmci/mapping/service-create.json
@@ -0,0 +1,18 @@
+{
+ "configKey" : "service-create",
+ "configs" : [ {
+ "configKey" : "process-search",
+ "configs" : [ {
+ "key" : "service-search",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ }, {
+ "configKey" : "layout",
+ "configs" : [ {
+ "key" : "service-create",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/mapping/service-delete.json b/smardigo/pmci/mapping/service-delete.json
new file mode 100644
index 0000000..7573667
--- /dev/null
+++ b/smardigo/pmci/mapping/service-delete.json
@@ -0,0 +1,18 @@
+{
+ "configKey" : "service-delete",
+ "configs" : [ {
+ "configKey" : "process-search",
+ "configs" : [ {
+ "key" : "service-search",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ }, {
+ "configKey" : "layout",
+ "configs" : [ {
+ "key" : "service-delete",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/mapping/service-replay-setup.json b/smardigo/pmci/mapping/service-replay-setup.json
new file mode 100644
index 0000000..a8a3799
--- /dev/null
+++ b/smardigo/pmci/mapping/service-replay-setup.json
@@ -0,0 +1,18 @@
+{
+ "configKey" : "service-replay-setup",
+ "configs" : [ {
+ "configKey" : "process-search",
+ "configs" : [ {
+ "key" : "service-search",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ }, {
+ "configKey" : "layout",
+ "configs" : [ {
+ "key" : "service-replay-setup",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/mapping/tenant-change.json b/smardigo/pmci/mapping/tenant-change.json
new file mode 100644
index 0000000..92ffd20
--- /dev/null
+++ b/smardigo/pmci/mapping/tenant-change.json
@@ -0,0 +1,18 @@
+{
+ "configKey" : "tenant-change",
+ "configs" : [ {
+ "configKey" : "process-search",
+ "configs" : [ {
+ "key" : "tenant-search",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ }, {
+ "configKey" : "layout",
+ "configs" : [ {
+ "key" : "tenant-change",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/mapping/tenant-create.json b/smardigo/pmci/mapping/tenant-create.json
new file mode 100644
index 0000000..4b4462e
--- /dev/null
+++ b/smardigo/pmci/mapping/tenant-create.json
@@ -0,0 +1,18 @@
+{
+ "configKey" : "tenant-create",
+ "configs" : [ {
+ "configKey" : "process-search",
+ "configs" : [ {
+ "key" : "tenant-search",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ }, {
+ "configKey" : "layout",
+ "configs" : [ {
+ "key" : "tenant-create",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/mapping/tenant-delete.json b/smardigo/pmci/mapping/tenant-delete.json
new file mode 100644
index 0000000..231bdda
--- /dev/null
+++ b/smardigo/pmci/mapping/tenant-delete.json
@@ -0,0 +1,18 @@
+{
+ "configKey" : "tenant-delete",
+ "configs" : [ {
+ "configKey" : "process-search",
+ "configs" : [ {
+ "key" : "tenant-search",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ }, {
+ "configKey" : "layout",
+ "configs" : [ {
+ "key" : "tenant-delete",
+ "type" : "juel",
+ "condition" : "${true}"
+ } ]
+ } ]
+}
\ No newline at end of file
diff --git a/smardigo/pmci/policy/policy.json b/smardigo/pmci/policy/policy.json
new file mode 100644
index 0000000..d9ed153
--- /dev/null
+++ b/smardigo/pmci/policy/policy.json
@@ -0,0 +1,5 @@
+{
+ "name" : "policy",
+ "configKey" : "policy",
+ "configType" : "policy"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-preset/send-msTeams-message.json b/smardigo/pmci/process-preset/send-msTeams-message.json
new file mode 100644
index 0000000..1e06f07
--- /dev/null
+++ b/smardigo/pmci/process-preset/send-msTeams-message.json
@@ -0,0 +1,6 @@
+{
+ "configKey" : "send-msTeams-message",
+ "name" : "send-msTeams-message",
+ "description" : "send-msTeams-message",
+ "bpmn" : "\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-search/service-search.json b/smardigo/pmci/process-search/service-search.json
new file mode 100644
index 0000000..fa0e9e2
--- /dev/null
+++ b/smardigo/pmci/process-search/service-search.json
@@ -0,0 +1,143 @@
+{
+ "name" : "service-search",
+ "configKey" : "service-search",
+ "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.key",
+ "name" : "Mandantenschlüssel",
+ "width" : 100
+ }, {
+ "key" : "service.cluster.key",
+ "name" : "Servicename",
+ "width" : "100"
+ }, {
+ "key" : "service.connect_version",
+ "name" : "Version",
+ "width" : "100"
+ }, {
+ "key" : "creation_user_id",
+ "name" : "Ersteller",
+ "width" : "100"
+ }, {
+ "key" : "vorgang_status_text",
+ "name" : "Status",
+ "width" : 100,
+ "render" : {
+ "type" : "nominal_classification",
+ "dataclassdefinitions" : [ {
+ "value" : "new",
+ "style" : "traffic-light-blue"
+ }, {
+ "value" : "request send",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "request approved",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "is being changed",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "is being created",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "is being deleted",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "creating database backup",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "restoring database backup",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "updating version",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "updating features",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "created",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "deleted",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "changed",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "version updated",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "feature updated",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "database backup created",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "database backup restored",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "change completed",
+ "style" : "traffic-light-green"
+ }, {
+ "value" : "creation completed",
+ "style" : "traffic-light-green"
+ }, {
+ "value" : "deletion completed",
+ "style" : "traffic-light-green"
+ }, {
+ "value" : "version update completed",
+ "style" : "traffic-light-green"
+ }, {
+ "value" : "feature update completed",
+ "style" : "traffic-light-green"
+ }, {
+ "value" : "database backup creation completed",
+ "style" : "traffic-light-green"
+ }, {
+ "value" : "database backup restore completed",
+ "style" : "traffic-light-green"
+ }, {
+ "value" : "canceled",
+ "style" : "traffic-light-red"
+ }, {
+ "value" : "request rejected",
+ "style" : "traffic-light-red"
+ }, {
+ "value" : "error",
+ "style" : "traffic-light-red"
+ } ]
+ }
+ } ],
+ "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-create-fallback.json b/smardigo/pmci/process-search/tenant-create-fallback.json
deleted file mode 100644
index b02255d..0000000
--- a/smardigo/pmci/process-search/tenant-create-fallback.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "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
deleted file mode 100644
index fd35ff1..0000000
--- a/smardigo/pmci/process-search/tenant-create.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "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
deleted file mode 100644
index 3d9f753..0000000
--- a/smardigo/pmci/process-search/tenant-delete.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "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
deleted file mode 100644
index bdd34ba..0000000
--- a/smardigo/pmci/process-search/tenant-edit.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "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
deleted file mode 100644
index 9cb3dfd..0000000
--- a/smardigo/pmci/process-search/tenant-events.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "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
index 83ca5e7..e232791 100644
--- a/smardigo/pmci/process-search/tenant-search.json
+++ b/smardigo/pmci/process-search/tenant-search.json
@@ -10,27 +10,67 @@
"key" : "process_definition_key",
"name" : "Prozess",
"width" : 100,
- "hidden" : true
+ "hidden" : false
}, {
"key" : "creation_date",
"name" : "Erstelldatum",
"width" : 100
}, {
"key" : "tenant.name",
- "name" : "Mandant Name",
+ "name" : "Mandantenname",
"width" : 100
}, {
"key" : "tenant.key",
- "name" : "Mandant Schlüssel",
+ "name" : "Mandantenschlüssel",
"width" : 100
}, {
"key" : "creation_user_id",
"name" : "Ersteller",
- "width" : 150
+ "width" : "100"
}, {
"key" : "vorgang_status_text",
"name" : "Status",
- "width" : 100
+ "width" : 100,
+ "render" : {
+ "type" : "nominal_classification",
+ "dataclassdefinitions" : [ {
+ "value" : "new",
+ "style" : "traffic-light-blue"
+ }, {
+ "value" : "is being changed",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "is being created",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "is being deleted",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "created",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "deleted",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "changed",
+ "style" : "traffic-light-yellow"
+ }, {
+ "value" : "change completed",
+ "style" : "traffic-light-green"
+ }, {
+ "value" : "creation completed",
+ "style" : "traffic-light-green"
+ }, {
+ "value" : "deletion completed",
+ "style" : "traffic-light-green"
+ }, {
+ "value" : "canceled",
+ "style" : "traffic-light-red"
+ }, {
+ "value" : "error",
+ "style" : "traffic-light-red"
+ } ]
+ }
} ],
"filters" : [ {
"name" : "Ersteller",
diff --git a/smardigo/pmci/process-variable-declaration/service-change.json b/smardigo/pmci/process-variable-declaration/service-change.json
new file mode 100644
index 0000000..cca8f4f
--- /dev/null
+++ b/smardigo/pmci/process-variable-declaration/service-change.json
@@ -0,0 +1,125 @@
+{
+ "name" : "service-change",
+ "configKey" : "service-change",
+ "configType" : "process-variable-declaration",
+ "variableDeclarations" : {
+ "creation_date" : {
+ "type" : "date",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Erstelldatum"
+ },
+ "creation_user_id" : {
+ "type" : "userId",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "creation_user_id"
+ },
+ "filterTenantId" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "TenantId"
+ },
+ "jobs" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "jobs"
+ },
+ "maintenance_topic" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Topic"
+ },
+ "process_definition_key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Prozess"
+ },
+ "progress_current" : {
+ "type" : "integer",
+ "classification" : "PRIVATE",
+ "label" : "progress_current"
+ },
+ "progress_max" : {
+ "type" : "integer",
+ "classification" : "PRIVATE",
+ "label" : "progress_max"
+ },
+ "service" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "fields" : {
+ "cluster" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "Cluster",
+ "fields" : {
+ "key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Cluster Name"
+ }
+ }
+ },
+ "connect_version" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Version"
+ },
+ "name" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Cluster Name"
+ },
+ "tenant_key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Tenant Schlüssel"
+ }
+ }
+ },
+ "simulation" : {
+ "type" : "boolean",
+ "classification" : "PRIVATE",
+ "label" : "simulation"
+ },
+ "stage" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Stage"
+ },
+ "tenant" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "Tenant",
+ "fields" : {
+ "key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Tenant Schlüssel"
+ }
+ }
+ },
+ "vorgang_status" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Status num"
+ },
+ "vorgang_status_text" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Status"
+ }
+ }
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-variable-declaration/service-create.json b/smardigo/pmci/process-variable-declaration/service-create.json
new file mode 100644
index 0000000..0b5186e
--- /dev/null
+++ b/smardigo/pmci/process-variable-declaration/service-create.json
@@ -0,0 +1,129 @@
+{
+ "name" : "service-create",
+ "configKey" : "service-create",
+ "configType" : "process-variable-declaration",
+ "variableDeclarations" : {
+ "creation_date" : {
+ "type" : "date",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Erstelldatum"
+ },
+ "creation_user_id" : {
+ "type" : "userId",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Ersteller"
+ },
+ "filterTenantId" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "TenantId"
+ },
+ "jobs" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "jobs"
+ },
+ "process_definition_key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Prozess"
+ },
+ "progress_current" : {
+ "type" : "long",
+ "classification" : "PRIVATE",
+ "label" : "progress_current"
+ },
+ "progress_max" : {
+ "type" : "long",
+ "classification" : "PRIVATE",
+ "label" : "progress_max"
+ },
+ "pruefer_id" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "label" : "pruefer_id"
+ },
+ "request_decision" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "label" : "request_decision"
+ },
+ "service" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "fields" : {
+ "cluster" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "Cluster",
+ "fields" : {
+ "key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Cluster Name"
+ }
+ }
+ },
+ "connect_version" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Version"
+ },
+ "name" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Cluster Name"
+ },
+ "tenant_key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Tenant Schlüssel"
+ }
+ }
+ },
+ "simulation" : {
+ "type" : "boolean",
+ "classification" : "PRIVATE",
+ "label" : "simulation"
+ },
+ "stage" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Stage"
+ },
+ "tenant" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "Tenant",
+ "fields" : {
+ "key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Tenant Schlüssel"
+ }
+ }
+ },
+ "vorgang_status" : {
+ "type" : "long",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Status"
+ },
+ "vorgang_status_text" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Statustext"
+ }
+ }
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-variable-declaration/service-delete.json b/smardigo/pmci/process-variable-declaration/service-delete.json
new file mode 100644
index 0000000..17d0af7
--- /dev/null
+++ b/smardigo/pmci/process-variable-declaration/service-delete.json
@@ -0,0 +1,119 @@
+{
+ "name" : "service-delete",
+ "configKey" : "service-delete",
+ "configType" : "process-variable-declaration",
+ "variableDeclarations" : {
+ "creation_date" : {
+ "type" : "date",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Erstelldatum"
+ },
+ "creation_user_id" : {
+ "type" : "userId",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Ersteller"
+ },
+ "filterTenantId" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "TenantId"
+ },
+ "jobs" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "jobs"
+ },
+ "process_definition_key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Prozess"
+ },
+ "progress_current" : {
+ "type" : "long",
+ "classification" : "PRIVATE",
+ "label" : "progress_current"
+ },
+ "progress_max" : {
+ "type" : "long",
+ "classification" : "PRIVATE",
+ "label" : "progress_max"
+ },
+ "service" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "fields" : {
+ "cluster" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "Cluster",
+ "fields" : {
+ "key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Cluster Name"
+ }
+ }
+ },
+ "connect_version" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Version"
+ },
+ "name" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Cluster Name"
+ },
+ "tenant_key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Tenant Schlüssel"
+ }
+ }
+ },
+ "simulation" : {
+ "type" : "boolean",
+ "classification" : "PRIVATE",
+ "label" : "simulation"
+ },
+ "stage" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Stage"
+ },
+ "tenant" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "Tenant",
+ "fields" : {
+ "key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Tenant Schlüssel"
+ }
+ }
+ },
+ "vorgang_status" : {
+ "type" : "long",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Status"
+ },
+ "vorgang_status_text" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Statustext"
+ }
+ }
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-variable-declaration/service-replay-setup.json b/smardigo/pmci/process-variable-declaration/service-replay-setup.json
new file mode 100644
index 0000000..5f344a0
--- /dev/null
+++ b/smardigo/pmci/process-variable-declaration/service-replay-setup.json
@@ -0,0 +1,129 @@
+{
+ "name" : "service-replay-setup",
+ "configKey" : "service-replay-setup",
+ "configType" : "process-variable-declaration",
+ "variableDeclarations" : {
+ "creation_date" : {
+ "type" : "date",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Erstelldatum"
+ },
+ "creation_user_id" : {
+ "type" : "userId",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Ersteller"
+ },
+ "filterTenantId" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "TenantId"
+ },
+ "jobs" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "jobs"
+ },
+ "process_definition_key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Prozess"
+ },
+ "progress_current" : {
+ "type" : "long",
+ "classification" : "PRIVATE",
+ "label" : "progress_current"
+ },
+ "progress_max" : {
+ "type" : "long",
+ "classification" : "PRIVATE",
+ "label" : "progress_max"
+ },
+ "pruefer_id" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "label" : "pruefer_id"
+ },
+ "request_decision" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "label" : "request_decision"
+ },
+ "service" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "fields" : {
+ "cluster" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "Cluster",
+ "fields" : {
+ "key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Cluster Name"
+ }
+ }
+ },
+ "connect_version" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Version"
+ },
+ "name" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Cluster Name"
+ },
+ "tenant_key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Tenant Schlüssel"
+ }
+ }
+ },
+ "simulation" : {
+ "type" : "boolean",
+ "classification" : "PRIVATE",
+ "label" : "simulation"
+ },
+ "stage" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Stage"
+ },
+ "tenant" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "Tenant",
+ "fields" : {
+ "key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Tenant Schlüssel"
+ }
+ }
+ },
+ "vorgang_status" : {
+ "type" : "long",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Status"
+ },
+ "vorgang_status_text" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Statustext"
+ }
+ }
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-variable-declaration/service-setup.json b/smardigo/pmci/process-variable-declaration/service-setup.json
new file mode 100644
index 0000000..bfeccbc
--- /dev/null
+++ b/smardigo/pmci/process-variable-declaration/service-setup.json
@@ -0,0 +1,83 @@
+{
+ "name" : "service-setup",
+ "configKey" : "service-setup",
+ "configType" : "process-variable-declaration",
+ "variableDeclarations" : {
+ "creation_date" : {
+ "type" : "date",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Erstelldatum"
+ },
+ "creation_user_id" : {
+ "type" : "userId",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "creation_user_id"
+ },
+ "in_data" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "in_data"
+ },
+ "jobs" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "jobs"
+ },
+ "progress_current" : {
+ "type" : "integer",
+ "classification" : "PRIVATE",
+ "label" : "progress_current"
+ },
+ "progress_max" : {
+ "type" : "integer",
+ "classification" : "PRIVATE",
+ "label" : "progress_max"
+ },
+ "service" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "service"
+ },
+ "stage" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "label" : "stage"
+ },
+ "tenant" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "tenant"
+ },
+ "wordpress_admin" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "wordpress_admin",
+ "fields" : {
+ "username" : {
+ "type" : "string",
+ "classification" : "PRIVATE"
+ },
+ "password" : {
+ "type" : "string",
+ "classification" : "PRIVATE"
+ }
+ }
+ },
+ "connect_admin" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "fields" : {
+ "username" : {
+ "type" : "string",
+ "classification" : "PRIVATE"
+ },
+ "password" : {
+ "type" : "string",
+ "classification" : "PRIVATE"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-variable-declaration/simulation.json b/smardigo/pmci/process-variable-declaration/simulation.json
new file mode 100644
index 0000000..bf20e38
--- /dev/null
+++ b/smardigo/pmci/process-variable-declaration/simulation.json
@@ -0,0 +1,20 @@
+{
+ "name" : "simulation",
+ "configKey" : "simulation",
+ "configType" : "process-variable-declaration",
+ "variableDeclarations" : {
+ "creation_date" : {
+ "type" : "date",
+ "classification" : "PRIVATE"
+ },
+ "creation_user_id" : {
+ "type" : "userId",
+ "classification" : "PRIVATE"
+ },
+ "simulation" : {
+ "type" : "boolean",
+ "classification" : "PRIVATE",
+ "label" : "simulation"
+ }
+ }
+}
\ No newline at end of file
diff --git a/smardigo/pmci/process-variable-declaration/tenant-change.json b/smardigo/pmci/process-variable-declaration/tenant-change.json
new file mode 100644
index 0000000..fe009af
--- /dev/null
+++ b/smardigo/pmci/process-variable-declaration/tenant-change.json
@@ -0,0 +1,76 @@
+{
+ "name" : "tenant-change",
+ "configKey" : "tenant-change",
+ "configType" : "process-variable-declaration",
+ "variableDeclarations" : {
+ "creation_date" : {
+ "type" : "date",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Erstelldatum"
+ },
+ "creation_user_id" : {
+ "type" : "userId",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Ersteller"
+ },
+ "former_tenant" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "former_tenant"
+ },
+ "keycloak_admin" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "Keycloak Administrator"
+ },
+ "process_definition_key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "HIDDEN process_definition_key"
+ },
+ "simulation" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "label" : "simulation"
+ },
+ "stage" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "label" : "Stage"
+ },
+ "tenant" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "Mandant",
+ "fields" : {
+ "key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Mandantenschlüssel"
+ },
+ "name" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Mandantenname"
+ }
+ }
+ },
+ "vorgang_status" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Status"
+ },
+ "vorgang_status_text" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Statustext"
+ }
+ }
+}
\ 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
index d47ee02..0ca7046 100644
--- a/smardigo/pmci/process-variable-declaration/tenant-create.json
+++ b/smardigo/pmci/process-variable-declaration/tenant-create.json
@@ -3,47 +3,69 @@
"configKey" : "tenant-create",
"configType" : "process-variable-declaration",
"variableDeclarations" : {
- "cluster" : {
- "type" : "object",
- "classification" : "PRIVATE"
- },
"creation_date" : {
"type" : "date",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Erstelldatum"
},
"creation_user_id" : {
"type" : "userId",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Ersteller"
},
- "id" : {
+ "keycloak_admin" : {
+ "type" : "object",
+ "classification" : "PRIVATE",
+ "label" : "Keycloak Administrator"
+ },
+ "process_definition_key" : {
"type" : "string",
"classification" : "PRIVATE",
"searchable" : true,
- "label" : "id"
+ "label" : "HIDDEN process_definition_key"
},
- "keycloak_admin_password" : {
- "type" : "string",
- "classification" : "PRIVATE"
+ "simulation" : {
+ "type" : "boolean",
+ "classification" : "PRIVATE",
+ "label" : "simulation"
},
- "keycloak_admin_username" : {
+ "stage" : {
"type" : "string",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "label" : "Stage"
},
"tenant" : {
"type" : "object",
- "classification" : "PRIVATE"
- },
- "user_ids" : {
- "type" : "object",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "label" : "Mandant",
+ "fields" : {
+ "key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Mandantenschlüssel"
+ },
+ "name" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Mandantenname"
+ }
+ }
},
"vorgang_status" : {
"type" : "string",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Status"
},
"vorgang_status_text" : {
"type" : "string",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Statustext"
}
}
}
\ 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
index 890a8b5..68dae71 100644
--- a/smardigo/pmci/process-variable-declaration/tenant-delete.json
+++ b/smardigo/pmci/process-variable-declaration/tenant-delete.json
@@ -5,33 +5,62 @@
"variableDeclarations" : {
"creation_date" : {
"type" : "date",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Erstelldatum"
},
"creation_user_id" : {
"type" : "userId",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Ersteller"
},
- "id" : {
+ "process_definition_key" : {
"type" : "string",
"classification" : "PRIVATE",
"searchable" : true,
- "label" : "id"
+ "label" : "HIDDEN process_definition_key"
},
- "tenant" : {
- "type" : "object",
- "classification" : "PRIVATE"
+ "simulation" : {
+ "type" : "boolean",
+ "classification" : "PRIVATE",
+ "label" : "simulation"
+ },
+ "stage" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "label" : "Stage"
},
- "user_ids" : {
+ "tenant" : {
"type" : "object",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "label" : "Mandant",
+ "fields" : {
+ "key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Mandantenschlüssel"
+ },
+ "name" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Mandantenname"
+ }
+ }
},
"vorgang_status" : {
"type" : "string",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Status"
},
"vorgang_status_text" : {
"type" : "string",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Statustext"
}
}
}
\ 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
deleted file mode 100644
index ec2268b..0000000
--- a/smardigo/pmci/process-variable-declaration/tenant-edit.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "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/pmci_dmns.dmn b/smardigo/pmci/process/pmci_dmns.dmn
new file mode 100644
index 0000000..d8649cb
--- /dev/null
+++ b/smardigo/pmci/process/pmci_dmns.dmn
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ tenant_id
+
+
+
+
+
+ -
+
+
+ "service-approve"
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/service-change.bpmn b/smardigo/pmci/process/service-change.bpmn
new file mode 100644
index 0000000..e2af586
--- /dev/null
+++ b/smardigo/pmci/process/service-change.bpmn
@@ -0,0 +1,1656 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${$action == 'ok'}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${0}
+ ${1}
+
+
+
+ ${false}
+ ${envStage}
+
+
+ Flow_0v9fn99
+ Flow_105dtdf
+
+
+
+
+ ${10}
+ new
+
+
+ Flow_0oce9k4
+ Flow_105dtdf
+ Flow_1csuwvq
+
+
+ Flow_0v9fn99
+
+
+
+
+
+
+
+
+
+
+ Flow_0vpp8s2
+
+
+
+ Flow_08ryq71
+ Flow_0gbz351
+
+
+ Flow_0gbz351
+
+
+
+
+
+
+
+ ${500}
+ error
+
+
+ Flow_0vpp8s2
+ Flow_08ryq71
+
+
+
+
+
+ Flow_0oce9k4
+
+
+
+
+ Flow_1csuwvq
+ Flow_0zlxne5
+ Flow_1ml3syp
+
+
+
+
+
+
+
+
+
+
+
+
+ Flow_1ml3syp
+ Flow_02ixndu
+
+
+ Flow_0j3iasf
+
+
+
+
+
+
+
+
+
+
+
+ Flow_1ntkihg
+ Flow_0vt02ag
+
+
+
+
+
+ Flow_15uw4p8
+ Flow_0x1wk9c
+
+
+
+
+
+
+
+
+
+ Flow_0vt02ag
+ Flow_1vp1h3f
+
+
+
+
+ ${1}
+ ${4}
+
+
+ Flow_1vp1h3f
+ Flow_1lm92r1
+
+
+
+
+
+
+
+
+
+ Flow_0x1wk9c
+ Flow_00j17xn
+
+
+
+
+ ${1}
+ ${4}
+
+
+ Flow_00j17xn
+ Flow_0n6vvh4
+
+
+
+
+ ${1}
+ ${5}
+
+
+ Flow_0ipuvtn
+ Flow_0ihgabp
+
+
+
+
+
+
+
+
+
+ Flow_1xi90u0
+ Flow_1lfsa3q
+
+
+
+
+
+
+
+
+
+ Flow_193l32a
+ Flow_0bmarci
+
+
+
+
+ ${1}
+ ${3}
+
+
+ Flow_1lfsa3q
+ Flow_0zb145q
+
+
+
+
+ ${1}
+ ${4}
+
+
+ Flow_0bmarci
+ Flow_1je7ve0
+
+
+ Flow_1123ggr
+
+
+
+ Flow_023va0a
+
+
+
+ Flow_0gzv1k2
+ Flow_1cqik3r
+ Flow_1ck8ltb
+ Flow_0bnixfv
+ Flow_19cbb6s
+ Flow_1xfl8v3
+ Flow_0a1iw3h
+
+
+ Flow_0dy0fgx
+ Flow_1ntkihg
+ Flow_1123ggr
+
+
+ Flow_0lvy5p2
+ Flow_0dy0fgx
+
+
+
+
+ ${106}
+ updating features
+ updating features
+
+
+ Flow_19cbb6s
+ Flow_0lvy5p2
+
+
+ Flow_0r181q4
+ Flow_15uw4p8
+ Flow_023va0a
+
+
+ Flow_1yaoiku
+ Flow_0r181q4
+
+
+
+
+ ${105}
+ updating version
+ updating version
+
+
+ Flow_0bnixfv
+ Flow_1yaoiku
+
+
+
+
+ ${103}
+ creating database backup
+ creating database backup
+
+
+ Flow_1xfl8v3
+ Flow_1xi90u0
+
+
+
+
+ ${102}
+ updating version
+ is being changed
+
+
+ Flow_1cqik3r
+ Flow_193l32a
+
+
+
+
+
+
+
+ Flow_0zlxne5
+ Flow_0gzv1k2
+
+
+ Flow_02ixndu
+ Flow_0j3iasf
+
+
+
+
+
+
+ ${service.connect_version}
+
+
+
+
+ Flow_1je7ve0
+ Flow_0ole7x1
+
+
+
+
+
+
+
+
+
+
+
+ ${connect}
+
+
+ ${progress_current + 1}
+
+
+ Flow_0ole7x1
+ Flow_1g56nyr
+
+
+
+
+
+
+
+
+
+
+ ${connect}
+
+
+ ${progress_current + 1}
+
+
+ Flow_0yadymj
+ Flow_01w1l99
+
+
+
+
+
+
+
+
+
+
+ ${connect}
+
+
+ ${progress_current + 1}
+
+
+ Flow_07h5sbj
+ Flow_0ovpasx
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+ Flow_1g56nyr
+ Flow_11b9h1n
+
+
+
+
+
+
+
+
+
+
+ up
+
+
+ ${progress_current + 1}
+
+
+ Flow_12v713n
+ Flow_010j88w
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+ Flow_11ya6nd
+ Flow_12v713n
+
+
+
+
+
+
+
+
+
+
+ down
+
+
+ ${progress_current + 1}
+
+
+ Flow_0zb145q
+ Flow_11ya6nd
+
+
+
+
+
+
+
+
+
+
+ up
+
+
+ ${progress_current + 1}
+
+
+ Flow_0w0niym
+ Flow_0w5drys
+
+
+
+
+
+
+
+
+
+ [database:[backup_file: "backup"]]
+
+ ${progress_current + 1}
+
+
+ Flow_07hj4i3
+ Flow_0w0niym
+
+
+
+
+
+
+
+
+
+
+ down
+
+
+ ${progress_current + 1}
+
+
+ Flow_0ihgabp
+ Flow_07hj4i3
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+ Flow_0ovpasx
+ Flow_1xw83gj
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+ Flow_01w1l99
+ Flow_1yp3qlu
+
+
+
+
+
+
+ ${service.connect_version}
+
+
+
+
+ Flow_0n6vvh4
+ Flow_07h5sbj
+
+
+
+
+
+
+
+ ${service.connect_version}
+
+
+
+
+ Flow_1lm92r1
+ Flow_0yadymj
+
+
+
+
+
+ ${202}
+ changed
+
+
+ Flow_11b9h1n
+ Flow_11t9a4k
+
+
+
+ Flow_1hn4hpo
+ Flow_037suas
+ Flow_0nihb5l
+ Flow_0br7ijt
+ Flow_1mkwwyz
+ Flow_0rwyg6o
+
+
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+ Flow_11t9a4k
+ Flow_12rcqo2
+
+
+
+
+ ${302}
+ change completed
+
+
+ Flow_12rcqo2
+ Flow_1hn4hpo
+
+
+
+
+
+ Flow_0a1iw3h
+ Flow_1ll7onq
+
+
+
+
+ ${400}
+ canceled
+
+
+ Flow_1ll7onq
+ Flow_0ja9nlg
+
+
+ Flow_0ja9nlg
+ Flow_11cc8o2
+ Flow_0qnwk1l
+
+
+ Flow_0qnwk1l
+
+
+
+
+
+
+ ${205}
+ database backup created
+
+
+ Flow_010j88w
+ Flow_1ocvj3h
+
+
+
+
+
+ ${206}
+ database backup restored
+
+
+ Flow_0w5drys
+ Flow_1oc3z2q
+
+
+
+
+
+ ${203}
+ version updated
+
+
+ Flow_1xw83gj
+ Flow_0y7y5t2
+
+
+
+
+
+ ${204}
+ feature updated
+
+
+ Flow_1yp3qlu
+ Flow_06pks0u
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+ Flow_1ocvj3h
+ Flow_1cjblxt
+
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+ Flow_1oc3z2q
+ Flow_0wtyliq
+
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+ Flow_0y7y5t2
+ Flow_00oim2x
+
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+ Flow_06pks0u
+ Flow_0zsuzuy
+
+
+
+
+
+
+ ${305}
+ database backup creation completed
+
+
+ Flow_1cjblxt
+ Flow_037suas
+
+
+
+
+
+ ${306}
+ database backup restore completed
+
+
+ Flow_0wtyliq
+ Flow_0nihb5l
+
+
+
+
+
+ ${303}
+ version update completed
+
+
+ Flow_00oim2x
+ Flow_0br7ijt
+
+
+
+
+
+ ${304}
+ feature update completed
+
+
+ Flow_0zsuzuy
+ Flow_1mkwwyz
+
+
+
+
+
+
+
+
+
+ Flow_0uh17wl
+ Flow_0ipuvtn
+
+
+
+
+ ${104}
+ restoring database backup
+ restoring database backup
+
+
+ Flow_1ck8ltb
+ Flow_0uh17wl
+
+
+
+
+
+
+
+ datasources.query('data-entity-tenants').processScope(contextScopeId, contextProcessDefinitionKey).parameters([id:tenant.id]).list()[0].admin.email
+
+
+
+ ${creation_user_id}
+ ${maintenance_topic}
+ template(service-changed)
+
+
+ Flow_0rwyg6o
+ Flow_11cc8o2
+
+
+ ACHTUNG: Ändert sich das Datenmodell des Tenants muss die Projektion im Wizard angepasst werden, sonst gehen die Daten verloren!
+
+
+
+ ToDo Formular service-selct-wizard
+
+
+
+ ToDo candidate groups setzen
+
+
+ ToDo candidate groups setzen
+
+
+
+
+ with data object
+
+
+ with data object
+
+
+
+
+ with data object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/service-create.bpmn b/smardigo/pmci/process/service-create.bpmn
new file mode 100644
index 0000000..5f0a3bd
--- /dev/null
+++ b/smardigo/pmci/process/service-create.bpmn
@@ -0,0 +1,985 @@
+
+
+
+
+
+
+
+
+
+ execution.setVariable('filterTenantId', '###')
+
+
+ Flow_1rtcnw8
+
+
+
+
+ ${tenant.key}
+
+
+ Flow_1rtcnw8
+ Flow_1vifzlg
+
+
+ Flow_1vifzlg
+ Flow_0taekhw
+ Flow_05k5qjf
+
+
+ Flow_05k5qjf
+
+
+
+
+
+
+
+
+
+
+
+ connect
+ ${1}
+ ${envStage}
+
+
+
+
+ ${in_connect_features}
+ ${in_cluster}
+ ${tenant.id}
+
+
+ ${envStage}
+ ${false}
+
+
+
+
+
+ Flow_0taekhw
+ Flow_16fljfi
+
+
+
+
+ ${10}
+ new
+
+
+ Flow_16fljfi
+ Flow_0dybqr7
+
+
+ Flow_0dybqr7
+ Flow_11txyw9
+ Flow_11wc1mc
+
+
+
+
+
+
+
+
+
+
+
+ Flow_11wc1mc
+ Flow_02ixndu
+
+
+
+
+
+
+
+ Flow_11txyw9
+ Flow_17rbwn1
+
+
+ Flow_17rbwn1
+ Flow_1hsqawc
+ Flow_13jykf9
+
+
+ Flow_0j3iasf
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flow_13jykf9
+
+
+
+
+
+
+ ${20}
+ request send
+
+
+ Flow_1hsqawc
+ Flow_1wgji1g
+
+
+
+
+
+
+
+ Flow_02ixndu
+ Flow_0j3iasf
+
+
+
+ Flow_0vpp8s2
+
+
+
+ Flow_1lrvebl
+ Flow_0gbz351
+
+
+ Flow_0gbz351
+
+
+
+
+
+
+
+ ${500}
+ error
+
+
+ Flow_0vpp8s2
+ Flow_1lrvebl
+
+
+
+
+
+
+
+ Flow_1wgji1g
+ Flow_0qc2wxt
+ Flow_0zcb7z2
+ Flow_1qghkm9
+
+
+ Flow_05rlolu
+
+
+
+
+
+
+ service.name=service.cluster.stage+'-'+tenant.key+'-'+service.cluster.key
+service.tenant_key=tenant.key
+service
+
+
+
+ Flow_1n08t19
+ Flow_0qjzqw7
+
+
+
+
+ ${100}
+ is being created
+
+
+ Flow_0qjzqw7
+ Flow_0bzl5jh
+
+
+
+
+
+
+
+
+
+
+ Flow_0bzl5jh
+ Flow_08cfi9d
+
+
+ Flow_03gesid
+ Flow_0o7a7fg
+ Flow_1s9e7ku
+
+
+
+
+
+ ${200}
+ created
+
+
+ Flow_08cfi9d
+ Flow_03gesid
+
+
+
+
+ ${400}
+ canceled
+
+
+ Flow_0xsem7d
+ Flow_0o7a7fg
+
+
+ Flow_0xsem7d
+
+
+
+
+
+ ${401}
+ request rejected
+
+
+ Flow_0a94ghp
+ Flow_1s9e7ku
+
+
+ Flow_0a94ghp
+
+
+
+ Flow_0zcb7z2
+
+ Flow_1xk6340
+
+
+
+
+ ${tenant.id}
+
+
+ Flow_1xk6340
+ Flow_18sqo48
+
+
+
+
+
+ import de.tolina.connect.common.variable.Variables
+def authenticatedUserId = users.currentUserId()
+Variables.userId(authenticatedUserId)
+
+
+
+ Flow_18sqo48
+ Flow_0cqe2bp
+ Flow_0xvqt4u
+
+
+ Flow_0xvqt4u
+ Flow_1j32s69
+
+
+ Flow_1j32s69
+ Flow_0cqe2bp
+ Flow_1p06dka
+
+
+ Flow_01no9i2
+
+
+
+
+ ${401}
+ request rejected
+
+
+ Flow_0tivdau
+ Flow_0tcd3yq
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${request_decision== 'requestApproved'}
+
+
+
+ ${request_decision== 'requestRejected'}
+
+
+
+
+ ${21}
+ request approved
+
+
+ Flow_0135fm5
+ Flow_0o4nrk7
+
+
+
+ Flow_0tcd3yq
+ Flow_0o4nrk7
+ Flow_01no9i2
+
+
+
+
+ Flow_1p06dka
+ Flow_0tivdau
+ Flow_0135fm5
+
+
+
+
+ Flow_0qc2wxt
+
+
+
+
+
+
+
+
+
+
+ Flow_1qghkm9
+ Flow_0l2gvw9
+
+
+ Flow_1w0j06b
+ Flow_1ydrsmh
+ Flow_0w32h9r
+ Flow_1mxyqdb
+
+
+
+
+ ${21}
+ request approved
+
+
+ Flow_14pzxys
+ Flow_1w0j06b
+
+
+ Flow_0l2gvw9
+ Flow_14pzxys
+
+ Flow_0oy4ldu
+
+
+ Flow_0oy4ldu
+ Flow_0wzmz4j
+
+
+
+ Flow_0wzmz4j
+
+
+
+
+
+ Flow_1ydrsmh
+
+ ${vorgang_status == 500}
+
+
+
+ Flow_05rlolu
+
+ ${vorgang_status == 401}
+
+
+
+ Flow_1n08t19
+
+ ${vorgang_status == 21}
+
+
+
+ Flow_1mxyqdb
+
+ ${vorgang_status == 500}
+
+
+
+ Flow_0w32h9r
+
+ ${vorgang_status == 401}
+
+
+
+ Den Antrag überprüfen und freigeben oder ablehnen.
+
+
+
+ Über Anfrage entscheiden
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/service-delete.bpmn b/smardigo/pmci/process/service-delete.bpmn
new file mode 100644
index 0000000..43e5bae
--- /dev/null
+++ b/smardigo/pmci/process/service-delete.bpmn
@@ -0,0 +1,732 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flow_0v9fn99
+
+
+
+
+
+ ${0}
+ ${1}
+
+
+
+ ${envStage}
+ ${false}
+
+
+ Flow_0v9fn99
+ Flow_07kepmf
+
+
+
+
+ ${10}
+ new
+
+
+ Flow_07kepmf
+ Flow_1csuwvq
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flow_1tm31mp
+ Flow_02ixndu
+
+
+ Flow_02ixndu
+ Flow_0j3iasf
+
+
+ Flow_0j3iasf
+
+
+
+
+
+ Flow_1csuwvq
+ Flow_1afqehr
+ Flow_1tm31mp
+
+
+
+
+
+
+
+
+
+ Flow_1wpzyq7
+ Flow_1afqehr
+ Flow_0gzv1k2
+
+
+ Flow_0gzv1k2
+ Flow_0a1iw3h
+ Flow_029ur97
+
+
+ Flow_029ur97
+ Flow_0xb2q5c
+
+
+ Flow_0xb2q5c
+ Flow_1wpzyq7
+ Flow_1q72hf3
+
+
+ Flow_0ja9nlg
+ Flow_1e3mi72
+ Flow_0qnwk1l
+
+
+
+
+ ${400}
+ canceled
+
+
+ Flow_1ungq2r
+ Flow_0ja9nlg
+
+
+
+
+ ${301}
+ deletion completed
+
+
+ Flow_11y2gxv
+ Flow_1e3mi72
+
+
+ Flow_0qnwk1l
+
+
+
+
+
+
+ Flow_022fwic
+ Flow_11y2gxv
+
+
+
+
+
+
+
+ datasources.query('data-entity-tenants').processScope(contextScopeId, contextProcessDefinitionKey).parameters(['id':tenant.id]).list()[0].admin.email
+
+
+
+ ${creation_user_id}
+ Service deleted
+ template(service-deleted)
+ ${simulation}
+
+
+ Flow_0jnufzr
+ Flow_022fwic
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+
+ Flow_1xpm12u
+ Flow_072rfbi
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+
+ Flow_1gvmyuf
+ Flow_0u33xva
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+
+ Flow_0u33xva
+ Flow_165535w
+
+
+
+
+ ${201}
+ deleted
+
+
+ Flow_165535w
+ Flow_0jnufzr
+
+
+
+
+ ${1}
+ ${6}
+
+
+ Flow_11tpxt9
+ Flow_1wr2dxn
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+
+ Flow_072rfbi
+ Flow_1gvmyuf
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+
+ Flow_0g483es
+ Flow_1xpm12u
+
+
+
+
+
+
+
+
+
+
+ Flow_1wr2dxn
+ Flow_0g483es
+
+
+
+ Flow_0vpp8s2
+
+
+
+ Flow_1s5t769
+ Flow_0gbz351
+
+
+
+ Flow_0gbz351
+
+
+
+
+
+
+
+ ${500}
+ error
+
+
+ Flow_0vpp8s2
+ Flow_1s5t769
+
+
+
+
+
+
+
+ ${400}
+ canceled
+
+
+ Flow_0a1iw3h
+ Flow_1ungq2r
+
+
+
+
+
+
+ ${101}
+ is being deleted
+
+
+ Flow_1q72hf3
+ Flow_11tpxt9
+
+
+
+ ACHTUNG: Ändert sich das Datenmodell des Tenants muss die Projektion im Wizard angepasst werden, sonst gehen die Daten verloren!
+
+
+
+ Service löschen.
+
+
+ Sind Sie sich sicher, dass der Service gelöscht werden soll?
+
+
+ Service entfernen
+
+
+ Realm/Client entfernen
+
+
+ Datenbank(en) entfernen
+
+
+ Server entfernen
+
+
+ Monitoring aktualisieren
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/service-replay-setup.bpmn b/smardigo/pmci/process/service-replay-setup.bpmn
new file mode 100644
index 0000000..1e43375
--- /dev/null
+++ b/smardigo/pmci/process/service-replay-setup.bpmn
@@ -0,0 +1,376 @@
+
+
+
+
+
+
+
+
+
+ execution.setVariable('filterTenantId', service.tenant_key)
+
+
+ Flow_17vb4ef
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${service.tenant_id}
+ ${service.tenant_key}
+
+
+ ${envStage}
+ ${false}
+
+
+
+ ${in_tenant}
+
+
+ Flow_17vb4ef
+ Flow_16fljfi
+
+
+
+
+ ${10}
+ new
+
+
+ Flow_16fljfi
+ Flow_0dybqr7
+
+
+ Flow_0dybqr7
+ Flow_11txyw9
+ Flow_11wc1mc
+
+
+
+
+
+
+
+
+
+
+
+ Flow_11wc1mc
+ Flow_02ixndu
+
+
+ Flow_02ixndu
+ Flow_0j3iasf
+
+
+
+
+
+
+
+ Flow_11txyw9
+ Flow_17rbwn1
+
+
+ Flow_17rbwn1
+ Flow_1hsqawc
+ Flow_13jykf9
+
+
+ Flow_0j3iasf
+
+
+
+
+
+
+
+
+ ${100}
+ is being created
+
+
+ Flow_1hsqawc
+ Flow_1ez5s2e
+
+
+
+
+
+
+
+
+
+
+ Flow_1ez5s2e
+ Flow_1um6uhr
+
+
+
+
+ Flow_03gesid
+ Flow_0o7a7fg
+
+
+
+
+
+ ${300}
+ creation completed
+
+
+ Flow_1um6uhr
+ Flow_03gesid
+
+
+
+
+ ${400}
+ canceled
+
+
+ Flow_0xsem7d
+ Flow_0o7a7fg
+
+
+ Flow_0xsem7d
+
+
+
+
+ Flow_0vpp8s2
+
+
+
+ Flow_1j2n5v6
+ Flow_0gbz351
+
+
+ Flow_0gbz351
+
+
+
+
+
+
+
+ ${500}
+ error
+
+
+ Flow_0vpp8s2
+ Flow_1j2n5v6
+
+
+
+
+
+ Flow_13jykf9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/service-setup.bpmn b/smardigo/pmci/process/service-setup.bpmn
new file mode 100644
index 0000000..ad955fb
--- /dev/null
+++ b/smardigo/pmci/process/service-setup.bpmn
@@ -0,0 +1,447 @@
+
+
+
+
+
+
+
+
+
+ execution.setVariable('filterTenantId', service.tenant_key)
+
+
+ Flow_17vb4ef
+
+
+
+
+
+
+
+ ${service.tenant_id}
+ ${service.tenant_key}
+
+
+ ${envStage}
+
+
+
+ ${in_tenant}
+
+
+ Flow_17vb4ef
+ Flow_1p27woa
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flow_1p27woa
+ Flow_0tgomqu
+
+
+
+
+ ${1}
+ ${8}
+
+
+ Flow_0tgomqu
+ Flow_11ki58f
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+
+
+
+ Flow_11ki58f
+ Flow_1eku1o4
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+ ${simulation}
+
+
+
+ Flow_1eku1o4
+ Flow_0pvr263
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+ ${simulation}
+
+
+
+
+ Flow_0pvr263
+ Flow_1f0iyrk
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+ ${simulation}
+
+
+
+
+ Flow_1f0iyrk
+ Flow_11k5c1y
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+ ${simulation}
+
+
+
+ Flow_11k5c1y
+ Flow_1r4otto
+
+
+
+
+
+
+
+
+
+ [database:[backup_file:"wordpress_portal.sql.gz"]]
+
+ ${progress_current + 1}
+ ${simulation}
+
+
+
+ Flow_1r4otto
+ Flow_1u7vy0j
+
+
+
+
+
+
+
+
+ ${progress_current + 1}
+ ${simulation}
+
+
+
+ Flow_1u7vy0j
+ Flow_19vs5q0
+
+
+
+
+
+
+
+ datasources.query('data-entity-tenants').processScope(contextScopeId, contextProcessDefinitionKey).parameters([id:tenant.id]).list()[0].admin.email
+
+
+
+ ${creation_user_id}
+ Service created
+ template(service-created)
+ ${simulation}
+
+
+
+ Flow_19vs5q0
+ Flow_022fwic
+
+
+ Flow_022fwic
+
+
+ create data object
+
+
+
+ Server erstellen
+
+
+
+ Datenbank(en) erstellen
+
+
+
+ Realm/Client erstellen
+
+
+ with data object
+
+
+
+
+ Service erstellen
+
+
+ with data object
+
+
+
+
+ Kibana Zugriff konfigurieren
+
+
+
+ Datenbank(en) Backup importieren
+
+
+
+ Monitoring aktualisieren
+
+
+
+ with data object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/simulation.bpmn b/smardigo/pmci/process/simulation.bpmn
new file mode 100644
index 0000000..08d450e
--- /dev/null
+++ b/smardigo/pmci/process/simulation.bpmn
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+ Flow_0vi6kx2
+ Flow_0tidyh6
+ Flow_171zvpv
+
+
+ Flow_0vi6kx2
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${!simulation}
+ ${simulation}
+
+
+
+
+
+ Flow_171zvpv
+ Flow_0tidyh6
+
+
+
+ Testen des Prozessmodells
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/smardigo-management-action.bpmn b/smardigo/pmci/process/smardigo-management-action.bpmn
index a1a8f58..bf9445e 100644
--- a/smardigo/pmci/process/smardigo-management-action.bpmn
+++ b/smardigo/pmci/process/smardigo-management-action.bpmn
@@ -4,23 +4,98 @@
-
+
Flow_1ow8whd
Flow_1ow8whd
Flow_0qfq760
+
+
+
+
+ def templates = datasources.query('awx-job-templates').processScope(contextScopeId, contextProcessId).parameters([name:smardigoManagementAction]).list();
+
+templates.size()==0 ? -1 : templates[0]['id'];
+
+
+
+ Flow_1xdj53u
+ Flow_1cnt5hf
+
+
+
+
+
+
+ ${simulation}
+
+
+
+
+
+
+
+
+ Flow_0qfq760
+ Flow_0tmasvl
+ Flow_1rngywr
+
+
- Flow_0qfq760
- Flow_11nxxg5
+ Flow_1rngywr
+ Flow_1xdj53u
+
+
+ ${job_template_id != -1}
+
+
+ Flow_0gcsmj7
+ Flow_0tmasvl
+ Flow_0npv638
+
+
+ Flow_1ju13h8
+
+
+ Flow_0npv638
+ Flow_1ju13h8
+
+
+ Flow_1nuku1o
+ Flow_0gcsmj7
+
+
+
+ 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)
+
+
+
+
+ /api/v2/job_templates/${job_template_id}/launch/
+
+
+
+
+
+ Flow_065a4cq
+ Flow_1nqz9ya
+
@@ -34,83 +109,29 @@
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
+ Flow_065a4cq
+ Flow_0mtnk56
-
-
-
-
-
-
- ${envStage=="dev"}
+
+ ${job_template_id == -1}
-
-
-
-
-
-
+
+ Flow_0mtnk56
+
+
+
+ Anmerkung
+* teams-Benachrichtigung nur, wenn teams_channel_url exisitiert
+
+
-
+
@@ -118,39 +139,49 @@ processes.byId(contextScopeId, contextProcessId).createComment('current_job_id :
-
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
@@ -158,55 +189,69 @@ processes.byId(contextScopeId, contextProcessId).createComment('current_job_id :
-
-
-
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
-
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/smardigo-management-mail.bpmn b/smardigo/pmci/process/smardigo-management-mail.bpmn
new file mode 100644
index 0000000..17fc7f7
--- /dev/null
+++ b/smardigo/pmci/process/smardigo-management-mail.bpmn
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+ Flow_0q4r1e5
+
+
+ Flow_0q4r1e5
+ Flow_0tmasvl
+ Flow_1lj4x24
+
+
+
+
+
+
+
+
+ Flow_1lj4x24
+ Flow_0sj9hcv
+
+
+
+ ${simulation}
+
+
+
+
+
+ Flow_16okvn5
+
+
+ Flow_0tmasvl
+ Flow_0sj9hcv
+ Flow_16okvn5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/smardigo-management-message.bpmn b/smardigo/pmci/process/smardigo-management-message.bpmn
index 513e602..b6bb070 100644
--- a/smardigo/pmci/process/smardigo-management-message.bpmn
+++ b/smardigo/pmci/process/smardigo-management-message.bpmn
@@ -4,12 +4,22 @@
-
- Flow_1nu8qqa
+
+ Flow_0q4r1e5
-
-
-
+
+
+
+ ${simulation}
+
+
+
+ Flow_0q4r1e5
+ Flow_0tmasvl
+ Flow_1rngywr
+
+
+
@@ -17,34 +27,67 @@
- Flow_1nu8qqa
+ Flow_1rngywr
Flow_127qqnb
- Flow_127qqnb
+ Flow_16okvn5
+
+ Flow_0tmasvl
+ Flow_127qqnb
+ Flow_16okvn5
+
+
-
+
+
+
+
-
+
+
-
+
+
+
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smardigo/pmci/process/tenant-change.bpmn b/smardigo/pmci/process/tenant-change.bpmn
new file mode 100644
index 0000000..227b53c
--- /dev/null
+++ b/smardigo/pmci/process/tenant-change.bpmn
@@ -0,0 +1,482 @@
+
+
+
+
+
+
+
+
+
+
+ Flow_1a8vxf0
+
+
+
+
+
+ ${envStage}
+ ${tenant}
+ ${false}
+
+
+ Flow_1a8vxf0
+ Flow_1dx4xho
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${10}
+ new
+
+
+ Flow_1dx4xho
+ Flow_0oc7f69
+
+
+ Flow_0oc7f69
+ Flow_1nib5q3
+ Flow_14a5pic
+
+
+
+
+
+
+
+
+ Flow_1nib5q3
+ Flow_080k63h
+
+
+ Flow_02ixndu
+ Flow_1un26wv
+
+
+ Flow_080k63h
+ Flow_1itjvyi
+ Flow_0jqgye3
+
+
+
+
+
+ Flow_0h2salf
+ Flow_0xoi4g3
+
+
+
+
+
+
+
+
+
+ ${keycloak_admin_password}
+ ${tenant.key}-realm-admin
+
+
+
+
+ Flow_0xoi4g3
+ Flow_0d14psj
+
+
+
+
+
+
+
+
+
+ ${keycloak_admin}
+
+
+
+
+
+ Flow_0d14psj
+ Flow_19apghu
+
+
+
+
+ ${102}
+ is being changed
+
+
+ Flow_0jqgye3
+ Flow_0h2salf
+
+
+
+
+
+ ${400}
+ canceled
+
+
+ Flow_1itjvyi
+ Flow_0ufs5lg
+
+
+
+
+
+
+
+
+
+
+
+
+ Flow_14a5pic
+ Flow_02ixndu
+
+
+ Flow_1un26wv
+
+
+
+
+
+
+
+
+
+
+ ${keycloak_admin}
+
+
+
+
+
+ Flow_19apghu
+ Flow_0rg0cwe
+
+
+
+
+
+ ${202}
+ changed
+
+
+ Flow_0rg0cwe
+ Flow_0n3oqyj
+
+
+
+
+
+
+ ${tenant.admin.email},${former_tenant.admin.email}
+
+
+ ${creation_user_id}
+ Tenant editiert
+ template(tenant-changed)
+
+
+ Flow_0n3oqyj
+ Flow_0oojo3a
+
+
+
+
+ ${302}
+ change completed
+
+
+ Flow_0oojo3a
+ Flow_193loig
+
+
+ Flow_0ufs5lg
+ Flow_193loig
+ Flow_1dzhr2w
+
+
+ Flow_1dzhr2w
+
+
+
+
+ Flow_0vpp8s2
+
+
+
+ Flow_01u1lvx
+ Flow_0gbz351
+
+
+ Flow_0gbz351
+
+
+
+
+
+
+
+ ${500}
+ error
+
+
+ Flow_0vpp8s2
+ Flow_01u1lvx
+
+
+
+
+
+ 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-create.bpmn b/smardigo/pmci/process/tenant-create.bpmn
index a3c84e6..a9cf16d 100644
--- a/smardigo/pmci/process/tenant-create.bpmn
+++ b/smardigo/pmci/process/tenant-create.bpmn
@@ -1,28 +1,22 @@
-
-
- Flow_1a8vxf0
-
-
-
-
-
- ${10}
- new
-
-
- Flow_1a8vxf0
- Flow_0oc7f69
-
-
-
+
+
+
-
+
+
+
+
+
+
+
+
+
@@ -31,233 +25,461 @@
-
-
-
-
-
-
-
-
-
- Flow_0oc7f69
- Flow_080k63h
-
-
- Flow_080k63h
- Flow_1itjvyi
- Flow_0jqgye3
-
-
+
+
+
+
+
+ Flow_1a8vxf0
+
+
${10}
- is being created
+ new
- Flow_0jqgye3
- Flow_0h2salf
+ Flow_19ygg1t
+ Flow_0oc7f69
-
+
-
-
+
+
+
+
+
+
+ ${envStage}
+ ${false}
+
+
+ ${initial_admin}
+
+
+
+ ${initial_user_ids}
+
- ${tenant.key}-realm-admin
+ Flow_1a8vxf0
+ Flow_19ygg1t
+
+
+
+
+
Flow_0h2salf
+ Flow_0nerrg9
+
+
+
+
+
+
+
+
+
+ ${keycloak_admin_password}
+ ${tenant.key}-realm-admin
+
+
+
+
+ Flow_0nerrg9
Flow_01p8umx
-
+
-
+
+
+
+ ${keycloak_admin}
+
+
+
-
Flow_01p8umx
Flow_19apghu
-
+
-
+
+
+
- Flow_19apghu
- Flow_1vkbt5o
-
-
+ Flow_1k4egtq
+ Flow_080k63h
+
+
+ Flow_080k63h
+ Flow_1itjvyi
+ Flow_0jqgye3
+
+
+
+ Flow_0oc7f69
+ Flow_1k4egtq
+ Flow_0yhft28
+
+
+
+
+
+
-
+
+
+ Flow_0yhft28
+ Flow_02ixndu
+
+
+
+
+ Flow_02ixndu
+ Flow_0j3iasf
+
+
+
+ Flow_0j3iasf
+
+
+
+
+
+ ${100}
+ is being created
+
+
+ Flow_0jqgye3
+ Flow_0h2salf
+
+
+
+
+
+ ${400}
+ canceled
+
+
+ Flow_1itjvyi
+ Flow_0ufs5lg
+
+
+
+
+
+ ${200}
+ created
+
+
+ Flow_08j9m56
+ Flow_03qvqdv
+
+
+
+
+
-
${tenant.admin.email}
+
+ ${creation_user_id}
Tenant angelegt
template(tenant-created)
- ${creation_user_id}
- Flow_1vkbt5o
- Flow_1i1qgmz
-
-
- Flow_1dzhr2w
-
-
+ Flow_03qvqdv
+ Flow_1cgenrw
+
+
- ${100}
- created
+ ${300}
+ creation completed
- Flow_1i1qgmz
- Flow_03qvqdv
+ Flow_1cgenrw
+ Flow_06m12ue
Flow_0ufs5lg
- Flow_03qvqdv
+ Flow_06m12ue
Flow_1dzhr2w
-
+
+ Flow_1dzhr2w
+
+
+
+
+
+
- ${101}
- canceled
+
+
+ ${keycloak_admin}
+
+
+
- Flow_1itjvyi
- Flow_0ufs5lg
-
+ Flow_19apghu
+ Flow_08j9m56
+
+
+
+
+ Flow_0vpp8s2
+
+
+
+ Flow_01w1452
+ Flow_00n1r2j
+
+
+ Flow_00n1r2j
+
+
+
+
+
+
+ ${500}
+ error
+
+
+ Flow_0vpp8s2
+ Flow_01w1452
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
+
+
-
-
-
-
-
+
+
+
-
+
-
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
+
diff --git a/smardigo/pmci/process/tenant-delete.bpmn b/smardigo/pmci/process/tenant-delete.bpmn
index ea2769a..5e35e5e 100644
--- a/smardigo/pmci/process/tenant-delete.bpmn
+++ b/smardigo/pmci/process/tenant-delete.bpmn
@@ -1,28 +1,14 @@
-
-
- Flow_1a8vxf0
-
-
-
-
-
- Flow_0oc7f69
- Flow_1wpzyq7
- Flow_0kcmdp7
-
-
- Flow_0kcmdp7
- Flow_0a1iw3h
- Flow_029ur97
-
-
-
+
+
+
+
+
@@ -31,281 +17,484 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
- ${10}
- new
-
+
+
+
- Flow_1a8vxf0
- Flow_0oc7f69
-
-
- Flow_04k00j1
-
-
+
+
+
+
+
+
+
+
+
+
+ Flow_0552d4k
+
+
+
- ${100}
- deleted
+ ${400}
+ canceled
- Flow_1j8nnwn
- Flow_03qvqdv
+ Flow_0a1iw3h
+ Flow_04lmj9g
+
-
- Flow_03qvqdv
- Flow_04lmj9g
- Flow_04k00j1
-
-
+
${101}
- canceled
+ is being deleted
- Flow_0a1iw3h
- Flow_04lmj9g
+ Flow_17n4rbv
+ Flow_1bscmxt
+
-
-
-
+
+ Flow_02ixndu
+ Flow_0552d4k
+
+
+
+
+
+
-
+
-
-
+ Flow_0ildlen
+ Flow_02ixndu
+
+
+ Flow_0oc7f69
+ Flow_0df6b4n
+ Flow_0ildlen
+
+
-
+
+
+ Flow_1wpzyq7
+ Flow_0df6b4n
+ Flow_0kcmdp7
+
+
+ Flow_0kcmdp7
+ Flow_0a1iw3h
+ Flow_029ur97
+
+
+ Flow_1czdw49
+ Flow_17n4rbv
+ Flow_1wpzyq7
+
+
+ Flow_029ur97
+ Flow_1czdw49
+
+
+
+
+
+
+
+
+
+ Flow_1bscmxt
+ Flow_0xqvbcm
+
+
+
+
+
+ Flow_0xqvbcm
+ Flow_0effjmm
+
+
+
+
+ ${envStage}
+ ${false}
+
+
+ Flow_0qd4h04
+ Flow_1qa35m8
+
+
+ Flow_0qd4h04
+
+
+
+
+
-
${tenant.admin.email}
- Tenant editiert
- template(tenant-deleted)
+
${creation_user_id}
+ Tenant gelöscht
+ template(tenant-deleted)
- Flow_1vkbt5o
+ Flow_0z5fitu
Flow_1j8nnwn
-
-
+
+
-
+
+ ${301}
+ deletion completed
+
- Flow_19apghu
- Flow_1vkbt5o
-
-
+ Flow_1j8nnwn
+ Flow_1hfnfzi
+
+
+
+
+ ${201}
+ deleted
+
+
+ Flow_0bo5xlw
+ Flow_0z5fitu
+
+
+ Flow_04lmj9g
+ Flow_1hfnfzi
+ Flow_04k00j1
+
+
+ Flow_04k00j1
+
+
+
-
+
-
- Flow_17n4rbv
- Flow_19apghu
+ Flow_0effjmm
+ Flow_0bo5xlw
-
- Flow_1czdw49
- Flow_17n4rbv
- Flow_1wpzyq7
-
-
- Flow_0h2salf
- Flow_1czdw49
-
-
+
+
+
+ Flow_0vpp8s2
+
+
+
+ Flow_0ott43g
+ Flow_0gbz351
+
+
+ Flow_0gbz351
+
+
+
+
+
+
+
+ ${500}
+ error
+
+
+ Flow_0vpp8s2
+ Flow_0ott43g
+
+
+
+
+
${10}
- is being deleted
+ new
- Flow_029ur97
- Flow_0h2salf
+ Flow_1qa35m8
+ Flow_0oc7f69
-
- Alles löschen?
-
-
- ACHTUNG: Ändert sich das Datenmodell des Tenants muss die Projektion im Wizard angepasst werden, sonst gehen die Daten verloren!
+ ACHTUNG: Ändert sich das Datenmodell des Mandanten 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
deleted file mode 100644
index 48d22a3..0000000
--- a/smardigo/pmci/process/tenant-edit.bpmn
+++ /dev/null
@@ -1,276 +0,0 @@
-
-
-
-
-
-
-
-
- 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/role-policy-mapping/role-policy-mapping.json b/smardigo/pmci/role-policy-mapping/role-policy-mapping.json
new file mode 100644
index 0000000..7a1ca8f
--- /dev/null
+++ b/smardigo/pmci/role-policy-mapping/role-policy-mapping.json
@@ -0,0 +1,16 @@
+{
+ "name" : "role-policy-mapping",
+ "configKey" : "role-policy-mapping",
+ "configType" : "role-policy-mapping",
+ "rolePolicyMapping" : {
+ "input_surveillance_folder" : [ ],
+ "input_surveillance_mail" : [ ]
+ },
+ "importedFrom" : {
+ "scopeId" : "smardigo-input-surveillance",
+ "rolePolicyMapping" : {
+ "input_surveillance_folder" : [ "input_surveillance_folder_allow" ],
+ "input_surveillance_mail" : [ "input_surveillance_mail_allow" ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/smardigo/pmci/roles/roles.json b/smardigo/pmci/roles/roles.json
index 65e162f..b751b9c 100644
--- a/smardigo/pmci/roles/roles.json
+++ b/smardigo/pmci/roles/roles.json
@@ -4,15 +4,33 @@
"configType" : "roles",
"roles" : [ {
"id" : "user",
- "name" : "User"
+ "name" : "user"
}, {
"id" : "tenant-create",
"name" : "tenant-create"
}, {
- "id" : "tenant-edit",
- "name" : "tenant-edit"
+ "id" : "tenant-change",
+ "name" : "tenant-change"
}, {
"id" : "tenant-delete",
"name" : "tenant-delete"
+ }, {
+ "id" : "service-approve",
+ "name" : "service-approve"
+ }, {
+ "id" : "service-create",
+ "name" : "service-create"
+ }, {
+ "id" : "service-replay-setup",
+ "name" : "service-replay-setup"
+ }, {
+ "id" : "service-change",
+ "name" : "service-change"
+ }, {
+ "id" : "service-delete",
+ "name" : "service-delete"
+ }, {
+ "id" : "simulation",
+ "name" : "simulation"
} ]
}
\ No newline at end of file
diff --git a/smardigo/pmci/script/ansible-start.groovy b/smardigo/pmci/script/ansible-start.groovy
index 5f107b3..38915fa 100644
--- a/smardigo/pmci/script/ansible-start.groovy
+++ b/smardigo/pmci/script/ansible-start.groovy
@@ -1,28 +1,57 @@
-def env = [
- stage: envStage,
- scope_id: contextScopeId,
- process_instance_id: execution.getProcessInstanceId(),
- smardigo_management_action: smardigoManagementAction,
- tenant: tenant
-]
-if (binding.hasVariable('extraVariables')) {
- env << extraVariables
+import org.yaml.snakeyaml.Yaml
+import org.yaml.snakeyaml.DumperOptions
+
+DumperOptions options = new DumperOptions();
+options.setIndent(2);
+options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+options.setIndicatorIndent(2);
+options.setIndentWithIndicator(true);
+
+def yaml = new Yaml(options)
+
+def parameter
+switch(smardigoManagementAction) {
+ case { it.contains('pmci-tenant') }:
+ parameter = [
+ stage : envStage,
+ scope_id : contextScopeId,
+ process_instance_id : execution.getProcessInstanceId(),
+ smardigo_management_action: smardigoManagementAction,
+ tenant : tenant,
+ data : binding.hasVariable('data') ? data : []
+ ]
+ break;
+ case { it.contains('pmci-database') || it.contains('pmci-inventory') || it.contains('pmci-kibana') ||
+ it.contains('pmci-realm') || it.contains('pmci-server') || it.contains('pmci-service') }:
+ parameter = [
+ stage : envStage,
+ scope_id : contextScopeId,
+ process_instance_id : execution.getProcessInstanceId(),
+ smardigo_management_action: smardigoManagementAction,
+ tenant : tenant,
+ cluster : binding.hasVariable('service') ? service.cluster<<[features:service.connect_features]: [],
+ data : binding.hasVariable('data') ? data : []
+ ]
+ break;
+ default:
+ parameter = [
+ stage : envStage,
+ scope_id : contextScopeId,
+ process_instance_id : execution.getProcessInstanceId(),
+ smardigo_management_action: smardigoManagementAction
+ ]
+ break;
}
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'
+def ansibleCommand= 'ansible-playbook ' + smardigoManagementAction + '.yml --vault-password-file ~/vault-pass-' + envStage + ' -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+= yaml.dump(parameter)
ansibleVariables+= 'EOT'
processes.byId(contextScopeId, contextProcessId).createComment(comment + ' gestartet')
-processes.byId(contextScopeId, contextProcessId).createComment(ansibleVariables + '\n' + ansibleCommand)
+comments.create(contextScopeId, contextProcessId, '' + 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
deleted file mode 100644
index 7373c62..0000000
--- a/smardigo/pmci/script/create-awx-paramaters.groovy
+++ /dev/null
@@ -1,11 +0,0 @@
-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-awx-parameters.groovy b/smardigo/pmci/script/create-awx-parameters.groovy
new file mode 100644
index 0000000..2fb0426
--- /dev/null
+++ b/smardigo/pmci/script/create-awx-parameters.groovy
@@ -0,0 +1,34 @@
+def parameter
+switch(smardigoManagementAction) {
+ case { it.contains('pmci-tenant') }:
+ parameter = [
+ stage : envStage,
+ scope_id : contextScopeId,
+ process_instance_id : execution.getProcessInstanceId(),
+ smardigo_management_action: smardigoManagementAction,
+ tenant : tenant,
+ data : binding.hasVariable('data') ? data : []
+ ]
+ break;
+ case { it.contains('pmci-database') || it.contains('pmci-inventory') || it.contains('pmci-kibana') ||
+ it.contains('pmci-realm') || it.contains('pmci-server') || it.contains('pmci-service') }:
+ parameter = [
+ stage : envStage,
+ scope_id : contextScopeId,
+ process_instance_id : execution.getProcessInstanceId(),
+ smardigo_management_action: smardigoManagementAction,
+ tenant : tenant,
+ cluster : binding.hasVariable('service') ? service.cluster<<[features:service.connect_features]: [],
+ data : binding.hasVariable('data') ? data : []
+ ]
+ break;
+ default:
+ parameter = [
+ stage : envStage,
+ scope_id : contextScopeId,
+ process_instance_id : execution.getProcessInstanceId(),
+ smardigo_management_action: smardigoManagementAction
+ ]
+ break;
+}
+return parameter
\ No newline at end of file
diff --git a/smardigo/pmci/script/create-data.groovy b/smardigo/pmci/script/create-data.groovy
new file mode 100644
index 0000000..805b4d6
--- /dev/null
+++ b/smardigo/pmci/script/create-data.groovy
@@ -0,0 +1,39 @@
+/*****************************************
+ service:
+ tenant_key: sken
+ cluster:
+ stage: dev
+ key: test01
+ connect_features:
+ - connect_wordpress
+ - connect_search_elastic
+ - ...
+ connect_version: latest
+ connect_admin_password: xxx
+ wordpress_admin_password: xxx
+*****************************************/
+
+def data = [:]
+
+def connect_admin = [:]
+connect_admin["username"] = service.cluster.key + "-connect-admin"
+connect_admin["password"] = connect_admin_password
+def connect = [:]
+connect["admin"] = connect_admin
+connect["version"] = service.connect_version
+data["connect"] = connect
+
+execution.setVariable('connect_admin', connect_admin)
+
+if (service.connect_features.contains("connect_wordpress")) {
+ def wordpress_admin = [:]
+ wordpress_admin["username"] = service.cluster.key + "-wordpress-admin"
+ wordpress_admin["password"] = wordpress_admin_password
+ def wordpress = [:]
+ wordpress["admin"] = wordpress_admin
+ data["wordpress"] = wordpress
+
+ execution.setVariable('wordpress_admin', wordpress_admin)
+}
+
+data
\ No newline at end of file
diff --git a/smardigo/pmci/script/create-low-string.groovy b/smardigo/pmci/script/create-low-string.groovy
new file mode 100644
index 0000000..2b5dc77
--- /dev/null
+++ b/smardigo/pmci/script/create-low-string.groovy
@@ -0,0 +1,14 @@
+def pool_length = in_length?:10;
+def lowerCase = ['a'..'z'].flatten() - [ 'O', '0', 'l', '1', 'I' ]
+
+def pool = lowerCase
+
+Random rand = new Random(System.currentTimeMillis());
+def passChars = (0..pool_length - 1).collect { pool[rand.nextInt(pool.size())] };
+
+passChars[0] = lowerCase[rand.nextInt(lowerCase.size())]
+passChars[pool_length - 2] = lowerCase[rand.nextInt(lowerCase.size())]
+
+def low_string = passChars.join('');
+
+low_string
\ No newline at end of file
diff --git a/smardigo/pmci/script/create-teams-message.groovy b/smardigo/pmci/script/create-teams-message.groovy
index 79404b7..f88cbca 100644
--- a/smardigo/pmci/script/create-teams-message.groovy
+++ b/smardigo/pmci/script/create-teams-message.groovy
@@ -1,5 +1,5 @@
-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 smardigoUrl = "https://" + envBaseUrl + "/api/redirect/process/" + contextScopeId + "/dossier/" + process_definition_key + "/" + execution.getProcessInstanceId()
+def smardigoMessageUrl = "https://" + envBaseUrl + "/api/v1/scopes/" + contextScopeId + "/processes/" + execution.getProcessInstanceId() + "/messages"
def message = [:]
message["@type"] = "MessageCard"
@@ -8,9 +8,9 @@ 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["activityTitle"] = activityTitle
+section["activitySubtitle"] = activitySubtitle
+section["activityImage"] = "https://www.netgo.de/wp-content/uploads/2022/10/weiss_icon_rakete-33-80x80.png"
section["facts"] = [
[name:"Stage",value:envStage],
[name:"Mandant",value:tenant.name]
@@ -26,12 +26,12 @@ openInSmardigo["name"] = "Vorgang öffnen"
openInSmardigo["target"] = [smardigoUrl]
potentialAction.add(openInSmardigo)
-if (vorgang_status < 30) {
+if (vorgang_status > 1000) {
def approveInSmardigo = [:]
approveInSmardigo["@type"] = "HttpPOST"
approveInSmardigo["name"] = "Server freigeben"
approveInSmardigo["target"] = smardigoMessageUrl
- approveInSmardigo["body"] = "{\"message\":\"process-approved-" + contextProcessId + "\"}"
+ approveInSmardigo["body"] = "{\"message\":\"process-approved-" + execution.getProcessInstanceId() + "\"}"
approveInSmardigo["headers"] = [
[name:"Smardigo-User-Token",value:envSmardigoUserToken]
]
diff --git a/smardigo/pmci/script/initialize-connect-features.groovy b/smardigo/pmci/script/initialize-connect-features.groovy
new file mode 100644
index 0000000..cf66253
--- /dev/null
+++ b/smardigo/pmci/script/initialize-connect-features.groovy
@@ -0,0 +1,10 @@
+
+def parameters = [:]
+parameters["default"] = "'1'"
+
+def defaultFeatures = datasources.query("connect-features").processScope(contextScopeId, contextScopeTag).parameters(parameters).list();
+
+def features = []
+defaultFeatures.each { val -> features+= val.key }
+
+features
\ No newline at end of file
diff --git a/smardigo/provisioning/form/simple-connect.json b/smardigo/provisioning/form/simple-connect.json
index ea6ceeb..587a3c1 100644
--- a/smardigo/provisioning/form/simple-connect.json
+++ b/smardigo/provisioning/form/simple-connect.json
@@ -3,27 +3,85 @@
"configKey" : "simple-connect",
"page" : 0,
"components" : [ {
- "label" : "Features",
+ "label" : "Features",
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "well",
+ "input" : false,
+ "key" : "features",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "Optionale Features",
"mask" : false,
"tableView" : true,
"alwaysEnabled" : false,
- "type" : "well",
- "input" : false,
- "key" : "features",
+ "type" : "dualmultiselect",
+ "input" : true,
+ "key" : "connect-features",
+ "defaultValue" : [ ],
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
"conditional" : {
"show" : "",
"when" : "",
"json" : ""
},
- "components" : [ {
- "label" : "Optionale Features",
- "mask" : false,
+ "data" : {
+ "url" : "api/v1/scopes/{{ context.scopeId }}/processes/{{ context.processId }}/datasources/connect-features/query?default='0','1'",
+ "values" : [ { } ]
+ },
+ "template" : "{{ item.key }}",
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "projection" : "key",
+ "reorder" : false
+ } ],
+ "tabs" : null,
+ "reorder" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ]
+ }, {
+ "label" : "Links",
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "well",
+ "input" : false,
+ "key" : "links",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "Columns",
+ "columns" : [ {
+ "components" : [ {
+ "label" : "connect_admin_username",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "clearOnHide" : false,
+ "disabled" : true,
"tableView" : true,
"alwaysEnabled" : false,
- "type" : "dualmultiselect",
+ "type" : "textfield",
"input" : true,
- "key" : "connect-features",
- "defaultValue" : [ ],
+ "key" : "connect_admin_username",
+ "defaultValue" : "",
"validate" : {
"customMessage" : "",
"json" : ""
@@ -33,816 +91,718 @@
"when" : "",
"json" : ""
},
- "data" : {
- "url" : "api/v1/scopes/{{ context.scopeId }}/processes/{{ context.processId }}/datasources/connect-features/query?default='0','1'",
- "values" : [ {
- } ]
- },
- "template" : "{{ item.key }}",
"tabs" : null,
- "properties" : {
- },
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "properties" : { },
"tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ }, {
+ "label" : "connect_admin_password",
+ "hideLabel" : true,
+ "labelPosition" : "left-left",
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "clearOnHide" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "connect_admin_password",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "inputFormat" : "plain",
"encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
"customConditional" : "",
"logic" : [ ],
- "projection" : "key",
+ "widget" : {
+ "type" : ""
+ },
"reorder" : false
} ],
- "tabs" : null,
- "reorder" : false,
- "properties" : {
- },
- "tags" : null,
- "customConditional" : "",
- "logic" : [ ]
- },
- {
- "label" : "Links",
- "mask" : false,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "well",
- "input" : false,
- "key" : "links",
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "components" : [ {
- "label" : "Columns",
- "columns" : [ {
- "components" : [ {
- "label" : "connect_admin_username",
- "allowMultipleMasks" : false,
- "showWordCount" : false,
- "showCharCount" : false,
- "clearOnHide" : false,
- "disabled" : true,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "textfield",
- "input" : true,
- "key" : "connect_admin_username",
- "defaultValue" : "",
- "validate" : {
- "customMessage" : "",
- "json" : ""
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "inputFormat" : "plain",
- "encrypted" : false,
- "properties" : {
- },
- "tags" : [ ],
- "customConditional" : "",
- "logic" : [ ],
- "widget" : {
- "type" : ""
- },
- "reorder" : false
- },
- {
- "label" : "connect_admin_password",
- "hideLabel" : true,
- "labelPosition" : "left-left",
- "showWordCount" : false,
- "showCharCount" : false,
- "clearOnHide" : false,
- "disabled" : true,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "textfield",
- "input" : true,
- "key" : "connect_admin_password",
- "defaultValue" : "",
- "validate" : {
- "customMessage" : "",
- "json" : ""
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "inputFormat" : "plain",
- "encrypted" : false,
- "properties" : {
- },
- "tags" : [ ],
- "customConditional" : "",
- "logic" : [ ],
- "widget" : {
- "type" : ""
- },
- "reorder" : false
- } ],
- "width" : 3,
- "offset" : 0,
- "push" : 0,
- "pull" : 0,
- "type" : "column",
- "input" : false,
- "hideOnChildrenHidden" : false,
- "key" : "column",
- "tableView" : true,
- "label" : "Column"
- },
- {
- "components" : [ {
- "label" : "HTML",
- "labelPosition" : "left-left",
- "className" : "",
- "attrs" : [ {
- "attr" : "",
- "value" : ""
- } ],
- "content" : "",
- "refreshOnChange" : true,
- "mask" : false,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "htmlelement",
- "input" : false,
- "key" : "html2",
- "validate" : {
- "customMessage" : "",
- "json" : ""
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "encrypted" : false,
- "properties" : {
- },
- "tags" : null,
- "customConditional" : "",
- "logic" : [ ],
- "refreshOn" : "data",
- "reorder" : false
- } ],
- "width" : 9,
- "offset" : 0,
- "push" : 0,
- "pull" : 0,
- "type" : "column",
- "input" : false,
- "hideOnChildrenHidden" : false,
- "key" : "column",
- "tableView" : true,
- "label" : "Column"
- },
- {
- "width" : 3,
- "offset" : 0,
- "push" : 0,
- "pull" : 0,
- "type" : "column",
- "input" : false,
- "hideOnChildrenHidden" : false,
- "key" : "column",
- "tableView" : true,
- "label" : "Column",
- "components" : [ ]
- },
- {
- "width" : 9,
- "offset" : 0,
- "push" : 0,
- "pull" : 0,
- "type" : "column",
- "input" : false,
- "hideOnChildrenHidden" : false,
- "key" : "column",
- "tableView" : true,
- "label" : "Column",
- "components" : [ {
- "label" : "HTML",
- "labelPosition" : "left-left",
- "className" : "",
- "attrs" : [ {
- "attr" : "",
- "value" : ""
- } ],
- "content" : "",
- "refreshOnChange" : true,
- "mask" : false,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "htmlelement",
- "input" : false,
- "key" : "html4",
- "validate" : {
- "customMessage" : "",
- "json" : ""
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "encrypted" : false,
- "properties" : {
- },
- "tags" : null,
- "customConditional" : "show = data['connect-features'].includes(\"connect_wordpress\") ",
- "logic" : [ ],
- "refreshOn" : "data",
- "reorder" : false
- } ]
- },
- {
- "width" : 3,
- "offset" : 0,
- "push" : 0,
- "pull" : 0,
- "type" : "column",
- "input" : false,
- "hideOnChildrenHidden" : false,
- "key" : "column",
- "tableView" : true,
- "label" : "Column",
- "components" : [ {
- "label" : "wordpress_admin_username",
- "allowMultipleMasks" : false,
- "showWordCount" : false,
- "showCharCount" : false,
- "clearOnHide" : false,
- "disabled" : true,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "textfield",
- "input" : true,
- "key" : "wordpress_admin_username",
- "defaultValue" : "",
- "validate" : {
- "customMessage" : "",
- "json" : ""
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "inputFormat" : "plain",
- "encrypted" : false,
- "properties" : {
- },
- "tags" : [ ],
- "customConditional" : "show = data['connect-features'].includes(\"connect_wordpress\") ",
- "logic" : [ ],
- "widget" : {
- "type" : ""
- },
- "reorder" : false
- },
- {
- "label" : "wordpress_admin_password",
- "hideLabel" : true,
- "labelPosition" : "left-left",
- "showWordCount" : false,
- "showCharCount" : false,
- "clearOnHide" : false,
- "disabled" : true,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "textfield",
- "input" : true,
- "key" : "wordpress_admin_password",
- "defaultValue" : "",
- "validate" : {
- "customMessage" : "",
- "json" : ""
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "properties" : {
- },
- "tags" : [ ],
- "inputFormat" : "plain",
- "encrypted" : false,
- "customConditional" : "show = data['connect-features'].includes(\"connect_wordpress\") ",
- "logic" : [ ],
- "widget" : {
- "type" : ""
- },
- "reorder" : false
- } ]
- },
- {
- "width" : 9,
- "offset" : 0,
- "push" : 0,
- "pull" : 0,
- "type" : "column",
- "input" : false,
- "hideOnChildrenHidden" : false,
- "key" : "column",
- "tableView" : true,
- "label" : "Column",
- "components" : [ {
- "label" : "HTML",
- "labelPosition" : "left-left",
- "className" : "",
- "attrs" : [ {
- "attr" : "",
- "value" : ""
- } ],
- "content" : "",
- "refreshOnChange" : true,
- "mask" : false,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "htmlelement",
- "input" : false,
- "key" : "html5",
- "validate" : {
- "customMessage" : "",
- "json" : ""
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "encrypted" : false,
- "properties" : {
- },
- "tags" : null,
- "customConditional" : "show = data['connect-features'].includes(\"connect_wordpress\") ",
- "logic" : [ ],
- "refreshOn" : "data",
- "reorder" : false
- } ]
- },
- {
- "width" : 3,
- "offset" : 0,
- "push" : 0,
- "pull" : 0,
- "type" : "column",
- "input" : false,
- "hideOnChildrenHidden" : false,
- "key" : "column",
- "tableView" : true,
- "label" : "Column",
- "components" : [ {
- "label" : "keycloak_admin_username",
- "allowMultipleMasks" : false,
- "showWordCount" : false,
- "showCharCount" : false,
- "clearOnHide" : false,
- "disabled" : true,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "textfield",
- "input" : true,
- "key" : "keycloak_admin_username",
- "defaultValue" : "",
- "validate" : {
- "customMessage" : "",
- "json" : ""
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "inputFormat" : "plain",
- "encrypted" : false,
- "properties" : {
- },
- "tags" : [ ],
- "customConditional" : "",
- "logic" : [ ],
- "widget" : {
- "type" : ""
- },
- "reorder" : false
- },
- {
- "label" : "keycloak_admin_password",
- "hideLabel" : true,
- "labelPosition" : "left-left",
- "showWordCount" : false,
- "showCharCount" : false,
- "clearOnHide" : false,
- "disabled" : true,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "textfield",
- "input" : true,
- "key" : "keycloak_admin_password",
- "defaultValue" : "",
- "validate" : {
- "customMessage" : "",
- "json" : ""
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "properties" : {
- },
- "tags" : [ ],
- "inputFormat" : "plain",
- "encrypted" : false,
- "customConditional" : "",
- "logic" : [ ],
- "widget" : {
- "type" : ""
- },
- "reorder" : false
- } ]
- },
- {
- "width" : 9,
- "offset" : 0,
- "push" : 0,
- "pull" : 0,
- "type" : "column",
- "input" : false,
- "hideOnChildrenHidden" : false,
- "key" : "column",
- "tableView" : true,
- "label" : "Column",
- "components" : [ {
- "label" : "HTML",
- "labelPosition" : "left-left",
- "className" : "",
- "attrs" : [ {
- "attr" : "",
- "value" : ""
- } ],
- "content" : "",
- "refreshOnChange" : true,
- "mask" : false,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "htmlelement",
- "input" : false,
- "key" : "html3",
- "validate" : {
- "customMessage" : "",
- "json" : ""
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "encrypted" : false,
- "properties" : {
- },
- "tags" : null,
- "customConditional" : "",
- "logic" : [ ],
- "refreshOn" : "data",
- "reorder" : false
- } ]
- } ],
+ "width" : 3,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
+ }, {
+ "components" : [ {
+ "label" : "HTML",
+ "labelPosition" : "left-left",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "",
+ "refreshOnChange" : true,
"mask" : false,
- "tableView" : false,
+ "tableView" : true,
"alwaysEnabled" : false,
- "type" : "columns",
+ "type" : "htmlelement",
"input" : false,
- "key" : "columns2",
+ "key" : "html2",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
"conditional" : {
"show" : "",
"when" : "",
"json" : ""
},
"tabs" : null,
- "properties" : {
- },
+ "encrypted" : false,
+ "properties" : { },
"tags" : null,
"customConditional" : "",
"logic" : [ ],
+ "refreshOn" : "data",
"reorder" : false
} ],
- "tabs" : null,
- "properties" : {
- },
- "tags" : null,
- "customConditional" : "",
- "logic" : [ ],
- "reorder" : false
- },
- {
- "label" : "Connect",
- "mask" : false,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "container",
- "input" : true,
- "key" : "connect",
- "validate" : {
- "customMessage" : "",
- "json" : ""
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "components" : [ {
- "label" : "Connect",
+ "width" : 9,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column"
+ }, {
+ "width" : 3,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column",
+ "components" : [ ]
+ }, {
+ "width" : 9,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column",
+ "components" : [ {
+ "label" : "HTML",
+ "labelPosition" : "left-left",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "",
+ "refreshOnChange" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html4",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "show = data['connect-features'].includes(\"connect_wordpress\") ",
+ "logic" : [ ],
+ "refreshOn" : "data",
+ "reorder" : false
+ } ]
+ }, {
+ "width" : 3,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column",
+ "components" : [ {
+ "label" : "wordpress_admin_username",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "clearOnHide" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "wordpress_admin_username",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "show = data['connect-features'].includes(\"connect_wordpress\") ",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ }, {
+ "label" : "wordpress_admin_password",
"hideLabel" : true,
+ "labelPosition" : "left-left",
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "clearOnHide" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "wordpress_admin_password",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "customConditional" : "show = data['connect-features'].includes(\"connect_wordpress\") ",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ } ]
+ }, {
+ "width" : 9,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column",
+ "components" : [ {
+ "label" : "HTML",
+ "labelPosition" : "left-left",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "",
+ "refreshOnChange" : true,
"mask" : false,
"tableView" : true,
"alwaysEnabled" : false,
- "type" : "well",
+ "type" : "htmlelement",
"input" : false,
- "key" : "connect2",
+ "key" : "html5",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "show = data['connect-features'].includes(\"connect_wordpress\") ",
+ "logic" : [ ],
+ "refreshOn" : "data",
+ "reorder" : false
+ } ]
+ }, {
+ "width" : 3,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column",
+ "components" : [ {
+ "label" : "keycloak_admin_username",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "clearOnHide" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "keycloak_admin_username",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
"conditional" : {
"show" : "",
"when" : "",
"json" : ""
},
- "components" : [ {
- "label" : "Version",
- "labelPosition" : "left-left",
- "mask" : false,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "select",
- "input" : true,
- "key" : "version",
- "defaultValue" : "latest",
- "validate" : {
- "select" : false,
- "customMessage" : "",
- "json" : ""
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "data" : {
- "url" : "api/v1/scopes/{{context.scopeId}}/tags/{{context.scopeTag}}/datasources/whitelabel-docker-image-tags/query",
- "headers" : [ {
- "key" : "",
- "value" : ""
- } ],
- "values" : [ ]
- },
- "dataSrc" : "url",
- "valueProperty" : "value",
- "tabs" : null,
- "properties" : {
- },
- "selectThreshold" : 0.3,
- "encrypted" : false,
- "lazyLoad" : false,
- "selectValues" : "",
- "disableLimit" : false,
- "sort" : "",
- "tags" : null,
- "customConditional" : "",
- "logic" : [ ],
- "customDefaultValue" : "value='latest'",
- "reorder" : false,
- "reference" : false
- } ],
"tabs" : null,
- "reorder" : false,
- "properties" : {
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ }, {
+ "label" : "keycloak_admin_password",
+ "hideLabel" : true,
+ "labelPosition" : "left-left",
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "clearOnHide" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "keycloak_admin_password",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ } ]
+ }, {
+ "width" : 9,
+ "offset" : 0,
+ "push" : 0,
+ "pull" : 0,
+ "type" : "column",
+ "input" : false,
+ "hideOnChildrenHidden" : false,
+ "key" : "column",
+ "tableView" : true,
+ "label" : "Column",
+ "components" : [ {
+ "label" : "HTML",
+ "labelPosition" : "left-left",
+ "className" : "",
+ "attrs" : [ {
+ "attr" : "",
+ "value" : ""
+ } ],
+ "content" : "",
+ "refreshOnChange" : true,
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "htmlelement",
+ "input" : false,
+ "key" : "html3",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
},
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
"tags" : null,
"customConditional" : "",
- "logic" : [ ]
- } ],
- "tabs" : null,
- "encrypted" : false,
- "properties" : {
+ "logic" : [ ],
+ "refreshOn" : "data",
+ "reorder" : false
+ } ]
+ } ],
+ "mask" : false,
+ "tableView" : false,
+ "alwaysEnabled" : false,
+ "type" : "columns",
+ "input" : false,
+ "key" : "columns2",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
},
+ "tabs" : null,
+ "properties" : { },
"tags" : null,
"customConditional" : "",
"logic" : [ ],
"reorder" : false
+ } ],
+ "tabs" : null,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "Connect",
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "connect",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
},
- {
- "label" : "Cluster",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "Connect",
+ "hideLabel" : true,
"mask" : false,
"tableView" : true,
"alwaysEnabled" : false,
- "type" : "container",
- "input" : true,
- "key" : "cluster",
- "validate" : {
- "customMessage" : "",
+ "type" : "well",
+ "input" : false,
+ "key" : "connect2",
+ "conditional" : {
+ "show" : "",
+ "when" : "",
"json" : ""
},
+ "components" : [ {
+ "label" : "Version",
+ "labelPosition" : "left-left",
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "select",
+ "input" : true,
+ "key" : "version",
+ "defaultValue" : "latest",
+ "validate" : {
+ "select" : false,
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "data" : {
+ "url" : "api/v1/scopes/{{context.scopeId}}/tags/{{context.scopeTag}}/datasources/whitelabel-docker-image-tags/query",
+ "headers" : [ {
+ "key" : "",
+ "value" : ""
+ } ],
+ "values" : [ ]
+ },
+ "dataSrc" : "url",
+ "valueProperty" : "value",
+ "tabs" : null,
+ "properties" : { },
+ "selectThreshold" : 0.3,
+ "encrypted" : false,
+ "lazyLoad" : false,
+ "selectValues" : "",
+ "disableLimit" : false,
+ "sort" : "",
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "customDefaultValue" : "value='latest'",
+ "reorder" : false,
+ "reference" : false
+ } ],
+ "tabs" : null,
+ "reorder" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ]
+ } ],
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "Cluster",
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "container",
+ "input" : true,
+ "key" : "cluster",
+ "validate" : {
+ "customMessage" : "",
+ "json" : ""
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "components" : [ {
+ "label" : "Cluster",
+ "mask" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "well",
+ "input" : false,
+ "key" : "cluster_well",
"conditional" : {
"show" : "",
"when" : "",
"json" : ""
},
"components" : [ {
- "label" : "Cluster",
- "mask" : false,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "well",
- "input" : false,
- "key" : "cluster_well",
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "components" : [ {
- "label" : "Stage",
- "labelPosition" : "left-left",
- "allowMultipleMasks" : false,
- "showWordCount" : false,
- "showCharCount" : false,
- "disabled" : true,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "textfield",
- "input" : true,
- "key" : "stage",
- "defaultValue" : "",
- "validate" : {
- "customMessage" : "",
- "json" : "",
- "required" : true,
- "minLength" : null,
- "maxLength" : null,
- "minWords" : null,
- "maxWords" : null
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "inputFormat" : "plain",
- "encrypted" : false,
- "properties" : {
- },
- "tags" : [ ],
- "customConditional" : "",
- "logic" : [ ],
- "widget" : {
- "type" : ""
- },
- "reorder" : false
- },
- {
- "label" : "Name",
- "labelPosition" : "left-left",
- "allowMultipleMasks" : false,
- "showWordCount" : false,
- "showCharCount" : false,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "textfield",
- "input" : true,
- "key" : "name",
- "defaultValue" : "",
- "validate" : {
- "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 4 und höchstens 15 Zeichen, alles kleingeschrieben",
- "json" : "",
- "required" : true,
- "minLength" : null,
- "maxLength" : null,
- "minWords" : null,
- "maxWords" : null,
- "pattern" : "^[a-z0-9]{4,15}$"
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "inputFormat" : "plain",
- "encrypted" : false,
- "properties" : {
- },
- "tags" : [ ],
- "customConditional" : "",
- "logic" : [ ],
- "widget" : {
- "type" : ""
- },
- "reorder" : false
- },
- {
- "label" : "Size",
- "labelPosition" : "left-left",
- "mask" : false,
- "disabled" : true,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "number",
- "input" : true,
- "key" : "size",
- "validate" : {
- "customMessage" : "",
- "json" : "",
- "required" : true,
- "min" : null,
- "max" : null
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "properties" : {
- },
- "tags" : [ ],
- "delimiter" : false,
- "requireDecimal" : false,
- "encrypted" : false,
- "decimalLimit" : null,
- "customConditional" : "",
- "logic" : [ ],
- "reorder" : false
- },
- {
- "label" : "Service",
- "labelPosition" : "left-left",
- "allowMultipleMasks" : false,
- "showWordCount" : false,
- "showCharCount" : false,
- "disabled" : true,
- "tableView" : true,
- "alwaysEnabled" : false,
- "type" : "textfield",
- "input" : true,
- "key" : "service",
- "defaultValue" : "",
- "validate" : {
- "customMessage" : "",
- "json" : "",
- "required" : true,
- "minLength" : null,
- "maxLength" : null,
- "minWords" : null,
- "maxWords" : null
- },
- "conditional" : {
- "show" : "",
- "when" : "",
- "json" : ""
- },
- "tabs" : null,
- "inputFormat" : "plain",
- "encrypted" : false,
- "properties" : {
- },
- "tags" : [ ],
- "customConditional" : "",
- "logic" : [ ],
- "widget" : {
- "type" : ""
- },
- "reorder" : false
- } ],
- "tabs" : null,
- "properties" : {
- },
- "tags" : [ ],
- "customConditional" : "",
- "logic" : [ ],
- "reorder" : false
- } ],
+ "label" : "Stage",
+ "labelPosition" : "left-left",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "stage",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : "",
+ "required" : true,
+ "minLength" : null,
+ "maxLength" : null,
+ "minWords" : null,
+ "maxWords" : null
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ }, {
+ "label" : "Name",
+ "labelPosition" : "left-left",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "name",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "Zeichenkette ohne Sonderzeichen, mindestens 4 und höchstens 15 Zeichen, alles kleingeschrieben",
+ "json" : "",
+ "required" : true,
+ "minLength" : null,
+ "maxLength" : null,
+ "minWords" : null,
+ "maxWords" : null,
+ "pattern" : "^[a-z0-9]{4,15}$"
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ }, {
+ "label" : "Size",
+ "labelPosition" : "left-left",
+ "mask" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "number",
+ "input" : true,
+ "key" : "size",
+ "validate" : {
+ "customMessage" : "",
+ "json" : "",
+ "required" : true,
+ "min" : null,
+ "max" : null
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "properties" : { },
+ "tags" : [ ],
+ "delimiter" : false,
+ "requireDecimal" : false,
+ "encrypted" : false,
+ "decimalLimit" : null,
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ }, {
+ "label" : "Service",
+ "labelPosition" : "left-left",
+ "allowMultipleMasks" : false,
+ "showWordCount" : false,
+ "showCharCount" : false,
+ "disabled" : true,
+ "tableView" : true,
+ "alwaysEnabled" : false,
+ "type" : "textfield",
+ "input" : true,
+ "key" : "service",
+ "defaultValue" : "",
+ "validate" : {
+ "customMessage" : "",
+ "json" : "",
+ "required" : true,
+ "minLength" : null,
+ "maxLength" : null,
+ "minWords" : null,
+ "maxWords" : null
+ },
+ "conditional" : {
+ "show" : "",
+ "when" : "",
+ "json" : ""
+ },
+ "tabs" : null,
+ "inputFormat" : "plain",
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "widget" : {
+ "type" : ""
+ },
+ "reorder" : false
+ } ],
"tabs" : null,
- "encrypted" : false,
- "properties" : {
- },
+ "properties" : { },
"tags" : [ ],
"customConditional" : "",
"logic" : [ ],
"reorder" : false
} ],
+ "tabs" : null,
+ "encrypted" : false,
+ "properties" : { },
+ "tags" : [ ],
+ "customConditional" : "",
+ "logic" : [ ],
+ "reorder" : false
+ } ],
"display" : "form"
-}
+}
\ No newline at end of file
diff --git a/smardigo/provisioning/layout/simple-connect.json b/smardigo/provisioning/layout/simple-connect.json
index 15b9a18..cf26272 100644
--- a/smardigo/provisioning/layout/simple-connect.json
+++ b/smardigo/provisioning/layout/simple-connect.json
@@ -4,115 +4,104 @@
"tabExpression" : "{{ data.cluster.stage }}-{{ data.tenant.key }}-{{ data.cluster.name }}",
"readonlyExpression" : "data.vorgang_status > 10",
"components" : [ {
- "type" : "columns",
- "key" : "dossier",
- "columns" : [ {
+ "type" : "columns",
+ "key" : "dossier",
+ "columns" : [ {
+ "components" : [ {
+ "type" : "form",
+ "key" : "header",
+ "readonlyExpression" : "true"
+ }, {
+ "type" : "html",
+ "content" : " "
+ }, {
+ "type" : "columns",
+ "key" : "first-column",
+ "columns" : [ {
"components" : [ {
- "type" : "form",
- "key" : "header",
- "readonlyExpression" : "true"
- },
- {
- "type" : "html",
- "content" : " "
- },
- {
- "type" : "columns",
- "key" : "first-column",
- "columns" : [ {
+ "type" : "page",
+ "key" : "dossier-page",
+ "toc" : "left",
+ "sections" : [ {
+ "type" : "section",
+ "key" : "aktionen",
+ "title" : "Aktionen",
+ "visibleExpression" : "(data.vorgang_status >= 40 && data.vorgang_status < 50)||(data.vorgang_status >= 60)",
+ "components" : [ {
+ "type" : "form",
+ "key" : "progress-bar",
+ "readonlyExpression" : "true"
+ }, {
+ "type" : "columns",
+ "key" : "a_key",
+ "columns" : [ {
+ "width" : "75%",
"components" : [ {
- "type" : "page",
- "key" : "dossier-page",
- "toc" : "left",
- "sections" : [ {
- "type" : "section",
- "key" : "aktionen",
- "title" : "Aktionen",
- "visibleExpression" : "(data.vorgang_status >= 40 && data.vorgang_status < 50)||(data.vorgang_status >= 60)",
- "components" : [ {
- "type" : "form",
- "key" : "progress-bar",
- "readonlyExpression" : "true"
- },
- {
- "type" : "columns",
- "key" : "a_key",
- "columns" : [ {
- "width" : "75%",
- "components" : [ {
- "type" : "form",
- "key" : "current-job-left",
- "readonlyExpression" : "true"
- } ]
- },
- {
- "width" : "25%",
- "components" : [ {
- "type" : "form",
- "key" : "current-job-right",
- "readonlyExpression" : "true"
- } ]
- } ]
- },
- {
- "type" : "form",
- "key" : "current-jobs",
- "readonlyExpression" : "true"
- } ]
- },
- {
- "type" : "section",
- "key" : "smardigo",
- "title" : "Smardigo",
- "components" : [ {
- "type" : "form",
- "key" : "simple-connect"
- } ]
- },
- {
- "type" : "section",
- "key" : "stammdaten",
- "title" : "Stammdaten",
- "components" : [ {
- "type" : "form",
- "key" : "tenant",
- "readonlyExpression" : "true"
- } ]
- },
- {
- "type" : "section",
- "key" : "dossier-comments",
- "title" : "Kommentare",
- "components" : [ {
- "type" : "comments",
- "key" : "comments"
- } ]
- },
- {
- "type" : "section",
- "key" : "dossier-history",
- "title" : "Protokoll",
- "components" : [ {
- "type" : "history",
- "key" : "history"
- } ]
- } ]
- } ],
- "width" : "9"
- },
- {
+ "type" : "form",
+ "key" : "current-job-left",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "width" : "25%",
"components" : [ {
- "type" : "help-text",
- "key" : "help-text"
- },
- {
- "type" : "action-list",
- "key" : "action-list"
- } ],
- "width" : "350px"
+ "type" : "form",
+ "key" : "current-job-right",
+ "readonlyExpression" : "true"
+ } ]
} ]
- } ],
- "width" : "12"
+ }, {
+ "type" : "form",
+ "key" : "current-jobs",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "smardigo",
+ "title" : "Smardigo",
+ "components" : [ {
+ "type" : "form",
+ "key" : "simple-connect"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "stammdaten",
+ "title" : "Stammdaten",
+ "components" : [ {
+ "type" : "form",
+ "key" : "tenant",
+ "readonlyExpression" : "true"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-comments",
+ "title" : "Kommentare",
+ "components" : [ {
+ "type" : "comments",
+ "key" : "comments"
+ } ]
+ }, {
+ "type" : "section",
+ "key" : "dossier-history",
+ "title" : "Protokoll",
+ "components" : [ {
+ "type" : "history",
+ "key" : "history"
+ } ]
+ } ]
+ } ],
+ "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/provisioning/policy/policy.json b/smardigo/provisioning/policy/policy.json
index 643c994..9037bd9 100644
--- a/smardigo/provisioning/policy/policy.json
+++ b/smardigo/provisioning/policy/policy.json
@@ -8,7 +8,7 @@
"effect" : "allow",
"actions" : [ "delete" ],
"resources" : [ "processes:simple-connect" ],
- "conditions": [ "${vorgang_status_text == 'Neu'}" ]
+ "conditions" : [ "${vorgang_status_text == 'Neu'}" ]
}, {
"id" : "allow_read_write_variables_all",
"name" : "Variables read/write all",
diff --git a/smardigo/provisioning/process-variable-declaration/simple-connect.json b/smardigo/provisioning/process-variable-declaration/simple-connect.json
index 802e99d..5596203 100644
--- a/smardigo/provisioning/process-variable-declaration/simple-connect.json
+++ b/smardigo/provisioning/process-variable-declaration/simple-connect.json
@@ -15,13 +15,35 @@
"type" : "string",
"classification" : "PRIVATE"
},
+ "candidateGroups" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Gruppen"
+ },
"cluster" : {
"type" : "object",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "fields" : {
+ "name" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Cluster Name"
+ }
+ }
},
"connect" : {
"type" : "object",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "fields" : {
+ "version" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Version"
+ }
+ }
},
"connect_admin_password" : {
"type" : "string",
@@ -37,11 +59,15 @@
},
"creation_date" : {
"type" : "date",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Erstelldatum"
},
"creation_user_id" : {
"type" : "userId",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Ersteller"
},
"edit_tenant" : {
"type" : "boolean",
@@ -53,7 +79,9 @@
},
"id" : {
"type" : "string",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "ID"
},
"job_template_id" : {
"type" : "string",
@@ -79,6 +107,12 @@
"type" : "string",
"classification" : "PRIVATE"
},
+ "process_definition_key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Prozess"
+ },
"progress_current" : {
"type" : "long",
"classification" : "PRIVATE"
@@ -117,7 +151,21 @@
},
"tenant" : {
"type" : "object",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "fields" : {
+ "name" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Mandant Name"
+ },
+ "key" : {
+ "type" : "string",
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Mandant Schlüssel"
+ }
+ }
},
"tenant_id" : {
"type" : "string",
@@ -129,7 +177,9 @@
},
"vorgang_status_text" : {
"type" : "string",
- "classification" : "PRIVATE"
+ "classification" : "PRIVATE",
+ "searchable" : true,
+ "label" : "Status"
},
"wizard_selection" : {
"type" : "string",
diff --git a/smardigo/provisioning/script/ansible-start.groovy b/smardigo/provisioning/script/ansible-start.groovy
index 9df2c45..23a7e09 100644
--- a/smardigo/provisioning/script/ansible-start.groovy
+++ b/smardigo/provisioning/script/ansible-start.groovy
@@ -5,7 +5,7 @@ def env = [
cluster_name: cluster.name,
cluster_service: cluster.service,
cluster_size: cluster.size,
- connect_version: binding.hasVariable('connect') ? connect.version : 'latest',
+ connect_image_version: binding.hasVariable('connect') ? connect.version : 'latest',
current_realm_name: tenant.key,
current_realm_display_name: tenant.name,
process_instance_id: execution.getProcessInstanceId(),
@@ -13,12 +13,12 @@ def env = [
smardigo_management_action: smardigoManagementAction,
stage: cluster.stage,
tenant_id: tenant.key,
- connect_client_admin_username: binding.hasVariable('connect_admin_username') ? connect_admin_username : '',
- connect_client_admin_password: binding.hasVariable('connect_admin_password') ? connect_admin_password : '',
- connect_realm_admin_username: binding.hasVariable('keycloak_admin_username') ? keycloak_admin_username : '',
- connect_realm_admin_password: binding.hasVariable('keycloak_admin_password') ? keycloak_admin_password : '',
- wordpress_admin_username: binding.hasVariable('wordpress_admin_username') ? wordpress_admin_username : '',
- wordpress_admin_password: binding.hasVariable('wordpress_admin_password') ? wordpress_admin_password : ''
+ connect_client_admin_username: connect_admin_username,
+ connect_client_admin_password: connect_admin_password,
+ connect_realm_admin_username: keycloak_admin_username,
+ connect_realm_admin_password: keycloak_admin_password,
+ wordpress_admin_username: wordpress_admin_username,
+ wordpress_admin_password: wordpress_admin_password
]
if (binding.hasVariable('extraVariables')) {
env << extraVariables
diff --git a/smardigo/pmci/script/external-task-mock.groovy b/smardigo/provisioning/script/external-task-mock.groovy
similarity index 100%
rename from smardigo/pmci/script/external-task-mock.groovy
rename to smardigo/provisioning/script/external-task-mock.groovy
diff --git a/templates/connect/config/custom-whitelist.j2 b/templates/connect/config/custom-whitelist.j2
new file mode 100644
index 0000000..7a04b57
--- /dev/null
+++ b/templates/connect/config/custom-whitelist.j2
@@ -0,0 +1,14 @@
+{% if 'management' in group_names %}
+new org.yaml.snakeyaml.Yaml
+new org.yaml.snakeyaml.Yaml org.yaml.snakeyaml.DumperOptions
+method org.yaml.snakeyaml.Yaml dump java.lang.Object
+
+new org.yaml.snakeyaml.DumperOptions
+method org.yaml.snakeyaml.DumperOptions setIndent int
+method org.yaml.snakeyaml.DumperOptions setIndicatorIndent int
+method org.yaml.snakeyaml.DumperOptions setIndentWithIndicator boolean
+method org.yaml.snakeyaml.DumperOptions setDefaultFlowStyle org.yaml.snakeyaml.DumperOptions$FlowStyle
+staticField org.yaml.snakeyaml.DumperOptions$FlowStyle FLOW
+staticField org.yaml.snakeyaml.DumperOptions$FlowStyle BLOCK
+staticField org.yaml.snakeyaml.DumperOptions$FlowStyle AUTO
+{% endif %}