Establish the self-contained tools convention and prove it on a core app: - discovery now reads containers/<app>/tools/<app>.tools.json (the tools/ subfolder); tool functions live at containers/<app>/tools/*.sh, auto-sourced by the container scan (depth 3) — no scripts/app/ entry, no array regen. - adguard migrated: its 2 Tools-tab actions (reset_password, apply_dns_updater) moved to containers/adguard/tools/ + tools/adguard.tools.json, and dropped from the central webui_tools.sh heredoc. adguard_auth.sh stays in scripts/app/ — it's a logic helper, NOT a tool (the key distinction: only DECLARED tools move). Central + per-app styles coexist (pihole etc. still central), so the remaining apps can migrate one at a time with nothing breaking. Verified: heredoc valid sans adguard, per-app merge re-adds adguard's 2 tools, scripts array dropped the moved fns. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Signed-off-by: librelad <librelad@digitalangels.vip>
21 lines
841 B
JSON
21 lines
841 B
JSON
{
|
|
"tools": [
|
|
{
|
|
"id": "reset_password",
|
|
"label": "Reset Admin Password",
|
|
"description": "Reset the AdGuard Home admin password. Leave the field blank to generate a random one — the new password is saved to the config so you can see it after.",
|
|
"icon": "🔑",
|
|
"fields": [
|
|
{ "name": "password", "label": "New password (leave blank to generate)", "type": "password", "placeholder": "Leave blank for random" }
|
|
]
|
|
},
|
|
{
|
|
"id": "apply_dns_updater",
|
|
"label": "Apply DNS Updater",
|
|
"description": "Rewrite this server's /etc/resolv.conf to use AdGuard as its DNS resolver right now. Same action that runs automatically when the global DNS Updater requirement is enabled.",
|
|
"icon": "🌐",
|
|
"fields": []
|
|
}
|
|
]
|
|
}
|