@nu-art/permissions-shared 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 (72) hide show
  1. package/_entity/access-group/db-def.d.ts +3 -0
  2. package/_entity/access-group/db-def.js +30 -0
  3. package/_entity/access-group/types.d.ts +26 -0
  4. package/_entity/access-group/types.js +1 -0
  5. package/{permission-scope.d.ts → _entity/permission-scope/brand.d.ts} +3 -0
  6. package/_entity/permission-scope/brand.js +20 -0
  7. package/_entity/permission-scope/db-def.d.ts +3 -0
  8. package/_entity/permission-scope/db-def.js +22 -0
  9. package/_entity/permission-scope/types.d.ts +18 -0
  10. package/_entity/permission-scope/types.js +1 -0
  11. package/_entity/user-permissions/api-def.d.ts +8 -0
  12. package/_entity/user-permissions/api-def.js +4 -0
  13. package/_entity/user-permissions/db-def.d.ts +3 -0
  14. package/_entity/user-permissions/db-def.js +22 -0
  15. package/_entity/user-permissions/types.d.ts +19 -0
  16. package/_entity/user-permissions/types.js +1 -0
  17. package/consts.d.ts +1 -81
  18. package/consts.js +1 -66
  19. package/document-access.d.ts +20 -0
  20. package/document-access.js +8 -0
  21. package/group-definition.d.ts +14 -0
  22. package/group-definition.js +18 -0
  23. package/index.d.ts +12 -21
  24. package/index.js +12 -21
  25. package/package.json +7 -7
  26. package/permissions-scopes.d.ts +8 -0
  27. package/permissions-scopes.js +3 -0
  28. package/session-data.d.ts +4 -0
  29. package/session-data.js +1 -0
  30. package/_entity/permission-access-level/db-def.d.ts +0 -5
  31. package/_entity/permission-access-level/db-def.js +0 -37
  32. package/_entity/permission-access-level/types.d.ts +0 -30
  33. package/_entity/permission-access-level/types.js +0 -1
  34. package/_entity/permission-api/db-def.d.ts +0 -3
  35. package/_entity/permission-api/db-def.js +0 -42
  36. package/_entity/permission-api/types.d.ts +0 -34
  37. package/_entity/permission-api/types.js +0 -1
  38. package/_entity/permission-domain/db-def.d.ts +0 -5
  39. package/_entity/permission-domain/db-def.js +0 -36
  40. package/_entity/permission-domain/types.d.ts +0 -22
  41. package/_entity/permission-domain/types.js +0 -1
  42. package/_entity/permission-group/db-def.d.ts +0 -5
  43. package/_entity/permission-group/db-def.js +0 -43
  44. package/_entity/permission-group/types.d.ts +0 -35
  45. package/_entity/permission-group/types.js +0 -1
  46. package/_entity/permission-project/db-def.d.ts +0 -5
  47. package/_entity/permission-project/db-def.js +0 -28
  48. package/_entity/permission-project/types.d.ts +0 -18
  49. package/_entity/permission-project/types.js +0 -1
  50. package/_entity/permission-user/api-def.d.ts +0 -13
  51. package/_entity/permission-user/api-def.js +0 -4
  52. package/_entity/permission-user/db-def.d.ts +0 -3
  53. package/_entity/permission-user/db-def.js +0 -34
  54. package/_entity/permission-user/types.d.ts +0 -25
  55. package/_entity/permission-user/types.js +0 -1
  56. package/_entity.d.ts +0 -13
  57. package/_entity.js +0 -13
  58. package/apis.d.ts +0 -66
  59. package/apis.js +0 -27
  60. package/path-utils.d.ts +0 -2
  61. package/path-utils.js +0 -7
  62. package/permission-keys.d.ts +0 -3
  63. package/permission-keys.js +0 -3
  64. package/permission-scope.js +0 -25
  65. package/project-setup.d.ts +0 -10
  66. package/project-setup.js +0 -6
  67. package/service-account-def.d.ts +0 -11
  68. package/service-account-def.js +0 -6
  69. package/types.d.ts +0 -51
  70. package/types.js +0 -1
  71. package/validators.d.ts +0 -6
  72. package/validators.js +0 -25
