mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-13 14:16:46 +00:00
# Conflicts: # README.md # roles/svc-bkp-local-2-device/tasks/00_core.yml # roles/svc-bkp-nfs-2-local/tasks/00_core.yml # roles/svc-bkp-remote-2-local/tasks/00_core.yml # roles/svc-bkp-secrets-2-local/tasks/00_core.yml # roles/svc-bkp-volume-2-local/tasks/00_core.yml # roles/sys-ctl-cln-bkps/tasks/00_core.yml # roles/sys-ctl-cln-certs/tasks/00_core.yml # roles/sys-ctl-cln-disc-space/tasks/00_core.yml # roles/sys-ctl-cln-faild-bkps/tasks/00_core.yml # roles/sys-ctl-hlth-webserver/filter_plugins/web_health_expectations.py # roles/sys-ctl-mtn-cert-renew/tasks/00_core.yml # roles/sys-svc-container/README.md # roles/sys-svc-container/vars/main.yml # roles/sys-svc-proxy/templates/headers/forwarded.conf.j2 # roles/sys-svc-webserver-https/tasks/00_core.yml # roles/sys-token-store/tasks/write.yml # roles/web-app-discourse/templates/config.yml.j2 # roles/web-app-keycloak/files/shell/per_app_mapper/ensure_app_group.sh # roles/web-app-keycloak/files/shell/per_app_mapper/purge/app_subgroups.sh # roles/web-app-keycloak/files/shell/per_app_mapper/sync_app_mapper.sh # roles/web-app-keycloak/files/shell/per_app_mapper/upsert_app_mapper.sh # roles/web-app-matomo/tasks/03_install_path.yml # roles/web-app-matomo/tasks/08_reinject_consumers.yml # roles/web-app-matrix/README.md # roles/web-app-matrix/tasks/flavor/compose/04_webserver.yml # roles/web-app-matrix/vars/main.yml # roles/web-app-moodle/tasks/03_ownership.yml # roles/web-app-seaweedfs/meta/info.yml # roles/web-app-stalwart/tasks/04_manage_user.yml # roles/web-opt-rdr-domains/README.md # roles/web-opt-rdr-domains/tasks/main.yml # roles/web-svc-file/tasks/00_core.yml # roles/web-svc-html/tasks/00_core.yml # tests/unit/python/roles/web-app-prometheus/test_blackbox_targets.py
Custom Filter Plugins for Infinito.Nexus
This directory contains custom Ansible filter plugins used within the Infinito.Nexus project.
When to Use a Filter Plugin
- Transform values: Use filters to transform, extract, reformat, or compute values from existing variables or facts.
- Inline data manipulation: Filters are designed for inline use in Jinja2 expressions (in templates, tasks, vars, etc.).
- No external lookups: Filters only operate on data you explicitly pass to them and cannot access external files, the Ansible inventory, or runtime context.
Examples
{{ role_name | entity_name }}
{{ my_list | unique }}
{{ user_email | regex_replace('^(.+)@.*$', '\\1') }}
When not to Use a Filter Plugin
- If you need to load data from an external source (e.g., file, environment, API), use a lookup plugin instead.
- If your logic requires access to inventory, facts, or host-level information that is not passed as a parameter.
Schema 🗺️
How csp_filters.py assembles one application's Content-Security-Policy. Scope is the header build, not the other filters in this directory.
flowchart TD
decl["meta/csp.yml<br/>whitelist, flags, hashes"]
svc["meta/services.yml<br/>services.logout.enabled"]
flags["csp_filters.py:136<br/>get_csp_flags"]
grant["csp_filters.py:354<br/>logout grant"]
wl["csp_filters.py:123<br/>get_csp_whitelist"]
inj["sys-front-inj-dashboard,<br/>-javascript, -matomo, -logout<br/>add_csp_hash"]
gate["csp_filters.py:365<br/>hash gate"]
build["csp_filters.py:203<br/>build_csp_header"]
header["set $csp<br/>nginx vhost"]
decl -->|"1. flags read by"| flags
flags -->|"2. tokens"| build
svc -->|"3. read by"| grant
grant -->|"4. adds 'unsafe-inline'<br/>to script-src-elem and -attr"| build
decl -->|"5. whitelist read by"| wl
wl -->|"6. tokens"| build
inj -->|"7. snippets"| gate
gate -->|"8. hashes, only when<br/>'unsafe-inline' is absent"| build
build -->|"9. joined string"| header
grant -.->|"TRIP-WIRE: the token it adds<br/>closes the gate below, so every<br/>registered hash is discarded"| gate
svc -.->|"TRIP-WIRE: the flag derives from<br/>group_names, so the script policy<br/>follows the round, not the app"| grant
grant -.->|"TRIP-WIRE: absent from the<br/>smart-defaults docstring, which<br/>names logout only for frame-ancestors"| build
Styles carry 'unsafe-inline' by default; scripts do not. The logout grant is the only path that puts it into a script directive.