@prosopo/user-access-policy 3.12.8 → 3.12.10

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 (84) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +45 -41
  2. package/.turbo/turbo-build$colon$tsc.log +14 -14
  3. package/.turbo/turbo-build.log +46 -42
  4. package/CHANGELOG.md +24 -0
  5. package/dist/.export.js +7 -21
  6. package/dist/_virtual/_rolldown/runtime.js +3 -0
  7. package/dist/api/.export.js +2 -9
  8. package/dist/api/accessRulesApiClient.js +1 -1
  9. package/dist/api/delete/.export.js +2 -1
  10. package/dist/api/delete/deleteAllRules.js +22 -24
  11. package/dist/api/delete/deleteRuleGroups.js +39 -51
  12. package/dist/api/delete/deleteRules.js +37 -41
  13. package/dist/api/read/.export.js +2 -1
  14. package/dist/api/read/fetchRules.js +34 -42
  15. package/dist/api/read/findRuleIds.js +35 -48
  16. package/dist/api/read/getMissingIds.js +36 -40
  17. package/dist/api/ruleApiRoutes.js +62 -120
  18. package/dist/api/rulesApiClient.js +51 -87
  19. package/dist/api/write/.export.js +2 -1
  20. package/dist/api/write/insertRules.js +84 -102
  21. package/dist/api/write/rehashRules.js +48 -56
  22. package/dist/cjs/.export.cjs +21 -23
  23. package/dist/cjs/_virtual/_rolldown/runtime.cjs +23 -0
  24. package/dist/cjs/api/.export.cjs +6 -10
  25. package/dist/cjs/api/accessRulesApiClient.cjs +0 -0
  26. package/dist/cjs/api/delete/.export.cjs +0 -1
  27. package/dist/cjs/api/delete/deleteAllRules.cjs +22 -24
  28. package/dist/cjs/api/delete/deleteRuleGroups.cjs +39 -51
  29. package/dist/cjs/api/delete/deleteRules.cjs +41 -42
  30. package/dist/cjs/api/read/.export.cjs +0 -1
  31. package/dist/cjs/api/read/fetchRules.cjs +34 -41
  32. package/dist/cjs/api/read/findRuleIds.cjs +37 -48
  33. package/dist/cjs/api/read/getMissingIds.cjs +36 -39
  34. package/dist/cjs/api/ruleApiRoutes.cjs +69 -125
  35. package/dist/cjs/api/rulesApiClient.cjs +54 -90
  36. package/dist/cjs/api/write/.export.cjs +0 -1
  37. package/dist/cjs/api/write/insertRules.cjs +85 -103
  38. package/dist/cjs/api/write/rehashRules.cjs +48 -56
  39. package/dist/cjs/classifyOs.cjs +46 -26
  40. package/dist/cjs/mongoose/.export.cjs +2 -3
  41. package/dist/cjs/mongoose/mongooseRuleSchema.cjs +97 -36
  42. package/dist/cjs/redis/.export.cjs +4 -5
  43. package/dist/cjs/redis/reader/redisAggregate.cjs +59 -84
  44. package/dist/cjs/redis/reader/redisRulesQuery.cjs +74 -116
  45. package/dist/cjs/redis/reader/redisRulesReader.cjs +322 -503
  46. package/dist/cjs/redis/reader/redisRulesSplitQuery.cjs +94 -72
  47. package/dist/cjs/redis/redisClient.cjs +53 -58
  48. package/dist/cjs/redis/redisRuleIndex.cjs +93 -49
  49. package/dist/cjs/redis/redisRulesStorage.cjs +21 -30
  50. package/dist/cjs/redis/redisRulesWriter.cjs +86 -112
  51. package/dist/cjs/rule.cjs +8 -7
  52. package/dist/cjs/ruleInput/.export.cjs +7 -8
  53. package/dist/cjs/ruleInput/policyInput.cjs +35 -58
  54. package/dist/cjs/ruleInput/ruleInput.cjs +37 -42
  55. package/dist/cjs/ruleInput/userScopeInput.cjs +47 -55
  56. package/dist/cjs/ruleRecord.cjs +15 -22
  57. package/dist/cjs/rulesStorage.cjs +7 -6
  58. package/dist/cjs/transformRule.cjs +36 -70
  59. package/dist/classifyOs.js +48 -29
  60. package/dist/mongoose/.export.js +2 -3
  61. package/dist/mongoose/mongooseRuleSchema.js +99 -38
  62. package/dist/redis/.export.js +3 -5
  63. package/dist/redis/reader/redisAggregate.js +60 -86
  64. package/dist/redis/reader/redisRulesQuery.js +75 -118
  65. package/dist/redis/reader/redisRulesReader.js +312 -487
  66. package/dist/redis/reader/redisRulesSplitQuery.js +96 -75
  67. package/dist/redis/redisClient.js +54 -62
  68. package/dist/redis/redisRuleIndex.js +93 -58
  69. package/dist/redis/redisRulesStorage.js +21 -30
  70. package/dist/redis/redisRulesWriter.js +82 -113
  71. package/dist/rule.js +10 -10
  72. package/dist/ruleInput/.export.js +3 -7
  73. package/dist/ruleInput/policyInput.js +35 -61
  74. package/dist/ruleInput/ruleInput.js +36 -44
  75. package/dist/ruleInput/userScopeInput.js +44 -55
  76. package/dist/ruleRecord.js +17 -27
  77. package/dist/rulesStorage.js +9 -8
  78. package/dist/tests/redis/redisRulesStorage.integration.test.js +1 -3
  79. package/dist/tests/redis/redisRulesStorage.integration.test.js.map +1 -1
  80. package/dist/transformRule.js +34 -73
  81. package/entries.ts +25 -6
  82. package/package.json +13 -12
  83. package/src/tests/redis/redisRulesStorage.integration.test.ts +191 -195
  84. package/tsconfig.tsbuildinfo +1 -1
