@archlast/server 0.1.8 → 0.1.9
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.
- package/README.md +104 -100
- package/dist/admin/auth.d.ts +24 -5
- package/dist/admin/auth.js +49 -25
- package/dist/admin/schema.d.ts +122 -32
- package/dist/admin/schema.js +131 -95
- package/dist/admin/seed.d.ts +1 -1
- package/dist/admin/seed.js +79 -47
- package/dist/auth/api-key-resolver.d.ts +1 -1
- package/dist/auth/api-key-resolver.js +7 -3
- package/dist/auth/archlast-auth-adapter.d.ts +2 -5
- package/dist/auth/archlast-auth-adapter.js +1 -1
- package/dist/auth/better-auth-adapter.d.ts.map +1 -1
- package/dist/auth/better-auth-adapter.js +41 -26
- package/dist/auth/better-auth-adapter.js.map +1 -1
- package/dist/auth/better-auth-admin.d.ts.map +1 -1
- package/dist/auth/better-auth-admin.js +1 -1
- package/dist/auth/better-auth-admin.js.map +1 -1
- package/dist/auth/better-auth-api-key-resolver.js +1 -1
- package/dist/auth/better-auth-api-key-resolver.js.map +1 -1
- package/dist/auth/better-auth-instance.d.ts +249 -301
- package/dist/auth/better-auth-instance.d.ts.map +1 -1
- package/dist/auth/better-auth-instance.js +11 -0
- package/dist/auth/better-auth-instance.js.map +1 -1
- package/dist/auth/better-auth-seed.d.ts +5 -2
- package/dist/auth/better-auth-seed.js +31 -22
- package/dist/auth/better-auth-session-adapter.d.ts.map +1 -1
- package/dist/auth/better-auth-session-adapter.js +14 -10
- package/dist/auth/better-auth-session-adapter.js.map +1 -1
- package/dist/auth/errors.d.ts.map +1 -1
- package/dist/auth/errors.js +11 -11
- package/dist/auth/errors.js.map +1 -1
- package/dist/auth/oauth-proxy.d.ts +5 -2
- package/dist/auth/oauth-proxy.js +23 -27
- package/dist/auth/resolver.d.ts.map +1 -1
- package/dist/auth/resolver.js.map +1 -1
- package/dist/auth/role-helpers.d.ts +1 -1
- package/dist/auth/role-helpers.d.ts.map +1 -1
- package/dist/auth/role-helpers.js.map +1 -1
- package/dist/auth/session-manager.d.ts +2 -5
- package/dist/auth/session-manager.js +16 -6
- package/dist/auth/system/better-auth-schema.d.ts.map +1 -1
- package/dist/auth/system/better-auth-schema.js +6 -23
- package/dist/auth/system/better-auth-schema.js.map +1 -1
- package/dist/cache/circuit-breaker.d.ts +81 -0
- package/dist/cache/circuit-breaker.d.ts.map +1 -0
- package/dist/cache/circuit-breaker.js +170 -0
- package/dist/cache/circuit-breaker.js.map +1 -0
- package/dist/cache/client.d.ts +6 -3
- package/dist/cache/client.d.ts.map +1 -1
- package/dist/cache/client.js +12 -53
- package/dist/cache/client.js.map +1 -1
- package/dist/cache/index.d.ts +2 -0
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +5 -1
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/invalidation-queue.d.ts +63 -0
- package/dist/cache/invalidation-queue.d.ts.map +1 -0
- package/dist/cache/invalidation-queue.js +196 -0
- package/dist/cache/invalidation-queue.js.map +1 -0
- package/dist/cache/layers.d.ts +14 -4
- package/dist/cache/layers.d.ts.map +1 -1
- package/dist/cache/layers.js +66 -72
- package/dist/cache/layers.js.map +1 -1
- package/dist/cache/manager.d.ts.map +1 -1
- package/dist/cache/manager.js +6 -41
- package/dist/cache/manager.js.map +1 -1
- package/dist/cache/protocol.d.ts +4 -39
- package/dist/cache/protocol.d.ts.map +1 -1
- package/dist/cache/protocol.js.map +1 -1
- package/dist/cache/redis-adapter.d.ts +103 -0
- package/dist/cache/redis-adapter.d.ts.map +1 -0
- package/dist/cache/redis-adapter.js +424 -0
- package/dist/cache/redis-adapter.js.map +1 -0
- package/dist/cache/run-sidecar.js +10 -1
- package/dist/cache/run-sidecar.js.map +1 -1
- package/dist/cache/sidecar-server.d.ts +51 -1
- package/dist/cache/sidecar-server.d.ts.map +1 -1
- package/dist/cache/sidecar-server.js +368 -22
- package/dist/cache/sidecar-server.js.map +1 -1
- package/dist/cache/store.d.ts +43 -0
- package/dist/cache/store.d.ts.map +1 -1
- package/dist/cache/store.js +69 -76
- package/dist/cache/store.js.map +1 -1
- package/dist/cache/strategies.d.ts +2 -9
- package/dist/cache/strategies.d.ts.map +1 -1
- package/dist/cache/types.d.ts +130 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +60 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/config/bullmq.d.ts +16 -0
- package/dist/config/bullmq.d.ts.map +1 -0
- package/dist/config/bullmq.js +103 -0
- package/dist/config/bullmq.js.map +1 -0
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +80 -6
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +71 -6
- package/dist/config/schema.js.map +1 -1
- package/dist/config/service.d.ts +54 -4
- package/dist/config/service.d.ts.map +1 -1
- package/dist/config/service.js +56 -2
- package/dist/config/service.js.map +1 -1
- package/dist/controllers/admin/admin-tokens.controller.d.ts +131 -115
- package/dist/controllers/admin/admin-tokens.controller.js +117 -98
- package/dist/controllers/admin/api-keys.controller.d.ts +1 -1
- package/dist/controllers/admin/api-keys.controller.d.ts.map +1 -1
- package/dist/controllers/admin/api-keys.controller.js.map +1 -1
- package/dist/controllers/admin/app-users.controller.d.ts +274 -243
- package/dist/controllers/admin/app-users.controller.js +301 -257
- package/dist/controllers/admin/auth.controller.d.ts +260 -236
- package/dist/controllers/admin/auth.controller.js +197 -174
- package/dist/controllers/admin/backup.controller.d.ts.map +1 -1
- package/dist/controllers/admin/backup.controller.js.map +1 -1
- package/dist/controllers/admin/settings.controller.d.ts +1 -1
- package/dist/controllers/admin/storage-stats.controller.d.ts +63 -0
- package/dist/controllers/admin/storage-stats.controller.d.ts.map +1 -0
- package/dist/controllers/admin/storage-stats.controller.js +33 -0
- package/dist/controllers/admin/storage-stats.controller.js.map +1 -0
- package/dist/controllers/admin/tenants.controller.d.ts.map +1 -1
- package/dist/controllers/admin/tenants.controller.js.map +1 -1
- package/dist/controllers/admin/users.controller.d.ts +1 -1
- package/dist/controllers/admin/users.controller.d.ts.map +1 -1
- package/dist/controllers/admin/users.controller.js.map +1 -1
- package/dist/controllers/auth.controller.d.ts +289 -271
- package/dist/controllers/auth.controller.js +275 -226
- package/dist/controllers/crud-generator.controller.d.ts.map +1 -1
- package/dist/controllers/crud-generator.controller.js +127 -125
- package/dist/controllers/crud-generator.controller.js.map +1 -1
- package/dist/controllers/index.d.ts +1 -1
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js.map +1 -1
- package/dist/controllers/introspection.controller.d.ts +642 -0
- package/dist/controllers/introspection.controller.d.ts.map +1 -1
- package/dist/controllers/introspection.controller.js +611 -0
- package/dist/controllers/introspection.controller.js.map +1 -1
- package/dist/controllers/invite.controller.d.ts +190 -170
- package/dist/controllers/invite.controller.js +183 -164
- package/dist/controllers/mfa.controller.d.ts +205 -183
- package/dist/controllers/mfa.controller.js +131 -111
- package/dist/controllers/otp.controller.d.ts +194 -171
- package/dist/controllers/otp.controller.js +192 -175
- package/dist/controllers/storage.controller.d.ts.map +1 -1
- package/dist/controllers/storage.controller.js.map +1 -1
- package/dist/controllers/system.controller.d.ts +5 -3
- package/dist/controllers/system.controller.d.ts.map +1 -1
- package/dist/controllers/system.controller.js +4 -2
- package/dist/controllers/system.controller.js.map +1 -1
- package/dist/controllers/tenant.controller.d.ts +258 -227
- package/dist/controllers/tenant.controller.js +224 -200
- package/dist/db/cachedclient.d.ts +6 -11
- package/dist/db/cachedclient.d.ts.map +1 -1
- package/dist/db/cachedclient.js +79 -43
- package/dist/db/cachedclient.js.map +1 -1
- package/dist/db/distributed-client.d.ts +79 -24
- package/dist/db/distributed-client.js +23 -24
- package/dist/db/factory.d.ts +3 -8
- package/dist/db/factory.d.ts.map +1 -1
- package/dist/db/factory.js +3 -22
- package/dist/db/factory.js.map +1 -1
- package/dist/db/socket-client.d.ts +7 -0
- package/dist/db/socket-client.d.ts.map +1 -1
- package/dist/db/socket-client.js +140 -11
- package/dist/db/socket-client.js.map +1 -1
- package/dist/deployment/handler.d.ts +10 -2
- package/dist/deployment/handler.d.ts.map +1 -1
- package/dist/deployment/handler.js +70 -15
- package/dist/deployment/handler.js.map +1 -1
- package/dist/deployment/persistence.d.ts.map +1 -1
- package/dist/deployment/persistence.js +6 -1
- package/dist/deployment/persistence.js.map +1 -1
- package/dist/docker/compose.d.ts.map +1 -1
- package/dist/docker/compose.js +76 -0
- package/dist/docker/compose.js.map +1 -1
- package/dist/engine/runner.d.ts.map +1 -1
- package/dist/engine/runner.js +0 -43
- package/dist/engine/runner.js.map +1 -1
- package/dist/functions/built-in/auth-apikey.d.ts.map +1 -1
- package/dist/functions/built-in/auth-apikey.js.map +1 -1
- package/dist/functions/built-in/system-cache.d.ts.map +1 -1
- package/dist/functions/built-in/system-cache.js +6 -31
- package/dist/functions/built-in/system-cache.js.map +1 -1
- package/dist/functions/built-in/system-data.d.ts.map +1 -1
- package/dist/functions/built-in/system-data.js +4 -2
- package/dist/functions/built-in/system-data.js.map +1 -1
- package/dist/functions/definition.d.ts.map +1 -1
- package/dist/functions/definition.js +6 -2
- package/dist/functions/definition.js.map +1 -1
- package/dist/http/routes/metrics.d.ts +42 -0
- package/dist/http/routes/metrics.d.ts.map +1 -0
- package/dist/http/routes/metrics.js +29 -0
- package/dist/http/routes/metrics.js.map +1 -0
- package/dist/http/server.d.ts +1 -0
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +41 -3
- package/dist/http/server.js.map +1 -1
- package/dist/ipc/socket-bridge.d.ts +1 -0
- package/dist/ipc/socket-bridge.d.ts.map +1 -1
- package/dist/ipc/socket-bridge.js +5 -1
- package/dist/ipc/socket-bridge.js.map +1 -1
- package/dist/jobs/bullmq-adapter.d.ts +154 -0
- package/dist/jobs/bullmq-adapter.d.ts.map +1 -0
- package/dist/jobs/bullmq-adapter.js +688 -0
- package/dist/jobs/bullmq-adapter.js.map +1 -0
- package/dist/jobs/bullmq-circuit-breaker.d.ts +133 -0
- package/dist/jobs/bullmq-circuit-breaker.d.ts.map +1 -0
- package/dist/jobs/bullmq-circuit-breaker.js +323 -0
- package/dist/jobs/bullmq-circuit-breaker.js.map +1 -0
- package/dist/jobs/bullmq-dlq-manager.d.ts +155 -0
- package/dist/jobs/bullmq-dlq-manager.d.ts.map +1 -0
- package/dist/jobs/bullmq-dlq-manager.js +325 -0
- package/dist/jobs/bullmq-dlq-manager.js.map +1 -0
- package/dist/jobs/bullmq-metrics.d.ts +104 -0
- package/dist/jobs/bullmq-metrics.d.ts.map +1 -0
- package/dist/jobs/bullmq-metrics.js +323 -0
- package/dist/jobs/bullmq-metrics.js.map +1 -0
- package/dist/jobs/bullmq-priority-service.d.ts +173 -0
- package/dist/jobs/bullmq-priority-service.d.ts.map +1 -0
- package/dist/jobs/bullmq-priority-service.js +390 -0
- package/dist/jobs/bullmq-priority-service.js.map +1 -0
- package/dist/jobs/bullmq-scheduler.d.ts +111 -0
- package/dist/jobs/bullmq-scheduler.d.ts.map +1 -0
- package/dist/jobs/bullmq-scheduler.js +300 -0
- package/dist/jobs/bullmq-scheduler.js.map +1 -0
- package/dist/jobs/bullmq-worker.d.ts +155 -0
- package/dist/jobs/bullmq-worker.d.ts.map +1 -0
- package/dist/jobs/bullmq-worker.js +651 -0
- package/dist/jobs/bullmq-worker.js.map +1 -0
- package/dist/jobs/circuit-breaker.d.ts +120 -0
- package/dist/jobs/circuit-breaker.d.ts.map +1 -0
- package/dist/jobs/circuit-breaker.js +262 -0
- package/dist/jobs/circuit-breaker.js.map +1 -0
- package/dist/jobs/index.d.ts +1 -1
- package/dist/jobs/index.d.ts.map +1 -1
- package/dist/jobs/index.js.map +1 -1
- package/dist/jobs/queue.d.ts +120 -1
- package/dist/jobs/queue.d.ts.map +1 -1
- package/dist/jobs/queue.js +487 -9
- package/dist/jobs/queue.js.map +1 -1
- package/dist/jobs/redis-connection.d.ts +50 -0
- package/dist/jobs/redis-connection.d.ts.map +1 -0
- package/dist/jobs/redis-connection.js +123 -0
- package/dist/jobs/redis-connection.js.map +1 -0
- package/dist/jobs/run-scheduler.js +163 -10
- package/dist/jobs/run-scheduler.js.map +1 -1
- package/dist/jobs/run-worker.js +101 -9
- package/dist/jobs/run-worker.js.map +1 -1
- package/dist/jobs/worker-thread.d.ts +6 -0
- package/dist/jobs/worker-thread.d.ts.map +1 -1
- package/dist/jobs/worker-thread.js +37 -8
- package/dist/jobs/worker-thread.js.map +1 -1
- package/dist/jobs/worker.d.ts +33 -0
- package/dist/jobs/worker.d.ts.map +1 -1
- package/dist/jobs/worker.js +358 -115
- package/dist/jobs/worker.js.map +1 -1
- package/dist/linq/async-enumerable.d.ts.map +1 -1
- package/dist/linq/async-enumerable.js.map +1 -1
- package/dist/linq/enumerable.d.ts.map +1 -1
- package/dist/linq/enumerable.js +10 -10
- package/dist/linq/enumerable.js.map +1 -1
- package/dist/metrics/collector.d.ts +26 -0
- package/dist/metrics/collector.d.ts.map +1 -0
- package/dist/metrics/collector.js +103 -0
- package/dist/metrics/collector.js.map +1 -0
- package/dist/polling/updates.controller.d.ts +57 -0
- package/dist/polling/updates.controller.d.ts.map +1 -0
- package/dist/polling/updates.controller.js +70 -0
- package/dist/polling/updates.controller.js.map +1 -0
- package/dist/repository/db-set.d.ts.map +1 -1
- package/dist/repository/db-set.js +12 -8
- package/dist/repository/db-set.js.map +1 -1
- package/dist/repository/ef-core.d.ts.map +1 -1
- package/dist/repository/ef-core.js +6 -6
- package/dist/repository/ef-core.js.map +1 -1
- package/dist/repository/factory.d.ts +1 -1
- package/dist/repository/factory.d.ts.map +1 -1
- package/dist/repository/factory.js.map +1 -1
- package/dist/repository/interfaces.d.ts.map +1 -1
- package/dist/repository/interfaces.js.map +1 -1
- package/dist/repository/queryable.d.ts.map +1 -1
- package/dist/repository/queryable.js.map +1 -1
- package/dist/rpc/adapter.d.ts.map +1 -1
- package/dist/rpc/adapter.js.map +1 -1
- package/dist/rpc/router.d.ts +2 -2
- package/dist/rpc/router.d.ts.map +1 -1
- package/dist/rpc/router.js +1 -1
- package/dist/rpc/router.js.map +1 -1
- package/dist/schema/relationship-types.d.ts +7 -2
- package/dist/schema/relationship-types.js +1 -1
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/services/admin/app-users.service.d.ts +1 -1
- package/dist/services/admin/app-users.service.js +31 -38
- package/dist/services/admin/auth.service.d.ts +1 -1
- package/dist/services/admin/auth.service.js +11 -5
- package/dist/services/admin/backup/BackupOrchestrator.d.ts.map +1 -1
- package/dist/services/admin/backup/BackupOrchestrator.js +4 -7
- package/dist/services/admin/backup/BackupOrchestrator.js.map +1 -1
- package/dist/services/admin/backup/SqliteGenerator.js +8 -8
- package/dist/services/admin/backup/StorageStreamer.d.ts +3 -3
- package/dist/services/admin/backup/StorageStreamer.d.ts.map +1 -1
- package/dist/services/admin/backup/StorageStreamer.js +16 -55
- package/dist/services/admin/backup/StorageStreamer.js.map +1 -1
- package/dist/services/admin/backup/ZipComposer.d.ts +2 -0
- package/dist/services/admin/backup/ZipComposer.d.ts.map +1 -1
- package/dist/services/admin/backup/ZipComposer.js +23 -0
- package/dist/services/admin/backup/ZipComposer.js.map +1 -1
- package/dist/services/admin/backup.service.d.ts.map +1 -1
- package/dist/services/admin/backup.service.js.map +1 -1
- package/dist/services/admin/data.service.d.ts.map +1 -1
- package/dist/services/admin/data.service.js +287 -286
- package/dist/services/admin/data.service.js.map +1 -1
- package/dist/services/admin/tenants.service.d.ts.map +1 -1
- package/dist/services/admin/tenants.service.js.map +1 -1
- package/dist/services/auth.service.d.ts +2 -3
- package/dist/services/auth.service.js +16 -16
- package/dist/services/invite.service.d.ts +1 -1
- package/dist/services/invite.service.js +17 -15
- package/dist/services/storage.service.d.ts.map +1 -1
- package/dist/services/storage.service.js +35 -4
- package/dist/services/storage.service.js.map +1 -1
- package/dist/services/system.service.d.ts.map +1 -1
- package/dist/services/system.service.js +1 -1
- package/dist/services/system.service.js.map +1 -1
- package/dist/services/tenant.service.d.ts +1 -1
- package/dist/services/tenant.service.js +43 -31
- package/dist/sse/subscriptions.controller.d.ts +57 -0
- package/dist/sse/subscriptions.controller.d.ts.map +1 -0
- package/dist/sse/subscriptions.controller.js +127 -0
- package/dist/sse/subscriptions.controller.js.map +1 -0
- package/dist/startup/bootstrap.d.ts +13 -2
- package/dist/startup/bootstrap.d.ts.map +1 -1
- package/dist/startup/bootstrap.js +85 -13
- package/dist/startup/bootstrap.js.map +1 -1
- package/dist/storage/s3-backend.d.ts.map +1 -1
- package/dist/storage/s3-backend.js +3 -3
- package/dist/storage/s3-backend.js.map +1 -1
- package/dist/websocket/server.d.ts.map +1 -1
- package/dist/websocket/server.js +14 -3
- package/dist/websocket/server.js.map +1 -1
- package/docker/README.md +309 -11
- package/package.json +214 -210
- package/templates/.env.example +115 -55
- package/templates/archlast.config.js +51 -37
- package/templates/docker-compose.prod.yml +32 -15
- package/templates/docker-compose.yml +117 -33
package/dist/admin/schema.d.ts
CHANGED
|
@@ -37,9 +37,15 @@ export declare const adminSchema: {
|
|
|
37
37
|
_id: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
|
|
38
38
|
username: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
|
|
39
39
|
password_hash: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
|
|
40
|
-
name: import("../schema/validators.js").FieldSchema<
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
name: import("../schema/validators.js").FieldSchema<
|
|
41
|
+
import("zod").ZodOptional<import("zod").ZodString>
|
|
42
|
+
>;
|
|
43
|
+
avatar_url: import("../schema/validators.js").FieldSchema<
|
|
44
|
+
import("zod").ZodOptional<import("zod").ZodString>
|
|
45
|
+
>;
|
|
46
|
+
is_super_admin: import("../schema/validators.js").FieldSchema<
|
|
47
|
+
import("zod").ZodDefault<import("zod").ZodBoolean>
|
|
48
|
+
>;
|
|
43
49
|
created_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
|
|
44
50
|
updated_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
|
|
45
51
|
}>;
|
|
@@ -49,28 +55,50 @@ export declare const adminSchema: {
|
|
|
49
55
|
token: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
|
|
50
56
|
expires_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
|
|
51
57
|
created_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
|
|
52
|
-
last_accessed_at: import("../schema/validators.js").FieldSchema<
|
|
53
|
-
|
|
54
|
-
|
|
58
|
+
last_accessed_at: import("../schema/validators.js").FieldSchema<
|
|
59
|
+
import("zod").ZodNumber
|
|
60
|
+
>;
|
|
61
|
+
user_agent: import("../schema/validators.js").FieldSchema<
|
|
62
|
+
import("zod").ZodOptional<import("zod").ZodString>
|
|
63
|
+
>;
|
|
64
|
+
ip_address: import("../schema/validators.js").FieldSchema<
|
|
65
|
+
import("zod").ZodOptional<import("zod").ZodString>
|
|
66
|
+
>;
|
|
55
67
|
}>;
|
|
56
68
|
_api_keys: import("../schema/definition.js").TableDefinition<{
|
|
57
69
|
_id: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
|
|
58
70
|
key: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
|
|
59
71
|
name: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
|
|
60
|
-
created_by_admin_id: import("../schema/validators.js").FieldSchema<
|
|
72
|
+
created_by_admin_id: import("../schema/validators.js").FieldSchema<
|
|
73
|
+
import("zod").ZodString
|
|
74
|
+
>;
|
|
61
75
|
created_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
|
|
62
|
-
last_used_at: import("../schema/validators.js").FieldSchema<
|
|
63
|
-
|
|
76
|
+
last_used_at: import("../schema/validators.js").FieldSchema<
|
|
77
|
+
import("zod").ZodOptional<import("zod").ZodNumber>
|
|
78
|
+
>;
|
|
79
|
+
is_revoked: import("../schema/validators.js").FieldSchema<
|
|
80
|
+
import("zod").ZodDefault<import("zod").ZodBoolean>
|
|
81
|
+
>;
|
|
64
82
|
}>;
|
|
65
83
|
_admin_tokens: import("../schema/definition.js").TableDefinition<{
|
|
66
84
|
_id: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
|
|
67
85
|
token: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
|
|
68
86
|
name: import("../schema/validators.js").FieldSchema<import("zod").ZodString>;
|
|
69
|
-
created_by_admin_id: import("../schema/validators.js").FieldSchema<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
87
|
+
created_by_admin_id: import("../schema/validators.js").FieldSchema<
|
|
88
|
+
import("zod").ZodString
|
|
89
|
+
>;
|
|
90
|
+
scopes: import("../schema/validators.js").FieldSchema<
|
|
91
|
+
import("zod").ZodArray<import("zod").ZodString>
|
|
92
|
+
>;
|
|
93
|
+
expires_at: import("../schema/validators.js").FieldSchema<
|
|
94
|
+
import("zod").ZodOptional<import("zod").ZodNumber>
|
|
95
|
+
>;
|
|
96
|
+
last_used_at: import("../schema/validators.js").FieldSchema<
|
|
97
|
+
import("zod").ZodOptional<import("zod").ZodNumber>
|
|
98
|
+
>;
|
|
99
|
+
is_revoked: import("../schema/validators.js").FieldSchema<
|
|
100
|
+
import("zod").ZodDefault<import("zod").ZodBoolean>
|
|
101
|
+
>;
|
|
74
102
|
created_at: import("../schema/validators.js").FieldSchema<import("zod").ZodNumber>;
|
|
75
103
|
}>;
|
|
76
104
|
};
|
|
@@ -126,32 +154,59 @@ export declare function hasAnyAdminUsers(db: IDatabaseClient): Promise<boolean>;
|
|
|
126
154
|
/**
|
|
127
155
|
* Create the first admin user (setup flow)
|
|
128
156
|
*/
|
|
129
|
-
export declare function createFirstAdminUser(
|
|
157
|
+
export declare function createFirstAdminUser(
|
|
158
|
+
db: IDatabaseClient,
|
|
159
|
+
username: string,
|
|
160
|
+
passwordHash: string,
|
|
161
|
+
name?: string
|
|
162
|
+
): Promise<AdminUser>;
|
|
130
163
|
/**
|
|
131
164
|
* Find admin user by username
|
|
132
165
|
*/
|
|
133
|
-
export declare function findAdminUserByUsername(
|
|
166
|
+
export declare function findAdminUserByUsername(
|
|
167
|
+
db: IDatabaseClient,
|
|
168
|
+
username: string
|
|
169
|
+
): Promise<AdminUser | null>;
|
|
134
170
|
/**
|
|
135
171
|
* Find admin user by email (deprecated, use findAdminUserByUsername)
|
|
136
172
|
* @deprecated Use findAdminUserByUsername instead
|
|
137
173
|
*/
|
|
138
|
-
export declare function findAdminUserByEmail(
|
|
174
|
+
export declare function findAdminUserByEmail(
|
|
175
|
+
db: IDatabaseClient,
|
|
176
|
+
email: string
|
|
177
|
+
): Promise<AdminUser | null>;
|
|
139
178
|
/**
|
|
140
179
|
* Find admin user by ID
|
|
141
180
|
*/
|
|
142
|
-
export declare function findAdminUserById(
|
|
181
|
+
export declare function findAdminUserById(
|
|
182
|
+
db: IDatabaseClient,
|
|
183
|
+
id: string
|
|
184
|
+
): Promise<AdminUser | null>;
|
|
143
185
|
/**
|
|
144
186
|
* Create admin session
|
|
145
187
|
*/
|
|
146
|
-
export declare function createAdminSession(
|
|
188
|
+
export declare function createAdminSession(
|
|
189
|
+
db: IDatabaseClient,
|
|
190
|
+
adminUserId: string,
|
|
191
|
+
token: string,
|
|
192
|
+
expiresInMs: number,
|
|
193
|
+
userAgent: string | null,
|
|
194
|
+
ipAddress: string | null
|
|
195
|
+
): Promise<AdminSession>;
|
|
147
196
|
/**
|
|
148
197
|
* Find session by token
|
|
149
198
|
*/
|
|
150
|
-
export declare function findAdminSessionByToken(
|
|
199
|
+
export declare function findAdminSessionByToken(
|
|
200
|
+
db: IDatabaseClient,
|
|
201
|
+
token: string
|
|
202
|
+
): Promise<AdminSession | null>;
|
|
151
203
|
/**
|
|
152
204
|
* Update session last accessed time
|
|
153
205
|
*/
|
|
154
|
-
export declare function updateSessionLastAccessed(
|
|
206
|
+
export declare function updateSessionLastAccessed(
|
|
207
|
+
db: IDatabaseClient,
|
|
208
|
+
sessionId: string
|
|
209
|
+
): Promise<void>;
|
|
155
210
|
/**
|
|
156
211
|
* Delete session (logout)
|
|
157
212
|
*/
|
|
@@ -159,11 +214,17 @@ export declare function deleteAdminSession(db: IDatabaseClient, token: string):
|
|
|
159
214
|
/**
|
|
160
215
|
* Delete all sessions for a user
|
|
161
216
|
*/
|
|
162
|
-
export declare function deleteAllUserSessions(
|
|
217
|
+
export declare function deleteAllUserSessions(
|
|
218
|
+
db: IDatabaseClient,
|
|
219
|
+
adminUserId: string
|
|
220
|
+
): Promise<number>;
|
|
163
221
|
/**
|
|
164
222
|
* List all sessions for an admin user
|
|
165
223
|
*/
|
|
166
|
-
export declare function listAdminSessions(
|
|
224
|
+
export declare function listAdminSessions(
|
|
225
|
+
db: IDatabaseClient,
|
|
226
|
+
adminUserId: string
|
|
227
|
+
): Promise<AdminSession[]>;
|
|
167
228
|
/**
|
|
168
229
|
* Clean up expired sessions
|
|
169
230
|
*/
|
|
@@ -171,11 +232,18 @@ export declare function cleanupExpiredSessions(db: IDatabaseClient): Promise<num
|
|
|
171
232
|
/**
|
|
172
233
|
* Create admin user (requires existing admin)
|
|
173
234
|
*/
|
|
174
|
-
export declare function createAdminUser(
|
|
235
|
+
export declare function createAdminUser(
|
|
236
|
+
db: IDatabaseClient,
|
|
237
|
+
username: string,
|
|
238
|
+
passwordHash: string,
|
|
239
|
+
isSuperAdmin?: boolean
|
|
240
|
+
): Promise<AdminUser>;
|
|
175
241
|
/**
|
|
176
242
|
* List all admin users
|
|
177
243
|
*/
|
|
178
|
-
export declare function listAdminUsers(
|
|
244
|
+
export declare function listAdminUsers(
|
|
245
|
+
db: IDatabaseClient
|
|
246
|
+
): Promise<Omit<AdminUser, "password_hash">[]>;
|
|
179
247
|
/**
|
|
180
248
|
* Delete admin user
|
|
181
249
|
*/
|
|
@@ -183,11 +251,19 @@ export declare function deleteAdminUser(db: IDatabaseClient, id: string): Promis
|
|
|
183
251
|
/**
|
|
184
252
|
* Update admin user
|
|
185
253
|
*/
|
|
186
|
-
export declare function updateAdminUser(
|
|
254
|
+
export declare function updateAdminUser(
|
|
255
|
+
db: IDatabaseClient,
|
|
256
|
+
id: string,
|
|
257
|
+
data: Partial<Pick<AdminUser, "name" | "avatar_url">>
|
|
258
|
+
): Promise<void>;
|
|
187
259
|
/**
|
|
188
260
|
* Create API key
|
|
189
261
|
*/
|
|
190
|
-
export declare function createApiKey(
|
|
262
|
+
export declare function createApiKey(
|
|
263
|
+
db: IDatabaseClient,
|
|
264
|
+
name: string,
|
|
265
|
+
createdByAdminId: string
|
|
266
|
+
): Promise<ApiKey>;
|
|
191
267
|
/**
|
|
192
268
|
* Find API key by key string
|
|
193
269
|
*/
|
|
@@ -211,15 +287,26 @@ export declare function deleteApiKey(db: IDatabaseClient, id: string): Promise<v
|
|
|
211
287
|
/**
|
|
212
288
|
* Create admin token (sat_ prefix)
|
|
213
289
|
*/
|
|
214
|
-
export declare function createAdminToken(
|
|
290
|
+
export declare function createAdminToken(
|
|
291
|
+
db: IDatabaseClient,
|
|
292
|
+
name: string,
|
|
293
|
+
createdByAdminId: string,
|
|
294
|
+
expiresInDays?: number | null
|
|
295
|
+
): Promise<AdminToken>;
|
|
215
296
|
/**
|
|
216
297
|
* Find admin token by token string
|
|
217
298
|
*/
|
|
218
|
-
export declare function findAdminTokenByToken(
|
|
299
|
+
export declare function findAdminTokenByToken(
|
|
300
|
+
db: IDatabaseClient,
|
|
301
|
+
token: string
|
|
302
|
+
): Promise<AdminToken | null>;
|
|
219
303
|
/**
|
|
220
304
|
* Update admin token last used time
|
|
221
305
|
*/
|
|
222
|
-
export declare function updateAdminTokenLastUsed(
|
|
306
|
+
export declare function updateAdminTokenLastUsed(
|
|
307
|
+
db: IDatabaseClient,
|
|
308
|
+
tokenId: string
|
|
309
|
+
): Promise<void>;
|
|
223
310
|
/**
|
|
224
311
|
* List admin tokens (masked, excludes token value)
|
|
225
312
|
*/
|
|
@@ -228,7 +315,10 @@ export declare function listAdminTokens(db: IDatabaseClient): Promise<Omit<Admin
|
|
|
228
315
|
* Get admin token by ID with full token value (for copy functionality)
|
|
229
316
|
* Warning: Only use this when user explicitly requests to reveal the token
|
|
230
317
|
*/
|
|
231
|
-
export declare function getAdminTokenById(
|
|
318
|
+
export declare function getAdminTokenById(
|
|
319
|
+
db: IDatabaseClient,
|
|
320
|
+
id: string
|
|
321
|
+
): Promise<AdminToken | null>;
|
|
232
322
|
/**
|
|
233
323
|
* Revoke admin token
|
|
234
324
|
*/
|
|
@@ -237,4 +327,4 @@ export declare function revokeAdminToken(db: IDatabaseClient, id: string): Promi
|
|
|
237
327
|
* Delete admin token permanently
|
|
238
328
|
*/
|
|
239
329
|
export declare function deleteAdminToken(db: IDatabaseClient, id: string): Promise<void>;
|
|
240
|
-
//# sourceMappingURL=schema.d.ts.map
|
|
330
|
+
//# sourceMappingURL=schema.d.ts.map
|
package/dist/admin/schema.js
CHANGED
|
@@ -6,7 +6,13 @@
|
|
|
6
6
|
* Collections: _admin_users, _admin_sessions, _api_keys, _admin_tokens
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.adminSchema =
|
|
9
|
+
exports.adminSchema =
|
|
10
|
+
exports.ADMIN_COLLECTIONS =
|
|
11
|
+
exports.ADMIN_TOKENS_COLLECTION =
|
|
12
|
+
exports.API_KEYS_COLLECTION =
|
|
13
|
+
exports.ADMIN_SESSIONS_COLLECTION =
|
|
14
|
+
exports.ADMIN_USERS_COLLECTION =
|
|
15
|
+
void 0;
|
|
10
16
|
exports.isValidUsername = isValidUsername;
|
|
11
17
|
exports.normalizeUsername = normalizeUsername;
|
|
12
18
|
exports.hasAnyAdminUsers = hasAnyAdminUsers;
|
|
@@ -74,89 +80,119 @@ function normalizeUsername(username) {
|
|
|
74
80
|
* This can be merged with application schemas at runtime.
|
|
75
81
|
*/
|
|
76
82
|
exports.adminSchema = (0, definition_js_1.defineSchema)({
|
|
77
|
-
[exports.ADMIN_USERS_COLLECTION]: (0, definition_js_1.defineTable)(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
indexes: [
|
|
88
|
-
{ fields: ["username"], name: "idx_admin_users_username", unique: true },
|
|
89
|
-
{ fields: ["created_at"], name: "idx_admin_users_created_at" },
|
|
90
|
-
],
|
|
91
|
-
relationships: {
|
|
92
|
-
sessions: (0, definition_js_1.hasMany)(exports.ADMIN_SESSIONS_COLLECTION, "admin_user_id"),
|
|
93
|
-
apiKeys: (0, definition_js_1.hasMany)(exports.API_KEYS_COLLECTION, "created_by_admin_id"),
|
|
94
|
-
adminTokens: (0, definition_js_1.hasMany)(exports.ADMIN_TOKENS_COLLECTION, "created_by_admin_id"),
|
|
83
|
+
[exports.ADMIN_USERS_COLLECTION]: (0, definition_js_1.defineTable)(
|
|
84
|
+
{
|
|
85
|
+
_id: definition_js_1.v.id().primaryKey(),
|
|
86
|
+
username: definition_js_1.v.string(),
|
|
87
|
+
password_hash: definition_js_1.v.string(),
|
|
88
|
+
name: definition_js_1.v.string().optional(),
|
|
89
|
+
avatar_url: definition_js_1.v.string().optional(),
|
|
90
|
+
is_super_admin: definition_js_1.v.boolean().default(false),
|
|
91
|
+
created_at: definition_js_1.v.number(),
|
|
92
|
+
updated_at: definition_js_1.v.number(),
|
|
95
93
|
},
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
94
|
+
{
|
|
95
|
+
indexes: [
|
|
96
|
+
{ fields: ["username"], name: "idx_admin_users_username", unique: true },
|
|
97
|
+
{ fields: ["created_at"], name: "idx_admin_users_created_at" },
|
|
98
|
+
],
|
|
99
|
+
relationships: {
|
|
100
|
+
sessions: (0, definition_js_1.hasMany)(
|
|
101
|
+
exports.ADMIN_SESSIONS_COLLECTION,
|
|
102
|
+
"admin_user_id"
|
|
103
|
+
),
|
|
104
|
+
apiKeys: (0, definition_js_1.hasMany)(
|
|
105
|
+
exports.API_KEYS_COLLECTION,
|
|
106
|
+
"created_by_admin_id"
|
|
107
|
+
),
|
|
108
|
+
adminTokens: (0, definition_js_1.hasMany)(
|
|
109
|
+
exports.ADMIN_TOKENS_COLLECTION,
|
|
110
|
+
"created_by_admin_id"
|
|
111
|
+
),
|
|
112
|
+
},
|
|
113
|
+
}
|
|
114
|
+
),
|
|
115
|
+
[exports.ADMIN_SESSIONS_COLLECTION]: (0, definition_js_1.defineTable)(
|
|
116
|
+
{
|
|
117
|
+
_id: definition_js_1.v.id().primaryKey(),
|
|
118
|
+
admin_user_id: definition_js_1.v
|
|
119
|
+
.id()
|
|
120
|
+
.foreignKey(exports.ADMIN_USERS_COLLECTION, "_id", { onDelete: "CASCADE" }),
|
|
121
|
+
token: definition_js_1.v.string(),
|
|
122
|
+
expires_at: definition_js_1.v.number(),
|
|
123
|
+
created_at: definition_js_1.v.number(),
|
|
124
|
+
last_accessed_at: definition_js_1.v.number(),
|
|
125
|
+
user_agent: definition_js_1.v.string().optional(),
|
|
126
|
+
ip_address: definition_js_1.v.string().optional(),
|
|
116
127
|
},
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
128
|
+
{
|
|
129
|
+
indexes: [
|
|
130
|
+
{ fields: ["token"], name: "idx_admin_sessions_token", unique: true },
|
|
131
|
+
{ fields: ["admin_user_id"], name: "idx_admin_sessions_user_id" },
|
|
132
|
+
{ fields: ["expires_at"], name: "idx_admin_sessions_expires" },
|
|
133
|
+
],
|
|
134
|
+
relationships: {
|
|
135
|
+
adminUser: (0, definition_js_1.belongsTo)(
|
|
136
|
+
exports.ADMIN_USERS_COLLECTION,
|
|
137
|
+
"admin_user_id"
|
|
138
|
+
),
|
|
139
|
+
},
|
|
140
|
+
}
|
|
141
|
+
),
|
|
142
|
+
[exports.API_KEYS_COLLECTION]: (0, definition_js_1.defineTable)(
|
|
143
|
+
{
|
|
144
|
+
_id: definition_js_1.v.id().primaryKey(),
|
|
145
|
+
key: definition_js_1.v.string(),
|
|
146
|
+
name: definition_js_1.v.string(),
|
|
147
|
+
created_by_admin_id: definition_js_1.v
|
|
148
|
+
.id()
|
|
149
|
+
.foreignKey(exports.ADMIN_USERS_COLLECTION, "_id", { onDelete: "CASCADE" }),
|
|
150
|
+
created_at: definition_js_1.v.number(),
|
|
151
|
+
last_used_at: definition_js_1.v.number().optional(),
|
|
152
|
+
is_revoked: definition_js_1.v.boolean().default(false),
|
|
136
153
|
},
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
154
|
+
{
|
|
155
|
+
indexes: [
|
|
156
|
+
{ fields: ["key"], name: "idx_api_keys_key", unique: true },
|
|
157
|
+
{ fields: ["created_by_admin_id"], name: "idx_api_keys_creator" },
|
|
158
|
+
{ fields: ["is_revoked"], name: "idx_api_keys_revoked" },
|
|
159
|
+
],
|
|
160
|
+
relationships: {
|
|
161
|
+
createdBy: (0, definition_js_1.belongsTo)(
|
|
162
|
+
exports.ADMIN_USERS_COLLECTION,
|
|
163
|
+
"created_by_admin_id"
|
|
164
|
+
),
|
|
165
|
+
},
|
|
166
|
+
}
|
|
167
|
+
),
|
|
168
|
+
[exports.ADMIN_TOKENS_COLLECTION]: (0, definition_js_1.defineTable)(
|
|
169
|
+
{
|
|
170
|
+
_id: definition_js_1.v.id().primaryKey(),
|
|
171
|
+
token: definition_js_1.v.string(),
|
|
172
|
+
name: definition_js_1.v.string(),
|
|
173
|
+
created_by_admin_id: definition_js_1.v
|
|
174
|
+
.id()
|
|
175
|
+
.foreignKey(exports.ADMIN_USERS_COLLECTION, "_id", { onDelete: "CASCADE" }),
|
|
176
|
+
scopes: definition_js_1.v.array(definition_js_1.v.string()),
|
|
177
|
+
expires_at: definition_js_1.v.number().optional(),
|
|
178
|
+
last_used_at: definition_js_1.v.number().optional(),
|
|
179
|
+
is_revoked: definition_js_1.v.boolean().default(false),
|
|
180
|
+
created_at: definition_js_1.v.number(),
|
|
158
181
|
},
|
|
159
|
-
|
|
182
|
+
{
|
|
183
|
+
indexes: [
|
|
184
|
+
{ fields: ["token"], name: "idx_admin_tokens_token", unique: true },
|
|
185
|
+
{ fields: ["created_by_admin_id"], name: "idx_admin_tokens_creator" },
|
|
186
|
+
{ fields: ["is_revoked"], name: "idx_admin_tokens_revoked" },
|
|
187
|
+
],
|
|
188
|
+
relationships: {
|
|
189
|
+
createdBy: (0, definition_js_1.belongsTo)(
|
|
190
|
+
exports.ADMIN_USERS_COLLECTION,
|
|
191
|
+
"created_by_admin_id"
|
|
192
|
+
),
|
|
193
|
+
},
|
|
194
|
+
}
|
|
195
|
+
),
|
|
160
196
|
});
|
|
161
197
|
/**
|
|
162
198
|
* Check if any admin users exist
|
|
@@ -217,7 +253,7 @@ async function findAdminUserByEmail(db, email) {
|
|
|
217
253
|
* Find admin user by ID
|
|
218
254
|
*/
|
|
219
255
|
async function findAdminUserById(db, id) {
|
|
220
|
-
return
|
|
256
|
+
return await db.get(exports.ADMIN_USERS_COLLECTION, id);
|
|
221
257
|
}
|
|
222
258
|
/**
|
|
223
259
|
* Create admin session
|
|
@@ -251,11 +287,11 @@ async function createAdminSession(db, adminUserId, token, expiresInMs, userAgent
|
|
|
251
287
|
*/
|
|
252
288
|
async function findAdminSessionByToken(db, token) {
|
|
253
289
|
const now = Date.now();
|
|
254
|
-
return
|
|
290
|
+
return await db.findFirst(exports.ADMIN_SESSIONS_COLLECTION, {
|
|
255
291
|
where: {
|
|
256
292
|
and: [{ token: { eq: token } }, { expires_at: { gt: now } }],
|
|
257
293
|
},
|
|
258
|
-
})
|
|
294
|
+
});
|
|
259
295
|
}
|
|
260
296
|
/**
|
|
261
297
|
* Update session last accessed time
|
|
@@ -330,9 +366,9 @@ async function createAdminUser(db, username, passwordHash, isSuperAdmin = false)
|
|
|
330
366
|
* List all admin users
|
|
331
367
|
*/
|
|
332
368
|
async function listAdminUsers(db) {
|
|
333
|
-
const users =
|
|
369
|
+
const users = await db.findMany(exports.ADMIN_USERS_COLLECTION, {
|
|
334
370
|
orderBy: { created_at: "desc" },
|
|
335
|
-
})
|
|
371
|
+
});
|
|
336
372
|
return users.map(({ password_hash, ...rest }) => rest);
|
|
337
373
|
}
|
|
338
374
|
/**
|
|
@@ -340,9 +376,9 @@ async function listAdminUsers(db) {
|
|
|
340
376
|
*/
|
|
341
377
|
async function deleteAdminUser(db, id) {
|
|
342
378
|
// Prevent deleting the last super admin
|
|
343
|
-
const superAdmins =
|
|
379
|
+
const superAdmins = await db.findMany(exports.ADMIN_USERS_COLLECTION, {
|
|
344
380
|
where: { is_super_admin: { eq: true } },
|
|
345
|
-
})
|
|
381
|
+
});
|
|
346
382
|
const user = await findAdminUserById(db, id);
|
|
347
383
|
if (user?.is_super_admin && superAdmins.length <= 1) {
|
|
348
384
|
throw new Error("Cannot delete the last super admin");
|
|
@@ -405,9 +441,9 @@ async function updateApiKeyLastUsed(db, keyId) {
|
|
|
405
441
|
* List API keys
|
|
406
442
|
*/
|
|
407
443
|
async function listApiKeys(db) {
|
|
408
|
-
const keys =
|
|
444
|
+
const keys = await db.findMany(exports.API_KEYS_COLLECTION, {
|
|
409
445
|
orderBy: { created_at: "desc" },
|
|
410
|
-
})
|
|
446
|
+
});
|
|
411
447
|
return keys.map(({ key, ...rest }) => rest);
|
|
412
448
|
}
|
|
413
449
|
/**
|
|
@@ -461,12 +497,12 @@ async function findAdminTokenByToken(db, token) {
|
|
|
461
497
|
const now = Date.now();
|
|
462
498
|
// First, find the token by matching token string and not revoked
|
|
463
499
|
// Note: We handle expiration in application code since 'or' operator has limited support
|
|
464
|
-
const result =
|
|
500
|
+
const result = await db.findFirst(exports.ADMIN_TOKENS_COLLECTION, {
|
|
465
501
|
where: {
|
|
466
502
|
token: { eq: token },
|
|
467
503
|
is_revoked: { eq: false },
|
|
468
504
|
},
|
|
469
|
-
})
|
|
505
|
+
});
|
|
470
506
|
if (!result) {
|
|
471
507
|
return null;
|
|
472
508
|
}
|
|
@@ -489,9 +525,9 @@ async function updateAdminTokenLastUsed(db, tokenId) {
|
|
|
489
525
|
* List admin tokens (masked, excludes token value)
|
|
490
526
|
*/
|
|
491
527
|
async function listAdminTokens(db) {
|
|
492
|
-
const tokens =
|
|
528
|
+
const tokens = await db.findMany(exports.ADMIN_TOKENS_COLLECTION, {
|
|
493
529
|
orderBy: { created_at: "desc" },
|
|
494
|
-
})
|
|
530
|
+
});
|
|
495
531
|
return tokens.map(({ token, ...rest }) => rest);
|
|
496
532
|
}
|
|
497
533
|
/**
|
|
@@ -499,7 +535,7 @@ async function listAdminTokens(db) {
|
|
|
499
535
|
* Warning: Only use this when user explicitly requests to reveal the token
|
|
500
536
|
*/
|
|
501
537
|
async function getAdminTokenById(db, id) {
|
|
502
|
-
return
|
|
538
|
+
return await db.get(exports.ADMIN_TOKENS_COLLECTION, id);
|
|
503
539
|
}
|
|
504
540
|
/**
|
|
505
541
|
* Revoke admin token
|
|
@@ -518,4 +554,4 @@ async function deleteAdminToken(db, id) {
|
|
|
518
554
|
// Legacy functions removed - no longer using raw SQLite
|
|
519
555
|
// initializeAdminSchema() and migrateAdminSchema() are no longer needed
|
|
520
556
|
// as the Document Store handles schema dynamically
|
|
521
|
-
//# sourceMappingURL=schema.js.map
|
|
557
|
+
//# sourceMappingURL=schema.js.map
|
package/dist/admin/seed.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ import type { IDatabaseClient } from "../db/interfaces.js";
|
|
|
6
6
|
* In production, use the provisioning endpoint or setup flow instead.
|
|
7
7
|
*/
|
|
8
8
|
export declare function seedAdminUser(db: IDatabaseClient): Promise<void>;
|
|
9
|
-
//# sourceMappingURL=seed.d.ts.map
|
|
9
|
+
//# sourceMappingURL=seed.d.ts.map
|