main.ymlΒΆ

---
application_id: "web-app-xwiki"
entity_name: "{{ application_id | entity_name }}"
domain: "{{ lookup('domain',application_id) }}"

container_hostname: "{{ lookup('container_hostname', application_id) }}"

XWIKI_HOST_PORT: "{{ lookup('config', application_id, 'services.xwiki.ports.local.http') }}"

XWIKI_HOSTNAME: "{{ container_hostname }}"
XWIKI_URL: "{{ lookup('tls', application_id, 'url.origin') }}"

XWIKI_HOST_PROPERTIES_PATH: "{{ [lookup('container', application_id, 'directories.config'), 'xwiki.properties'] | path_join }}"
XWIKI_DOCK_DATA_DIR: "{{ lookup('volume', 'web-app-xwiki', 'data').target }}"

XWIKI_IMAGE: "{{ lookup('config', application_id, 'services.xwiki.image') }}"
XWIKI_VERSION: "{{ lookup('config', application_id, 'services.xwiki.version') }}"
XWIKI_CORE_VERSION: "{{ (XWIKI_VERSION | string).split('-') | first }}"
XWIKI_CONTAINER: "{{ lookup('config', application_id, 'services.xwiki.name') }}"
XWIKI_CONTAINER_ADDRESS: "{{ lookup('container_address', application_id, entity_name) }}"

XWIKI_LDAP_ENABLED: "{{ lookup('config', application_id, 'services.ldap.enabled') }}"
XWIKI_OIDC_ENABLED: "{{ lookup('config', application_id, 'services.sso.enabled') }}"
XWIKI_SSO_ENABLED: "{{ (XWIKI_OIDC_ENABLED | bool) or (XWIKI_LDAP_ENABLED | bool) }}"

XWIKI_ADMIN_USER: "{{ lookup('users', 'platform_administrator').username }}"
XWIKI_ADMIN_PASSWORD: "{{ lookup('users', 'platform_administrator').password }}"
XWIKI_ADMIN_REFERENCE: "XWiki.{{ XWIKI_ADMIN_USER }}"
XWIKI_ADMIN_GROUP: "administrator"
XWIKI_ADMIN_GROUP_PAGE: "XWikiAdminGroup"

XWIKI_SUPERADMIN_PASSWORD: "{{ lookup('config', application_id, 'secrets.credentials.superadminpassword') }}"
XWIKI_SUPERADMIN_USERNAME: "superadmin"

XWIKI_DOCKER_REACH_URL: "http://{{ DOCKER_REACH_HOST }}:{{ XWIKI_HOST_PORT }}"

XWIKI_REST_BASE: "{{ [XWIKI_DOCKER_REACH_URL, '/rest/'] | url_join  }}"
XWIKI_REST_XWIKI: "{{ [XWIKI_REST_BASE, 'wikis/xwiki'] | url_join  }}"
XWIKI_REST_XWIKI_PAGES: "{{ [XWIKI_REST_BASE, 'wikis/xwiki/spaces/XWiki/pages'] | url_join }}"
XWIKI_REST_DESCRIPTOR: "{{ [XWIKI_REST_XWIKI_PAGES, 'XWikiServerXwiki'] | url_join }}"
XWIKI_DESCRIPTOR_SERVER: "{{ lookup('domain', application_id) }}"
XWIKI_DESCRIPTOR_SECURE: "{{ '1' if (lookup('tls', XWIKI_DESCRIPTOR_SERVER, 'enabled') | bool) else '0' }}"

