@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.
Files changed (88) hide show
  1. package/RequirePermission.d.ts +22 -10
  2. package/RequirePermission.js +24 -15
  3. package/_entity/access-group/ModuleBE_AccessGroupDB.d.ts +13 -0
  4. package/_entity/access-group/ModuleBE_AccessGroupDB.js +36 -0
  5. package/_entity/access-group/module-pack.d.ts +1 -0
  6. package/_entity/access-group/module-pack.js +3 -0
  7. package/_entity/permission-scope/ModuleBE_PermissionScopeDB.d.ts +6 -0
  8. package/_entity/permission-scope/ModuleBE_PermissionScopeDB.js +8 -0
  9. package/_entity/permission-scope/module-pack.d.ts +1 -0
  10. package/_entity/permission-scope/module-pack.js +3 -0
  11. package/_entity/user-permissions/ModuleBE_UserPermissionsAPI.d.ts +9 -0
  12. package/_entity/{permission-user/ModuleBE_PermissionUserAPI.js → user-permissions/ModuleBE_UserPermissionsAPI.js} +17 -16
  13. package/_entity/user-permissions/ModuleBE_UserPermissionsDB.d.ts +6 -0
  14. package/_entity/user-permissions/ModuleBE_UserPermissionsDB.js +8 -0
  15. package/_entity/user-permissions/module-pack.d.ts +2 -0
  16. package/_entity/user-permissions/module-pack.js +3 -0
  17. package/assertion-types.d.ts +9 -0
  18. package/consts.d.ts +7 -4
  19. package/consts.js +4 -2
  20. package/core/function-permission-registry.d.ts +5 -6
  21. package/core/function-permission-registry.js +10 -0
  22. package/core/module-pack.js +6 -7
  23. package/document-access-api.d.ts +6 -0
  24. package/document-access-api.js +49 -0
  25. package/document-access-enforcement.d.ts +9 -0
  26. package/document-access-enforcement.js +137 -0
  27. package/index.d.ts +12 -6
  28. package/index.js +12 -6
  29. package/modules/ModuleBE_Permissions.d.ts +63 -78
  30. package/modules/ModuleBE_Permissions.js +494 -441
  31. package/modules/ModuleBE_PermissionsAssert.d.ts +6 -54
  32. package/modules/ModuleBE_PermissionsAssert.js +60 -285
  33. package/package.json +14 -12
  34. package/PermissionKey_BE.d.ts +0 -16
  35. package/PermissionKey_BE.js +0 -59
  36. package/_entity/permission-access-level/ModuleBE_PermissionAccessLevelDB.d.ts +0 -13
  37. package/_entity/permission-access-level/ModuleBE_PermissionAccessLevelDB.js +0 -49
  38. package/_entity/permission-access-level/index.d.ts +0 -2
  39. package/_entity/permission-access-level/index.js +0 -2
  40. package/_entity/permission-access-level/module-pack.d.ts +0 -1
  41. package/_entity/permission-access-level/module-pack.js +0 -3
  42. package/_entity/permission-api/ModuleBE_PermissionAPIDB.d.ts +0 -10
  43. package/_entity/permission-api/ModuleBE_PermissionAPIDB.js +0 -62
  44. package/_entity/permission-api/index.d.ts +0 -2
  45. package/_entity/permission-api/index.js +0 -2
  46. package/_entity/permission-api/module-pack.d.ts +0 -1
  47. package/_entity/permission-api/module-pack.js +0 -3
  48. package/_entity/permission-domain/ModuleBE_PermissionDomainDB.d.ts +0 -9
  49. package/_entity/permission-domain/ModuleBE_PermissionDomainDB.js +0 -22
  50. package/_entity/permission-domain/index.d.ts +0 -2
  51. package/_entity/permission-domain/index.js +0 -2
  52. package/_entity/permission-domain/module-pack.d.ts +0 -1
  53. package/_entity/permission-domain/module-pack.js +0 -3
  54. package/_entity/permission-group/ModuleBE_PermissionGroupDB.d.ts +0 -12
  55. package/_entity/permission-group/ModuleBE_PermissionGroupDB.js +0 -65
  56. package/_entity/permission-group/index.d.ts +0 -2
  57. package/_entity/permission-group/index.js +0 -2
  58. package/_entity/permission-group/module-pack.d.ts +0 -1
  59. package/_entity/permission-group/module-pack.js +0 -3
  60. package/_entity/permission-project/ModuleBE_PermissionProjectDB.d.ts +0 -8
  61. package/_entity/permission-project/ModuleBE_PermissionProjectDB.js +0 -12
  62. package/_entity/permission-project/index.d.ts +0 -2
  63. package/_entity/permission-project/index.js +0 -2
  64. package/_entity/permission-project/module-pack.d.ts +0 -1
  65. package/_entity/permission-project/module-pack.js +0 -3
  66. package/_entity/permission-user/ModuleBE_PermissionUserAPI.d.ts +0 -9
  67. package/_entity/permission-user/ModuleBE_PermissionUserDB.d.ts +0 -34
  68. package/_entity/permission-user/ModuleBE_PermissionUserDB.js +0 -241
  69. package/_entity/permission-user/index.d.ts +0 -3
  70. package/_entity/permission-user/index.js +0 -3
  71. package/_entity/permission-user/module-pack.d.ts +0 -2
  72. package/_entity/permission-user/module-pack.js +0 -3
  73. package/_entity.d.ts +0 -12
  74. package/_entity.js +0 -18
  75. package/core/external-api-paths.d.ts +0 -13
  76. package/core/external-api-paths.js +0 -13
  77. package/core/utils.d.ts +0 -25
  78. package/core/utils.js +0 -85
  79. package/modules/consts.d.ts +0 -11
  80. package/modules/consts.js +0 -29
  81. package/modules/index.d.ts +0 -2
  82. package/modules/index.js +0 -20
  83. package/permissions-wire.d.ts +0 -46
  84. package/permissions-wire.js +0 -47
  85. package/permissions.d.ts +0 -22
  86. package/permissions.js +0 -152
  87. package/types.d.ts +0 -28
  88. /package/{types.js → assertion-types.js} +0 -0
@@ -1,13 +0,0 @@
1
- /**
2
- * Path strings for external APIs referenced in permission domains.
3
- * Replaces imports from thunderstorm-shared (ApiDef_ActionProcessing, ApiDef_CollectionActions, ApiDef_SyncEnv).
4
- * Update these if the corresponding v2 packages change their routes.
5
- */
6
- export declare const Path_ActionProcessor_List = "v1/action-processor/list";
7
- export declare const Path_ActionProcessor_Execute = "v1/action-processor/execute";
8
- export declare const Path_CollectionActions_UpgradeAll = "v1/collection-actions/upgrade/all";
9
- export declare const Path_SyncEnv_FetchBackupMetadata = "v1/sync-env/fetch-backup-metadata";
10
- export declare const Path_SyncEnv_CreateBackup = "v1/sync-env/create-backup-v2";
11
- export declare const Path_SyncEnv_SyncFromEnvBackup = "v1/sync-env/fetch-from-env-v2";
12
- export declare const Path_SyncEnv_SyncFirebaseFromBackup = "v1/sync-env/fetch-firebase-backup";
13
- export declare const Path_SyncEnv_SyncToEnv = "v1/sync-env/sync-to-env";
@@ -1,13 +0,0 @@
1
- /**
2
- * Path strings for external APIs referenced in permission domains.
3
- * Replaces imports from thunderstorm-shared (ApiDef_ActionProcessing, ApiDef_CollectionActions, ApiDef_SyncEnv).
4
- * Update these if the corresponding v2 packages change their routes.
5
- */
6
- export const Path_ActionProcessor_List = 'v1/action-processor/list';
7
- export const Path_ActionProcessor_Execute = 'v1/action-processor/execute';
8
- export const Path_CollectionActions_UpgradeAll = 'v1/collection-actions/upgrade/all';
9
- export const Path_SyncEnv_FetchBackupMetadata = 'v1/sync-env/fetch-backup-metadata';
10
- export const Path_SyncEnv_CreateBackup = 'v1/sync-env/create-backup-v2';
11
- export const Path_SyncEnv_SyncFromEnvBackup = 'v1/sync-env/fetch-from-env-v2';
12
- export const Path_SyncEnv_SyncFirebaseFromBackup = 'v1/sync-env/fetch-firebase-backup';
13
- export const Path_SyncEnv_SyncToEnv = 'v1/sync-env/sync-to-env';
package/core/utils.d.ts DELETED
@@ -1,25 +0,0 @@
1
- import { TypedMap } from '@nu-art/ts-common';
2
- import { DatabaseDef_PermissionDomain, DefaultDef_Group, PreDBAccessLevel } from '@nu-art/permissions-shared';
3
- import { PermissionKey_BE } from '../PermissionKey_BE.js';
4
- import { DefaultDef_Domain, DefaultDef_Package } from '../types.js';
5
- export declare const Permissions_abTest: (seed: string, namespace: string, permutations: string[]) => DefaultDef_Package;
6
- /**
7
- * Generate automatic BE permission keys for a domain
8
- * @param accessLevels the relevant access levels to generate keys for
9
- * @param keyByLevelMapper the key name mapper by access level name
10
- * @param domainId the domain id to apply in the resolver
11
- */
12
- export declare const generatePermissionKeys: <Key extends string | number | symbol>(accessLevels: PreDBAccessLevel[], keyByLevelMapper: TypedMap<string>, domainId: DatabaseDef_PermissionDomain["id"]) => { [key in Key]: PermissionKey_BE<string>; };
13
- /**
14
- * Automatic generator for domain default definitions,
15
- * @param key MUST NEVER CHANGE! the key is the "key" to uniqueness of the entire permission decleration
16
- * @param namespace The name space of the current generated domain definitions
17
- * @param preDBAccessLevels The access levels to create (can be default or custom)
18
- * @param permissionKeysByLevel The permission key name for each access level
19
- * @param dbNames List of db names (optional)
20
- */
21
- export declare const generateDomainDefaults: <Key extends string | number | symbol>(key: string, namespace: string, preDBAccessLevels: PreDBAccessLevel[], permissionKeysByLevel: { [key in Key]: string; }, dbNames?: string[]) => {
22
- domain: DefaultDef_Domain;
23
- groups: DefaultDef_Group[];
24
- keys: { [key in Key]: PermissionKey_BE<string>; };
25
- };
package/core/utils.js DELETED
@@ -1,85 +0,0 @@
1
- import { _values, md5 } from '@nu-art/ts-common';
2
- import { CreateDefaultAccessLevels, DefaultAccessLevel_NoAccess, DefaultAccessLevel_Read, toPermissionDomainId, toPermissionGroupId } from '@nu-art/permissions-shared';
3
- import { defaultValueResolverV2, PermissionKey_BE } from '../PermissionKey_BE.js';
4
- export const Permissions_abTest = (seed, namespace, permutations) => {
5
- const domains = permutations.map(permutation => {
6
- const name = `${namespace}/${permutation}`;
7
- const domain = {
8
- _id: toPermissionDomainId(md5(`${seed}${name}`)),
9
- namespace: name,
10
- permissionKeys: permutations.map(permutation => {
11
- const initialDataResolver = () => defaultValueResolverV2(domain._id, DefaultAccessLevel_Read.name);
12
- return new PermissionKey_BE(`${namespace}/${permutation}`, initialDataResolver);
13
- }),
14
- levels: CreateDefaultAccessLevels(seed, [DefaultAccessLevel_NoAccess, DefaultAccessLevel_Read]),
15
- };
16
- return domain;
17
- });
18
- const groups = permutations.map((permutation, index) => {
19
- const name = `${namespace}/${permutation}`;
20
- const domain = domains[index];
21
- const group = {
22
- _id: toPermissionGroupId(md5(`${domain._id}/${name}`)),
23
- name,
24
- uiLabel: name,
25
- accessLevels: {
26
- [domain.namespace]: DefaultAccessLevel_Read.name,
27
- }
28
- };
29
- return group;
30
- });
31
- const Permission_Package = {
32
- name: namespace,
33
- domains: domains,
34
- groups: groups
35
- };
36
- return Permission_Package;
37
- };
38
- /**
39
- * Generate automatic BE permission keys for a domain
40
- * @param accessLevels the relevant access levels to generate keys for
41
- * @param keyByLevelMapper the key name mapper by access level name
42
- * @param domainId the domain id to apply in the resolver
43
- */
44
- export const generatePermissionKeys = (accessLevels, keyByLevelMapper, domainId) => {
45
- return accessLevels.reduce((mapper, currentAccessLevel) => {
46
- // declare default
47
- const key = keyByLevelMapper[currentAccessLevel.name];
48
- // update acc mapper
49
- mapper[currentAccessLevel.name] = new PermissionKey_BE(key, () => defaultValueResolverV2(domainId, currentAccessLevel.name));
50
- return mapper;
51
- }, {});
52
- };
53
- /**
54
- * Automatic generator for domain default definitions,
55
- * @param key MUST NEVER CHANGE! the key is the "key" to uniqueness of the entire permission decleration
56
- * @param namespace The name space of the current generated domain definitions
57
- * @param preDBAccessLevels The access levels to create (can be default or custom)
58
- * @param permissionKeysByLevel The permission key name for each access level
59
- * @param dbNames List of db names (optional)
60
- */
61
- export const generateDomainDefaults = (key, namespace, preDBAccessLevels, permissionKeysByLevel, dbNames) => {
62
- // Generate the new domain id
63
- const newDomainId = toPermissionDomainId(md5(`domain/${key}`));
64
- // Get all default db ready access levels using the provided ones
65
- const accessLevels = CreateDefaultAccessLevels(md5(`domain/${key}`), preDBAccessLevels);
66
- const keyDefinitions = generatePermissionKeys(preDBAccessLevels, permissionKeysByLevel, newDomainId);
67
- return {
68
- domain: {
69
- _id: newDomainId,
70
- namespace,
71
- permissionKeys: _values(keyDefinitions),
72
- levels: accessLevels,
73
- dbNames
74
- },
75
- groups: accessLevels.map(accessLevel => ({
76
- _id: toPermissionGroupId(md5(`${key}/${accessLevel.name}`)),
77
- name: `${namespace}/${accessLevel.name}`,
78
- uiLabel: `${namespace}/${accessLevel.name}`,
79
- accessLevels: {
80
- [namespace]: accessLevel.name
81
- }
82
- })),
83
- keys: keyDefinitions
84
- };
85
- };
@@ -1,11 +0,0 @@
1
- import { DefaultDef_Package } from '../types.js';
2
- export declare const Domain_PermissionAssignment: Readonly<{
3
- _id: import("@nu-art/db-api-shared").DB_UniqueId<"permissions--domain">;
4
- namespace: "Permissions Assignment";
5
- }>;
6
- export declare const Permissions_PermissionAssignment: DefaultDef_Package;
7
- export declare const Domain_PermissionManagement: Readonly<{
8
- _id: import("@nu-art/db-api-shared").DB_UniqueId<"permissions--domain">;
9
- namespace: "Permissions Management";
10
- }>;
11
- export declare const Permissions_PermissionManagement: DefaultDef_Package;
package/modules/consts.js DELETED
@@ -1,29 +0,0 @@
1
- import { DBDef_PermissionAccessLevel, DBDef_PermissionAPI, DBDef_PermissionDomain, DBDef_PermissionGroup, DBDef_PermissionProject, DBDef_PermissionUser, DomainNamespace_PermissionAssignment, DomainNamespace_PermissionManagement, DuplicateDefaultAccessLevels, toPermissionDomainId } from '@nu-art/permissions-shared';
2
- export const Domain_PermissionAssignment = Object.freeze({
3
- _id: toPermissionDomainId('1f41541c4514b50140ae62c1f7097029'),
4
- namespace: DomainNamespace_PermissionAssignment
5
- });
6
- export const Permissions_PermissionAssignment = {
7
- name: Domain_PermissionAssignment.namespace,
8
- domains: [
9
- {
10
- ...Domain_PermissionAssignment,
11
- levels: DuplicateDefaultAccessLevels(Domain_PermissionAssignment._id),
12
- dbNames: [DBDef_PermissionUser.dbKey, DBDef_PermissionGroup.dbKey]
13
- }
14
- ]
15
- };
16
- export const Domain_PermissionManagement = Object.freeze({
17
- _id: toPermissionDomainId('1f41541c4514b50140ae62c1f7097029'),
18
- namespace: DomainNamespace_PermissionManagement
19
- });
20
- export const Permissions_PermissionManagement = {
21
- name: Domain_PermissionManagement.namespace,
22
- domains: [
23
- {
24
- ...Domain_PermissionManagement,
25
- levels: DuplicateDefaultAccessLevels(Domain_PermissionManagement._id),
26
- dbNames: [DBDef_PermissionProject.dbKey, DBDef_PermissionDomain.dbKey, DBDef_PermissionAccessLevel.dbKey, DBDef_PermissionAPI.dbKey]
27
- }
28
- ]
29
- };
@@ -1,2 +0,0 @@
1
- export * from './consts.js';
2
- export { CollectPermissionsProjects, PermissionProject_Permissions } from './ModuleBE_Permissions.js';
package/modules/index.js DELETED
@@ -1,20 +0,0 @@
1
- /*
2
- * Permissions management system, define access level for each of
3
- * your server apis, and restrict users by giving them access levels
4
- *
5
- * Copyright (C) 2020 Adam van der Kruk aka TacB0sS
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- export * from './consts.js';
20
- export { PermissionProject_Permissions } from './ModuleBE_Permissions.js';
@@ -1,46 +0,0 @@
1
- import type { Logger, Module } from '@nu-art/ts-common';
2
- import type { ServiceAccountDef } from '@nu-art/permissions-shared';
3
- /** Injectable app-config key handler. When using @nu-art/app-config-backend, set this so PermissionKey_BE registers and delegates get/set. */
4
- export type AppConfigKeyHandler = {
5
- registerKey(key: {
6
- key: string | number;
7
- resolver: (logger: Logger) => Promise<unknown>;
8
- dataManipulator: (data: unknown) => Promise<unknown>;
9
- }): void;
10
- getAppKey(key: {
11
- key: string | number;
12
- }, logger?: Logger): Promise<unknown>;
13
- setAppKey(key: {
14
- key: string | number;
15
- }, value: unknown): Promise<void>;
16
- };
17
- export declare function setAppConfigKeyHandler(handler: AppConfigKeyHandler | null): void;
18
- export declare function getAppConfigKeyHandler(): AppConfigKeyHandler | null;
19
- export type EnvConfigRef = {
20
- get(config: Record<string, unknown>): Promise<Record<string, unknown>>;
21
- set(config: Record<string, unknown>): Promise<void>;
22
- };
23
- export declare function setEnvConfigRefForModule(module: Module, ref: EnvConfigRef): void;
24
- export declare function getEnvConfigRef(module: Module): EnvConfigRef | null;
25
- export declare function setGlobalEnvConfigRef(ref: EnvConfigRef | null): void;
26
- export declare function getGlobalEnvConfigRef(): EnvConfigRef | null;
27
- export declare function setCreatePermissionKeyDefaults(fn: ((module: Module) => Promise<void>) | null): void;
28
- export declare function getCreatePermissionKeyDefaults(): ((module: Module) => Promise<void>) | null;
29
- export declare function setActionProcessor(proc: {
30
- registerAction(opts: {
31
- key: string;
32
- group: string;
33
- description: string;
34
- processor: () => Promise<void>;
35
- }, thisArg: unknown): void;
36
- } | null): void;
37
- export declare function getActionProcessor(): {
38
- registerAction(opts: {
39
- key: string;
40
- group: string;
41
- description: string;
42
- processor: () => Promise<void>;
43
- }, thisArg: unknown): void;
44
- } | null;
45
- export declare function setServiceAccountsProvider(provider: (() => Promise<ServiceAccountDef[]>) | null): void;
46
- export declare function getServiceAccountsProvider(): (() => Promise<ServiceAccountDef[]>) | null;
@@ -1,47 +0,0 @@
1
- /*
2
- * Permissions management system
3
- * Copyright (C) 2020 Adam van der Kruk aka TacB0sS
4
- * Licensed under the Apache License, Version 2.0
5
- */
6
- let appConfigKeyHandler = null;
7
- export function setAppConfigKeyHandler(handler) {
8
- appConfigKeyHandler = handler;
9
- }
10
- export function getAppConfigKeyHandler() {
11
- return appConfigKeyHandler;
12
- }
13
- let envConfigRefByModule = new Map();
14
- let globalEnvConfigRef = null;
15
- let createPermissionKeyDefaultsFn = null;
16
- let actionProcessor = null;
17
- let serviceAccountsProvider = null;
18
- export function setEnvConfigRefForModule(module, ref) {
19
- envConfigRefByModule.set(module, ref);
20
- }
21
- export function getEnvConfigRef(module) {
22
- return envConfigRefByModule.get(module) ?? null;
23
- }
24
- export function setGlobalEnvConfigRef(ref) {
25
- globalEnvConfigRef = ref;
26
- }
27
- export function getGlobalEnvConfigRef() {
28
- return globalEnvConfigRef;
29
- }
30
- export function setCreatePermissionKeyDefaults(fn) {
31
- createPermissionKeyDefaultsFn = fn;
32
- }
33
- export function getCreatePermissionKeyDefaults() {
34
- return createPermissionKeyDefaultsFn;
35
- }
36
- export function setActionProcessor(proc) {
37
- actionProcessor = proc;
38
- }
39
- export function getActionProcessor() {
40
- return actionProcessor;
41
- }
42
- export function setServiceAccountsProvider(provider) {
43
- serviceAccountsProvider = provider;
44
- }
45
- export function getServiceAccountsProvider() {
46
- return serviceAccountsProvider;
47
- }
package/permissions.d.ts DELETED
@@ -1,22 +0,0 @@
1
- import { DefaultDef_Group } from '@nu-art/permissions-shared';
2
- import { PermissionKey_BE } from './PermissionKey_BE.js';
3
- import { DefaultDef_Domain, DefaultDef_Package } from './types.js';
4
- export declare const PermissionKeyBE_DeveloperViewer: PermissionKey_BE<"permission-key--developer-viewer">;
5
- export declare const PermissionKeyBE_DeveloperEditor: PermissionKey_BE<"permission-key--developer-editor">;
6
- export declare const PermissionKeyBE_DeveloperAdmin: PermissionKey_BE<"permission-key--developer-admin">;
7
- export declare const Domain_PermissionsDefine: Readonly<DefaultDef_Domain>;
8
- export declare const Domain_PermissionsAssign: Readonly<DefaultDef_Domain>;
9
- export declare const Domain_AccountManagement: Readonly<DefaultDef_Domain>;
10
- export declare const Domain_Developer: Readonly<DefaultDef_Domain>;
11
- export declare const PermissionsPackage_Permissions: DefaultDef_Package;
12
- export declare const PermissionsPackage_Developer: DefaultDef_Package;
13
- export declare const PermissionGroup_PermissionsDefine_NoAccess: DefaultDef_Group;
14
- export declare const PermissionGroup_PermissionsDefine_Viewer: DefaultDef_Group;
15
- export declare const PermissionGroup_PermissionsDefine_Editor: DefaultDef_Group;
16
- export declare const PermissionGroup_PermissionsDefine_Admin: DefaultDef_Group;
17
- export declare const PermissionGroup_PermissionsAssign_NoAccess: DefaultDef_Group;
18
- export declare const PermissionGroup_PermissionsAssign_Viewer: DefaultDef_Group;
19
- export declare const PermissionGroup_PermissionsAssign_Editor: DefaultDef_Group;
20
- export declare const PermissionGroup_PermissionsAssign_Admin: DefaultDef_Group;
21
- export declare const PermissionGroups_PermissionsDefine: DefaultDef_Group[];
22
- export declare const PermissionGroups_PermissionsAssign: DefaultDef_Group[];
package/permissions.js DELETED
@@ -1,152 +0,0 @@
1
- import { ApiDef_Permissions, DBDef_PermissionAccessLevel, DBDef_PermissionAPI, DBDef_PermissionDomain, DBDef_PermissionGroup, DBDef_PermissionProject, DBDef_PermissionUser, DefaultAccessLevel_Admin, DefaultAccessLevel_Delete, DefaultAccessLevel_NoAccess, DefaultAccessLevel_Read, DefaultAccessLevel_Write, toPermissionDomainId, toPermissionGroupId, } from '@nu-art/permissions-shared';
2
- import { defaultValueResolverV2, PermissionKey_BE } from './PermissionKey_BE.js';
3
- import { Path_ActionProcessor_Execute, Path_ActionProcessor_List, Path_CollectionActions_UpgradeAll, Path_SyncEnv_CreateBackup, Path_SyncEnv_FetchBackupMetadata, Path_SyncEnv_SyncFirebaseFromBackup, Path_SyncEnv_SyncFromEnvBackup, Path_SyncEnv_SyncToEnv, } from './core/external-api-paths.js';
4
- import { ApiDef_UserAccount, DBDef_Accounts } from '@nu-art/user-account-shared';
5
- import { PermissionKey_DeveloperAdmin, PermissionKey_DeveloperViewer, PermissionKey_DeveloperWriter } from '@nu-art/permissions-shared/permission-keys';
6
- // export const PermissionsAccessLevel_ReadSelf = Object.freeze({name: 'Read-Self', value: 50});
7
- const Domain_PermissionsDefine_ID = '48d5ace0cbb2a14c8a0ca3773a4a2962';
8
- const Domain_PermissionsAssign_ID = 'ecf9cfe952d034ad8d1f182bbec6e2db';
9
- const Domain_AccountManagement_ID = 'a02fd6cef8ccae193ad7357d596131e4';
10
- const Domain_Developer_ID = '1f62a6e2fc4e2cfaa8aa1aa1a45b8c1b';
11
- const _Domain_PermissionsDefine = {
12
- _id: toPermissionDomainId(Domain_PermissionsDefine_ID),
13
- namespace: 'Permissions Define',
14
- dbNames: [DBDef_PermissionProject, DBDef_PermissionDomain, DBDef_PermissionAPI, DBDef_PermissionAccessLevel].map(dbDef => dbDef.dbKey),
15
- customApis: [
16
- { path: ApiDef_UserAccount.refreshSession.path, accessLevel: DefaultAccessLevel_NoAccess.name },
17
- { path: ApiDef_Permissions.createProject.path, accessLevel: DefaultAccessLevel_Admin.name },
18
- { path: ApiDef_Permissions.toggleStrictMode.path, accessLevel: DefaultAccessLevel_Admin.name },
19
- ]
20
- };
21
- const _Domain_PermissionsAssign = {
22
- _id: toPermissionDomainId(Domain_PermissionsAssign_ID),
23
- namespace: 'Permissions Assign',
24
- dbNames: [DBDef_PermissionGroup.dbKey, DBDef_PermissionUser.dbKey],
25
- };
26
- const _Domain_AccountManagement = {
27
- _id: toPermissionDomainId(Domain_AccountManagement_ID),
28
- namespace: 'Account Management',
29
- dbNames: [DBDef_Accounts.dbKey],
30
- customApis: [
31
- { path: ApiDef_UserAccount.createAccount.path, accessLevel: DefaultAccessLevel_Admin.name },
32
- { path: ApiDef_UserAccount.createToken.path, accessLevel: DefaultAccessLevel_Admin.name },
33
- { path: ApiDef_UserAccount.getSessions.path, accessLevel: DefaultAccessLevel_Admin.name },
34
- ]
35
- };
36
- export const PermissionKeyBE_DeveloperViewer = new PermissionKey_BE(PermissionKey_DeveloperViewer, () => defaultValueResolverV2(Domain_Developer._id, DefaultAccessLevel_Read.name));
37
- export const PermissionKeyBE_DeveloperEditor = new PermissionKey_BE(PermissionKey_DeveloperWriter, () => defaultValueResolverV2(Domain_Developer._id, DefaultAccessLevel_Write.name));
38
- export const PermissionKeyBE_DeveloperAdmin = new PermissionKey_BE(PermissionKey_DeveloperAdmin, () => defaultValueResolverV2(Domain_Developer._id, DefaultAccessLevel_Admin.name));
39
- const _Domain_Developer = {
40
- _id: toPermissionDomainId(Domain_Developer_ID),
41
- namespace: 'Developer',
42
- permissionKeys: [
43
- PermissionKeyBE_DeveloperViewer,
44
- PermissionKeyBE_DeveloperEditor,
45
- PermissionKeyBE_DeveloperAdmin,
46
- ],
47
- customApis: [
48
- { path: Path_CollectionActions_UpgradeAll, accessLevel: DefaultAccessLevel_Delete.name },
49
- { path: Path_ActionProcessor_List, accessLevel: DefaultAccessLevel_Read.name },
50
- { path: Path_ActionProcessor_Execute, accessLevel: DefaultAccessLevel_Admin.name },
51
- { path: Path_SyncEnv_FetchBackupMetadata, accessLevel: DefaultAccessLevel_Read.name },
52
- { path: Path_SyncEnv_CreateBackup, accessLevel: DefaultAccessLevel_Write.name },
53
- { path: Path_SyncEnv_SyncFromEnvBackup, accessLevel: DefaultAccessLevel_Write.name },
54
- { path: Path_SyncEnv_SyncFirebaseFromBackup, accessLevel: DefaultAccessLevel_Write.name },
55
- { path: Path_SyncEnv_SyncToEnv, accessLevel: DefaultAccessLevel_Admin.name },
56
- ]
57
- };
58
- export const Domain_PermissionsDefine = Object.freeze(_Domain_PermissionsDefine);
59
- export const Domain_PermissionsAssign = Object.freeze(_Domain_PermissionsAssign);
60
- export const Domain_AccountManagement = Object.freeze(_Domain_AccountManagement);
61
- export const Domain_Developer = Object.freeze(_Domain_Developer);
62
- export const PermissionsPackage_Permissions = {
63
- name: 'Permissions',
64
- domains: [
65
- Domain_AccountManagement,
66
- Domain_PermissionsDefine,
67
- Domain_PermissionsAssign,
68
- ],
69
- };
70
- export const PermissionsPackage_Developer = {
71
- name: 'Developer',
72
- domains: [
73
- Domain_Developer,
74
- ],
75
- };
76
- //Needed?
77
- export const PermissionGroup_PermissionsDefine_NoAccess = {
78
- _id: toPermissionGroupId('cacf1da8ccca1e4dede8859f0d72c55c'),
79
- name: `${Domain_PermissionsDefine.namespace}/No Access`,
80
- uiLabel: `${Domain_PermissionsDefine.namespace}/No Access`,
81
- accessLevels: {
82
- [Domain_PermissionsDefine.namespace]: DefaultAccessLevel_NoAccess.name,
83
- },
84
- };
85
- export const PermissionGroup_PermissionsDefine_Viewer = {
86
- _id: toPermissionGroupId('0079f39e0f50b70942b8d69bfe1741d5'),
87
- name: `${Domain_PermissionsDefine.namespace}/Viewer`,
88
- uiLabel: `${Domain_PermissionsDefine.namespace}/Viewer`,
89
- accessLevels: {
90
- [Domain_PermissionsDefine.namespace]: DefaultAccessLevel_Read.name,
91
- },
92
- };
93
- export const PermissionGroup_PermissionsDefine_Editor = {
94
- _id: toPermissionGroupId('46fb6b35f1d4d11913ce231bd4a42b4b'),
95
- name: `${Domain_PermissionsDefine.namespace}/Editor`,
96
- uiLabel: `${Domain_PermissionsDefine.namespace}/Editor`,
97
- accessLevels: {
98
- [Domain_PermissionsDefine.namespace]: DefaultAccessLevel_Delete.name,
99
- },
100
- };
101
- export const PermissionGroup_PermissionsDefine_Admin = {
102
- _id: toPermissionGroupId('fa260d42ce16a69bc654bf0efd1a2287'),
103
- name: `${Domain_PermissionsDefine.namespace}/Admin`,
104
- uiLabel: `${Domain_PermissionsDefine.namespace}/Admin`,
105
- accessLevels: {
106
- [Domain_PermissionsDefine.namespace]: DefaultAccessLevel_Admin.name,
107
- },
108
- };
109
- export const PermissionGroup_PermissionsAssign_NoAccess = {
110
- _id: toPermissionGroupId('dafebd8f706d638400e696345c400fc3'),
111
- name: `${Domain_PermissionsAssign.namespace}/No Access`,
112
- uiLabel: `${Domain_PermissionsAssign.namespace}/No Access`,
113
- accessLevels: {
114
- [Domain_PermissionsAssign.namespace]: DefaultAccessLevel_NoAccess.name,
115
- },
116
- };
117
- export const PermissionGroup_PermissionsAssign_Viewer = {
118
- _id: toPermissionGroupId('5b6d75f5644dd9501551487f9a8748b9'),
119
- name: `${Domain_PermissionsAssign.namespace}/Viewer`,
120
- uiLabel: `${Domain_PermissionsAssign.namespace}/Viewer`,
121
- accessLevels: {
122
- [Domain_PermissionsAssign.namespace]: DefaultAccessLevel_Read.name,
123
- },
124
- };
125
- export const PermissionGroup_PermissionsAssign_Editor = {
126
- _id: toPermissionGroupId('ac5050d644251fa0b95506280a2ebfb3'),
127
- name: `${Domain_PermissionsAssign.namespace}/Editor`,
128
- uiLabel: `${Domain_PermissionsAssign.namespace}/Editor`,
129
- accessLevels: {
130
- [Domain_PermissionsAssign.namespace]: DefaultAccessLevel_Delete.name,
131
- },
132
- };
133
- export const PermissionGroup_PermissionsAssign_Admin = {
134
- _id: toPermissionGroupId('232a8bb28f770ac62d4fa74ed594bfeb'),
135
- name: `${Domain_PermissionsAssign.namespace}/Admin`,
136
- uiLabel: `${Domain_PermissionsAssign.namespace}/Admin`,
137
- accessLevels: {
138
- [Domain_PermissionsAssign.namespace]: DefaultAccessLevel_Admin.name,
139
- },
140
- };
141
- export const PermissionGroups_PermissionsDefine = [
142
- PermissionGroup_PermissionsDefine_NoAccess,
143
- PermissionGroup_PermissionsDefine_Viewer,
144
- PermissionGroup_PermissionsDefine_Editor,
145
- PermissionGroup_PermissionsDefine_Admin,
146
- ];
147
- export const PermissionGroups_PermissionsAssign = [
148
- PermissionGroup_PermissionsAssign_NoAccess,
149
- PermissionGroup_PermissionsAssign_Viewer,
150
- PermissionGroup_PermissionsAssign_Editor,
151
- PermissionGroup_PermissionsAssign_Admin,
152
- ];
package/types.d.ts DELETED
@@ -1,28 +0,0 @@
1
- import { PermissionKey_BE } from './PermissionKey_BE.js';
2
- import { DatabaseDef_PermissionDomain, DatabaseDef_PermissionProject, DB_PermissionAccessLevel, DB_PermissionDomain, DB_PermissionGroup, DB_PermissionProject, DB_PermissionUser, DefaultDef_AccessLevel, DefaultDef_Api, DefaultDef_Group } from '@nu-art/permissions-shared';
3
- export type PermissionTypes = {
4
- PermissionProject: DB_PermissionProject;
5
- PermissionDomain: DB_PermissionDomain;
6
- PermissionAccessLevel: DB_PermissionAccessLevel;
7
- PermissionGroup: DB_PermissionGroup;
8
- PermissionUser: DB_PermissionUser;
9
- };
10
- export type DefaultDef_Project = {
11
- _id: DatabaseDef_PermissionProject['id'];
12
- name: string;
13
- packages: DefaultDef_Package[];
14
- groups?: DefaultDef_Group[];
15
- };
16
- export type DefaultDef_Domain = {
17
- _id: DatabaseDef_PermissionDomain['id'];
18
- namespace: string;
19
- levels?: DefaultDef_AccessLevel[];
20
- customApis?: DefaultDef_Api[];
21
- dbNames?: string[];
22
- permissionKeys?: PermissionKey_BE<string>[];
23
- };
24
- export type DefaultDef_Package = {
25
- name: string;
26
- domains: DefaultDef_Domain[];
27
- groups?: DefaultDef_Group[];
28
- };
File without changes