mirror of
https://github.com/bunny-lab-io/Borealis.git
synced 2025-12-16 10:45:48 -07:00
Simplified & Reworked Enrollment Code System to be Site-Specific
This commit is contained in:
@@ -94,7 +94,8 @@ CREATE TABLE IF NOT EXISTS enrollment_install_codes (
|
||||
used_by_guid TEXT,
|
||||
max_uses INTEGER,
|
||||
use_count INTEGER,
|
||||
last_used_at TEXT
|
||||
last_used_at TEXT,
|
||||
site_id INTEGER
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS enrollment_install_codes_persistent (
|
||||
id TEXT PRIMARY KEY,
|
||||
@@ -109,7 +110,8 @@ CREATE TABLE IF NOT EXISTS enrollment_install_codes_persistent (
|
||||
last_used_at TEXT,
|
||||
is_active INTEGER NOT NULL DEFAULT 1,
|
||||
archived_at TEXT,
|
||||
consumed_at TEXT
|
||||
consumed_at TEXT,
|
||||
site_id INTEGER
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS device_approvals (
|
||||
id TEXT PRIMARY KEY,
|
||||
@@ -118,6 +120,7 @@ CREATE TABLE IF NOT EXISTS device_approvals (
|
||||
hostname_claimed TEXT,
|
||||
ssl_key_fingerprint_claimed TEXT,
|
||||
enrollment_code_id TEXT,
|
||||
site_id INTEGER,
|
||||
status TEXT,
|
||||
client_nonce TEXT,
|
||||
server_nonce TEXT,
|
||||
@@ -145,7 +148,8 @@ CREATE TABLE IF NOT EXISTS sites (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT,
|
||||
description TEXT,
|
||||
created_at INTEGER
|
||||
created_at INTEGER,
|
||||
enrollment_code_id TEXT
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS device_sites (
|
||||
device_hostname TEXT PRIMARY KEY,
|
||||
@@ -270,9 +274,51 @@ def engine_harness(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> Iterator[
|
||||
"2025-10-01T00:00:00Z",
|
||||
),
|
||||
)
|
||||
site_code_id = "SITE-CODE-0001"
|
||||
site_code_value = "SITE-MAIN-CODE"
|
||||
site_code_created = "2025-01-01T00:00:00Z"
|
||||
site_code_expires = "2030-01-01T00:00:00Z"
|
||||
cur.execute(
|
||||
"INSERT INTO sites (id, name, description, created_at) VALUES (?, ?, ?, ?)",
|
||||
(1, "Main Lab", "Primary integration site", 1_700_000_000),
|
||||
"""
|
||||
INSERT INTO enrollment_install_codes (
|
||||
id,
|
||||
code,
|
||||
expires_at,
|
||||
created_by_user_id,
|
||||
used_at,
|
||||
used_by_guid,
|
||||
max_uses,
|
||||
use_count,
|
||||
last_used_at,
|
||||
site_id
|
||||
) VALUES (?, ?, ?, ?, NULL, NULL, 0, 0, NULL, ?)
|
||||
""",
|
||||
(site_code_id, site_code_value, site_code_expires, "admin", 1),
|
||||
)
|
||||
cur.execute(
|
||||
"""
|
||||
INSERT INTO enrollment_install_codes_persistent (
|
||||
id,
|
||||
code,
|
||||
created_at,
|
||||
expires_at,
|
||||
created_by_user_id,
|
||||
used_at,
|
||||
used_by_guid,
|
||||
max_uses,
|
||||
last_known_use_count,
|
||||
last_used_at,
|
||||
is_active,
|
||||
archived_at,
|
||||
consumed_at,
|
||||
site_id
|
||||
) VALUES (?, ?, ?, ?, ?, NULL, NULL, 0, 0, NULL, 1, NULL, NULL, ?)
|
||||
""",
|
||||
(site_code_id, site_code_value, site_code_created, site_code_expires, "admin", 1),
|
||||
)
|
||||
cur.execute(
|
||||
"INSERT INTO sites (id, name, description, created_at, enrollment_code_id) VALUES (?, ?, ?, ?, ?)",
|
||||
(1, "Main Lab", "Primary integration site", 1_700_000_000, site_code_id),
|
||||
)
|
||||
cur.execute(
|
||||
"INSERT INTO device_sites (device_hostname, site_id, assigned_at) VALUES (?, ?, ?)",
|
||||
@@ -294,6 +340,7 @@ def engine_harness(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> Iterator[
|
||||
hostname_claimed,
|
||||
ssl_key_fingerprint_claimed,
|
||||
enrollment_code_id,
|
||||
site_id,
|
||||
status,
|
||||
client_nonce,
|
||||
server_nonce,
|
||||
@@ -302,7 +349,7 @@ def engine_harness(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> Iterator[
|
||||
updated_at,
|
||||
approved_by_user_id
|
||||
)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
"approval-1",
|
||||
@@ -310,7 +357,8 @@ def engine_harness(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> Iterator[
|
||||
None,
|
||||
"pending-device",
|
||||
"aa:bb:cc:dd",
|
||||
None,
|
||||
site_code_id,
|
||||
1,
|
||||
"pending",
|
||||
"client-nonce",
|
||||
"server-nonce",
|
||||
|
||||
Reference in New Issue
Block a user