@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.
- package/CHANGELOG.md +13 -0
- package/dist/config/schema.d.ts +1 -1
- package/dist/middleware/tenant-invite-auth.d.ts +81 -0
- package/dist/middleware/tenant-invite-auth.d.ts.map +1 -0
- package/dist/middleware/tenant-invite-auth.js +280 -0
- package/dist/middleware/tenant-invite-auth.js.map +1 -0
- package/dist/middleware/tenant-invite-rate-limiter.d.ts +21 -0
- package/dist/middleware/tenant-invite-rate-limiter.d.ts.map +1 -0
- package/dist/middleware/tenant-invite-rate-limiter.js +51 -0
- package/dist/middleware/tenant-invite-rate-limiter.js.map +1 -0
- package/dist/oidc/configuration.d.ts.map +1 -1
- package/dist/oidc/configuration.js +13 -2
- package/dist/oidc/configuration.js.map +1 -1
- package/dist/oidc/scopes.d.ts +15 -0
- package/dist/oidc/scopes.d.ts.map +1 -0
- package/dist/oidc/scopes.js +15 -0
- package/dist/oidc/scopes.js.map +1 -0
- package/dist/portability/schema.d.ts +6 -6
- package/dist/routes/tenant-invitations.d.ts +20 -0
- package/dist/routes/tenant-invitations.d.ts.map +1 -0
- package/dist/routes/tenant-invitations.js +111 -0
- package/dist/routes/tenant-invitations.js.map +1 -0
- package/dist/routes/users.d.ts.map +1 -1
- package/dist/routes/users.js +36 -178
- package/dist/routes/users.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +6 -0
- package/dist/server.js.map +1 -1
- package/dist/users/invite-service.d.ts +132 -0
- package/dist/users/invite-service.d.ts.map +1 -0
- package/dist/users/invite-service.js +260 -0
- package/dist/users/invite-service.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
|
@@ -157,7 +157,7 @@ export declare const portabilityManifestSchema: z.ZodObject<{
|
|
|
157
157
|
address_postal_code: z.ZodNullable<z.ZodString>;
|
|
158
158
|
address_country: z.ZodNullable<z.ZodString>;
|
|
159
159
|
organization_slug: z.ZodString;
|
|
160
|
-
email: z.ZodPreprocess<z.ZodString>;
|
|
160
|
+
email: z.ZodPreprocess<z.ZodString, unknown>;
|
|
161
161
|
email_verified: z.ZodBoolean;
|
|
162
162
|
status: z.ZodEnum<{
|
|
163
163
|
active: "active";
|
|
@@ -166,13 +166,13 @@ export declare const portabilityManifestSchema: z.ZodObject<{
|
|
|
166
166
|
}, z.core.$strict>>;
|
|
167
167
|
user_role_assignments: z.ZodArray<z.ZodObject<{
|
|
168
168
|
organization_slug: z.ZodString;
|
|
169
|
-
email: z.ZodPreprocess<z.ZodString>;
|
|
169
|
+
email: z.ZodPreprocess<z.ZodString, unknown>;
|
|
170
170
|
application_slug: z.ZodString;
|
|
171
171
|
role_slug: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
172
172
|
}, z.core.$strict>>;
|
|
173
173
|
user_claim_values: z.ZodArray<z.ZodObject<{
|
|
174
174
|
organization_slug: z.ZodString;
|
|
175
|
-
email: z.ZodPreprocess<z.ZodString>;
|
|
175
|
+
email: z.ZodPreprocess<z.ZodString, unknown>;
|
|
176
176
|
application_slug: z.ZodString;
|
|
177
177
|
claim_name: z.ZodString;
|
|
178
178
|
value: z.ZodJSONSchema;
|
|
@@ -376,7 +376,7 @@ export declare const importManifestRequestSchema: z.ZodObject<{
|
|
|
376
376
|
address_postal_code: z.ZodNullable<z.ZodString>;
|
|
377
377
|
address_country: z.ZodNullable<z.ZodString>;
|
|
378
378
|
organization_slug: z.ZodString;
|
|
379
|
-
email: z.ZodPreprocess<z.ZodString>;
|
|
379
|
+
email: z.ZodPreprocess<z.ZodString, unknown>;
|
|
380
380
|
email_verified: z.ZodBoolean;
|
|
381
381
|
status: z.ZodEnum<{
|
|
382
382
|
active: "active";
|
|
@@ -385,13 +385,13 @@ export declare const importManifestRequestSchema: z.ZodObject<{
|
|
|
385
385
|
}, z.core.$strict>>;
|
|
386
386
|
user_role_assignments: z.ZodArray<z.ZodObject<{
|
|
387
387
|
organization_slug: z.ZodString;
|
|
388
|
-
email: z.ZodPreprocess<z.ZodString>;
|
|
388
|
+
email: z.ZodPreprocess<z.ZodString, unknown>;
|
|
389
389
|
application_slug: z.ZodString;
|
|
390
390
|
role_slug: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
391
391
|
}, z.core.$strict>>;
|
|
392
392
|
user_claim_values: z.ZodArray<z.ZodObject<{
|
|
393
393
|
organization_slug: z.ZodString;
|
|
394
|
-
email: z.ZodPreprocess<z.ZodString>;
|
|
394
|
+
email: z.ZodPreprocess<z.ZodString, unknown>;
|
|
395
395
|
application_slug: z.ZodString;
|
|
396
396
|
claim_name: z.ZodString;
|
|
397
397
|
value: z.ZodJSONSchema;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tenant-scoped user invitation route.
|
|
3
|
+
*
|
|
4
|
+
* This is the BFF-facing companion to `/api/admin/organizations/:orgId/users`.
|
|
5
|
+
* It accepts either a tenant service client-credentials token or a tenant
|
|
6
|
+
* user's access token, and it only allows roles and claims owned by the token
|
|
7
|
+
* client's application.
|
|
8
|
+
*
|
|
9
|
+
* @module routes/tenant-invitations
|
|
10
|
+
*/
|
|
11
|
+
import Router from '@koa/router';
|
|
12
|
+
import type { TenantInviteTokenProvider } from '../middleware/tenant-invite-auth.js';
|
|
13
|
+
/**
|
|
14
|
+
* Create the tenant invitation router.
|
|
15
|
+
*
|
|
16
|
+
* @param provider - OIDC provider token models used by the auth middleware
|
|
17
|
+
* @returns Configured Koa router
|
|
18
|
+
*/
|
|
19
|
+
export declare function createTenantInviteRouter(provider?: TenantInviteTokenProvider): Router;
|
|
20
|
+
//# sourceMappingURL=tenant-invitations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-invitations.d.ts","sourceRoot":"","sources":["../../src/routes/tenant-invitations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AA2DrF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,CAAC,EAAE,yBAAyB,GAAG,MAAM,CAoDrF"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tenant-scoped user invitation route.
|
|
3
|
+
*
|
|
4
|
+
* This is the BFF-facing companion to `/api/admin/organizations/:orgId/users`.
|
|
5
|
+
* It accepts either a tenant service client-credentials token or a tenant
|
|
6
|
+
* user's access token, and it only allows roles and claims owned by the token
|
|
7
|
+
* client's application.
|
|
8
|
+
*
|
|
9
|
+
* @module routes/tenant-invitations
|
|
10
|
+
*/
|
|
11
|
+
import Router from '@koa/router';
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import { requireTenantInviteAuth } from '../middleware/tenant-invite-auth.js';
|
|
14
|
+
import { tenantInviteRateLimiter } from '../middleware/tenant-invite-rate-limiter.js';
|
|
15
|
+
import { RoleDelegationError, RoleNotFoundError } from '../rbac/errors.js';
|
|
16
|
+
import { InviteConflictError, InviteOrganizationNotFoundError, InvitePreAssignmentError, InviteUserExistsError, inviteUser, inviteUserSchema, } from '../users/invite-service.js';
|
|
17
|
+
/**
|
|
18
|
+
* Map invitation domain errors to sanitized HTTP responses.
|
|
19
|
+
*
|
|
20
|
+
* @param ctx - Koa context
|
|
21
|
+
* @param error - Unknown caught value
|
|
22
|
+
*/
|
|
23
|
+
function handleInviteError(ctx, error) {
|
|
24
|
+
if (error instanceof z.ZodError) {
|
|
25
|
+
ctx.status = 400;
|
|
26
|
+
ctx.body = { error: 'User request is invalid' };
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
if (error instanceof InviteOrganizationNotFoundError) {
|
|
30
|
+
ctx.throw(404, 'Organization not found');
|
|
31
|
+
}
|
|
32
|
+
if (error instanceof InviteUserExistsError) {
|
|
33
|
+
ctx.status = 409;
|
|
34
|
+
ctx.body = { error: 'User already exists in this organization' };
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
if (error instanceof InviteConflictError) {
|
|
38
|
+
ctx.status = 409;
|
|
39
|
+
ctx.body = { error: 'A live invitation already exists for this email' };
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
if (error instanceof InvitePreAssignmentError) {
|
|
43
|
+
ctx.status = 400;
|
|
44
|
+
ctx.body = { error: 'User request is invalid' };
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
if (error instanceof RoleDelegationError) {
|
|
48
|
+
ctx.status = 403;
|
|
49
|
+
ctx.body = { error: 'Forbidden', message: 'The requested operation is not permitted' };
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
if (error instanceof RoleNotFoundError) {
|
|
53
|
+
ctx.status = 400;
|
|
54
|
+
ctx.body = { error: 'User request is invalid' };
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create the tenant invitation router.
|
|
61
|
+
*
|
|
62
|
+
* @param provider - OIDC provider token models used by the auth middleware
|
|
63
|
+
* @returns Configured Koa router
|
|
64
|
+
*/
|
|
65
|
+
export function createTenantInviteRouter(provider) {
|
|
66
|
+
const router = new Router({ prefix: '/api/organizations/:orgId/users' });
|
|
67
|
+
router.use(requireTenantInviteAuth(provider));
|
|
68
|
+
router.post('/invite', tenantInviteRateLimiter(), async (ctx) => {
|
|
69
|
+
try {
|
|
70
|
+
const body = inviteUserSchema.parse(ctx.request.body);
|
|
71
|
+
if (body.claims?.length) {
|
|
72
|
+
// Role assignment is the supported tenant workflow in this iteration.
|
|
73
|
+
// Custom claim pre-assignment remains a control-plane capability.
|
|
74
|
+
ctx.status = 400;
|
|
75
|
+
ctx.body = { error: 'User request is invalid' };
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const actor = ctx.state.tenantInviteActor;
|
|
79
|
+
if (!actor) {
|
|
80
|
+
ctx.status = 401;
|
|
81
|
+
ctx.body = { error: 'Authentication required' };
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const inviteActor = actor.kind === 'service'
|
|
85
|
+
? {
|
|
86
|
+
kind: 'service',
|
|
87
|
+
clientId: actor.clientId,
|
|
88
|
+
displayName: actor.displayName,
|
|
89
|
+
}
|
|
90
|
+
: {
|
|
91
|
+
kind: 'user',
|
|
92
|
+
userId: actor.userId,
|
|
93
|
+
displayName: actor.displayName,
|
|
94
|
+
permissions: actor.permissions,
|
|
95
|
+
};
|
|
96
|
+
const result = await inviteUser({
|
|
97
|
+
organizationId: ctx.params.orgId,
|
|
98
|
+
input: body,
|
|
99
|
+
actor: inviteActor,
|
|
100
|
+
allowedApplicationId: actor.applicationId,
|
|
101
|
+
});
|
|
102
|
+
ctx.status = 201;
|
|
103
|
+
ctx.body = { data: result };
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
handleInviteError(ctx, error);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return router;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=tenant-invitations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-invitations.js","sourceRoot":"","sources":["../../src/routes/tenant-invitations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/routes/users.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/routes/users.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AAqMjC;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CA+UzC;AAmBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAkHnD"}
|
package/dist/routes/users.js
CHANGED
|
@@ -27,24 +27,21 @@
|
|
|
27
27
|
*/
|
|
28
28
|
import Router from '@koa/router';
|
|
29
29
|
import { z } from 'zod';
|
|
30
|
-
import { renderInvitationEmail
|
|
31
|
-
import { InvitationConflictError, replaceInvitation } from '../auth/token-repository.js';
|
|
32
|
-
import { generateToken } from '../auth/tokens.js';
|
|
30
|
+
import { renderInvitationEmail } from '../auth/email-service.js';
|
|
33
31
|
import { config } from '../config/index.js';
|
|
34
32
|
import { ADMIN_PERMISSIONS } from '../lib/admin-permissions.js';
|
|
35
|
-
import { writeAuditLog } from '../lib/audit-log.js';
|
|
36
|
-
import { afterDatabaseCommit, getPool } from '../lib/database.js';
|
|
37
33
|
import { getEntityHistory } from '../lib/entity-history.js';
|
|
38
34
|
import { checkIfMatch, setETagHeader } from '../lib/etag.js';
|
|
39
35
|
import { guardSuperAdmin, SuperAdminProtectionError } from '../lib/super-admin-protection.js';
|
|
40
|
-
import { getSystemConfigNumber } from '../lib/system-config.js';
|
|
41
36
|
import { requireAdminAuth } from '../middleware/admin-auth.js';
|
|
42
37
|
import { requirePermission } from '../middleware/require-permission.js';
|
|
43
38
|
import { requireUserOrganization } from '../middleware/require-user-organization.js';
|
|
44
39
|
import { requireExistingOrganization } from '../middleware/require-existing-organization.js';
|
|
45
40
|
import { getOrganizationById } from '../organizations/service.js';
|
|
41
|
+
import { RoleDelegationError } from '../rbac/errors.js';
|
|
46
42
|
import { UserNotFoundError, UserValidationError } from '../users/errors.js';
|
|
47
43
|
import { exportUserData } from '../users/gdpr.js';
|
|
44
|
+
import { InviteConflictError, InviteOrganizationNotFoundError, InvitePreAssignmentError, InviteUserExistsError, inviteUser, inviteUserSchema, } from '../users/invite-service.js';
|
|
48
45
|
import * as userService from '../users/service.js';
|
|
49
46
|
import { userBirthdateSchema, userCountrySchema, userEmailSchema, userGenderSchema, userLocaleSchema, userPhoneNumberSchema, userPostalCodeSchema, userProfileNameSchema, userProfileUrlSchema, userZoneinfoSchema, } from '../users/validators.js';
|
|
50
47
|
// ---------------------------------------------------------------------------
|
|
@@ -153,6 +150,29 @@ function handleError(ctx, err) {
|
|
|
153
150
|
ctx.body = { error: 'Forbidden', message: 'The requested operation is not permitted' };
|
|
154
151
|
return undefined;
|
|
155
152
|
}
|
|
153
|
+
if (err instanceof InviteOrganizationNotFoundError) {
|
|
154
|
+
ctx.throw(404, 'Organization not found');
|
|
155
|
+
}
|
|
156
|
+
if (err instanceof InviteUserExistsError) {
|
|
157
|
+
ctx.status = 409;
|
|
158
|
+
ctx.body = { error: 'User already exists in this organization' };
|
|
159
|
+
return undefined;
|
|
160
|
+
}
|
|
161
|
+
if (err instanceof InviteConflictError) {
|
|
162
|
+
ctx.status = 409;
|
|
163
|
+
ctx.body = { error: 'A live invitation already exists for this email' };
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
if (err instanceof InvitePreAssignmentError) {
|
|
167
|
+
ctx.status = 400;
|
|
168
|
+
ctx.body = { error: 'User request is invalid' };
|
|
169
|
+
return undefined;
|
|
170
|
+
}
|
|
171
|
+
if (err instanceof RoleDelegationError) {
|
|
172
|
+
ctx.status = 403;
|
|
173
|
+
ctx.body = { error: 'Forbidden', message: 'The requested operation is not permitted' };
|
|
174
|
+
return undefined;
|
|
175
|
+
}
|
|
156
176
|
if (err instanceof UserNotFoundError) {
|
|
157
177
|
ctx.throw(404, 'User not found');
|
|
158
178
|
}
|
|
@@ -374,110 +394,22 @@ export function createUserRouter() {
|
|
|
374
394
|
router.post('/invite', requirePermission(ADMIN_PERMISSIONS.USER_INVITE), async (ctx) => {
|
|
375
395
|
try {
|
|
376
396
|
const body = inviteUserSchema.parse(ctx.request.body);
|
|
377
|
-
const orgId = ctx.params.orgId;
|
|
378
397
|
const adminUser = ctx.state.adminUser;
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
if (!org) {
|
|
382
|
-
ctx.throw(404, 'Organization not found');
|
|
383
|
-
return;
|
|
384
|
-
}
|
|
385
|
-
// Validate referenced applicationIds, roleIds, claimDefinitionIds exist
|
|
386
|
-
if (body.roles?.length || body.claims?.length) {
|
|
387
|
-
const preAssignmentErrors = await validatePreAssignments(body.roles, body.claims);
|
|
388
|
-
if (preAssignmentErrors.length > 0) {
|
|
389
|
-
ctx.status = 400;
|
|
390
|
-
ctx.body = { error: 'User request is invalid' };
|
|
391
|
-
return;
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
const existingUser = await userService.getUserByEmail(orgId, body.email);
|
|
395
|
-
if (existingUser) {
|
|
396
|
-
ctx.status = 409;
|
|
397
|
-
ctx.body = { error: 'User already exists in this organization' };
|
|
398
|
+
if (!adminUser) {
|
|
399
|
+
ctx.throw(401, 'Authentication required');
|
|
398
400
|
return;
|
|
399
401
|
}
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
? adminUser.familyName
|
|
408
|
-
? `${adminUser.givenName} ${adminUser.familyName}`
|
|
409
|
-
: adminUser.givenName
|
|
410
|
-
: (adminUser.email ?? 'Admin');
|
|
411
|
-
// Store pre-assignment details in the token
|
|
412
|
-
const details = {};
|
|
413
|
-
if (body.personalMessage)
|
|
414
|
-
details.personalMessage = body.personalMessage;
|
|
415
|
-
if (body.roles?.length)
|
|
416
|
-
details.roles = body.roles;
|
|
417
|
-
if (body.claims?.length)
|
|
418
|
-
details.claims = body.claims;
|
|
419
|
-
details.inviterName = inviterName;
|
|
420
|
-
// Replace any live invitation for this address, creating no account.
|
|
421
|
-
let invitationId;
|
|
422
|
-
try {
|
|
423
|
-
const invitation = await replaceInvitation({
|
|
424
|
-
organizationId: orgId,
|
|
425
|
-
email: body.email,
|
|
426
|
-
tokenHash: hash,
|
|
427
|
-
expiresAt,
|
|
428
|
-
givenName: body.givenName ?? null,
|
|
429
|
-
familyName: body.familyName ?? null,
|
|
430
|
-
locale: body.locale ?? null,
|
|
431
|
-
details: Object.keys(details).length > 0 ? details : null,
|
|
432
|
-
invitedBy: adminUser.id,
|
|
433
|
-
});
|
|
434
|
-
invitationId = invitation.id;
|
|
435
|
-
}
|
|
436
|
-
catch (error) {
|
|
437
|
-
if (error instanceof InvitationConflictError) {
|
|
438
|
-
ctx.status = 409;
|
|
439
|
-
ctx.body = { error: 'A live invitation already exists for this email' };
|
|
440
|
-
return;
|
|
441
|
-
}
|
|
442
|
-
throw error;
|
|
443
|
-
}
|
|
444
|
-
// Build the invitation URL. Prefix the trusted, configured issuerBaseUrl
|
|
445
|
-
// (never a request header) so the email link is absolute and includes
|
|
446
|
-
// the server origin — matching the password-reset / magic-link pattern.
|
|
447
|
-
const inviteUrl = `${config.issuerBaseUrl}/${org.slug}/auth/accept-invite/${plaintext}`;
|
|
448
|
-
// Send the invitation email
|
|
449
|
-
const emailOptions = { invitationId };
|
|
450
|
-
if (body.personalMessage)
|
|
451
|
-
emailOptions.personalMessage = body.personalMessage;
|
|
452
|
-
emailOptions.inviterName = inviterName;
|
|
453
|
-
await afterDatabaseCommit(() => sendInvitationEmail({
|
|
454
|
-
email: body.email,
|
|
455
|
-
givenName: body.givenName ?? null,
|
|
456
|
-
familyName: body.familyName ?? null,
|
|
457
|
-
}, org, inviteUrl, body.locale ?? org.defaultLocale ?? 'en', emailOptions));
|
|
458
|
-
// Audit log the invitation. No account exists yet, so no user id is recorded.
|
|
459
|
-
writeAuditLog({
|
|
460
|
-
organizationId: orgId,
|
|
461
|
-
actorId: adminUser.id,
|
|
462
|
-
eventType: 'user.invited',
|
|
463
|
-
eventCategory: 'admin',
|
|
464
|
-
description: 'User invitation created',
|
|
465
|
-
metadata: {
|
|
466
|
-
invitationId,
|
|
467
|
-
hasPersonalMessage: !!body.personalMessage,
|
|
468
|
-
preAssignedRoles: body.roles?.length ?? 0,
|
|
469
|
-
preAssignedClaims: body.claims?.length ?? 0,
|
|
402
|
+
const result = await inviteUser({
|
|
403
|
+
organizationId: ctx.params.orgId,
|
|
404
|
+
input: body,
|
|
405
|
+
actor: {
|
|
406
|
+
kind: 'admin',
|
|
407
|
+
userId: adminUser.id,
|
|
408
|
+
displayName: adminUser.email ?? 'Admin',
|
|
470
409
|
},
|
|
471
410
|
});
|
|
472
411
|
ctx.status = 201;
|
|
473
|
-
ctx.body = {
|
|
474
|
-
data: {
|
|
475
|
-
invitationId,
|
|
476
|
-
email: body.email,
|
|
477
|
-
invitationSent: true,
|
|
478
|
-
expiresAt: expiresAt.toISOString(),
|
|
479
|
-
},
|
|
480
|
-
};
|
|
412
|
+
ctx.body = { data: result };
|
|
481
413
|
}
|
|
482
414
|
catch (err) {
|
|
483
415
|
handleError(ctx, err);
|
|
@@ -531,27 +463,6 @@ export function createUserRouter() {
|
|
|
531
463
|
// ---------------------------------------------------------------------------
|
|
532
464
|
// Invitation schemas
|
|
533
465
|
// ---------------------------------------------------------------------------
|
|
534
|
-
/** Schema for the enhanced invitation request */
|
|
535
|
-
const inviteUserSchema = z.object({
|
|
536
|
-
email: z.string().email(),
|
|
537
|
-
givenName: z.string().min(1).max(255).optional(),
|
|
538
|
-
familyName: z.string().min(1).max(255).optional(),
|
|
539
|
-
personalMessage: z.string().max(500).optional(),
|
|
540
|
-
roles: z
|
|
541
|
-
.array(z.object({
|
|
542
|
-
applicationId: z.string().uuid(),
|
|
543
|
-
roleId: z.string().uuid(),
|
|
544
|
-
}))
|
|
545
|
-
.optional(),
|
|
546
|
-
claims: z
|
|
547
|
-
.array(z.object({
|
|
548
|
-
applicationId: z.string().uuid(),
|
|
549
|
-
claimDefinitionId: z.string().uuid(),
|
|
550
|
-
value: z.unknown(),
|
|
551
|
-
}))
|
|
552
|
-
.optional(),
|
|
553
|
-
locale: z.string().max(10).optional(),
|
|
554
|
-
});
|
|
555
466
|
/** Schema for the invitation preview request */
|
|
556
467
|
const invitePreviewSchema = z.object({
|
|
557
468
|
email: z.string().email(),
|
|
@@ -561,59 +472,6 @@ const invitePreviewSchema = z.object({
|
|
|
561
472
|
locale: z.string().max(10).optional(),
|
|
562
473
|
});
|
|
563
474
|
// ---------------------------------------------------------------------------
|
|
564
|
-
// Pre-assignment validation helpers
|
|
565
|
-
// ---------------------------------------------------------------------------
|
|
566
|
-
/**
|
|
567
|
-
* Validate that referenced roles and claims exist in the database.
|
|
568
|
-
*
|
|
569
|
-
* Checks that all deployment-global applicationIds exist, all roleIds
|
|
570
|
-
* belong to their specified application, and all claimDefinitionIds
|
|
571
|
-
* belong to their specified application.
|
|
572
|
-
*
|
|
573
|
-
* @param roles - Array of role pre-assignments to validate
|
|
574
|
-
* @param claims - Array of claim pre-assignments to validate
|
|
575
|
-
* @returns Validation errors; an empty array means every reference is valid
|
|
576
|
-
*/
|
|
577
|
-
async function validatePreAssignments(roles, claims) {
|
|
578
|
-
const pool = getPool();
|
|
579
|
-
const errors = [];
|
|
580
|
-
// Collect unique applicationIds from both roles and claims
|
|
581
|
-
const appIds = new Set();
|
|
582
|
-
roles?.forEach((r) => appIds.add(r.applicationId));
|
|
583
|
-
claims?.forEach((c) => appIds.add(c.applicationId));
|
|
584
|
-
// Applications are deployment-global definitions and are not organization-scoped.
|
|
585
|
-
if (appIds.size > 0) {
|
|
586
|
-
const appResult = await pool.query(`SELECT id FROM applications WHERE id = ANY($1::uuid[])`, [
|
|
587
|
-
Array.from(appIds),
|
|
588
|
-
]);
|
|
589
|
-
const foundIds = new Set(appResult.rows.map((r) => r.id));
|
|
590
|
-
for (const appId of appIds) {
|
|
591
|
-
if (!foundIds.has(appId)) {
|
|
592
|
-
errors.push(`Application ${appId} not found`);
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
// Verify all roles exist within their application
|
|
597
|
-
if (roles?.length) {
|
|
598
|
-
for (const role of roles) {
|
|
599
|
-
const result = await pool.query(`SELECT id FROM roles WHERE id = $1 AND application_id = $2`, [role.roleId, role.applicationId]);
|
|
600
|
-
if (result.rows.length === 0) {
|
|
601
|
-
errors.push(`Role ${role.roleId} not found in application ${role.applicationId}`);
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
// Verify all claim definitions exist within their application
|
|
606
|
-
if (claims?.length) {
|
|
607
|
-
for (const claim of claims) {
|
|
608
|
-
const result = await pool.query(`SELECT id FROM custom_claim_definitions WHERE id = $1 AND application_id = $2`, [claim.claimDefinitionId, claim.applicationId]);
|
|
609
|
-
if (result.rows.length === 0) {
|
|
610
|
-
errors.push(`Claim definition ${claim.claimDefinitionId} not found in application ${claim.applicationId}`);
|
|
611
|
-
}
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
return errors;
|
|
615
|
-
}
|
|
616
|
-
// ---------------------------------------------------------------------------
|
|
617
475
|
// Standalone user router (non-org-scoped)
|
|
618
476
|
// ---------------------------------------------------------------------------
|
|
619
477
|
/**
|
package/dist/routes/users.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/routes/users.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/routes/users.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAmD1C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,2BAAkC,CAAC;AAE3D;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,YAAY,CAAC,EAAE,QAAQ,GAAG,GAAG,CA6dtD"}
|
package/dist/server.js
CHANGED
|
@@ -40,6 +40,7 @@ import { createOrganizationRouter } from './routes/organizations.js';
|
|
|
40
40
|
import { createApplicationRouter } from './routes/applications.js';
|
|
41
41
|
import { createClientRouter } from './routes/clients.js';
|
|
42
42
|
import { createUserRouter, createStandaloneUserRouter } from './routes/users.js';
|
|
43
|
+
import { createTenantInviteRouter } from './routes/tenant-invitations.js';
|
|
43
44
|
import { createInteractionRouter } from './routes/interactions.js';
|
|
44
45
|
import { createMagicLinkRouter } from './routes/magic-link.js';
|
|
45
46
|
import { createPasswordResetRouter } from './routes/password-reset.js';
|
|
@@ -261,6 +262,11 @@ export function createApp(oidcProvider) {
|
|
|
261
262
|
const userRouter = createUserRouter();
|
|
262
263
|
app.use(userRouter.routes());
|
|
263
264
|
app.use(userRouter.allowedMethods());
|
|
265
|
+
// Tenant-scoped invitation API — accepts a tenant service client or tenant
|
|
266
|
+
// user token and is deliberately separate from the control-plane admin API.
|
|
267
|
+
const tenantInviteRouter = createTenantInviteRouter(oidcProvider);
|
|
268
|
+
app.use(tenantInviteRouter.routes());
|
|
269
|
+
app.use(tenantInviteRouter.allowedMethods());
|
|
264
270
|
// Standalone user admin API — non-org-scoped user access by userId
|
|
265
271
|
// Mounted at /api/admin/users/:userId (see routes/users.ts)
|
|
266
272
|
// Used by the Admin GUI SPA for user detail/mutation operations
|