@enbox/dwn-server 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/esm/src/admin/admin-api.d.ts +5 -1
  2. package/dist/esm/src/admin/admin-api.d.ts.map +1 -1
  3. package/dist/esm/src/admin/admin-api.js +327 -7
  4. package/dist/esm/src/admin/admin-api.js.map +1 -1
  5. package/dist/esm/src/admin/admin-auth.d.ts +21 -3
  6. package/dist/esm/src/admin/admin-auth.d.ts.map +1 -1
  7. package/dist/esm/src/admin/admin-auth.js +17 -9
  8. package/dist/esm/src/admin/admin-auth.js.map +1 -1
  9. package/dist/esm/src/admin/admin-passkey-store.d.ts +68 -0
  10. package/dist/esm/src/admin/admin-passkey-store.d.ts.map +1 -0
  11. package/dist/esm/src/admin/admin-passkey-store.js +132 -0
  12. package/dist/esm/src/admin/admin-passkey-store.js.map +1 -0
  13. package/dist/esm/src/admin/admin-session.d.ts +35 -0
  14. package/dist/esm/src/admin/admin-session.d.ts.map +1 -0
  15. package/dist/esm/src/admin/admin-session.js +91 -0
  16. package/dist/esm/src/admin/admin-session.js.map +1 -0
  17. package/dist/esm/src/admin/audit-log.d.ts.map +1 -1
  18. package/dist/esm/src/admin/audit-log.js +5 -43
  19. package/dist/esm/src/admin/audit-log.js.map +1 -1
  20. package/dist/esm/src/admin/index.d.ts +5 -1
  21. package/dist/esm/src/admin/index.d.ts.map +1 -1
  22. package/dist/esm/src/admin/index.js +2 -0
  23. package/dist/esm/src/admin/index.js.map +1 -1
  24. package/dist/esm/src/admin/types.d.ts +22 -0
  25. package/dist/esm/src/admin/types.d.ts.map +1 -1
  26. package/dist/esm/src/admin/webhook-manager.d.ts.map +1 -1
  27. package/dist/esm/src/admin/webhook-manager.js +11 -10
  28. package/dist/esm/src/admin/webhook-manager.js.map +1 -1
  29. package/dist/esm/src/config.d.ts +18 -0
  30. package/dist/esm/src/config.d.ts.map +1 -1
  31. package/dist/esm/src/config.js +18 -0
  32. package/dist/esm/src/config.js.map +1 -1
  33. package/dist/esm/src/dwn-server.d.ts.map +1 -1
  34. package/dist/esm/src/dwn-server.js +46 -11
  35. package/dist/esm/src/dwn-server.js.map +1 -1
  36. package/dist/esm/src/http-api.d.ts +4 -0
  37. package/dist/esm/src/http-api.d.ts.map +1 -1
  38. package/dist/esm/src/http-api.js +14 -4
  39. package/dist/esm/src/http-api.js.map +1 -1
  40. package/dist/esm/src/migrations/001-initial-server-schema.d.ts +21 -0
  41. package/dist/esm/src/migrations/001-initial-server-schema.d.ts.map +1 -0
  42. package/dist/esm/src/migrations/001-initial-server-schema.js +97 -0
  43. package/dist/esm/src/migrations/001-initial-server-schema.js.map +1 -0
  44. package/dist/esm/src/migrations/index.d.ts +13 -0
  45. package/dist/esm/src/migrations/index.d.ts.map +1 -0
  46. package/dist/esm/src/migrations/index.js +5 -0
  47. package/dist/esm/src/migrations/index.js.map +1 -0
  48. package/dist/esm/src/registration/registration-store.d.ts +4 -0
  49. package/dist/esm/src/registration/registration-store.d.ts.map +1 -1
  50. package/dist/esm/src/registration/registration-store.js +11 -34
  51. package/dist/esm/src/registration/registration-store.js.map +1 -1
  52. package/dist/esm/src/server-migration-runner.d.ts +23 -0
  53. package/dist/esm/src/server-migration-runner.d.ts.map +1 -0
  54. package/dist/esm/src/server-migration-runner.js +57 -0
  55. package/dist/esm/src/server-migration-runner.js.map +1 -0
  56. package/dist/esm/src/storage.d.ts +15 -0
  57. package/dist/esm/src/storage.d.ts.map +1 -1
  58. package/dist/esm/src/storage.js +135 -17
  59. package/dist/esm/src/storage.js.map +1 -1
  60. package/dist/esm/src/web5-connect/sql-ttl-cache.d.ts +11 -1
  61. package/dist/esm/src/web5-connect/sql-ttl-cache.d.ts.map +1 -1
  62. package/dist/esm/src/web5-connect/sql-ttl-cache.js +19 -20
  63. package/dist/esm/src/web5-connect/sql-ttl-cache.js.map +1 -1
  64. package/dist/esm/src/web5-connect/web5-connect-server.d.ts +10 -3
  65. package/dist/esm/src/web5-connect/web5-connect-server.d.ts.map +1 -1
  66. package/dist/esm/src/web5-connect/web5-connect-server.js +10 -4
  67. package/dist/esm/src/web5-connect/web5-connect-server.js.map +1 -1
  68. package/package.json +3 -2
  69. package/src/admin/admin-api.ts +403 -10
  70. package/src/admin/admin-auth.ts +38 -9
  71. package/src/admin/admin-passkey-store.ts +190 -0
  72. package/src/admin/admin-session.ts +116 -0
  73. package/src/admin/audit-log.ts +7 -44
  74. package/src/admin/index.ts +5 -0
  75. package/src/admin/types.ts +28 -0
  76. package/src/admin/webhook-manager.ts +12 -10
  77. package/src/config.ts +21 -0
  78. package/src/dwn-server.ts +49 -11
  79. package/src/http-api.ts +20 -5
  80. package/src/migrations/001-initial-server-schema.ts +114 -0
  81. package/src/migrations/index.ts +18 -0
  82. package/src/registration/registration-store.ts +13 -36
  83. package/src/server-migration-runner.ts +74 -0
  84. package/src/storage.ts +145 -17
  85. package/src/web5-connect/sql-ttl-cache.ts +21 -22
  86. package/src/web5-connect/web5-connect-server.ts +14 -5
