@prosopo/user-access-policy 3.5.27 → 3.5.28
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 +17 -0
- package/package.json +9 -9
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/clover.xml +0 -786
- package/coverage/coverage-final.json +0 -15
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -146
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/coverage/src/accessPolicy.ts.html +0 -457
- package/coverage/src/accessPolicyResolver.ts.html +0 -211
- package/coverage/src/accessRules.ts.html +0 -265
- package/coverage/src/api/accessRuleApiRoutes.ts.html +0 -379
- package/coverage/src/api/accessRulesApiClient.ts.html +0 -274
- package/coverage/src/api/deleteAllRulesEndpoint.ts.html +0 -229
- package/coverage/src/api/deleteRulesEndpoint.ts.html +0 -301
- package/coverage/src/api/index.html +0 -176
- package/coverage/src/api/insertRulesEndpoint.ts.html +0 -436
- package/coverage/src/index.html +0 -176
- package/coverage/src/index.ts.html +0 -277
- package/coverage/src/redis/index.html +0 -161
- package/coverage/src/redis/redisRulesIndex.ts.html +0 -769
- package/coverage/src/redis/redisRulesReader.ts.html +0 -652
- package/coverage/src/redis/redisRulesStorage.ts.html +0 -229
- package/coverage/src/redis/redisRulesWriter.ts.html +0 -424
- package/coverage/src/util.ts.html +0 -136
- package/dist/.export.d.ts +0 -6
- package/dist/.export.d.ts.map +0 -1
- package/dist/.export.js.map +0 -1
- package/dist/accessPolicy.d.ts +0 -169
- package/dist/accessPolicy.d.ts.map +0 -1
- package/dist/accessPolicy.js +0 -80
- package/dist/accessPolicy.js.map +0 -1
- package/dist/accessPolicyResolver.d.ts +0 -110
- package/dist/accessPolicyResolver.d.ts.map +0 -1
- package/dist/accessPolicyResolver.js +0 -31
- package/dist/accessPolicyResolver.js.map +0 -1
- package/dist/accessRules.d.ts +0 -16
- package/dist/accessRules.d.ts.map +0 -1
- package/dist/accessRules.js +0 -11
- package/dist/accessRules.js.map +0 -1
- package/dist/api/.export.d.ts +0 -7
- package/dist/api/.export.d.ts.map +0 -1
- package/dist/api/.export.js.map +0 -1
- package/dist/api/accessRuleApiRoutes.d.ts +0 -27
- package/dist/api/accessRuleApiRoutes.d.ts.map +0 -1
- package/dist/api/accessRuleApiRoutes.js +0 -79
- package/dist/api/accessRuleApiRoutes.js.map +0 -1
- package/dist/api/accessRulesApiClient.d.ts +0 -10
- package/dist/api/accessRulesApiClient.d.ts.map +0 -1
- package/dist/api/accessRulesApiClient.js +0 -38
- package/dist/api/accessRulesApiClient.js.map +0 -1
- package/dist/api/delete/.export.d.ts +0 -2
- package/dist/api/delete/.export.d.ts.map +0 -1
- package/dist/api/delete/.export.js.map +0 -1
- package/dist/api/delete/deleteAllRules.d.ts +0 -11
- package/dist/api/delete/deleteAllRules.d.ts.map +0 -1
- package/dist/api/delete/deleteAllRules.js.map +0 -1
- package/dist/api/delete/deleteRuleGroups.d.ts +0 -19
- package/dist/api/delete/deleteRuleGroups.d.ts.map +0 -1
- package/dist/api/delete/deleteRuleGroups.js.map +0 -1
- package/dist/api/delete/deleteRules.d.ts +0 -15
- package/dist/api/delete/deleteRules.d.ts.map +0 -1
- package/dist/api/delete/deleteRules.js.map +0 -1
- package/dist/api/deleteAllRulesEndpoint.d.ts +0 -12
- package/dist/api/deleteAllRulesEndpoint.d.ts.map +0 -1
- package/dist/api/deleteAllRulesEndpoint.js +0 -24
- package/dist/api/deleteAllRulesEndpoint.js.map +0 -1
- package/dist/api/deleteRulesEndpoint.d.ts +0 -116
- package/dist/api/deleteRulesEndpoint.d.ts.map +0 -1
- package/dist/api/deleteRulesEndpoint.js +0 -34
- package/dist/api/deleteRulesEndpoint.js.map +0 -1
- package/dist/api/insertRulesEndpoint.d.ts +0 -22
- package/dist/api/insertRulesEndpoint.d.ts.map +0 -1
- package/dist/api/insertRulesEndpoint.js +0 -62
- package/dist/api/insertRulesEndpoint.js.map +0 -1
- package/dist/api/read/.export.d.ts +0 -4
- package/dist/api/read/.export.d.ts.map +0 -1
- package/dist/api/read/.export.js.map +0 -1
- package/dist/api/read/fetchRules.d.ts +0 -53
- package/dist/api/read/fetchRules.d.ts.map +0 -1
- package/dist/api/read/fetchRules.js.map +0 -1
- package/dist/api/read/findRuleIds.d.ts +0 -28
- package/dist/api/read/findRuleIds.d.ts.map +0 -1
- package/dist/api/read/findRuleIds.js.map +0 -1
- package/dist/api/read/getMissingIds.d.ts +0 -28
- package/dist/api/read/getMissingIds.d.ts.map +0 -1
- package/dist/api/read/getMissingIds.js.map +0 -1
- package/dist/api/ruleApiRoutes.d.ts +0 -43
- package/dist/api/ruleApiRoutes.d.ts.map +0 -1
- package/dist/api/ruleApiRoutes.js.map +0 -1
- package/dist/api/rulesApiClient.d.ts +0 -20
- package/dist/api/rulesApiClient.d.ts.map +0 -1
- package/dist/api/rulesApiClient.js.map +0 -1
- package/dist/api/write/.export.d.ts +0 -2
- package/dist/api/write/.export.d.ts.map +0 -1
- package/dist/api/write/.export.js.map +0 -1
- package/dist/api/write/insertRules.d.ts +0 -29
- package/dist/api/write/insertRules.d.ts.map +0 -1
- package/dist/api/write/insertRules.js.map +0 -1
- package/dist/api/write/rehashRules.d.ts +0 -11
- package/dist/api/write/rehashRules.d.ts.map +0 -1
- package/dist/api/write/rehashRules.js.map +0 -1
- package/dist/cjs/accessPolicy.cjs +0 -80
- package/dist/cjs/accessPolicyResolver.cjs +0 -31
- package/dist/cjs/accessRules.cjs +0 -11
- package/dist/cjs/api/accessRuleApiRoutes.cjs +0 -79
- package/dist/cjs/api/deleteAllRulesEndpoint.cjs +0 -24
- package/dist/cjs/api/deleteRulesEndpoint.cjs +0 -34
- package/dist/cjs/api/insertRulesEndpoint.cjs +0 -62
- package/dist/cjs/index.cjs +0 -29
- package/dist/cjs/redis/redisAccessRules.cjs +0 -152
- package/dist/cjs/redis/redisAccessRulesIndex.cjs +0 -171
- package/dist/cjs/redis/redisIndex.cjs +0 -22
- package/dist/cjs/util.cjs +0 -5
- package/dist/index.d.ts +0 -15
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -32
- package/dist/index.js.map +0 -1
- package/dist/mongoose/.export.d.ts +0 -2
- package/dist/mongoose/.export.d.ts.map +0 -1
- package/dist/mongoose/.export.js.map +0 -1
- package/dist/mongoose/mongooseRuleSchema.d.ts +0 -4
- package/dist/mongoose/mongooseRuleSchema.d.ts.map +0 -1
- package/dist/mongoose/mongooseRuleSchema.js.map +0 -1
- package/dist/redis/.export.d.ts +0 -3
- package/dist/redis/.export.d.ts.map +0 -1
- package/dist/redis/.export.js.map +0 -1
- package/dist/redis/reader/redisAggregate.d.ts +0 -4
- package/dist/redis/reader/redisAggregate.d.ts.map +0 -1
- package/dist/redis/reader/redisAggregate.js.map +0 -1
- package/dist/redis/reader/redisRulesQuery.d.ts +0 -4
- package/dist/redis/reader/redisRulesQuery.d.ts.map +0 -1
- package/dist/redis/reader/redisRulesQuery.js.map +0 -1
- package/dist/redis/reader/redisRulesReader.d.ts +0 -26
- package/dist/redis/reader/redisRulesReader.d.ts.map +0 -1
- package/dist/redis/reader/redisRulesReader.js.map +0 -1
- package/dist/redis/redisAccessRules.d.ts +0 -7
- package/dist/redis/redisAccessRules.d.ts.map +0 -1
- package/dist/redis/redisAccessRules.js +0 -119
- package/dist/redis/redisAccessRules.js.map +0 -1
- package/dist/redis/redisAccessRulesIndex.d.ts +0 -13
- package/dist/redis/redisAccessRulesIndex.d.ts.map +0 -1
- package/dist/redis/redisAccessRulesIndex.js +0 -140
- package/dist/redis/redisAccessRulesIndex.js.map +0 -1
- package/dist/redis/redisClient.d.ts +0 -11
- package/dist/redis/redisClient.d.ts.map +0 -1
- package/dist/redis/redisClient.js.map +0 -1
- package/dist/redis/redisIndex.d.ts +0 -9
- package/dist/redis/redisIndex.d.ts.map +0 -1
- package/dist/redis/redisIndex.js +0 -23
- package/dist/redis/redisIndex.js.map +0 -1
- package/dist/redis/redisRuleIndex.d.ts +0 -13
- package/dist/redis/redisRuleIndex.d.ts.map +0 -1
- package/dist/redis/redisRuleIndex.js.map +0 -1
- package/dist/redis/redisRulesIndex.d.ts +0 -9
- package/dist/redis/redisRulesIndex.d.ts.map +0 -1
- package/dist/redis/redisRulesIndex.js +0 -138
- package/dist/redis/redisRulesIndex.js.map +0 -1
- package/dist/redis/redisRulesReader.d.ts +0 -6
- package/dist/redis/redisRulesReader.d.ts.map +0 -1
- package/dist/redis/redisRulesReader.js +0 -125
- package/dist/redis/redisRulesReader.js.map +0 -1
- package/dist/redis/redisRulesStorage.d.ts +0 -5
- package/dist/redis/redisRulesStorage.d.ts.map +0 -1
- package/dist/redis/redisRulesStorage.js.map +0 -1
- package/dist/redis/redisRulesWriter.d.ts +0 -22
- package/dist/redis/redisRulesWriter.d.ts.map +0 -1
- package/dist/redis/redisRulesWriter.js.map +0 -1
- package/dist/rule.d.ts +0 -34
- package/dist/rule.d.ts.map +0 -1
- package/dist/rule.js.map +0 -1
- package/dist/ruleInput/.export.d.ts +0 -4
- package/dist/ruleInput/.export.d.ts.map +0 -1
- package/dist/ruleInput/.export.js.map +0 -1
- package/dist/ruleInput/policyInput.d.ts +0 -38
- package/dist/ruleInput/policyInput.d.ts.map +0 -1
- package/dist/ruleInput/policyInput.js.map +0 -1
- package/dist/ruleInput/ruleInput.d.ts +0 -145
- package/dist/ruleInput/ruleInput.d.ts.map +0 -1
- package/dist/ruleInput/ruleInput.js.map +0 -1
- package/dist/ruleInput/userScopeInput.d.ts +0 -93
- package/dist/ruleInput/userScopeInput.d.ts.map +0 -1
- package/dist/ruleInput/userScopeInput.js.map +0 -1
- package/dist/ruleRecord.d.ts +0 -18
- package/dist/ruleRecord.d.ts.map +0 -1
- package/dist/ruleRecord.js.map +0 -1
- package/dist/rulesStorage.d.ts +0 -30
- package/dist/rulesStorage.d.ts.map +0 -1
- package/dist/rulesStorage.js.map +0 -1
- package/dist/tests/accessPolicy.test.d.ts +0 -2
- package/dist/tests/accessPolicy.test.d.ts.map +0 -1
- package/dist/tests/accessPolicy.test.js +0 -27
- package/dist/tests/accessPolicy.test.js.map +0 -1
- package/dist/tests/redis/reader/redisRulesQuery.unit.test.d.ts +0 -2
- package/dist/tests/redis/reader/redisRulesQuery.unit.test.d.ts.map +0 -1
- package/dist/tests/redis/reader/redisRulesQuery.unit.test.js +0 -101
- package/dist/tests/redis/reader/redisRulesQuery.unit.test.js.map +0 -1
- package/dist/tests/redis/redisAccessRules.integration.test.d.ts +0 -2
- package/dist/tests/redis/redisAccessRules.integration.test.d.ts.map +0 -1
- package/dist/tests/redis/redisAccessRules.integration.test.js +0 -586
- package/dist/tests/redis/redisAccessRules.integration.test.js.map +0 -1
- package/dist/tests/redis/redisAccessRules.unit.test.d.ts +0 -2
- package/dist/tests/redis/redisAccessRules.unit.test.d.ts.map +0 -1
- package/dist/tests/redis/redisAccessRules.unit.test.js +0 -198
- package/dist/tests/redis/redisAccessRules.unit.test.js.map +0 -1
- package/dist/tests/redis/redisIndex.integration.test.d.ts +0 -2
- package/dist/tests/redis/redisIndex.integration.test.d.ts.map +0 -1
- package/dist/tests/redis/redisIndex.integration.test.js +0 -80
- package/dist/tests/redis/redisIndex.integration.test.js.map +0 -1
- package/dist/tests/redis/redisRulesIndex.unit.test.d.ts +0 -2
- package/dist/tests/redis/redisRulesIndex.unit.test.d.ts.map +0 -1
- package/dist/tests/redis/redisRulesIndex.unit.test.js +0 -101
- package/dist/tests/redis/redisRulesIndex.unit.test.js.map +0 -1
- package/dist/tests/redis/redisRulesStorage.integration.test.d.ts +0 -2
- package/dist/tests/redis/redisRulesStorage.integration.test.d.ts.map +0 -1
- package/dist/tests/redis/redisRulesStorage.integration.test.js +0 -611
- package/dist/tests/redis/redisRulesStorage.integration.test.js.map +0 -1
- package/dist/tests/redis/testRedisClient.d.ts +0 -3
- package/dist/tests/redis/testRedisClient.d.ts.map +0 -1
- package/dist/tests/redis/testRedisClient.js +0 -8
- package/dist/tests/redis/testRedisClient.js.map +0 -1
- package/dist/tests/testLogger.d.ts +0 -4
- package/dist/tests/testLogger.d.ts.map +0 -1
- package/dist/tests/testLogger.js +0 -22
- package/dist/tests/testLogger.js.map +0 -1
- package/dist/tests/transformRule.unit.test.d.ts +0 -2
- package/dist/tests/transformRule.unit.test.d.ts.map +0 -1
- package/dist/tests/transformRule.unit.test.js +0 -188
- package/dist/tests/transformRule.unit.test.js.map +0 -1
- package/dist/transformRule.d.ts +0 -7
- package/dist/transformRule.d.ts.map +0 -1
- package/dist/transformRule.js.map +0 -1
- package/dist/util.d.ts +0 -2
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js +0 -5
- package/dist/util.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rulesApiClient.js","sourceRoot":"","sources":["../../src/api/rulesApiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":".export.d.ts","sourceRoot":"","sources":["../../../src/api/write/.export.ts"],"names":[],"mappings":"AAcA,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":".export.js","sourceRoot":"","sources":["../../../src/api/write/.export.ts"],"names":[],"mappings":""}
|
|
@@ -1,29 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"insertRules.js","sourceRoot":"","sources":["../../../src/api/write/insertRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const types = require("@prosopo/types");
|
|
4
|
-
const util = require("@prosopo/util");
|
|
5
|
-
const ipAddress = require("ip-address");
|
|
6
|
-
const zod = require("zod");
|
|
7
|
-
const util$1 = require("./util.cjs");
|
|
8
|
-
var AccessPolicyType = /* @__PURE__ */ ((AccessPolicyType2) => {
|
|
9
|
-
AccessPolicyType2["Block"] = "block";
|
|
10
|
-
AccessPolicyType2["Restrict"] = "restrict";
|
|
11
|
-
return AccessPolicyType2;
|
|
12
|
-
})(AccessPolicyType || {});
|
|
13
|
-
const accessPolicySchema = zod.z.object({
|
|
14
|
-
type: zod.z.nativeEnum(AccessPolicyType),
|
|
15
|
-
captchaType: types.CaptchaTypeSchema.optional(),
|
|
16
|
-
description: zod.z.coerce.string().optional(),
|
|
17
|
-
// Redis stores values as strings, so coerce is needed to parse properly
|
|
18
|
-
solvedImagesCount: zod.z.coerce.number().optional(),
|
|
19
|
-
// the percentage of image panels that must be solved per image CAPTCHA
|
|
20
|
-
imageThreshold: zod.z.coerce.number().optional(),
|
|
21
|
-
// the Proof-of-Work difficulty level
|
|
22
|
-
powDifficulty: zod.z.coerce.number().optional(),
|
|
23
|
-
// the number of unsolved image CAPTCHA challenges to serve
|
|
24
|
-
unsolvedImagesCount: zod.z.coerce.number().optional(),
|
|
25
|
-
// used to increase the user's score
|
|
26
|
-
frictionlessScore: zod.z.coerce.number().optional()
|
|
27
|
-
});
|
|
28
|
-
const policyScopeSchema = zod.z.object({
|
|
29
|
-
clientId: zod.z.coerce.string().optional(),
|
|
30
|
-
ruleGroupId: zod.z.coerce.string().optional()
|
|
31
|
-
});
|
|
32
|
-
const userScopeSchema = zod.z.object({
|
|
33
|
-
// coerce is used for safety, as e.g., incoming userId can be digital
|
|
34
|
-
userId: zod.z.coerce.string().optional(),
|
|
35
|
-
numericIp: zod.z.coerce.bigint().optional(),
|
|
36
|
-
numericIpMaskMin: zod.z.coerce.bigint().optional(),
|
|
37
|
-
numericIpMaskMax: zod.z.coerce.bigint().optional(),
|
|
38
|
-
ja4Hash: zod.z.coerce.string().optional(),
|
|
39
|
-
headersHash: zod.z.coerce.string().optional(),
|
|
40
|
-
userAgentHash: zod.z.coerce.string().optional()
|
|
41
|
-
});
|
|
42
|
-
const userScopeInputSchema = userScopeSchema.extend({
|
|
43
|
-
// human-friendly ip versions. If present, then converted to numeric and removed from the object
|
|
44
|
-
// 127.0.0.1
|
|
45
|
-
ip: zod.z.string().optional(),
|
|
46
|
-
// 127.0.0.1/24
|
|
47
|
-
ipMask: zod.z.string().optional(),
|
|
48
|
-
// human friendly user agent
|
|
49
|
-
userAgent: zod.z.string().optional()
|
|
50
|
-
}).transform((inputUserScope) => {
|
|
51
|
-
const { ip, ipMask, userAgent, ...userScope } = inputUserScope;
|
|
52
|
-
if ("string" === typeof ip) {
|
|
53
|
-
userScope.numericIp = util.getIPAddress(ip).bigInt();
|
|
54
|
-
}
|
|
55
|
-
if ("string" === typeof ipMask) {
|
|
56
|
-
const ipObject = new ipAddress.Address4(ipMask);
|
|
57
|
-
userScope.numericIpMaskMin = ipObject.startAddress().bigInt();
|
|
58
|
-
userScope.numericIpMaskMax = ipObject.endAddress().bigInt();
|
|
59
|
-
}
|
|
60
|
-
if ("string" === typeof userAgent) {
|
|
61
|
-
userScope.userAgentHash = util$1.hashUserAgent(userAgent);
|
|
62
|
-
}
|
|
63
|
-
return userScope;
|
|
64
|
-
});
|
|
65
|
-
const accessRuleSchemaExtended = zod.z.object({
|
|
66
|
-
// flat structure is used to fit the Redis requirements
|
|
67
|
-
...accessPolicySchema.shape,
|
|
68
|
-
...policyScopeSchema.shape,
|
|
69
|
-
...userScopeInputSchema._def.schema.shape
|
|
70
|
-
}).omit({
|
|
71
|
-
numericIp: true,
|
|
72
|
-
numericIpMaskMin: true,
|
|
73
|
-
numericIpMaskMax: true
|
|
74
|
-
});
|
|
75
|
-
exports.AccessPolicyType = AccessPolicyType;
|
|
76
|
-
exports.accessPolicySchema = accessPolicySchema;
|
|
77
|
-
exports.accessRuleSchemaExtended = accessRuleSchemaExtended;
|
|
78
|
-
exports.policyScopeSchema = policyScopeSchema;
|
|
79
|
-
exports.userScopeInputSchema = userScopeInputSchema;
|
|
80
|
-
exports.userScopeSchema = userScopeSchema;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const zod = require("zod");
|
|
4
|
-
const accessPolicy = require("./accessPolicy.cjs");
|
|
5
|
-
var ScopeMatch = /* @__PURE__ */ ((ScopeMatch2) => {
|
|
6
|
-
ScopeMatch2["Exact"] = "exact";
|
|
7
|
-
ScopeMatch2["Greedy"] = "greedy";
|
|
8
|
-
return ScopeMatch2;
|
|
9
|
-
})(ScopeMatch || {});
|
|
10
|
-
const policyFilterSchema = zod.z.object({
|
|
11
|
-
policyScope: accessPolicy.policyScopeSchema.optional(),
|
|
12
|
-
/**
|
|
13
|
-
* Exact: "clientId" => client rules, "undefined" => global rules. Used by the API
|
|
14
|
-
* Greedy: "clientId" => client + global rules, "undefined" => any rules. Used by the Express middleware
|
|
15
|
-
*/
|
|
16
|
-
policyScopeMatch: zod.z.nativeEnum(ScopeMatch).default(
|
|
17
|
-
"exact"
|
|
18
|
-
/* Exact */
|
|
19
|
-
),
|
|
20
|
-
userScope: accessPolicy.userScopeInputSchema.optional(),
|
|
21
|
-
/**
|
|
22
|
-
* Exact: finds rules where all the given fields matches and doesn't check IP against masks. Used by the API
|
|
23
|
-
* Greedy: finds rules where any of the given fields match and checks IP against masks. Used by the Express middleware
|
|
24
|
-
*/
|
|
25
|
-
userScopeMatch: zod.z.nativeEnum(ScopeMatch).default(
|
|
26
|
-
"exact"
|
|
27
|
-
/* Exact */
|
|
28
|
-
)
|
|
29
|
-
});
|
|
30
|
-
exports.ScopeMatch = ScopeMatch;
|
|
31
|
-
exports.policyFilterSchema = policyFilterSchema;
|
package/dist/cjs/accessRules.cjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const zod = require("zod");
|
|
4
|
-
const accessPolicy = require("./accessPolicy.cjs");
|
|
5
|
-
const accessRuleSchema = zod.z.object({
|
|
6
|
-
// flat structure is used to fit the Redis requirements
|
|
7
|
-
...accessPolicy.accessPolicySchema.shape,
|
|
8
|
-
...accessPolicy.policyScopeSchema.shape,
|
|
9
|
-
...accessPolicy.userScopeSchema.shape
|
|
10
|
-
});
|
|
11
|
-
exports.accessRuleSchema = accessRuleSchema;
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const deleteAllRulesEndpoint = require("./deleteAllRulesEndpoint.cjs");
|
|
4
|
-
const deleteRulesEndpoint = require("./deleteRulesEndpoint.cjs");
|
|
5
|
-
const insertRulesEndpoint = require("./insertRulesEndpoint.cjs");
|
|
6
|
-
var accessRuleApiPaths = /* @__PURE__ */ ((accessRuleApiPaths2) => {
|
|
7
|
-
accessRuleApiPaths2["INSERT_MANY"] = "/v1/prosopo/user-access-policy/rules/insert-many";
|
|
8
|
-
accessRuleApiPaths2["DELETE_MANY"] = "/v1/prosopo/user-access-policy/rules/delete-many";
|
|
9
|
-
accessRuleApiPaths2["DELETE_ALL"] = "/v1/prosopo/user-access-policy/rules/delete-all";
|
|
10
|
-
return accessRuleApiPaths2;
|
|
11
|
-
})(accessRuleApiPaths || {});
|
|
12
|
-
class AccessRuleApiRoutes {
|
|
13
|
-
constructor(accessRulesStorage) {
|
|
14
|
-
this.accessRulesStorage = accessRulesStorage;
|
|
15
|
-
}
|
|
16
|
-
getRoutes() {
|
|
17
|
-
return [
|
|
18
|
-
{
|
|
19
|
-
path: "/v1/prosopo/user-access-policy/rules/insert-many",
|
|
20
|
-
endpoint: new insertRulesEndpoint.InsertRulesEndpoint(this.accessRulesStorage)
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
path: "/v1/prosopo/user-access-policy/rules/delete-many",
|
|
24
|
-
endpoint: new deleteRulesEndpoint.DeleteRulesEndpoint(this.accessRulesStorage)
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
path: "/v1/prosopo/user-access-policy/rules/delete-all",
|
|
28
|
-
endpoint: new deleteAllRulesEndpoint.DeleteAllRulesEndpoint(this.accessRulesStorage)
|
|
29
|
-
}
|
|
30
|
-
];
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
const getExpressApiRuleRateLimits = () => {
|
|
34
|
-
const defaultWindowsMs = 6e4;
|
|
35
|
-
const defaultLimit = 5;
|
|
36
|
-
return {
|
|
37
|
-
[
|
|
38
|
-
"/v1/prosopo/user-access-policy/rules/insert-many"
|
|
39
|
-
/* INSERT_MANY */
|
|
40
|
-
]: {
|
|
41
|
-
windowMs: getIntEnvironmentVariable(
|
|
42
|
-
"PROSOPO_USER_ACCESS_POLICY_RULE_INSERT_MANY_WINDOW"
|
|
43
|
-
) || defaultWindowsMs,
|
|
44
|
-
limit: getIntEnvironmentVariable(
|
|
45
|
-
"PROSOPO_USER_ACCESS_POLICY_RULE_INSERT_MANY_LIMIT"
|
|
46
|
-
) || defaultLimit
|
|
47
|
-
},
|
|
48
|
-
[
|
|
49
|
-
"/v1/prosopo/user-access-policy/rules/delete-many"
|
|
50
|
-
/* DELETE_MANY */
|
|
51
|
-
]: {
|
|
52
|
-
windowMs: getIntEnvironmentVariable(
|
|
53
|
-
"PROSOPO_USER_ACCESS_POLICY_RULE_DELETE_MANY_WINDOW"
|
|
54
|
-
) || defaultWindowsMs,
|
|
55
|
-
limit: getIntEnvironmentVariable(
|
|
56
|
-
"PROSOPO_USER_ACCESS_POLICY_RULE_DELETE_MANY_LIMIT"
|
|
57
|
-
) || defaultLimit
|
|
58
|
-
},
|
|
59
|
-
[
|
|
60
|
-
"/v1/prosopo/user-access-policy/rules/delete-all"
|
|
61
|
-
/* DELETE_ALL */
|
|
62
|
-
]: {
|
|
63
|
-
windowMs: getIntEnvironmentVariable(
|
|
64
|
-
"PROSOPO_USER_ACCESS_POLICY_RULE_DELETE_ALL_WINDOW"
|
|
65
|
-
) || defaultWindowsMs,
|
|
66
|
-
limit: getIntEnvironmentVariable(
|
|
67
|
-
"PROSOPO_USER_ACCESS_POLICY_RULE_DELETE_ALL_LIMIT"
|
|
68
|
-
) || defaultLimit
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
const getIntEnvironmentVariable = (variableName) => {
|
|
73
|
-
const variableValue = process.env[variableName];
|
|
74
|
-
const numericValue = variableValue ? Number.parseInt(variableValue) : Number.NaN;
|
|
75
|
-
return Number.isInteger(numericValue) ? numericValue : void 0;
|
|
76
|
-
};
|
|
77
|
-
exports.AccessRuleApiRoutes = AccessRuleApiRoutes;
|
|
78
|
-
exports.accessRuleApiPaths = accessRuleApiPaths;
|
|
79
|
-
exports.getExpressApiRuleRateLimits = getExpressApiRuleRateLimits;
|
|
@@ -1,24 +0,0 @@
|
|
|
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 deleteAllRulesEndpointSchema = zod.z.object({});
|
|
6
|
-
class DeleteAllRulesEndpoint {
|
|
7
|
-
constructor(accessRulesStorage) {
|
|
8
|
-
this.accessRulesStorage = accessRulesStorage;
|
|
9
|
-
}
|
|
10
|
-
async processRequest(args) {
|
|
11
|
-
const deletedCount = await this.accessRulesStorage.deleteAllRules();
|
|
12
|
-
return {
|
|
13
|
-
status: apiRoute.ApiEndpointResponseStatus.SUCCESS,
|
|
14
|
-
data: {
|
|
15
|
-
deleted_count: deletedCount
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
getRequestArgsSchema() {
|
|
20
|
-
return deleteAllRulesEndpointSchema;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
exports.DeleteAllRulesEndpoint = DeleteAllRulesEndpoint;
|
|
24
|
-
exports.deleteAllRulesEndpointSchema = deleteAllRulesEndpointSchema;
|
|
@@ -1,34 +0,0 @@
|
|
|
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 accessPolicyResolver = require("../accessPolicyResolver.cjs");
|
|
6
|
-
const deleteRulesEndpointSchema = zod.z.array(accessPolicyResolver.policyFilterSchema);
|
|
7
|
-
class DeleteRulesEndpoint {
|
|
8
|
-
constructor(accessRulesStorage) {
|
|
9
|
-
this.accessRulesStorage = accessRulesStorage;
|
|
10
|
-
}
|
|
11
|
-
async processRequest(args) {
|
|
12
|
-
const allRuleIds = [];
|
|
13
|
-
for (const accessRuleFilter of args) {
|
|
14
|
-
const parsedRules = accessPolicyResolver.policyFilterSchema.parse(accessRuleFilter);
|
|
15
|
-
const foundRuleIds = await this.accessRulesStorage.findRuleIds(parsedRules);
|
|
16
|
-
allRuleIds.push(...foundRuleIds);
|
|
17
|
-
}
|
|
18
|
-
const uniqueRuleIds = [...new Set(allRuleIds)];
|
|
19
|
-
if (uniqueRuleIds.length > 0) {
|
|
20
|
-
await this.accessRulesStorage.deleteRules(uniqueRuleIds);
|
|
21
|
-
}
|
|
22
|
-
return {
|
|
23
|
-
status: apiRoute.ApiEndpointResponseStatus.SUCCESS,
|
|
24
|
-
data: {
|
|
25
|
-
deleted_count: uniqueRuleIds.length
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
getRequestArgsSchema() {
|
|
30
|
-
return deleteRulesEndpointSchema;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.DeleteRulesEndpoint = DeleteRulesEndpoint;
|
|
34
|
-
exports.deleteRulesEndpointSchema = deleteRulesEndpointSchema;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
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 accessPolicy = require("../accessPolicy.cjs");
|
|
7
|
-
const insertRulesEndpointSchema = zod.z.object({
|
|
8
|
-
accessPolicy: accessPolicy.accessPolicySchema,
|
|
9
|
-
policyScope: accessPolicy.policyScopeSchema.optional(),
|
|
10
|
-
userScopes: zod.z.array(accessPolicy.userScopeInputSchema),
|
|
11
|
-
expirationTimestamp: zod.z.number().optional().transform((val) => val !== void 0 ? Math.floor(val) : val)
|
|
12
|
-
});
|
|
13
|
-
class InsertRulesEndpoint {
|
|
14
|
-
constructor(accessRulesWriter) {
|
|
15
|
-
this.accessRulesWriter = accessRulesWriter;
|
|
16
|
-
}
|
|
17
|
-
async processRequest(args, logger) {
|
|
18
|
-
logger = logger || common.getLogger(common.LogLevel.enum.info, "InsertRulesEndpoint");
|
|
19
|
-
const timeoutPromise = new Promise((resolve) => {
|
|
20
|
-
setTimeout(() => {
|
|
21
|
-
resolve({
|
|
22
|
-
status: apiRoute.ApiEndpointResponseStatus.PROCESSING
|
|
23
|
-
});
|
|
24
|
-
}, 5e3);
|
|
25
|
-
});
|
|
26
|
-
const createRulesPromise = this.createRules(args).then(() => ({
|
|
27
|
-
status: apiRoute.ApiEndpointResponseStatus.SUCCESS
|
|
28
|
-
})).catch((error) => {
|
|
29
|
-
if (logger?.getLogLevel() === common.LogLevel.enum.debug) {
|
|
30
|
-
logger.error(() => ({
|
|
31
|
-
err: error,
|
|
32
|
-
data: { args },
|
|
33
|
-
msg: "Failed to insert access rules"
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
return {
|
|
37
|
-
status: apiRoute.ApiEndpointResponseStatus.FAIL
|
|
38
|
-
};
|
|
39
|
-
});
|
|
40
|
-
return Promise.race([timeoutPromise, createRulesPromise]);
|
|
41
|
-
}
|
|
42
|
-
getRequestArgsSchema() {
|
|
43
|
-
return insertRulesEndpointSchema;
|
|
44
|
-
}
|
|
45
|
-
async createRules(args) {
|
|
46
|
-
const policyScope = args.policyScope || {};
|
|
47
|
-
const createPromises = [];
|
|
48
|
-
for (const userScope of args.userScopes) {
|
|
49
|
-
const rule = {
|
|
50
|
-
...args.accessPolicy,
|
|
51
|
-
...policyScope,
|
|
52
|
-
...userScope
|
|
53
|
-
};
|
|
54
|
-
createPromises.push(
|
|
55
|
-
this.accessRulesWriter.insertRule(rule, args.expirationTimestamp)
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
return Promise.all(createPromises);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
exports.InsertRulesEndpoint = InsertRulesEndpoint;
|
|
62
|
-
exports.insertRulesEndpointSchema = insertRulesEndpointSchema;
|
package/dist/cjs/index.cjs
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const accessPolicy = require("./accessPolicy.cjs");
|
|
4
|
-
const accessPolicyResolver = require("./accessPolicyResolver.cjs");
|
|
5
|
-
const accessRules = require("./accessRules.cjs");
|
|
6
|
-
const accessRuleApiRoutes = require("./api/accessRuleApiRoutes.cjs");
|
|
7
|
-
const deleteAllRulesEndpoint = require("./api/deleteAllRulesEndpoint.cjs");
|
|
8
|
-
const deleteRulesEndpoint = require("./api/deleteRulesEndpoint.cjs");
|
|
9
|
-
const insertRulesEndpoint = require("./api/insertRulesEndpoint.cjs");
|
|
10
|
-
const redisAccessRules = require("./redis/redisAccessRules.cjs");
|
|
11
|
-
const redisAccessRulesIndex = require("./redis/redisAccessRulesIndex.cjs");
|
|
12
|
-
const createApiRuleRoutesProvider = (rulesStorage) => {
|
|
13
|
-
return new accessRuleApiRoutes.AccessRuleApiRoutes(rulesStorage);
|
|
14
|
-
};
|
|
15
|
-
exports.AccessPolicyType = accessPolicy.AccessPolicyType;
|
|
16
|
-
exports.accessPolicySchema = accessPolicy.accessPolicySchema;
|
|
17
|
-
exports.accessRuleSchemaExtended = accessPolicy.accessRuleSchemaExtended;
|
|
18
|
-
exports.policyScopeSchema = accessPolicy.policyScopeSchema;
|
|
19
|
-
exports.userScopeInputSchema = accessPolicy.userScopeInputSchema;
|
|
20
|
-
exports.ScopeMatch = accessPolicyResolver.ScopeMatch;
|
|
21
|
-
exports.accessRuleSchema = accessRules.accessRuleSchema;
|
|
22
|
-
exports.accessRuleApiPaths = accessRuleApiRoutes.accessRuleApiPaths;
|
|
23
|
-
exports.getExpressApiRuleRateLimits = accessRuleApiRoutes.getExpressApiRuleRateLimits;
|
|
24
|
-
exports.deleteAllRulesEndpointSchema = deleteAllRulesEndpoint.deleteAllRulesEndpointSchema;
|
|
25
|
-
exports.deleteRulesEndpointSchema = deleteRulesEndpoint.deleteRulesEndpointSchema;
|
|
26
|
-
exports.insertRulesEndpointSchema = insertRulesEndpoint.insertRulesEndpointSchema;
|
|
27
|
-
exports.createRedisAccessRulesStorage = redisAccessRules.createRedisAccessRulesStorage;
|
|
28
|
-
exports.createRedisAccessRulesIndex = redisAccessRulesIndex.createRedisAccessRulesIndex;
|
|
29
|
-
exports.createApiRuleRoutesProvider = createApiRuleRoutesProvider;
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const util = require("node:util");
|
|
4
|
-
const accessRules = require("../accessRules.cjs");
|
|
5
|
-
const redisAccessRulesIndex = require("./redisAccessRulesIndex.cjs");
|
|
6
|
-
function _interopNamespaceDefault(e) {
|
|
7
|
-
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
8
|
-
if (e) {
|
|
9
|
-
for (const k in e) {
|
|
10
|
-
if (k !== "default") {
|
|
11
|
-
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
12
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: () => e[k]
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
n.default = e;
|
|
20
|
-
return Object.freeze(n);
|
|
21
|
-
}
|
|
22
|
-
const util__namespace = /* @__PURE__ */ _interopNamespaceDefault(util);
|
|
23
|
-
const createRedisAccessRulesReader = (client, logger) => {
|
|
24
|
-
return {
|
|
25
|
-
findRules: async (filter, matchingFieldsOnly = false, skipEmptyUserScopes = true) => {
|
|
26
|
-
const query = redisAccessRulesIndex.getRedisAccessRulesQuery(filter, matchingFieldsOnly);
|
|
27
|
-
if (skipEmptyUserScopes && query === "ismissing(@clientId)") {
|
|
28
|
-
return [];
|
|
29
|
-
}
|
|
30
|
-
let searchReply;
|
|
31
|
-
try {
|
|
32
|
-
searchReply = await client.ft.search(
|
|
33
|
-
redisAccessRulesIndex.accessRulesRedisIndexName,
|
|
34
|
-
query,
|
|
35
|
-
redisAccessRulesIndex.accessRulesRedisSearchOptions
|
|
36
|
-
);
|
|
37
|
-
if (searchReply.total > 0) {
|
|
38
|
-
logger.debug(() => ({
|
|
39
|
-
msg: "Executed search query",
|
|
40
|
-
data: {
|
|
41
|
-
inspect: util__namespace.inspect(
|
|
42
|
-
{
|
|
43
|
-
filter,
|
|
44
|
-
searchReply,
|
|
45
|
-
query
|
|
46
|
-
},
|
|
47
|
-
{ depth: null }
|
|
48
|
-
)
|
|
49
|
-
}
|
|
50
|
-
}));
|
|
51
|
-
}
|
|
52
|
-
} catch (e) {
|
|
53
|
-
logger.error(() => ({
|
|
54
|
-
err: e,
|
|
55
|
-
data: {
|
|
56
|
-
inspect: util__namespace.inspect(
|
|
57
|
-
{
|
|
58
|
-
query,
|
|
59
|
-
filter
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
depth: null
|
|
63
|
-
}
|
|
64
|
-
)
|
|
65
|
-
},
|
|
66
|
-
msg: "failed to execute search query"
|
|
67
|
-
}));
|
|
68
|
-
return [];
|
|
69
|
-
}
|
|
70
|
-
return extractAccessRulesFromSearchReply(searchReply, logger);
|
|
71
|
-
},
|
|
72
|
-
findRuleIds: async (filter, matchingFieldsOnly = false) => {
|
|
73
|
-
const query = redisAccessRulesIndex.getRedisAccessRulesQuery(filter, matchingFieldsOnly);
|
|
74
|
-
let searchReply;
|
|
75
|
-
try {
|
|
76
|
-
searchReply = await client.ft.searchNoContent(
|
|
77
|
-
redisAccessRulesIndex.accessRulesRedisIndexName,
|
|
78
|
-
query,
|
|
79
|
-
redisAccessRulesIndex.accessRulesRedisSearchOptions
|
|
80
|
-
);
|
|
81
|
-
} catch (e) {
|
|
82
|
-
logger.error(() => ({
|
|
83
|
-
err: e,
|
|
84
|
-
data: {
|
|
85
|
-
inspect: util__namespace.inspect(
|
|
86
|
-
{
|
|
87
|
-
query,
|
|
88
|
-
filter
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
depth: null
|
|
92
|
-
}
|
|
93
|
-
)
|
|
94
|
-
},
|
|
95
|
-
msg: "Failed to execute search query for rule IDs"
|
|
96
|
-
}));
|
|
97
|
-
return [];
|
|
98
|
-
}
|
|
99
|
-
return searchReply.documents;
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
};
|
|
103
|
-
const createRedisAccessRulesWriter = (client) => {
|
|
104
|
-
return {
|
|
105
|
-
insertRule: async (rule, expirationTimestamp) => {
|
|
106
|
-
const ruleKey = redisAccessRulesIndex.getRedisAccessRuleKey(rule);
|
|
107
|
-
const ruleValue = redisAccessRulesIndex.getRedisAccessRuleValue(rule);
|
|
108
|
-
await client.hSet(ruleKey, ruleValue);
|
|
109
|
-
if (expirationTimestamp) {
|
|
110
|
-
const expiryDate = new Date(expirationTimestamp);
|
|
111
|
-
if (expiryDate.getUTCFullYear() === 1970) {
|
|
112
|
-
await client.expireAt(ruleKey, expirationTimestamp);
|
|
113
|
-
} else {
|
|
114
|
-
const timestampInSeconds = Math.floor(expirationTimestamp / 1e3);
|
|
115
|
-
await client.expireAt(ruleKey, timestampInSeconds);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return ruleKey;
|
|
119
|
-
},
|
|
120
|
-
deleteRules: async (ruleIds) => void await client.del(ruleIds),
|
|
121
|
-
deleteAllRules: async () => {
|
|
122
|
-
const keys = await client.keys(`${redisAccessRulesIndex.accessRuleRedisKeyPrefix}*`);
|
|
123
|
-
if (keys.length === 0) return 0;
|
|
124
|
-
return await client.del(keys);
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
};
|
|
128
|
-
const createRedisAccessRulesStorage = (client, logger) => {
|
|
129
|
-
return {
|
|
130
|
-
...createRedisAccessRulesReader(client, logger),
|
|
131
|
-
...createRedisAccessRulesWriter(client)
|
|
132
|
-
};
|
|
133
|
-
};
|
|
134
|
-
const extractAccessRulesFromSearchReply = (searchReply, logger) => {
|
|
135
|
-
const accessRules$1 = [];
|
|
136
|
-
searchReply.documents.map(({ id, value: document }) => {
|
|
137
|
-
const parsedDocument = accessRules.accessRuleSchema.safeParse(document);
|
|
138
|
-
if (parsedDocument.success) {
|
|
139
|
-
accessRules$1.push(parsedDocument.data);
|
|
140
|
-
} else {
|
|
141
|
-
logger.debug(() => ({
|
|
142
|
-
msg: "Failed to parse access rule from search reply",
|
|
143
|
-
id,
|
|
144
|
-
error: parsedDocument.error
|
|
145
|
-
}));
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
return accessRules$1;
|
|
149
|
-
};
|
|
150
|
-
exports.createRedisAccessRulesReader = createRedisAccessRulesReader;
|
|
151
|
-
exports.createRedisAccessRulesStorage = createRedisAccessRulesStorage;
|
|
152
|
-
exports.createRedisAccessRulesWriter = createRedisAccessRulesWriter;
|