@magda/typescript-common 1.2.1-alpha.0 → 2.0.0-alpha.0
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/dist/OpaCompileResponseParser.d.ts +147 -34
- package/dist/OpaCompileResponseParser.js +479 -293
- package/dist/OpaCompileResponseParser.js.map +1 -1
- package/dist/SQLUtils.d.ts +70 -0
- package/dist/SQLUtils.js +263 -0
- package/dist/SQLUtils.js.map +1 -0
- package/dist/ServerError.d.ts +9 -0
- package/dist/ServerError.js +17 -0
- package/dist/ServerError.js.map +1 -0
- package/dist/authorization-api/authMiddleware.d.ts +59 -1
- package/dist/authorization-api/authMiddleware.js +146 -3
- package/dist/authorization-api/authMiddleware.js.map +1 -1
- package/dist/authorization-api/constants.d.ts +5 -0
- package/dist/authorization-api/constants.js +13 -0
- package/dist/authorization-api/constants.js.map +1 -0
- package/dist/authorization-api/model.d.ts +1 -6
- package/dist/express/getNoCacheHeaders.d.ts +6 -0
- package/dist/express/getNoCacheHeaders.js +9 -0
- package/dist/express/getNoCacheHeaders.js.map +1 -0
- package/dist/express/setResponseNoCache.d.ts +3 -0
- package/dist/express/setResponseNoCache.js +9 -0
- package/dist/express/setResponseNoCache.js.map +1 -0
- package/dist/generated/registry/api.d.ts +36 -2
- package/dist/generated/registry/api.js +140 -2
- package/dist/generated/registry/api.js.map +1 -1
- package/dist/getAbsoluteUrl.d.ts +3 -2
- package/dist/getAbsoluteUrl.js +2 -1
- package/dist/getAbsoluteUrl.js.map +1 -1
- package/dist/opa/AspectQuery.d.ts +71 -0
- package/dist/opa/AspectQuery.js +216 -0
- package/dist/opa/AspectQuery.js.map +1 -0
- package/dist/opa/AuthDecision.d.ts +51 -0
- package/dist/opa/AuthDecision.js +241 -0
- package/dist/opa/AuthDecision.js.map +1 -0
- package/dist/opa/AuthDecisionQueryClient.d.ts +23 -0
- package/dist/opa/AuthDecisionQueryClient.js +110 -0
- package/dist/opa/AuthDecisionQueryClient.js.map +1 -0
- package/dist/pgTypes.d.ts +1 -0
- package/dist/pgTypes.js +18 -0
- package/dist/pgTypes.js.map +1 -0
- package/dist/registry/AuthorizedRegistryClient.d.ts +1 -0
- package/dist/registry/AuthorizedRegistryClient.js +17 -0
- package/dist/registry/AuthorizedRegistryClient.js.map +1 -1
- package/dist/registry/RegistryClient.d.ts +10 -0
- package/dist/registry/RegistryClient.js +32 -0
- package/dist/registry/RegistryClient.js.map +1 -1
- package/dist/test/getAuthDecision.spec.js +2 -2
- package/dist/test/getAuthDecision.spec.js.map +1 -1
- package/dist/test/sampleAuthDecisions/content.json +29 -0
- package/dist/test/sampleAuthDecisions/datasetPermissionWithOrgUnitConstraint.json +79 -0
- package/dist/test/sampleAuthDecisions/simple.json +29 -0
- package/dist/test/sampleAuthDecisions/singleTermAspectRef.json +39 -0
- package/dist/test/sampleAuthDecisions/unconditionalFalseSimple.json +6 -0
- package/dist/test/sampleAuthDecisions/unconditionalNotMacthed.json +6 -0
- package/dist/test/sampleAuthDecisions/unconditionalNotMacthedWithExtraRefs.json +6 -0
- package/dist/test/sampleAuthDecisions/unconditionalTrue.json +6 -0
- package/dist/test/sampleAuthDecisions/unconditionalTrueSimple.json +6 -0
- package/dist/test/sampleAuthDecisions/unconditionalTrueWithDefaultRule.json +6 -0
- package/dist/test/sampleAuthDecisions/withDefaultRule.json +6 -0
- package/dist/test/{sampleOpaResponse.json → sampleOpaResponses/content.json} +0 -0
- package/dist/test/sampleOpaResponses/datasetPermissionWithOrgUnitConstraint.json +341 -0
- package/dist/test/{sampleOpaResponseSimple.json → sampleOpaResponses/simple.json} +0 -0
- package/dist/test/sampleOpaResponses/singleTermAspectRef.json +233 -0
- package/dist/test/sampleOpaResponses/unconditionalFalseSimple.json +3 -0
- package/dist/test/sampleOpaResponses/unconditionalNotMacthed.json +73 -0
- package/dist/test/sampleOpaResponses/unconditionalNotMacthedWithExtraRefs.json +155 -0
- package/dist/test/{sampleOpaResponseUnconditionalTrue.json → sampleOpaResponses/unconditionalTrue.json} +0 -0
- package/dist/test/sampleOpaResponses/unconditionalTrueSimple.json +48 -0
- package/dist/test/{sampleOpaResponseUnconditionalTrueWithDefaultRule.json → sampleOpaResponses/unconditionalTrueWithDefaultRule.json} +0 -0
- package/dist/test/{sampleOpaResponseWithDefaultRule.json → sampleOpaResponses/withDefaultRule.json} +0 -0
- package/dist/test/testOpaCompileResponseParser.spec.js +195 -20
- package/dist/test/testOpaCompileResponseParser.spec.js.map +1 -1
- package/package.json +7 -3
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
"use strict";
|
|
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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.ConciseOperand = exports.ConciseExpression = exports.ConciseRule = exports.UnconditionalFalseDecision = exports.UnconditionalTrueDecision = exports.isTrueEquivalent = void 0;
|
|
23
|
+
const AspectQuery_1 = require("./AspectQuery");
|
|
24
|
+
const sql_syntax_1 = __importStar(require("sql-syntax"));
|
|
25
|
+
class AuthDecision {
|
|
26
|
+
constructor(hasResidualRules, residualRules, result, hasWarns = false, warns = [], unknowns) {
|
|
27
|
+
if (typeof hasResidualRules !== "boolean") {
|
|
28
|
+
throw new Error("Failed to create AuthDecision: invalid hasResidualRules type");
|
|
29
|
+
}
|
|
30
|
+
if (hasResidualRules && !(residualRules === null || residualRules === void 0 ? void 0 : residualRules.length)) {
|
|
31
|
+
throw new Error("Failed to create AuthDecision: residualRules must have at least one item when hasResidualRules == true");
|
|
32
|
+
}
|
|
33
|
+
this.hasResidualRules = hasResidualRules;
|
|
34
|
+
this.result = result;
|
|
35
|
+
this.residualRules = residualRules;
|
|
36
|
+
this.hasWarns = hasWarns;
|
|
37
|
+
this.warns = warns;
|
|
38
|
+
this.unknowns = unknowns;
|
|
39
|
+
}
|
|
40
|
+
static fromJson(data) {
|
|
41
|
+
var _a;
|
|
42
|
+
return new AuthDecision(data === null || data === void 0 ? void 0 : data.hasResidualRules, (_a = data === null || data === void 0 ? void 0 : data.residualRules) === null || _a === void 0 ? void 0 : _a.map((item) => ConciseRule.fromJson(item)), data === null || data === void 0 ? void 0 : data.result, (data === null || data === void 0 ? void 0 : data.hasWarns) ? true : false, data === null || data === void 0 ? void 0 : data.warns, data === null || data === void 0 ? void 0 : data.unknowns);
|
|
43
|
+
}
|
|
44
|
+
toAspectQueryGroups(prefixes) {
|
|
45
|
+
if (this.hasResidualRules) {
|
|
46
|
+
return this.residualRules.map((item) => item.toAspectQueryGroup(prefixes));
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
if (isTrueEquivalent(this.result)) {
|
|
50
|
+
// unconditional true
|
|
51
|
+
return [new AspectQuery_1.AspectQueryGroup([new AspectQuery_1.AspectQueryTrue()])];
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return [new AspectQuery_1.AspectQueryGroup([new AspectQuery_1.AspectQueryFalse()])];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
toSql(config) {
|
|
59
|
+
return sql_syntax_1.default.joinWithOr(this.toAspectQueryGroups(config.prefixes).map((item) => item.toSql(config)));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.default = AuthDecision;
|
|
63
|
+
function isTrueEquivalent(value) {
|
|
64
|
+
const typeStr = typeof value;
|
|
65
|
+
if (typeStr === "boolean") {
|
|
66
|
+
return value;
|
|
67
|
+
}
|
|
68
|
+
else if (typeStr === "undefined") {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
else if (typeof (value === null || value === void 0 ? void 0 : value.length) !== "undefined") {
|
|
72
|
+
return !!value.length;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
return !!value;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.isTrueEquivalent = isTrueEquivalent;
|
|
79
|
+
exports.UnconditionalTrueDecision = new AuthDecision(false, undefined, true);
|
|
80
|
+
exports.UnconditionalFalseDecision = new AuthDecision(false, undefined, false);
|
|
81
|
+
class ConciseRule {
|
|
82
|
+
constructor(fullName, name, value, expressions, isDefault = false) {
|
|
83
|
+
if (!isDefault && !(expressions === null || expressions === void 0 ? void 0 : expressions.length)) {
|
|
84
|
+
throw new Error("Invalid ConciseRule data: it must contain at least one ConciseExpression item unless it's a default rule.");
|
|
85
|
+
}
|
|
86
|
+
this.default = isDefault ? true : false;
|
|
87
|
+
this.fullName = fullName;
|
|
88
|
+
this.name = name;
|
|
89
|
+
this.value = value;
|
|
90
|
+
this.expressions = (expressions === null || expressions === void 0 ? void 0 : expressions.length) ? expressions : [];
|
|
91
|
+
}
|
|
92
|
+
static fromJson(data) {
|
|
93
|
+
var _a;
|
|
94
|
+
return new ConciseRule(data === null || data === void 0 ? void 0 : data.fullName, data === null || data === void 0 ? void 0 : data.name, data === null || data === void 0 ? void 0 : data.value, (_a = data === null || data === void 0 ? void 0 : data.expressions) === null || _a === void 0 ? void 0 : _a.map((item) => ConciseExpression.fromJson(item)));
|
|
95
|
+
}
|
|
96
|
+
toAspectQueryGroup(prefixes) {
|
|
97
|
+
var _a;
|
|
98
|
+
return new AspectQuery_1.AspectQueryGroup((_a = this.expressions) === null || _a === void 0 ? void 0 : _a.map((item) => item.toAspectQuery(prefixes)), true, !isTrueEquivalent(this.value));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.ConciseRule = ConciseRule;
|
|
102
|
+
class ConciseExpression {
|
|
103
|
+
constructor(operands, operator, negated = false) {
|
|
104
|
+
var _a, _b;
|
|
105
|
+
this.negated = negated ? true : false;
|
|
106
|
+
this.operands = operands;
|
|
107
|
+
this.operator = operator;
|
|
108
|
+
if (!((_a = this.operands) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
109
|
+
throw new Error("invalid ConciseExpression data: it must have at least one operand.");
|
|
110
|
+
}
|
|
111
|
+
if (((_b = this.operands) === null || _b === void 0 ? void 0 : _b.length) > 1 && typeof operator !== "string") {
|
|
112
|
+
throw new Error("invalid ConciseExpression data: when operands number > 1, operator must be a valid string value.");
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
static fromJson(data) {
|
|
116
|
+
var _a;
|
|
117
|
+
return new ConciseExpression((_a = data === null || data === void 0 ? void 0 : data.operands) === null || _a === void 0 ? void 0 : _a.map((item) => ConciseOperand.fromJson(item)), data === null || data === void 0 ? void 0 : data.operator, data === null || data === void 0 ? void 0 : data.negated);
|
|
118
|
+
}
|
|
119
|
+
getSqlOperator() {
|
|
120
|
+
switch (this.operator) {
|
|
121
|
+
case "=":
|
|
122
|
+
return sql_syntax_1.sqls `=`;
|
|
123
|
+
case ">":
|
|
124
|
+
return sql_syntax_1.sqls `>`;
|
|
125
|
+
case "<":
|
|
126
|
+
return sql_syntax_1.sqls `<`;
|
|
127
|
+
case ">=":
|
|
128
|
+
return sql_syntax_1.sqls `>=`;
|
|
129
|
+
case "<=":
|
|
130
|
+
return sql_syntax_1.sqls `<=`;
|
|
131
|
+
default:
|
|
132
|
+
throw new Error(`Failed to convert auth decision operator to SQL operator: unsupported operator: ${this.operator}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
toAspectQuery(prefixes) {
|
|
136
|
+
var _a, _b;
|
|
137
|
+
if (((_a = this.operands) === null || _a === void 0 ? void 0 : _a.length) == 1) {
|
|
138
|
+
const [aspectId, path, isCollection] = this.operands[0].extractAspectIdAndPath(prefixes);
|
|
139
|
+
if (isCollection) {
|
|
140
|
+
return new AspectQuery_1.AspectQueryArrayNotEmpty(aspectId, path, this.negated);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
return new AspectQuery_1.AspectQueryExists(aspectId, path, this.negated);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
else if (((_b = this.operands) === null || _b === void 0 ? void 0 : _b.length) == 2) {
|
|
147
|
+
const refOperand = this.operands.find((item) => item.isRef);
|
|
148
|
+
const valOperand = this.operands.find((item) => !item.isRef);
|
|
149
|
+
if (!valOperand) {
|
|
150
|
+
throw new Error("Failed to convert auth decision expression to AspectQuery: " +
|
|
151
|
+
`expression with both terms are references is currently not supported. Expression: ${this}`);
|
|
152
|
+
}
|
|
153
|
+
if (!refOperand) {
|
|
154
|
+
// it's unlikely both terms are values as our decision API has already done the evaluation for this case.
|
|
155
|
+
throw new Error("Failed to convert auth decision expression to AspectQuery: " +
|
|
156
|
+
`Terms shouldn't be both value. Expression: ${this}`);
|
|
157
|
+
}
|
|
158
|
+
const [aspectId, path, isCollection] = refOperand.extractAspectIdAndPath(prefixes);
|
|
159
|
+
if (isCollection && this.operator != "=") {
|
|
160
|
+
throw new Error("Failed to convert auth decision expression to AspectQuery: " +
|
|
161
|
+
`Only \`=\` operator is supported for collection reference. Expression: ${this}`);
|
|
162
|
+
}
|
|
163
|
+
if (isCollection && this.operator == "=") {
|
|
164
|
+
return new AspectQuery_1.AspectQueryValueInArray(valOperand.toAspectQueryValue(), aspectId, path, this.negated);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
return new AspectQuery_1.AspectQueryWithValue(valOperand.toAspectQueryValue(), this.getSqlOperator(), this.operands[0].isRef, aspectId, path, this.negated);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
throw new Error(`Failed to convert auth decision expression to AspectQuery: more than 2 operands found. Expression: ${this}`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
exports.ConciseExpression = ConciseExpression;
|
|
176
|
+
class ConciseOperand {
|
|
177
|
+
constructor(isRef, value) {
|
|
178
|
+
if (typeof isRef !== "boolean") {
|
|
179
|
+
throw new Error("Invalid ConciseOperand data: isRef must be a boolean value.");
|
|
180
|
+
}
|
|
181
|
+
this.isRef = isRef;
|
|
182
|
+
if (isRef && typeof value !== "string") {
|
|
183
|
+
throw new Error("Invalid ConciseOperand data: when `isRef`== true, `value` must be a string value (ref string).");
|
|
184
|
+
}
|
|
185
|
+
this.value = value;
|
|
186
|
+
}
|
|
187
|
+
static fromJson(data) {
|
|
188
|
+
return new ConciseOperand(data === null || data === void 0 ? void 0 : data.isRef, data === null || data === void 0 ? void 0 : data.value);
|
|
189
|
+
}
|
|
190
|
+
refString() {
|
|
191
|
+
if (!this.isRef) {
|
|
192
|
+
throw new Error("Cannot convert non-ref term to a ref string");
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
if (typeof this.value === "string") {
|
|
196
|
+
return this.value;
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
throw new Error(`ref term has non-string type value: ${this.value}`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
isCollectionRef() {
|
|
204
|
+
return this.refString().endsWith("[_]");
|
|
205
|
+
}
|
|
206
|
+
refStringWithoutPrefixes(prefixes) {
|
|
207
|
+
const sortedPrefixes = prefixes.sort((a, b) => b.length - a.length);
|
|
208
|
+
return sortedPrefixes.reduce((ref, prefix) => {
|
|
209
|
+
if (ref.startsWith(prefix)) {
|
|
210
|
+
return ref.substring(prefix.length);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
return ref;
|
|
214
|
+
}
|
|
215
|
+
}, this.refString());
|
|
216
|
+
}
|
|
217
|
+
extractAspectIdAndPath(prefixes) {
|
|
218
|
+
// make it work for both "input.object.record" & "input.object.record." prefixe input
|
|
219
|
+
// we remove the first leading `.` char (if any)
|
|
220
|
+
let ref = this.refStringWithoutPrefixes(prefixes).replace(/^\./, "");
|
|
221
|
+
const isCollection = this.isCollectionRef();
|
|
222
|
+
if (isCollection) {
|
|
223
|
+
ref = ref.replace(/\[_\]$/, "");
|
|
224
|
+
}
|
|
225
|
+
const parts = ref.split(".").filter((item) => item);
|
|
226
|
+
if (parts.length < 2) {
|
|
227
|
+
return [ref, [], isCollection];
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
return [parts[0], parts.slice(1, parts.length), isCollection];
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
toAspectQueryValue() {
|
|
234
|
+
if (this.isRef) {
|
|
235
|
+
throw new Error(`Attempt to covert reference \`Operand\` to \`AspectQueryValue\`: ${this}`);
|
|
236
|
+
}
|
|
237
|
+
return new AspectQuery_1.AspectQueryValue(this.value);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
exports.ConciseOperand = ConciseOperand;
|
|
241
|
+
//# sourceMappingURL=AuthDecision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthDecision.js","sourceRoot":"","sources":["../../src/opa/AuthDecision.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import AuthDecision from "./AuthDecision";
|
|
2
|
+
export declare type AuthDecisionReqConfig = {
|
|
3
|
+
operationUri: string;
|
|
4
|
+
resourceUri?: string;
|
|
5
|
+
unknowns?: string[];
|
|
6
|
+
rawAst?: boolean;
|
|
7
|
+
explain?: string;
|
|
8
|
+
pretty?: boolean;
|
|
9
|
+
humanReadable?: boolean;
|
|
10
|
+
concise?: boolean;
|
|
11
|
+
input?: {
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
declare class AuthDecisionQueryClient {
|
|
16
|
+
private readonly authApiBaseUrl;
|
|
17
|
+
readonly skipQuery: boolean;
|
|
18
|
+
static fetchOptions: RequestInit;
|
|
19
|
+
fetchOptions: RequestInit;
|
|
20
|
+
constructor(authApiBaseUrl: string, skipQuery?: boolean);
|
|
21
|
+
getAuthDecision(config: AuthDecisionReqConfig, jwtToken?: string): Promise<AuthDecision>;
|
|
22
|
+
}
|
|
23
|
+
export default AuthDecisionQueryClient;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
31
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
32
|
+
};
|
|
33
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
+
const isomorphic_fetch_1 = __importDefault(require("isomorphic-fetch"));
|
|
35
|
+
const urijs_1 = __importDefault(require("urijs"));
|
|
36
|
+
const AuthDecision_1 = __importStar(require("./AuthDecision"));
|
|
37
|
+
class AuthDecisionQueryClient {
|
|
38
|
+
constructor(authApiBaseUrl, skipQuery = false) {
|
|
39
|
+
this.authApiBaseUrl = "";
|
|
40
|
+
this.fetchOptions = {};
|
|
41
|
+
this.authApiBaseUrl = authApiBaseUrl;
|
|
42
|
+
this.skipQuery = skipQuery;
|
|
43
|
+
}
|
|
44
|
+
getAuthDecision(config, jwtToken) {
|
|
45
|
+
var _a, _b;
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
if (this.skipQuery) {
|
|
48
|
+
console.warn("WARNING: Skip OPA (policy engine) querying option is turned on! This is fine for testing or playing around, but this should NOT BE TURNED ON FOR PRODUCTION!");
|
|
49
|
+
return AuthDecision_1.UnconditionalTrueDecision;
|
|
50
|
+
}
|
|
51
|
+
const queryParams = {};
|
|
52
|
+
if (config === null || config === void 0 ? void 0 : config.rawAst) {
|
|
53
|
+
queryParams.rawAst = config.rawAst;
|
|
54
|
+
}
|
|
55
|
+
if (config === null || config === void 0 ? void 0 : config.concise) {
|
|
56
|
+
queryParams.concise = config.concise;
|
|
57
|
+
}
|
|
58
|
+
if (config === null || config === void 0 ? void 0 : config.explain) {
|
|
59
|
+
queryParams.explain = config.explain;
|
|
60
|
+
}
|
|
61
|
+
if (config === null || config === void 0 ? void 0 : config.pretty) {
|
|
62
|
+
queryParams.pretty = config.pretty;
|
|
63
|
+
}
|
|
64
|
+
if (config === null || config === void 0 ? void 0 : config.humanReadable) {
|
|
65
|
+
queryParams.humanReadable = config.humanReadable;
|
|
66
|
+
}
|
|
67
|
+
if ((config === null || config === void 0 ? void 0 : config.unknowns) && !config.unknowns.length) {
|
|
68
|
+
queryParams.unknowns = "";
|
|
69
|
+
}
|
|
70
|
+
const usePost = (config === null || config === void 0 ? void 0 : config.input) || ((_a = config === null || config === void 0 ? void 0 : config.unknowns) === null || _a === void 0 ? void 0 : _a.length) || (config === null || config === void 0 ? void 0 : config.resourceUri);
|
|
71
|
+
const baseUri = urijs_1.default(this.authApiBaseUrl);
|
|
72
|
+
const urlSegments = baseUri
|
|
73
|
+
.segmentCoded()
|
|
74
|
+
.concat(["opa", "decision"])
|
|
75
|
+
.concat(urijs_1.default(config.operationUri).segmentCoded());
|
|
76
|
+
const reqUri = baseUri.segmentCoded(urlSegments).search(queryParams);
|
|
77
|
+
const fetchConfig = Object.assign(Object.assign(Object.assign({}, AuthDecisionQueryClient.fetchOptions), this.fetchOptions), { method: usePost ? "POST" : "GET" });
|
|
78
|
+
if (jwtToken) {
|
|
79
|
+
fetchConfig.headers = {
|
|
80
|
+
"X-Magda-Session": jwtToken
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const requestData = {};
|
|
84
|
+
if (config === null || config === void 0 ? void 0 : config.input) {
|
|
85
|
+
requestData.input = config.input;
|
|
86
|
+
}
|
|
87
|
+
if ((_b = config === null || config === void 0 ? void 0 : config.unknowns) === null || _b === void 0 ? void 0 : _b.length) {
|
|
88
|
+
requestData.unknowns = config.unknowns;
|
|
89
|
+
}
|
|
90
|
+
if (config === null || config === void 0 ? void 0 : config.resourceUri) {
|
|
91
|
+
requestData.resourceUri = config.resourceUri;
|
|
92
|
+
}
|
|
93
|
+
if (usePost) {
|
|
94
|
+
fetchConfig.body = JSON.stringify(requestData);
|
|
95
|
+
}
|
|
96
|
+
const res = yield isomorphic_fetch_1.default(reqUri.toString(), fetchConfig);
|
|
97
|
+
if (res.status != 200) {
|
|
98
|
+
const bodyText = yield res.text();
|
|
99
|
+
const errorMsg = `Failed to retrieve auth decision for operation \`${config.operationUri}\` from policy engine: ${bodyText}`;
|
|
100
|
+
console.error(errorMsg);
|
|
101
|
+
throw new Error(errorMsg);
|
|
102
|
+
}
|
|
103
|
+
const data = yield res.json();
|
|
104
|
+
return AuthDecision_1.default.fromJson(data);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
AuthDecisionQueryClient.fetchOptions = {};
|
|
109
|
+
exports.default = AuthDecisionQueryClient;
|
|
110
|
+
//# sourceMappingURL=AuthDecisionQueryClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthDecisionQueryClient.js","sourceRoot":"","sources":["../../src/opa/AuthDecisionQueryClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/pgTypes.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const pg_1 = __importDefault(require("pg"));
|
|
7
|
+
// int8ToNumber
|
|
8
|
+
pg_1.default.types.setTypeParser(20, (v) => parseInt(v, 10));
|
|
9
|
+
// 1016 = Type Id for arrays of BigInt values
|
|
10
|
+
const parseBigIntArray = pg_1.default.types.getTypeParser(1016, "text");
|
|
11
|
+
pg_1.default.types.setTypeParser(1016, (v) => {
|
|
12
|
+
const defaultParsedVal = parseBigIntArray(v);
|
|
13
|
+
if (!defaultParsedVal) {
|
|
14
|
+
return defaultParsedVal;
|
|
15
|
+
}
|
|
16
|
+
return defaultParsedVal.map((v) => parseInt(v, 10));
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=pgTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pgTypes.js","sourceRoot":"","sources":["../src/pgTypes.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AAEpB,eAAe;AACf,YAAE,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnD,6CAA6C;AAC7C,MAAM,gBAAgB,GAAG,YAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9D,YAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;IAC/B,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,gBAAgB,EAAE;QACnB,OAAO,gBAAgB,CAAC;KAC3B;IACD,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC"}
|
|
@@ -15,6 +15,7 @@ export declare type AuthorizedRegistryOptions = AuthorizedRegistryUserIdAndJwtSe
|
|
|
15
15
|
export default class AuthorizedRegistryClient extends RegistryClient {
|
|
16
16
|
protected jwt: string;
|
|
17
17
|
constructor(options: AuthorizedRegistryOptions);
|
|
18
|
+
getAspectDefinition(aspectId: string): Promise<AspectDefinition>;
|
|
18
19
|
putAspectDefinition(aspectDefinition: AspectDefinition, tenantId?: number): Promise<AspectDefinition | Error>;
|
|
19
20
|
postHook(hook: WebHook): Promise<WebHook | Error>;
|
|
20
21
|
putHook(hook: WebHook): Promise<WebHook | Error>;
|
|
@@ -1,4 +1,13 @@
|
|
|
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
|
+
};
|
|
2
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
13
|
};
|
|
@@ -24,6 +33,14 @@ class AuthorizedRegistryClient extends RegistryClient_1.default {
|
|
|
24
33
|
? options.jwt
|
|
25
34
|
: buildJwt_1.default(options.jwtSecret, options.userId);
|
|
26
35
|
}
|
|
36
|
+
getAspectDefinition(aspectId) {
|
|
37
|
+
const _super = Object.create(null, {
|
|
38
|
+
getAspectDefinition: { get: () => super.getAspectDefinition }
|
|
39
|
+
});
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
return yield _super.getAspectDefinition.call(this, aspectId, this.jwt);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
27
44
|
putAspectDefinition(aspectDefinition, tenantId = this.tenantId) {
|
|
28
45
|
const operation = () => this.aspectDefinitionsApi.putById(tenantId, encodeURIComponent(aspectDefinition.id), aspectDefinition, this.jwt);
|
|
29
46
|
return retry_1.default(operation, this.secondsBetweenRetries, this.maxRetries, (e, retriesLeft) => console.log(formatServiceError_1.default(`Failed to create aspect definition "${aspectDefinition.id}".`, e, retriesLeft)))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizedRegistryClient.js","sourceRoot":"","sources":["../../src/registry/AuthorizedRegistryClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthorizedRegistryClient.js","sourceRoot":"","sources":["../../src/registry/AuthorizedRegistryClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { AspectDefinition, AspectDefinitionsApi, Record, RecordsApi, RecordAspectsApi, WebHooksApi, RecordHistoryApi } from "../generated/registry/api";
|
|
2
2
|
import URI from "urijs";
|
|
3
|
+
import { Response } from "request";
|
|
4
|
+
import ServerError from "../ServerError";
|
|
3
5
|
export interface RegistryOptions {
|
|
4
6
|
baseUrl: string;
|
|
5
7
|
maxRetries?: number;
|
|
@@ -28,8 +30,16 @@ export default class RegistryClient {
|
|
|
28
30
|
protected tenantId: number;
|
|
29
31
|
protected jwt: string | undefined;
|
|
30
32
|
constructor({ baseUrl, maxRetries, secondsBetweenRetries, tenantId }: RegistryOptions);
|
|
33
|
+
toServerError(error: {
|
|
34
|
+
body: any;
|
|
35
|
+
response: Response;
|
|
36
|
+
}): ServerError | {
|
|
37
|
+
body: any;
|
|
38
|
+
response: Response;
|
|
39
|
+
};
|
|
31
40
|
getRecordUrl(id: string): string;
|
|
32
41
|
getAspectDefinitions(): Promise<AspectDefinition[] | Error>;
|
|
42
|
+
getAspectDefinition(aspectId: string, jwtToken?: string): Promise<AspectDefinition>;
|
|
33
43
|
getRecord(id: string, aspect?: Array<string>, optionalAspect?: Array<string>, dereference?: boolean): Promise<Record | Error>;
|
|
34
44
|
getRecords<I extends Record>(aspect?: Array<string>, optionalAspect?: Array<string>, pageToken?: string, dereference?: boolean, limit?: number, aspectQueries?: string[], aspectOrQuery?: string[], orderBy?: string, orderByDir?: string, orderNullFirst?: boolean): Promise<RecordsPage<I> | Error>;
|
|
35
45
|
getRecordsPageTokens(aspect?: Array<string>, limit?: number): Promise<string[] | Error>;
|
|
@@ -1,4 +1,13 @@
|
|
|
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
|
+
};
|
|
2
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
13
|
};
|
|
@@ -8,6 +17,7 @@ const urijs_1 = __importDefault(require("urijs"));
|
|
|
8
17
|
const retry_1 = __importDefault(require("../retry"));
|
|
9
18
|
const formatServiceError_1 = __importDefault(require("../formatServiceError"));
|
|
10
19
|
const createServiceError_1 = __importDefault(require("../createServiceError"));
|
|
20
|
+
const ServerError_1 = __importDefault(require("../ServerError"));
|
|
11
21
|
class RegistryClient {
|
|
12
22
|
constructor({ baseUrl, maxRetries = 10, secondsBetweenRetries = 10, tenantId }) {
|
|
13
23
|
if (tenantId === undefined) {
|
|
@@ -25,6 +35,14 @@ class RegistryClient {
|
|
|
25
35
|
this.webHooksApi = new api_1.WebHooksApi(registryApiUrl);
|
|
26
36
|
this.recordHistoryApi = new api_1.RecordHistoryApi(registryApiUrl);
|
|
27
37
|
}
|
|
38
|
+
toServerError(error) {
|
|
39
|
+
if (error === null || error === void 0 ? void 0 : error.response) {
|
|
40
|
+
return new ServerError_1.default(error.body, error.response.statusCode);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return error;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
28
46
|
getRecordUrl(id) {
|
|
29
47
|
return this.baseUri.clone().segment("records").segment(id).toString();
|
|
30
48
|
}
|
|
@@ -34,6 +52,20 @@ class RegistryClient {
|
|
|
34
52
|
.then((result) => result.body)
|
|
35
53
|
.catch(createServiceError_1.default);
|
|
36
54
|
}
|
|
55
|
+
getAspectDefinition(aspectId, jwtToken) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
try {
|
|
58
|
+
const res = yield this.aspectDefinitionsApi.getById(this.tenantId, aspectId, jwtToken);
|
|
59
|
+
if (typeof res.body === "string") {
|
|
60
|
+
throw new Error("Invalid non-json response: " + res.body);
|
|
61
|
+
}
|
|
62
|
+
return res.body;
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
throw this.toServerError(e);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
37
69
|
getRecord(id, aspect, optionalAspect, dereference) {
|
|
38
70
|
const operation = (id) => () => this.recordsApi.getById(encodeURIComponent(id), this.tenantId, aspect, optionalAspect, dereference, this.jwt);
|
|
39
71
|
return retry_1.default(operation(id), this.secondsBetweenRetries, this.maxRetries, (e, retriesLeft) => console.log(formatServiceError_1.default("Failed to GET records.", e, retriesLeft)), (e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistryClient.js","sourceRoot":"","sources":["../../src/registry/RegistryClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RegistryClient.js","sourceRoot":"","sources":["../../src/registry/RegistryClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,mDAQmC;AACnC,kDAAwB;AACxB,qDAA6B;AAC7B,+EAAuD;AACvD,+EAAuD;AAEvD,iEAAyC;AAqBzC,MAAqB,cAAc;IAY/B,YAAY,EACR,OAAO,EACP,UAAU,GAAG,EAAE,EACf,qBAAqB,GAAG,EAAE,EAC1B,QAAQ,EACM;QACd,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC;SAC/C;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,MAAM,cAAc,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,eAAG,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QAEnD,IAAI,CAAC,oBAAoB,GAAG,IAAI,0BAAoB,CAAC,cAAc,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAU,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,iDAAiD;QACxF,IAAI,CAAC,gBAAgB,GAAG,IAAI,sBAAgB,CAAC,cAAc,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAW,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,GAAG,IAAI,sBAAgB,CAAC,cAAc,CAAC,CAAC;IACjE,CAAC;IAED,aAAa,CAAC,KAAwC;QAClD,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE;YACjB,OAAO,IAAI,qBAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SACjE;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED,YAAY,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1E,CAAC;IAED,oBAAoB;QAChB,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CACzB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpD,OAAY,eAAK,CACb,SAAS,EAAE,EACX,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,UAAU,EACf,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CACf,OAAO,CAAC,GAAG,CACP,4BAAkB,CACd,mCAAmC,EACnC,CAAC,EACD,WAAW,CACd,CACJ,CACR;aACI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;aAC7B,KAAK,CAAC,4BAAkB,CAAC,CAAC;IACnC,CAAC;IAEK,mBAAmB,CACrB,QAAgB,EAChB,QAAiB;;YAEjB,IAAI;gBACA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAC/C,IAAI,CAAC,QAAQ,EACb,QAAQ,EACR,QAAQ,CACX,CAAC;gBACF,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;oBAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;iBAC7D;gBACD,OAAO,GAAG,CAAC,IAAI,CAAC;aACnB;YAAC,OAAO,CAAC,EAAE;gBACR,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC/B;QACL,CAAC;KAAA;IAED,SAAS,CACL,EAAU,EACV,MAAsB,EACtB,cAA8B,EAC9B,WAAqB;QAErB,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,EAAE,CACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CACnB,kBAAkB,CAAC,EAAE,CAAC,EACtB,IAAI,CAAC,QAAQ,EACb,MAAM,EACN,cAAc,EACd,WAAW,EACX,IAAI,CAAC,GAAG,CACX,CAAC;QACN,OAAY,eAAK,CACb,SAAS,CAAC,EAAE,CAAC,EACb,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,UAAU,EACf,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CACf,OAAO,CAAC,GAAG,CACP,4BAAkB,CAAC,wBAAwB,EAAE,CAAC,EAAE,WAAW,CAAC,CAC/D,EACL,CAAC,CAAC,EAAE,EAAE;YACF,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,KAAK,GAAG,CAAC;QACxD,CAAC,CACJ;aACI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;aAC7B,KAAK,CAAC,4BAAkB,CAAC,CAAC;IACnC,CAAC;IAED,UAAU,CACN,MAAsB,EACtB,cAA8B,EAC9B,SAAkB,EAClB,WAAqB,EACrB,KAAc,EACd,aAAwB,EACxB,aAAwB,EACxB,OAAgB,EAChB,UAAmB,EACnB,cAAwB;QAExB,MAAM,SAAS,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,GAAG,EAAE,CAC1C,IAAI,CAAC,UAAU,CAAC,MAAM,CAClB,IAAI,CAAC,QAAQ,EACb,MAAM,EACN,cAAc,EACd,SAAS,EACT,SAAS,EACT,KAAK,EACL,WAAW,EACX,aAAa,EACb,aAAa,EACb,OAAO,EACP,UAAU,EACV,cAAc,EACd,IAAI,CAAC,GAAG,CACX,CAAC;QACN,OAAY,eAAK,CACb,SAAS,CAAC,SAAS,CAAC,EACpB,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,UAAU,EACf,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CACf,OAAO,CAAC,GAAG,CACP,4BAAkB,CAAC,wBAAwB,EAAE,CAAC,EAAE,WAAW,CAAC,CAC/D,CACR;aACI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;aAC7B,KAAK,CAAC,4BAAkB,CAAC,CAAC;IACnC,CAAC;IAED,oBAAoB,CAChB,MAAsB,EACtB,KAAc;QAEd,MAAM,SAAS,GAAG,GAAG,EAAE,CACnB,IAAI,CAAC,UAAU,CAAC,aAAa,CACzB,IAAI,CAAC,QAAQ,EACb,MAAM,EACN,KAAK,EACL,IAAI,CAAC,GAAG,CACX,CAAC;QACN,OAAY,eAAK,CACb,SAAS,EACT,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,UAAU,EACf,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CACf,OAAO,CAAC,GAAG,CACP,4BAAkB,CACd,oCAAoC,EACpC,CAAC,EACD,WAAW,CACd,CACJ,CACR;aACI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;aAC7B,KAAK,CAAC,4BAAkB,CAAC,CAAC;IACnC,CAAC;CACJ;AA1LD,iCA0LC"}
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const chai_1 = require("chai");
|
|
7
7
|
const getAuthDecision_1 = __importDefault(require("../opa/getAuthDecision"));
|
|
8
|
-
const
|
|
8
|
+
const unconditionalTrue_json_1 = __importDefault(require("./sampleOpaResponses/unconditionalTrue.json"));
|
|
9
9
|
require("mocha");
|
|
10
10
|
/*
|
|
11
11
|
getAuthDecision only support limited use case of OPA response AST.
|
|
@@ -15,7 +15,7 @@ require("mocha");
|
|
|
15
15
|
*/
|
|
16
16
|
describe("Test OpaCompileResultParser with unconditional true response", function () {
|
|
17
17
|
it("Should evalute query from parse result correctly", function () {
|
|
18
|
-
const result = getAuthDecision_1.default(
|
|
18
|
+
const result = getAuthDecision_1.default(unconditionalTrue_json_1.default);
|
|
19
19
|
chai_1.expect(result).to.be.equal(true);
|
|
20
20
|
});
|
|
21
21
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAuthDecision.spec.js","sourceRoot":"","sources":["../../src/test/getAuthDecision.spec.ts"],"names":[],"mappings":";;;;;AAAA,+BAA8B;AAC9B,6EAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"getAuthDecision.spec.js","sourceRoot":"","sources":["../../src/test/getAuthDecision.spec.ts"],"names":[],"mappings":";;;;;AAAA,+BAA8B;AAC9B,6EAAqD;AACrD,yGAAoF;AACpF,iBAAe;AAEf;;;;;EAKE;AACF,QAAQ,CAAC,8DAA8D,EAAE;IACrE,EAAE,CAAC,kDAAkD,EAAE;QACnD,MAAM,MAAM,GAAG,yBAAe,CAAC,gCAAgC,CAAC,CAAC;QACjE,aAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|