main.ymlΒΆ

---
application_id: "web-app-dashboard"
DASHBOARD_APPLICATION_ID: "web-app-dashboard"
http_port: "{{ lookup('config', DASHBOARD_APPLICATION_ID, 'services.dashboard.ports.local.http') }}"

DASHBOARD_INSTANCES: "{{ lookup('domains')[DASHBOARD_APPLICATION_ID] | network_instances }}"
DASHBOARD_INSTANCE_DOMAIN: "{{ lookup('domains')[DASHBOARD_APPLICATION_ID] | domain_strings | in_network(dashboard_instance.network) | first }}"
DASHBOARD_NETWORK_LABEL: "{{ (DASHBOARD_INSTANCES | selectattr('network', 'equalto', domain | network_of) | first).label }}"

DASHBOARD_ASSET_ENABLED: "{{ lookup('config', DASHBOARD_APPLICATION_ID, 'services.asset.enabled') }}"
DASHBOARD_SIMPLEICONS_ENABLED: "{{ lookup('config', DASHBOARD_APPLICATION_ID, 'services.simpleicons.enabled') }}"
DASHBOARD_SIMPLEICONS_URL_BASE: "{{ lookup('tls', 'web-svc-simpleicons', 'url.base') }}"
DASHBOARD_SIMPLEICONS_SYNC_URL_BASE: "{{ 'http://' ~ DOCKER_REACH_HOST ~ ':' ~ (lookup('config', 'web-svc-simpleicons', 'services.simpleicons.ports.local.http') |
  string) ~ '/' }}"
DASHBOARD_SIMPLEICONS_PROBE_URLS: >-
  {{ dict(portfolio_cards | simpleicon_slugs
          | zip(portfolio_cards | simpleicon_slugs
                | map('regex_replace', '^', DASHBOARD_SIMPLEICONS_SYNC_URL_BASE)
                | map('regex_replace', '$', '.svg'))) }}

DASHBOARD_JS_FILES: >-
  {{ ['iframe.js']
     + (['oidc.js'] if (DASHBOARD_OIDC_ENABLED | bool) else []) }}
DASHBOARD_JS_BASE_PATH: "{{ DASHBOARD_APPLICATION_ID | entity_name }}/{{ 'js' | labelled(DASHBOARD_NETWORK_LABEL, '-') }}"
DASHBOARD_JS_SERVER_DIR: "{{ [ lookup('nginx','directories.data.cdn'), DASHBOARD_JS_BASE_PATH ] | path_join }}"
DASHBOARD_JS_BASE_URL: "{{ lookup('tls', 'web-svc-cdn', 'url.origin') ~ '/' ~ (DASHBOARD_JS_BASE_PATH | trim('/')) }}"

DASHBOARD_LOCATION_SILENT_CHECK: "/silent-check-sso.html"

DASHBOARD_CONFIG_YML_SRC_FILE: "config.yaml.j2"
DASHBOARD_CONFIG_INV_PATH: "{{ [ inventory_dir, 'files', inventory_hostname ,'docker', DASHBOARD_APPLICATION_ID, DASHBOARD_CONFIG_YML_SRC_FILE] | path_join }}"
DASHBOARD_CONFIG_YML_DEST: "{{ [ lookup('container', DASHBOARD_APPLICATION_ID, 'directories.volumes'), 'config.yaml' | labelled_file(DASHBOARD_NETWORK_LABEL) ] |
  path_join }}"
DASHBOARD_I18N_CONTENT_DIR: "{{ [ lookup('container', DASHBOARD_APPLICATION_ID, 'directories.instance'), 'i18n-content' ] | path_join }}"
DASHBOARD_IMAGE: "{{ lookup('config', DASHBOARD_APPLICATION_ID, 'services.dashboard.image') }}"
DASHBOARD_VERSION: "{{ lookup('config', DASHBOARD_APPLICATION_ID, 'services.dashboard.version') }}"

DASHBOARD_APP_BASE_URL: "{{ lookup('tls', DASHBOARD_APPLICATION_ID, 'url.base') }}"
DASHBOARD_KEYCLOAK_LOGIN_URL: >-
  {{ OIDC.CLIENT.AUTHORIZE_URL
     ~ '?client_id=' ~ OIDC.CLIENT.ID
     ~ '&response_type=code'
     ~ '&scope=openid%20profile%20email'
     ~ '&redirect_uri=' ~ (DASHBOARD_APP_BASE_URL | urlencode) }}
DASHBOARD_KEYCLOAK_IFRAME_ENABLED: "{{ lookup('config','web-app-keycloak', 'services.dashboard.enabled') }}"
DASHBOARD_OIDC_ENABLED: "{{ lookup('config', DASHBOARD_APPLICATION_ID, 'services.sso.enabled') }}"

DASHBOARD_CONTAINER: "{{ lookup('config', DASHBOARD_APPLICATION_ID, 'services.dashboard.name') }}"

DASHBOARD_DESIGN_ENABLED: "{{ lookup('config', DASHBOARD_APPLICATION_ID, 'services.design.enabled') | bool }}"
DASHBOARD_DESIGN_LOGO_ENABLED: "{{ DASHBOARD_DESIGN_ENABLED | bool and lookup('design', DASHBOARD_APPLICATION_ID).logo is string }}"
DASHBOARD_DESIGN_TITLE_ENABLED: "{{ DASHBOARD_DESIGN_ENABLED | bool and lookup('design', DASHBOARD_APPLICATION_ID).title is string }}"

DASHBOARD_PLATFORM_TITLE: "{{ lookup('design', DASHBOARD_APPLICATION_ID).title if DASHBOARD_DESIGN_TITLE_ENABLED | bool else service_provider.platform.titel }}"
DASHBOARD_PLATFORM_LOGO_SOURCE: "{{ lookup('design', DASHBOARD_APPLICATION_ID).urls.logo.png if DASHBOARD_DESIGN_LOGO_ENABLED | bool else service_provider.platform.logo
  | string }}"
DASHBOARD_PLATFORM_LOGO_URL: "{{ lookup('network_url', ('https:' ~ DASHBOARD_PLATFORM_LOGO_SOURCE) if DASHBOARD_PLATFORM_LOGO_SOURCE.startswith('//') else DASHBOARD_PLATFORM_LOGO_SOURCE)
  }}"
DASHBOARD_PLATFORM_FAVICON_SOURCE: "{{ lookup('design', DASHBOARD_APPLICATION_ID).urls.favicon_ico if DASHBOARD_DESIGN_LOGO_ENABLED | bool else service_provider.platform.favicon
  | string }}"
DASHBOARD_PLATFORM_FAVICON_URL: "{{ lookup('network_url', ('https:' ~ DASHBOARD_PLATFORM_FAVICON_SOURCE) if DASHBOARD_PLATFORM_FAVICON_SOURCE.startswith('//') else
  DASHBOARD_PLATFORM_FAVICON_SOURCE) }}"
DASHBOARD_COMPANY_LOGO_SOURCE: "{{ service_provider.company.logo | string }}"
DASHBOARD_COMPANY_LOGO_URL: "{{ lookup('network_url', ('https:' ~ DASHBOARD_COMPANY_LOGO_SOURCE) if DASHBOARD_COMPANY_LOGO_SOURCE.startswith('//') else DASHBOARD_COMPANY_LOGO_SOURCE)
  }}"