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",
|
||||
"configKey" : "tenant-management",
|
||||
"datasource" : {
|
||||
"key" : "data-entity-tenants"
|
||||
"key" : "data-entity-tenants",
|
||||
"parameter" : [ {
|
||||
"key" : "userId",
|
||||
"value" : "{{user.id}}"
|
||||
} ]
|
||||
},
|
||||
"columns" : [ {
|
||||
"key" : "id",
|
||||
"name" : "ID",
|
||||
"width" : 100
|
||||
}, {
|
||||
"key" : "key",
|
||||
"name" : "Mandantenschlüssel",
|
||||
"width" : 50
|
||||
}, {
|
||||
"key" : "name",
|
||||
"name" : "Name",
|
||||
"width" : 200
|
||||
"name" : "Mandantenname",
|
||||
"width" : 100
|
||||
}, {
|
||||
"key" : "key",
|
||||
"name" : "Key",
|
||||
"key" : "admin.last_name",
|
||||
"name" : "Administrator",
|
||||
"width" : 100
|
||||
} ],
|
||||
"actions" : [ {
|
||||
"icon" : "add_circle",
|
||||
"name" : "Create New Tenant",
|
||||
"searchKey": "tenant-events",
|
||||
"processDefinitionKey" : "tenant-create"
|
||||
"name" : "Mandant erstellen...",
|
||||
"processDefinitionKey" : "tenant-create",
|
||||
"groups" : [ "tenant-create" ]
|
||||
} ],
|
||||
"rowActions" : [ {
|
||||
"icon" : "edit",
|
||||
"name" : "Edit Tenant",
|
||||
"searchKey": "tenant-events",
|
||||
"processDefinitionKey" : "tenant-edit",
|
||||
"name" : "Mandant ändern...",
|
||||
"processDefinitionKey" : "tenant-change",
|
||||
"groups" : [ "tenant-change" ],
|
||||
"variable" : "tenant"
|
||||
}, {
|
||||
"icon" : "delete",
|
||||
"name" : "Delete Tenant",
|
||||
"searchKey": "tenant-events",
|
||||
"name" : "Mandant löschen...",
|
||||
"processDefinitionKey" : "tenant-delete",
|
||||
"groups" : [ "tenant-delete" ],
|
||||
"variable" : "tenant"
|
||||
}, {
|
||||
"type" : "open-link",
|
||||
"icon" : "manage_accounts",
|
||||
"name" : "Benutzerverwaltung öffnen...",
|
||||
"link" : "https://dev-keycloak-01.smardigo.digital/auth/admin/{{ key }}/console/"
|
||||
} ]
|
||||
}
|
||||
Binary file not shown.
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -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