@nu-art/permissions-backend 0.500.0 → 0.500.6
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/RequirePermission.d.ts +22 -10
- package/RequirePermission.js +24 -15
- package/_entity/access-group/ModuleBE_AccessGroupDB.d.ts +13 -0
- package/_entity/access-group/ModuleBE_AccessGroupDB.js +36 -0
- package/_entity/access-group/module-pack.d.ts +1 -0
- package/_entity/access-group/module-pack.js +3 -0
- package/_entity/permission-scope/ModuleBE_PermissionScopeDB.d.ts +6 -0
- package/_entity/permission-scope/ModuleBE_PermissionScopeDB.js +8 -0
- package/_entity/permission-scope/module-pack.d.ts +1 -0
- package/_entity/permission-scope/module-pack.js +3 -0
- package/_entity/user-permissions/ModuleBE_UserPermissionsAPI.d.ts +9 -0
- package/_entity/{permission-user/ModuleBE_PermissionUserAPI.js → user-permissions/ModuleBE_UserPermissionsAPI.js} +17 -16
- package/_entity/user-permissions/ModuleBE_UserPermissionsDB.d.ts +6 -0
- package/_entity/user-permissions/ModuleBE_UserPermissionsDB.js +8 -0
- package/_entity/user-permissions/module-pack.d.ts +2 -0
- package/_entity/user-permissions/module-pack.js +3 -0
- package/assertion-types.d.ts +9 -0
- package/consts.d.ts +7 -4
- package/consts.js +4 -2
- package/core/function-permission-registry.d.ts +5 -6
- package/core/function-permission-registry.js +10 -0
- package/core/module-pack.js +6 -7
- package/document-access-api.d.ts +6 -0
- package/document-access-api.js +49 -0
- package/document-access-enforcement.d.ts +9 -0
- package/document-access-enforcement.js +137 -0
- package/index.d.ts +12 -6
- package/index.js +12 -6
- package/modules/ModuleBE_Permissions.d.ts +63 -78
- package/modules/ModuleBE_Permissions.js +494 -441
- package/modules/ModuleBE_PermissionsAssert.d.ts +6 -54
- package/modules/ModuleBE_PermissionsAssert.js +60 -285
- package/package.json +14 -12
- package/PermissionKey_BE.d.ts +0 -16
- package/PermissionKey_BE.js +0 -59
- package/_entity/permission-access-level/ModuleBE_PermissionAccessLevelDB.d.ts +0 -13
- package/_entity/permission-access-level/ModuleBE_PermissionAccessLevelDB.js +0 -49
- package/_entity/permission-access-level/index.d.ts +0 -2
- package/_entity/permission-access-level/index.js +0 -2
- package/_entity/permission-access-level/module-pack.d.ts +0 -1
- package/_entity/permission-access-level/module-pack.js +0 -3
- package/_entity/permission-api/ModuleBE_PermissionAPIDB.d.ts +0 -10
- package/_entity/permission-api/ModuleBE_PermissionAPIDB.js +0 -62
- package/_entity/permission-api/index.d.ts +0 -2
- package/_entity/permission-api/index.js +0 -2
- package/_entity/permission-api/module-pack.d.ts +0 -1
- package/_entity/permission-api/module-pack.js +0 -3
- package/_entity/permission-domain/ModuleBE_PermissionDomainDB.d.ts +0 -9
- package/_entity/permission-domain/ModuleBE_PermissionDomainDB.js +0 -22
- package/_entity/permission-domain/index.d.ts +0 -2
- package/_entity/permission-domain/index.js +0 -2
- package/_entity/permission-domain/module-pack.d.ts +0 -1
- package/_entity/permission-domain/module-pack.js +0 -3
- package/_entity/permission-group/ModuleBE_PermissionGroupDB.d.ts +0 -12
- package/_entity/permission-group/ModuleBE_PermissionGroupDB.js +0 -65
- package/_entity/permission-group/index.d.ts +0 -2
- package/_entity/permission-group/index.js +0 -2
- package/_entity/permission-group/module-pack.d.ts +0 -1
- package/_entity/permission-group/module-pack.js +0 -3
- package/_entity/permission-project/ModuleBE_PermissionProjectDB.d.ts +0 -8
- package/_entity/permission-project/ModuleBE_PermissionProjectDB.js +0 -12
- package/_entity/permission-project/index.d.ts +0 -2
- package/_entity/permission-project/index.js +0 -2
- package/_entity/permission-project/module-pack.d.ts +0 -1
- package/_entity/permission-project/module-pack.js +0 -3
- package/_entity/permission-user/ModuleBE_PermissionUserAPI.d.ts +0 -9
- package/_entity/permission-user/ModuleBE_PermissionUserDB.d.ts +0 -34
- package/_entity/permission-user/ModuleBE_PermissionUserDB.js +0 -241
- package/_entity/permission-user/index.d.ts +0 -3
- package/_entity/permission-user/index.js +0 -3
- package/_entity/permission-user/module-pack.d.ts +0 -2
- package/_entity/permission-user/module-pack.js +0 -3
- package/_entity.d.ts +0 -12
- package/_entity.js +0 -18
- package/core/external-api-paths.d.ts +0 -13
- package/core/external-api-paths.js +0 -13
- package/core/utils.d.ts +0 -25
- package/core/utils.js +0 -85
- package/modules/consts.d.ts +0 -11
- package/modules/consts.js +0 -29
- package/modules/index.d.ts +0 -2
- package/modules/index.js +0 -20
- package/permissions-wire.d.ts +0 -46
- package/permissions-wire.js +0 -47
- package/permissions.d.ts +0 -22
- package/permissions.js +0 -152
- package/types.d.ts +0 -28
- /package/{types.js → assertion-types.js} +0 -0
package/index.js
CHANGED
|
@@ -16,12 +16,18 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
-
export * from './consts.js';
|
|
20
19
|
export * from './core/module-pack.js';
|
|
21
|
-
export * from './permissions-wire.js';
|
|
22
20
|
export * from './core/function-permission-registry.js';
|
|
21
|
+
export * from './assertion-types.js';
|
|
23
22
|
export * from './RequirePermission.js';
|
|
24
|
-
export * from './modules/
|
|
25
|
-
export * from './
|
|
26
|
-
export * from './_entity.js';
|
|
27
|
-
export * from './
|
|
23
|
+
export * from './modules/ModuleBE_Permissions.js';
|
|
24
|
+
export * from './modules/ModuleBE_PermissionsAssert.js';
|
|
25
|
+
export * from './_entity/permission-scope/ModuleBE_PermissionScopeDB.js';
|
|
26
|
+
export * from './_entity/permission-scope/module-pack.js';
|
|
27
|
+
export * from './_entity/user-permissions/ModuleBE_UserPermissionsDB.js';
|
|
28
|
+
export * from './_entity/user-permissions/ModuleBE_UserPermissionsAPI.js';
|
|
29
|
+
export * from './_entity/user-permissions/module-pack.js';
|
|
30
|
+
export * from './_entity/access-group/ModuleBE_AccessGroupDB.js';
|
|
31
|
+
export * from './_entity/access-group/module-pack.js';
|
|
32
|
+
export * from './document-access-enforcement.js';
|
|
33
|
+
export * from './document-access-api.js';
|
|
@@ -1,83 +1,68 @@
|
|
|
1
|
-
import { Module,
|
|
2
|
-
import type {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { Module, UniqueId } from '@nu-art/ts-common';
|
|
2
|
+
import type { DB_Prototype } from '@nu-art/db-api-shared';
|
|
3
|
+
import type { ModuleBE_BaseDB } from '@nu-art/db-api-backend';
|
|
4
|
+
import type { DatabaseDef_AccessGroup, DocumentAccessInner } from '@nu-art/permissions-shared';
|
|
5
|
+
import { type PerformProjectSetup, type SetupTask } from '@nu-art/action-processor-backend';
|
|
6
|
+
import type { OnAccessGroupChanged } from '../_entity/access-group/ModuleBE_AccessGroupDB.js';
|
|
7
|
+
import { FirebaseRef } from '@nu-art/firebase-backend';
|
|
8
|
+
import { type AccessContextResolver } from '../document-access-enforcement.js';
|
|
9
|
+
import { OnAccountDeleted, OnUserLogin } from '@nu-art/user-account-backend';
|
|
10
|
+
import { SafeDB_Account } from '@nu-art/user-account-shared';
|
|
11
|
+
export interface ResolveAdditionalGroupMemberships {
|
|
12
|
+
__resolveAdditionalGroupMemberships(accountId: string, context: 'register' | 'login'): Promise<UniqueId[]>;
|
|
8
13
|
}
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export declare const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
export type ServiceAccountConfig = {
|
|
15
|
+
readonly scopes: string[];
|
|
16
|
+
readonly enabled: boolean;
|
|
17
|
+
readonly systemOnly: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare const ServiceAccountId_Bootstrap = "bootstrap-admin";
|
|
20
|
+
type Config = {
|
|
21
|
+
serviceAccounts: Record<string, ServiceAccountConfig>;
|
|
22
|
+
};
|
|
23
|
+
export declare const GroupId_AppDefault: import("@nu-art/db-api-shared").DB_UniqueId<"permissions--access-groups">;
|
|
24
|
+
export declare const GroupId_PermissionsAdmin: import("@nu-art/db-api-shared").DB_UniqueId<"permissions--access-groups">;
|
|
25
|
+
export declare const PermissionsInfraGroupIds: Record<keyof DocumentAccessInner, DatabaseDef_AccessGroup['id']>;
|
|
26
|
+
export declare const SetupTaskKey_PermissionsGroups: import("@nu-art/action-processor-backend").SetupTaskKey;
|
|
27
|
+
declare class ModuleBE_Permissions_Class extends Module<Config> implements PerformProjectSetup, OnAccessGroupChanged, OnUserLogin, OnAccountDeleted {
|
|
28
|
+
private adminGrantFlagRef;
|
|
29
|
+
private readonly accessResolvers;
|
|
30
|
+
private readonly moduleScopeKeys;
|
|
31
|
+
constructor();
|
|
32
|
+
private readonly permissionsAccessResolver;
|
|
18
33
|
protected init(): void;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
private
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
*/
|
|
52
|
-
private createAccessLevels;
|
|
53
|
-
/**
|
|
54
|
-
* Creates All the DB_PermissionGroup
|
|
55
|
-
*
|
|
56
|
-
* @param projects - predefined permissions projects
|
|
57
|
-
* @param map_nameToDbDomain
|
|
58
|
-
* @param domainNameToLevelNameToDBAccessLevel
|
|
59
|
-
*/
|
|
60
|
-
private createGroups;
|
|
61
|
-
/**
|
|
62
|
-
* Creates All the DB_PermissionApi (path-based).
|
|
63
|
-
* @deprecated API collection deprecated; use function-based permissions and @RequirePermission. Domains/levels from function-permission registry instead.
|
|
64
|
-
* @param projects - predefined permissions projects
|
|
65
|
-
* @param domainNameToLevelNameToDBAccessLevel
|
|
66
|
-
*/
|
|
67
|
-
private createApis;
|
|
68
|
-
/**
|
|
69
|
-
* Creates permission keys associated with the given projects.
|
|
70
|
-
*
|
|
71
|
-
* @param projects - An array of projects.
|
|
72
|
-
*/
|
|
73
|
-
private createPermissionsKeys;
|
|
74
|
-
/**
|
|
75
|
-
* If no "Super Admin" user is defined in the system!
|
|
76
|
-
* The first user to press the create project button will become the "Super Admin" of the system
|
|
77
|
-
*
|
|
78
|
-
* If a "Super Admin" already exists in the system, a 403 will be thrown
|
|
79
|
-
*/
|
|
80
|
-
private assignSuperAdmin;
|
|
34
|
+
setAccessContextResolver<Database extends DB_Prototype>(dbModule: ModuleBE_BaseDB<Database>, resolver: AccessContextResolver<Database>, scopeKeys?: string[]): void;
|
|
35
|
+
private wireDocumentAccessToAllModules;
|
|
36
|
+
getAdminGrantFlagRef(): FirebaseRef<boolean>;
|
|
37
|
+
__performProjectSetup(): SetupTask[];
|
|
38
|
+
ensureDefinedGroups(): Promise<void>;
|
|
39
|
+
__onUserLogin(account: SafeDB_Account): Promise<void>;
|
|
40
|
+
__onAccountDeleted(account: SafeDB_Account): Promise<void>;
|
|
41
|
+
private ensurePersonalAccessGroup;
|
|
42
|
+
private addToDefaultGroup;
|
|
43
|
+
private promoteIfNoAdmin;
|
|
44
|
+
private checkAdminGrantFlag;
|
|
45
|
+
private resolveAdditionalGroupMemberships;
|
|
46
|
+
recomputePermissionsForUsers(accountIds: UniqueId[]): Promise<void>;
|
|
47
|
+
recomputePermissionsForAllUsers(): Promise<void>;
|
|
48
|
+
private materializeFromGroups;
|
|
49
|
+
__onAccessGroupChanged(changedGroupIds: UniqueId[]): Promise<void>;
|
|
50
|
+
rematerializeForGroups(changedGroupIds: UniqueId[]): Promise<void>;
|
|
51
|
+
private walkGroupGraphUp;
|
|
52
|
+
private resolveScopeIdsToStrings;
|
|
53
|
+
private deduplicateScopeEntries;
|
|
54
|
+
runAsServiceAccount<R>(saId: string, action: () => Promise<R>): Promise<R>;
|
|
55
|
+
private resolveSAAccessIds;
|
|
56
|
+
private resolveBootstrapAccessIds;
|
|
57
|
+
private resolveBootstrapScopes;
|
|
58
|
+
private ensureBootstrapSAAccessGroup;
|
|
59
|
+
private ensureServiceAccountAccessGroups;
|
|
60
|
+
private ensurePermissionsInfraAccessGroups;
|
|
61
|
+
private ensureScopeEntities;
|
|
62
|
+
private ensureDefaultGroup;
|
|
63
|
+
private ensurePermissionsAdminGroup;
|
|
64
|
+
private ensureAppDefinedGroups;
|
|
65
|
+
private syncPersonalGroupsForExistingAccounts;
|
|
81
66
|
}
|
|
82
67
|
export declare const ModuleBE_Permissions: ModuleBE_Permissions_Class;
|
|
83
68
|
export {};
|