mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
Model change: per-user 'reserved: true|false' becomes 'accounts', a list of host/mailbox/identity account types. Default when absent derives from roles (bot/administrator -> [mailbox, identity], else [identity]) both for role-file users and — via _apply_account_defaults after the inventory merge — for inventory-only users, so users like biber keep their LDAP/Keycloak accounts. Auto-generated role-suffix reservations get accounts: []. New 'forward' field: mailu creates <username>@domain -> forward user's email via the new 04b_manage_alias.yml (create-only; no_log on the loop so user dicts never hit the log). Mailbox creation and password rotation now gate on 'mailbox' in accounts instead of role names; the mailu rbac role is renamed mail-bot -> bot (token gate included). svc-db-openldap drops the provision.reserved flag; OPENLDAP_USERS is always the identity subset. reserved_usernames/non_reserved_users now classify by 'identity' in accounts, keeping the Keycloak deny-list semantics. root/backup pin accounts: [host], administrator [host, mailbox, identity], helpdesk [mailbox]. Co-Authored-By: Claude Fable 5 <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.