DEV-526 added pmci tenant management
parent
f686073dc8
commit
8e9268ca3b
@ -1,4 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
connect_client_admin_username: "connect-admin"
|
|
||||||
connect_realm_admin_username: "connect-realm-admin"
|
|
||||||
@ -1,3 +1,3 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
awx_hetzner_ansible_revision: "main"
|
awx_hetzner_ansible_revision: "feature/DEV-526"
|
||||||
|
|||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -1,18 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
### tags:
|
|
||||||
|
|
||||||
- name: "Updating <confirm> database on {{ inventory_hostname }}"
|
|
||||||
include_role:
|
|
||||||
name: postgres
|
|
||||||
tasks_from: _update_database_state
|
|
||||||
when:
|
|
||||||
- database_backup_state is not defined
|
|
||||||
|
|
||||||
- name: "Creating/Restoring <confirm> 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']
|
|
||||||
@ -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
|
||||||
@ -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
|
||||||
@ -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 }}"
|
||||||
@ -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
|
||||||
@ -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 }}"
|
||||||
@ -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
|
||||||
@ -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 }}"
|
||||||
@ -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
|
||||||
@ -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 }}"
|
||||||
@ -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
|
||||||
@ -1,18 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
### tags:
|
|
||||||
|
|
||||||
- name: "Updating <workflow_index> database on {{ inventory_hostname }}"
|
|
||||||
include_role:
|
|
||||||
name: postgres
|
|
||||||
tasks_from: _update_database_state
|
|
||||||
when:
|
|
||||||
- database_backup_state is not defined
|
|
||||||
|
|
||||||
- name: "Creating/Restoring <workflow_index> 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']
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
### tags:
|
|
||||||
|
|
||||||
- name: "Updating <workflow_proxy> database on {{ inventory_hostname }}"
|
|
||||||
include_role:
|
|
||||||
name: postgres
|
|
||||||
tasks_from: _update_database_state
|
|
||||||
when:
|
|
||||||
- database_backup_state is not defined
|
|
||||||
|
|
||||||
- name: "Creating/Restoring <workflow_proxy> 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']
|
|
||||||
@ -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 }}"
|
|
||||||
@ -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
|
|
||||||
@ -1 +0,0 @@
|
|||||||
---
|
|
||||||
File diff suppressed because one or more lines are too long
@ -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/"
|
||||||
|
} ]
|
||||||
|
}
|
||||||
@ -1,40 +1,53 @@
|
|||||||
{
|
{
|
||||||
"name" : "Tenant Management",
|
"name" : "Mandantenverwaltung",
|
||||||
"configType" : "datasource-action",
|
"configType" : "datasource-action",
|
||||||
"configKey" : "tenant-management",
|
"configKey" : "tenant-management",
|
||||||
"datasource" : {
|
"datasource" : {
|
||||||
"key" : "data-entity-tenants"
|
"key" : "data-entity-tenants",
|
||||||
|
"parameter" : [ {
|
||||||
|
"key" : "userId",
|
||||||
|
"value" : "{{user.id}}"
|
||||||
|
} ]
|
||||||
},
|
},
|
||||||
"columns" : [ {
|
"columns" : [ {
|
||||||
"key" : "id",
|
"key" : "id",
|
||||||
"name" : "ID",
|
"name" : "ID",
|
||||||
"width" : 100
|
"width" : 100
|
||||||
|
}, {
|
||||||
|
"key" : "key",
|
||||||
|
"name" : "Mandantenschlüssel",
|
||||||
|
"width" : 50
|
||||||
}, {
|
}, {
|
||||||
"key" : "name",
|
"key" : "name",
|
||||||
"name" : "Name",
|
"name" : "Mandantenname",
|
||||||
"width" : 200
|
"width" : 100
|
||||||
}, {
|
}, {
|
||||||
"key" : "key",
|
"key" : "admin.last_name",
|
||||||
"name" : "Key",
|
"name" : "Administrator",
|
||||||
"width" : 100
|
"width" : 100
|
||||||
} ],
|
} ],
|
||||||
"actions" : [ {
|
"actions" : [ {
|
||||||
"icon" : "add_circle",
|
"icon" : "add_circle",
|
||||||
"name" : "Create New Tenant",
|
"name" : "Mandant erstellen...",
|
||||||
"searchKey": "tenant-events",
|
"processDefinitionKey" : "tenant-create",
|
||||||
"processDefinitionKey" : "tenant-create"
|
"groups" : [ "tenant-create" ]
|
||||||
} ],
|
} ],
|
||||||
"rowActions" : [ {
|
"rowActions" : [ {
|
||||||
"icon" : "edit",
|
"icon" : "edit",
|
||||||
"name" : "Edit Tenant",
|
"name" : "Mandant ändern...",
|
||||||
"searchKey": "tenant-events",
|
"processDefinitionKey" : "tenant-change",
|
||||||
"processDefinitionKey" : "tenant-edit",
|
"groups" : [ "tenant-change" ],
|
||||||
"variable" : "tenant"
|
"variable" : "tenant"
|
||||||
}, {
|
}, {
|
||||||
"icon" : "delete",
|
"icon" : "delete",
|
||||||
"name" : "Delete Tenant",
|
"name" : "Mandant löschen...",
|
||||||
"searchKey": "tenant-events",
|
|
||||||
"processDefinitionKey" : "tenant-delete",
|
"processDefinitionKey" : "tenant-delete",
|
||||||
|
"groups" : [ "tenant-delete" ],
|
||||||
"variable" : "tenant"
|
"variable" : "tenant"
|
||||||
|
}, {
|
||||||
|
"type" : "open-link",
|
||||||
|
"icon" : "manage_accounts",
|
||||||
|
"name" : "Benutzerverwaltung öffnen...",
|
||||||
|
"link" : "https://dev-keycloak-01.smardigo.digital/auth/admin/{{ key }}/console/"
|
||||||
} ]
|
} ]
|
||||||
}
|
}
|
||||||
Binary file not shown.
@ -1,23 +1,19 @@
|
|||||||
{
|
{
|
||||||
"name": "awx-job-plain",
|
"name" : "awx-job-plain",
|
||||||
"restApi": true,
|
"restApi" : true,
|
||||||
"configKey": "awx-job-plain",
|
"configKey" : "awx-job-plain",
|
||||||
"payloadType": "REST",
|
"payloadType" : "REST",
|
||||||
"config": [
|
"config" : [ {
|
||||||
{
|
"name" : "connection",
|
||||||
"name": "connection",
|
"type" : "CONNECTION",
|
||||||
"type": "CONNECTION",
|
"value" : "awx"
|
||||||
"value": "awx"
|
}, {
|
||||||
},
|
"name" : "resource",
|
||||||
{
|
"type" : "STRING",
|
||||||
"name": "resource",
|
"value" : "api/v2/jobs/${id}/"
|
||||||
"type": "STRING",
|
}, {
|
||||||
"value": "api/v2/jobs/${id}/"
|
"name" : "sqlStatement",
|
||||||
},
|
"type" : "STRING",
|
||||||
{
|
"value" : "SELECT status,failed,started,finished,name,description FROM default_table"
|
||||||
"name": "sqlStatement",
|
} ]
|
||||||
"type": "STRING",
|
}
|
||||||
"value": "SELECT status,failed,started,finished,name,description FROM default_table"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,23 +1,19 @@
|
|||||||
{
|
{
|
||||||
"name": "awx-job-templates-plain",
|
"name" : "awx-job-templates-plain",
|
||||||
"restApi": true,
|
"restApi" : true,
|
||||||
"configKey": "awx-job-templates-plain",
|
"configKey" : "awx-job-templates-plain",
|
||||||
"payloadType": "REST",
|
"payloadType" : "REST",
|
||||||
"config": [
|
"config" : [ {
|
||||||
{
|
"name" : "connection",
|
||||||
"name": "connection",
|
"type" : "CONNECTION",
|
||||||
"type": "CONNECTION",
|
"value" : "awx"
|
||||||
"value": "awx"
|
}, {
|
||||||
},
|
"name" : "resource",
|
||||||
{
|
"type" : "STRING",
|
||||||
"name": "resource",
|
"value" : "api/v2/job_templates?search=${name}"
|
||||||
"type": "STRING",
|
}, {
|
||||||
"value": "api/v2/job_templates?search=${name}"
|
"name" : "sqlStatement",
|
||||||
},
|
"type" : "STRING",
|
||||||
{
|
"value" : "SELECT results FROM default_table"
|
||||||
"name": "sqlStatement",
|
} ]
|
||||||
"type": "STRING",
|
}
|
||||||
"value": "SELECT results FROM default_table"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,18 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "awx-job-templates",
|
"name" : "awx-job-templates",
|
||||||
"restApi": true,
|
"restApi" : true,
|
||||||
"configKey": "awx-job-templates",
|
"configKey" : "awx-job-templates",
|
||||||
"payloadType": "POST_PROCESSING",
|
"payloadType" : "POST_PROCESSING",
|
||||||
"config": [
|
"config" : [ {
|
||||||
{
|
"name" : "datasource_key",
|
||||||
"name": "datasource_key",
|
"type" : "STRING",
|
||||||
"type": "STRING",
|
"value" : "awx-job-templates-plain"
|
||||||
"value": "awx-job-templates-plain"
|
}, {
|
||||||
},
|
"name" : "groovy_script",
|
||||||
{
|
"type" : "STRING",
|
||||||
"name": "groovy_script",
|
"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"
|
||||||
"type": "STRING",
|
} ]
|
||||||
"value": "def result = []\ndata.each{templates ->\n templates.results.each{ template ->\n if (parameters['name'] == template.name) {\n result.add([id: template.id, name: template.name])\n }\n }\n}\nresult"
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -0,0 +1,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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -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}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -1,18 +1,18 @@
|
|||||||
{
|
{
|
||||||
"name": "data-entity-tenants-filtered",
|
"name": "data-entity-tenants-filtered",
|
||||||
"restApi": true,
|
"restApi": true,
|
||||||
"configKey": "data-entity-tenants-filtered",
|
"configKey": "data-entity-tenants-filtered",
|
||||||
"payloadType": "POST_PROCESSING",
|
"payloadType": "POST_PROCESSING",
|
||||||
"config": [
|
"config": [
|
||||||
{
|
{
|
||||||
"name": "datasource_key",
|
"name": "datasource_key",
|
||||||
"type": "STRING",
|
"type": "STRING",
|
||||||
"value": "data-entity-tenants"
|
"value": "data-entity-tenants"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "groovy_script",
|
"name": "groovy_script",
|
||||||
"type": "STRING",
|
"type": "STRING",
|
||||||
"value": "def result = []\ndata.each{tenant ->\n if (tenant.user_ids.contains(parameters['user_id'])) {\n result.add(tenant)\n }\n}\nresult"
|
"value": "data.findAll{it.user_ids.findAll{it == parameters.user_id}}"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,21 +1,26 @@
|
|||||||
{
|
{
|
||||||
"configKey": "data-entity-tenants",
|
"name": "data-entity-tenants",
|
||||||
"name": "data-entity-tenants",
|
"restApi": true,
|
||||||
"payloadType": "ENTITY",
|
"configKey": "data-entity-tenants",
|
||||||
"config": [
|
"payloadType": "ENTITY",
|
||||||
{
|
"config": [
|
||||||
"name": "entityId",
|
{
|
||||||
"type": "STRING",
|
"name": "entityId",
|
||||||
"value": "tenant"
|
"type": "STRING",
|
||||||
},
|
"value": "tenant"
|
||||||
{
|
},
|
||||||
"name": "propertyFilterKey",
|
{
|
||||||
"type": "STRING"
|
"name": "propertyFilterKey",
|
||||||
},
|
"type": "STRING"
|
||||||
{
|
},
|
||||||
"name": "propertyFilterValue",
|
{
|
||||||
"type": "STRING"
|
"name": "propertyFilterValue",
|
||||||
}
|
"type": "STRING"
|
||||||
],
|
},
|
||||||
"restApi": true
|
{
|
||||||
|
"name": "filterParameters",
|
||||||
|
"type": "STRING",
|
||||||
|
"value": "key,id"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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"
|
||||||
|
} ]
|
||||||
|
}
|
||||||
@ -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"
|
||||||
|
} ]
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"scopeId" : null,
|
||||||
|
"name" : "Dependencies",
|
||||||
|
"configKey" : "dependency",
|
||||||
|
"configType" : "dependency",
|
||||||
|
"scopes" : [ ]
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"configKey" : "service-create",
|
||||||
|
"processDefinitionKey" : "service-create",
|
||||||
|
"documents" : [ ],
|
||||||
|
"dossiers" : [ {
|
||||||
|
"configKey" : "vorgang",
|
||||||
|
"currentUserConfig" : [ [ {
|
||||||
|
"key" : "filterTenantId",
|
||||||
|
"operation" : "in",
|
||||||
|
"value" : "${currentUserAttributes.tenantIds}"
|
||||||
|
} ] ],
|
||||||
|
"gruppenConfigs" : { }
|
||||||
|
} ]
|
||||||
|
}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"configKey" : "service-replay-setup",
|
||||||
|
"processDefinitionKey" : "service-replay-setup",
|
||||||
|
"documents" : [ ],
|
||||||
|
"dossiers" : [ {
|
||||||
|
"configKey" : "vorgang",
|
||||||
|
"currentUserConfig" : [ [ ] ],
|
||||||
|
"gruppenConfigs" : { }
|
||||||
|
} ]
|
||||||
|
}
|
||||||
@ -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"
|
||||||
|
}
|
||||||
@ -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"
|
||||||
|
}
|
||||||
@ -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" : "<div class=\"h2\">\n <!-- pending, running, successful, error, failed, canceled -->\n <span style=\"display: {{ data.status == 'pending' ? '' : 'none' }}\" class=\"badge badge-info\">{{ data.status }}</span>\n <span style=\"display: {{ data.status == 'running' ? '' : 'none' }}\" class=\"badge badge-primary\">{{ data.status }}</span>\n <span style=\"display: {{ data.status == 'successful' ? '' : 'none' }}\" class=\"badge badge-success\">{{ data.status }}</span>\n <span style=\"display: {{ data.status == 'error' ? '' : 'none' }}\" class=\"badge badge-danger\">{{ data.status }}</span>\n <span style=\"display: {{ data.status == 'failed' ? '' : 'none' }}\" class=\"badge badge-warning\">{{ data.status }}</span>\n <span style=\"display: {{ data.status == 'canceled' ? '' : 'none' }}\" class=\"badge badge-warning\">{{ data.status }}</span>\n</div>",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -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" : "<div class=\"h4\">\n <!-- pending, running, successful, error, failed, canceled -->\n <span style=\"display: {{ data.status == 'pending' ? '' : 'none' }}\" class=\"badge badge-info\">{{ data.status }}</span>\n <span style=\"display: {{ data.status == 'running' ? '' : 'none' }}\" class=\"badge badge-primary\">{{ data.status }}</span>\n <span style=\"display: {{ data.status == 'successful' ? '' : 'none' }}\" class=\"badge badge-success\">{{ data.status }}</span>\n <span style=\"display: {{ data.status == 'error' ? '' : 'none' }}\" class=\"badge badge-danger\">{{ data.status }}</span>\n <span style=\"display: {{ data.status == 'failed' ? '' : 'none' }}\" class=\"badge badge-warning\">{{ data.status }}</span>\n <span style=\"display: {{ data.status == 'canceled' ? '' : 'none' }}\" class=\"badge badge-warning\">{{ data.status }}</span>\n</div>",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -0,0 +1,98 @@
|
|||||||
|
{
|
||||||
|
"name" : "Progress Bar",
|
||||||
|
"configKey" : "progress-bar",
|
||||||
|
"page" : 0,
|
||||||
|
"components" : [ {
|
||||||
|
"label" : "HTML",
|
||||||
|
"labelPosition" : "left-left",
|
||||||
|
"className" : "",
|
||||||
|
"attrs" : [ {
|
||||||
|
"attr" : "",
|
||||||
|
"value" : ""
|
||||||
|
} ],
|
||||||
|
"content" : "<div class=\"progress\">\n <div\n class=\"progress-bar progress-bar-striped progress-bar-animated\"\n role=\"progressbar\"\n aria-valuenow=\"{{ data.progress_current }}\"\n aria-valuemin=\"0\"\n aria-valuemax=\"{{ data.progress_max }}\"\n style=\"width: {{ data.progress_current / data.progress_max * 100 }}%\">\n </div>\n</div>",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -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"
|
||||||
|
}
|
||||||
@ -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" : "<h3>Connect-Version\n<p></p>\n<p></p>\n</h3>\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"
|
||||||
|
}
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"components" : [ {
|
||||||
|
"label" : "Hinweis Create",
|
||||||
|
"className" : "",
|
||||||
|
"attrs" : [ {
|
||||||
|
"attr" : "",
|
||||||
|
"value" : ""
|
||||||
|
} ],
|
||||||
|
"content" : "<div class=\"card text-white bg-warning\">\n <div class=\"card-body\">\n <h5 class=\"card-title\">Die Simulation ist gerade aktiv</h5>\n <p class=\"card-text\">Es werden keine Aktionen ausgeführt, da alle Aufrufe zu externen Systemen übersprungen werden.</p>\n </div>\n</div>",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -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!)"
|
||||||
|
}
|
||||||
@ -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" : "<h4>Cluster</h4>",
|
||||||
|
"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" : "<p> </p>\n<h4>Connect-Version</h4>",
|
||||||
|
"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" : "<p> </p>\n<p> </p>",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -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"
|
||||||
|
}
|
||||||
@ -0,0 +1,104 @@
|
|||||||
|
{
|
||||||
|
"components" : [ {
|
||||||
|
"label" : "Hinweis Create",
|
||||||
|
"className" : "",
|
||||||
|
"attrs" : [ {
|
||||||
|
"attr" : "",
|
||||||
|
"value" : ""
|
||||||
|
} ],
|
||||||
|
"content" : "<div class=\"card text-white bg-warning\">\n <div class=\"card-body\">\n <h5 class=\"card-title\">Die Simulation ist gerade aktiv</h5>\n <p class=\"card-text\">Es werden keine Aktionen ausgeführt, da alle Aufrufe zu externen Systemen übersprungen werden.</p>\n </div>\n</div>",
|
||||||
|
"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" : "<div class=\"card text-white bg-danger\">\n <div class=\"card-body\">\n <h5 class=\"card-title\">Keine Mandanten mit Services löschen</h5>\n <p class=\"card-text\">Ein Mandant darf nur dann gelöscht werden, wenn keine Services mehr existieren.</p>\n </div>\n</div>",
|
||||||
|
"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" : "<div class=\"card text-white bg-info\">\n <div class=\"card-body\">\n <h5 class=\"card-title\">Änderung vorhandender Mandanten</h5>\n <p class=\"card-text\">Die Änderung vorhandender Mandanten muss in Keycloak durch einen Realm-Administrator erfolgen.</p>\n </div>\n</div>",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
@ -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"
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue