@vibesdotdev/auth 1.0.0-rc.5 → 1.0.0-rc.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/auth.api-client.impl.d.ts.map +1 -1
- package/dist/api/auth.api-client.impl.js +5 -3
- package/dist/api/auth.api-client.impl.js.map +1 -1
- package/dist/cli/commands/logout/auth.logout.impl.d.ts.map +1 -1
- package/dist/cli/commands/logout/auth.logout.impl.js +7 -0
- package/dist/cli/commands/logout/auth.logout.impl.js.map +1 -1
- package/dist/client/admin.d.ts +1 -1
- package/dist/client/admin.d.ts.map +1 -1
- package/dist/client/admin.js +62 -24
- package/dist/client/admin.js.map +1 -1
- package/dist/config/auth.app-credentials.config.descriptor.d.ts.map +1 -1
- package/dist/config/auth.app-credentials.config.descriptor.js +0 -2
- package/dist/config/auth.app-credentials.config.descriptor.js.map +1 -1
- package/dist/config/auth.providers.config.descriptor.d.ts.map +1 -1
- package/dist/config/auth.providers.config.descriptor.js +3 -2
- package/dist/config/auth.providers.config.descriptor.js.map +1 -1
- package/dist/events/session-ending.event.descriptor.d.ts +30 -0
- package/dist/events/session-ending.event.descriptor.d.ts.map +1 -0
- package/dist/events/session-ending.event.descriptor.js +36 -0
- package/dist/events/session-ending.event.descriptor.js.map +1 -0
- package/dist/features/authorization/superorg.d.ts +50 -0
- package/dist/features/authorization/superorg.d.ts.map +1 -0
- package/dist/features/authorization/superorg.js +47 -0
- package/dist/features/authorization/superorg.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/policy/auth-policy.d.ts +86 -0
- package/dist/policy/auth-policy.d.ts.map +1 -0
- package/dist/policy/auth-policy.js +113 -0
- package/dist/policy/auth-policy.js.map +1 -0
- package/dist/runtime/auth-policy.config.descriptor.d.ts +10 -0
- package/dist/runtime/auth-policy.config.descriptor.d.ts.map +1 -0
- package/dist/runtime/auth-policy.config.descriptor.js +46 -0
- package/dist/runtime/auth-policy.config.descriptor.js.map +1 -0
- package/dist/runtime/auth.config.descriptor.js +1 -1
- package/dist/runtime/auth.config.descriptor.js.map +1 -1
- package/dist/runtime/auth.plugin.d.ts.map +1 -1
- package/dist/runtime/auth.plugin.js +2 -0
- package/dist/runtime/auth.plugin.js.map +1 -1
- package/dist/runtime/plugin/core.provider.d.ts.map +1 -1
- package/dist/runtime/plugin/core.provider.js +2 -0
- package/dist/runtime/plugin/core.provider.js.map +1 -1
- package/dist/schemas/admin/index.d.ts +18 -16
- package/dist/schemas/admin/index.d.ts.map +1 -1
- package/dist/schemas/admin/responses.d.ts +15 -0
- package/dist/schemas/admin/responses.d.ts.map +1 -1
- package/dist/schemas/admin/responses.js +20 -0
- package/dist/schemas/admin/responses.js.map +1 -1
- package/dist/schemas/mobile.config.descriptor.js +1 -1
- package/dist/schemas/mobile.config.descriptor.js.map +1 -1
- package/dist/server/jwt-session-handle.d.ts +10 -0
- package/dist/server/jwt-session-handle.d.ts.map +1 -1
- package/dist/server/jwt-session-handle.js +63 -8
- package/dist/server/jwt-session-handle.js.map +1 -1
- package/dist/server/registered-origin-resolver.d.ts +19 -0
- package/dist/server/registered-origin-resolver.d.ts.map +1 -1
- package/dist/server/registered-origin-resolver.js +52 -8
- package/dist/server/registered-origin-resolver.js.map +1 -1
- package/dist/svelte/index.d.ts +0 -1
- package/dist/svelte/index.d.ts.map +1 -1
- package/dist/svelte/index.js +3 -1
- package/dist/system/internal-api/client.d.ts +10 -1
- package/dist/system/internal-api/client.d.ts.map +1 -1
- package/dist/system/internal-api/client.js +17 -1
- package/dist/system/internal-api/client.js.map +1 -1
- package/dist/system/internal-api/endpoints.d.ts +7 -0
- package/dist/system/internal-api/endpoints.d.ts.map +1 -1
- package/dist/system/internal-api/endpoints.js +8 -1
- package/dist/system/internal-api/endpoints.js.map +1 -1
- package/dist/system/internal-api/index.d.ts +1 -1
- package/dist/system/internal-api/index.d.ts.map +1 -1
- package/dist/system/internal-api/index.js +1 -1
- package/dist/system/internal-api/index.js.map +1 -1
- package/dist/system/internal-api/schemas.d.ts +57 -0
- package/dist/system/internal-api/schemas.d.ts.map +1 -1
- package/dist/system/internal-api/schemas.js +42 -0
- package/dist/system/internal-api/schemas.js.map +1 -1
- package/package.json +69 -24
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The platform superorganization.
|
|
3
|
+
*
|
|
4
|
+
* `vibesdotdev` owns the platform and holds the contracts that bind customer
|
|
5
|
+
* organizations: system maintenance, migration, and contractual obligations
|
|
6
|
+
* have to act INSIDE an organization's repositories, packages, hosts, storage,
|
|
7
|
+
* secrets, and deployments. That is a different authority from "a member of
|
|
8
|
+
* that org" — it is the platform owner acting on the org's behalf — so it has
|
|
9
|
+
* ONE declared identity here and every authorization surface reads this module
|
|
10
|
+
* instead of spelling the slug again.
|
|
11
|
+
*
|
|
12
|
+
* The slug is product identity, not deployment configuration: a host that
|
|
13
|
+
* renamed it would no longer be the platform. Membership is still verified by
|
|
14
|
+
* the owning surface (JWT claims for reads, Account's live membership check for
|
|
15
|
+
* mutations), and only owner/admin standing in this organization carries the
|
|
16
|
+
* cross-org authority. A viewer or member of `vibesdotdev` holds no cross-org
|
|
17
|
+
* right.
|
|
18
|
+
*
|
|
19
|
+
* This module is pure: no runtime, no I/O, no dependency beyond the claim shape
|
|
20
|
+
* its callers already carry. Platform, the registry worker, and any other
|
|
21
|
+
* consumer can import it without pulling a server runtime into their bundle.
|
|
22
|
+
*/
|
|
23
|
+
/** The product identity of the platform superorganization. */
|
|
24
|
+
export const SUPERORG_ORGANIZATION_SLUG = 'vibesdotdev';
|
|
25
|
+
/** The org roles that may act for the superorganization. */
|
|
26
|
+
export const SUPERORG_ORGANIZATION_ROLES = ['owner', 'admin'];
|
|
27
|
+
/** Whether an organization role carries superorganization authority. */
|
|
28
|
+
export function isSuperorgOrganizationRole(role) {
|
|
29
|
+
return SUPERORG_ORGANIZATION_ROLES.some((allowed) => allowed === role);
|
|
30
|
+
}
|
|
31
|
+
/** Whether an organization record/claim names the superorganization. */
|
|
32
|
+
export function isSuperorgOrganization(organization) {
|
|
33
|
+
return organization?.slug?.trim().toLowerCase() === SUPERORG_ORGANIZATION_SLUG;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Whether an org claim carries superorganization authority. Membership alone
|
|
37
|
+
* is not enough: the claim must name the superorganization AND hold an
|
|
38
|
+
* owner/admin role.
|
|
39
|
+
*/
|
|
40
|
+
export function isSuperorgClaim(claim) {
|
|
41
|
+
return isSuperorgOrganization(claim) && isSuperorgOrganizationRole(claim?.role);
|
|
42
|
+
}
|
|
43
|
+
/** The first superorganization claim in a claim set, when the caller holds one. */
|
|
44
|
+
export function findSuperorgClaim(claims) {
|
|
45
|
+
return claims.find(isSuperorgClaim);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=superorg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"superorg.js","sourceRoot":"","sources":["../../../src/features/authorization/superorg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,0BAA0B,GAAG,aAAa,CAAC;AAExD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AAevE,wEAAwE;AACxE,MAAM,UAAU,0BAA0B,CAAC,IAA+B;IACzE,OAAO,2BAA2B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,sBAAsB,CAAC,YAAiD;IACvF,OAAO,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,0BAA0B,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAA+C;IAC9E,OAAO,sBAAsB,CAAC,KAAK,CAAC,IAAI,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACjF,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,iBAAiB,CAChC,MAAwB;IAExB,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACrC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -47,6 +47,8 @@ export type { RoleListItem, PermissionListItem, UserRoleAssignment, PermissionTr
|
|
|
47
47
|
export type { GuardConfig, RouteGuardConfig, ResourceGuardConfig } from './features/permissions/schemas/index.ts';
|
|
48
48
|
export { authorizationPrincipalSchema, authorizationGateSchema, organizationAuthorizationRoleSchema, authorizationRequestSchema, authorizationDecisionReasonSchema, authorizationDecisionEvidenceSchema, authorizationDecisionSchema, authorize, hasOrganizationPermission, authorizeOrganizationPermission, organizationAuthorizationRequestSchema, organizationAuthorizationResultSchema } from './features/authorization/organization-policy.ts';
|
|
49
49
|
export type { AuthorizationPrincipal, AuthorizationGate, AuthorizationRequest, AuthorizationDecision, OrganizationAuthorizationRole, OrganizationAuthorizationRequest, OrganizationAuthorizationResult } from './features/authorization/organization-policy.ts';
|
|
50
|
+
export { SUPERORG_ORGANIZATION_ROLES, SUPERORG_ORGANIZATION_SLUG, findSuperorgClaim, isSuperorgClaim, isSuperorgOrganization, isSuperorgOrganizationRole } from './features/authorization/superorg.ts';
|
|
51
|
+
export type { OrganizationClaimLike, OrganizationLike, SuperorgOrganizationRole } from './features/authorization/superorg.ts';
|
|
50
52
|
export type { AuthUser, NamedRow, PermissionCheckResult, PermissionContext, PermissionDefinition, PermissionRequirement, PermissionRequirementWithResourceId, ResourceOwnership, RoleDefinition, SeedMappingRow, SeedPermissionInput, SeedPermissionRow, SeedRoleInput, SeedRoleRow, UserPermissionRow, UserRoleRow } from './features/permissions/schemas/index.ts';
|
|
51
53
|
export { authUserSchema, namedRowSchema, permissionCheckResultSchema, permissionContextSchema, permissionDefinitionSchema, permissionRequirementSchema, permissionRequirementWithResourceIdSchema, resourceOwnershipSchema, roleDefinitionSchema, seedMappingRowSchema, seedPermissionInputSchema, seedPermissionRowSchema, seedRoleInputSchema, seedRoleRowSchema, userPermissionRowSchema, userRoleRowSchema } from './features/permissions/schemas/index.ts';
|
|
52
54
|
export { default as authConfigDescriptor } from './runtime/auth.config.descriptor.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACN,iCAAiC,EACjC,6BAA6B,EAC7B,wBAAwB,EACxB,iCAAiC,EACjC,qCAAqC,EACrC,mCAAmC,EACnC,+BAA+B,EAC/B,iCAAiC,EACjC,4BAA4B,EAC5B,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,gBAAgB,EAChB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACX,2BAA2B,EAC3B,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACN,gCAAgC,EAChC,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,8BAA8B,EAC9B,sBAAsB,EACtB,0BAA0B,EAC1B,gCAAgC,EAChC,sBAAsB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACN,8BAA8B,EAC9B,+BAA+B,EAC/B,MAAM,0CAA0C,CAAC;AAClD,YAAY,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AACjG,YAAY,EACX,oBAAoB,EACpB,0BAA0B,EAC1B,iCAAiC,EACjC,uBAAuB,EACvB,QAAQ,EACR,sBAAsB,EACtB,MAAM,gCAAgC,CAAC;AAGxC,YAAY,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,sBAAsB,EACtB,QAAQ,EACR,qBAAqB,EACrB,eAAe,EACf,SAAS,EACT,uBAAuB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,YAAY,EAAE,cAAc,IAAI,IAAI,EAAE,iBAAiB,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAClF,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,YAAY,EACX,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,EAC9B,8BAA8B,EAC9B,6BAA6B,EAC7B,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC5B,8BAA8B,EAC9B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,4BAA4B,EAC5B,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,0BAA0B,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,iCAAiC,EACjC,mCAAmC,EACnC,yBAAyB,EACzB,iCAAiC,EACjC,+BAA+B,EAC/B,2BAA2B,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,6BAA6B,EAC7B,eAAe,EACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,4BAA4B,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,EAC5B,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,6BAA6B,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACN,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACX,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,eAAe,EACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACX,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,8BAA8B,EAC9B,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACX,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC9B,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACX,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,+BAA+B,EAAE,qCAAqC,EAAE,KAAK,oCAAoC,EAAE,sCAAsC,EAAE,4CAA4C,EAAE,KAAK,2CAA2C,EAAE,MAAM,2BAA2B,CAAC;AAGtS,YAAY,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,2BAA2B,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,qBAAqB,EACrB,+BAA+B,EAC/B,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,YAAY,EACX,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,mCAAmC,CAAC;AAG3C,YAAY,EACX,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,IAAI,EACJ,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,cAAc,EACd,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,WAAW,EACX,YAAY,EACZ,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACX,eAAe,EACf,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACN,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACX,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACX,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACN,4BAA4B,EAC5B,uBAAuB,EACvB,mCAAmC,EACnC,0BAA0B,EAC1B,iCAAiC,EACjC,mCAAmC,EACnC,2BAA2B,EAC3B,SAAS,EACT,yBAAyB,EACzB,+BAA+B,EAC/B,sCAAsC,EACtC,qCAAqC,EACrC,MAAM,iDAAiD,CAAC;AACzD,YAAY,EACX,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC7B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,iDAAiD,CAAC;AACzD,YAAY,EACX,QAAQ,EACR,QAAQ,EACR,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mCAAmC,EACnC,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACN,cAAc,EACd,cAAc,EACd,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,yCAAyC,EACzC,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAG9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EACN,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,7 @@ export { oauthProviderDisplaySchema } from "./features/oauth/schemas/index.js";
|
|
|
23
23
|
export { createRoleSchema, updateRoleSchema, assignRoleSchema, createPermissionSchema, grantPermissionsSchema, revokePermissionsSchema, checkPermissionSchema, permissionActionSchema, permissionResourceSchema, systemRoles, isSystemRole } from "./features/permissions/schemas/index.js";
|
|
24
24
|
export { roleSelectionSchema, permissionFilterSchema, roleAssignmentModalSchema, permissionViewStateSchema } from "./features/permissions/schemas/index.js";
|
|
25
25
|
export { authorizationPrincipalSchema, authorizationGateSchema, organizationAuthorizationRoleSchema, authorizationRequestSchema, authorizationDecisionReasonSchema, authorizationDecisionEvidenceSchema, authorizationDecisionSchema, authorize, hasOrganizationPermission, authorizeOrganizationPermission, organizationAuthorizationRequestSchema, organizationAuthorizationResultSchema } from "./features/authorization/organization-policy.js";
|
|
26
|
+
export { SUPERORG_ORGANIZATION_ROLES, SUPERORG_ORGANIZATION_SLUG, findSuperorgClaim, isSuperorgClaim, isSuperorgOrganization, isSuperorgOrganizationRole } from "./features/authorization/superorg.js";
|
|
26
27
|
export { authUserSchema, namedRowSchema, permissionCheckResultSchema, permissionContextSchema, permissionDefinitionSchema, permissionRequirementSchema, permissionRequirementWithResourceIdSchema, resourceOwnershipSchema, roleDefinitionSchema, seedMappingRowSchema, seedPermissionInputSchema, seedPermissionRowSchema, seedRoleInputSchema, seedRoleRowSchema, userPermissionRowSchema, userRoleRowSchema } from "./features/permissions/schemas/index.js";
|
|
27
28
|
// Runtime descriptors
|
|
28
29
|
export { default as authConfigDescriptor } from "./runtime/auth.config.descriptor.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `auth.policy` — the declared authentication policy, owned and enforced by
|
|
3
|
+
* the auth runtime (never stored by a console that nothing reads).
|
|
4
|
+
*
|
|
5
|
+
* - `password`: length and character-class rules every credential password
|
|
6
|
+
* must satisfy. Enforced server-side where a password is accepted
|
|
7
|
+
* (sign-up, reset, change, set).
|
|
8
|
+
* - `session`: how long a session lives and when its expiry rolls. Applied
|
|
9
|
+
* when the auth runtime builds its session configuration.
|
|
10
|
+
* - `twoFactor.requirement`: `required` means a signed-in user without a
|
|
11
|
+
* second factor is admitted only to enrollment until they enroll. Every
|
|
12
|
+
* interactive principal can: a password user confirms with the password, a
|
|
13
|
+
* passwordless user with a recent provider sign-in.
|
|
14
|
+
*
|
|
15
|
+
* Values resolve through the runtime
|
|
16
|
+
* (`ConfigManifest.forRuntime(runtime, 'auth.policy')`): these schema defaults,
|
|
17
|
+
* overlaid by the host composition and any stored edit. A console (System
|
|
18
|
+
* Web) edits this manifest; it never keeps a second copy.
|
|
19
|
+
*/
|
|
20
|
+
import * as z from 'zod/v4';
|
|
21
|
+
import { type RuntimeRef } from '@vibesdotdev/kernel';
|
|
22
|
+
export declare const AUTH_POLICY_MANIFEST_ID = "auth.policy";
|
|
23
|
+
export declare const PasswordPolicySchema: z.ZodObject<{
|
|
24
|
+
minLength: z.ZodDefault<z.ZodNumber>;
|
|
25
|
+
maxLength: z.ZodDefault<z.ZodNumber>;
|
|
26
|
+
requireUppercase: z.ZodDefault<z.ZodBoolean>;
|
|
27
|
+
requireLowercase: z.ZodDefault<z.ZodBoolean>;
|
|
28
|
+
requireNumber: z.ZodDefault<z.ZodBoolean>;
|
|
29
|
+
requireSpecial: z.ZodDefault<z.ZodBoolean>;
|
|
30
|
+
}, z.core.$strict>;
|
|
31
|
+
export declare const SessionPolicySchema: z.ZodObject<{
|
|
32
|
+
lifetimeSeconds: z.ZodDefault<z.ZodNumber>;
|
|
33
|
+
refreshAfterSeconds: z.ZodDefault<z.ZodNumber>;
|
|
34
|
+
}, z.core.$strict>;
|
|
35
|
+
export declare const TwoFactorRequirementSchema: z.ZodEnum<{
|
|
36
|
+
optional: "optional";
|
|
37
|
+
required: "required";
|
|
38
|
+
}>;
|
|
39
|
+
export declare const AuthPolicySchema: z.ZodObject<{
|
|
40
|
+
password: z.ZodPrefault<z.ZodObject<{
|
|
41
|
+
minLength: z.ZodDefault<z.ZodNumber>;
|
|
42
|
+
maxLength: z.ZodDefault<z.ZodNumber>;
|
|
43
|
+
requireUppercase: z.ZodDefault<z.ZodBoolean>;
|
|
44
|
+
requireLowercase: z.ZodDefault<z.ZodBoolean>;
|
|
45
|
+
requireNumber: z.ZodDefault<z.ZodBoolean>;
|
|
46
|
+
requireSpecial: z.ZodDefault<z.ZodBoolean>;
|
|
47
|
+
}, z.core.$strict>>;
|
|
48
|
+
session: z.ZodPrefault<z.ZodObject<{
|
|
49
|
+
lifetimeSeconds: z.ZodDefault<z.ZodNumber>;
|
|
50
|
+
refreshAfterSeconds: z.ZodDefault<z.ZodNumber>;
|
|
51
|
+
}, z.core.$strict>>;
|
|
52
|
+
twoFactor: z.ZodPrefault<z.ZodObject<{
|
|
53
|
+
requirement: z.ZodDefault<z.ZodEnum<{
|
|
54
|
+
optional: "optional";
|
|
55
|
+
required: "required";
|
|
56
|
+
}>>;
|
|
57
|
+
}, z.core.$strict>>;
|
|
58
|
+
}, z.core.$strict>;
|
|
59
|
+
export type AuthPolicy = z.infer<typeof AuthPolicySchema>;
|
|
60
|
+
export type PasswordPolicy = z.infer<typeof PasswordPolicySchema>;
|
|
61
|
+
/** The one reason a password fails the policy; the set a caller shows is the whole list. */
|
|
62
|
+
export declare const PasswordViolationSchema: z.ZodEnum<{
|
|
63
|
+
"password-too-short": "password-too-short";
|
|
64
|
+
"password-too-long": "password-too-long";
|
|
65
|
+
"password-needs-uppercase": "password-needs-uppercase";
|
|
66
|
+
"password-needs-lowercase": "password-needs-lowercase";
|
|
67
|
+
"password-needs-number": "password-needs-number";
|
|
68
|
+
"password-needs-special": "password-needs-special";
|
|
69
|
+
}>;
|
|
70
|
+
export type PasswordViolation = z.infer<typeof PasswordViolationSchema>;
|
|
71
|
+
/** Every rule `password` breaks under `policy`; empty when it satisfies the policy. */
|
|
72
|
+
export declare function passwordViolations(policy: PasswordPolicy, password: string): PasswordViolation[];
|
|
73
|
+
/** Refuse a password that breaks the policy with a typed, value-free error. */
|
|
74
|
+
export declare function assertPasswordMeetsPolicy(policy: PasswordPolicy, password: string): void;
|
|
75
|
+
/** The policy as the auth runtime resolves it now: schema defaults, composition, stored edit. */
|
|
76
|
+
export declare function loadAuthPolicy(runtime: RuntimeRef): Promise<AuthPolicy>;
|
|
77
|
+
/** Session lifetime and roll interval in the units the session store takes. */
|
|
78
|
+
export declare function sessionLifetime(policy: AuthPolicy): {
|
|
79
|
+
expiresIn: number;
|
|
80
|
+
updateAge: number;
|
|
81
|
+
};
|
|
82
|
+
/** True when a user without a second factor must enroll before anything else. */
|
|
83
|
+
export declare function twoFactorEnrollmentRequired(policy: AuthPolicy, user: {
|
|
84
|
+
twoFactorEnabled: boolean;
|
|
85
|
+
}): boolean;
|
|
86
|
+
//# sourceMappingURL=auth-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-policy.d.ts","sourceRoot":"","sources":["../../src/policy/auth-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGvE,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AAKrD,eAAO,MAAM,oBAAoB;;;;;;;kBAO/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;kBAK9B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;EAAmC,CAAC;AAE3E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;kBAa1B,CAAC;AAEJ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,4FAA4F;AAC5F,eAAO,MAAM,uBAAuB;;;;;;;EAOlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAShG;AAED,+EAA+E;AAC/E,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQxF;AAED,iGAAiG;AACjG,wBAAsB,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAe7E;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAE5F;AAED,iFAAiF;AACjF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;IAAE,gBAAgB,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAE5G"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `auth.policy` — the declared authentication policy, owned and enforced by
|
|
3
|
+
* the auth runtime (never stored by a console that nothing reads).
|
|
4
|
+
*
|
|
5
|
+
* - `password`: length and character-class rules every credential password
|
|
6
|
+
* must satisfy. Enforced server-side where a password is accepted
|
|
7
|
+
* (sign-up, reset, change, set).
|
|
8
|
+
* - `session`: how long a session lives and when its expiry rolls. Applied
|
|
9
|
+
* when the auth runtime builds its session configuration.
|
|
10
|
+
* - `twoFactor.requirement`: `required` means a signed-in user without a
|
|
11
|
+
* second factor is admitted only to enrollment until they enroll. Every
|
|
12
|
+
* interactive principal can: a password user confirms with the password, a
|
|
13
|
+
* passwordless user with a recent provider sign-in.
|
|
14
|
+
*
|
|
15
|
+
* Values resolve through the runtime
|
|
16
|
+
* (`ConfigManifest.forRuntime(runtime, 'auth.policy')`): these schema defaults,
|
|
17
|
+
* overlaid by the host composition and any stored edit. A console (System
|
|
18
|
+
* Web) edits this manifest; it never keeps a second copy.
|
|
19
|
+
*/
|
|
20
|
+
import * as z from 'zod/v4';
|
|
21
|
+
import { CapabilityError } from '@vibesdotdev/kernel';
|
|
22
|
+
import { ConfigManifest } from '@vibesdotdev/config/manifest/config-manifest';
|
|
23
|
+
export const AUTH_POLICY_MANIFEST_ID = 'auth.policy';
|
|
24
|
+
const NINETY_DAYS_SECONDS = 60 * 60 * 24 * 90;
|
|
25
|
+
const ONE_DAY_SECONDS = 60 * 60 * 24;
|
|
26
|
+
export const PasswordPolicySchema = z.strictObject({
|
|
27
|
+
minLength: z.number().int().min(8).max(128).default(8),
|
|
28
|
+
maxLength: z.number().int().min(8).max(256).default(128),
|
|
29
|
+
requireUppercase: z.boolean().default(false),
|
|
30
|
+
requireLowercase: z.boolean().default(false),
|
|
31
|
+
requireNumber: z.boolean().default(false),
|
|
32
|
+
requireSpecial: z.boolean().default(false)
|
|
33
|
+
});
|
|
34
|
+
export const SessionPolicySchema = z.strictObject({
|
|
35
|
+
/** Seconds a session lives from its last roll. */
|
|
36
|
+
lifetimeSeconds: z.number().int().min(300).max(60 * 60 * 24 * 365).default(NINETY_DAYS_SECONDS),
|
|
37
|
+
/** Seconds after which use of a session rolls its expiry forward. */
|
|
38
|
+
refreshAfterSeconds: z.number().int().min(60).default(ONE_DAY_SECONDS)
|
|
39
|
+
});
|
|
40
|
+
export const TwoFactorRequirementSchema = z.enum(['optional', 'required']);
|
|
41
|
+
export const AuthPolicySchema = z
|
|
42
|
+
.strictObject({
|
|
43
|
+
password: PasswordPolicySchema.prefault({}),
|
|
44
|
+
session: SessionPolicySchema.prefault({}),
|
|
45
|
+
twoFactor: z.strictObject({ requirement: TwoFactorRequirementSchema.default('optional') }).prefault({})
|
|
46
|
+
})
|
|
47
|
+
.refine((policy) => policy.password.maxLength >= policy.password.minLength, {
|
|
48
|
+
path: ['password', 'maxLength'],
|
|
49
|
+
message: 'The maximum password length must not be below the minimum.'
|
|
50
|
+
})
|
|
51
|
+
.refine((policy) => policy.session.refreshAfterSeconds <= policy.session.lifetimeSeconds, {
|
|
52
|
+
path: ['session', 'refreshAfterSeconds'],
|
|
53
|
+
message: 'A session must be refreshable within its lifetime.'
|
|
54
|
+
});
|
|
55
|
+
/** The one reason a password fails the policy; the set a caller shows is the whole list. */
|
|
56
|
+
export const PasswordViolationSchema = z.enum([
|
|
57
|
+
'password-too-short',
|
|
58
|
+
'password-too-long',
|
|
59
|
+
'password-needs-uppercase',
|
|
60
|
+
'password-needs-lowercase',
|
|
61
|
+
'password-needs-number',
|
|
62
|
+
'password-needs-special'
|
|
63
|
+
]);
|
|
64
|
+
/** Every rule `password` breaks under `policy`; empty when it satisfies the policy. */
|
|
65
|
+
export function passwordViolations(policy, password) {
|
|
66
|
+
const violations = [];
|
|
67
|
+
if (password.length < policy.minLength)
|
|
68
|
+
violations.push('password-too-short');
|
|
69
|
+
if (password.length > policy.maxLength)
|
|
70
|
+
violations.push('password-too-long');
|
|
71
|
+
if (policy.requireUppercase && !/\p{Lu}/u.test(password))
|
|
72
|
+
violations.push('password-needs-uppercase');
|
|
73
|
+
if (policy.requireLowercase && !/\p{Ll}/u.test(password))
|
|
74
|
+
violations.push('password-needs-lowercase');
|
|
75
|
+
if (policy.requireNumber && !/\p{N}/u.test(password))
|
|
76
|
+
violations.push('password-needs-number');
|
|
77
|
+
if (policy.requireSpecial && !/[^\p{L}\p{N}\s]/u.test(password))
|
|
78
|
+
violations.push('password-needs-special');
|
|
79
|
+
return violations;
|
|
80
|
+
}
|
|
81
|
+
/** Refuse a password that breaks the policy with a typed, value-free error. */
|
|
82
|
+
export function assertPasswordMeetsPolicy(policy, password) {
|
|
83
|
+
const violations = passwordViolations(policy, password);
|
|
84
|
+
if (violations.length === 0)
|
|
85
|
+
return;
|
|
86
|
+
throw new CapabilityError('The password does not meet the password policy.', 'INVALID_INPUT', {
|
|
87
|
+
reason: 'password-policy-violation',
|
|
88
|
+
recoveryHint: 'Choose a password that satisfies the listed rules.',
|
|
89
|
+
details: { violations }
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/** The policy as the auth runtime resolves it now: schema defaults, composition, stored edit. */
|
|
93
|
+
export async function loadAuthPolicy(runtime) {
|
|
94
|
+
// A host that never composed the manifest has no declared policy; defaults are not guessed for it.
|
|
95
|
+
if (!ConfigManifest.isRegistered(runtime, AUTH_POLICY_MANIFEST_ID)) {
|
|
96
|
+
throw new CapabilityError("This host reads the authentication policy but does not compose the 'auth.policy' manifest.", 'UNAVAILABLE', {
|
|
97
|
+
reason: 'auth-policy-not-composed',
|
|
98
|
+
retryable: false,
|
|
99
|
+
details: { manifest: AUTH_POLICY_MANIFEST_ID },
|
|
100
|
+
recoveryHint: "Select '@vibesdotdev/auth/plugin' in this host's composition, which registers 'auth.policy'."
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
return AuthPolicySchema.parse(await ConfigManifest.forRuntime(runtime, AUTH_POLICY_MANIFEST_ID).load());
|
|
104
|
+
}
|
|
105
|
+
/** Session lifetime and roll interval in the units the session store takes. */
|
|
106
|
+
export function sessionLifetime(policy) {
|
|
107
|
+
return { expiresIn: policy.session.lifetimeSeconds, updateAge: policy.session.refreshAfterSeconds };
|
|
108
|
+
}
|
|
109
|
+
/** True when a user without a second factor must enroll before anything else. */
|
|
110
|
+
export function twoFactorEnrollmentRequired(policy, user) {
|
|
111
|
+
return policy.twoFactor.requirement === 'required' && !user.twoFactorEnabled;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=auth-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-policy.js","sourceRoot":"","sources":["../../src/policy/auth-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `auth.policy` config manifest descriptor — the authentication policy the
|
|
3
|
+
* auth runtime enforces (see `../policy/auth-policy.ts`). A console edits
|
|
4
|
+
* this manifest; auth-web reads it where it accepts passwords, builds
|
|
5
|
+
* sessions, and admits signed-in users.
|
|
6
|
+
*/
|
|
7
|
+
import type { ConfigManifestDescriptor } from '@vibesdotdev/config/schemas/config-manifest-descriptor';
|
|
8
|
+
declare const descriptor: ConfigManifestDescriptor;
|
|
9
|
+
export default descriptor;
|
|
10
|
+
//# sourceMappingURL=auth-policy.config.descriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-policy.config.descriptor.d.ts","sourceRoot":"","sources":["../../src/runtime/auth-policy.config.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAGvG,QAAA,MAAM,UAAU,EAAE,wBA0CjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { AUTH_POLICY_MANIFEST_ID, AuthPolicySchema } from "../policy/auth-policy.js";
|
|
2
|
+
const descriptor = {
|
|
3
|
+
kind: 'config/manifest',
|
|
4
|
+
id: AUTH_POLICY_MANIFEST_ID,
|
|
5
|
+
name: 'Authentication policy',
|
|
6
|
+
description: 'Password rules, session lifetime, and the second-factor requirement the auth runtime enforces',
|
|
7
|
+
namespace: AUTH_POLICY_MANIFEST_ID,
|
|
8
|
+
schema: AuthPolicySchema,
|
|
9
|
+
allowedAdapters: ['storage.json', 'storage.localdb'],
|
|
10
|
+
scope: 'global',
|
|
11
|
+
customTables: false,
|
|
12
|
+
version: 1,
|
|
13
|
+
internal: false,
|
|
14
|
+
tier: 'system',
|
|
15
|
+
category: 'auth',
|
|
16
|
+
fields: {
|
|
17
|
+
'password.minLength': { ui: { label: 'Minimum length', component: 'number', group: 'password' } },
|
|
18
|
+
'password.maxLength': { ui: { label: 'Maximum length', component: 'number', group: 'password' } },
|
|
19
|
+
'password.requireUppercase': { ui: { label: 'Require an uppercase letter', component: 'switch', group: 'password' } },
|
|
20
|
+
'password.requireLowercase': { ui: { label: 'Require a lowercase letter', component: 'switch', group: 'password' } },
|
|
21
|
+
'password.requireNumber': { ui: { label: 'Require a number', component: 'switch', group: 'password' } },
|
|
22
|
+
'password.requireSpecial': { ui: { label: 'Require a special character', component: 'switch', group: 'password' } },
|
|
23
|
+
'session.lifetimeSeconds': { ui: { label: 'Session lifetime (seconds)', component: 'number', group: 'session' } },
|
|
24
|
+
'session.refreshAfterSeconds': { ui: { label: 'Roll expiry after (seconds)', component: 'number', group: 'session' } },
|
|
25
|
+
'twoFactor.requirement': {
|
|
26
|
+
ui: {
|
|
27
|
+
label: 'Second factor',
|
|
28
|
+
description: 'Required: signed-in users without a second factor may only enroll until they do.',
|
|
29
|
+
component: 'select',
|
|
30
|
+
group: 'twoFactor'
|
|
31
|
+
},
|
|
32
|
+
options: [
|
|
33
|
+
{ value: 'optional', label: 'Optional' },
|
|
34
|
+
{ value: 'required', label: 'Required' }
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
groups: [
|
|
39
|
+
{ id: 'password', label: 'Passwords', order: 1 },
|
|
40
|
+
{ id: 'session', label: 'Sessions', order: 2 },
|
|
41
|
+
{ id: 'twoFactor', label: 'Second factor', order: 3 }
|
|
42
|
+
],
|
|
43
|
+
enabled: true
|
|
44
|
+
};
|
|
45
|
+
export default descriptor;
|
|
46
|
+
//# sourceMappingURL=auth-policy.config.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-policy.config.descriptor.js","sourceRoot":"","sources":["../../src/runtime/auth-policy.config.descriptor.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAErF,MAAM,UAAU,GAA6B;IAC5C,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,uBAAuB;IAC3B,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,+FAA+F;IAC5G,SAAS,EAAE,uBAAuB;IAClC,MAAM,EAAE,gBAAgB;IACxB,eAAe,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC;IACpD,KAAK,EAAE,QAAQ;IACf,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE;QACP,oBAAoB,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QACjG,oBAAoB,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QACjG,2BAA2B,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QACrH,2BAA2B,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QACpH,wBAAwB,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QACvG,yBAAyB,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QACnH,yBAAyB,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QACjH,6BAA6B,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QACtH,uBAAuB,EAAE;YACxB,EAAE,EAAE;gBACH,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,kFAAkF;gBAC/F,SAAS,EAAE,QAAQ;gBACnB,KAAK,EAAE,WAAW;aAClB;YACD,OAAO,EAAE;gBACR,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;gBACxC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;aACxC;SACD;KACD;IACD,MAAM,EAAE;QACP,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;QAChD,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;QAC9C,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE;KACrD;IACD,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -25,7 +25,7 @@ const descriptor = {
|
|
|
25
25
|
// Storage configuration
|
|
26
26
|
namespace: 'auth',
|
|
27
27
|
schema: authCredentialsSchema,
|
|
28
|
-
allowedAdapters: ['storage.localdb'],
|
|
28
|
+
allowedAdapters: ['storage.localdb', 'storage.json'],
|
|
29
29
|
scope: 'global',
|
|
30
30
|
customTables: false,
|
|
31
31
|
version: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.config.descriptor.js","sourceRoot":"","sources":["../../src/runtime/auth.config.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,UAAU,GAA6B;IAC5C,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,2CAA2C;IAExD,wBAAwB;IACxB,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE,qBAAqB;IAC7B,eAAe,EAAE,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.config.descriptor.js","sourceRoot":"","sources":["../../src/runtime/auth.config.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,UAAU,GAA6B;IAC5C,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,2CAA2C;IAExD,wBAAwB;IACxB,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE,qBAAqB;IAC7B,eAAe,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC;IACpD,KAAK,EAAE,QAAQ;IACf,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,KAAK;IAEf,+EAA+E;IAC/E,eAAe,EAAE;QAChB,mBAAmB;QACnB,oBAAoB;QACpB,0BAA0B;QAC1B,0BAA0B;KAC1B;IAED,iCAAiC;IACjC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,QAAQ;IAElB,wBAAwB;IACxB,MAAM,EAAE;QACP,mBAAmB,EAAE;YACpB,EAAE,EAAE;gBACH,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,qCAAqC;gBAClD,SAAS,EAAE,QAAQ;aACnB;SACD;QACD,oBAAoB,EAAE;YACrB,EAAE,EAAE;gBACH,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,4BAA4B;gBACzC,SAAS,EAAE,QAAQ;aACnB;SACD;QACD,0BAA0B,EAAE;YAC3B,EAAE,EAAE;gBACH,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,0BAA0B;gBACvC,SAAS,EAAE,QAAQ;aACnB;SACD;QACD,0BAA0B,EAAE;YAC3B,EAAE,EAAE;gBACH,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,wCAAwC;gBACrD,SAAS,EAAE,QAAQ;aACnB;SACD;KACD;IAED,aAAa;IACb,UAAU,EAAE;QACX,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,CAAC;KACR;IAED,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.plugin.d.ts","sourceRoot":"","sources":["../../src/runtime/auth.plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.plugin.d.ts","sourceRoot":"","sources":["../../src/runtime/auth.plugin.ts"],"names":[],"mappings":"AAwBA,QAAA,MAAM,aAAa,6CAgDjB,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -5,6 +5,7 @@ import authCoreProviderPlugin from "./plugin/core.provider.js";
|
|
|
5
5
|
import authSupportPlugin from "./plugin/support.js";
|
|
6
6
|
import authApiClientPlugin from "./plugin/api-client.js";
|
|
7
7
|
import authLoginSucceededEventDescriptor from "../events/session-established.event.descriptor.js";
|
|
8
|
+
import authLogoutStartedEventDescriptor from "../events/session-ending.event.descriptor.js";
|
|
8
9
|
import authEmailConfigDescriptor from "../features/email/email.config.descriptor.js";
|
|
9
10
|
import authOnClientAuthRejectedSubscription from "../events/on-client-auth-rejected.subscription.descriptor.js";
|
|
10
11
|
// Docs
|
|
@@ -30,6 +31,7 @@ const defaultExport = createRuntimePlugin({
|
|
|
30
31
|
providersDescriptor,
|
|
31
32
|
keysDescriptor,
|
|
32
33
|
authLoginSucceededEventDescriptor,
|
|
34
|
+
authLogoutStartedEventDescriptor,
|
|
33
35
|
authDeviceSessionCapabilityDescriptor,
|
|
34
36
|
authOnClientAuthRejectedSubscription
|
|
35
37
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.plugin.js","sourceRoot":"","sources":["../../src/runtime/auth.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACN,qCAAqC,EACrC,mCAAmC,EACnC,+BAA+B,EAC/B,MAAM,qDAAqD,CAAC;AAC7D,OAAO,sBAAsB,MAAM,2BAA2B,CAAC;AAC/D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,iCAAiC,MAAM,mDAAmD,CAAC;AAClG,OAAO,yBAAyB,MAAM,8CAA8C,CAAC;AACrF,OAAO,oCAAoC,MAAM,8DAA8D,CAAC;AAEhH,OAAO;AACP,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,kBAAkB,MAAM,qCAAqC,CAAC;AACrE,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,2CAA2C,CAAC;AAC5E,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAE7D,kIAAkI;AAClI,MAAM,aAAa,GAAG,mBAAmB,CAAC;IACzC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,iDAAiD;IAC9D,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC;IAClD,KAAK,EAAE,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;IAC1D,WAAW,EAAE;QACZ,yBAAyB;QACzB,cAAc;QACd,eAAe;QACf,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,cAAc;QACd,iCAAiC;QACjC,qCAAqC;QACrC,oCAAoC;KACpC;IACD,OAAO,EAAE;QACR,MAAM,CACL,wBAAwB,EACxB,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAC5B,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,6CAA6C,CAAC,CACjE;QACD,MAAM,CACL,oCAAoC,EACpC,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAChC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAC/D;QACD,2EAA2E;QAC3E,sEAAsE;QACtE,sEAAsE;QACtE,sBAAsB;KACtB;IACD,eAAe,EAAE;QAChB;YACC,MAAM,EAAE,+BAA+B,CAAC,EAAE;YAC1C,OAAO,EAAE,qCAAqC,CAAC,EAAE;YACjD,QAAQ,EAAE,mCAAmC;SAC7C;KACD;IAED,KAAK,CAAC,UAAU,CAAC,OAAO;QACvB,MAAM,OAAO,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;QACrD,MAAM,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAChD,MAAM,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACnD,CAAC;CACD,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"auth.plugin.js","sourceRoot":"","sources":["../../src/runtime/auth.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACN,qCAAqC,EACrC,mCAAmC,EACnC,+BAA+B,EAC/B,MAAM,qDAAqD,CAAC;AAC7D,OAAO,sBAAsB,MAAM,2BAA2B,CAAC;AAC/D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,iCAAiC,MAAM,mDAAmD,CAAC;AAClG,OAAO,gCAAgC,MAAM,8CAA8C,CAAC;AAC5F,OAAO,yBAAyB,MAAM,8CAA8C,CAAC;AACrF,OAAO,oCAAoC,MAAM,8DAA8D,CAAC;AAEhH,OAAO;AACP,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,kBAAkB,MAAM,qCAAqC,CAAC;AACrE,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,2CAA2C,CAAC;AAC5E,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAE7D,kIAAkI;AAClI,MAAM,aAAa,GAAG,mBAAmB,CAAC;IACzC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,iDAAiD;IAC9D,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC;IAClD,KAAK,EAAE,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;IAC1D,WAAW,EAAE;QACZ,yBAAyB;QACzB,cAAc;QACd,eAAe;QACf,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,cAAc;QACd,iCAAiC;QACjC,gCAAgC;QAChC,qCAAqC;QACrC,oCAAoC;KACpC;IACD,OAAO,EAAE;QACR,MAAM,CACL,wBAAwB,EACxB,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAC5B,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,6CAA6C,CAAC,CACjE;QACD,MAAM,CACL,oCAAoC,EACpC,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAChC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAC/D;QACD,2EAA2E;QAC3E,sEAAsE;QACtE,sEAAsE;QACtE,sBAAsB;KACtB;IACD,eAAe,EAAE;QAChB;YACC,MAAM,EAAE,+BAA+B,CAAC,EAAE;YAC1C,OAAO,EAAE,qCAAqC,CAAC,EAAE;YACjD,QAAQ,EAAE,mCAAmC;SAC7C;KACD;IAED,KAAK,CAAC,UAAU,CAAC,OAAO;QACvB,MAAM,OAAO,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;QACrD,MAAM,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAChD,MAAM,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACnD,CAAC;CACD,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.provider.d.ts","sourceRoot":"","sources":["../../../src/runtime/plugin/core.provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.provider.d.ts","sourceRoot":"","sources":["../../../src/runtime/plugin/core.provider.ts"],"names":[],"mappings":"AAcA,QAAA,MAAM,aAAa,6CAsBjB,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { createRuntimePlugin, loader } from '@vibesdotdev/kernel';
|
|
|
2
2
|
import authContext from "../auth.context.descriptor.js";
|
|
3
3
|
import authIdentityPlugin from "./identity.js";
|
|
4
4
|
import autoVerifyConfig from "../auto-verify.config.descriptor.js";
|
|
5
|
+
import authPolicyConfig from "../auth-policy.config.descriptor.js";
|
|
5
6
|
import authApiClient from "../../client/auth.legacy-api-client.descriptor.js";
|
|
6
7
|
import authProviderApi from "../providers/auth-provider.api.descriptor.js";
|
|
7
8
|
import authProviderDb from "../providers/db.descriptor.js";
|
|
@@ -16,6 +17,7 @@ const defaultExport = createRuntimePlugin({
|
|
|
16
17
|
descriptors: [
|
|
17
18
|
authContext,
|
|
18
19
|
autoVerifyConfig,
|
|
20
|
+
authPolicyConfig,
|
|
19
21
|
authApiClient,
|
|
20
22
|
authProviderApi,
|
|
21
23
|
authProviderDb,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.provider.js","sourceRoot":"","sources":["../../../src/runtime/plugin/core.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,kBAAkB,MAAM,eAAe,CAAC;AAC/C,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,aAAa,MAAM,mDAAmD,CAAC;AAC9E,OAAO,eAAe,MAAM,8CAA8C,CAAC;AAC3E,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,mBAAmB,MAAM,kDAAkD,CAAC;AACnF,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAC3F,OAAO,oBAAoB,MAAM,sDAAsD,CAAC;AAExF,kIAAkI;AAClI,MAAM,aAAa,GAAG,mBAAmB,CAAC;IACzC,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,sEAAsE;IACnF,WAAW,EAAE;QACZ,WAAW;QACX,gBAAgB;QAChB,aAAa;QACb,eAAe;QACf,cAAc;QACd,mBAAmB;QACnB,0BAA0B;QAC1B,oBAAoB;KACpB;IACD,KAAK,CAAC,UAAU,CAAC,OAAO;QACvB,MAAM,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,EAAE;QACR,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC;KAC5F;CACD,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"core.provider.js","sourceRoot":"","sources":["../../../src/runtime/plugin/core.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,kBAAkB,MAAM,eAAe,CAAC;AAC/C,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,aAAa,MAAM,mDAAmD,CAAC;AAC9E,OAAO,eAAe,MAAM,8CAA8C,CAAC;AAC3E,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,mBAAmB,MAAM,kDAAkD,CAAC;AACnF,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAC3F,OAAO,oBAAoB,MAAM,sDAAsD,CAAC;AAExF,kIAAkI;AAClI,MAAM,aAAa,GAAG,mBAAmB,CAAC;IACzC,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,sEAAsE;IACnF,WAAW,EAAE;QACZ,WAAW;QACX,gBAAgB;QAChB,gBAAgB;QAChB,aAAa;QACb,eAAe;QACf,cAAc;QACd,mBAAmB;QACnB,0BAA0B;QAC1B,oBAAoB;KACpB;IACD,KAAK,CAAC,UAAU,CAAC,OAAO;QACvB,MAAM,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,EAAE;QACR,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC;KAC5F;CACD,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -71,6 +71,10 @@ export type AuthAdminSecuritySessionsPage = {
|
|
|
71
71
|
sessions: AuthAdminSecuritySessionRecord[];
|
|
72
72
|
pagination: AuthAdminSecurityPagination;
|
|
73
73
|
};
|
|
74
|
+
/** Why a privileged admin change is being made; required, recorded in auth's audit trail. */
|
|
75
|
+
export interface AuthAdminMutationOptions {
|
|
76
|
+
reason: string;
|
|
77
|
+
}
|
|
74
78
|
export type AuthAdminSecurityApiKeyStatus = 'active' | 'revoked' | 'expired' | 'disabled' | 'all';
|
|
75
79
|
export type AuthAdminSecurityApiKeyRecord = {
|
|
76
80
|
id: string;
|
|
@@ -158,6 +162,7 @@ export type AuthAdminCreateUserInput = {
|
|
|
158
162
|
name?: string;
|
|
159
163
|
emailVerified?: boolean;
|
|
160
164
|
isSuperuser?: boolean;
|
|
165
|
+
reason: string;
|
|
161
166
|
};
|
|
162
167
|
export type AuthAdminCreateUserResult = {
|
|
163
168
|
success: boolean;
|
|
@@ -190,35 +195,28 @@ export type AuthAdminClient = {
|
|
|
190
195
|
}): Promise<AuthAdminUsersPage>;
|
|
191
196
|
getUser(userId: string): Promise<AuthAdminUserDetail | null>;
|
|
192
197
|
createUser(input: AuthAdminCreateUserInput): Promise<AuthAdminCreateUserResult>;
|
|
193
|
-
setUserSuperuserStatus(userId: string, makeSuperuser: boolean): Promise<{
|
|
198
|
+
setUserSuperuserStatus(userId: string, makeSuperuser: boolean, options: AuthAdminMutationOptions): Promise<{
|
|
194
199
|
success: boolean;
|
|
195
200
|
}>;
|
|
196
|
-
setUserStatus(userId: string, status: AuthAdminUserStatus, options
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
bulkSetUserStatus(userIds: string[], status: AuthAdminUserStatus, options?: {
|
|
200
|
-
reason?: string | null;
|
|
201
|
-
}): Promise<AuthAdminBulkSetStatusResult>;
|
|
202
|
-
deleteUser(userId: string): Promise<{
|
|
201
|
+
setUserStatus(userId: string, status: AuthAdminUserStatus, options: AuthAdminMutationOptions): Promise<AuthAdminSetStatusResult>;
|
|
202
|
+
bulkSetUserStatus(userIds: string[], status: AuthAdminUserStatus, options: AuthAdminMutationOptions): Promise<AuthAdminBulkSetStatusResult>;
|
|
203
|
+
deleteUser(userId: string, options: AuthAdminMutationOptions): Promise<{
|
|
203
204
|
success: boolean;
|
|
204
205
|
}>;
|
|
205
|
-
|
|
206
|
+
/** Every privileged call below requires a non-empty `reason`; revoke-all spares the caller's own session and key. */
|
|
207
|
+
revokeSessions(options: AuthAdminMutationOptions): Promise<{
|
|
206
208
|
success: boolean;
|
|
207
209
|
revoked: number;
|
|
208
210
|
}>;
|
|
209
|
-
revokeApiKeys(): Promise<{
|
|
211
|
+
revokeApiKeys(options: AuthAdminMutationOptions): Promise<{
|
|
210
212
|
success: boolean;
|
|
211
213
|
revoked: number;
|
|
212
214
|
}>;
|
|
213
|
-
revokeSession(sessionId: string, options
|
|
214
|
-
reason?: string | null;
|
|
215
|
-
}): Promise<{
|
|
215
|
+
revokeSession(sessionId: string, options: AuthAdminMutationOptions): Promise<{
|
|
216
216
|
success: boolean;
|
|
217
217
|
revoked: number;
|
|
218
218
|
}>;
|
|
219
|
-
revokeApiKey(apiKeyId: string, options
|
|
220
|
-
reason?: string | null;
|
|
221
|
-
}): Promise<{
|
|
219
|
+
revokeApiKey(apiKeyId: string, options: AuthAdminMutationOptions): Promise<{
|
|
222
220
|
success: boolean;
|
|
223
221
|
revoked: number;
|
|
224
222
|
}>;
|
|
@@ -227,23 +225,27 @@ export type AuthAdminClient = {
|
|
|
227
225
|
listRolePermissions(): Promise<RolePermissionRecord[]>;
|
|
228
226
|
createRole(input: {
|
|
229
227
|
name: string;
|
|
228
|
+
reason: string;
|
|
230
229
|
description?: string;
|
|
231
230
|
permissionIds?: string[];
|
|
232
231
|
}): Promise<RoleRecord>;
|
|
233
232
|
updateRole(input: {
|
|
234
233
|
id: string;
|
|
234
|
+
reason: string;
|
|
235
235
|
name: string;
|
|
236
236
|
description?: string;
|
|
237
237
|
permissionIds?: string[];
|
|
238
238
|
}): Promise<void>;
|
|
239
239
|
createPermission(input: {
|
|
240
240
|
name: string;
|
|
241
|
+
reason: string;
|
|
241
242
|
resource: string;
|
|
242
243
|
action?: string;
|
|
243
244
|
description?: string;
|
|
244
245
|
}): Promise<PermissionRecord>;
|
|
245
246
|
updatePermission(input: {
|
|
246
247
|
id: string;
|
|
248
|
+
reason: string;
|
|
247
249
|
name: string;
|
|
248
250
|
resource: string;
|
|
249
251
|
action?: string;
|