XWIKI_LDAP_SERVER: "{{ LDAP.SERVER.DOMAIN }}"
XWIKI_LDAP_PORT: "{{ LDAP.SERVER.PORT }}"
XWIKI_LDAP_BASE_DN: "{{ LDAP.DN.ROOT }}"
XWIKI_LDAP_BIND_DN: "{{ LDAP.DN.ADMINISTRATOR.DATA }}"
XWIKI_LDAP_BIND_PASS: "{{ LDAP.BIND_CREDENTIAL }}"
XWIKI_LDAP_TRYLOCAL: "{{ lookup('config', application_id, 'services.ldap.trylocal') }}"
XWIKI_LDAP_FIELDS_MAPPING: "last_name={{ LDAP.USER.ATTRIBUTES.SURNAME }},first_name={{ LDAP.USER.ATTRIBUTES.FIRSTNAME }},email={{ LDAP.USER.ATTRIBUTES.MAIL }}"
XWIKI_LDAP_ADMIN_GROUP_DN: "cn={{ XWIKI_ADMIN_GROUP }},ou={{ application_id }},{{ LDAP.DN.OU.ROLES }}"

XWIKI_OIDC_PROVIDER: "{{ OIDC.CLIENT.ISSUER_URL }}"
XWIKI_OIDC_AUTHORIZATION: "{{ OIDC.CLIENT.AUTHORIZE_URL }}"
XWIKI_OIDC_TOKEN: "{{ OIDC.CLIENT.TOKEN_URL }}"
XWIKI_OIDC_USERINFO: "{{ OIDC.CLIENT.USER_INFO_URL }}"
XWIKI_OIDC_LOGOUT: "{{ OIDC.CLIENT.LOGOUT_URL }}"
XWIKI_OIDC_CLIENT_ID: "{{ OIDC.CLIENT.ID }}"
XWIKI_OIDC_CLIENT_SECRET: "{{ OIDC.CLIENT.SECRET }}"
XWIKI_OIDC_SCOPES: "openid,email,profile,{{ RBAC.GROUP.CLAIM }}"
XWIKI_OIDC_GROUPS_CLAIM: "{{ RBAC.GROUP.CLAIM }}"
XWIKI_OIDC_ADMIN_PROVIDER_GROUP: "{{ lookup('rbac_group_path', application_id=application_id, role='administrator') }}"

XWIKI_OBJSTORE_ENABLED: "{{ lookup('objstore', application_id, 'enabled') }}"
XWIKI_OBJSTORE_BUCKET: "{{ lookup('objstore', application_id, 'bucket') }}"
XWIKI_OBJSTORE_ACCESS_KEY: "{{ lookup('objstore', application_id, 'access_key') }}"
XWIKI_OBJSTORE_SECRET_KEY: "{{ lookup('objstore', application_id, 'secret_key') }}"
XWIKI_OBJSTORE_URL: "{{ lookup('objstore', application_id, 'url') }}"
XWIKI_OBJSTORE_REGION: "{{ lookup('objstore', application_id, 'region') }}"

XWIKI_BLOBSTORE_EXTENSION_VERSION: "{{ XWIKI_VERSION | regex_replace('-.*$', '') }}"

XWIKI_BLOBSTORE_EXTENSIONS: "{{ [{'id': 'org.xwiki.commons:xwiki-commons-store-blob-s3', 'version': XWIKI_BLOBSTORE_EXTENSION_VERSION, 'namespace': ''}] if (XWIKI_OBJSTORE_ENABLED
  | bool) else [] }}"

XWIKI_PLUGINS: "{{ (lookup('config', application_id, 'addons') | xwiki_enabled_install_items) + XWIKI_BLOBSTORE_EXTENSIONS }}"