@@ -1,105 +1,87 @@
1
+ import "../../_virtual/_rolldown/runtime.js";
2
+ import { accessPolicyInput, policyScopeInput, sanitizeAccessPolicy } from "../../ruleInput/policyInput.js";
3
+ import { userScopeInput } from "../../ruleInput/userScopeInput.js";
4
+ import { z } from "zod";
1
5
  import { ApiEndpointResponseStatus } from "@prosopo/api-route";
2
6
  import { LogLevel } from "@prosopo/logger";
3
- import { z } from "zod";
4
- import { policyScopeInput, accessPolicyInput, sanitizeAccessPolicy } from "../../ruleInput/policyInput.js";
5
- import { userScopeInput } from "../../ruleInput/userScopeInput.js";
6
- class InsertRulesEndpoint {
7
- constructor(accessRulesWriter, logger) {
8
- this.accessRulesWriter = accessRulesWriter;
9
- this.logger = logger;
10
- }
11
- getRequestArgsSchema() {
12
- return z.array(
13
- z.object({
14
- accessPolicy: accessPolicyInput,
15
- policyScopes: z.array(policyScopeInput).optional(),
16
- groupId: z.string().optional(),
17
- userScopes: z.array(userScopeInput),
18
- expiresUnixTimestamp: z.number().optional()
19
- })
20
- );
21
- }
22
- async processRequest(args, logger) {
23
- const log = logger ?? this.logger;
24
- const timeoutPromise = new Promise((resolve) => {
25
- setTimeout(() => {
26
- resolve({
27
- status: ApiEndpointResponseStatus.PROCESSING
28
- });
29
- }, 5e3);
30
- });
31
- const userScopesCount = args.reduce(
32
- (userScopesCount2, group) => userScopesCount2 + group.userScopes.length,
33
- 0
34
- );
35
- const createRulesPromise = this.createRuleGroups(args).then((insertedIds) => {
36
- log.info(() => ({
37
- msg: "Endpoint inserted access rules",
38
- data: {
39
- userScopesCount,
40
- insertedCount: insertedIds.length,
41
- uniqueIdsCount: new Set(insertedIds).size
42
- }
43
- }));
44
- log.debug(() => ({
45
- msg: "Inserted access rules details",
46
- data: {
47
- insertedIds,
48
- input: args
49
- }
50
- }));
51
- return {
52
- status: ApiEndpointResponseStatus.SUCCESS
53
- };
54
- }).catch((error) => {
55
- if (LogLevel.enum.debug === log.getLogLevel()) {
56
- log.error(() => ({
57
- err: error,
58
- data: { args },
59
- msg: "Failed to insert access rules"
60
- }));
61
- }
62
- return {
63
- status: ApiEndpointResponseStatus.FAIL
64
- };
65
- });
66
- return Promise.race([timeoutPromise, createRulesPromise]);
67
- }
68
- async createRuleGroups(groups) {
69
- const ruleIdPromises = groups.map((group) => this.createRulesGroup(group));
70
- const ruleIdSets = await Promise.all(ruleIdPromises);
71
- return ruleIdSets.flat();
72
- }
73
- async createRulesGroup(group) {
74
- const ruleEntries = [];
75
- const policyScopes = group.policyScopes || [];
76
- const sanitizedPolicy = sanitizeAccessPolicy(group.accessPolicy);
77
- for (const userScope of group.userScopes) {
78
- const ruleBase = {
79
- ...sanitizedPolicy,
80
- ...userScope,
81
- ...group.groupId ? { groupId: group.groupId } : {}
82
- };
83
- if (policyScopes.length > 0) {
84
- for (const policyScope of policyScopes) {
85
- ruleEntries.push({
86
- rule: {
87
- ...ruleBase,
88
- ...policyScope
89
- },
90
- expiresUnixTimestamp: group.expiresUnixTimestamp
91
- });
92
- }
93
- } else {
94
- ruleEntries.push({
95
- rule: ruleBase,
96
- expiresUnixTimestamp: group.expiresUnixTimestamp
97
- });
98
- }
99
- }
100
- return this.accessRulesWriter.insertRules(ruleEntries);
101
- }
102
- }
103
- export {
104
- InsertRulesEndpoint
7
+ //#region src/api/write/insertRules.ts
8
+ var InsertRulesEndpoint = class {
9
+ constructor(accessRulesWriter, logger) {
10
+ this.accessRulesWriter = accessRulesWriter;
11
+ this.logger = logger;
12
+ }
13
+ getRequestArgsSchema() {
14
+ return z.array(z.object({
15
+ accessPolicy: accessPolicyInput,
16
+ policyScopes: z.array(policyScopeInput).optional(),
17
+ groupId: z.string().optional(),
18
+ userScopes: z.array(userScopeInput),
19
+ expiresUnixTimestamp: z.number().optional()
20
+ }));
21
+ }
22
+ async processRequest(args, logger) {
23
+ const log = logger ?? this.logger;
24
+ const timeoutPromise = new Promise((resolve) => {
25
+ setTimeout(() => {
26
+ resolve({ status: ApiEndpointResponseStatus.PROCESSING });
27
+ }, 5e3);
28
+ });
29
+ const userScopesCount = args.reduce((userScopesCount, group) => userScopesCount + group.userScopes.length, 0);
30
+ const createRulesPromise = this.createRuleGroups(args).then((insertedIds) => {
31
+ log.info(() => ({
32
+ msg: "Endpoint inserted access rules",
33
+ data: {
34
+ userScopesCount,
35
+ insertedCount: insertedIds.length,
36
+ uniqueIdsCount: new Set(insertedIds).size
37
+ }
38
+ }));
39
+ log.debug(() => ({
40
+ msg: "Inserted access rules details",
41
+ data: {
42
+ insertedIds,
43
+ input: args
44
+ }
45
+ }));
46
+ return { status: ApiEndpointResponseStatus.SUCCESS };
47
+ }).catch((error) => {
48
+ if (LogLevel.enum.debug === log.getLogLevel()) log.error(() => ({
49
+ err: error,
50
+ data: { args },
51
+ msg: "Failed to insert access rules"
52
+ }));
53
+ return { status: ApiEndpointResponseStatus.FAIL };
54
+ });
55
+ return Promise.race([timeoutPromise, createRulesPromise]);
56
+ }
57
+ async createRuleGroups(groups) {
58
+ const ruleIdPromises = groups.map((group) => this.createRulesGroup(group));
59
+ return (await Promise.all(ruleIdPromises)).flat();
60
+ }
61
+ async createRulesGroup(group) {
62
+ const ruleEntries = [];
63
+ const policyScopes = group.policyScopes || [];
64
+ const sanitizedPolicy = sanitizeAccessPolicy(group.accessPolicy);
65
+ for (const userScope of group.userScopes) {
66
+ const ruleBase = {
67
+ ...sanitizedPolicy,
68
+ ...userScope,
69
+ ...group.groupId ? { groupId: group.groupId } : {}
70
+ };
71
+ if (policyScopes.length > 0) for (const policyScope of policyScopes) ruleEntries.push({
72
+ rule: {
73
+ ...ruleBase,
74
+ ...policyScope
75
+ },
76
+ expiresUnixTimestamp: group.expiresUnixTimestamp
77
+ });
78
+ else ruleEntries.push({
79
+ rule: ruleBase,
80
+ expiresUnixTimestamp: group.expiresUnixTimestamp
81
+ });
82
+ }
83
+ return this.accessRulesWriter.insertRules(ruleEntries);
84
+ }
105
85
  };
86
+ //#endregion
87
+ export { InsertRulesEndpoint };
@@ -1,58 +1,50 @@
1
+ import "../../_virtual/_rolldown/runtime.js";
1
2
  import { ApiEndpointResponseStatus } from "@prosopo/api-route";
2
- class RehashRulesEndpoint {
3
- constructor(accessRulesStorage, logger) {
4
- this.accessRulesStorage = accessRulesStorage;
5
- this.logger = logger;
6
- }
7
- getRequestArgsSchema() {
8
- }
9
- async processRequest(logger) {
10
- const log = logger ?? this.logger;
11
- await this.accessRulesStorage.fetchAllRuleIds(async (ruleIds) => {
12
- log.info(() => ({
13
- msg: "Fetched rule ids batch",
14
- data: {
15
- count: ruleIds.length,
16
- ruleIds
17
- }
18
- }));
19
- const ruleEntries = await this.accessRulesStorage.fetchRules(ruleIds);
20
- log.info(() => ({
21
- msg: "Fetched rules",
22
- data: {
23
- count: ruleEntries.length
24
- }
25
- }));
26
- if (ruleEntries.length !== ruleIds.length) {
27
- log.warn(() => ({
28
- msg: "Fetched rules count is not equal to the requested count",
29
- data: {
30
- fetchedCount: ruleEntries.length,
31
- requestedCount: ruleIds.length
32
- }
33
- }));
34
- }
35
- await this.accessRulesStorage.deleteRules(ruleIds);
36
- log.info(() => ({
37
- msg: "Deleted rules",
38
- data: {
39
- count: ruleIds.length
40
- }
41
- }));
42
- await this.accessRulesStorage.insertRules(ruleEntries);
43
- log.info(() => ({
44
- msg: "Inserted rules",
45
- data: {
46
- count: ruleEntries.length
47
- }
48
- }));
49
- });
50
- return {
51
- status: ApiEndpointResponseStatus.SUCCESS,
52
- data: {}
53
- };
54
- }
55
- }
56
- export {
57
- RehashRulesEndpoint
3
+ //#region src/api/write/rehashRules.ts
4
+ var RehashRulesEndpoint = class {
5
+ constructor(accessRulesStorage, logger) {
6
+ this.accessRulesStorage = accessRulesStorage;
7
+ this.logger = logger;
8
+ }
9
+ getRequestArgsSchema() {}
10
+ async processRequest(logger) {
11
+ const log = logger ?? this.logger;
12
+ await this.accessRulesStorage.fetchAllRuleIds(async (ruleIds) => {
13
+ log.info(() => ({
14
+ msg: "Fetched rule ids batch",
15
+ data: {
16
+ count: ruleIds.length,
17
+ ruleIds
18
+ }
19
+ }));
20
+ const ruleEntries = await this.accessRulesStorage.fetchRules(ruleIds);
21
+ log.info(() => ({
22
+ msg: "Fetched rules",
23
+ data: { count: ruleEntries.length }
24
+ }));
25
+ if (ruleEntries.length !== ruleIds.length) log.warn(() => ({
26
+ msg: "Fetched rules count is not equal to the requested count",
27
+ data: {
28
+ fetchedCount: ruleEntries.length,
29
+ requestedCount: ruleIds.length
30
+ }
31
+ }));
32
+ await this.accessRulesStorage.deleteRules(ruleIds);
33
+ log.info(() => ({
34
+ msg: "Deleted rules",
35
+ data: { count: ruleIds.length }
36
+ }));
37
+ await this.accessRulesStorage.insertRules(ruleEntries);
38
+ log.info(() => ({
39
+ msg: "Inserted rules",
40
+ data: { count: ruleEntries.length }
41
+ }));
42
+ });
43
+ return {
44
+ status: ApiEndpointResponseStatus.SUCCESS,
45
+ data: {}
46
+ };
47
+ }
58
48
  };
49
+ //#endregion
50
+ export { RehashRulesEndpoint };
@@ -1,24 +1,22 @@
1
- "use strict";
2
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- require("./ruleInput/.export.cjs");
4
- const transformRule = require("./transformRule.cjs");
5
- const rule = require("./rule.cjs");
6
- const classifyOs = require("./classifyOs.cjs");
7
- const rulesStorage = require("./rulesStorage.cjs");
8
- const ruleRecord = require("./ruleRecord.cjs");
9
- const ruleInput = require("./ruleInput/ruleInput.cjs");
10
- const policyInput = require("./ruleInput/policyInput.cjs");
11
- const userScopeInput = require("./ruleInput/userScopeInput.cjs");
12
- exports.makeAccessRuleHash = transformRule.makeAccessRuleHash;
13
- exports.transformAccessRuleIntoRecord = transformRule.transformAccessRuleIntoRecord;
14
- exports.transformAccessRuleRecordIntoRule = transformRule.transformAccessRuleRecordIntoRule;
15
- exports.AccessPolicyType = rule.AccessPolicyType;
16
- exports.OS_NAMES = classifyOs.OS_NAMES;
17
- exports.classifyOs = classifyOs.classifyOs;
18
- exports.FilterScopeMatch = rulesStorage.FilterScopeMatch;
19
- exports.getUserScopeRecordFromAccessRuleRecord = ruleRecord.getUserScopeRecordFromAccessRuleRecord;
20
- exports.userScopeRecordFields = ruleRecord.userScopeRecordFields;
21
- exports.accessRuleInput = ruleInput.accessRuleInput;
22
- exports.accessPolicyInput = policyInput.accessPolicyInput;
23
- exports.policyScopeInput = policyInput.policyScopeInput;
24
- exports.userScopeInput = userScopeInput.userScopeInput;
2
+ const require_rulesStorage = require("./rulesStorage.cjs");
3
+ const require_rule = require("./rule.cjs");
4
+ const require_ruleInput_policyInput = require("./ruleInput/policyInput.cjs");
5
+ const require_ruleInput_userScopeInput = require("./ruleInput/userScopeInput.cjs");
6
+ const require_ruleInput_ruleInput = require("./ruleInput/ruleInput.cjs");
7
+ const require_transformRule = require("./transformRule.cjs");
8
+ const require_classifyOs = require("./classifyOs.cjs");
9
+ const require_ruleRecord = require("./ruleRecord.cjs");
10
+ exports.AccessPolicyType = require_rule.AccessPolicyType;
11
+ exports.FilterScopeMatch = require_rulesStorage.FilterScopeMatch;
12
+ exports.OS_NAMES = require_classifyOs.OS_NAMES;
13
+ exports.accessPolicyInput = require_ruleInput_policyInput.accessPolicyInput;
14
+ exports.accessRuleInput = require_ruleInput_ruleInput.accessRuleInput;
15
+ exports.classifyOs = require_classifyOs.classifyOs;
16
+ exports.getUserScopeRecordFromAccessRuleRecord = require_ruleRecord.getUserScopeRecordFromAccessRuleRecord;
17
+ exports.makeAccessRuleHash = require_transformRule.makeAccessRuleHash;
18
+ exports.policyScopeInput = require_ruleInput_policyInput.policyScopeInput;
19
+ exports.transformAccessRuleIntoRecord = require_transformRule.transformAccessRuleIntoRecord;
20
+ exports.transformAccessRuleRecordIntoRule = require_transformRule.transformAccessRuleRecordIntoRule;
21
+ exports.userScopeInput = require_ruleInput_userScopeInput.userScopeInput;
22
+ exports.userScopeRecordFields = require_ruleRecord.userScopeRecordFields;
@@ -0,0 +1,23 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
+ value: mod,
20
+ enumerable: true
21
+ }) : target, mod));
22
+ //#endregion
23
+ exports.__toESM = __toESM;
@@ -1,11 +1,7 @@
1
- "use strict";
2
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- require("./delete/.export.cjs");
4
- require("./read/.export.cjs");
5
- require("./write/.export.cjs");
6
- const ruleApiRoutes = require("./ruleApiRoutes.cjs");
7
- const rulesApiClient = require("./rulesApiClient.cjs");
8
- exports.AccessRuleApiRoutes = ruleApiRoutes.AccessRuleApiRoutes;
9
- exports.accessRuleApiPaths = ruleApiRoutes.accessRuleApiPaths;
10
- exports.getExpressApiRuleRateLimits = ruleApiRoutes.getExpressApiRuleRateLimits;
11
- exports.AccessRulesApiClient = rulesApiClient.AccessRulesApiClient;
2
+ const require_api_ruleApiRoutes = require("./ruleApiRoutes.cjs");
3
+ const require_api_rulesApiClient = require("./rulesApiClient.cjs");
4
+ exports.AccessRuleApiRoutes = require_api_ruleApiRoutes.AccessRuleApiRoutes;
5
+ exports.AccessRulesApiClient = require_api_rulesApiClient.AccessRulesApiClient;
6
+ exports.accessRuleApiPaths = require_api_ruleApiRoutes.accessRuleApiPaths;
7
+ exports.getExpressApiRuleRateLimits = require_api_ruleApiRoutes.getExpressApiRuleRateLimits;
File without changes
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,26 +1,24 @@
1
- "use strict";
2
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const apiRoute = require("@prosopo/api-route");
4
- class DeleteAllRulesEndpoint {
5
- constructor(accessRulesStorage, logger) {
6
- this.accessRulesStorage = accessRulesStorage;
7
- this.logger = logger;
8
- }
9
- getRequestArgsSchema() {
10
- }
11
- async processRequest(logger) {
12
- const log = logger ?? this.logger;
13
- const deletedCount = await this.accessRulesStorage.deleteAllRules();
14
- log.info(() => ({
15
- msg: "Endpoint deleted all access rules",
16
- data: { deletedCount }
17
- }));
18
- return {
19
- status: apiRoute.ApiEndpointResponseStatus.SUCCESS,
20
- data: {
21
- deleted_count: deletedCount
22
- }
23
- };
24
- }
25
- }
2
+ let _prosopo_api_route = require("@prosopo/api-route");
3
+ //#region src/api/delete/deleteAllRules.ts
4
+ var DeleteAllRulesEndpoint = class {
5
+ constructor(accessRulesStorage, logger) {
6
+ this.accessRulesStorage = accessRulesStorage;
7
+ this.logger = logger;
8
+ }
9
+ getRequestArgsSchema() {}
10
+ async processRequest(logger) {
11
+ const log = logger ?? this.logger;
12
+ const deletedCount = await this.accessRulesStorage.deleteAllRules();
13
+ log.info(() => ({
14
+ msg: "Endpoint deleted all access rules",
15
+ data: { deletedCount }
16
+ }));
17
+ return {
18
+ status: _prosopo_api_route.ApiEndpointResponseStatus.SUCCESS,
19
+ data: { deleted_count: deletedCount }
20
+ };
21
+ }
22
+ };
23
+ //#endregion
26
24
  exports.DeleteAllRulesEndpoint = DeleteAllRulesEndpoint;
