@portaidentity/server 1.12.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/config/schema.d.ts +1 -1
  3. package/dist/middleware/tenant-invite-auth.d.ts +81 -0
  4. package/dist/middleware/tenant-invite-auth.d.ts.map +1 -0
  5. package/dist/middleware/tenant-invite-auth.js +280 -0
  6. package/dist/middleware/tenant-invite-auth.js.map +1 -0
  7. package/dist/middleware/tenant-invite-rate-limiter.d.ts +21 -0
  8. package/dist/middleware/tenant-invite-rate-limiter.d.ts.map +1 -0
  9. package/dist/middleware/tenant-invite-rate-limiter.js +51 -0
  10. package/dist/middleware/tenant-invite-rate-limiter.js.map +1 -0
  11. package/dist/oidc/configuration.d.ts.map +1 -1
  12. package/dist/oidc/configuration.js +13 -2
  13. package/dist/oidc/configuration.js.map +1 -1
  14. package/dist/oidc/scopes.d.ts +15 -0
  15. package/dist/oidc/scopes.d.ts.map +1 -0
  16. package/dist/oidc/scopes.js +15 -0
  17. package/dist/oidc/scopes.js.map +1 -0
  18. package/dist/portability/schema.d.ts +6 -6
  19. package/dist/routes/tenant-invitations.d.ts +20 -0
  20. package/dist/routes/tenant-invitations.d.ts.map +1 -0
  21. package/dist/routes/tenant-invitations.js +111 -0
  22. package/dist/routes/tenant-invitations.js.map +1 -0
  23. package/dist/routes/users.d.ts.map +1 -1
  24. package/dist/routes/users.js +36 -178
  25. package/dist/routes/users.js.map +1 -1
  26. package/dist/server.d.ts.map +1 -1
  27. package/dist/server.js +6 -0
  28. package/dist/server.js.map +1 -1
  29. package/dist/users/invite-service.d.ts +132 -0
  30. package/dist/users/invite-service.d.ts.map +1 -0
  31. package/dist/users/invite-service.js +260 -0
  32. package/dist/users/invite-service.js.map +1 -0
  33. package/dist/version.d.ts +1 -1
  34. package/dist/version.js +1 -1
  35. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.13.0] - 2026-10-24
9
+
10
+ ## Added
11
+ - Add tenant-scoped user invitations, including a tenant invite route for service clients and tenant users.
12
+
13
+ ## Changed
14
+ - Keep the server dependency pin aligned with the audited lockfile.
15
+ - Keep the exact version pins aligned across the root and server workspace.
16
+
17
+ ## Fixed
18
+ - Upgrade nodemailer to the patched 10.1.4 release to resolve remaining moderate production audit advisories.
19
+ - Upgrade zod to the patched 4.6.6 release to resolve high-severity production audit advisory.
20
+
8
21
  ## [1.12.0] - 2026-10-23
9
22
 
10
23
  Fixed:
@@ -26,7 +26,7 @@ export declare const configSchema: z.ZodObject<{
26
26
  warn: "warn";
27
27
  }>>;
28
28
  trustProxy: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>, z.ZodTransform<boolean, string | boolean>>;
29
- trustProxyHops: z.ZodPreprocess<z.ZodDefault<z.ZodCoercedNumber<unknown>>>;
29
+ trustProxyHops: z.ZodPreprocess<z.ZodDefault<z.ZodCoercedNumber<unknown>>, unknown>;
30
30
  twoFactorEncryptionKey: z.ZodOptional<z.ZodString>;
31
31
  signingKeyEncryptionKey: z.ZodString;
32
32
  adminCorsOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Tenant-scoped invitation authentication.
