alepha 0.20.6 → 0.20.7
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/AGENTS.md +0 -1
- package/CLAUDE.md +0 -1
- package/assets/agents-template.md +0 -1
- package/dist/api/audits/index.browser.js +1 -0
- package/dist/api/audits/index.browser.js.map +1 -1
- package/dist/api/audits/index.d.ts +370 -355
- package/dist/api/audits/index.d.ts.map +1 -1
- package/dist/api/audits/index.js +1 -0
- package/dist/api/audits/index.js.map +1 -1
- package/dist/api/files/index.browser.js +1 -0
- package/dist/api/files/index.browser.js.map +1 -1
- package/dist/api/files/index.d.ts +179 -170
- package/dist/api/files/index.d.ts.map +1 -1
- package/dist/api/files/index.js +1 -0
- package/dist/api/files/index.js.map +1 -1
- package/dist/api/jobs/index.browser.js +7 -0
- package/dist/api/jobs/index.browser.js.map +1 -1
- package/dist/api/jobs/index.d.ts +271 -262
- package/dist/api/jobs/index.d.ts.map +1 -1
- package/dist/api/jobs/index.js +21 -3
- package/dist/api/jobs/index.js.map +1 -1
- package/dist/api/keys/index.d.ts +198 -192
- package/dist/api/keys/index.d.ts.map +1 -1
- package/dist/api/keys/index.js +1 -0
- package/dist/api/keys/index.js.map +1 -1
- package/dist/api/notifications/index.d.ts +246 -245
- package/dist/api/notifications/index.d.ts.map +1 -1
- package/dist/api/organizations/index.d.ts +100 -97
- package/dist/api/organizations/index.d.ts.map +1 -1
- package/dist/api/parameters/index.d.ts +323 -320
- package/dist/api/parameters/index.d.ts.map +1 -1
- package/dist/api/payments/index.d.ts +431 -376
- package/dist/api/payments/index.d.ts.map +1 -1
- package/dist/api/payments/index.js +202 -87
- package/dist/api/payments/index.js.map +1 -1
- package/dist/api/subscriptions/index.d.ts +1695 -0
- package/dist/api/subscriptions/index.d.ts.map +1 -0
- package/dist/api/subscriptions/index.js +1919 -0
- package/dist/api/subscriptions/index.js.map +1 -0
- package/dist/api/users/index.d.ts +863 -847
- package/dist/api/users/index.d.ts.map +1 -1
- package/dist/api/verifications/index.d.ts +126 -125
- package/dist/api/verifications/index.d.ts.map +1 -1
- package/dist/bucket/index.d.ts +3 -2
- package/dist/bucket/index.d.ts.map +1 -1
- package/dist/cache/core/index.d.ts +114 -4
- package/dist/cache/core/index.d.ts.map +1 -1
- package/dist/cache/core/index.js +181 -15
- package/dist/cache/core/index.js.map +1 -1
- package/dist/cache/core/index.workerd.js +181 -15
- package/dist/cache/core/index.workerd.js.map +1 -1
- package/dist/cache/database/index.d.ts +20 -19
- package/dist/cache/database/index.d.ts.map +1 -1
- package/dist/cache/redis/index.d.ts +3 -2
- package/dist/cache/redis/index.d.ts.map +1 -1
- package/dist/cli/core/index.d.ts +113 -129
- package/dist/cli/core/index.d.ts.map +1 -1
- package/dist/cli/core/index.js +75 -7
- package/dist/cli/core/index.js.map +1 -1
- package/dist/cli/devtools/index.d.ts +3 -2
- package/dist/cli/devtools/index.d.ts.map +1 -1
- package/dist/cli/platform/index.d.ts +346 -290
- package/dist/cli/platform/index.d.ts.map +1 -1
- package/dist/cli/platform/index.js +105 -6
- package/dist/cli/platform/index.js.map +1 -1
- package/dist/cli/vendor/index.d.ts +12 -11
- package/dist/cli/vendor/index.d.ts.map +1 -1
- package/dist/command/index.d.ts +5 -4
- package/dist/command/index.d.ts.map +1 -1
- package/dist/core/index.browser.js +1 -1
- package/dist/core/index.browser.js.map +1 -1
- package/dist/core/index.d.ts +119 -118
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.native.js +1 -1
- package/dist/core/index.native.js.map +1 -1
- package/dist/core/index.workerd.js +1 -1
- package/dist/core/index.workerd.js.map +1 -1
- package/dist/crypto/index.d.ts +3 -2
- package/dist/crypto/index.d.ts.map +1 -1
- package/dist/email/core/index.d.ts +3 -2
- package/dist/email/core/index.d.ts.map +1 -1
- package/dist/email/smtp/index.d.ts +7 -6
- package/dist/email/smtp/index.d.ts.map +1 -1
- package/dist/lock/core/index.d.ts +5 -4
- package/dist/lock/core/index.d.ts.map +1 -1
- package/dist/logger/index.d.ts +10 -9
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/mcp/index.d.ts +9 -8
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/orm/core/index.browser.js +9 -3
- package/dist/orm/core/index.browser.js.map +1 -1
- package/dist/orm/core/index.bun.js +31 -10
- package/dist/orm/core/index.bun.js.map +1 -1
- package/dist/orm/core/index.d.ts +33 -14
- package/dist/orm/core/index.d.ts.map +1 -1
- package/dist/orm/core/index.js +31 -10
- package/dist/orm/core/index.js.map +1 -1
- package/dist/orm/postgres/index.d.ts +6 -5
- package/dist/orm/postgres/index.d.ts.map +1 -1
- package/dist/queue/core/index.d.ts +5 -4
- package/dist/queue/core/index.d.ts.map +1 -1
- package/dist/queue/redis/index.d.ts +3 -2
- package/dist/queue/redis/index.d.ts.map +1 -1
- package/dist/react/form/index.d.ts +5 -0
- package/dist/react/form/index.d.ts.map +1 -1
- package/dist/react/form/index.js +6 -4
- package/dist/react/form/index.js.map +1 -1
- package/dist/react/i18n/index.d.ts +2 -1
- package/dist/react/i18n/index.d.ts.map +1 -1
- package/dist/react/router/index.d.ts +206 -205
- package/dist/react/router/index.d.ts.map +1 -1
- package/dist/react/ui/index.d.ts +11 -11
- package/dist/react/ui/index.d.ts.map +1 -1
- package/dist/scheduler/index.d.ts +3 -2
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/security/index.browser.js +29 -1
- package/dist/security/index.browser.js.map +1 -1
- package/dist/security/index.d.ts +82 -35
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +56 -3
- package/dist/security/index.js.map +1 -1
- package/dist/server/auth/index.d.ts +163 -158
- package/dist/server/auth/index.d.ts.map +1 -1
- package/dist/server/auth/index.js +16 -4
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/core/index.d.ts +35 -34
- package/dist/server/core/index.d.ts.map +1 -1
- package/dist/server/cors/index.d.ts +7 -6
- package/dist/server/cors/index.d.ts.map +1 -1
- package/dist/server/health/index.d.ts +16 -15
- package/dist/server/health/index.d.ts.map +1 -1
- package/dist/server/links/index.d.ts +51 -50
- package/dist/server/links/index.d.ts.map +1 -1
- package/dist/server/rate-limit/index.d.ts +6 -5
- package/dist/server/rate-limit/index.d.ts.map +1 -1
- package/dist/server/swagger/index.d.ts +2 -1
- package/dist/server/swagger/index.d.ts.map +1 -1
- package/dist/topic/redis/index.d.ts +3 -2
- package/dist/topic/redis/index.d.ts.map +1 -1
- package/package.json +16 -32
- package/src/api/audits/entities/audits.ts +1 -0
- package/src/api/files/entities/files.ts +1 -0
- package/src/api/jobs/__tests__/$job.spec.ts +92 -40
- package/src/api/jobs/entities/jobExecutionEntity.ts +1 -0
- package/src/api/jobs/providers/JobProvider.ts +20 -5
- package/src/api/jobs/schemas/jobConfigAtom.ts +5 -0
- package/src/api/keys/entities/apiKeyEntity.ts +1 -0
- package/src/api/payments/controllers/MockCheckoutController.ts +146 -0
- package/src/api/payments/index.ts +3 -0
- package/src/api/payments/providers/MemoryPaymentProvider.ts +9 -4
- package/src/api/payments/providers/PaymentProvider.ts +25 -9
- package/src/api/payments/services/PaymentService.ts +3 -0
- package/src/api/subscriptions/__tests__/BillingService.spec.ts +218 -0
- package/src/api/subscriptions/__tests__/SubscriptionService.spec.ts +278 -0
- package/src/api/subscriptions/controllers/AdminSubscriptionController.ts +212 -0
- package/src/api/subscriptions/controllers/SubscriptionController.ts +189 -0
- package/src/api/subscriptions/entities/subscriptionEvents.ts +54 -0
- package/src/api/subscriptions/entities/subscriptions.ts +68 -0
- package/src/api/subscriptions/index.ts +133 -0
- package/src/api/subscriptions/jobs/SubscriptionJobs.ts +382 -0
- package/src/api/subscriptions/middleware/$requireLimit.ts +50 -0
- package/src/api/subscriptions/middleware/$requirePlan.ts +49 -0
- package/src/api/subscriptions/notifications/SubscriptionNotifications.ts +110 -0
- package/src/api/subscriptions/schemas/cancelSubscriptionSchema.ts +8 -0
- package/src/api/subscriptions/schemas/changePlanSchema.ts +9 -0
- package/src/api/subscriptions/schemas/createSubscriptionSchema.ts +11 -0
- package/src/api/subscriptions/schemas/entitlementsSchema.ts +21 -0
- package/src/api/subscriptions/schemas/mrrSchema.ts +13 -0
- package/src/api/subscriptions/schemas/planDefinitionSchema.ts +71 -0
- package/src/api/subscriptions/schemas/planResourceSchema.ts +25 -0
- package/src/api/subscriptions/schemas/subscriptionEventResourceSchema.ts +8 -0
- package/src/api/subscriptions/schemas/subscriptionQuerySchema.ts +19 -0
- package/src/api/subscriptions/schemas/subscriptionResourceSchema.ts +6 -0
- package/src/api/subscriptions/schemas/subscriptionSettingsSchema.ts +32 -0
- package/src/api/subscriptions/schemas/subscriptionStatsSchema.ts +23 -0
- package/src/api/subscriptions/services/BillingService.ts +437 -0
- package/src/api/subscriptions/services/SubscriptionConfig.ts +56 -0
- package/src/api/subscriptions/services/SubscriptionService.ts +867 -0
- package/src/api/subscriptions/services/UsageService.ts +118 -0
- package/src/cache/core/__tests__/$cache.memory.spec.ts +450 -0
- package/src/cache/core/__tests__/$cache.swr.spec.ts +394 -0
- package/src/cache/core/index.ts +16 -0
- package/src/cache/core/primitives/$cache.ts +347 -21
- package/src/cli/core/tasks/BuildCloudflareTask.ts +16 -0
- package/src/cli/core/templates/agentMd.ts +39 -4
- package/src/cli/core/templates/biomeJson.ts +25 -1
- package/src/cli/core/templates/saasAdminLayoutTsx.ts +2 -2
- package/src/cli/platform/__tests__/CloudflareAdapter.spec.ts +117 -0
- package/src/cli/platform/adapters/CloudflareAdapter.ts +104 -7
- package/src/cli/platform/atoms/platformOptions.ts +13 -0
- package/src/cli/platform/schemas/platform.ts +1 -0
- package/src/cli/platform/services/CloudflareApi.ts +61 -0
- package/src/cli/platform/services/PlatformOrchestrator.ts +9 -4
- package/src/core/__tests__/$module.spec.ts +2 -2
- package/src/core/primitives/$module.ts +4 -4
- package/src/mcp/providers/McpServerProvider.ts +1 -1
- package/src/orm/core/providers/DatabaseTypeProvider.ts +9 -3
- package/src/orm/core/providers/drivers/DatabaseProvider.ts +1 -1
- package/src/orm/core/schemas/insertSchema.ts +10 -2
- package/src/orm/core/services/Repository.ts +27 -7
- package/src/react/form/hooks/useFormState.ts +8 -1
- package/src/react/form/index.ts +10 -1
- package/src/react/form/services/FormModel.ts +9 -3
- package/src/security/atoms/currentTenantAtom.ts +34 -0
- package/src/security/index.browser.ts +1 -0
- package/src/security/index.ts +12 -1
- package/src/security/primitives/$issuer.ts +17 -1
- package/src/security/providers/SecurityProvider.ts +37 -0
- package/src/server/auth/__tests__/validateRedirectUri.spec.ts +78 -0
- package/src/server/auth/providers/ServerAuthProvider.ts +21 -5
- package/tsconfig.base.json +2 -1
- package/dist/react/websocket/index.d.ts +0 -117
- package/dist/react/websocket/index.d.ts.map +0 -1
- package/dist/react/websocket/index.js +0 -108
- package/dist/react/websocket/index.js.map +0 -1
- package/dist/websocket/index.browser.js +0 -848
- package/dist/websocket/index.browser.js.map +0 -1
- package/dist/websocket/index.d.ts +0 -876
- package/dist/websocket/index.d.ts.map +0 -1
- package/dist/websocket/index.js +0 -1185
- package/dist/websocket/index.js.map +0 -1
- package/src/react/websocket/hooks/useRoom.tsx +0 -251
- package/src/react/websocket/index.ts +0 -7
- package/src/websocket/__tests__/$channel.spec.ts +0 -30
- package/src/websocket/__tests__/$websocket-new.spec.ts +0 -195
- package/src/websocket/__tests__/RoomManager.spec.ts +0 -146
- package/src/websocket/__tests__/websocket-integration.spec.ts +0 -951
- package/src/websocket/errors/WebSocketError.ts +0 -34
- package/src/websocket/index.browser.ts +0 -25
- package/src/websocket/index.shared.ts +0 -8
- package/src/websocket/index.ts +0 -85
- package/src/websocket/interfaces/WebSocketInterfaces.ts +0 -252
- package/src/websocket/primitives/$channel.ts +0 -131
- package/src/websocket/primitives/$websocket.ts +0 -107
- package/src/websocket/providers/NodeWebSocketServerProvider.ts +0 -617
- package/src/websocket/providers/WebSocketServerProvider.ts +0 -56
- package/src/websocket/services/RoomManager.ts +0 -160
- package/src/websocket/services/WebSocketClient.ts +0 -642
- package/src/websocket/services/WebSocketTopicService.ts +0 -108
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["ICronDefinition","Set","seconds","minutes","hours","days","months","weekdays","Cron","ReadonlyArray","Date","Generator","reversed","constructor","findAllowedHour","findAllowedMinute","findAllowedSecond","findAllowedTime","findAllowedDayInMonth","getNextDate","startDate","getNextDates","amount","getNextDatesIterator","endDate","getPrevDate","getPrevDates","getPrevDatesIterator","matchDate","date"],"sources":["../../src/scheduler/constants/CRON.ts","../../../../node_modules/cron-schedule/dist/cron.d.ts","../../src/scheduler/providers/CronProvider.ts","../../src/scheduler/primitives/$scheduler.ts","../../src/scheduler/providers/WorkerdCronProvider.ts","../../src/scheduler/index.ts"],"x_google_ignoreList":[1],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["ICronDefinition","Set","seconds","minutes","hours","days","months","weekdays","Cron","ReadonlyArray","Date","Generator","reversed","constructor","findAllowedHour","findAllowedMinute","findAllowedSecond","findAllowedTime","findAllowedDayInMonth","getNextDate","startDate","getNextDates","amount","getNextDatesIterator","endDate","getPrevDate","getPrevDates","getPrevDatesIterator","matchDate","date"],"sources":["../../src/scheduler/constants/CRON.ts","../../../../node_modules/cron-schedule/dist/cron.d.ts","../../src/scheduler/providers/CronProvider.ts","../../src/scheduler/primitives/$scheduler.ts","../../src/scheduler/providers/WorkerdCronProvider.ts","../../src/scheduler/index.ts"],"x_google_ignoreList":[1],"mappings":"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"}
|
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
import { $atom, $module, createMiddleware, t } from "alepha";
|
|
2
2
|
import { UnauthorizedError } from "alepha/server";
|
|
3
|
+
//#region ../../src/security/atoms/currentTenantAtom.ts
|
|
4
|
+
/**
|
|
5
|
+
* Atom storing the active tenant for the current request.
|
|
6
|
+
*
|
|
7
|
+
* Transport-agnostic — works with HTTP, MCP, pipelines, jobs, and any context
|
|
8
|
+
* that sets the atom before calling tenant-scoped logic.
|
|
9
|
+
*
|
|
10
|
+
* Typically set by an app-level middleware that resolves the tenant from the
|
|
11
|
+
* request `Host` header (or another signal) and writes the resolved id to the
|
|
12
|
+
* store. Framework code that reads this atom:
|
|
13
|
+
*
|
|
14
|
+
* - Repository scoping: `withOrganization` / `stampOrganization` prefer this
|
|
15
|
+
* value over `currentUserAtom.organization` so cross-tenant users (admins,
|
|
16
|
+
* agency operators) are scoped to the tenant they are currently acting in
|
|
17
|
+
* rather than the one they belong to.
|
|
18
|
+
* - Session creation: the value is persisted into the JWT as a `tenant` claim,
|
|
19
|
+
* and the issuer resolver rejects tokens whose claim does not match the
|
|
20
|
+
* tenant resolved from the current request.
|
|
21
|
+
*
|
|
22
|
+
* `id` is a free-form string so the framework stays neutral on tenant identity
|
|
23
|
+
* (slug, UUID, composite). Pick whatever matches the column marked with
|
|
24
|
+
* `PG_ORGANIZATION` in your entities.
|
|
25
|
+
*/
|
|
26
|
+
const currentTenantAtom = $atom({
|
|
27
|
+
name: "alepha.security.tenant",
|
|
28
|
+
schema: t.optional(t.object({ id: t.text({ description: "Tenant identifier (slug, UUID, or composite)." }) }))
|
|
29
|
+
});
|
|
30
|
+
//#endregion
|
|
3
31
|
//#region ../../src/security/schemas/userAccountInfoSchema.ts
|
|
4
32
|
const userAccountInfoSchema = t.object({
|
|
5
33
|
id: t.text({ description: "Unique identifier for the user." }),
|
|
@@ -127,6 +155,6 @@ const roleSchema = t.object({
|
|
|
127
155
|
//#region ../../src/security/index.browser.ts
|
|
128
156
|
const AlephaSecurity = $module({ name: "alepha.security" });
|
|
129
157
|
//#endregion
|
|
130
|
-
export { $secure, AlephaSecurity, InvalidCredentialsError, InvalidPermissionError, SecurityError, currentUserAtom, permissionSchema, roleSchema, userAccountInfoSchema };
|
|
158
|
+
export { $secure, AlephaSecurity, InvalidCredentialsError, InvalidPermissionError, SecurityError, currentTenantAtom, currentUserAtom, permissionSchema, roleSchema, userAccountInfoSchema };
|
|
131
159
|
|
|
132
160
|
//# sourceMappingURL=index.browser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.browser.js","names":[],"sources":["../../src/security/schemas/userAccountInfoSchema.ts","../../src/security/atoms/currentUserAtom.ts","../../src/security/errors/InvalidCredentialsError.ts","../../src/security/errors/InvalidPermissionError.ts","../../src/security/errors/SecurityError.ts","../../src/security/primitives/$secure.browser.ts","../../src/security/schemas/permissionSchema.ts","../../src/security/schemas/roleSchema.ts","../../src/security/index.browser.ts"],"sourcesContent":["import type { Static } from \"alepha\";\nimport { t } from \"alepha\";\n\nexport const userAccountInfoSchema = t.object({\n id: t.text({\n description: \"Unique identifier for the user.\",\n }),\n\n name: t.optional(\n t.text({\n description: \"Full name of the user.\",\n }),\n ),\n\n email: t.optional(\n t.text({\n description: \"Email address of the user.\",\n format: \"email\",\n }),\n ),\n\n username: t.optional(\n t.text({\n description: \"Preferred username of the user.\",\n }),\n ),\n\n picture: t.optional(\n t.text({\n description: \"URL to the user's profile picture.\",\n }),\n ),\n\n sessionId: t.optional(\n t.text({\n description: \"Session identifier for the user, if applicable.\",\n }),\n ),\n\n // -------------------------------------------------------------------------------------------------------------------\n\n organization: t.optional(\n t.uuid({\n description: \"Organization the user belongs to.\",\n }),\n ),\n\n roles: t.optional(\n t.array(t.text(), {\n description: \"List of roles assigned to the user.\",\n }),\n ),\n\n realm: t.optional(\n t.text({\n description: \"The realm (issuer) the user was authenticated from.\",\n }),\n ),\n});\n\nexport type UserAccount = Static<typeof userAccountInfoSchema>;\n","import { $atom, t } from \"alepha\";\nimport { userAccountInfoSchema } from \"../schemas/userAccountInfoSchema.ts\";\n\n/**\n * Atom storing the current authenticated user.\n *\n * Transport-agnostic — works with HTTP, MCP, pipelines, jobs, and any context\n * that sets the atom before calling secured logic.\n */\nexport const currentUserAtom = $atom({\n name: \"alepha.security.user\",\n schema: t.optional(userAccountInfoSchema),\n});\n","import { UnauthorizedError } from \"alepha/server\";\n\n/**\n * Error thrown when the provided credentials are invalid.\n *\n * Message can not be changed to avoid leaking information.\n * Cause is omitted for the same reason.\n */\nexport class InvalidCredentialsError extends UnauthorizedError {\n readonly name = \"UnauthorizedError\";\n constructor() {\n super(\"Invalid credentials\");\n }\n}\n","export class InvalidPermissionError extends Error {\n constructor(name: string) {\n super(`Permission '${name}' is invalid`);\n }\n}\n","export class SecurityError extends Error {\n public name = \"SecurityError\";\n public readonly status = 403;\n}\n","import { createMiddleware, type Middleware } from \"alepha\";\nimport { currentUserAtom } from \"../atoms/currentUserAtom.ts\";\nimport type { UserAccountToken } from \"../interfaces/UserAccountToken.ts\";\nimport type { SecureOptions } from \"./$secure.ts\";\n\nexport type { SecureOptions };\n\n/**\n * Browser-side middleware that enforces authentication and authorization.\n *\n * Resolves the user from `currentUserAtom` only (no HTTP header resolution).\n * Checks roles from the user object and permissions from the user's roles.\n *\n * In the browser, an unauthenticated or unauthorized user is not an exception —\n * the middleware short-circuits by returning `undefined` and the handler is not called.\n * Components should use `action.can()` to conditionally render UI elements.\n *\n * ```typescript\n * class OrderController {\n * getOrders = $action({\n * use: [$secure()],\n * handler: async ({ query }) => { ... },\n * });\n *\n * deleteOrder = $action({\n * use: [$secure({ permissions: [\"orders:delete\"] })],\n * handler: async ({ params }) => { ... },\n * });\n * }\n * ```\n */\nexport function $secure(options?: SecureOptions): Middleware {\n return createMiddleware({\n name: \"$secure\",\n options: (options as unknown as Record<string, unknown>) ?? undefined,\n handler: ({ alepha, next }) => {\n return async (...args: any[]) => {\n const user: UserAccountToken | undefined =\n alepha.store.get(currentUserAtom);\n\n if (!user) {\n return undefined;\n }\n\n // Issuer check\n if (options?.issuers?.length) {\n if (!user.realm || !options.issuers.includes(user.realm)) {\n return undefined;\n }\n }\n\n // Role check\n if (options?.roles?.length) {\n const hasRole = options.roles.some((role) =>\n user.roles?.includes(role),\n );\n if (!hasRole) {\n return undefined;\n }\n }\n\n // Permission check (browser-side: check against user roles)\n // Server-side permissions are enforced by the API — the browser version\n // trusts that the API registry already filtered actions by permission.\n\n // Custom guard\n if (options?.guard) {\n if (!options.guard(user)) {\n return undefined;\n }\n }\n\n return next(...args);\n };\n },\n });\n}\n","import type { Static } from \"alepha\";\nimport { t } from \"alepha\";\n\nexport const permissionSchema = t.object({\n name: t.text({\n description: \"Name of the permission.\",\n }),\n\n group: t.optional(\n t.text({\n description: \"Group of the permission.\",\n }),\n ),\n\n description: t.optional(\n t.text({\n description: \"Describe the permission.\",\n }),\n ),\n\n // HTTP Only\n\n method: t.optional(\n t.text({\n description: \"HTTP method of the permission. When available.\",\n }),\n ),\n\n path: t.optional(\n t.text({\n description: \"Pathname of the permission. When available.\",\n }),\n ),\n});\n\nexport type Permission = Static<typeof permissionSchema>;\n","import type { Static } from \"alepha\";\nimport { t } from \"alepha\";\n\nexport const roleSchema = t.object({\n name: t.text({\n description: \"Name of the role.\",\n }),\n\n description: t.optional(\n t.text({\n description: \"Describe the role.\",\n }),\n ),\n\n default: t.optional(\n t.boolean({\n description:\n \"If true, this role will be assigned to all users by default.\",\n }),\n ),\n\n permissions: t.array(\n t.object({\n name: t.text({\n description: \"Name of the permission.\",\n }),\n ownership: t.optional(\n t.boolean({\n description:\n \"If true, user will only have access to it's own resources.\",\n }),\n ),\n exclude: t.optional(\n t.array(t.text(), {\n description:\n \"Exclude some permissions. Useful when 'name' is a wildcard.\",\n }),\n ),\n }),\n ),\n});\n\nexport type Role = Static<typeof roleSchema>;\n","import { $module } from \"alepha\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./atoms/currentUserAtom.ts\";\nexport * from \"./errors/InvalidCredentialsError.ts\";\nexport * from \"./errors/InvalidPermissionError.ts\";\nexport * from \"./errors/SecurityError.ts\";\nexport * from \"./interfaces/UserAccountToken.ts\";\nexport * from \"./primitives/$secure.browser.ts\";\nexport * from \"./schemas/permissionSchema.ts\";\nexport * from \"./schemas/roleSchema.ts\";\nexport * from \"./schemas/userAccountInfoSchema.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport const AlephaSecurity = $module({\n name: \"alepha.security\",\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.browser.js","names":[],"sources":["../../src/security/atoms/currentTenantAtom.ts","../../src/security/schemas/userAccountInfoSchema.ts","../../src/security/atoms/currentUserAtom.ts","../../src/security/errors/InvalidCredentialsError.ts","../../src/security/errors/InvalidPermissionError.ts","../../src/security/errors/SecurityError.ts","../../src/security/primitives/$secure.browser.ts","../../src/security/schemas/permissionSchema.ts","../../src/security/schemas/roleSchema.ts","../../src/security/index.browser.ts"],"sourcesContent":["import { $atom, t } from \"alepha\";\n\n/**\n * Atom storing the active tenant for the current request.\n *\n * Transport-agnostic — works with HTTP, MCP, pipelines, jobs, and any context\n * that sets the atom before calling tenant-scoped logic.\n *\n * Typically set by an app-level middleware that resolves the tenant from the\n * request `Host` header (or another signal) and writes the resolved id to the\n * store. Framework code that reads this atom:\n *\n * - Repository scoping: `withOrganization` / `stampOrganization` prefer this\n * value over `currentUserAtom.organization` so cross-tenant users (admins,\n * agency operators) are scoped to the tenant they are currently acting in\n * rather than the one they belong to.\n * - Session creation: the value is persisted into the JWT as a `tenant` claim,\n * and the issuer resolver rejects tokens whose claim does not match the\n * tenant resolved from the current request.\n *\n * `id` is a free-form string so the framework stays neutral on tenant identity\n * (slug, UUID, composite). Pick whatever matches the column marked with\n * `PG_ORGANIZATION` in your entities.\n */\nexport const currentTenantAtom = $atom({\n name: \"alepha.security.tenant\",\n schema: t.optional(\n t.object({\n id: t.text({\n description: \"Tenant identifier (slug, UUID, or composite).\",\n }),\n }),\n ),\n});\n","import type { Static } from \"alepha\";\nimport { t } from \"alepha\";\n\nexport const userAccountInfoSchema = t.object({\n id: t.text({\n description: \"Unique identifier for the user.\",\n }),\n\n name: t.optional(\n t.text({\n description: \"Full name of the user.\",\n }),\n ),\n\n email: t.optional(\n t.text({\n description: \"Email address of the user.\",\n format: \"email\",\n }),\n ),\n\n username: t.optional(\n t.text({\n description: \"Preferred username of the user.\",\n }),\n ),\n\n picture: t.optional(\n t.text({\n description: \"URL to the user's profile picture.\",\n }),\n ),\n\n sessionId: t.optional(\n t.text({\n description: \"Session identifier for the user, if applicable.\",\n }),\n ),\n\n // -------------------------------------------------------------------------------------------------------------------\n\n organization: t.optional(\n t.uuid({\n description: \"Organization the user belongs to.\",\n }),\n ),\n\n roles: t.optional(\n t.array(t.text(), {\n description: \"List of roles assigned to the user.\",\n }),\n ),\n\n realm: t.optional(\n t.text({\n description: \"The realm (issuer) the user was authenticated from.\",\n }),\n ),\n});\n\nexport type UserAccount = Static<typeof userAccountInfoSchema>;\n","import { $atom, t } from \"alepha\";\nimport { userAccountInfoSchema } from \"../schemas/userAccountInfoSchema.ts\";\n\n/**\n * Atom storing the current authenticated user.\n *\n * Transport-agnostic — works with HTTP, MCP, pipelines, jobs, and any context\n * that sets the atom before calling secured logic.\n */\nexport const currentUserAtom = $atom({\n name: \"alepha.security.user\",\n schema: t.optional(userAccountInfoSchema),\n});\n","import { UnauthorizedError } from \"alepha/server\";\n\n/**\n * Error thrown when the provided credentials are invalid.\n *\n * Message can not be changed to avoid leaking information.\n * Cause is omitted for the same reason.\n */\nexport class InvalidCredentialsError extends UnauthorizedError {\n readonly name = \"UnauthorizedError\";\n constructor() {\n super(\"Invalid credentials\");\n }\n}\n","export class InvalidPermissionError extends Error {\n constructor(name: string) {\n super(`Permission '${name}' is invalid`);\n }\n}\n","export class SecurityError extends Error {\n public name = \"SecurityError\";\n public readonly status = 403;\n}\n","import { createMiddleware, type Middleware } from \"alepha\";\nimport { currentUserAtom } from \"../atoms/currentUserAtom.ts\";\nimport type { UserAccountToken } from \"../interfaces/UserAccountToken.ts\";\nimport type { SecureOptions } from \"./$secure.ts\";\n\nexport type { SecureOptions };\n\n/**\n * Browser-side middleware that enforces authentication and authorization.\n *\n * Resolves the user from `currentUserAtom` only (no HTTP header resolution).\n * Checks roles from the user object and permissions from the user's roles.\n *\n * In the browser, an unauthenticated or unauthorized user is not an exception —\n * the middleware short-circuits by returning `undefined` and the handler is not called.\n * Components should use `action.can()` to conditionally render UI elements.\n *\n * ```typescript\n * class OrderController {\n * getOrders = $action({\n * use: [$secure()],\n * handler: async ({ query }) => { ... },\n * });\n *\n * deleteOrder = $action({\n * use: [$secure({ permissions: [\"orders:delete\"] })],\n * handler: async ({ params }) => { ... },\n * });\n * }\n * ```\n */\nexport function $secure(options?: SecureOptions): Middleware {\n return createMiddleware({\n name: \"$secure\",\n options: (options as unknown as Record<string, unknown>) ?? undefined,\n handler: ({ alepha, next }) => {\n return async (...args: any[]) => {\n const user: UserAccountToken | undefined =\n alepha.store.get(currentUserAtom);\n\n if (!user) {\n return undefined;\n }\n\n // Issuer check\n if (options?.issuers?.length) {\n if (!user.realm || !options.issuers.includes(user.realm)) {\n return undefined;\n }\n }\n\n // Role check\n if (options?.roles?.length) {\n const hasRole = options.roles.some((role) =>\n user.roles?.includes(role),\n );\n if (!hasRole) {\n return undefined;\n }\n }\n\n // Permission check (browser-side: check against user roles)\n // Server-side permissions are enforced by the API — the browser version\n // trusts that the API registry already filtered actions by permission.\n\n // Custom guard\n if (options?.guard) {\n if (!options.guard(user)) {\n return undefined;\n }\n }\n\n return next(...args);\n };\n },\n });\n}\n","import type { Static } from \"alepha\";\nimport { t } from \"alepha\";\n\nexport const permissionSchema = t.object({\n name: t.text({\n description: \"Name of the permission.\",\n }),\n\n group: t.optional(\n t.text({\n description: \"Group of the permission.\",\n }),\n ),\n\n description: t.optional(\n t.text({\n description: \"Describe the permission.\",\n }),\n ),\n\n // HTTP Only\n\n method: t.optional(\n t.text({\n description: \"HTTP method of the permission. When available.\",\n }),\n ),\n\n path: t.optional(\n t.text({\n description: \"Pathname of the permission. When available.\",\n }),\n ),\n});\n\nexport type Permission = Static<typeof permissionSchema>;\n","import type { Static } from \"alepha\";\nimport { t } from \"alepha\";\n\nexport const roleSchema = t.object({\n name: t.text({\n description: \"Name of the role.\",\n }),\n\n description: t.optional(\n t.text({\n description: \"Describe the role.\",\n }),\n ),\n\n default: t.optional(\n t.boolean({\n description:\n \"If true, this role will be assigned to all users by default.\",\n }),\n ),\n\n permissions: t.array(\n t.object({\n name: t.text({\n description: \"Name of the permission.\",\n }),\n ownership: t.optional(\n t.boolean({\n description:\n \"If true, user will only have access to it's own resources.\",\n }),\n ),\n exclude: t.optional(\n t.array(t.text(), {\n description:\n \"Exclude some permissions. Useful when 'name' is a wildcard.\",\n }),\n ),\n }),\n ),\n});\n\nexport type Role = Static<typeof roleSchema>;\n","import { $module } from \"alepha\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./atoms/currentTenantAtom.ts\";\nexport * from \"./atoms/currentUserAtom.ts\";\nexport * from \"./errors/InvalidCredentialsError.ts\";\nexport * from \"./errors/InvalidPermissionError.ts\";\nexport * from \"./errors/SecurityError.ts\";\nexport * from \"./interfaces/UserAccountToken.ts\";\nexport * from \"./primitives/$secure.browser.ts\";\nexport * from \"./schemas/permissionSchema.ts\";\nexport * from \"./schemas/roleSchema.ts\";\nexport * from \"./schemas/userAccountInfoSchema.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport const AlephaSecurity = $module({\n name: \"alepha.security\",\n});\n"],"mappings":"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"}
|
package/dist/security/index.d.ts
CHANGED
|
@@ -4,19 +4,20 @@ import { DateTimeProvider, Duration, DurationLike } from "alepha/datetime";
|
|
|
4
4
|
import * as _$alepha_logger0 from "alepha/logger";
|
|
5
5
|
import { SecretProvider } from "alepha/crypto";
|
|
6
6
|
import { FetchOptions, ServerRequest, UnauthorizedError } from "alepha/server";
|
|
7
|
+
import * as _$typebox from "typebox";
|
|
7
8
|
export * from "alepha/crypto";
|
|
8
9
|
|
|
9
10
|
//#region ../../src/security/schemas/userAccountInfoSchema.d.ts
|
|
10
|
-
declare const userAccountInfoSchema: _$
|
|
11
|
-
id: _$
|
|
12
|
-
name: _$
|
|
13
|
-
email: _$
|
|
14
|
-
username: _$
|
|
15
|
-
picture: _$
|
|
16
|
-
sessionId: _$
|
|
17
|
-
organization: _$
|
|
18
|
-
roles: _$
|
|
19
|
-
realm: _$
|
|
11
|
+
declare const userAccountInfoSchema: _$typebox.TObject<{
|
|
12
|
+
id: _$typebox.TString;
|
|
13
|
+
name: _$typebox.TOptional<_$typebox.TString>;
|
|
14
|
+
email: _$typebox.TOptional<_$typebox.TString>;
|
|
15
|
+
username: _$typebox.TOptional<_$typebox.TString>;
|
|
16
|
+
picture: _$typebox.TOptional<_$typebox.TString>;
|
|
17
|
+
sessionId: _$typebox.TOptional<_$typebox.TString>;
|
|
18
|
+
organization: _$typebox.TOptional<_$typebox.TString>;
|
|
19
|
+
roles: _$typebox.TOptional<_$typebox.TArray<_$typebox.TString>>;
|
|
20
|
+
realm: _$typebox.TOptional<_$typebox.TString>;
|
|
20
21
|
}>;
|
|
21
22
|
type UserAccount = Static<typeof userAccountInfoSchema>;
|
|
22
23
|
//#endregion
|
|
@@ -41,6 +42,33 @@ interface UserAccountToken extends UserAccount {
|
|
|
41
42
|
ownership?: string | boolean;
|
|
42
43
|
}
|
|
43
44
|
//#endregion
|
|
45
|
+
//#region ../../src/security/atoms/currentTenantAtom.d.ts
|
|
46
|
+
/**
|
|
47
|
+
* Atom storing the active tenant for the current request.
|
|
48
|
+
*
|
|
49
|
+
* Transport-agnostic — works with HTTP, MCP, pipelines, jobs, and any context
|
|
50
|
+
* that sets the atom before calling tenant-scoped logic.
|
|
51
|
+
*
|
|
52
|
+
* Typically set by an app-level middleware that resolves the tenant from the
|
|
53
|
+
* request `Host` header (or another signal) and writes the resolved id to the
|
|
54
|
+
* store. Framework code that reads this atom:
|
|
55
|
+
*
|
|
56
|
+
* - Repository scoping: `withOrganization` / `stampOrganization` prefer this
|
|
57
|
+
* value over `currentUserAtom.organization` so cross-tenant users (admins,
|
|
58
|
+
* agency operators) are scoped to the tenant they are currently acting in
|
|
59
|
+
* rather than the one they belong to.
|
|
60
|
+
* - Session creation: the value is persisted into the JWT as a `tenant` claim,
|
|
61
|
+
* and the issuer resolver rejects tokens whose claim does not match the
|
|
62
|
+
* tenant resolved from the current request.
|
|
63
|
+
*
|
|
64
|
+
* `id` is a free-form string so the framework stays neutral on tenant identity
|
|
65
|
+
* (slug, UUID, composite). Pick whatever matches the column marked with
|
|
66
|
+
* `PG_ORGANIZATION` in your entities.
|
|
67
|
+
*/
|
|
68
|
+
declare const currentTenantAtom: _$alepha.Atom<_$typebox.TOptional<_$typebox.TObject<{
|
|
69
|
+
id: _$typebox.TString;
|
|
70
|
+
}>>, "alepha.security.tenant">;
|
|
71
|
+
//#endregion
|
|
44
72
|
//#region ../../src/security/atoms/currentUserAtom.d.ts
|
|
45
73
|
/**
|
|
46
74
|
* Atom storing the current authenticated user.
|
|
@@ -48,16 +76,16 @@ interface UserAccountToken extends UserAccount {
|
|
|
48
76
|
* Transport-agnostic — works with HTTP, MCP, pipelines, jobs, and any context
|
|
49
77
|
* that sets the atom before calling secured logic.
|
|
50
78
|
*/
|
|
51
|
-
declare const currentUserAtom: _$alepha.Atom<_$
|
|
52
|
-
id: _$
|
|
53
|
-
name: _$
|
|
54
|
-
email: _$
|
|
55
|
-
username: _$
|
|
56
|
-
picture: _$
|
|
57
|
-
sessionId: _$
|
|
58
|
-
organization: _$
|
|
59
|
-
roles: _$
|
|
60
|
-
realm: _$
|
|
79
|
+
declare const currentUserAtom: _$alepha.Atom<_$typebox.TOptional<_$typebox.TObject<{
|
|
80
|
+
id: _$typebox.TString;
|
|
81
|
+
name: _$typebox.TOptional<_$typebox.TString>;
|
|
82
|
+
email: _$typebox.TOptional<_$typebox.TString>;
|
|
83
|
+
username: _$typebox.TOptional<_$typebox.TString>;
|
|
84
|
+
picture: _$typebox.TOptional<_$typebox.TString>;
|
|
85
|
+
sessionId: _$typebox.TOptional<_$typebox.TString>;
|
|
86
|
+
organization: _$typebox.TOptional<_$typebox.TString>;
|
|
87
|
+
roles: _$typebox.TOptional<_$typebox.TArray<_$typebox.TString>>;
|
|
88
|
+
realm: _$typebox.TOptional<_$typebox.TString>;
|
|
61
89
|
}>>, "alepha.security.user">;
|
|
62
90
|
//#endregion
|
|
63
91
|
//#region ../../src/security/errors/InvalidCredentialsError.d.ts
|
|
@@ -521,24 +549,24 @@ interface JwtParseResult {
|
|
|
521
549
|
}
|
|
522
550
|
//#endregion
|
|
523
551
|
//#region ../../src/security/schemas/permissionSchema.d.ts
|
|
524
|
-
declare const permissionSchema: _$
|
|
525
|
-
name: _$
|
|
526
|
-
group: _$
|
|
527
|
-
description: _$
|
|
528
|
-
method: _$
|
|
529
|
-
path: _$
|
|
552
|
+
declare const permissionSchema: _$typebox.TObject<{
|
|
553
|
+
name: _$typebox.TString;
|
|
554
|
+
group: _$typebox.TOptional<_$typebox.TString>;
|
|
555
|
+
description: _$typebox.TOptional<_$typebox.TString>;
|
|
556
|
+
method: _$typebox.TOptional<_$typebox.TString>;
|
|
557
|
+
path: _$typebox.TOptional<_$typebox.TString>;
|
|
530
558
|
}>;
|
|
531
559
|
type Permission = Static<typeof permissionSchema>;
|
|
532
560
|
//#endregion
|
|
533
561
|
//#region ../../src/security/schemas/roleSchema.d.ts
|
|
534
|
-
declare const roleSchema: _$
|
|
535
|
-
name: _$
|
|
536
|
-
description: _$
|
|
537
|
-
default: _$
|
|
538
|
-
permissions: _$
|
|
539
|
-
name: _$
|
|
540
|
-
ownership: _$
|
|
541
|
-
exclude: _$
|
|
562
|
+
declare const roleSchema: _$typebox.TObject<{
|
|
563
|
+
name: _$typebox.TString;
|
|
564
|
+
description: _$typebox.TOptional<_$typebox.TString>;
|
|
565
|
+
default: _$typebox.TOptional<_$typebox.TBoolean>;
|
|
566
|
+
permissions: _$typebox.TArray<_$typebox.TObject<{
|
|
567
|
+
name: _$typebox.TString;
|
|
568
|
+
ownership: _$typebox.TOptional<_$typebox.TBoolean>;
|
|
569
|
+
exclude: _$typebox.TOptional<_$typebox.TArray<_$typebox.TString>>;
|
|
542
570
|
}>>;
|
|
543
571
|
}>;
|
|
544
572
|
type Role = Static<typeof roleSchema>;
|
|
@@ -720,6 +748,14 @@ declare class SecurityProvider {
|
|
|
720
748
|
*/
|
|
721
749
|
getNameFromPayload(payload: Record<string, any>): string;
|
|
722
750
|
getOrganizationFromPayload(payload: Record<string, any>): string | undefined;
|
|
751
|
+
/**
|
|
752
|
+
* Extracts the tenant id from the JWT payload, when present.
|
|
753
|
+
*
|
|
754
|
+
* Tokens minted with no active tenant (single-tenant apps, server-to-server
|
|
755
|
+
* calls before any request-scoped middleware runs) omit the claim, in which
|
|
756
|
+
* case the resolver does not enforce a tenant match.
|
|
757
|
+
*/
|
|
758
|
+
getTenantFromPayload(payload: Record<string, any>): string | undefined;
|
|
723
759
|
}
|
|
724
760
|
/**
|
|
725
761
|
* A realm definition.
|
|
@@ -827,6 +863,7 @@ interface IssuerExternal {
|
|
|
827
863
|
jwks: (() => string) | JSONWebKeySet;
|
|
828
864
|
}
|
|
829
865
|
declare class IssuerPrimitive extends Primitive<IssuerPrimitiveOptions> {
|
|
866
|
+
protected readonly alepha: Alepha;
|
|
830
867
|
protected readonly securityProvider: SecurityProvider;
|
|
831
868
|
protected readonly dateTimeProvider: DateTimeProvider;
|
|
832
869
|
protected readonly jwt: JwtProvider;
|
|
@@ -1124,6 +1161,16 @@ declare module "alepha" {
|
|
|
1124
1161
|
* The current authenticated user.
|
|
1125
1162
|
*/
|
|
1126
1163
|
"alepha.security.user"?: UserAccount;
|
|
1164
|
+
/**
|
|
1165
|
+
* The tenant the current request is acting in.
|
|
1166
|
+
*
|
|
1167
|
+
* Typically set by an app-level middleware from the request `Host`. When
|
|
1168
|
+
* present, `Repository` scoping and session creation prefer this value
|
|
1169
|
+
* over `currentUserAtom.organization`.
|
|
1170
|
+
*/
|
|
1171
|
+
"alepha.security.tenant"?: {
|
|
1172
|
+
id: string;
|
|
1173
|
+
};
|
|
1127
1174
|
}
|
|
1128
1175
|
}
|
|
1129
1176
|
declare module "alepha/server" {
|
|
@@ -1162,5 +1209,5 @@ declare module "alepha/server" {
|
|
|
1162
1209
|
*/
|
|
1163
1210
|
declare const AlephaSecurity: _$alepha.Service<_$alepha.Module>;
|
|
1164
1211
|
//#endregion
|
|
1165
|
-
export { $basicAuth, $issuer, $permission, $role, $secure, $serviceAccount, AccessTokenResponse, AlephaSecurity, BasicAuthOptions, CreateTokenOptions, ExtendedJWTPayload, InvalidCredentialsError, InvalidPermissionError, IssuerExternal, IssuerInternal, IssuerPrimitive, IssuerPrimitiveOptions, IssuerResolver, IssuerSettings, JwtParseResult, JwtProvider, JwtSignOptions, KeyLoader, KeyLoaderHolder, Oauth2ServiceAccountPrimitiveOptions, Permission, PermissionPrimitive, PermissionPrimitiveOptions, Realm, Role, RolePrimitive, RolePrimitiveOptions, SecureOptions, SecurityCheckResult, SecurityError, SecurityProvider, ServerSecurityProvider, ServerSecurityUserResolver, ServiceAccountPrimitive, ServiceAccountPrimitiveOptions, ServiceAccountStore, UserAccount, UserAccountToken, UserInfo, currentUserAtom, permissionSchema, roleSchema, userAccountInfoSchema };
|
|
1212
|
+
export { $basicAuth, $issuer, $permission, $role, $secure, $serviceAccount, AccessTokenResponse, AlephaSecurity, BasicAuthOptions, CreateTokenOptions, ExtendedJWTPayload, InvalidCredentialsError, InvalidPermissionError, IssuerExternal, IssuerInternal, IssuerPrimitive, IssuerPrimitiveOptions, IssuerResolver, IssuerSettings, JwtParseResult, JwtProvider, JwtSignOptions, KeyLoader, KeyLoaderHolder, Oauth2ServiceAccountPrimitiveOptions, Permission, PermissionPrimitive, PermissionPrimitiveOptions, Realm, Role, RolePrimitive, RolePrimitiveOptions, SecureOptions, SecurityCheckResult, SecurityError, SecurityProvider, ServerSecurityProvider, ServerSecurityUserResolver, ServiceAccountPrimitive, ServiceAccountPrimitiveOptions, ServiceAccountStore, UserAccount, UserAccountToken, UserInfo, currentTenantAtom, currentUserAtom, permissionSchema, roleSchema, userAccountInfoSchema };
|
|
1166
1213
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["JWKParameters","kty","alg","key_ops","ext","use","x5c","x5t","x5u","kid","JWK_OKP_Public","crv","x","JWK_OKP_Private","d","JWK_AKP_Public","pub","JWK_AKP_Private","priv","JWK_EC_Public","y","JWK_EC_Private","JWK_RSA_Public","e","n","JWK_RSA_Private","dp","dq","p","q","qi","JWK_oct","k","JWK","GenericGetKeyFunction","IProtectedHeader","IToken","ReturnKeyTypes","Promise","protectedHeader","token","GetKeyFunction","CryptoKey","KeyObject","Uint8Array","FlattenedJWSInput","JWSHeaderParameters","header","payload","protected","signature","GeneralJWSInput","Omit","signatures","FlattenedJWS","Partial","GeneralJWS","JoseHeaderParameters","Pick","jku","jwk","typ","cty","b64","crit","propName","JWEKeyManagementHeaderParameters","apu","apv","p2c","p2s","iv","epk","FlattenedJWE","JWEHeaderParameters","aad","ciphertext","encrypted_key","tag","unprotected","GeneralJWE","recipients","enc","zip","CritOption","DecryptOptions","keyManagementAlgorithms","contentEncryptionAlgorithms","maxPBES2Count","maxDecompressedLength","EncryptOptions","JWTClaimVerificationOptions","Date","audience","clockTolerance","issuer","maxTokenAge","subject","currentDate","requiredClaims","VerifyOptions","algorithms","SignOptions","JWTPayload","iss","sub","aud","jti","nbf","exp","iat","FlattenedDecryptResult","additionalAuthenticatedData","plaintext","sharedUnprotectedHeader","unprotectedHeader","GeneralDecryptResult","CompactDecryptResult","CompactJWEHeaderParameters","FlattenedVerifyResult","GeneralVerifyResult","CompactVerifyResult","CompactJWSHeaderParameters","JWTVerifyResult","PayloadType","JWTHeaderParameters","JWTDecryptResult","ResolvedKey","key","JSONWebKeySet","keys","type","crypto","subtle","generateKey","ReturnType","Awaited","Extract","ProduceJWT","setIssuer","setSubject","setAudience","setJti","jwtId","setNotBefore","input","setExpirationTime","setIssuedAt","types","JWTVerifyOptions","VerifyOptions","JWTClaimVerificationOptions","JWTVerifyGetKey","JWTHeaderParameters","FlattenedJWSInput","CryptoKey","KeyObject","JWK","Uint8Array","GenericGetKeyFunction","jwtVerify","PayloadType","JWTPayload","JWTVerifyResult","Promise","jwt","key","options","ResolvedKey","getKey"],"sources":["../../src/security/schemas/userAccountInfoSchema.ts","../../src/security/interfaces/UserAccountToken.ts","../../src/security/atoms/currentUserAtom.ts","../../src/security/errors/InvalidCredentialsError.ts","../../src/security/errors/InvalidPermissionError.ts","../../src/security/errors/SecurityError.ts","../../src/security/interfaces/IssuerResolver.ts","../../src/security/primitives/$basicAuth.ts","../../../../node_modules/jose/dist/types/types.d.ts","../../../../node_modules/jose/dist/types/jwt/verify.d.ts","../../src/security/providers/JwtProvider.ts","../../src/security/schemas/permissionSchema.ts","../../src/security/schemas/roleSchema.ts","../../src/security/providers/SecurityProvider.ts","../../src/security/primitives/$issuer.ts","../../src/security/primitives/$permission.ts","../../src/security/primitives/$role.ts","../../src/security/primitives/$secure.ts","../../src/security/primitives/$serviceAccount.ts","../../src/security/providers/ServerSecurityProvider.ts","../../src/security/index.ts"],"x_google_ignoreList":[8,9],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["JWKParameters","kty","alg","key_ops","ext","use","x5c","x5t","x5u","kid","JWK_OKP_Public","crv","x","JWK_OKP_Private","d","JWK_AKP_Public","pub","JWK_AKP_Private","priv","JWK_EC_Public","y","JWK_EC_Private","JWK_RSA_Public","e","n","JWK_RSA_Private","dp","dq","p","q","qi","JWK_oct","k","JWK","GenericGetKeyFunction","IProtectedHeader","IToken","ReturnKeyTypes","Promise","protectedHeader","token","GetKeyFunction","CryptoKey","KeyObject","Uint8Array","FlattenedJWSInput","JWSHeaderParameters","header","payload","protected","signature","GeneralJWSInput","Omit","signatures","FlattenedJWS","Partial","GeneralJWS","JoseHeaderParameters","Pick","jku","jwk","typ","cty","b64","crit","propName","JWEKeyManagementHeaderParameters","apu","apv","p2c","p2s","iv","epk","FlattenedJWE","JWEHeaderParameters","aad","ciphertext","encrypted_key","tag","unprotected","GeneralJWE","recipients","enc","zip","CritOption","DecryptOptions","keyManagementAlgorithms","contentEncryptionAlgorithms","maxPBES2Count","maxDecompressedLength","EncryptOptions","JWTClaimVerificationOptions","Date","audience","clockTolerance","issuer","maxTokenAge","subject","currentDate","requiredClaims","VerifyOptions","algorithms","SignOptions","JWTPayload","iss","sub","aud","jti","nbf","exp","iat","FlattenedDecryptResult","additionalAuthenticatedData","plaintext","sharedUnprotectedHeader","unprotectedHeader","GeneralDecryptResult","CompactDecryptResult","CompactJWEHeaderParameters","FlattenedVerifyResult","GeneralVerifyResult","CompactVerifyResult","CompactJWSHeaderParameters","JWTVerifyResult","PayloadType","JWTHeaderParameters","JWTDecryptResult","ResolvedKey","key","JSONWebKeySet","keys","type","crypto","subtle","generateKey","ReturnType","Awaited","Extract","ProduceJWT","setIssuer","setSubject","setAudience","setJti","jwtId","setNotBefore","input","setExpirationTime","setIssuedAt","types","JWTVerifyOptions","VerifyOptions","JWTClaimVerificationOptions","JWTVerifyGetKey","JWTHeaderParameters","FlattenedJWSInput","CryptoKey","KeyObject","JWK","Uint8Array","GenericGetKeyFunction","jwtVerify","PayloadType","JWTPayload","JWTVerifyResult","Promise","jwt","key","options","ResolvedKey","getKey"],"sources":["../../src/security/schemas/userAccountInfoSchema.ts","../../src/security/interfaces/UserAccountToken.ts","../../src/security/atoms/currentTenantAtom.ts","../../src/security/atoms/currentUserAtom.ts","../../src/security/errors/InvalidCredentialsError.ts","../../src/security/errors/InvalidPermissionError.ts","../../src/security/errors/SecurityError.ts","../../src/security/interfaces/IssuerResolver.ts","../../src/security/primitives/$basicAuth.ts","../../../../node_modules/jose/dist/types/types.d.ts","../../../../node_modules/jose/dist/types/jwt/verify.d.ts","../../src/security/providers/JwtProvider.ts","../../src/security/schemas/permissionSchema.ts","../../src/security/schemas/roleSchema.ts","../../src/security/providers/SecurityProvider.ts","../../src/security/primitives/$issuer.ts","../../src/security/primitives/$permission.ts","../../src/security/primitives/$role.ts","../../src/security/primitives/$secure.ts","../../src/security/primitives/$serviceAccount.ts","../../src/security/providers/ServerSecurityProvider.ts","../../src/security/index.ts"],"x_google_ignoreList":[9,10],"mappings":"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"}
|
package/dist/security/index.js
CHANGED
|
@@ -5,6 +5,34 @@ import { createSecretKey, randomUUID, timingSafeEqual } from "node:crypto";
|
|
|
5
5
|
import { SecretProvider } from "alepha/crypto";
|
|
6
6
|
import { ForbiddenError, HttpError, UnauthorizedError } from "alepha/server";
|
|
7
7
|
export * from "alepha/crypto";
|
|
8
|
+
//#region ../../src/security/atoms/currentTenantAtom.ts
|
|
9
|
+
/**
|
|
10
|
+
* Atom storing the active tenant for the current request.
|
|
11
|
+
*
|
|
12
|
+
* Transport-agnostic — works with HTTP, MCP, pipelines, jobs, and any context
|
|
13
|
+
* that sets the atom before calling tenant-scoped logic.
|
|
14
|
+
*
|
|
15
|
+
* Typically set by an app-level middleware that resolves the tenant from the
|
|
16
|
+
* request `Host` header (or another signal) and writes the resolved id to the
|
|
17
|
+
* store. Framework code that reads this atom:
|
|
18
|
+
*
|
|
19
|
+
* - Repository scoping: `withOrganization` / `stampOrganization` prefer this
|
|
20
|
+
* value over `currentUserAtom.organization` so cross-tenant users (admins,
|
|
21
|
+
* agency operators) are scoped to the tenant they are currently acting in
|
|
22
|
+
* rather than the one they belong to.
|
|
23
|
+
* - Session creation: the value is persisted into the JWT as a `tenant` claim,
|
|
24
|
+
* and the issuer resolver rejects tokens whose claim does not match the
|
|
25
|
+
* tenant resolved from the current request.
|
|
26
|
+
*
|
|
27
|
+
* `id` is a free-form string so the framework stays neutral on tenant identity
|
|
28
|
+
* (slug, UUID, composite). Pick whatever matches the column marked with
|
|
29
|
+
* `PG_ORGANIZATION` in your entities.
|
|
30
|
+
*/
|
|
31
|
+
const currentTenantAtom = $atom({
|
|
32
|
+
name: "alepha.security.tenant",
|
|
33
|
+
schema: t.optional(t.object({ id: t.text({ description: "Tenant identifier (slug, UUID, or composite)." }) }))
|
|
34
|
+
});
|
|
35
|
+
//#endregion
|
|
8
36
|
//#region ../../src/security/schemas/userAccountInfoSchema.ts
|
|
9
37
|
const userAccountInfoSchema = t.object({
|
|
10
38
|
id: t.text({ description: "Unique identifier for the user." }),
|
|
@@ -1571,6 +1599,17 @@ var SecurityProvider = class {
|
|
|
1571
1599
|
const token = auth.slice(7);
|
|
1572
1600
|
if (!token.includes(".")) return null;
|
|
1573
1601
|
const { result } = await this.jwt.parse(token, realmName);
|
|
1602
|
+
const claimTenant = this.getTenantFromPayload(result.payload);
|
|
1603
|
+
if (claimTenant) {
|
|
1604
|
+
const activeTenant = this.alepha.store.get(currentTenantAtom)?.id;
|
|
1605
|
+
if (activeTenant && activeTenant !== claimTenant) {
|
|
1606
|
+
this.log.warn("JWT tenant claim does not match active tenant", {
|
|
1607
|
+
claim: claimTenant,
|
|
1608
|
+
active: activeTenant
|
|
1609
|
+
});
|
|
1610
|
+
return null;
|
|
1611
|
+
}
|
|
1612
|
+
}
|
|
1574
1613
|
return this.createUserFromPayload(result.payload, realmName);
|
|
1575
1614
|
}
|
|
1576
1615
|
};
|
|
@@ -2005,6 +2044,17 @@ var SecurityProvider = class {
|
|
|
2005
2044
|
if (!payload) return;
|
|
2006
2045
|
if (typeof payload.organization === "string") return payload.organization;
|
|
2007
2046
|
}
|
|
2047
|
+
/**
|
|
2048
|
+
* Extracts the tenant id from the JWT payload, when present.
|
|
2049
|
+
*
|
|
2050
|
+
* Tokens minted with no active tenant (single-tenant apps, server-to-server
|
|
2051
|
+
* calls before any request-scoped middleware runs) omit the claim, in which
|
|
2052
|
+
* case the resolver does not enforce a tenant match.
|
|
2053
|
+
*/
|
|
2054
|
+
getTenantFromPayload(payload) {
|
|
2055
|
+
if (!payload) return;
|
|
2056
|
+
if (typeof payload.tenant === "string") return payload.tenant;
|
|
2057
|
+
}
|
|
2008
2058
|
};
|
|
2009
2059
|
//#endregion
|
|
2010
2060
|
//#region ../../src/security/primitives/$issuer.ts
|
|
@@ -2018,6 +2068,7 @@ const $issuer = (options) => {
|
|
|
2018
2068
|
return createPrimitive(IssuerPrimitive, options);
|
|
2019
2069
|
};
|
|
2020
2070
|
var IssuerPrimitive = class extends Primitive {
|
|
2071
|
+
alepha = $inject(Alepha);
|
|
2021
2072
|
securityProvider = $inject(SecurityProvider);
|
|
2022
2073
|
dateTimeProvider = $inject(DateTimeProvider);
|
|
2023
2074
|
jwt = $inject(JwtProvider);
|
|
@@ -2133,6 +2184,7 @@ var IssuerPrimitive = class extends Primitive {
|
|
|
2133
2184
|
iat,
|
|
2134
2185
|
aud: this.name
|
|
2135
2186
|
});
|
|
2187
|
+
const tenant = this.alepha.store.get(currentTenantAtom)?.id;
|
|
2136
2188
|
return {
|
|
2137
2189
|
access_token: await this.jwt.create({
|
|
2138
2190
|
sub: user.id,
|
|
@@ -2145,7 +2197,8 @@ var IssuerPrimitive = class extends Primitive {
|
|
|
2145
2197
|
preferred_username: user.username,
|
|
2146
2198
|
picture: user.picture,
|
|
2147
2199
|
organization: user.organization,
|
|
2148
|
-
roles: user.roles
|
|
2200
|
+
roles: user.roles,
|
|
2201
|
+
tenant
|
|
2149
2202
|
}, this.name),
|
|
2150
2203
|
token_type: "Bearer",
|
|
2151
2204
|
expires_in: this.accessTokenExpiration.asSeconds(),
|
|
@@ -2648,7 +2701,7 @@ const AlephaSecurity = $module({
|
|
|
2648
2701
|
$role,
|
|
2649
2702
|
$permission
|
|
2650
2703
|
],
|
|
2651
|
-
atoms: [currentUserAtom],
|
|
2704
|
+
atoms: [currentUserAtom, currentTenantAtom],
|
|
2652
2705
|
services: [
|
|
2653
2706
|
SecurityProvider,
|
|
2654
2707
|
JwtProvider,
|
|
@@ -2656,6 +2709,6 @@ const AlephaSecurity = $module({
|
|
|
2656
2709
|
]
|
|
2657
2710
|
});
|
|
2658
2711
|
//#endregion
|
|
2659
|
-
export { $basicAuth, $issuer, $permission, $role, $secure, $serviceAccount, AlephaSecurity, InvalidCredentialsError, InvalidPermissionError, IssuerPrimitive, JwtProvider, PermissionPrimitive, RolePrimitive, SecurityError, SecurityProvider, ServerSecurityProvider, currentUserAtom, permissionSchema, roleSchema, userAccountInfoSchema };
|
|
2712
|
+
export { $basicAuth, $issuer, $permission, $role, $secure, $serviceAccount, AlephaSecurity, InvalidCredentialsError, InvalidPermissionError, IssuerPrimitive, JwtProvider, PermissionPrimitive, RolePrimitive, SecurityError, SecurityProvider, ServerSecurityProvider, currentTenantAtom, currentUserAtom, permissionSchema, roleSchema, userAccountInfoSchema };
|
|
2660
2713
|
|
|
2661
2714
|
//# sourceMappingURL=index.js.map
|