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-&#x_)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" : "
\n \n
\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" : 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" : "

 

\n

Connect-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" : "
\n

Admin

", + "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" : "
\n

Benutzer

", + "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" : "
\n \n {{ 'https://' + (!!(data.cluster)?data.cluster.stage:'cluster.stage') + '-' + (!!(data.tenant)?data.tenant.key:'tenant.key') + '-' + (!!(data.cluster)?data.cluster.name:'cluster.name') + '-01-connect.smardigo.digital' }}\n \n
", - "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" : "
\n \n {{ 'https://' + (!!(data.cluster)?data.cluster.stage:'cluster.stage') + '-' + (!!(data.tenant)?data.tenant.key:'tenant.key') + '-' + (!!(data.cluster)?data.cluster.name:'cluster.name') + '-01-wordpress.smardigo.digital' }}\n \n
", - "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" : "
\n \n {{ 'https://' + (!!(data.cluster)?data.cluster.stage:'cluster.stage') + '-' + (!!(data.tenant)?data.tenant.key:'tenant.key') + '-' + (!!(data.cluster)?data.cluster.name:'cluster.name') + '-01-wordpress.smardigo.digital/wp-admin' }}\n \n
", - "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" : "
\n \n {{ 'https://' + (!!(data.cluster)?data.cluster.stage:'cluster.stage') + '-keycloak-01.smardigo.digital/auth/admin/' + (!!(data.tenant)?data.tenant.key:'tenant.key') + '/console' }}\n \n
", - "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" : "
\n \n {{ 'https://' + (!!(data.cluster)?data.cluster.stage:'cluster.stage') + '-' + (!!(data.tenant)?data.tenant.key:'tenant.key') + '-' + (!!(data.cluster)?data.cluster.name:'cluster.name') + '-01-connect.smardigo.digital' }}\n \n
", + "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" : "
\n \n {{ 'https://' + (!!(data.cluster)?data.cluster.stage:'cluster.stage') + '-' + (!!(data.tenant)?data.tenant.key:'tenant.key') + '-' + (!!(data.cluster)?data.cluster.name:'cluster.name') + '-01-wordpress.smardigo.digital' }}\n \n
", + "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" : "
\n \n {{ 'https://' + (!!(data.cluster)?data.cluster.stage:'cluster.stage') + '-' + (!!(data.tenant)?data.tenant.key:'tenant.key') + '-' + (!!(data.cluster)?data.cluster.name:'cluster.name') + '-01-wordpress.smardigo.digital/wp-admin' }}\n \n
", + "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" : "
\n \n {{ 'https://' + (!!(data.cluster)?data.cluster.stage:'cluster.stage') + '-keycloak-01.smardigo.digital/auth/admin/' + (!!(data.tenant)?data.tenant.key:'tenant.key') + '/console' }}\n \n
", + "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 %}