feat: add cluster management and audit utility scripts
This commit is contained in:
49
scripts/update_pihole_provider.py
Normal file
49
scripts/update_pihole_provider.py
Normal file
@@ -0,0 +1,49 @@
|
||||
import urllib.request
|
||||
import ssl
|
||||
import json
|
||||
|
||||
ctx = ssl.create_default_context()
|
||||
ctx.check_hostname = False
|
||||
ctx.verify_mode = ssl.CERT_NONE
|
||||
|
||||
token = "SnarfNetPermanentAutomationToken2026"
|
||||
headers = {
|
||||
"Authorization": f"Bearer {token}",
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
|
||||
# Fetch provider 12
|
||||
req = urllib.request.Request("https://authentik.snarfnet.net/api/v3/providers/proxy/12/", headers=headers)
|
||||
with urllib.request.urlopen(req, context=ctx, timeout=8) as resp:
|
||||
data = json.loads(resp.read().decode('utf-8'))
|
||||
print("Current Provider 12 external_host:", data.get('external_host'))
|
||||
print("Current redirect URIs:", data.get('redirect_uris'))
|
||||
|
||||
# Update redirect URIs
|
||||
redirect_uris = [
|
||||
{"url": "https://pihole.snarfnet.net/outpost.goauthentik.io/callback?X-authentik-auth-callback=true", "matching_mode": "strict"},
|
||||
{"url": "https://pihole.snarfnet.net?X-authentik-auth-callback=true", "matching_mode": "strict"},
|
||||
{"url": "https://pihole1.snarfnet.net/outpost.goauthentik.io/callback?X-authentik-auth-callback=true", "matching_mode": "strict"},
|
||||
{"url": "https://pihole1.snarfnet.net?X-authentik-auth-callback=true", "matching_mode": "strict"},
|
||||
{"url": "https://pihole2.snarfnet.net/outpost.goauthentik.io/callback?X-authentik-auth-callback=true", "matching_mode": "strict"},
|
||||
{"url": "https://pihole2.snarfnet.net?X-authentik-auth-callback=true", "matching_mode": "strict"},
|
||||
{"url": "https://pihole.*\\.snarfnet\\.net.*", "matching_mode": "regex"}
|
||||
]
|
||||
|
||||
patch_payload = {
|
||||
"redirect_uris": redirect_uris
|
||||
}
|
||||
|
||||
req_patch = urllib.request.Request(
|
||||
"https://authentik.snarfnet.net/api/v3/providers/proxy/12/",
|
||||
headers=headers,
|
||||
data=json.dumps(patch_payload).encode('utf-8'),
|
||||
method="PATCH"
|
||||
)
|
||||
|
||||
try:
|
||||
with urllib.request.urlopen(req_patch, context=ctx, timeout=8) as resp:
|
||||
updated = json.loads(resp.read().decode('utf-8'))
|
||||
print("Updated Provider 12 successfully!")
|
||||
except urllib.error.HTTPError as e:
|
||||
print("PATCH error:", e.code, e.read().decode('utf-8'))
|
||||
Reference in New Issue
Block a user