@@ -1,3 +0,0 @@
1
- import { Database } from '@nu-art/db-api-shared';
2
- import { DatabaseDef_PermissionAPI } from './types.js';
3
- export declare const DBDef_PermissionAPI: Database<DatabaseDef_PermissionAPI>;
@@ -1,42 +0,0 @@
1
- import { tsValidateArray, tsValidateBoolean, tsValidateDynamicObject, tsValidateNumber, tsValidateString, tsValidateUniqueId } from '@nu-art/ts-common';
2
- import { PermissionAPI_DbKey } from './types.js';
3
- import { PermissionDBGroup } from '../../consts.js';
4
- import { tsValidateStringWithDashesAndSlash, validateProjectId } from '../../validators.js';
5
- import { tsValidator_AuditableV2 } from '@nu-art/user-account-shared';
6
- const Validator_ModifiableProps = {
7
- projectId: validateProjectId,
8
- path: tsValidateStringWithDashesAndSlash,
9
- accessLevelIds: tsValidateArray(tsValidateUniqueId, false),
10
- deprecated: tsValidateBoolean(false),
11
- onlyForApplication: tsValidateBoolean(false),
12
- };
13
- const Validator_GeneratedProps = {
14
- ...tsValidator_AuditableV2,
15
- _accessLevels: tsValidateDynamicObject(tsValidateNumber(), tsValidateString(), false),
16
- };
17
- export const DBDef_PermissionAPI = {
18
- modifiablePropsValidator: Validator_ModifiableProps,
19
- generatedPropsValidator: Validator_GeneratedProps,
20
- generatedProps: ['_auditorId', '_accessLevels'],
21
- versions: ['1.0.1', '1.0.0'],
22
- dbKey: PermissionAPI_DbKey,
23
- frontend: {
24
- group: PermissionDBGroup,
25
- name: 'api',
26
- },
27
- backend: {
28
- name: 'permissions--api',
29
- },
30
- entityName: 'PermissionsAPI',
31
- uniqueKeys: ['projectId', 'path'],
32
- dependencies: {
33
- projectId: {
34
- dbKey: 'permissions--project',
35
- fieldType: 'string'
36
- },
37
- accessLevelIds: {
38
- dbKey: 'permissions--level',
39
- fieldType: 'string[]'
40
- }
41
- }
42
- };
@@ -1,34 +0,0 @@
1
- import { DB_Object, DB_ProtoSeed, DB_Prototype, VersionsDeclaration } from '@nu-art/db-api-shared';
2
- import { DatabaseDef_PermissionAccessLevel } from '../permission-access-level/types.js';
3
- import { DatabaseDef_PermissionDomain } from '../permission-domain/types.js';
4
- import { DatabaseDef_PermissionProject } from '../permission-project/types.js';
5
- import { AuditableV2 } from '@nu-art/user-account-shared';
6
- export declare const PermissionAPI_DbKey = "permissions--api";
7
- type DBKey = typeof PermissionAPI_DbKey;
8
- type VersionTypes_PermissionAPI = {
9
- '1.0.0': DB_PermissionAPI;
10
- '1.0.1': DB_PermissionAPI;
11
- };
12
- type Versions = VersionsDeclaration<['1.0.1', '1.0.0'], VersionTypes_PermissionAPI>;
13
- type UniqueKeys = 'projectId' | 'path';
14
- type GeneratedProps = '_auditorId' | '_accessLevels';
15
- type Dependencies = {
16
- projectId: DatabaseDef_PermissionProject;
17
- accessLevelIds: DatabaseDef_PermissionAccessLevel;
18
- };
19
- type Proto = DB_ProtoSeed<DB_PermissionAPI, DBKey, GeneratedProps, Versions, UniqueKeys, Dependencies>;
20
- export type DatabaseDef_PermissionAPI = DB_Prototype<Proto>;
21
- export type UI_PermissionAPI = DatabaseDef_PermissionAPI['uiType'];
22
- /** @deprecated API collection deprecated; use function-based permissions and @RequirePermission. */
23
- export type DB_PermissionAPI = DB_Object<DBKey> & AuditableV2 & {
24
- projectId: DatabaseDef_PermissionProject['id'];
25
- path: string;
26
- accessLevelIds?: DatabaseDef_PermissionAccessLevel['id'][];
27
- deprecated?: boolean;
28
- onlyForApplication?: boolean;
29
- _accessLevels?: DomainToLevelValueMap;
30
- };
31
- export type DomainToLevelValueMap = {
32
- [domainId: DatabaseDef_PermissionDomain['id']]: number;
33
- };
34
- export {};
@@ -1 +0,0 @@
1
- export const PermissionAPI_DbKey = 'permissions--api';
@@ -1,5 +0,0 @@
1
- import { Database } from '@nu-art/db-api-shared';
2
- import { DatabaseDef_PermissionDomain } from './types.js';
3
- export declare const DBDef_PermissionDomain: Database<DatabaseDef_PermissionDomain>;
4
- /** Brand a string as DatabaseDef_PermissionDomain['id']. Use for literal ids (e.g. default domains). */
5
- export declare const toPermissionDomainId: (id: string) => import("@nu-art/db-api-shared").DB_UniqueId<"permissions--domain">;
@@ -1,36 +0,0 @@
1
- import { stringToUniqueId } from '@nu-art/db-api-shared';
2
- import { tsValidateString } from '@nu-art/ts-common';
3
- import { PermissionDomain_DbKey } from './types.js';
4
- import { validateProjectId } from '../../validators.js';
5
- import { PermissionDBGroup } from '../../consts.js';
6
- const Validator_ModifiableProps = {
7
- projectId: validateProjectId,
8
- namespace: tsValidateString(50),
9
- };
10
- const Validator_GeneratedProps = {
11
- _auditorId: tsValidateString()
12
- };
13
- export const DBDef_PermissionDomain = {
14
- modifiablePropsValidator: Validator_ModifiableProps,
15
- generatedPropsValidator: Validator_GeneratedProps,
16
- generatedProps: ['_auditorId'],
17
- versions: ['1.0.0'],
18
- dbKey: PermissionDomain_DbKey,
19
- frontend: {
20
- group: PermissionDBGroup,
21
- name: 'domain',
22
- },
23
- backend: {
24
- name: 'permissions--domain',
25
- },
26
- entityName: 'PermissionDomain',
27
- lockKeys: ['projectId'],
28
- dependencies: {
29
- projectId: {
30
- fieldType: 'string',
31
- dbKey: 'permissions--project',
32
- }
33
- }
34
- };
35
- /** Brand a string as DatabaseDef_PermissionDomain['id']. Use for literal ids (e.g. default domains). */
36
- export const toPermissionDomainId = (id) => stringToUniqueId(id);
@@ -1,22 +0,0 @@
1
- import { DB_Object, DB_ProtoSeed, DB_Prototype, VersionsDeclaration } from '@nu-art/db-api-shared';
2
- import { DatabaseDef_PermissionProject } from '../permission-project/types.js';
3
- import { AuditableV2 } from '@nu-art/user-account-shared';
4
- export declare const PermissionDomain_DbKey = "permissions--domain";
5
- type DBKey = typeof PermissionDomain_DbKey;
6
- type VersionTypes_PermissionDomain = {
7
- '1.0.0': DB_PermissionDomain;
8
- };
9
- type Versions = VersionsDeclaration<['1.0.0'], VersionTypes_PermissionDomain>;
10
- type UniqueKeys = '_id';
11
- type GeneratedProps = '_auditorId';
12
- type Dependencies = {
13
- projectId: DatabaseDef_PermissionProject;
14
- };
15
- type Proto = DB_ProtoSeed<DB_PermissionDomain, DBKey, GeneratedProps, Versions, UniqueKeys, Dependencies>;
16
- export type DatabaseDef_PermissionDomain = DB_Prototype<Proto>;
17
- export type UI_PermissionDomain = DatabaseDef_PermissionDomain['uiType'];
18
- export type DB_PermissionDomain = DB_Object<DBKey> & AuditableV2 & {
19
- projectId: DatabaseDef_PermissionProject['id'];
20
- namespace: string;
21
- };
22
- export {};
@@ -1 +0,0 @@
1
- export const PermissionDomain_DbKey = 'permissions--domain';
@@ -1,5 +0,0 @@
1
- import { Database } from '@nu-art/db-api-shared';
2
- import { DatabaseDef_PermissionGroup } from './types.js';
3
- export declare const DBDef_PermissionGroup: Database<DatabaseDef_PermissionGroup>;
4
- /** Brand a string as DatabaseDef_PermissionGroup['id']. Use for literal ids (e.g. default groups). */
5
- export declare const toPermissionGroupId: (id: string) => import("@nu-art/db-api-shared").DB_UniqueId<"permissions--group">;
@@ -1,43 +0,0 @@
1
- import { tsValidateArray, tsValidateDynamicObject, tsValidateNumber, tsValidateOptionalId, tsValidateString, tsValidateUniqueId, } from '@nu-art/ts-common';
2
- import { stringToUniqueId } from '@nu-art/db-api-shared';
3
- import { PermissionGroup_DbKey } from './types.js';
4
- import { PermissionDBGroup } from '../../consts.js';
5
- import { validateGroupLabel } from '../../validators.js';
6
- import { tsValidator_AuditableV2 } from '@nu-art/user-account-shared';
7
- const Validator_ModifiableProps = {
8
- label: validateGroupLabel,
9
- uiLabel: tsValidateString(),
10
- projectId: tsValidateOptionalId,
11
- accessLevelIds: tsValidateArray(tsValidateUniqueId, false),
12
- };
13
- const Validator_GeneratedProps = {
14
- ...tsValidator_AuditableV2,
15
- _levelsMap: tsValidateDynamicObject(tsValidateNumber(), tsValidateString(), false),
16
- };
17
- export const DBDef_PermissionGroup = {
18
- modifiablePropsValidator: Validator_ModifiableProps,
19
- generatedPropsValidator: Validator_GeneratedProps,
20
- generatedProps: ['_levelsMap'],
21
- versions: ['1.0.1', '1.0.0'],
22
- dbKey: PermissionGroup_DbKey,
23
- entityName: 'PermissionGroup',
24
- frontend: {
25
- group: PermissionDBGroup,
26
- name: 'group',
27
- },
28
- backend: {
29
- name: 'permissions--group'
30
- },
31
- dependencies: {
32
- projectId: {
33
- dbKey: 'permissions--project',
34
- fieldType: 'string',
35
- },
36
- accessLevelIds: {
37
- dbKey: 'permissions--level',
38
- fieldType: 'string[]',
39
- }
40
- }
41
- };
42
- /** Brand a string as DatabaseDef_PermissionGroup['id']. Use for literal ids (e.g. default groups). */
43
- export const toPermissionGroupId = (id) => stringToUniqueId(id);
@@ -1,35 +0,0 @@
1
- import { TypedMap } from '@nu-art/ts-common';
2
- import { DB_Object, DB_ProtoSeed, DB_Prototype, VersionsDeclaration } from '@nu-art/db-api-shared';
3
- import { DatabaseDef_PermissionProject } from '../permission-project/types.js';
4
- import { DatabaseDef_PermissionAccessLevel } from '../permission-access-level/types.js';
5
- import { AuditableV2 } from '@nu-art/user-account-shared';
6
- export declare const PermissionGroup_DbKey = "permissions--group";
7
- type DBKey = typeof PermissionGroup_DbKey;
8
- type VersionTypes_PermissionGroup = {
9
- '1.0.0': DB_PermissionGroup;
10
- '1.0.1': DB_PermissionGroup;
11
- };
12
- type Versions = VersionsDeclaration<['1.0.1', '1.0.0'], VersionTypes_PermissionGroup>;
13
- type UniqueKeys = '_id';
14
- type GeneratedProps = '_levelsMap' | keyof AuditableV2;
15
- type Dependencies = {
16
- projectId: DatabaseDef_PermissionProject;
17
- accessLevelIds: DatabaseDef_PermissionAccessLevel;
18
- };
19
- type Proto = DB_ProtoSeed<DB_PermissionGroup, DBKey, GeneratedProps, Versions, UniqueKeys, Dependencies>;
20
- export type DatabaseDef_PermissionGroup = DB_Prototype<Proto>;
21
- export type UI_PermissionGroup = DatabaseDef_PermissionGroup['uiType'];
22
- export type DB_PermissionGroup = DB_Object<DBKey> & AuditableV2 & {
23
- projectId?: DatabaseDef_PermissionProject['id'];
24
- label: string;
25
- uiLabel: string;
26
- accessLevelIds: DatabaseDef_PermissionAccessLevel['id'][];
27
- _levelsMap?: TypedMap<number>;
28
- };
29
- export type DB_PermissionGroup_1_0_0 = DB_Object<DBKey> & AuditableV2 & {
30
- projectId?: DatabaseDef_PermissionProject['id'];
31
- label: string;
32
- accessLevelIds: DatabaseDef_PermissionAccessLevel['id'][];
33
- _levelsMap?: TypedMap<number>;
34
- };
35
- export {};
@@ -1 +0,0 @@
1
- export const PermissionGroup_DbKey = 'permissions--group';
@@ -1,5 +0,0 @@
1
- import { Database } from '@nu-art/db-api-shared';
2
- import { DatabaseDef_PermissionProject } from './types.js';
3
- export declare const DBDef_PermissionProject: Database<DatabaseDef_PermissionProject>;
4
- /** Brand a string as DatabaseDef_PermissionProject['id']. Use for literal ids (e.g. default projects). */
5
- export declare const toPermissionProjectId: (id: string) => import("@nu-art/db-api-shared").DB_UniqueId<"permissions--project">;
@@ -1,28 +0,0 @@
1
- import { stringToUniqueId } from '@nu-art/db-api-shared';
2
- import { tsValidateString } from '@nu-art/ts-common';
3
- import { PermissionProject_DbKey } from './types.js';
4
- import { PermissionDBGroup } from '../../consts.js';
5
- import { validateProjectName } from '../../validators.js';
6
- const Validator_ModifiableProps = {
7
- name: validateProjectName,
8
- };
9
- const Validator_GeneratedProps = {
10
- _auditorId: tsValidateString()
11
- };
12
- export const DBDef_PermissionProject = {
13
- modifiablePropsValidator: Validator_ModifiableProps,
14
- generatedPropsValidator: Validator_GeneratedProps,
15
- generatedProps: ['_auditorId'],
16
- versions: ['1.0.0'],
17
- dbKey: PermissionProject_DbKey,
18
- entityName: 'PermissionsProject',
19
- frontend: {
20
- group: PermissionDBGroup,
21
- name: 'project',
22
- },
23
- backend: {
24
- name: 'permissions--project'
25
- }
26
- };
27
- /** Brand a string as DatabaseDef_PermissionProject['id']. Use for literal ids (e.g. default projects). */
28
- export const toPermissionProjectId = (id) => stringToUniqueId(id);
@@ -1,18 +0,0 @@
1
- import { DB_Object, DB_ProtoSeed, DB_Prototype, VersionsDeclaration } from '@nu-art/db-api-shared';
2
- import { AuditableV2 } from '@nu-art/user-account-shared';
3
- export declare const PermissionProject_DbKey = "permissions--project";
4
- type DBKey = typeof PermissionProject_DbKey;
5
- type VersionTypes_PermissionProject = {
6
- '1.0.0': DB_PermissionProject;
7
- };
8
- type Versions = VersionsDeclaration<['1.0.0'], VersionTypes_PermissionProject>;
9
- type UniqueKeys = '_id';
10
- type GeneratedProps = '_auditorId';
11
- type Dependencies = {};
12
- type Proto = DB_ProtoSeed<DB_PermissionProject, DBKey, GeneratedProps, Versions, UniqueKeys, Dependencies>;
13
- export type DatabaseDef_PermissionProject = DB_Prototype<Proto>;
14
- export type UI_PermissionProject = DatabaseDef_PermissionProject['uiType'];
15
- export type DB_PermissionProject = DB_Object<DBKey> & AuditableV2 & {
16
- name: string;
17
- };
18
- export {};
@@ -1 +0,0 @@
1
- export const PermissionProject_DbKey = 'permissions--project';
@@ -1,13 +0,0 @@
1
- import { ApiDefResolver, BodyApi } from '@nu-art/api-types';
2
- import { DatabaseDef_Account } from '@nu-art/user-account-shared';
3
- import { DatabaseDef_PermissionGroup } from '../permission-group/types.js';
4
- import { DatabaseDef_PermissionProject } from '../permission-project/types.js';
5
- export type Request_AssignPermissions = {
6
- projectId?: DatabaseDef_PermissionProject['id'];
7
- permissionGroupIds: DatabaseDef_PermissionGroup['id'][];
8
- targetAccountIds: DatabaseDef_Account['id'][];
9
- };
10
- export type API_PermissionUser = {
11
- assignPermissions: BodyApi<void, Request_AssignPermissions>;
12
- };
13
- export declare const ApiDef_PermissionUser: ApiDefResolver<API_PermissionUser>;
@@ -1,4 +0,0 @@
1
- import { HttpMethod } from '@nu-art/api-types';
2
- export const ApiDef_PermissionUser = {
3
- assignPermissions: { method: HttpMethod.POST, path: '/pah/permissions/assign/app-permissions' }
4
- };
@@ -1,3 +0,0 @@
1
- import { Database } from '@nu-art/db-api-shared';
2
- import { DatabaseDef_PermissionUser } from './types.js';
3
- export declare const DBDef_PermissionUser: Database<DatabaseDef_PermissionUser>;
@@ -1,34 +0,0 @@
1
- import { tsValidateArray, tsValidateStringAndNumbersWithDashes } from '@nu-art/ts-common';
2
- import { PermissionUser_DbKey } from './types.js';
3
- import { PermissionDBGroup } from '../../consts.js';
4
- import { tsValidator_AuditableV2 } from '@nu-art/user-account-shared';
5
- const Validator_ModifiableProps = {
6
- groups: tsValidateArray({
7
- groupId: tsValidateStringAndNumbersWithDashes,
8
- }, false),
9
- };
10
- const Validator_GeneratedProps = {
11
- ...tsValidator_AuditableV2,
12
- __groupIds: tsValidateArray(tsValidateStringAndNumbersWithDashes, false),
13
- };
14
- export const DBDef_PermissionUser = {
15
- modifiablePropsValidator: Validator_ModifiableProps,
16
- generatedPropsValidator: Validator_GeneratedProps,
17
- generatedProps: ['__groupIds', '_auditorId'],
18
- versions: ['1.0.0'],
19
- dbKey: PermissionUser_DbKey,
20
- entityName: 'PermissionUser',
21
- frontend: {
22
- group: PermissionDBGroup,
23
- name: 'user',
24
- },
25
- backend: {
26
- name: 'permissions--user'
27
- },
28
- dependencies: {
29
- '__groupIds': {
30
- fieldType: 'string[]',
31
- dbKey: 'permissions--group',
32
- }
33
- }
34
- };
@@ -1,25 +0,0 @@
1
- import { DB_Object, DB_ProtoSeed, DB_Prototype, VersionsDeclaration } from '@nu-art/db-api-shared';
2
- import { DatabaseDef_PermissionGroup } from '../permission-group/types.js';
3
- import { AuditableV2 } from '@nu-art/user-account-shared';
4
- export declare const PermissionUser_DbKey = "permissions--user";
5
- type DBKey = typeof PermissionUser_DbKey;
6
- type VersionTypes_PermissionUser = {
7
- '1.0.0': DB_PermissionUser;
8
- };
9
- type Versions = VersionsDeclaration<['1.0.0'], VersionTypes_PermissionUser>;
10
- type UniqueKeys = '_id';
11
- type GeneratedProps = '__groupIds' | '_auditorId';
12
- type Dependencies = {
13
- '__groupIds': DatabaseDef_PermissionGroup;
14
- };
15
- type Proto = DB_ProtoSeed<DB_PermissionUser, DBKey, GeneratedProps, Versions, UniqueKeys, Dependencies>;
16
- export type DatabaseDef_PermissionUser = DB_Prototype<Proto>;
17
- export type UI_PermissionUser = DatabaseDef_PermissionUser['uiType'];
18
- export type User_Group = {
19
- groupId: DatabaseDef_PermissionGroup['id'];
20
- };
21
- export type DB_PermissionUser = DB_Object<DBKey> & AuditableV2 & {
22
- groups: User_Group[];
23
- __groupIds?: DatabaseDef_PermissionGroup['id'][];
24
- };
25
- export {};
@@ -1 +0,0 @@
1
- export const PermissionUser_DbKey = 'permissions--user';
package/_entity.d.ts DELETED
@@ -1,13 +0,0 @@
1
- export * from './_entity/permission-access-level/types.js';
2
- export * from './_entity/permission-access-level/db-def.js';
3
- export * from './_entity/permission-api/types.js';
4
- export * from './_entity/permission-api/db-def.js';
5
- export * from './_entity/permission-project/types.js';
6
- export * from './_entity/permission-project/db-def.js';
7
- export * from './_entity/permission-domain/types.js';
8
- export * from './_entity/permission-domain/db-def.js';
9
- export * from './_entity/permission-group/types.js';
10
- export * from './_entity/permission-group/db-def.js';
11
- export * from './_entity/permission-user/types.js';
12
- export * from './_entity/permission-user/db-def.js';
13
- export * from './_entity/permission-user/api-def.js';
package/_entity.js DELETED
@@ -1,13 +0,0 @@
1
- export * from './_entity/permission-access-level/types.js';
2
- export * from './_entity/permission-access-level/db-def.js';
3
- export * from './_entity/permission-api/types.js';
4
- export * from './_entity/permission-api/db-def.js';
5
- export * from './_entity/permission-project/types.js';
6
- export * from './_entity/permission-project/db-def.js';
7
- export * from './_entity/permission-domain/types.js';
8
- export * from './_entity/permission-domain/db-def.js';
9
- export * from './_entity/permission-group/types.js';
10
- export * from './_entity/permission-group/db-def.js';
11
- export * from './_entity/permission-user/types.js';
12
- export * from './_entity/permission-user/db-def.js';
13
- export * from './_entity/permission-user/api-def.js';
package/apis.d.ts DELETED
@@ -1,66 +0,0 @@
1
- import { ApiDefResolver, BodyApi, QueryApi } from '@nu-art/api-types';
2
- import { PreDB, StringMap } from '@nu-art/ts-common';
3
- import { DatabaseDef_Account } from '@nu-art/user-account-shared';
4
- import { DatabaseDef_PermissionGroup, DatabaseDef_PermissionProject, DatabaseDef_PermissionUser, DB_PermissionProject } from './_entity.js';
5
- export type UserUrlsPermissions = {
6
- [url: string]: boolean;
7
- };
8
- export type Request_AssertApiForUser = {
9
- projectId: DatabaseDef_PermissionProject['id'];
10
- path: string;
11
- };
12
- export type Request_UserUrlsPermissions = {
13
- projectId: DatabaseDef_PermissionProject['id'];
14
- urls: UserUrlsPermissions;
15
- };
16
- export type Request_UserCFsByShareGroups = {
17
- groupsIds: DatabaseDef_PermissionGroup['id'][];
18
- };
19
- export type Request_UsersCFsByShareGroups = Request_UserCFsByShareGroups & {
20
- usersEmails: string[];
21
- };
22
- export type Response_UsersCFsByShareGroups = {
23
- [userEmail: string]: StringMap[];
24
- };
25
- export type Request_AssignAppPermissions<T extends StringMap = StringMap> = {
26
- projectId: DatabaseDef_PermissionProject['id'];
27
- groupsToRemove: PredefinedGroup[];
28
- group: PredefinedGroup;
29
- customField: T;
30
- assertKeys?: (keyof T)[];
31
- customKey: string;
32
- sharedUserIds?: string[];
33
- appAccountId?: string;
34
- };
35
- export type AssignAppPermissions = Request_AssignAppPermissions & {
36
- granterUserId: DatabaseDef_Account['id'];
37
- };
38
- export type PredefinedGroup = {
39
- _id: DatabaseDef_PermissionGroup['id'];
40
- key: string;
41
- label: string;
42
- customKeys?: string[];
43
- };
44
- export type PredefinedUser = {
45
- accountId: DatabaseDef_Account['id'];
46
- _id: DatabaseDef_PermissionUser['id'];
47
- groups: PredefinedGroup[];
48
- };
49
- export type Request_RegisterProject = {
50
- project: PreDB<DB_PermissionProject>;
51
- routes: string[];
52
- predefinedGroups?: PredefinedGroup[];
53
- predefinedUser?: PredefinedUser;
54
- };
55
- export type Response_User = {
56
- userId: DatabaseDef_Account['id'];
57
- };
58
- export type API_PermissionsAssert = {
59
- assertUserPermissions: BodyApi<Response_User, Request_AssertApiForUser>;
60
- };
61
- export declare const ApiDef_PermissionsAssert: ApiDefResolver<API_PermissionsAssert>;
62
- export type API_Permissions = {
63
- toggleStrictMode: QueryApi<void>;
64
- createProject: QueryApi<void>;
65
- };
66
- export declare const ApiDef_Permissions: ApiDefResolver<API_Permissions>;
package/apis.js DELETED
@@ -1,27 +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
- import { HttpMethod } from '@nu-art/api-types';
20
- import { Minute } from '@nu-art/ts-common';
21
- export const ApiDef_PermissionsAssert = {
22
- assertUserPermissions: { method: HttpMethod.POST, path: 'v1/permissions/assert-user-access' }
23
- };
24
- export const ApiDef_Permissions = {
25
- toggleStrictMode: { method: HttpMethod.GET, path: 'v1/permissions/toggle-strict-mode', timeout: Minute },
26
- createProject: { method: HttpMethod.GET, path: 'v1/permissions/create-first-project', timeout: Minute },
27
- };
package/path-utils.d.ts DELETED
@@ -1,2 +0,0 @@
1
- /** Removes a leading '/' from path if present. Used for normalizing API paths. */
2
- export declare const trimStartingForwardSlash: (path: string) => string;
package/path-utils.js DELETED
@@ -1,7 +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
- /** Removes a leading '/' from path if present. Used for normalizing API paths. */
7
- export const trimStartingForwardSlash = (path) => path.startsWith('/') ? path.substring(1) : path;
@@ -1,3 +0,0 @@
1
- export declare const PermissionKey_DeveloperViewer = "permission-key--developer-viewer";
2
- export declare const PermissionKey_DeveloperWriter = "permission-key--developer-editor";
3
- export declare const PermissionKey_DeveloperAdmin = "permission-key--developer-admin";
@@ -1,3 +0,0 @@
1
- export const PermissionKey_DeveloperViewer = 'permission-key--developer-viewer';
2
- export const PermissionKey_DeveloperWriter = 'permission-key--developer-editor';
3
- export const PermissionKey_DeveloperAdmin = 'permission-key--developer-admin';
@@ -1,25 +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
- /**
20
- * Creates a frozen, branded permission scope. Use this to define scopes
21
- * for the @RequirePermission decorator (e.g. pathway: read, write, delete, admin).
22
- */
23
- export function definePermissionScope(key, values) {
24
- return Object.freeze({ key, values });
25
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * Interface for modules that participate in project setup (e.g. create default projects, domains, keys).
3
- * The app wires implementations to its action-processor or calls __performProjectSetup() when needed.
4
- */
5
- export interface PerformProjectSetup {
6
- __performProjectSetup(): {
7
- priority: number;
8
- processor: () => Promise<void>;
9
- };
10
- }
package/project-setup.js DELETED
@@ -1,6 +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
- export {};
@@ -1,11 +0,0 @@
1
- /**
2
- * Definition for a service account to be created during project setup.
3
- * The app provides a list via setServiceAccountsProvider; permissions uses it to create permission users and wire tokens.
4
- */
5
- export type ServiceAccountDef = {
6
- email: string;
7
- description: string;
8
- groupIds?: string[];
9
- moduleName: string;
10
- ttl?: number;
11
- };
@@ -1,6 +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
- export {};