3
+ *
4
+ * The tenant invitation route accepts two caller types:
5
+ *
6
+ * - A confidential client using the OAuth `client_credentials` grant. The
7
+ * token must carry the `org:user:invite` scope, the client must be active
8
+ * and confidential, and the client must belong to the route organization.
9
+ * - A tenant user's access token. The user must be active, belong to the
10
+ * route organization, and hold the `org:user:invite` permission in the
11
+ * token client's application.
12
+ *
13
+ * Control-plane clients and the super-admin organization are rejected. This
14
+ * route is deliberately separate from `/api/admin/*`; a Porta administrator
15
+ * uses the existing admin invitation route instead.
16
+ *
17
+ * @module middleware/tenant-invite-auth
18
+ */
19
+ import type { Middleware } from 'koa';
20
+ import { TENANT_INVITE_PERMISSION, TENANT_INVITE_SCOPE } from '../oidc/scopes.js';
21
+ export { TENANT_INVITE_PERMISSION, TENANT_INVITE_SCOPE };
22
+ /** Minimal provider boundary needed to resolve both supported token types. */
23
+ export interface TenantInviteTokenProvider {
24
+ /** Opaque user access-token model. */
25
+ readonly AccessToken: {
26
+ /** Resolve one user access token. */
27
+ find(token: string): Promise<{
28
+ readonly accountId?: string;
29
+ readonly clientId?: string;
30
+ readonly scopes: ReadonlySet<string>;
31
+ } | undefined>;
32
+ };
33
+ /** Opaque client-credentials token model. */
34
+ readonly ClientCredentials: {
35
+ /** Resolve one service access token. */
36
+ find(token: string): Promise<{
37
+ readonly clientId?: string;
38
+ readonly scopes: ReadonlySet<string>;
39
+ } | undefined>;
40
+ };
41
+ }
42
+ /** Authenticated tenant invitation actor. */
43
+ export type TenantInviteActor = {
44
+ /** Tenant service client. */
45
+ readonly kind: 'service';
46
+ /** Client identifier used for audit and rate limiting. */
47
+ readonly clientId: string;
48
+ /** Application that owns the invite's roles and claims. */
49
+ readonly applicationId: string;
50
+ /** Route organization. */
51
+ readonly organizationId: string;
52
+ /** Safe display name used in the invitation email. */
53
+ readonly displayName: string;
54
+ } | {
55
+ /** Tenant user. */
56
+ readonly kind: 'user';
57
+ /** User identifier used for audit and rate limiting. */
58
+ readonly userId: string;
59
+ /** Application that owns the invite's roles and claims. */
60
+ readonly applicationId: string;
61
+ /** Route organization. */
62
+ readonly organizationId: string;
63
+ /** Safe display name used in the invitation email. */
64
+ readonly displayName: string;
65
+ /** Live permissions used to enforce the delegation ceiling. */
66
+ readonly permissions: ReadonlySet<string>;
67
+ };
68
+ declare module 'koa' {
69
+ interface DefaultState {
70
+ /** Set by requireTenantInviteAuth after a successful caller check. */
71
+ tenantInviteActor?: TenantInviteActor;
72
+ }
73
+ }
74
+ /**
75
+ * Create middleware that authenticates a tenant invitation caller.
76
+ *
77
+ * @param provider - OIDC provider token models, or undefined to fail closed
78
+ * @returns Koa middleware that sets `ctx.state.tenantInviteActor`
79
+ */
80
+ export declare function requireTenantInviteAuth(provider?: TenantInviteTokenProvider): Middleware;
81
+ //# sourceMappingURL=tenant-invite-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-invite-auth.d.ts","sourceRoot":"","sources":["../../src/middleware/tenant-invite-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAItC,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAUlF,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,CAAC;AAEzD,8EAA8E;AAC9E,MAAM,WAAW,yBAAyB;IACxC,sCAAsC;IACtC,QAAQ,CAAC,WAAW,EAAE;QACpB,qCAAqC;QACrC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CACxB;YACE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;SACtC,GACD,SAAS,CACZ,CAAC;KACH,CAAC;IACF,6CAA6C;IAC7C,QAAQ,CAAC,iBAAiB,EAAE;QAC1B,wCAAwC;QACxC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CACxB;YACE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;SACtC,GACD,SAAS,CACZ,CAAC;KACH,CAAC;CACH;AAED,6CAA6C;AAC7C,MAAM,MAAM,iBAAiB,GACzB;IACE,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0BAA0B;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,sDAAsD;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,GACD;IACE,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0BAA0B;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,sDAAsD;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC3C,CAAC;AAMN,OAAO,QAAQ,KAAK,CAAC;IACnB,UAAU,YAAY;QACpB,sEAAsE;QACtE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC;CACF;AA4LD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,CAAC,EAAE,yBAAyB,GAAG,UAAU,CAuGxF"}
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Tenant-scoped invitation authentication.
3
+ *
4
+ * The tenant invitation route accepts two caller types:
5
+ *
6
+ * - A confidential client using the OAuth `client_credentials` grant. The
7
+ * token must carry the `org:user:invite` scope, the client must be active
8
+ * and confidential, and the client must belong to the route organization.
9
+ * - A tenant user's access token. The user must be active, belong to the
10
+ * route organization, and hold the `org:user:invite` permission in the
11
+ * token client's application.
12
+ *
13
+ * Control-plane clients and the super-admin organization are rejected. This
14
+ * route is deliberately separate from `/api/admin/*`; a Porta administrator
15
+ * uses the existing admin invitation route instead.
16
+ *
17
+ * @module middleware/tenant-invite-auth
18
+ */
19
+ import { getApplicationBySlug } from '../applications/service.js';
20
+ import { getClientByClientId } from '../clients/service.js';
21
+ import { logger } from '../lib/logger.js';
22
+ import { TENANT_INVITE_PERMISSION, TENANT_INVITE_SCOPE } from '../oidc/scopes.js';
23
+ import { findSuperAdminOrganization } from '../organizations/repository.js';
24
+ import { buildPermissionClaims } from '../rbac/user-role-service.js';
25
+ import { recordSecurityDecision, recordSecurityReference } from '../security/decision-context.js';
26
+ import { findUserForOidc } from '../users/service.js';
27
+ // ---------------------------------------------------------------------------
28
+ // Public constants and contracts
29
+ // ---------------------------------------------------------------------------
30
+ export { TENANT_INVITE_PERMISSION, TENANT_INVITE_SCOPE };
31
+ // ---------------------------------------------------------------------------
32
+ // Internal helpers
33
+ // ---------------------------------------------------------------------------
34
+ /** Return the authenticated permission set when the scope is granted. */
35
+ function hasInviteScope(scopes) {
36
+ return scopes?.has(TENANT_INVITE_SCOPE) === true;
37
+ }
38
+ /** Build a safe display name from optional profile fields. */
39
+ function displayName(givenName, familyName, fallback) {
40
+ const name = [givenName, familyName].filter((part) => Boolean(part)).join(' ');
41
+ return name.length > 0 ? name : fallback;
42
+ }
43
+ /** Resolve the canonical control-plane application or fail closed. */
44
+ async function loadAdminApplicationId() {
45
+ const application = await getApplicationBySlug('porta-admin');
46
+ return application?.id ?? null;
47
+ }
48
+ /** Resolve the control-plane organization or fail closed. */
49
+ async function loadSuperAdminOrganizationId() {
50
+ const organization = await findSuperAdminOrganization();
51
+ return organization?.id ?? null;
52
+ }
53
+ /**
54
+ * Reject the super-admin organization and the canonical admin application.
55
+ *
56
+ * @returns A fixed denial status when the route is not a tenant surface.
57
+ */
58
+ async function isTenantBoundary(organizationId, applicationId) {
59
+ const [adminApplicationId, superAdminOrganizationId] = await Promise.all([
60
+ loadAdminApplicationId(),
61
+ loadSuperAdminOrganizationId(),
62
+ ]);
63
+ if (!adminApplicationId || !superAdminOrganizationId)
64
+ return false;
65
+ return applicationId !== adminApplicationId && organizationId !== superAdminOrganizationId;
66
+ }
67
+ /**
68
+ * Authorize a client-credentials token.
69
+ *
70
+ * @returns The service actor, or undefined after writing a denial response.
71
+ */
72
+ async function authorizeService(ctx, organizationId, token) {
73
+ if (!token.clientId || !hasInviteScope(token.scopes)) {
74
+ recordSecurityDecision(ctx, {
75
+ decisionPoint: 'permission',
76
+ reasonCode: 'permission-required',
77
+ outcome: 'deny',
78
+ });
79
+ ctx.status = 403;
80
+ ctx.body = { error: 'Forbidden', message: 'The requested operation is not permitted' };
81
+ return undefined;
82
+ }
83
+ const client = await getClientByClientId(token.clientId);
84
+ if (!client ||
85
+ client.status !== 'active' ||
86
+ client.clientType !== 'confidential' ||
87
+ client.organizationId !== organizationId ||
88
+ !client.scope.split(' ').includes(TENANT_INVITE_SCOPE)) {
89
+ recordSecurityDecision(ctx, {
90
+ decisionPoint: 'membership',
91
+ reasonCode: 'membership-required',
92
+ outcome: 'deny',
93
+ });
94
+ ctx.status = 403;
95
+ ctx.body = { error: 'Forbidden', message: 'The requested operation is not permitted' };
96
+ return undefined;
97
+ }
98
+ if (!(await isTenantBoundary(organizationId, client.applicationId))) {
99
+ recordSecurityDecision(ctx, {
100
+ decisionPoint: 'membership',
101
+ reasonCode: 'membership-required',
102
+ outcome: 'deny',
103
+ });
104
+ ctx.status = 403;
105
+ ctx.body = { error: 'Forbidden', message: 'The requested operation is not permitted' };
106
+ return undefined;
107
+ }
108
+ return {
109
+ kind: 'service',
110
+ clientId: client.clientId,
111
+ applicationId: client.applicationId,
112
+ organizationId,
113
+ displayName: client.clientName,
114
+ };
115
+ }
116
+ /**
117
+ * Authorize a user access token.
118
+ *
119
+ * @returns The user actor, or undefined after writing a denial response.
120
+ */
121
+ async function authorizeUser(ctx, organizationId, token) {
122
+ if (!token.accountId || !token.clientId) {
123
+ recordSecurityDecision(ctx, {
124
+ decisionPoint: 'authentication',
125
+ reasonCode: 'authentication-required',
126
+ outcome: 'deny',
127
+ });
128
+ ctx.status = 401;
129
+ ctx.body = { error: 'Invalid token', message: 'Token validation failed' };
130
+ return undefined;
131
+ }
132
+ const client = await getClientByClientId(token.clientId);
133
+ if (!client || client.status !== 'active' || client.organizationId !== organizationId) {
134
+ recordSecurityDecision(ctx, {
135
+ decisionPoint: 'membership',
136
+ reasonCode: 'membership-required',
137
+ outcome: 'deny',
138
+ });
139
+ ctx.status = 403;
140
+ ctx.body = { error: 'Forbidden', message: 'The requested operation is not permitted' };
141
+ return undefined;
142
+ }
143
+ if (!(await isTenantBoundary(organizationId, client.applicationId))) {
144
+ recordSecurityDecision(ctx, {
145
+ decisionPoint: 'membership',
146
+ reasonCode: 'membership-required',
147
+ outcome: 'deny',
148
+ });
149
+ ctx.status = 403;
150
+ ctx.body = { error: 'Forbidden', message: 'The requested operation is not permitted' };
151
+ return undefined;
152
+ }
153
+ const user = await findUserForOidc(token.accountId);
154
+ if (!user || user.organizationId !== organizationId) {
155
+ recordSecurityDecision(ctx, {
156
+ decisionPoint: 'membership',
157
+ reasonCode: 'membership-required',
158
+ outcome: 'deny',
159
+ });
160
+ ctx.status = 403;
161
+ ctx.body = { error: 'Forbidden', message: 'The requested operation is not permitted' };
162
+ return undefined;
163
+ }
164
+ const permissions = await buildPermissionClaims(user.id, client.applicationId);
165
+ if (!permissions.includes(TENANT_INVITE_PERMISSION)) {
166
+ recordSecurityDecision(ctx, {
167
+ decisionPoint: 'permission',
168
+ reasonCode: 'permission-required',
169
+ outcome: 'deny',
170
+ });
171
+ ctx.status = 403;
172
+ ctx.body = { error: 'Forbidden', message: 'The requested operation is not permitted' };
173
+ return undefined;
174
+ }
175
+ return {
176
+ kind: 'user',
177
+ userId: user.id,
178
+ applicationId: client.applicationId,
179
+ organizationId,
180
+ displayName: displayName(user.givenName, user.familyName, user.email),
181
+ permissions: new Set(permissions),
182
+ };
183
+ }
184
+ // ---------------------------------------------------------------------------
185
+ // Middleware factory
186
+ // ---------------------------------------------------------------------------
187
+ /**
188
+ * Create middleware that authenticates a tenant invitation caller.
189
+ *
190
+ * @param provider - OIDC provider token models, or undefined to fail closed
191
+ * @returns Koa middleware that sets `ctx.state.tenantInviteActor`
192
+ */
193
+ export function requireTenantInviteAuth(provider) {
194
+ return async function tenantInviteAuthMiddleware(ctx, next) {
195
+ if (!provider) {
196
+ logger.error('Tenant invite auth: OIDC provider not initialized');
197
+ recordSecurityDecision(ctx, {
198
+ decisionPoint: 'handler',
199
+ reasonCode: 'handler-failed',
200
+ outcome: 'error',
201
+ });
202
+ ctx.status = 500;
203
+ ctx.body = { error: 'Server configuration error' };
204
+ return;
205
+ }
206
+ const organizationId = ctx.params.orgId;
207
+ if (typeof organizationId !== 'string' || organizationId.length === 0) {
208
+ recordSecurityDecision(ctx, {
209
+ decisionPoint: 'resource',
210
+ reasonCode: 'resource-not-found',
211
+ outcome: 'deny',
212
+ });
213
+ ctx.status = 404;
214
+ ctx.body = { error: 'Organization not found' };
215
+ return;
216
+ }
217
+ const authHeader = ctx.get('Authorization');
218
+ if (!authHeader.startsWith('Bearer ')) {
219
+ recordSecurityDecision(ctx, {
220
+ decisionPoint: 'authentication',
221
+ reasonCode: 'authentication-required',
222
+ outcome: 'deny',
223
+ });
224
+ ctx.status = 401;
225
+ ctx.body = {
226
+ error: 'Authentication required',
227
+ message: 'Missing or invalid Authorization header',
228
+ };
229
+ return;
230
+ }
231
+ const token = authHeader.slice(7);
232
+ if (token.length === 0) {
233
+ ctx.status = 401;
234
+ ctx.body = { error: 'Invalid token', message: 'Token validation failed' };
235
+ return;
236
+ }
237
+ let serviceToken;
238
+ try {
239
+ serviceToken = await provider.ClientCredentials.find(token);
240
+ }
241
+ catch {
242
+ logger.debug({ event: 'tenant-invite-service-token-unavailable' }, 'Tenant invite service token lookup failed');
243
+ }
244
+ if (serviceToken) {
245
+ const actor = await authorizeService(ctx, organizationId, serviceToken);
246
+ if (!actor)
247
+ return;
248
+ recordSecurityReference(ctx, 'actor', actor.clientId);
249
+ recordSecurityReference(ctx, 'tenant', organizationId);
250
+ ctx.state.tenantInviteActor = actor;
251
+ await next();
252
+ return;
253
+ }
254
+ let userToken;
255
+ try {
256
+ userToken = await provider.AccessToken.find(token);
257
+ }
258
+ catch {
259
+ logger.debug({ event: 'tenant-invite-user-token-unavailable' }, 'Tenant invite user token lookup failed');
260
+ }
261
+ if (userToken) {
262
+ const actor = await authorizeUser(ctx, organizationId, userToken);
263
+ if (!actor)
264
+ return;
265
+ recordSecurityReference(ctx, 'actor', actor.userId);
266
+ recordSecurityReference(ctx, 'tenant', organizationId);
267
+ ctx.state.tenantInviteActor = actor;
268
+ await next();
269
+ return;
270
+ }
271
+ recordSecurityDecision(ctx, {
272
+ decisionPoint: 'authentication',
273
+ reasonCode: 'authentication-required',
274
+ outcome: 'deny',
275
+ });
276
+ ctx.status = 401;
277
+ ctx.body = { error: 'Invalid token', message: 'Token validation failed' };
278
+ };
279
+ }
280
+ //# sourceMappingURL=tenant-invite-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-invite-auth.js","sourceRoot":"","sources":["../../src/middleware/tenant-invite-auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Tenant invitation rate limiter.
3
+ *
4
+ * Sits after tenant invitation authentication so the counter can be keyed by
5
+ * the authenticated user or service client instead of a shared IP address.
6
+ * The limit is intentionally small because invitations send email and create
7
+ * durable invitation records.
8
+ *
9
+ * @module middleware/tenant-invite-rate-limiter
10
+ */
11
+ import type { Middleware } from 'koa';
12
+ import type { RateLimitConfig } from '../auth/rate-limiter.js';
13
+ /** Invitation limit per actor and organization. */
14
+ export declare const TENANT_INVITE_RATE_LIMIT: RateLimitConfig;
15
+ /**
16
+ * Create the tenant invitation rate limiter.
17
+ *
18
+ * @returns Koa middleware that limits authenticated invitation requests
19
+ */
20
+ export declare function tenantInviteRateLimiter(): Middleware;
21
+ //# sourceMappingURL=tenant-invite-rate-limiter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-invite-rate-limiter.d.ts","sourceRoot":"","sources":["../../src/middleware/tenant-invite-rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,mDAAmD;AACnD,eAAO,MAAM,wBAAwB,EAAE,eAGtC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,UAAU,CAkCpD"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Tenant invitation rate limiter.
3
+ *
4
+ * Sits after tenant invitation authentication so the counter can be keyed by
5
+ * the authenticated user or service client instead of a shared IP address.
6
+ * The limit is intentionally small because invitations send email and create
7
+ * durable invitation records.
8
+ *
9
+ * @module middleware/tenant-invite-rate-limiter
10
+ */
11
+ import { checkRateLimit } from '../auth/rate-limiter.js';
12
+ import { logger } from '../lib/logger.js';
13
+ /** Invitation limit per actor and organization. */
14
+ export const TENANT_INVITE_RATE_LIMIT = {
15
+ max: 30,
16
+ windowSeconds: 3600,
17
+ };
18
+ /**
19
+ * Create the tenant invitation rate limiter.
20
+ *
21
+ * @returns Koa middleware that limits authenticated invitation requests
22
+ */
23
+ export function tenantInviteRateLimiter() {
24
+ return async function tenantInviteRateLimiterMiddleware(ctx, next) {
25
+ const actor = ctx.state.tenantInviteActor;
26
+ if (!actor)
27
+ return next();
28
+ const key = actor.kind === 'user'
29
+ ? `ratelimit:tenant-invite:user:${actor.organizationId}:${actor.userId}`
30
+ : `ratelimit:tenant-invite:client:${actor.organizationId}:${actor.clientId}`;
31
+ const result = await checkRateLimit(key, TENANT_INVITE_RATE_LIMIT);
32
+ ctx.set('X-RateLimit-Limit', String(TENANT_INVITE_RATE_LIMIT.max));
33
+ ctx.set('X-RateLimit-Remaining', String(result.remaining));
34
+ if (!result.allowed) {
35
+ logger.warn({
36
+ action: 'tenant_invite_rate_limit_exceeded',
37
+ actorKind: actor.kind,
38
+ }, 'Tenant invitation rate limit exceeded');
39
+ ctx.status = 429;
40
+ ctx.set('Retry-After', String(result.retryAfter));
41
+ ctx.body = {
42
+ error: 'Too Many Requests',
43
+ message: 'Invitation rate limit exceeded. Please try again later.',
44
+ retry_after: result.retryAfter,
45
+ };
46
+ return;
47
+ }
48
+ return next();
49
+ };
50
+ }
51
+ //# sourceMappingURL=tenant-invite-rate-limiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-invite-rate-limiter.js","sourceRoot":"","sources":["../../src/middleware/tenant-invite-rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,mDAAmD;AACnD,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,GAAG,EAAE,EAAE;IACP,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,KAAK,UAAU,iCAAiC,CAAC,GAAG,EAAE,IAAI;QAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC1C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,EAAE,CAAC;QAE1B,MAAM,GAAG,GACP,KAAK,CAAC,IAAI,KAAK,MAAM;YACnB,CAAC,CAAC,gCAAgC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,EAAE;YACxE,CAAC,CAAC,kCAAkC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAE3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CACT;gBACE,MAAM,EAAE,mCAAmC;gBAC3C,SAAS,EAAE,KAAK,CAAC,IAAI;aACtB,EACD,uCAAuC,CACxC,CAAC;YACF,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;YACjB,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,GAAG;gBACT,KAAK,EAAE,mBAAmB;gBAC1B,OAAO,EAAE,yDAAyD;gBAClE,WAAW,EAAE,MAAM,CAAC,UAAU;aAC/B,CAAC;YACF,OAAO;QACT,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/oidc/configuration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIzD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAKvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,8DAA8D;AAC9D,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,GAAG,EAAE,aAAa,CAAC;IACnB,iDAAiD;IACjD,IAAI,EAAE;QAAE,IAAI,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAC7B,sEAAsE;IACtE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,6DAA6D;IAC7D,WAAW,EAAE,CACX,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,MAAM,KACR,OAAO,CACR;QACE,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KAC1E,GACD,SAAS,CACZ,CAAC;IACF,yEAAyE;IACzE,cAAc,EAAE,OAAO,CAAC;IACxB,sFAAsF;IACtF,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;IACvE,qEAAqE;IACrE,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;CAC9E;AAMD;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CASxD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CA8B/F;AAMD;;;;;;;;;;;;;GAaG;AAEH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD5E;AAED;;;;;;;;;;;GAWG;AAEH,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BzE;AAoDD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CAEnC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,EAClD,MAAM,EAAE,KAAK,GACZ,OAAO,CAAC,IAAI,CAAC,CAwDf;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,iBAAiB,CAErC,GAAG,EAAE,GAAG,GACP,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CA6B9B;AAMD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,yBAAyB,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0MzB"}
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/oidc/configuration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIzD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAKvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,8DAA8D;AAC9D,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,GAAG,EAAE,aAAa,CAAC;IACnB,iDAAiD;IACjD,IAAI,EAAE;QAAE,IAAI,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAC7B,sEAAsE;IACtE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,6DAA6D;IAC7D,WAAW,EAAE,CACX,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,MAAM,KACR,OAAO,CACR;QACE,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KAC1E,GACD,SAAS,CACZ,CAAC;IACF,yEAAyE;IACzE,cAAc,EAAE,OAAO,CAAC;IACxB,sFAAsF;IACtF,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;IACvE,qEAAqE;IACrE,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;CAC9E;AAMD;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CASxD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CA8B/F;AAMD;;;;;;;;;;;;;GAaG;AAEH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD5E;AAED;;;;;;;;;;;GAWG;AAEH,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BzE;AAoDD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CAEnC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,EAClD,MAAM,EAAE,KAAK,GACZ,OAAO,CAAC,IAAI,CAAC,CAwDf;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,iBAAiB,CAErC,GAAG,EAAE,GAAG,GACP,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CA6B9B;AAMD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,yBAAyB,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoNzB"}
@@ -24,6 +24,7 @@ import { logger } from '../lib/logger.js';
24
24
  import { getUserById } from '../users/service.js';
