@prosopo/user-access-policy 3.4.0 → 3.5.27
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/CHANGELOG.md +309 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/clover.xml +786 -0
- package/coverage/coverage-final.json +15 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +146 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/coverage/src/accessPolicy.ts.html +457 -0
- package/coverage/src/accessPolicyResolver.ts.html +211 -0
- package/coverage/src/accessRules.ts.html +265 -0
- package/coverage/src/api/accessRuleApiRoutes.ts.html +379 -0
- package/coverage/src/api/accessRulesApiClient.ts.html +274 -0
- package/coverage/src/api/deleteAllRulesEndpoint.ts.html +229 -0
- package/coverage/src/api/deleteRulesEndpoint.ts.html +301 -0
- package/coverage/src/api/index.html +176 -0
- package/coverage/src/api/insertRulesEndpoint.ts.html +436 -0
- package/coverage/src/index.html +176 -0
- package/coverage/src/index.ts.html +277 -0
- package/coverage/src/redis/index.html +161 -0
- package/coverage/src/redis/redisRulesIndex.ts.html +769 -0
- package/coverage/src/redis/redisRulesReader.ts.html +652 -0
- package/coverage/src/redis/redisRulesStorage.ts.html +229 -0
- package/coverage/src/redis/redisRulesWriter.ts.html +424 -0
- package/coverage/src/util.ts.html +136 -0
- package/dist/.export.d.ts +6 -0
- package/dist/.export.d.ts.map +1 -0
- package/dist/.export.js +21 -0
- package/dist/.export.js.map +1 -0
- package/dist/accessPolicy.d.ts +169 -0
- package/dist/accessPolicy.d.ts.map +1 -0
- package/dist/accessPolicy.js.map +1 -0
- package/dist/accessPolicyResolver.d.ts +110 -0
- package/dist/accessPolicyResolver.d.ts.map +1 -0
- package/dist/accessPolicyResolver.js.map +1 -0
- package/dist/accessRules.d.ts +16 -0
- package/dist/accessRules.d.ts.map +1 -0
- package/dist/accessRules.js.map +1 -0
- package/dist/api/.export.d.ts +7 -0
- package/dist/api/.export.d.ts.map +1 -0
- package/dist/api/.export.js +11 -0
- package/dist/api/.export.js.map +1 -0
- package/dist/api/accessRuleApiRoutes.d.ts +27 -0
- package/dist/api/accessRuleApiRoutes.d.ts.map +1 -0
- package/dist/api/accessRuleApiRoutes.js.map +1 -0
- package/dist/api/accessRulesApiClient.d.ts +10 -0
- package/dist/api/accessRulesApiClient.d.ts.map +1 -0
- package/dist/api/accessRulesApiClient.js +38 -0
- package/dist/api/accessRulesApiClient.js.map +1 -0
- package/dist/api/delete/.export.d.ts +2 -0
- package/dist/api/delete/.export.d.ts.map +1 -0
- package/dist/api/delete/.export.js +1 -0
- package/dist/api/delete/.export.js.map +1 -0
- package/dist/api/delete/deleteAllRules.d.ts +11 -0
- package/dist/api/delete/deleteAllRules.d.ts.map +1 -0
- package/dist/api/delete/deleteAllRules.js +25 -0
- package/dist/api/delete/deleteAllRules.js.map +1 -0
- package/dist/api/delete/deleteRuleGroups.d.ts +19 -0
- package/dist/api/delete/deleteRuleGroups.d.ts.map +1 -0
- package/dist/api/delete/deleteRuleGroups.js +52 -0
- package/dist/api/delete/deleteRuleGroups.js.map +1 -0
- package/dist/api/delete/deleteRules.d.ts +15 -0
- package/dist/api/delete/deleteRules.d.ts.map +1 -0
- package/dist/api/delete/deleteRules.js +43 -0
- package/dist/api/delete/deleteRules.js.map +1 -0
- package/dist/api/deleteAllRulesEndpoint.d.ts +12 -0
- package/dist/api/deleteAllRulesEndpoint.d.ts.map +1 -0
- package/dist/api/deleteAllRulesEndpoint.js.map +1 -0
- package/dist/api/deleteRulesEndpoint.d.ts +116 -0
- package/dist/api/deleteRulesEndpoint.d.ts.map +1 -0
- package/dist/api/deleteRulesEndpoint.js.map +1 -0
- package/dist/api/insertRulesEndpoint.d.ts +22 -0
- package/dist/api/insertRulesEndpoint.d.ts.map +1 -0
- package/dist/api/insertRulesEndpoint.js.map +1 -0
- package/dist/api/read/.export.d.ts +4 -0
- package/dist/api/read/.export.d.ts.map +1 -0
- package/dist/api/read/.export.js +1 -0
- package/dist/api/read/.export.js.map +1 -0
- package/dist/api/read/fetchRules.d.ts +53 -0
- package/dist/api/read/fetchRules.d.ts.map +1 -0
- package/dist/api/read/fetchRules.js +43 -0
- package/dist/api/read/fetchRules.js.map +1 -0
- package/dist/api/read/findRuleIds.d.ts +28 -0
- package/dist/api/read/findRuleIds.d.ts.map +1 -0
- package/dist/api/read/findRuleIds.js +50 -0
- package/dist/api/read/findRuleIds.js.map +1 -0
- package/dist/api/read/getMissingIds.d.ts +28 -0
- package/dist/api/read/getMissingIds.d.ts.map +1 -0
- package/dist/api/read/getMissingIds.js +41 -0
- package/dist/api/read/getMissingIds.js.map +1 -0
- package/dist/api/ruleApiRoutes.d.ts +43 -0
- package/dist/api/ruleApiRoutes.d.ts.map +1 -0
- package/dist/api/ruleApiRoutes.js +131 -0
- package/dist/api/ruleApiRoutes.js.map +1 -0
- package/dist/api/rulesApiClient.d.ts +20 -0
- package/dist/api/rulesApiClient.d.ts.map +1 -0
- package/dist/api/rulesApiClient.js +93 -0
- package/dist/api/rulesApiClient.js.map +1 -0
- package/dist/api/write/.export.d.ts +2 -0
- package/dist/api/write/.export.d.ts.map +1 -0
- package/dist/api/write/.export.js +1 -0
- package/dist/api/write/.export.js.map +1 -0
- package/dist/api/write/insertRules.d.ts +29 -0
- package/dist/api/write/insertRules.d.ts.map +1 -0
- package/dist/api/write/insertRules.js +102 -0
- package/dist/api/write/insertRules.js.map +1 -0
- package/dist/api/write/rehashRules.d.ts +11 -0
- package/dist/api/write/rehashRules.d.ts.map +1 -0
- package/dist/api/write/rehashRules.js +57 -0
- package/dist/api/write/rehashRules.js.map +1 -0
- package/dist/cjs/.export.cjs +21 -0
- package/dist/cjs/api/.export.cjs +11 -0
- package/dist/cjs/api/delete/.export.cjs +1 -0
- package/dist/cjs/api/delete/deleteAllRules.cjs +25 -0
- package/dist/cjs/api/delete/deleteRuleGroups.cjs +52 -0
- package/dist/cjs/api/delete/deleteRules.cjs +43 -0
- package/dist/cjs/api/read/.export.cjs +1 -0
- package/dist/cjs/api/read/fetchRules.cjs +43 -0
- package/dist/cjs/api/read/findRuleIds.cjs +50 -0
- package/dist/cjs/api/read/getMissingIds.cjs +41 -0
- package/dist/cjs/api/ruleApiRoutes.cjs +131 -0
- package/dist/cjs/api/rulesApiClient.cjs +93 -0
- package/dist/cjs/api/write/.export.cjs +1 -0
- package/dist/cjs/api/write/insertRules.cjs +102 -0
- package/dist/cjs/api/write/rehashRules.cjs +57 -0
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/mongoose/.export.cjs +4 -0
- package/dist/cjs/mongoose/mongooseRuleSchema.cjs +36 -0
- package/dist/cjs/redis/.export.cjs +6 -0
- package/dist/cjs/redis/reader/redisAggregate.cjs +60 -0
- package/dist/cjs/redis/reader/redisRulesQuery.cjs +99 -0
- package/dist/cjs/redis/reader/redisRulesReader.cjs +230 -0
- package/dist/cjs/redis/redisAccessRules.cjs +4 -4
- package/dist/cjs/redis/redisAccessRulesIndex.cjs +55 -14
- package/dist/cjs/redis/redisClient.cjs +67 -0
- package/dist/cjs/redis/redisRuleIndex.cjs +50 -0
- package/dist/cjs/redis/redisRulesStorage.cjs +34 -0
- package/dist/cjs/redis/redisRulesWriter.cjs +100 -0
- package/dist/cjs/rule.cjs +8 -0
- package/dist/cjs/ruleInput/.export.cjs +9 -0
- package/dist/cjs/ruleInput/policyInput.cjs +25 -0
- package/dist/cjs/ruleInput/ruleInput.cjs +50 -0
- package/dist/cjs/ruleInput/userScopeInput.cjs +55 -0
- package/dist/cjs/ruleRecord.cjs +23 -0
- package/dist/cjs/rulesStorage.cjs +8 -0
- package/dist/cjs/transformRule.cjs +77 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -0
- package/dist/mongoose/.export.d.ts +2 -0
- package/dist/mongoose/.export.d.ts.map +1 -0
- package/dist/mongoose/.export.js +4 -0
- package/dist/mongoose/.export.js.map +1 -0
- package/dist/mongoose/mongooseRuleSchema.d.ts +4 -0
- package/dist/mongoose/mongooseRuleSchema.d.ts.map +1 -0
- package/dist/mongoose/mongooseRuleSchema.js +36 -0
- package/dist/mongoose/mongooseRuleSchema.js.map +1 -0
- package/dist/redis/.export.d.ts +3 -0
- package/dist/redis/.export.d.ts.map +1 -0
- package/dist/redis/.export.js +6 -0
- package/dist/redis/.export.js.map +1 -0
- package/dist/redis/reader/redisAggregate.d.ts +4 -0
- package/dist/redis/reader/redisAggregate.d.ts.map +1 -0
- package/dist/redis/reader/redisAggregate.js +60 -0
- package/dist/redis/reader/redisAggregate.js.map +1 -0
- package/dist/redis/reader/redisRulesQuery.d.ts +4 -0
- package/dist/redis/reader/redisRulesQuery.d.ts.map +1 -0
- package/dist/redis/reader/redisRulesQuery.js +99 -0
- package/dist/redis/reader/redisRulesQuery.js.map +1 -0
- package/dist/redis/reader/redisRulesReader.d.ts +26 -0
- package/dist/redis/reader/redisRulesReader.d.ts.map +1 -0
- package/dist/redis/reader/redisRulesReader.js +213 -0
- package/dist/redis/reader/redisRulesReader.js.map +1 -0
- package/dist/redis/redisAccessRules.d.ts +7 -0
- package/dist/redis/redisAccessRules.d.ts.map +1 -0
- package/dist/redis/redisAccessRules.js +112 -128
- package/dist/redis/redisAccessRules.js.map +1 -0
- package/dist/redis/redisAccessRulesIndex.d.ts +13 -0
- package/dist/redis/redisAccessRulesIndex.d.ts.map +1 -0
- package/dist/redis/redisAccessRulesIndex.js +122 -112
- package/dist/redis/redisAccessRulesIndex.js.map +1 -0
- package/dist/redis/redisClient.d.ts +11 -0
- package/dist/redis/redisClient.d.ts.map +1 -0
- package/dist/redis/redisClient.js +67 -0
- package/dist/redis/redisClient.js.map +1 -0
- package/dist/redis/redisIndex.d.ts +9 -0
- package/dist/redis/redisIndex.d.ts.map +1 -0
- package/dist/redis/redisIndex.js +16 -15
- package/dist/redis/redisIndex.js.map +1 -0
- package/dist/redis/redisRuleIndex.d.ts +13 -0
- package/dist/redis/redisRuleIndex.d.ts.map +1 -0
- package/dist/redis/redisRuleIndex.js +50 -0
- package/dist/redis/redisRuleIndex.js.map +1 -0
- package/dist/redis/redisRulesIndex.d.ts +9 -0
- package/dist/redis/redisRulesIndex.d.ts.map +1 -0
- package/dist/redis/redisRulesIndex.js +138 -0
- package/dist/redis/redisRulesIndex.js.map +1 -0
- package/dist/redis/redisRulesReader.d.ts +6 -0
- package/dist/redis/redisRulesReader.d.ts.map +1 -0
- package/dist/redis/redisRulesReader.js +125 -0
- package/dist/redis/redisRulesReader.js.map +1 -0
- package/dist/redis/redisRulesStorage.d.ts +5 -0
- package/dist/redis/redisRulesStorage.d.ts.map +1 -0
- package/dist/redis/redisRulesStorage.js +34 -0
- package/dist/redis/redisRulesStorage.js.map +1 -0
- package/dist/redis/redisRulesWriter.d.ts +22 -0
- package/dist/redis/redisRulesWriter.d.ts.map +1 -0
- package/dist/redis/redisRulesWriter.js +100 -0
- package/dist/redis/redisRulesWriter.js.map +1 -0
- package/dist/rule.d.ts +34 -0
- package/dist/rule.d.ts.map +1 -0
- package/dist/rule.js +8 -0
- package/dist/rule.js.map +1 -0
- package/dist/ruleInput/.export.d.ts +4 -0
- package/dist/ruleInput/.export.d.ts.map +1 -0
- package/dist/ruleInput/.export.js +9 -0
- package/dist/ruleInput/.export.js.map +1 -0
- package/dist/ruleInput/policyInput.d.ts +38 -0
- package/dist/ruleInput/policyInput.d.ts.map +1 -0
- package/dist/ruleInput/policyInput.js +25 -0
- package/dist/ruleInput/policyInput.js.map +1 -0
- package/dist/ruleInput/ruleInput.d.ts +145 -0
- package/dist/ruleInput/ruleInput.d.ts.map +1 -0
- package/dist/ruleInput/ruleInput.js +50 -0
- package/dist/ruleInput/ruleInput.js.map +1 -0
- package/dist/ruleInput/userScopeInput.d.ts +93 -0
- package/dist/ruleInput/userScopeInput.d.ts.map +1 -0
- package/dist/ruleInput/userScopeInput.js +55 -0
- package/dist/ruleInput/userScopeInput.js.map +1 -0
- package/dist/ruleRecord.d.ts +18 -0
- package/dist/ruleRecord.d.ts.map +1 -0
- package/dist/ruleRecord.js +23 -0
- package/dist/ruleRecord.js.map +1 -0
- package/dist/rulesStorage.d.ts +30 -0
- package/dist/rulesStorage.d.ts.map +1 -0
- package/dist/rulesStorage.js +8 -0
- package/dist/rulesStorage.js.map +1 -0
- package/dist/tests/accessPolicy.test.d.ts +2 -0
- package/dist/tests/accessPolicy.test.d.ts.map +1 -0
- package/dist/tests/accessPolicy.test.js +27 -0
- package/dist/tests/accessPolicy.test.js.map +1 -0
- package/dist/tests/redis/reader/redisRulesQuery.unit.test.d.ts +2 -0
- package/dist/tests/redis/reader/redisRulesQuery.unit.test.d.ts.map +1 -0
- package/dist/tests/redis/reader/redisRulesQuery.unit.test.js +101 -0
- package/dist/tests/redis/reader/redisRulesQuery.unit.test.js.map +1 -0
- package/dist/tests/redis/redisAccessRules.integration.test.d.ts +2 -0
- package/dist/tests/redis/redisAccessRules.integration.test.d.ts.map +1 -0
- package/dist/tests/redis/redisAccessRules.integration.test.js +586 -0
- package/dist/tests/redis/redisAccessRules.integration.test.js.map +1 -0
- package/dist/tests/redis/redisAccessRules.unit.test.d.ts +2 -0
- package/dist/tests/redis/redisAccessRules.unit.test.d.ts.map +1 -0
- package/dist/tests/redis/redisAccessRules.unit.test.js +198 -0
- package/dist/tests/redis/redisAccessRules.unit.test.js.map +1 -0
- package/dist/tests/redis/redisIndex.integration.test.d.ts +2 -0
- package/dist/tests/redis/redisIndex.integration.test.d.ts.map +1 -0
- package/dist/tests/redis/redisIndex.integration.test.js +80 -0
- package/dist/tests/redis/redisIndex.integration.test.js.map +1 -0
- package/dist/tests/redis/redisRulesIndex.unit.test.d.ts +2 -0
- package/dist/tests/redis/redisRulesIndex.unit.test.d.ts.map +1 -0
- package/dist/tests/redis/redisRulesIndex.unit.test.js +101 -0
- package/dist/tests/redis/redisRulesIndex.unit.test.js.map +1 -0
- package/dist/tests/redis/redisRulesStorage.integration.test.d.ts +2 -0
- package/dist/tests/redis/redisRulesStorage.integration.test.d.ts.map +1 -0
- package/dist/tests/redis/redisRulesStorage.integration.test.js +611 -0
- package/dist/tests/redis/redisRulesStorage.integration.test.js.map +1 -0
- package/dist/tests/redis/testRedisClient.d.ts +3 -0
- package/dist/tests/redis/testRedisClient.d.ts.map +1 -0
- package/dist/tests/redis/testRedisClient.js +8 -0
- package/dist/tests/redis/testRedisClient.js.map +1 -0
- package/dist/tests/testLogger.d.ts +4 -0
- package/dist/tests/testLogger.d.ts.map +1 -0
- package/dist/tests/testLogger.js +22 -0
- package/dist/tests/testLogger.js.map +1 -0
- package/dist/tests/transformRule.unit.test.d.ts +2 -0
- package/dist/tests/transformRule.unit.test.d.ts.map +1 -0
- package/dist/tests/transformRule.unit.test.js +188 -0
- package/dist/tests/transformRule.unit.test.js.map +1 -0
- package/dist/transformRule.d.ts +7 -0
- package/dist/transformRule.d.ts.map +1 -0
- package/dist/transformRule.js +77 -0
- package/dist/transformRule.js.map +1 -0
- package/dist/util.d.ts +2 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js.map +1 -0
- package/entries.ts +20 -0
- package/package.json +42 -21
- package/vite.cjs.config.ts +4 -1
- package/vite.esm.config.ts +6 -1
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { FetchRulesEndpoint } from "./read/fetchRules.js";
|
|
2
|
+
import { FindRuleIdsEndpoint } from "./read/findRuleIds.js";
|
|
3
|
+
import { GetMissingIdsEndpoint } from "./read/getMissingIds.js";
|
|
4
|
+
import { RehashRulesEndpoint } from "./write/rehashRules.js";
|
|
5
|
+
import { DeleteAllRulesEndpoint } from "./delete/deleteAllRules.js";
|
|
6
|
+
import { DeleteRuleGroupsEndpoint } from "./delete/deleteRuleGroups.js";
|
|
7
|
+
import { DeleteRulesEndpoint } from "./delete/deleteRules.js";
|
|
8
|
+
import { InsertRulesEndpoint } from "./write/insertRules.js";
|
|
9
|
+
var accessRuleApiPaths = /* @__PURE__ */ ((accessRuleApiPaths2) => {
|
|
10
|
+
accessRuleApiPaths2["DELETE_ALL"] = "/v1/prosopo/user-access-policy/rules/delete-all";
|
|
11
|
+
accessRuleApiPaths2["DELETE_GROUPS"] = "/v1/prosopo/user-access-policy/rules/delete-groups";
|
|
12
|
+
accessRuleApiPaths2["DELETE_MANY"] = "/v1/prosopo/user-access-policy/rules/delete-many";
|
|
13
|
+
accessRuleApiPaths2["FETCH_MANY"] = "/v1/prosopo/user-access-policy/rules/fetch-many";
|
|
14
|
+
accessRuleApiPaths2["FIND_IDS"] = "/v1/prosopo/user-access-policy/rules/find-ids";
|
|
15
|
+
accessRuleApiPaths2["GET_MISSING_IDS"] = "/v1/prosopo/user-access-policy/rules/get-missing-ids";
|
|
16
|
+
accessRuleApiPaths2["INSERT_MANY"] = "/v1/prosopo/user-access-policy/rules/insert-many";
|
|
17
|
+
accessRuleApiPaths2["REHASH_ALL"] = "/v1/prosopo/user-access-policy/rules/rehash-all";
|
|
18
|
+
return accessRuleApiPaths2;
|
|
19
|
+
})(accessRuleApiPaths || {});
|
|
20
|
+
class AccessRuleApiRoutes {
|
|
21
|
+
constructor(accessRulesStorage, logger) {
|
|
22
|
+
this.accessRulesStorage = accessRulesStorage;
|
|
23
|
+
this.logger = logger;
|
|
24
|
+
}
|
|
25
|
+
getRoutes() {
|
|
26
|
+
return {
|
|
27
|
+
...this.makeDeleteEndpoints(),
|
|
28
|
+
...this.makeReadEndpoints(),
|
|
29
|
+
...this.makeWriteEndpoints()
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
makeDeleteEndpoints() {
|
|
33
|
+
return {
|
|
34
|
+
[
|
|
35
|
+
"/v1/prosopo/user-access-policy/rules/delete-all"
|
|
36
|
+
/* DELETE_ALL */
|
|
37
|
+
]: new DeleteAllRulesEndpoint(
|
|
38
|
+
this.accessRulesStorage,
|
|
39
|
+
this.logger
|
|
40
|
+
),
|
|
41
|
+
[
|
|
42
|
+
"/v1/prosopo/user-access-policy/rules/delete-groups"
|
|
43
|
+
/* DELETE_GROUPS */
|
|
44
|
+
]: new DeleteRuleGroupsEndpoint(
|
|
45
|
+
this.accessRulesStorage,
|
|
46
|
+
this.logger
|
|
47
|
+
),
|
|
48
|
+
[
|
|
49
|
+
"/v1/prosopo/user-access-policy/rules/delete-many"
|
|
50
|
+
/* DELETE_MANY */
|
|
51
|
+
]: new DeleteRulesEndpoint(
|
|
52
|
+
this.accessRulesStorage,
|
|
53
|
+
this.logger
|
|
54
|
+
)
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
makeReadEndpoints() {
|
|
58
|
+
return {
|
|
59
|
+
[
|
|
60
|
+
"/v1/prosopo/user-access-policy/rules/fetch-many"
|
|
61
|
+
/* FETCH_MANY */
|
|
62
|
+
]: new FetchRulesEndpoint(
|
|
63
|
+
this.accessRulesStorage,
|
|
64
|
+
this.logger
|
|
65
|
+
),
|
|
66
|
+
[
|
|
67
|
+
"/v1/prosopo/user-access-policy/rules/find-ids"
|
|
68
|
+
/* FIND_IDS */
|
|
69
|
+
]: new FindRuleIdsEndpoint(
|
|
70
|
+
this.accessRulesStorage,
|
|
71
|
+
this.logger
|
|
72
|
+
),
|
|
73
|
+
[
|
|
74
|
+
"/v1/prosopo/user-access-policy/rules/get-missing-ids"
|
|
75
|
+
/* GET_MISSING_IDS */
|
|
76
|
+
]: new GetMissingIdsEndpoint(
|
|
77
|
+
this.accessRulesStorage,
|
|
78
|
+
this.logger
|
|
79
|
+
)
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
makeWriteEndpoints() {
|
|
83
|
+
return {
|
|
84
|
+
[
|
|
85
|
+
"/v1/prosopo/user-access-policy/rules/insert-many"
|
|
86
|
+
/* INSERT_MANY */
|
|
87
|
+
]: new InsertRulesEndpoint(
|
|
88
|
+
this.accessRulesStorage,
|
|
89
|
+
this.logger
|
|
90
|
+
),
|
|
91
|
+
[
|
|
92
|
+
"/v1/prosopo/user-access-policy/rules/rehash-all"
|
|
93
|
+
/* REHASH_ALL */
|
|
94
|
+
]: new RehashRulesEndpoint(
|
|
95
|
+
this.accessRulesStorage,
|
|
96
|
+
this.logger
|
|
97
|
+
)
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const getExpressApiRuleRateLimits = () => {
|
|
102
|
+
const defaults = {
|
|
103
|
+
limit: 5,
|
|
104
|
+
windowSeconds: 10
|
|
105
|
+
};
|
|
106
|
+
const defaultWindowMs = defaults.windowSeconds * 1e3;
|
|
107
|
+
const rateLimitEntries = Object.entries(accessRuleApiPaths).map(
|
|
108
|
+
([endpointName, endpointPath]) => [
|
|
109
|
+
endpointPath,
|
|
110
|
+
{
|
|
111
|
+
windowMs: getIntEnvironmentVariable(
|
|
112
|
+
`PROSOPO_USER_ACCESS_POLICY_RULE_${endpointName}_WINDOW`
|
|
113
|
+
) || defaultWindowMs,
|
|
114
|
+
limit: getIntEnvironmentVariable(
|
|
115
|
+
`PROSOPO_USER_ACCESS_POLICY_RULE_${endpointName}_LIMIT`
|
|
116
|
+
) || defaults.limit
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
);
|
|
120
|
+
return Object.fromEntries(rateLimitEntries);
|
|
121
|
+
};
|
|
122
|
+
const getIntEnvironmentVariable = (variableName) => {
|
|
123
|
+
const variableValue = process.env[variableName];
|
|
124
|
+
const numericValue = variableValue ? Number.parseInt(variableValue) : Number.NaN;
|
|
125
|
+
return Number.isInteger(numericValue) ? numericValue : void 0;
|
|
126
|
+
};
|
|
127
|
+
export {
|
|
128
|
+
AccessRuleApiRoutes,
|
|
129
|
+
accessRuleApiPaths,
|
|
130
|
+
getExpressApiRuleRateLimits
|
|
131
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruleApiRoutes.js","sourceRoot":"","sources":["../../src/api/ruleApiRoutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ApiClient } from "@prosopo/api";
|
|
2
|
+
import type { ApiEndpointResponse } from "@prosopo/api-route";
|
|
3
|
+
import { type FetchRulesEndpointResponse, type FetchRulesOptions } from "#policy/api/read/fetchRules.js";
|
|
4
|
+
import { type RuleIdsEndpointResponse } from "#policy/api/read/findRuleIds.js";
|
|
5
|
+
import { type MissingIds, type MissingIdsEndpointResponse } from "#policy/api/read/getMissingIds.js";
|
|
6
|
+
import type { AccessRulesFilterInput } from "#policy/ruleInput/ruleInput.js";
|
|
7
|
+
import type { DeleteSiteGroups } from "./delete/deleteRuleGroups.js";
|
|
8
|
+
import type { InsertRulesGroup } from "./write/insertRules.js";
|
|
9
|
+
export declare class AccessRulesApiClient extends ApiClient {
|
|
10
|
+
deleteMany(filters: AccessRulesFilterInput[], timestamp: string, signature: string): Promise<ApiEndpointResponse>;
|
|
11
|
+
deleteGroups(siteGroups: DeleteSiteGroups, timestamp: string, signature: string): Promise<ApiEndpointResponse>;
|
|
12
|
+
deleteAll(timestamp: string, signature: string): Promise<ApiEndpointResponse>;
|
|
13
|
+
getMissingIds(idsToCheck: MissingIds, timestamp: string, signature: string): Promise<MissingIdsEndpointResponse>;
|
|
14
|
+
fetchMany(fetchOptions: FetchRulesOptions, timestamp: string, signature: string): Promise<FetchRulesEndpointResponse>;
|
|
15
|
+
findIds(filters: AccessRulesFilterInput[], timestamp: string, signature: string): Promise<RuleIdsEndpointResponse>;
|
|
16
|
+
rehashAll(timestamp: string, signature: string): Promise<ApiEndpointResponse>;
|
|
17
|
+
insertMany(ruleGroups: InsertRulesGroup[], timestamp: string, signature: string): Promise<ApiEndpointResponse>;
|
|
18
|
+
protected getAuthHeaders(timestamp: string, signature: string): RequestInit;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=rulesApiClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rulesApiClient.d.ts","sourceRoot":"","sources":["../../src/api/rulesApiClient.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACN,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EAEtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACN,KAAK,uBAAuB,EAE5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACN,KAAK,UAAU,EACf,KAAK,0BAA0B,EAE/B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,qBAAa,oBAAqB,SAAQ,SAAS;IAG3C,UAAU,CAChB,OAAO,EAAE,sBAAsB,EAAE,EACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC;IAQxB,YAAY,CAClB,UAAU,EAAE,gBAAgB,EAC5B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC;IAQxB,SAAS,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC;IAUlB,aAAa,CACzB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,0BAA0B,CAAC;IAezB,SAAS,CACrB,YAAY,EAAE,iBAAiB,EAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,0BAA0B,CAAC;IAezB,OAAO,CACnB,OAAO,EAAE,sBAAsB,EAAE,EACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,uBAAuB,CAAC;IAiBtB,SAAS,CACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC;IAQxB,UAAU,CAChB,UAAU,EAAE,gBAAgB,EAAE,EAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC;IAQ/B,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW;CAS3E"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { ApiClient } from "@prosopo/api";
|
|
2
|
+
import { fetchRulesResponse } from "./read/fetchRules.js";
|
|
3
|
+
import { ruleIdsResponse } from "./read/findRuleIds.js";
|
|
4
|
+
import { missingIdsResponse } from "./read/getMissingIds.js";
|
|
5
|
+
import { accessRuleApiPaths } from "./ruleApiRoutes.js";
|
|
6
|
+
class AccessRulesApiClient extends ApiClient {
|
|
7
|
+
//// delete
|
|
8
|
+
deleteMany(filters, timestamp, signature) {
|
|
9
|
+
return this.post(
|
|
10
|
+
accessRuleApiPaths.DELETE_MANY,
|
|
11
|
+
filters,
|
|
12
|
+
this.getAuthHeaders(timestamp, signature)
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
deleteGroups(siteGroups, timestamp, signature) {
|
|
16
|
+
return this.post(
|
|
17
|
+
accessRuleApiPaths.DELETE_GROUPS,
|
|
18
|
+
siteGroups,
|
|
19
|
+
this.getAuthHeaders(timestamp, signature)
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
deleteAll(timestamp, signature) {
|
|
23
|
+
return this.post(
|
|
24
|
+
accessRuleApiPaths.DELETE_ALL,
|
|
25
|
+
{},
|
|
26
|
+
this.getAuthHeaders(timestamp, signature)
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
//// read
|
|
30
|
+
async getMissingIds(idsToCheck, timestamp, signature) {
|
|
31
|
+
const endpointResponse = await this.post(
|
|
32
|
+
accessRuleApiPaths.GET_MISSING_IDS,
|
|
33
|
+
idsToCheck,
|
|
34
|
+
this.getAuthHeaders(timestamp, signature)
|
|
35
|
+
);
|
|
36
|
+
const parsedData = missingIdsResponse.safeParse(endpointResponse.data);
|
|
37
|
+
return {
|
|
38
|
+
...endpointResponse,
|
|
39
|
+
data: parsedData.success ? parsedData.data : void 0
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
async fetchMany(fetchOptions, timestamp, signature) {
|
|
43
|
+
const endpointResponse = await this.post(
|
|
44
|
+
accessRuleApiPaths.FETCH_MANY,
|
|
45
|
+
fetchOptions,
|
|
46
|
+
this.getAuthHeaders(timestamp, signature)
|
|
47
|
+
);
|
|
48
|
+
const parsedData = fetchRulesResponse.safeParse(endpointResponse.data);
|
|
49
|
+
return {
|
|
50
|
+
...endpointResponse,
|
|
51
|
+
data: parsedData.success ? parsedData.data : void 0
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
async findIds(filters, timestamp, signature) {
|
|
55
|
+
const endpointResponse = await this.post(
|
|
56
|
+
accessRuleApiPaths.FIND_IDS,
|
|
57
|
+
filters,
|
|
58
|
+
this.getAuthHeaders(timestamp, signature)
|
|
59
|
+
);
|
|
60
|
+
const parsedData = ruleIdsResponse.safeParse(endpointResponse.data);
|
|
61
|
+
return {
|
|
62
|
+
...endpointResponse,
|
|
63
|
+
data: parsedData.success ? parsedData.data : void 0
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//// write
|
|
67
|
+
async rehashAll(timestamp, signature) {
|
|
68
|
+
return this.post(
|
|
69
|
+
accessRuleApiPaths.REHASH_ALL,
|
|
70
|
+
{},
|
|
71
|
+
this.getAuthHeaders(timestamp, signature)
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
insertMany(ruleGroups, timestamp, signature) {
|
|
75
|
+
return this.post(
|
|
76
|
+
accessRuleApiPaths.INSERT_MANY,
|
|
77
|
+
ruleGroups,
|
|
78
|
+
this.getAuthHeaders(timestamp, signature)
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
getAuthHeaders(timestamp, signature) {
|
|
82
|
+
return {
|
|
83
|
+
headers: {
|
|
84
|
+
"Prosopo-Site-Key": this.account,
|
|
85
|
+
timestamp,
|
|
86
|
+
signature
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export {
|
|
92
|
+
AccessRulesApiClient
|
|
93
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rulesApiClient.js","sourceRoot":"","sources":["../../src/api/rulesApiClient.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAGN,kBAAkB,GAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEN,eAAe,GACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAGN,kBAAkB,GAClB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAG3C,UAAU,CAChB,OAAiC,EACjC,SAAiB,EACjB,SAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI,CACf,kBAAkB,CAAC,WAAW,EAC9B,OAAO,EACP,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CACzC,CAAC;IACH,CAAC;IAEM,YAAY,CAClB,UAA4B,EAC5B,SAAiB,EACjB,SAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI,CACf,kBAAkB,CAAC,aAAa,EAChC,UAAU,EACV,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CACzC,CAAC;IACH,CAAC;IAEM,SAAS,CACf,SAAiB,EACjB,SAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI,CACf,kBAAkB,CAAC,UAAU,EAC7B,EAAE,EACF,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CACzC,CAAC;IACH,CAAC;IAIM,KAAK,CAAC,aAAa,CACzB,UAAsB,EACtB,SAAiB,EACjB,SAAiB;QAEjB,MAAM,gBAAgB,GAAwB,MAAM,IAAI,CAAC,IAAI,CAC5D,kBAAkB,CAAC,eAAe,EAClC,UAAU,EACV,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CACzC,CAAC;QAEF,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEvE,OAAO;YACN,GAAG,gBAAgB;YACnB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACtD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,SAAS,CACrB,YAA+B,EAC/B,SAAiB,EACjB,SAAiB;QAEjB,MAAM,gBAAgB,GAAwB,MAAM,IAAI,CAAC,IAAI,CAC5D,kBAAkB,CAAC,UAAU,EAC7B,YAAY,EACZ,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CACzC,CAAC;QAEF,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEvE,OAAO;YACN,GAAG,gBAAgB;YACnB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACtD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CACnB,OAAiC,EACjC,SAAiB,EACjB,SAAiB;QAEjB,MAAM,gBAAgB,GAAwB,MAAM,IAAI,CAAC,IAAI,CAC5D,kBAAkB,CAAC,QAAQ,EAC3B,OAAO,EACP,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CACzC,CAAC;QAEF,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEpE,OAAO;YACN,GAAG,gBAAgB;YACnB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACtD,CAAC;IACH,CAAC;IAIM,KAAK,CAAC,SAAS,CACrB,SAAiB,EACjB,SAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI,CACf,kBAAkB,CAAC,UAAU,EAC7B,EAAE,EACF,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CACzC,CAAC;IACH,CAAC;IAEM,UAAU,CAChB,UAA8B,EAC9B,SAAiB,EACjB,SAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI,CACf,kBAAkB,CAAC,WAAW,EAC9B,UAAU,EACV,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CACzC,CAAC;IACH,CAAC;IAES,cAAc,CAAC,SAAiB,EAAE,SAAiB;QAC5D,OAAO;YACN,OAAO,EAAE;gBACR,kBAAkB,EAAE,IAAI,CAAC,OAAO;gBAChC,SAAS;gBACT,SAAS;aACT;SACD,CAAC;IACH,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":".export.d.ts","sourceRoot":"","sources":["../../../src/api/write/.export.ts"],"names":[],"mappings":"AAcA,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":".export.js","sourceRoot":"","sources":["../../../src/api/write/.export.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type ApiEndpoint, type ApiEndpointResponse } from "@prosopo/api-route";
|
|
2
|
+
import { type Logger } from "@prosopo/common";
|
|
3
|
+
import { type ZodType } from "zod";
|
|
4
|
+
import type { AccessPolicy, PolicyScope, UserScope } from "#policy/rule.js";
|
|
5
|
+
import { type UserScopeInput } from "#policy/ruleInput/userScopeInput.js";
|
|
6
|
+
import type { AccessRulesWriter } from "#policy/rulesStorage.js";
|
|
7
|
+
export type InsertRulesGroup = {
|
|
8
|
+
accessPolicy: AccessPolicy;
|
|
9
|
+
userScopes: UserScopeInput[];
|
|
10
|
+
policyScopes?: PolicyScope[];
|
|
11
|
+
groupId?: string;
|
|
12
|
+
expiresUnixTimestamp?: number;
|
|
13
|
+
};
|
|
14
|
+
type ParsedInsertRulesGroup = InsertRulesGroup & {
|
|
15
|
+
userScopes: UserScope[];
|
|
16
|
+
};
|
|
17
|
+
type ParsedInsertRuleGroups = ParsedInsertRulesGroup[];
|
|
18
|
+
type InsertRulesSchema = ZodType<InsertRulesGroup[]>;
|
|
19
|
+
export declare class InsertRulesEndpoint implements ApiEndpoint<InsertRulesSchema> {
|
|
20
|
+
private readonly accessRulesWriter;
|
|
21
|
+
private readonly logger;
|
|
22
|
+
constructor(accessRulesWriter: AccessRulesWriter, logger: Logger);
|
|
23
|
+
getRequestArgsSchema(): InsertRulesSchema;
|
|
24
|
+
processRequest(args: ParsedInsertRuleGroups): Promise<ApiEndpointResponse>;
|
|
25
|
+
protected createRuleGroups(groups: ParsedInsertRuleGroups): Promise<string[]>;
|
|
26
|
+
protected createRulesGroup(group: ParsedInsertRulesGroup): Promise<string[]>;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=insertRules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertRules.d.ts","sourceRoot":"","sources":["../../../src/api/write/insertRules.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAA0B,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,KAAK,OAAO,EAAK,MAAM,KAAK,CAAC;AACtC,OAAO,KAAK,EACX,YAAY,EAEZ,WAAW,EACX,SAAS,EACT,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EACN,KAAK,cAAc,EAEnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAEX,iBAAiB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,cAAc,EAAE,CAAC;IAG7B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,KAAK,sBAAsB,GAAG,gBAAgB,GAAG;IAChD,UAAU,EAAE,SAAS,EAAE,CAAC;CACxB,CAAC;AAEF,KAAK,sBAAsB,GAAG,sBAAsB,EAAE,CAAC;AAEvD,KAAK,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAErD,qBAAa,mBAAoB,YAAW,WAAW,CAAC,iBAAiB,CAAC;IAExE,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM;IAGzB,oBAAoB,IAAI,iBAAiB;IAY1C,cAAc,CACnB,IAAI,EAAE,sBAAsB,GAC1B,OAAO,CAAC,mBAAmB,CAAC;cAsDf,gBAAgB,CAC/B,MAAM,EAAE,sBAAsB,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;cAQJ,gBAAgB,CAC/B,KAAK,EAAE,sBAAsB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC;CA8BpB"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ApiEndpointResponseStatus } from "@prosopo/api-route";
|
|
2
|
+
import { LogLevel } from "@prosopo/common";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { policyScopeInput, accessPolicyInput } 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) {
|
|
23
|
+
const timeoutPromise = new Promise((resolve) => {
|
|
24
|
+
setTimeout(() => {
|
|
25
|
+
resolve({
|
|
26
|
+
status: ApiEndpointResponseStatus.PROCESSING
|
|
27
|
+
});
|
|
28
|
+
}, 5e3);
|
|
29
|
+
});
|
|
30
|
+
const userScopesCount = args.reduce(
|
|
31
|
+
(userScopesCount2, group) => userScopesCount2 + group.userScopes.length,
|
|
32
|
+
0
|
|
33
|
+
);
|
|
34
|
+
const createRulesPromise = this.createRuleGroups(args).then((insertedIds) => {
|
|
35
|
+
this.logger.info(() => ({
|
|
36
|
+
msg: "Endpoint inserted access rules",
|
|
37
|
+
data: {
|
|
38
|
+
userScopesCount,
|
|
39
|
+
insertedCount: insertedIds.length,
|
|
40
|
+
uniqueIdsCount: new Set(insertedIds).size
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
43
|
+
this.logger.debug(() => ({
|
|
44
|
+
msg: "Inserted access rules details",
|
|
45
|
+
data: {
|
|
46
|
+
insertedIds,
|
|
47
|
+
input: args
|
|
48
|
+
}
|
|
49
|
+
}));
|
|
50
|
+
return {
|
|
51
|
+
status: ApiEndpointResponseStatus.SUCCESS
|
|
52
|
+
};
|
|
53
|
+
}).catch((error) => {
|
|
54
|
+
if (LogLevel.enum.debug === this.logger.getLogLevel()) {
|
|
55
|
+
this.logger.error(() => ({
|
|
56
|
+
err: error,
|
|
57
|
+
data: { args },
|
|
58
|
+
msg: "Failed to insert access rules"
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
status: ApiEndpointResponseStatus.FAIL
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
return Promise.race([timeoutPromise, createRulesPromise]);
|
|
66
|
+
}
|
|
67
|
+
async createRuleGroups(groups) {
|
|
68
|
+
const ruleIdPromises = groups.map((group) => this.createRulesGroup(group));
|
|
69
|
+
const ruleIdSets = await Promise.all(ruleIdPromises);
|
|
70
|
+
return ruleIdSets.flat();
|
|
71
|
+
}
|
|
72
|
+
async createRulesGroup(group) {
|
|
73
|
+
const ruleEntries = [];
|
|
74
|
+
const policyScopes = group.policyScopes || [];
|
|
75
|
+
for (const userScope of group.userScopes) {
|
|
76
|
+
const ruleBase = {
|
|
77
|
+
...group.accessPolicy,
|
|
78
|
+
...userScope,
|
|
79
|
+
...group.groupId ? { groupId: group.groupId } : {}
|
|
80
|
+
};
|
|
81
|
+
if (policyScopes.length > 0) {
|
|
82
|
+
for (const policyScope of policyScopes) {
|
|
83
|
+
ruleEntries.push({
|
|
84
|
+
rule: {
|
|
85
|
+
...ruleBase,
|
|
86
|
+
...policyScope
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
} else {
|
|
91
|
+
ruleEntries.push({
|
|
92
|
+
rule: ruleBase,
|
|
93
|
+
expiresUnixTimestamp: group.expiresUnixTimestamp
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return this.accessRulesWriter.insertRules(ruleEntries);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export {
|
|
101
|
+
InsertRulesEndpoint
|
|
102
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertRules.js","sourceRoot":"","sources":["../../../src/api/write/insertRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ApiEndpoint, type ApiEndpointResponse } from "@prosopo/api-route";
|
|
2
|
+
import type { Logger } from "@prosopo/common";
|
|
3
|
+
import type { AccessRulesStorage } from "#policy/rulesStorage.js";
|
|
4
|
+
export declare class RehashRulesEndpoint implements ApiEndpoint<undefined> {
|
|
5
|
+
private readonly accessRulesStorage;
|
|
6
|
+
private readonly logger;
|
|
7
|
+
constructor(accessRulesStorage: AccessRulesStorage, logger: Logger);
|
|
8
|
+
getRequestArgsSchema(): undefined;
|
|
9
|
+
processRequest(): Promise<ApiEndpointResponse>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=rehashRules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rehashRules.d.ts","sourceRoot":"","sources":["../../../src/api/write/rehashRules.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,qBAAa,mBAAoB,YAAW,WAAW,CAAC,SAAS,CAAC;IAEhE,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,kBAAkB,EAAE,kBAAkB,EACtC,MAAM,EAAE,MAAM;IAGzB,oBAAoB,IAAI,SAAS;IAElC,cAAc,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAqDpD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
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() {
|
|
10
|
+
await this.accessRulesStorage.fetchAllRuleIds(async (ruleIds) => {
|
|
11
|
+
this.logger.info(() => ({
|
|
12
|
+
msg: "Fetched rule ids batch",
|
|
13
|
+
data: {
|
|
14
|
+
count: ruleIds.length,
|
|
15
|
+
ruleIds
|
|
16
|
+
}
|
|
17
|
+
}));
|
|
18
|
+
const ruleEntries = await this.accessRulesStorage.fetchRules(ruleIds);
|
|
19
|
+
this.logger.info(() => ({
|
|
20
|
+
msg: "Fetched rules",
|
|
21
|
+
data: {
|
|
22
|
+
count: ruleEntries.length
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
25
|
+
if (ruleEntries.length !== ruleIds.length) {
|
|
26
|
+
this.logger.warn(() => ({
|
|
27
|
+
msg: "Fetched rules count is not equal to the requested count",
|
|
28
|
+
data: {
|
|
29
|
+
fetchedCount: ruleEntries.length,
|
|
30
|
+
requestedCount: ruleIds.length
|
|
31
|
+
}
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
await this.accessRulesStorage.deleteRules(ruleIds);
|
|
35
|
+
this.logger.info(() => ({
|
|
36
|
+
msg: "Deleted rules",
|
|
37
|
+
data: {
|
|
38
|
+
count: ruleIds.length
|
|
39
|
+
}
|
|
40
|
+
}));
|
|
41
|
+
await this.accessRulesStorage.insertRules(ruleEntries);
|
|
42
|
+
this.logger.info(() => ({
|
|
43
|
+
msg: "Inserted rules",
|
|
44
|
+
data: {
|
|
45
|
+
count: ruleEntries.length
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
48
|
+
});
|
|
49
|
+
return {
|
|
50
|
+
status: ApiEndpointResponseStatus.SUCCESS,
|
|
51
|
+
data: {}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
RehashRulesEndpoint
|
|
57
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rehashRules.js","sourceRoot":"","sources":["../../../src/api/write/rehashRules.ts"],"names":[],"mappings":"AAcA,OAAO,EAGN,yBAAyB,GACzB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,OAAO,mBAAmB;IAC/B,YACkB,kBAAsC,EACtC,MAAc;QADd,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,WAAM,GAAN,MAAM,CAAQ;IAC7B,CAAC;IAEG,oBAAoB,KAAe,CAAC;IAE3C,KAAK,CAAC,cAAc;QACnB,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,KAAK,EAAE,OAAiB,EAAE,EAAE;YACzE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvB,GAAG,EAAE,wBAAwB;gBAC7B,IAAI,EAAE;oBACL,KAAK,EAAE,OAAO,CAAC,MAAM;oBACrB,OAAO;iBACP;aACD,CAAC,CAAC,CAAC;YAEJ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAEtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvB,GAAG,EAAE,eAAe;gBACpB,IAAI,EAAE;oBACL,KAAK,EAAE,WAAW,CAAC,MAAM;iBACzB;aACD,CAAC,CAAC,CAAC;YAEJ,IAAI,WAAW,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACvB,GAAG,EAAE,yDAAyD;oBAC9D,IAAI,EAAE;wBACL,YAAY,EAAE,WAAW,CAAC,MAAM;wBAChC,cAAc,EAAE,OAAO,CAAC,MAAM;qBAC9B;iBACD,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvB,GAAG,EAAE,eAAe;gBACpB,IAAI,EAAE;oBACL,KAAK,EAAE,OAAO,CAAC,MAAM;iBACrB;aACD,CAAC,CAAC,CAAC;YAEJ,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAEvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvB,GAAG,EAAE,gBAAgB;gBACrB,IAAI,EAAE;oBACL,KAAK,EAAE,WAAW,CAAC,MAAM;iBACzB;aACD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO;YACN,MAAM,EAAE,yBAAyB,CAAC,OAAO;YACzC,IAAI,EAAE,EAAE;SACR,CAAC;IACH,CAAC;CACD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
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 rulesStorage = require("./rulesStorage.cjs");
|
|
7
|
+
const ruleRecord = require("./ruleRecord.cjs");
|
|
8
|
+
const ruleInput = require("./ruleInput/ruleInput.cjs");
|
|
9
|
+
const policyInput = require("./ruleInput/policyInput.cjs");
|
|
10
|
+
const userScopeInput = require("./ruleInput/userScopeInput.cjs");
|
|
11
|
+
exports.makeAccessRuleHash = transformRule.makeAccessRuleHash;
|
|
12
|
+
exports.transformAccessRuleIntoRecord = transformRule.transformAccessRuleIntoRecord;
|
|
13
|
+
exports.transformAccessRuleRecordIntoRule = transformRule.transformAccessRuleRecordIntoRule;
|
|
14
|
+
exports.AccessPolicyType = rule.AccessPolicyType;
|
|
15
|
+
exports.FilterScopeMatch = rulesStorage.FilterScopeMatch;
|
|
16
|
+
exports.getUserScopeRecordFromAccessRuleRecord = ruleRecord.getUserScopeRecordFromAccessRuleRecord;
|
|
17
|
+
exports.userScopeRecordFields = ruleRecord.userScopeRecordFields;
|
|
18
|
+
exports.accessRuleInput = ruleInput.accessRuleInput;
|
|
19
|
+
exports.accessPolicyInput = policyInput.accessPolicyInput;
|
|
20
|
+
exports.policyScopeInput = policyInput.policyScopeInput;
|
|
21
|
+
exports.userScopeInput = userScopeInput.userScopeInput;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
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;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
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() {
|
|
12
|
+
const deletedCount = await this.accessRulesStorage.deleteAllRules();
|
|
13
|
+
this.logger.info(() => ({
|
|
14
|
+
msg: "Endpoint deleted all access rules",
|
|
15
|
+
data: { deletedCount }
|
|
16
|
+
}));
|
|
17
|
+
return {
|
|
18
|
+
status: apiRoute.ApiEndpointResponseStatus.SUCCESS,
|
|
19
|
+
data: {
|
|
20
|
+
deleted_count: deletedCount
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.DeleteAllRulesEndpoint = DeleteAllRulesEndpoint;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
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) {
|
|
20
|
+
const foundRuleIdPromises = args.flatMap(
|
|
21
|
+
(ruleToDelete) => ruleToDelete.clientIds.map(
|
|
22
|
+
(clientId) => this.accessRulesStorage.findRuleIds({
|
|
23
|
+
policyScope: {
|
|
24
|
+
clientId
|
|
25
|
+
},
|
|
26
|
+
policyScopeMatch: rulesStorage.FilterScopeMatch.Exact,
|
|
27
|
+
groupId: ruleToDelete.groupId
|
|
28
|
+
})
|
|
29
|
+
)
|
|
30
|
+
);
|
|
31
|
+
const foundRuleIds = await Promise.all(foundRuleIdPromises);
|
|
32
|
+
const ruleIds = foundRuleIds.flat();
|
|
33
|
+
const uniqueRuleIds = [...new Set(ruleIds)];
|
|
34
|
+
if (uniqueRuleIds.length > 0) {
|
|
35
|
+
await this.accessRulesStorage.deleteRules(uniqueRuleIds);
|
|
36
|
+
}
|
|
37
|
+
this.logger.info(() => ({
|
|
38
|
+
msg: "Endpoint deleted rule groups",
|
|
39
|
+
data: {
|
|
40
|
+
args,
|
|
41
|
+
uniqueRuleIds
|
|
42
|
+
}
|
|
43
|
+
}));
|
|
44
|
+
return {
|
|
45
|
+
status: apiRoute.ApiEndpointResponseStatus.SUCCESS,
|
|
46
|
+
data: {
|
|
47
|
+
deleted_count: uniqueRuleIds.length
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.DeleteRuleGroupsEndpoint = DeleteRuleGroupsEndpoint;
|