@@ -1,53 +1,41 @@
1
- "use strict";
2
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const apiRoute = require("@prosopo/api-route");
4
- const zod = require("zod");
5
- const rulesStorage = require("../../rulesStorage.cjs");
6
- class DeleteRuleGroupsEndpoint {
7
- constructor(accessRulesStorage, logger) {
8
- this.accessRulesStorage = accessRulesStorage;
9
- this.logger = logger;
10
- }
11
- getRequestArgsSchema() {
12
- return zod.z.array(
13
- zod.z.object({
14
- clientIds: zod.z.string().array(),
15
- groupId: zod.z.string()
16
- })
17
- );
18
- }
19
- async processRequest(args, logger) {
20
- const log = logger ?? this.logger;
21
- const foundRuleIdPromises = args.flatMap(
22
- (ruleToDelete) => ruleToDelete.clientIds.map(
23
- (clientId) => this.accessRulesStorage.findRuleIds({
24
- policyScope: {
25
- clientId
26
- },
27
- policyScopeMatch: rulesStorage.FilterScopeMatch.Exact,
28
- groupId: ruleToDelete.groupId
29
- })
30
- )
31
- );
32
- const foundRuleIds = await Promise.all(foundRuleIdPromises);
33
- const ruleIds = foundRuleIds.flat();
34
- const uniqueRuleIds = [...new Set(ruleIds)];
35
- if (uniqueRuleIds.length > 0) {
36
- await this.accessRulesStorage.deleteRules(uniqueRuleIds);
37
- }
38
- log.info(() => ({
39
- msg: "Endpoint deleted rule groups",
40
- data: {
41
- args,
42
- uniqueRuleIds
43
- }
44
- }));
45
- return {
46
- status: apiRoute.ApiEndpointResponseStatus.SUCCESS,
47
- data: {
48
- deleted_count: uniqueRuleIds.length
49
- }
50
- };
51
- }
52
- }
2
+ const require_rulesStorage = require("../../rulesStorage.cjs");
3
+ let zod = require("zod");
4
+ let _prosopo_api_route = require("@prosopo/api-route");
5
+ //#region src/api/delete/deleteRuleGroups.ts
6
+ var DeleteRuleGroupsEndpoint = class {
7
+ constructor(accessRulesStorage, logger) {
8
+ this.accessRulesStorage = accessRulesStorage;
9
+ this.logger = logger;
10
+ }
11
+ getRequestArgsSchema() {
12
+ return zod.z.array(zod.z.object({
13
+ clientIds: zod.z.string().array(),
14
+ groupId: zod.z.string()
15
+ }));
16
+ }
17
+ async processRequest(args, logger) {
18
+ const log = logger ?? this.logger;
19
+ const foundRuleIdPromises = args.flatMap((ruleToDelete) => ruleToDelete.clientIds.map((clientId) => this.accessRulesStorage.findRuleIds({
20
+ policyScope: { clientId },
21
+ policyScopeMatch: require_rulesStorage.FilterScopeMatch.Exact,
22
+ groupId: ruleToDelete.groupId
23
+ })));
24
+ const ruleIds = (await Promise.all(foundRuleIdPromises)).flat();
25
+ const uniqueRuleIds = [...new Set(ruleIds)];
26
+ if (uniqueRuleIds.length > 0) await this.accessRulesStorage.deleteRules(uniqueRuleIds);
27
+ log.info(() => ({
28
+ msg: "Endpoint deleted rule groups",
29
+ data: {
30
+ args,
31
+ uniqueRuleIds
32
+ }
33
+ }));
34
+ return {
35
+ status: _prosopo_api_route.ApiEndpointResponseStatus.SUCCESS,
36
+ data: { deleted_count: uniqueRuleIds.length }
37
+ };
38
+ }
39
+ };
40
+ //#endregion
53
41
  exports.DeleteRuleGroupsEndpoint = DeleteRuleGroupsEndpoint;