25
25
  import { getOrganizationById } from '../organizations/service.js';
26
26
  import { clearSessionCookies } from '../middleware/prompt-login-reset.js';
27
+ import { TENANT_INVITE_SCOPE } from './scopes.js';
27
28
  // ---------------------------------------------------------------------------
28
29
  // Rendering hook helpers
29
30
  // ---------------------------------------------------------------------------
@@ -448,8 +449,18 @@ export function buildProviderConfiguration(params) {
448
449
  },
449
450
  // Enable refresh token rotation — each refresh generates a new token
450
451
  rotateRefreshToken: true,
451
- // Standard OIDC scopes
452
- scopes: ['openid', 'profile', 'email', 'address', 'phone', 'offline_access'],
452
+ // Standard OIDC scopes plus the tenant application scope used by the
453
+ // tenant-scoped BFF invitation API. Supported scopes must be registered
454
+ // here before a client may carry them in its metadata.
455
+ scopes: [
456
+ 'openid',
457
+ 'profile',
458
+ 'email',
459
+ 'address',
460
+ 'phone',
461
+ 'offline_access',
462
+ TENANT_INVITE_SCOPE,
463
+ ],
453
464
  // OIDC claims mapping per scope.
454
465
  // Standard claims follow OpenID Connect Core §5.4.
