Implement RFID tag dump PWA with REST API, auth, and CI (#1)

Add Next.js app with SQLite/Drizzle storage for sites and LF/HF tag
dumps, multi-user Auth.js (credentials + optional OIDC), personal API
tokens in Settings, versioned /api/v1 for UI and future CLI use,
MCT/Proxmark/JSON import-export, PWA offline shell, Vitest tests, and
GitHub Actions CI.

Co-authored-by: Cursor Agent <[email protected]>
This commit is contained in:
Nick Trochalakis
2026-08-23 15:24:12 -07:00
committed by GitHub
co-authored by Cursor Agent
parent 5029945cc2
commit 8500d2f673
65 changed files with 13689 additions and 1 deletions
+17
View File
@@ -0,0 +1,17 @@
import { describe, expect, it } from "vitest";
import { generateApiToken, hashToken, isApiTokenFormat } from "@/lib/auth/tokens";
describe("api tokens", () => {
it("generates rfid_ prefixed tokens", () => {
const { token, tokenHash, prefix } = generateApiToken();
expect(isApiTokenFormat(token)).toBe(true);
expect(tokenHash).toBe(hashToken(token));
expect(prefix).toBe(token.slice(0, 12));
expect(hashToken(token)).not.toBe(token);
});
it("rejects non-tokens", () => {
expect(isApiTokenFormat("Bearer abc")).toBe(false);
expect(isApiTokenFormat("rfid_short")).toBe(false);
});
});