mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-11 21:26:44 +00:00
New web-svc-mirror role: an nginx vhost that proxies and caches exactly the external asset hosts aggregated from all deployed applications' CSP whitelists (external_asset_origins filter) under first-party paths (/<origin-host>/...), refusing every other upstream. svc-net-tor consumes the service, so any tor deployment automatically serves the mirror on its onion. For apps with services.tor.enabled the shared body filter rewrites external asset URLs in HTML to the onion mirror (onion sessions only; clearnet untouched) and the CSP builder allows the mirror origin in the asset directives. The dashboard's keycloak-js vendoring is reverted: onion sessions now load the adapter through the mirror, clearnet loads jsdelivr directly as before. Verified: variant=0 deploy green (failed=0), dashboard 14/14 over onion with keycloak-js served through the mirror, mirror spec green, health check accepts the 404 vhost root. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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 | get_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.