@@ -1,44 +1,43 @@
1
- "use strict";
2
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const apiRoute = require("@prosopo/api-route");
4
- const common = require("@prosopo/common");
5
- const zod = require("zod");
6
- const ruleInput = require("../../ruleInput/ruleInput.cjs");
7
- class DeleteRulesEndpoint {
8
- constructor(accessRulesStorage, logger) {
9
- this.accessRulesStorage = accessRulesStorage;
10
- this.logger = logger;
11
- }
12
- getRequestArgsSchema() {
13
- return zod.z.array(ruleInput.accessRulesFilterInput);
14
- }
15
- async processRequest(args, logger) {
16
- const log = logger ?? this.logger;
17
- let deletedCount = 0;
18
- for (const rulesFilterInput of args) {
19
- const ruleFilters = ruleInput.getAccessRuleFiltersFromInput(rulesFilterInput);
20
- await common.executeBatchesSequentially(ruleFilters, async (ruleFilter) => {
21
- const ruleIds = await this.accessRulesStorage.findRuleIds(ruleFilter);
22
- const uniqueRuleIds = [...new Set(ruleIds)];
23
- if (uniqueRuleIds.length > 0) {
24
- await this.accessRulesStorage.deleteRules(uniqueRuleIds);
25
- deletedCount += uniqueRuleIds.length;
26
- log.info(() => ({
27
- msg: "Endpoint deleted rules",
28
- data: {
29
- rulesFilterInput,
30
- uniqueRuleIds
31
- }
32
- }));
33
- }
34
- });
35
- }
36
- return {
37
- status: apiRoute.ApiEndpointResponseStatus.SUCCESS,
38
- data: {
39
- deleted_count: deletedCount
40
- }
41
- };
42
- }
43
- }
2
+ const require_ruleInput_ruleInput = require("../../ruleInput/ruleInput.cjs");
3
+ let zod = require("zod");
4
+ let _prosopo_api_route = require("@prosopo/api-route");
5
+ let _prosopo_common = require("@prosopo/common");
6
+ //#region src/api/delete/deleteRules.ts
7
+ var DeleteRulesEndpoint = class {
8
+ constructor(accessRulesStorage, logger) {
9
+ this.accessRulesStorage = accessRulesStorage;
10
+ this.logger = logger;
11
+ }
12
+ getRequestArgsSchema() {
13
+ return zod.z.array(require_ruleInput_ruleInput.accessRulesFilterInput);
14
+ }
15
+ async processRequest(args, logger) {
16
+ const log = logger ?? this.logger;
17
+ let deletedCount = 0;
18
+ for (const rulesFilterInput of args) {
19
+ const ruleFilters = require_ruleInput_ruleInput.getAccessRuleFiltersFromInput(rulesFilterInput);
20
+ await (0, _prosopo_common.executeBatchesSequentially)(ruleFilters, async (ruleFilter) => {
21
+ const ruleIds = await this.accessRulesStorage.findRuleIds(ruleFilter);
22
+ const uniqueRuleIds = [...new Set(ruleIds)];
23
+ if (uniqueRuleIds.length > 0) {
24
+ await this.accessRulesStorage.deleteRules(uniqueRuleIds);
25
+ deletedCount += uniqueRuleIds.length;
26
+ log.info(() => ({
27
+ msg: "Endpoint deleted rules",
28
+ data: {
29
+ rulesFilterInput,
30
+ uniqueRuleIds
31
+ }
32
+ }));
33
+ }
34
+ });
35
+ }
36
+ return {
37
+ status: _prosopo_api_route.ApiEndpointResponseStatus.SUCCESS,
38
+ data: { deleted_count: deletedCount }
39
+ };
40
+ }
41
+ };
42
+ //#endregion
44
43
  exports.DeleteRulesEndpoint = DeleteRulesEndpoint;
@@ -1 +0,0 @@
1
- "use strict";