@@ -2,29 +2,37 @@ import { timingSafeEqual } from 'crypto';
2
2
  /**
3
3
  * Validates the admin bearer token from the `Authorization` header.
4
4
  *
5
- * @returns `null` if authentication succeeds, or a `Response` with the appropriate
6
- * error status (404 if admin is disabled, 401 if credentials are missing/invalid).
5
+ * Supports two authentication methods:
6
+ * 1. **Static bearer token** the original `DWN_ADMIN_TOKEN`
7
+ * 2. **Session token** — issued after a successful WebAuthn passkey login
8
+ *
9
+ * @returns An {@link AdminAuthResult}. When `error` is `null`, auth passed.
7
10
  */
8
- export function validateAdminAuth(req, config) {
11
+ export function validateAdminAuth(req, config, sessionManager) {
9
12
  const expectedToken = config.adminToken;
10
13
  // If no admin token is configured, the admin API is disabled.
11
14
  // Return 404 to avoid revealing the endpoint exists.
12
15
  if (!expectedToken) {
13
- return new Response('Not Found', { status: 404 });
16
+ return { error: new Response('Not Found', { status: 404 }) };
14
17
  }
15
18
  const authHeader = req.headers.get('authorization');
16
19
  if (!authHeader) {
17
- return new Response('Unauthorized', { status: 401 });
20
+ return { error: new Response('Unauthorized', { status: 401 }) };
18
21
  }
19
22
  // Expect "Bearer <token>" format.
20
23
  if (!authHeader.startsWith('Bearer ')) {
21
- return new Response('Unauthorized', { status: 401 });
24
+ return { error: new Response('Unauthorized', { status: 401 }) };
22
25
  }
23
26
  const suppliedToken = authHeader.slice('Bearer '.length);
24
- if (!constantTimeEquals(expectedToken, suppliedToken)) {
25
- return new Response('Unauthorized', { status: 401 });
27
+ // Try static token first.
28
+ if (constantTimeEquals(expectedToken, suppliedToken)) {
29
+ return { error: null, authMethod: 'token' };
30
+ }
31
+ // Try session token if a session manager is available.
32
+ if (sessionManager && sessionManager.validate(suppliedToken)) {
33
+ return { error: null, authMethod: 'session' };
26
34
  }
27
- return null; // auth passed
35
+ return { error: new Response('Unauthorized', { status: 401 }) };
28
36
  }
29
37
  /**
30
38
  * Compares two strings in constant time to prevent timing attacks.
@@ -1 +1 @@
1
- {"version":3,"file":"admin-auth.js","sourceRoot":"","sources":["../../../../src/admin/admin-auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY,EAAE,MAAuB;IACrE,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;IAExC,8DAA8D;IAC9D,qDAAqD;IACrD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEzD,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,cAAc;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,QAAgB,EAAE,QAAgB;IAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEnD,+EAA+E;IAC/E,sDAAsD;IACtD,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QAC9C,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"admin-auth.js","sourceRoot":"","sources":["../../../../src/admin/admin-auth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAiBzC;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAY,EACZ,MAAuB,EACvB,cAAoC;IAEpC,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;IAExC,8DAA8D;IAC9D,qDAAqD;IACrD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEzD,0BAA0B;IAC1B,IAAI,kBAAkB,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;IAED,uDAAuD;IACvD,IAAI,cAAc,IAAI,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAChD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,QAAgB,EAAE,QAAgB;IAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEnD,+EAA+E;IAC/E,sDAAsD;IACtD,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QAC9C,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,68 @@
1
+ import type { Dialect } from '@enbox/dwn-sql-store';
2
+ /**
3
+ * A registered WebAuthn credential (passkey) for admin access.
4
+ */
5
+ export type AdminPasskeyRecord = {
6
+ /** Base64url-encoded credential ID. */
7
+ id: string;
8
+ /** Human-readable name for the passkey (e.g. "MacBook Touch ID"). */
9
+ name: string;
10
+ /** Base64url-encoded COSE public key. */
11
+ publicKey: string;
12
+ /** Monotonically increasing counter for replay protection. */
13
+ counter: number;
14
+ /** WebAuthn transports the credential supports (JSON-encoded string array). */
15
+ transports: string;
16
+ /** ISO-8601 timestamp when the passkey was registered. */
17
+ createdAt: string;
18
+ /** ISO-8601 timestamp of the most recent successful authentication. */
19
+ lastUsedAt: string | null;
20
+ };
21
+ /**
22
+ * SQL-backed credential store for WebAuthn passkeys used by the admin panel.
23
+ *
24
+ * Follows the same Kysely + Dialect pattern as {@link AuditLog} and
25
+ * {@link WebhookManager}. The `adminPasskeys` table is created automatically
26
+ * on first use.
27
+ *
28
+ * Future: migrate to DID/DWN-based auth (see https://github.com/enboxorg/enbox/issues/546).
29
+ */
30
+ export declare class AdminPasskeyStore {
31
+ #private;
32
+ private constructor();
33
+ /**
34
+ * Creates and initializes an `AdminPasskeyStore` instance.
35
+ * Creates the `adminPasskeys` table if it does not already exist.
36
+ */
37
+ static create(dialect: Dialect): Promise<AdminPasskeyStore>;
38
+ /**
39
+ * Stores a new passkey credential.
40
+ */
41
+ save(record: AdminPasskeyRecord): Promise<void>;
42
+ /**
43
+ * Retrieves a passkey by its credential ID.
44
+ */
45
+ getById(id: string): Promise<AdminPasskeyRecord | undefined>;
46
+ /**
47
+ * Returns all registered passkeys, ordered by creation date (newest first).
48
+ */
49
+ list(): Promise<AdminPasskeyRecord[]>;
50
+ /**
51
+ * Returns the count of registered passkeys.
52
+ */
53
+ count(): Promise<number>;
54
+ /**
55
+ * Updates the counter and last-used timestamp after a successful authentication.
56
+ */
57
+ updateCounter(id: string, counter: number): Promise<void>;
58
+ /**
59
+ * Deletes a passkey by its credential ID.
60
+ * @returns `true` if the passkey was found and deleted.
61
+ */
62
+ delete(id: string): Promise<boolean>;
63
+ /**
64
+ * Closes the underlying database connection.
65
+ */
66
+ close(): Promise<void>;
67
+ }
68
+ //# sourceMappingURL=admin-passkey-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-passkey-store.d.ts","sourceRoot":"","sources":["../../../../src/admin/admin-passkey-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,uCAAuC;IACvC,EAAE,EAAG,MAAM,CAAC;IACZ,qEAAqE;IACrE,IAAI,EAAG,MAAM,CAAC;IACd,yCAAyC;IACzC,SAAS,EAAG,MAAM,CAAC;IACnB,8DAA8D;IAC9D,OAAO,EAAG,MAAM,CAAC;IACjB,+EAA+E;IAC/E,UAAU,EAAG,MAAM,CAAC;IACpB,0DAA0D;IAC1D,SAAS,EAAG,MAAM,CAAC;IACnB,uEAAuE;IACvE,UAAU,EAAG,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;;IAK5B,OAAO;IAIP;;;OAGG;WACiB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoBxE;;OAEG;IACU,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5D;;OAEG;IACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAczE;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAUlD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IASrC;;OAEG;IACU,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtE;;;OAGG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASjD;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAepC"}
@@ -0,0 +1,132 @@
1
+ import { Kysely, sql } from 'kysely';
2
+ /**
3
+ * SQL-backed credential store for WebAuthn passkeys used by the admin panel.
4
+ *
5
+ * Follows the same Kysely + Dialect pattern as {@link AuditLog} and
6
+ * {@link WebhookManager}. The `adminPasskeys` table is created automatically
7
+ * on first use.
8
+ *
9
+ * Future: migrate to DID/DWN-based auth (see https://github.com/enboxorg/enbox/issues/546).
10
+ */
11
+ export class AdminPasskeyStore {
12
+ static #tableName = 'adminPasskeys';
13
+ #db;
14
+ constructor(dialect) {
15
+ this.#db = new Kysely({ dialect });
16
+ }
17
+ /**
18
+ * Creates and initializes an `AdminPasskeyStore` instance.
19
+ * Creates the `adminPasskeys` table if it does not already exist.
20
+ */
21
+ static async create(dialect) {
22
+ const store = new AdminPasskeyStore(dialect);
23
+ await store.#initialize();
24
+ return store;
25
+ }
26
+ /**
27
+ * Verifies that the required table exists. Throws a clear error directing
28
+ * the caller to run server migrations first.
29
+ */
30
+ async #initialize() {
31
+ try {
32
+ await sql `SELECT 1 FROM ${sql.table(AdminPasskeyStore.#tableName)} LIMIT 0`.execute(this.#db);
33
+ }
34
+ catch {
35
+ throw new Error(`AdminPasskeyStore: table '${AdminPasskeyStore.#tableName}' does not exist. Run server migrations before starting.`);
36
+ }
37
+ }
38
+ /**
39
+ * Stores a new passkey credential.
40
+ */
41
+ async save(record) {
42
+ await this.#db
43
+ .insertInto(AdminPasskeyStore.#tableName)
44
+ .values({
45
+ id: record.id,
46
+ name: record.name,
47
+ publicKey: record.publicKey,
48
+ counter: record.counter,
49
+ transports: record.transports,
50
+ createdAt: record.createdAt,
51
+ lastUsedAt: record.lastUsedAt ?? null,
52
+ })
53
+ .execute();
54
+ }
55
+ /**
56
+ * Retrieves a passkey by its credential ID.
57
+ */
58
+ async getById(id) {
59
+ const row = await this.#db
60
+ .selectFrom(AdminPasskeyStore.#tableName)
61
+ .selectAll()
62
+ .where('id', '=', id)
63
+ .executeTakeFirst();
64
+ if (!row) {
65
+ return undefined;
66
+ }
67
+ return this.#toRecord(row);
68
+ }
69
+ /**
70
+ * Returns all registered passkeys, ordered by creation date (newest first).
71
+ */
72
+ async list() {
73
+ const rows = await this.#db
74
+ .selectFrom(AdminPasskeyStore.#tableName)
75
+ .selectAll()
76
+ .orderBy('createdAt', 'desc')
77
+ .execute();
78
+ return rows.map((row) => this.#toRecord(row));
79
+ }
80
+ /**
81
+ * Returns the count of registered passkeys.
82
+ */
83
+ async count() {
84
+ const result = await this.#db
85
+ .selectFrom(AdminPasskeyStore.#tableName)
86
+ .select(this.#db.fn.countAll().as('count'))
87
+ .executeTakeFirstOrThrow();
88
+ return Number(result.count);
89
+ }
90
+ /**
91
+ * Updates the counter and last-used timestamp after a successful authentication.
92
+ */
93
+ async updateCounter(id, counter) {
94
+ await this.#db
95
+ .updateTable(AdminPasskeyStore.#tableName)
96
+ .set({
97
+ counter,
98
+ lastUsedAt: new Date().toISOString(),
99
+ })
100
+ .where('id', '=', id)
101
+ .execute();
102
+ }
103
+ /**
104
+ * Deletes a passkey by its credential ID.
105
+ * @returns `true` if the passkey was found and deleted.
106
+ */
107
+ async delete(id) {
108
+ const result = await this.#db
109
+ .deleteFrom(AdminPasskeyStore.#tableName)
110
+ .where('id', '=', id)
111
+ .executeTakeFirstOrThrow();
112
+ return Number(result.numDeletedRows) > 0;
113
+ }
114
+ /**
115
+ * Closes the underlying database connection.
116
+ */
117
+ async close() {
118
+ await this.#db.destroy();
119
+ }
120
+ #toRecord(row) {
121
+ return {
122
+ id: row.id,
123
+ name: row.name,
124
+ publicKey: row.publicKey,
125
+ counter: Number(row.counter),
126
+ transports: row.transports,
127
+ createdAt: row.createdAt,
128
+ lastUsedAt: row.lastUsedAt ?? null,
129
+ };
130
+ }
131
+ }
132
+ //# sourceMappingURL=admin-passkey-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-passkey-store.js","sourceRoot":"","sources":["../../../../src/admin/admin-passkey-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Manages short-lived sessions for admin passkey authentication.
3
+ *
4
+ * Sessions are opaque hex tokens stored in an in-memory `Map`. They are
5
+ * validated in {@link validateAdminAuth} as an alternative to the static
6
+ * bearer token. Expired sessions are lazily pruned on every create/validate
7
+ * call and periodically via a cleanup interval.
8
+ *
9
+ * Future: migrate to DID/DWN-based auth (see https://github.com/enboxorg/enbox/issues/546).
10
+ */
11
+ export declare class AdminSessionManager {
12
+ #private;
13
+ constructor(ttlSeconds?: number);
14
+ /**
15
+ * Creates a new session and returns the opaque token.
16
+ */
17
+ create(): string;
18
+ /**
19
+ * Validates a session token. Returns `true` if the token is valid and not expired.
20
+ */
21
+ validate(token: string): boolean;
22
+ /**
23
+ * Revokes a session token.
24
+ */
25
+ revoke(token: string): void;
26
+ /**
27
+ * Returns the number of active (non-expired) sessions.
28
+ */
29
+ get size(): number;
30
+ /**
31
+ * Stops the periodic cleanup timer.
32
+ */
33
+ destroy(): void;
34
+ }
35
+ //# sourceMappingURL=admin-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-session.d.ts","sourceRoot":"","sources":["../../../../src/admin/admin-session.ts"],"names":[],"mappings":"AAcA;;;;;;;;;GASG;AACH,qBAAa,mBAAmB;;gBAUlB,UAAU,CAAC,EAAE,MAAM;IAK/B;;OAEG;IACI,MAAM,IAAI,MAAM;IAcvB;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAcvC;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACI,OAAO,IAAI,IAAI;CAyBvB"}
@@ -0,0 +1,91 @@
1
+ import { randomBytes } from 'crypto';
2
+ /**
3
+ * Manages short-lived sessions for admin passkey authentication.
4
+ *
5
+ * Sessions are opaque hex tokens stored in an in-memory `Map`. They are
6
+ * validated in {@link validateAdminAuth} as an alternative to the static
7
+ * bearer token. Expired sessions are lazily pruned on every create/validate
8
+ * call and periodically via a cleanup interval.
9
+ *
10
+ * Future: migrate to DID/DWN-based auth (see https://github.com/enboxorg/enbox/issues/546).
11
+ */
12
+ export class AdminSessionManager {
13
+ /** Default session time-to-live: 24 hours (in seconds). */
14
+ static #DEFAULT_TTL_SECONDS = 86400;
15
+ /** Cleanup runs every 10 minutes. */
16
+ static #CLEANUP_INTERVAL_MS = 10 * 60 * 1000;
17
+ #sessions = new Map();
18
+ #ttlMs;
19
+ #cleanupInterval;
20
+ constructor(ttlSeconds) {
21
+ this.#ttlMs = (ttlSeconds ?? AdminSessionManager.#DEFAULT_TTL_SECONDS) * 1000;
22
+ this.#startCleanup();
23
+ }
24
+ /**
25
+ * Creates a new session and returns the opaque token.
26
+ */
27
+ create() {
28
+ this.#prune();
29
+ const token = randomBytes(32).toString('hex');
30
+ const now = Date.now();
31
+ this.#sessions.set(token, {
32
+ token,
33
+ createdAt: now,
34
+ expiresAt: now + this.#ttlMs,
35
+ });
36
+ return token;
37
+ }
38
+ /**
39
+ * Validates a session token. Returns `true` if the token is valid and not expired.
40
+ */
41
+ validate(token) {
42
+ const entry = this.#sessions.get(token);
43
+ if (!entry) {
44
+ return false;
45
+ }
46
+ if (Date.now() >= entry.expiresAt) {
47
+ this.#sessions.delete(token);
48
+ return false;
49
+ }
50
+ return true;
51
+ }
52
+ /**
53
+ * Revokes a session token.
54
+ */
55
+ revoke(token) {
56
+ this.#sessions.delete(token);
57
+ }
58
+ /**
59
+ * Returns the number of active (non-expired) sessions.
60
+ */
61
+ get size() {
62
+ return this.#sessions.size;
63
+ }
64
+ /**
65
+ * Stops the periodic cleanup timer.
66
+ */
67
+ destroy() {
68
+ if (this.#cleanupInterval) {
69
+ clearInterval(this.#cleanupInterval);
70
+ this.#cleanupInterval = undefined;
71
+ }
72
+ this.#sessions.clear();
73
+ }
74
+ /**
75
+ * Removes all expired sessions.
76
+ */
77
+ #prune() {
78
+ const now = Date.now();
79
+ for (const [token, entry] of this.#sessions) {
80
+ if (now >= entry.expiresAt) {
81
+ this.#sessions.delete(token);
82
+ }
83
+ }
84
+ }
85
+ #startCleanup() {
86
+ this.#cleanupInterval = setInterval(() => {
87
+ this.#prune();
88
+ }, AdminSessionManager.#CLEANUP_INTERVAL_MS);
89
+ }
90
+ }
91
+ //# sourceMappingURL=admin-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-session.js","sourceRoot":"","sources":["../../../../src/admin/admin-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAcrC;;;;;;;;;GASG;AACH,MAAM,OAAO,mBAAmB;IAC9B,2DAA2D;IAC3D,MAAM,CAAU,oBAAoB,GAAG,KAAK,CAAC;IAC7C,qCAAqC;IACrC,MAAM,CAAU,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAEtD,SAAS,GAA8B,IAAI,GAAG,EAAE,CAAC;IACjD,MAAM,CAAS;IACf,gBAAgB,CAA6C;IAE7D,YAAY,UAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,CAAC,UAAU,IAAI,mBAAmB,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;QAC9E,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,MAAM;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;YACxB,KAAK;YACL,SAAS,EAAG,GAAG;YACf,SAAS,EAAG,GAAG,GAAG,IAAI,CAAC,MAAM;SAC9B,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,KAAa;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAa;QACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,GAAS,EAAE;YAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;IAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../../../src/admin/audit-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAOpD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,6EAA6E;IAC7E,KAAK,EAAG,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAG,MAAM,CAAC;IAChB,4EAA4E;IAC5E,MAAM,CAAC,EAAG,MAAM,CAAC;IACjB,mDAAmD;IACnD,MAAM,CAAC,EAAG,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG;IACzC,+BAA+B;IAC/B,EAAE,EAAG,MAAM,CAAC;IACZ,sDAAsD;IACtD,SAAS,EAAG,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAG,MAAM,CAAC;IAChB,yDAAyD;IACzD,MAAM,CAAC,EAAG,MAAM,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAG,MAAM,CAAC;IACjB,8CAA8C;IAC9C,KAAK,CAAC,EAAG,MAAM,CAAC;IAChB,6CAA6C;IAC7C,MAAM,CAAC,EAAG,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;GAOG;AACH;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,yCAAyC;IACzC,UAAU,EAAG,MAAM,CAAC;IACpB,uCAAuC;IACvC,OAAO,EAAG,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,QAAQ;;IASnB,OAAO;IAIP;;;;OAIG;WACiB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA+DvG;;OAEG;IACU,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D;;OAEG;IACU,KAAK,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAkDnG;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IASrC;;;;;OAKG;IACU,gBAAgB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgE7E;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAOpC"}
1
+ {"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../../../src/admin/audit-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAOpD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,6EAA6E;IAC7E,KAAK,EAAG,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,EAAG,MAAM,CAAC;IAChB,4EAA4E;IAC5E,MAAM,CAAC,EAAG,MAAM,CAAC;IACjB,mDAAmD;IACnD,MAAM,CAAC,EAAG,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG;IACzC,+BAA+B;IAC/B,EAAE,EAAG,MAAM,CAAC;IACZ,sDAAsD;IACtD,SAAS,EAAG,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAG,MAAM,CAAC;IAChB,yDAAyD;IACzD,MAAM,CAAC,EAAG,MAAM,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAG,MAAM,CAAC;IACjB,8CAA8C;IAC9C,KAAK,CAAC,EAAG,MAAM,CAAC;IAChB,6CAA6C;IAC7C,MAAM,CAAC,EAAG,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;GAOG;AACH;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,yCAAyC;IACzC,UAAU,EAAG,MAAM,CAAC;IACpB,uCAAuC;IACvC,OAAO,EAAG,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,QAAQ;;IASnB,OAAO;IAIP;;;;OAIG;WACiB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA0BvG;;OAEG;IACU,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D;;OAEG;IACU,KAAK,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAkDnG;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IASrC;;;;;OAKG;IACU,gBAAgB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgE7E;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAOpC"}
@@ -1,5 +1,5 @@
1
- import { Kysely } from 'kysely';
2
1
  import log from 'loglevel';
2
+ import { Kysely, sql } from 'kysely';
3
3
  import { escapeLikeWildcards } from '../lib/sql-utils.js';
4
4
  export class AuditLog {
5
5
  static #tableName = 'adminAuditLog';
@@ -26,53 +26,15 @@ export class AuditLog {
26
26
  return auditLog;
27
27
  }
28
28
  /**
29
- * Creates the audit log table and indices if they do not exist.
29
+ * Verifies that the required table exists. Throws a clear error directing
30
+ * the caller to run server migrations first.
30
31
  */
31
32
  async #initialize() {
32
- await this.#db.schema
33
- .createTable(AuditLog.#tableName)
34
- .ifNotExists()
35
- .addColumn('id', 'integer', (col) => col.primaryKey().autoIncrement())
36
- .addColumn('timestamp', 'text', (col) => col.notNull())
37
- .addColumn('actor', 'text', (col) => col.notNull())
38
- .addColumn('action', 'text', (col) => col.notNull())
39
- .addColumn('target', 'text')
40
- .addColumn('detail', 'text')
41
- .execute();
42
- // Indices for common query patterns. Wrapped in try/catch because
43
- // `CREATE INDEX IF NOT EXISTS` syntax varies across dialects.
44
- try {
45
- await this.#db.schema
46
- .createIndex('index_audit_timestamp')
47
- .ifNotExists()
48
- .on(AuditLog.#tableName)
49
- .column('timestamp')
50
- .execute();
51
- }
52
- catch {
53
- // Index already exists.
54
- }
55
- try {
56
- await this.#db.schema
57
- .createIndex('index_audit_target')
58
- .ifNotExists()
59
- .on(AuditLog.#tableName)
60
- .column('target')
61
- .execute();
62
- }
63
- catch {
64
- // Index already exists.
65
- }
66
33
  try {
67
- await this.#db.schema
68
- .createIndex('index_audit_action')
69
- .ifNotExists()
70
- .on(AuditLog.#tableName)
71
- .column('action')
72
- .execute();
34
+ await sql `SELECT 1 FROM ${sql.table(AuditLog.#tableName)} LIMIT 0`.execute(this.#db);
73
35
  }
74
36
  catch {
75
- // Index already exists.
37
+ throw new Error(`AuditLog: table '${AuditLog.#tableName}' does not exist. Run server migrations before starting.`);
76
38
  }
77
39
  }
78
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"audit-log.js","sourceRoot":"","sources":["../../../../src/admin/audit-log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-log.js","sourceRoot":"","sources":["../../../../src/admin/audit-log.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  export { ActivityLog } from './activity-log.js';
2
2
  export { AdminApi } from './admin-api.js';
3
+ export { AdminPasskeyStore } from './admin-passkey-store.js';
4
+ export { AdminSessionManager } from './admin-session.js';
3
5
  export { AdminStore } from './admin-store.js';
4
6
  export { AuditLog } from './audit-log.js';
5
7
  export { validateAdminAuth } from './admin-auth.js';
6
8
  export { WebhookManager } from './webhook-manager.js';
7
- export type { AdminActivityEvent, AdminConnectionSnapshot, AdminHealthCheck, AdminMessageSummary, AdminProtocolSummary, AdminServerStats, AdminSubscriptionSnapshot, AdminTenantDetail, AdminTenantSummary, AdminWebhook, AdminWebhookInput, GlobalStats, HealthCheckResult, PaginatedResponse, RateLimitEntry, RateLimitStatus, RuntimeConfig, RuntimeConfigPatch, TenantExport, TenantListOptions, TenantQuota, TenantQuotaInput, TenantQuotaStatus, TenantStats, } from './types.js';
9
+ export type { AdminActivityEvent, AdminConnectionSnapshot, AdminHealthCheck, AdminMessageSummary, AdminPasskeySummary, AdminProtocolSummary, AdminServerStats, AdminSubscriptionSnapshot, AdminTenantDetail, AdminTenantSummary, AdminWebhook, AdminWebhookInput, GlobalStats, HealthCheckResult, PaginatedResponse, RateLimitEntry, RateLimitStatus, RuntimeConfig, RuntimeConfigPatch, TenantExport, TenantListOptions, TenantQuota, TenantQuotaInput, TenantQuotaStatus, TenantStats, } from './types.js';
10
+ export type { AdminAuthResult } from './admin-auth.js';
11
+ export type { AdminPasskeyRecord } from './admin-passkey-store.js';
8
12
  export type { AuditEvent, AuditEventInput, AuditQueryOptions, AuditRetentionConfig } from './audit-log.js';
9
13
  export type { WebhookPayload } from './webhook-manager.js';
10
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3G,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3G,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export { ActivityLog } from './activity-log.js';
2
2
  export { AdminApi } from './admin-api.js';
3
+ export { AdminPasskeyStore } from './admin-passkey-store.js';
4
+ export { AdminSessionManager } from './admin-session.js';
3
5
  export { AdminStore } from './admin-store.js';
4
6
  export { AuditLog } from './audit-log.js';
5
7
  export { validateAdminAuth } from './admin-auth.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -303,4 +303,26 @@ export type AdminWebhookInput = {
303
303
  events: string[];
304
304
  secret?: string;
305
305
  };
306
+ /**
307
+ * Summary of a registered passkey for the admin API response.
308
+ *
309
+ * Future: migrate to DID/DWN-based auth (see https://github.com/enboxorg/enbox/issues/546).
310
+ */
311
+ export type AdminPasskeySummary = {
312
+ /** Base64url-encoded credential ID. */
313
+ id: string;
314
+ /** Human-readable name (e.g. "MacBook Touch ID"). */
315
+ name: string;
316
+ /** ISO-8601 timestamp when the passkey was registered. */
317
+ createdAt: string;
318
+ /** ISO-8601 timestamp of the most recent successful authentication. */
319
+ lastUsedAt: string | null;
320
+ };
321
+ /**
322
+ * Request body for registering a new passkey.
323
+ */
324
+ export type AdminPasskeyRegisterInput = {
325
+ /** Human-readable name for the passkey. */
326
+ name?: string;
327
+ };
306
328
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/admin/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/admin/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webhook-manager.d.ts","sourceRoot":"","sources":["../../../../src/admin/webhook-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOlE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,0BAA0B;IAC1B,EAAE,EAAG,MAAM,CAAC;IACZ,0BAA0B;IAC1B,SAAS,EAAG,MAAM,CAAC;IACnB,2DAA2D;IAC3D,KAAK,EAAG,MAAM,CAAC;IACf,yCAAyC;IACzC,MAAM,CAAC,EAAG,MAAM,CAAC;IACjB,6BAA6B;IAC7B,IAAI,CAAC,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,cAAc;;IAOzB,OAAO;IAIP;;OAEG;WACiB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAsBrE;;OAEG;IACU,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAsBtE;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAgB5C;;OAEG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAajD;;;OAGG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA0FjF;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
1
+ {"version":3,"file":"webhook-manager.d.ts","sourceRoot":"","sources":["../../../../src/admin/webhook-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOlE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,0BAA0B;IAC1B,EAAE,EAAG,MAAM,CAAC;IACZ,0BAA0B;IAC1B,SAAS,EAAG,MAAM,CAAC;IACnB,2DAA2D;IAC3D,KAAK,EAAG,MAAM,CAAC;IACf,yCAAyC;IACzC,MAAM,CAAC,EAAG,MAAM,CAAC;IACjB,6BAA6B;IAC7B,IAAI,CAAC,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,cAAc;;IAOzB,OAAO;IAIP;;OAEG;WACiB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAwBrE;;OAEG;IACU,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAsBtE;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAgB5C;;OAEG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAajD;;;OAGG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA0FjF;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}