@restorecommerce/acs-client 0.6.9 → 0.6.13

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/lib/acs/cache.js CHANGED
@@ -1,20 +1,33 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
23
  };
11
24
  Object.defineProperty(exports, "__esModule", { value: true });
12
25
  exports.setCacheStatus = exports.flushCache = exports.get = exports.getOrFill = exports.initializeCache = void 0;
13
26
  const config_1 = require("../config");
14
- const logger_1 = require("../logger");
15
- const crypto = require("crypto");
16
- const Redis = require("ioredis");
17
- const _ = require("lodash");
27
+ const logger_1 = __importDefault(require("../logger"));
28
+ const crypto = __importStar(require("crypto"));
29
+ const redis_1 = require("redis");
30
+ const _ = __importStar(require("lodash"));
18
31
  let attempted = false;
19
32
  let redisInstance;
20
33
  let ttl;
@@ -23,14 +36,14 @@ let redisSubjectInstance;
23
36
  /**
24
37
  * Initialize ACS Cache
25
38
  */
26
- const initializeCache = () => __awaiter(void 0, void 0, void 0, function* () {
39
+ const initializeCache = async () => {
27
40
  if (attempted || !cacheEnabled) {
28
41
  return;
29
42
  }
30
43
  attempted = true;
31
44
  let redis;
32
45
  try {
33
- redis = yield Promise.resolve().then(() => require('redis'));
46
+ redis = await Promise.resolve().then(() => __importStar(require('redis')));
34
47
  }
35
48
  catch (e) {
36
49
  }
@@ -38,17 +51,21 @@ const initializeCache = () => __awaiter(void 0, void 0, void 0, function* () {
38
51
  const redisConfig = config_1.cfg.get('authorization:cache');
39
52
  const redisSubConfig = config_1.cfg.get('redis');
40
53
  if (redisConfig) {
41
- redisConfig.db = config_1.cfg.get('authorization:cache:db-index');
42
- redisInstance = redis.createClient(redisConfig);
54
+ redisConfig.database = config_1.cfg.get('authorization:cache:db-index');
55
+ redisInstance = (0, redis_1.createClient)(redisConfig);
56
+ redisInstance.on('error', (err) => logger_1.default.error('Redis Client Error in ACS cache', err));
57
+ await redisInstance.connect();
43
58
  ttl = config_1.cfg.get('authorization:cache:ttl');
44
59
  }
45
60
  if (redisSubConfig) {
46
61
  // init redis subject instance
47
- redisSubConfig.db = redisSubConfig['db-indexes']['db-subject'];
48
- redisSubjectInstance = redis.createClient(redisSubConfig);
62
+ redisSubConfig.database = redisSubConfig['db-indexes']['db-subject'];
63
+ redisSubjectInstance = (0, redis_1.createClient)(redisSubConfig);
64
+ redisSubjectInstance.on('error', (err) => logger_1.default.error('Redis Client Error in ACS cache', err));
65
+ await redisSubjectInstance.connect();
49
66
  }
50
67
  }
51
- });
68
+ };
52
69
  exports.initializeCache = initializeCache;
53
70
  /**
54
71
  * Find the object in cache. If not found, compute it using the filler function
@@ -57,7 +74,7 @@ exports.initializeCache = initializeCache;
57
74
  * @param filler The function to execute if key is not found in cache
58
75
  * @param prefix The prefix to apply to the object key in the cache
59
76
  */
60
- const getOrFill = (keyData, filler, useCache, prefix) => __awaiter(void 0, void 0, void 0, function* () {
77
+ const getOrFill = async (keyData, filler, useCache, prefix) => {
61
78
  if (!redisInstance || !cacheEnabled) {
62
79
  return filler(keyData);
63
80
  }
@@ -66,57 +83,47 @@ const getOrFill = (keyData, filler, useCache, prefix) => __awaiter(void 0, void
66
83
  if (prefix) {
67
84
  redisKey = `${prefix}:` + redisKey;
68
85
  }
69
- return new Promise((resolve, reject) => {
70
- redisInstance.get(redisKey, (err, reply) => __awaiter(void 0, void 0, void 0, function* () {
71
- if (err) {
72
- logger_1.default.error('Failed fetching key from ACS cache: ', err);
73
- return;
74
- }
75
- if (reply && useCache) {
76
- const response = JSON.parse(reply);
77
- let evaluation_cacheable = response.evaluation_cacheable;
78
- if (response && !_.isEmpty(response.policy_sets)) {
79
- const policies = response.policy_sets[0].policies;
80
- if (policies && policies.length > 0) {
81
- for (let policy of policies) {
82
- for (let rule of policy.rules) {
83
- if (!rule.evaluation_cacheable || (rule.evaluation_cacheable === false)) {
84
- evaluation_cacheable = rule.evaluation_cacheable;
85
- break;
86
- }
87
- else if (rule.evaluation_cacheable) {
88
- evaluation_cacheable = rule.evaluation_cacheable;
89
- }
90
- }
86
+ let redisKeyResponse = await redisInstance.get(redisKey);
87
+ if (redisKeyResponse && useCache) {
88
+ const response = JSON.parse(redisKeyResponse);
89
+ let evaluation_cacheable = response.evaluation_cacheable;
90
+ if (response && !_.isEmpty(response.policy_sets)) {
91
+ const policies = response.policy_sets[0].policies;
92
+ if (policies && policies.length > 0) {
93
+ for (let policy of policies) {
94
+ for (let rule of policy.rules) {
95
+ if (!rule.evaluation_cacheable || (rule.evaluation_cacheable === false)) {
96
+ evaluation_cacheable = rule.evaluation_cacheable;
97
+ break;
98
+ }
99
+ else if (rule.evaluation_cacheable) {
100
+ evaluation_cacheable = rule.evaluation_cacheable;
91
101
  }
92
102
  }
93
103
  }
94
- if (evaluation_cacheable) {
95
- logger_1.default.debug('Found key in cache: ' + redisKey);
96
- return resolve(response);
97
- }
98
- }
99
- if (!useCache) {
100
- return filler(keyData).then((data) => {
101
- // when useCache is false, dont store in cache
102
- resolve(data);
103
- }).catch(reject);
104
104
  }
105
- logger_1.default.debug('Filling cache key: ' + redisKey);
106
- return filler(keyData).then((data) => {
107
- if (data) {
108
- if (ttl) {
109
- redisInstance.setex(redisKey, ttl, JSON.stringify(data));
110
- }
111
- else {
112
- redisInstance.set(redisKey, JSON.stringify(data));
113
- }
114
- }
115
- resolve(data);
116
- }).catch(reject);
117
- }));
118
- });
119
- });
105
+ }
106
+ if (evaluation_cacheable) {
107
+ logger_1.default.debug('Found key in cache: ' + redisKey);
108
+ return response;
109
+ }
110
+ }
111
+ if (!useCache) {
112
+ // when useCache is false, dont store in cache
113
+ return await filler(keyData);
114
+ }
115
+ logger_1.default.debug('Filling cache key: ' + redisKey);
116
+ const acsResponse = await filler(keyData);
117
+ if (acsResponse) {
118
+ if (ttl) {
119
+ await redisInstance.setEx(redisKey, ttl, JSON.stringify(acsResponse));
120
+ }
121
+ else {
122
+ await redisInstance.set(redisKey, JSON.stringify(acsResponse));
123
+ }
124
+ }
125
+ return acsResponse;
126
+ };
120
127
  exports.getOrFill = getOrFill;
121
128
  /**
122
129
  * Find the object in cache.
@@ -125,84 +132,54 @@ exports.getOrFill = getOrFill;
125
132
  * @param filler The function to execute if key is not found in cache
126
133
  * @param prefix The prefix to apply to the object key in the cache
127
134
  */
128
- const get = (key) => __awaiter(void 0, void 0, void 0, function* () {
135
+ const get = async (key) => {
129
136
  if (!redisSubjectInstance) {
130
137
  return;
131
138
  }
132
- return new Promise((resolve, reject) => {
133
- redisSubjectInstance.get(key, (err, reply) => __awaiter(void 0, void 0, void 0, function* () {
134
- if (err) {
135
- reject(err);
136
- return;
137
- }
138
- if (reply) {
139
- logger_1.default.debug('Found key in cache: ' + key);
140
- resolve(JSON.parse(reply));
141
- return;
142
- }
143
- if (!err && !reply) {
144
- logger_1.default.info('Key does not exist', { key });
145
- resolve(0);
146
- }
147
- }));
148
- });
149
- });
139
+ const redisResponse = await redisSubjectInstance.get(key);
140
+ if (!redisResponse) {
141
+ logger_1.default.info('Key does not exist', { key });
142
+ return;
143
+ }
144
+ if (redisResponse) {
145
+ logger_1.default.debug('Found key in cache: ' + key);
146
+ return JSON.parse(redisResponse);
147
+ }
148
+ };
150
149
  exports.get = get;
151
150
  /**
152
151
  * Flush the ACS cache
153
152
  *
154
153
  * @param prefix An optional prefix to flush instead of entire cache
155
154
  */
156
- const flushCache = (prefix) => __awaiter(void 0, void 0, void 0, function* () {
157
- let ioredisInstance;
158
- const redisConfig = config_1.cfg.get('authorization:cache');
159
- if (redisConfig) {
160
- redisConfig.db = config_1.cfg.get('authorization:cache:db-index');
161
- ioredisInstance = new Redis(redisConfig);
162
- }
163
- if (!ioredisInstance || !cacheEnabled) {
155
+ const flushCache = async (prefix) => {
156
+ if (!redisInstance || !cacheEnabled) {
157
+ logger_1.default.info('Redis client not initialized in acs-client');
164
158
  return;
165
159
  }
166
160
  if (prefix != undefined) {
167
- let stream = ioredisInstance.scanStream({ match: `acs:${prefix}:*`, count: 100 });
168
- let pipeline = ioredisInstance.pipeline();
169
- let localKeys = [];
170
- stream.on('data', (resultKeys) => {
171
- logger_1.default.info('Data Received:', localKeys.length);
172
- for (let i = 0; i < resultKeys.length; i++) {
173
- localKeys.push(resultKeys[i]);
174
- pipeline.del(resultKeys[i]);
161
+ let flushPattern = `acs:${prefix}:*`;
162
+ logger_1.default.debug(`Flushing cache with pattern ${flushPattern}`);
163
+ let scanIterator;
164
+ try {
165
+ scanIterator = redisInstance.scanIterator({ MATCH: flushPattern, COUNT: 100 });
166
+ for await (const key of scanIterator) {
167
+ await redisInstance.del(key);
175
168
  }
176
- if (localKeys.length > 100) {
177
- pipeline.exec(() => { logger_1.default.info('one batch delete complete'); });
178
- localKeys = [];
179
- pipeline = ioredisInstance.pipeline();
180
- }
181
- });
182
- stream.on('end', () => {
183
- pipeline.exec(() => { logger_1.default.info('final batch delete complete'); });
169
+ logger_1.default.debug(`Successfully flushed cache pattern ${flushPattern}`);
184
170
  return;
185
- });
186
- stream.on('error', (err) => {
187
- logger_1.default.error('error', err);
171
+ }
172
+ catch (err) {
173
+ logger_1.default.error('Error flushing ACS cache', { message: err.message });
188
174
  return;
189
- });
190
- return;
175
+ }
191
176
  }
192
177
  logger_1.default.debug('Flushing ACS cache');
193
- return new Promise((resolve, reject) => {
194
- redisInstance.flushdb((err, reply) => __awaiter(void 0, void 0, void 0, function* () {
195
- if (err) {
196
- logger_1.default.error('Failed flushing ACS cache: ', err);
197
- return reject();
198
- }
199
- if (reply) {
200
- logger_1.default.debug('Flushed ACS cache');
201
- return resolve(0);
202
- }
203
- }));
204
- });
205
- });
178
+ const reply = await redisInstance.flushDb();
179
+ if (reply) {
180
+ logger_1.default.debug('Flushed ACS cache');
181
+ }
182
+ };
206
183
  exports.flushCache = flushCache;
207
184
  /**
208
185
  * Enable / Disable ACS Caching
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/acs/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/acs/cache.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.acsClientMiddleware = void 0;
13
4
  const authz_1 = require("./authz");
@@ -16,10 +7,10 @@ const authz_1 = require("./authz");
16
7
  */
17
8
  const acsClientMiddleware = (config) => {
18
9
  (0, authz_1.initAuthZ)(config);
19
- return (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
10
+ return async (ctx, next) => {
20
11
  ctx.authZ = authz_1.authZ;
21
- yield next();
22
- });
12
+ await next();
13
+ };
23
14
  };
24
15
  exports.acsClientMiddleware = acsClientMiddleware;
25
16
  //# sourceMappingURL=middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/acs/middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA2C;AAE3C;;GAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,MAAY,EAAE,EAAE;IAClD,IAAA,iBAAS,EAAC,MAAM,CAAC,CAAC;IAElB,OAAO,CAAO,GAAQ,EAAE,IAAI,EAAE,EAAE;QAC9B,GAAG,CAAC,KAAK,GAAG,aAAK,CAAC;QAClB,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,mBAAmB,uBAO9B"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/acs/middleware.ts"],"names":[],"mappings":";;;AAAA,mCAA2C;AAE3C;;GAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,MAAY,EAAE,EAAE;IAClD,IAAA,iBAAS,EAAC,MAAM,CAAC,CAAC;IAElB,OAAO,KAAK,EAAE,GAAQ,EAAE,IAAI,EAAE,EAAE;QAC9B,GAAG,CAAC,KAAK,GAAG,aAAK,CAAC;QAClB,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,mBAAmB,uBAO9B"}
@@ -1,18 +1,31 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
23
  };
11
24
  Object.defineProperty(exports, "__esModule", { value: true });
12
25
  exports.whatIsAllowed = exports.isAllowed = exports.accessRequest = exports.isAllowedRequest = void 0;
13
- const _ = require("lodash");
26
+ const _ = __importStar(require("lodash"));
14
27
  const interfaces_1 = require("./interfaces");
15
- const logger_1 = require("../logger");
28
+ const logger_1 = __importDefault(require("../logger"));
16
29
  const config_1 = require("../config");
17
30
  const utils_1 = require("../utils");
18
31
  const grpc_client_1 = require("@restorecommerce/grpc-client");
@@ -21,12 +34,12 @@ const subjectIsUnauthenticated = (subject) => {
21
34
  return !!subject
22
35
  && 'unauthenticated' in subject && subject['unauthenticated'];
23
36
  };
24
- const whatIsAllowedRequest = (subject, resource, action, ctx, useCache) => __awaiter(void 0, void 0, void 0, function* () {
37
+ const whatIsAllowedRequest = async (subject, resource, action, ctx, useCache) => {
25
38
  if (subjectIsUnauthenticated(subject)) {
26
39
  const grpcConfig = config_1.cfg.get('client:acs-srv');
27
40
  const acsClient = new grpc_client_1.GrpcClient(grpcConfig, logger_1.default);
28
41
  const acs = acsClient['acs-srv'];
29
- return yield new authz_1.UnAuthZ(acs).whatIsAllowed({
42
+ return await new authz_1.UnAuthZ(acs).whatIsAllowed({
30
43
  target: {
31
44
  subject: subject, resource, action
32
45
  },
@@ -36,7 +49,7 @@ const whatIsAllowedRequest = (subject, resource, action, ctx, useCache) => __awa
36
49
  }, ctx, useCache);
37
50
  }
38
51
  else {
39
- return yield authz_1.authZ.whatIsAllowed({
52
+ return await authz_1.authZ.whatIsAllowed({
40
53
  context: {
41
54
  security: {}
42
55
  },
@@ -47,13 +60,13 @@ const whatIsAllowedRequest = (subject, resource, action, ctx, useCache) => __awa
47
60
  }
48
61
  }, ctx, useCache);
49
62
  }
50
- });
51
- const isAllowedRequest = (subject, resource, action, ctx, useCache) => __awaiter(void 0, void 0, void 0, function* () {
63
+ };
64
+ const isAllowedRequest = async (subject, resource, action, ctx, useCache) => {
52
65
  if (subjectIsUnauthenticated(subject)) {
53
66
  const grpcConfig = config_1.cfg.get('client:acs-srv');
54
67
  const acsClient = new grpc_client_1.GrpcClient(grpcConfig, logger_1.default);
55
68
  const acs = acsClient['acs-srv'];
56
- return yield new authz_1.UnAuthZ(acs).isAllowed({
69
+ return await new authz_1.UnAuthZ(acs).isAllowed({
57
70
  target: {
58
71
  subject: subject, resource, action
59
72
  },
@@ -63,7 +76,7 @@ const isAllowedRequest = (subject, resource, action, ctx, useCache) => __awaiter
63
76
  }, ctx, useCache);
64
77
  }
65
78
  else {
66
- return yield authz_1.authZ.isAllowed({
79
+ return await authz_1.authZ.isAllowed({
67
80
  context: {
68
81
  security: {}
69
82
  },
@@ -74,7 +87,7 @@ const isAllowedRequest = (subject, resource, action, ctx, useCache) => __awaiter
74
87
  }
75
88
  }, ctx, useCache);
76
89
  }
77
- });
90
+ };
78
91
  exports.isAllowedRequest = isAllowedRequest;
79
92
  /**
80
93
  * It turns an API request as can be found in typical Web frameworks like express, koa etc.
@@ -94,7 +107,7 @@ exports.isAllowedRequest = isAllowedRequest;
94
107
  * is not used and ACS request is made to `access-control-srv`
95
108
  * @returns {DecisionResponse | PolicySetRQResponse}
96
109
  */
97
- const accessRequest = (subject, resource, action, ctx, operation, database, useCache = true) => __awaiter(void 0, void 0, void 0, function* () {
110
+ const accessRequest = async (subject, resource, action, ctx, operation, database, useCache = true) => {
98
111
  // when subject is not passed (if auth header is not set)
99
112
  if (_.isEmpty(subject)) {
100
113
  subject = { unauthenticated: true };
@@ -164,7 +177,7 @@ const accessRequest = (subject, resource, action, ctx, operation, database, useC
164
177
  try {
165
178
  // retrieving set of applicable policies/rules from ACS
166
179
  // Note: it is assumed that there is only one policy set
167
- policySetResponse = yield whatIsAllowedRequest(subClone, resource, action, ctx, useCache);
180
+ policySetResponse = await whatIsAllowedRequest(subClone, resource, action, ctx, useCache);
168
181
  }
169
182
  catch (err) {
170
183
  logger_1.default.error('Error calling whatIsAllowed operation', { message: err.message });
@@ -187,7 +200,7 @@ const accessRequest = (subject, resource, action, ctx, operation, database, useC
187
200
  `config is disabled overriding the ACS result`);
188
201
  }
189
202
  // create filters to enforce applicable policies and custom query / args if applicable
190
- const resourceFilters = yield (0, utils_1.createResourceFilterMap)(resource, policySetResponse, ctx.resources, action, subClone, subjectID, authzEnforced, targetScope, database);
203
+ const resourceFilters = await (0, utils_1.createResourceFilterMap)(resource, policySetResponse, ctx.resources, action, subClone, subjectID, authzEnforced, targetScope, database);
191
204
  if (resourceFilters.decision) {
192
205
  return resourceFilters;
193
206
  }
@@ -214,7 +227,7 @@ const accessRequest = (subject, resource, action, ctx, operation, database, useC
214
227
  if (operation === interfaces_1.Operation.isAllowed) {
215
228
  // authorization
216
229
  try {
217
- decisionResponse = yield (0, exports.isAllowedRequest)(subClone, resource, action, ctx, useCache);
230
+ decisionResponse = await (0, exports.isAllowedRequest)(subClone, resource, action, ctx, useCache);
218
231
  }
219
232
  catch (err) {
220
233
  logger_1.default.error('Error calling isAllowed operation', { message: err.message });
@@ -250,7 +263,7 @@ const accessRequest = (subject, resource, action, ctx, operation, database, useC
250
263
  decisionResponse.decision = interfaces_1.Decision.PERMIT;
251
264
  }
252
265
  return decisionResponse;
253
- });
266
+ };
254
267
  exports.accessRequest = accessRequest;
255
268
  /**
256
269
  * Exposes the isAllowed() api of `access-control-srv` and retruns the response
@@ -259,10 +272,10 @@ exports.accessRequest = accessRequest;
259
272
  * @param {ACSContext} ctx Context Object containing requester's subject information
260
273
  * @return {Decision} PERMIT or DENY or INDETERMINATE
261
274
  */
262
- const isAllowed = (request, authZ) => __awaiter(void 0, void 0, void 0, function* () {
275
+ const isAllowed = async (request, authZ) => {
263
276
  let isAllowedResponse;
264
277
  try {
265
- isAllowedResponse = yield authZ.acs.isAllowed(request);
278
+ isAllowedResponse = await authZ.acs.isAllowed(request);
266
279
  if (isAllowedResponse && isAllowedResponse.obligation && isAllowedResponse.obligation.length > 0) {
267
280
  isAllowedResponse.obligation = (0, utils_1.mapResourceURNObligationProperties)(isAllowedResponse.obligation);
268
281
  }
@@ -273,7 +286,7 @@ const isAllowed = (request, authZ) => __awaiter(void 0, void 0, void 0, function
273
286
  return { decision: interfaces_1.Decision.DENY, operation_status: (0, utils_1.generateOperationStatus)(err.code, err.message) };
274
287
  }
275
288
  return isAllowedResponse;
276
- });
289
+ };
277
290
  exports.isAllowed = isAllowed;
278
291
  /**
279
292
  * Exposes the whatIsAllowed() api of `access-control-srv` and retruns the response
@@ -282,10 +295,10 @@ exports.isAllowed = isAllowed;
282
295
  * @param {ACSContext} ctx Context Object containing requester's subject information
283
296
  * @return {PolicySetRQ} set of applicalbe policies and rules for the input request
284
297
  */
285
- const whatIsAllowed = (request, authZ) => __awaiter(void 0, void 0, void 0, function* () {
298
+ const whatIsAllowed = async (request, authZ) => {
286
299
  let whatIsAllowedResponse;
287
300
  try {
288
- whatIsAllowedResponse = yield authZ.acs.whatIsAllowed(request);
301
+ whatIsAllowedResponse = await authZ.acs.whatIsAllowed(request);
289
302
  if (whatIsAllowedResponse && whatIsAllowedResponse.obligation && whatIsAllowedResponse.obligation.length > 0) {
290
303
  whatIsAllowedResponse.obligation = (0, utils_1.mapResourceURNObligationProperties)(whatIsAllowedResponse.obligation);
291
304
  }
@@ -296,6 +309,6 @@ const whatIsAllowed = (request, authZ) => __awaiter(void 0, void 0, void 0, func
296
309
  return { decision: interfaces_1.Decision.DENY, policy_sets: [], operation_status: (0, utils_1.generateOperationStatus)(err.code, err.message) };
297
310
  }
298
311
  return whatIsAllowedResponse;
299
- });
312
+ };
300
313
  exports.whatIsAllowed = whatIsAllowed;
301
314
  //# sourceMappingURL=resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/acs/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/acs/resolver.ts"],"names":[],"mappings":"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"}