Version-control the Authentik OIDC blueprint, add full-logout + username regression tests
The Authentik blueprint that provisions the OAuth2 Provider/Application only lived on CT121's filesystem via ad-hoc scp/pct push -- deploy/authentik/ is now the source of truth, with redeploy steps in docs/oidc-setup.md. Also documents two bugs found and fixed while implementing issue #19: the first RP-Initiated Logout attempt only ended the app-scoped session, and the provider had no property_mappings so the ID token's username claim was missing (fell back to a raw sub hash that looked like a leaked session token). Both are covered by new Playwright regression tests. The deep-check Fingerbank test now skips instead of failing when its target device (192.168.1.106) has since been manually labeled known via the dashboard, rather than assuming it stays unlabeled forever.
This commit is contained in:
@@ -44,12 +44,15 @@ test("deep check surfaces a Fingerbank identification with a confidence label",
|
||||
await expect(page.locator(".device-table tbody tr").first()).toBeVisible({ timeout: 15_000 });
|
||||
|
||||
// The Nintendo device (192.168.1.106) reliably gets a Fingerbank match, if
|
||||
// it's still on the network -- skip rather than fail if it's gone, since
|
||||
// this specific IP isn't something the test suite controls.
|
||||
// it's still on the network and still unknown -- skip rather than fail if
|
||||
// it's gone, or if it's since been manually labeled via the dashboard (its
|
||||
// "known" state isn't something the test suite controls either).
|
||||
const row = page.locator('tr[data-ip="192.168.1.106"]');
|
||||
const deepCheckButton = row.getByRole("button", { name: /deep check/i });
|
||||
test.skip((await row.count()) === 0, "192.168.1.106 not currently on the network");
|
||||
test.skip((await deepCheckButton.count()) === 0, "192.168.1.106 has since been labeled known");
|
||||
|
||||
await row.getByRole("button", { name: /deep check/i }).click();
|
||||
await deepCheckButton.click();
|
||||
await expect(page.locator(".deep-check-row").first()).toBeVisible({ timeout: 20_000 });
|
||||
|
||||
const resultText = await page.locator(".deep-check-row").first().textContent();
|
||||
|
||||
Reference in New Issue
Block a user