Renamed cymais to infinito and did some other optimations and logout implementations

This commit is contained in:
2025-07-29 16:35:42 +02:00
parent a9e7ed3605
commit 44e0fea0b2
499 changed files with 1740 additions and 1587 deletions

View File

@@ -2,7 +2,7 @@
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Core role for Nginx HTML injection of Matomo, theming, iFrame and JS snippets based on application feature flags."
license: "CyMaIS NonCommercial License (CNCL)"
license: "Infinito.Nexus NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
@@ -13,9 +13,9 @@ galaxy_info:
- injector
- matomo
- theming
repository: "https://github.com/kevinveenbirkenbach/cymais"
issue_tracker_url: "https://github.com/kevinveenbirkenbach/cymais/issues"
documentation: "https://github.com/kevinveenbirkenbach/cymais/tree/main/roles/srv-web-7-7-inj-compose"
repository: "https://github.com/kevinveenbirkenbach/infinito-nexus"
issue_tracker_url: "https://github.com/kevinveenbirkenbach/infinito-nexus/issues"
documentation: "https://github.com/kevinveenbirkenbach/infinito-nexus/tree/main/roles/srv-web-7-7-inj-compose"
min_ansible_version: "2.9"
platforms:
- name: Any

View File

@@ -1,26 +1,51 @@
# run_once_srv_web_7_7_inj_compose: deactivated
- name: Set inj_enabled dictionary
set_fact:
inj_enabled:
javascript: "{{ applications | get_app_conf(application_id, 'features.javascript', False) }}"
logout: "{{ (applications | get_app_conf(application_id, 'features.logout', False) or domain == primary_domain) }}"
css: "{{ applications | get_app_conf(application_id, 'features.css', False) }}"
matomo: "{{ applications | get_app_conf(application_id, 'features.matomo', False) }}"
port_ui: "{{ applications | get_app_conf(application_id, 'features.port-ui-desktop', False) }}"
- name: "Load CDN for {{domain}}"
include_role:
name: web-svc-cdn
public: false
# ATM just the Logout is using the CDN.
when: inj_enabled.logout and application_id != 'web-svc-cdn'
- name: Set inj_enabled dictionary
set_fact:
inj_enabled:
javascript: "{{ applications | get_app_conf(application_id, 'features.javascript', False) }}"
logout: "{{ (applications | get_app_conf(application_id, 'features.logout', False) or domain == primary_domain) }}"
css: "{{ applications | get_app_conf(application_id, 'features.css', False) }}"
matomo: "{{ applications | get_app_conf(application_id, 'features.matomo', False) }}"
port_ui: "{{ applications | get_app_conf(application_id, 'features.port-ui-desktop', False) }}"
- name: "Activate Global CSS for {{domain}}"
include_role:
name: srv-web-7-7-inj-css
when: applications | get_app_conf(application_id, 'features.css', False)
when: inj_enabled.css
- name: "Activate Global Matomo Tracking for {{domain}}"
include_role:
name: srv-web-7-7-inj-matomo
when: applications | get_app_conf(application_id, 'features.matomo', False)
when: inj_enabled.matomo
- name: "Activate Portfolio iFrame notifier for {{ domain }}"
include_role:
name: srv-web-7-7-inj-port-ui-desktop
when: applications | get_app_conf(application_id, 'features.port-ui-desktop', False)
when: inj_enabled.port_ui
- name: "Activate Javascript for {{ domain }}"
include_role:
name: srv-web-7-7-inj-javascript
when: applications | get_app_conf(application_id, 'features.javascript', False)
when: inj_enabled.javascript
- name: "Activate logout proxy for {{ domain }}"
include_role:
name: srv-web-7-7-inj-logout
when: applications | get_app_conf(application_id, 'features.logout', False)
when: inj_enabled.logout

View File

@@ -33,14 +33,11 @@ body_filter_by_lua_block {
-- on eof: concatenate all buffered chunks
local whole = table.concat(ngx.ctx.buf)
ngx.ctx.buf = nil -- clear buffer
{# whole = string.gsub(whole, "</body>", "<!-- injected text2 -->\n</body>")
ngx.arg[1] = whole #}
-- build a list of head-injection snippets
local head_snippets = {}
{# Deactivated 'logout' temporary due to chunk size. Needs an CDN. #}
{% for head_feature in ['css', 'matomo', 'port-ui-desktop', 'javascript' ] %}
{% for head_feature in ['css', 'matomo', 'port-ui-desktop', 'javascript', 'logout' ] %}
{% if applications | get_app_conf(application_id, 'features.' ~ head_feature, false) | bool %}
head_snippets[#head_snippets + 1] = [=[
{%- include "roles/srv-web-7-7-inj-" ~ head_feature ~ "/templates/head_sub.j2" -%}
@@ -52,7 +49,7 @@ body_filter_by_lua_block {
local head_payload = table.concat(head_snippets, "\n") .. "</head>"
whole = string.gsub(whole, "</head>", head_payload)
{% if applications | get_app_conf(application_id, 'features.matomo', false) | bool %}
{% if inj_enabled.matomo | bool %}
-- build Matomo noscript snippet for the body
local body_matomo = [=[
{%- include 'roles/srv-web-7-7-inj-matomo/templates/body_sub.j2' -%}

View File

@@ -1,9 +1,7 @@
{% set modifier_css_enabled = applications | get_app_conf(application_id, 'features.css', false) | bool %}
{% if modifier_css_enabled %}
{%- include 'roles/srv-web-7-7-inj-css/templates/location.conf.j2' -%}
{% if inj_enabled.css %}
{% include 'roles/srv-web-7-7-inj-css/templates/location.conf.j2' %}
{% endif %}
{% set modifier_logout_enabled = applications | get_app_conf(application_id, 'features.logout', False) or domain == primary_domain %}
{% if modifier_logout_enabled %}
{% if inj_enabled.logout %}
{% include 'roles/web-svc-logout/templates/logout-proxy.conf.j2' %}
{% endif %}