oidc.ymlΒΆ

---
- name: "πŸ“¦ Install & activate {{ SHOPWARE_OIDC_PLUGIN }}"
  ansible.builtin.shell:
    cmd: >- # nocheck: container-exec-resolver  runtime-resolved CID, delegated to the hosting node
      container exec -i --user {{ SHOPWARE_USER }}
      -e SHOPWARE_ROOT={{ SHOPWARE_ROOT | quote }}
      -e PLUGIN_NAME={{ SHOPWARE_OIDC_PLUGIN | quote }}
      {{ SHOPWARE_WEB_LOCAL_CID | quote }}
      sh
    stdin: |
      set -e
      cd "$SHOPWARE_ROOT"
      php bin/console plugin:refresh
      installed="$(php bin/console plugin:install --activate "$PLUGIN_NAME")"
      printf '%s\n' "$installed"
      printf '%s' "$installed" | grep -qi installed
  changed_when: false

- name: "πŸ” Ensure the Keycloak login provider is configured"
  ansible.builtin.shell:
    cmd: >- # nocheck: container-exec-resolver  runtime-resolved CID, delegated to the hosting node
      container exec -i --user {{ SHOPWARE_USER }}
      -e SHOPWARE_API_BASE={{ SHOPWARE_API_BASE | quote }}
      -e ADMIN_USER={{ lookup('users', 'administrator').username | quote }}
      -e ADMIN_PASSWORD={{ lookup('users', 'administrator').password | quote }}
      -e OIDC_AUTH_SERVER={{ OIDC.URL | quote }}
      -e OIDC_INTERNAL_BASE={{ SHOPWARE_OIDC_INTERNAL_BASE | quote }}
      -e OIDC_REALM={{ OIDC.CLIENT.REALM | quote }}
      -e OIDC_CLIENT_ID={{ OIDC.CLIENT.ID | quote }}
      -e OIDC_CLIENT_SECRET={{ OIDC.CLIENT.SECRET | quote }}
      {{ SHOPWARE_WEB_LOCAL_CID | quote }}
      php
    stdin: "{{ lookup('ansible.builtin.file', role_path ~ '/files/php/oidc/client.php') }}"
  changed_when: false
  no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"

- name: "♻️ Clear the cache so the provider is discovered"
  ansible.builtin.shell:
    cmd: >- # nocheck: container-exec-resolver  runtime-resolved CID, delegated to the hosting node
      container exec -i --user {{ SHOPWARE_USER }}
      -e SHOPWARE_ROOT={{ SHOPWARE_ROOT | quote }}
      {{ SHOPWARE_WEB_LOCAL_CID | quote }}
      sh
    stdin: |
      set -e
      cd "$SHOPWARE_ROOT"
      php bin/console cache:clear
  changed_when: false