Files
computer-playbook/roles/sys-front-inj-javascript
kevinveenbirkenbachandClaude Opus 4.7 4bd23d5f1b chore(roles): mark non-invokable roles with nocheck:required-by-coverage (Bundle D)
Adds `# nocheck: required-by-coverage — TODO: declare proper required_by`
markers to meta/services.yml of 74 non-invokable system roles (dev-*, pkgmgr*,
sys-aur*, sys-front-inj-*, sys-front-tls-*, sys-svc-{cdn,certbot,certs,
cln-domains,dns,journalctl,mail*,proxy,rdbms,ssh,sshd}, sys-timer*, sys-stk-*,
user-*, …).

This is the passthrough layer that lets the upcoming `required_by` lint
(Bundle C) hard-fail any *new* non-invokable role without an explicit coverage
declaration, while existing roles get a documented TODO grace period instead
of an immediate CI break.

No runtime effect — comments only.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 04:23:45 +02:00
..

Global JavaScript Injector for NGINX

Description

This Ansible role injects a custom JavaScript snippet into all HTML responses served by NGINX. It leverages NGINX’s sub_filter to seamlessly insert your application-specific script just before the closing </head> tag, ensuring that your code runs on every page load, which is useful for global feature flags, analytics, or UI enhancements.

Overview

This role injects a custom JavaScript snippet into Nginx-served HTML responses via sub_filter.

Features

  • One-line Script Injection
    Collapses your JavaScript into a single line and injects it via sub_filter for minimal footprint and maximal compatibility.

  • Easy CSP Integration
    Automatically computes and appends a CSP hash entry for your script, so you can lock down Content Security Policy without lifting a finger.

  • Conditional Activation
    Activates only when you enable the javascript feature for a given application, keeping your server blocks clean and performant.

  • Debug Mode
    Supports an MODE_DEBUG flag that appends optional console.log statements for easier troubleshooting in staging or development.

Credits

Developed and maintained by Kevin Veen-Birkenbach. Learn more at veen.world. Part of the Infinito.Nexus Project. Licensed under the Infinito.Nexus Community License (Non-Commercial).