XWIKI_DESIGN_ENABLED: "{{ lookup('config', application_id, 'services.design.enabled') | bool }}"
XWIKI_DESIGN_DIR: "{{ [lookup('container', application_id, 'directories.config'), 'design'] | path_join }}"
XWIKI_DESIGN_THEME_PAGE: "Infinito"
XWIKI_DESIGN_THEME_REFERENCE: "FlamingoThemes.{{ XWIKI_DESIGN_THEME_PAGE }}"
XWIKI_DESIGN_STOCK_THEME_PAGE: "Iceberg"
XWIKI_DESIGN_THEME_OBJECT: "objects/FlamingoThemesCode.ThemeClass/0"
XWIKI_DESIGN_LOGO_FILE: "logo.svg"
XWIKI_REST_THEME_PAGE: "{{ [XWIKI_REST_XWIKI, 'spaces/FlamingoThemes/pages', XWIKI_DESIGN_THEME_PAGE] | url_join }}"
XWIKI_REST_PREFERENCES: "{{ [XWIKI_REST_XWIKI_PAGES, 'XWikiPreferences/objects/XWiki.XWikiPreferences/0/properties'] | url_join }}"
XWIKI_DESIGN_TITLE_SUFFIX: " - {{ lookup('design', application_id).label }}"
XWIKI_DESIGN_TITLE: "$tdoc.getRenderedTitle('plain/1.0'){{ XWIKI_DESIGN_TITLE_SUFFIX }}"
XWIKI_DESIGN_PALETTE: "{{ lookup('design_palette', lookup('config', 'web-svc-design', 'services.design.colors.base')).light }}"
XWIKI_DESIGN_THEME_TOKENS:
  text-color: text
  body-bg: surface-1
  xwiki-page-content-bg: surface-2
  link-color: link
  headings-color: text
  brand-primary: primary
  brand-success: success
  brand-info: info
  brand-warning: warning
  brand-danger: danger
  component-active-color: text
  component-active-bg: surface-active
  btn-default-color: text
  btn-default-bg: surface-2
  btn-default-border: border-strong
  btn-primary-color: on-primary
  btn-primary-bg: primary
  btn-success-color: on-success
  btn-success-bg: success
  btn-info-color: on-info
  btn-info-bg: info
  btn-warning-color: on-warning
  btn-warning-bg: warning
  btn-danger-color: on-danger
  btn-danger-bg: danger
  navbar-default-bg: frame
  navbar-default-color: on-frame
  navbar-default-link-color: on-frame
  navbar-default-link-hover-color: on-frame
  navbar-default-link-hover-bg: frame-hover
  navbar-default-link-active-color: on-frame
  navbar-default-link-active-bg: frame-active
  dropdown-bg: surface-2
  dropdown-border: border
  dropdown-divider-bg: border
  dropdown-link-color: text
  dropdown-link-hover-color: text
  dropdown-link-hover-bg: surface-hover
  input-bg: surface-2
  input-border: border-strong
  input-color: text
  input-border-focus: link
  input-color-placeholder: text-muted
  legend-color: text
  legend-border-color: border
  panel-bg: surface-2
  panel-header-text: text
  breadcrumb-bg: surface-3
  breadcrumb-color: text-muted
  breadcrumb-link-color: link
  table-bg: surface-2
  table-bg-hover: surface-hover
  table-border-color: border
XWIKI_DESIGN_LESS_TOKENS:
  gray-light: text-muted
  text-muted: text-muted
  state-success-bg: success-subtle
  state-info-bg: info-subtle
  state-warning-bg: warning-subtle
  state-danger-bg: danger-subtle
  xwiki-border-color: border
  xwiki-drawer-menu-item-hover-bg: surface-hover
  xwiki-drawer-menu-item-hover-color: text
  well-bg: surface-1
XWIKI_DESIGN_THEME_COLORS: >-
  {{ dict(XWIKI_DESIGN_THEME_TOKENS.keys()
     | zip(XWIKI_DESIGN_THEME_TOKENS.values() | map('regex_replace', '^', '--design-') | map('extract', XWIKI_DESIGN_PALETTE))) }}
XWIKI_DESIGN_LESS_COLORS: >-
  {{ dict(XWIKI_DESIGN_LESS_TOKENS.keys()
     | zip(XWIKI_DESIGN_LESS_TOKENS.values() | map('regex_replace', '^', '--design-') | map('extract', XWIKI_DESIGN_PALETTE))) }}
XWIKI_DESIGN_LESS_CODE: >-
  {% for name, value in XWIKI_DESIGN_LESS_COLORS | dictsort %}@{{ name }}: {{ value }};
  {% endfor %}@list-group-active-border: @list-group-border; @headings-font-weight: 500;