import urllib.request import ssl import json import sys sys.stdout.reconfigure(encoding='utf-8') 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" } provider_update = { "redirect_uris": [ {"matching_mode": "strict", "url": "https://semaphore.snarfnet.net/api/auth/oidc/authentik/redirect"}, {"matching_mode": "strict", "url": "https://semaphore.snarfnet.net/api/auth/oidc/authentik/redirect/"}, {"matching_mode": "regex", "url": "https://semaphore\\.snarfnet\\.net/.*"} ] } req = urllib.request.Request( "https://authentik.snarfnet.net/api/v3/providers/oauth2/10/", headers=headers, data=json.dumps(provider_update).encode('utf-8'), method="PATCH" ) try: with urllib.request.urlopen(req, context=ctx, timeout=8) as resp: res = json.loads(resp.read().decode()) print("✓ Authentik Provider 10 updated successfully:", res.get('redirect_uris')) except Exception as e: print("✗ Failed to update Authentik Provider 10:", e)