455
466
  // Custom claims (roles, permissions, ERP attributes) are mapped to
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/oidc/configuration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/oidc/configuration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Tenant-scoped OAuth scope names.
3
+ *
4
+ * These values are shared by the OIDC provider configuration and the tenant
5
+ * invitation middleware. A scope must be registered as supported before an
6
+ * OIDC client can carry it in its metadata; otherwise the provider rejects the
7
+ * client at the token endpoint.
8
+ *
9
+ * @module oidc/scopes
10
+ */
11
+ /** Scope that authorizes a tenant service client to invite users. */
12
+ export declare const TENANT_INVITE_SCOPE = "org:user:invite";
13
+ /** Permission that authorizes a tenant user to invite users. */
14
+ export declare const TENANT_INVITE_PERMISSION = "org:user:invite";
15
+ //# sourceMappingURL=scopes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/oidc/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,qEAAqE;AACrE,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD,gEAAgE;AAChE,eAAO,MAAM,wBAAwB,oBAAsB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Tenant-scoped OAuth scope names.
3
+ *
4
+ * These values are shared by the OIDC provider configuration and the tenant
5
+ * invitation middleware. A scope must be registered as supported before an
6
+ * OIDC client can carry it in its metadata; otherwise the provider rejects the
7
+ * client at the token endpoint.
8
+ *
9
+ * @module oidc/scopes
10
+ */
11
+ /** Scope that authorizes a tenant service client to invite users. */
12
+ export const TENANT_INVITE_SCOPE = 'org:user:invite';
13
+ /** Permission that authorizes a tenant user to invite users. */
14
+ export const TENANT_INVITE_PERMISSION = TENANT_INVITE_SCOPE;
15
+ //# sourceMappingURL=scopes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/oidc/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,qEAAqE;AACrE,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAErD,gEAAgE;AAChE,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,CAAC"}