Files
aufmass-web/create_setup_keys.py
T

33 lines
1.4 KiB
Python

#!/usr/bin/env python3
import uuid, hashlib, base64, subprocess
groups = {
"DD": "da915d4f72fa42f68509",
"KPT": "adba740446b0413b89ab",
"Personal": "cc9168e7b8d7437499c2",
}
acct = "d898edfkclh0009hc94g"
# Delete old proxmox-lxc setup key
subprocess.run(["docker", "exec", "-i", "netbird-server", "sqlite3", "/var/lib/netbird/store.db",
"DELETE FROM setup_keys WHERE name = 'proxmox-lxc';"], check=True)
for gname, gid in groups.items():
plain = str(uuid.uuid4()).upper()
h = hashlib.sha256(plain.encode()).digest()
encoded = base64.b64encode(h).decode()
key_id = uuid.uuid4().hex[:20]
sql = f"""INSERT INTO setup_keys (id, account_id, key, key_secret, name, type, created_at, expires_at, updated_at, revoked, used_times, usage_limit, ephemeral, auto_groups)
VALUES ('{key_id}', '{acct}', '{encoded}', '{plain[:4]}****', '{gname}-setup', 'reusable', datetime('now'), datetime('now', '+10 years'), datetime('now'), 0, 0, 0, 0, '["{gid}"]');"""
subprocess.run(["docker", "exec", "-i", "netbird-server", "sqlite3", "/var/lib/netbird/store.db", sql], check=True)
print(f"=== {gname} ===")
print(f"Setup-Key: {plain}")
print()
subprocess.run(["docker", "exec", "-i", "netbird-server", "sqlite3", "-line", "/var/lib/netbird/store.db",
"SELECT name, key, auto_groups, used_times FROM setup_keys WHERE name LIKE '%-setup';"], check=True)