unleash-server 4.8.2 → 4.9.0-beta.2
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/lib/create-config.js +24 -20
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/create-config.test.js +86 -4
- package/dist/lib/create-config.test.js.map +1 -1
- package/dist/lib/db/access-store.d.ts +1 -0
- package/dist/lib/db/access-store.js +8 -0
- package/dist/lib/db/access-store.js.map +1 -1
- package/dist/lib/error/project-without-owner-error.d.ts +4 -0
- package/dist/lib/error/project-without-owner-error.js +25 -0
- package/dist/lib/error/project-without-owner-error.js.map +1 -0
- package/dist/lib/routes/admin-api/project/features.d.ts +1 -0
- package/dist/lib/routes/admin-api/project/features.js +6 -0
- package/dist/lib/routes/admin-api/project/features.js.map +1 -1
- package/dist/lib/routes/util.js +2 -0
- package/dist/lib/routes/util.js.map +1 -1
- package/dist/lib/schema/constraint-value-types.d.ts +4 -0
- package/dist/lib/schema/constraint-value-types.js +11 -0
- package/dist/lib/schema/constraint-value-types.js.map +1 -0
- package/dist/lib/schema/constraint-value-types.test.d.ts +1 -0
- package/dist/lib/schema/constraint-value-types.test.js +64 -0
- package/dist/lib/schema/constraint-value-types.test.js.map +1 -0
- package/dist/lib/schema/feature-schema.js +5 -1
- package/dist/lib/schema/feature-schema.js.map +1 -1
- package/dist/lib/schema/feature-schema.test.js +14 -0
- package/dist/lib/schema/feature-schema.test.js.map +1 -1
- package/dist/lib/services/access-service.d.ts +1 -0
- package/dist/lib/services/access-service.js +3 -0
- package/dist/lib/services/access-service.js.map +1 -1
- package/dist/lib/services/feature-toggle-service.d.ts +5 -2
- package/dist/lib/services/feature-toggle-service.js +47 -1
- package/dist/lib/services/feature-toggle-service.js.map +1 -1
- package/dist/lib/services/project-service.d.ts +3 -0
- package/dist/lib/services/project-service.js +36 -7
- package/dist/lib/services/project-service.js.map +1 -1
- package/dist/lib/types/events.d.ts +12 -0
- package/dist/lib/types/events.js +13 -2
- package/dist/lib/types/events.js.map +1 -1
- package/dist/lib/types/model.d.ts +4 -1
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/stores/access-store.d.ts +2 -0
- package/dist/lib/util/constants.d.ts +20 -0
- package/dist/lib/util/constants.js +44 -1
- package/dist/lib/util/constants.js.map +1 -1
- package/dist/lib/util/validators/constraint-types.d.ts +5 -0
- package/dist/lib/util/validators/constraint-types.js +44 -0
- package/dist/lib/util/validators/constraint-types.js.map +1 -0
- package/dist/lib/util/validators/constraint-types.test.d.ts +1 -0
- package/dist/lib/util/validators/constraint-types.test.js +89 -0
- package/dist/lib/util/validators/constraint-types.test.js.map +1 -0
- package/dist/migrations/20220224111626-add-current-time-context-field.d.ts +2 -0
- package/dist/migrations/20220224111626-add-current-time-context-field.js +12 -0
- package/dist/migrations/20220224111626-add-current-time-context-field.js.map +1 -0
- package/dist/test/e2e/services/project-service.e2e.test.js +63 -0
- package/dist/test/e2e/services/project-service.e2e.test.js.map +1 -1
- package/dist/test/fixtures/fake-access-store.d.ts +1 -0
- package/dist/test/fixtures/fake-access-store.js +3 -0
- package/dist/test/fixtures/fake-access-store.js.map +1 -1
- package/package.json +12 -11
|
@@ -1,9 +1,52 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CUSTOM_ROLE_TYPE = exports.PROJECT_PERMISSION_TYPE = exports.ENVIRONMENT_PERMISSION_TYPE = exports.ROOT_PERMISSION_TYPE = exports.DEFAULT_ENV = void 0;
|
|
3
|
+
exports.SEMVER_OPERATORS = exports.DATE_OPERATORS = exports.NUM_OPERATORS = exports.STRING_OPERATORS = exports.ALL_OPERATORS = exports.SEMVER_LT = exports.SEMVER_GT = exports.SEMVER_EQ = exports.DATE_BEFORE = exports.DATE_AFTER = exports.NUM_LTE = exports.NUM_LT = exports.NUM_GTE = exports.NUM_GT = exports.NUM_EQ = exports.STR_CONTAINS = exports.STR_STARTS_WITH = exports.STR_ENDS_WITH = exports.IN = exports.NOT_IN = exports.CUSTOM_ROLE_TYPE = exports.PROJECT_PERMISSION_TYPE = exports.ENVIRONMENT_PERMISSION_TYPE = exports.ROOT_PERMISSION_TYPE = exports.DEFAULT_ENV = void 0;
|
|
4
4
|
exports.DEFAULT_ENV = 'default';
|
|
5
5
|
exports.ROOT_PERMISSION_TYPE = 'root';
|
|
6
6
|
exports.ENVIRONMENT_PERMISSION_TYPE = 'environment';
|
|
7
7
|
exports.PROJECT_PERMISSION_TYPE = 'project';
|
|
8
8
|
exports.CUSTOM_ROLE_TYPE = 'custom';
|
|
9
|
+
/* CONTEXT FIELD OPERATORS */
|
|
10
|
+
exports.NOT_IN = 'NOT_IN';
|
|
11
|
+
exports.IN = 'IN';
|
|
12
|
+
exports.STR_ENDS_WITH = 'STR_ENDS_WITH';
|
|
13
|
+
exports.STR_STARTS_WITH = 'STR_STARTS_WITH';
|
|
14
|
+
exports.STR_CONTAINS = 'STR_CONTAINS';
|
|
15
|
+
exports.NUM_EQ = 'NUM_EQ';
|
|
16
|
+
exports.NUM_GT = 'NUM_GT';
|
|
17
|
+
exports.NUM_GTE = 'NUM_GTE';
|
|
18
|
+
exports.NUM_LT = 'NUM_LT';
|
|
19
|
+
exports.NUM_LTE = 'NUM_LTE';
|
|
20
|
+
exports.DATE_AFTER = 'DATE_AFTER';
|
|
21
|
+
exports.DATE_BEFORE = 'DATE_BEFORE';
|
|
22
|
+
exports.SEMVER_EQ = 'SEMVER_EQ';
|
|
23
|
+
exports.SEMVER_GT = 'SEMVER_GT';
|
|
24
|
+
exports.SEMVER_LT = 'SEMVER_LT';
|
|
25
|
+
exports.ALL_OPERATORS = [
|
|
26
|
+
exports.NOT_IN,
|
|
27
|
+
exports.IN,
|
|
28
|
+
exports.STR_ENDS_WITH,
|
|
29
|
+
exports.STR_STARTS_WITH,
|
|
30
|
+
exports.STR_CONTAINS,
|
|
31
|
+
exports.NUM_EQ,
|
|
32
|
+
exports.NUM_GT,
|
|
33
|
+
exports.NUM_GTE,
|
|
34
|
+
exports.NUM_LT,
|
|
35
|
+
exports.NUM_LTE,
|
|
36
|
+
exports.DATE_AFTER,
|
|
37
|
+
exports.DATE_BEFORE,
|
|
38
|
+
exports.SEMVER_EQ,
|
|
39
|
+
exports.SEMVER_GT,
|
|
40
|
+
exports.SEMVER_LT,
|
|
41
|
+
];
|
|
42
|
+
exports.STRING_OPERATORS = [
|
|
43
|
+
exports.STR_ENDS_WITH,
|
|
44
|
+
exports.STR_STARTS_WITH,
|
|
45
|
+
exports.STR_CONTAINS,
|
|
46
|
+
exports.IN,
|
|
47
|
+
exports.NOT_IN,
|
|
48
|
+
];
|
|
49
|
+
exports.NUM_OPERATORS = [exports.NUM_EQ, exports.NUM_GT, exports.NUM_GTE, exports.NUM_LT, exports.NUM_LTE];
|
|
50
|
+
exports.DATE_OPERATORS = [exports.DATE_AFTER, exports.DATE_BEFORE];
|
|
51
|
+
exports.SEMVER_OPERATORS = [exports.SEMVER_EQ, exports.SEMVER_GT, exports.SEMVER_LT];
|
|
9
52
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/util/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,SAAS,CAAC;AAExB,QAAA,oBAAoB,GAAG,MAAM,CAAC;AAC9B,QAAA,2BAA2B,GAAG,aAAa,CAAC;AAC5C,QAAA,uBAAuB,GAAG,SAAS,CAAC;AAEpC,QAAA,gBAAgB,GAAG,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/util/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,SAAS,CAAC;AAExB,QAAA,oBAAoB,GAAG,MAAM,CAAC;AAC9B,QAAA,2BAA2B,GAAG,aAAa,CAAC;AAC5C,QAAA,uBAAuB,GAAG,SAAS,CAAC;AAEpC,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAEzC,6BAA6B;AAEhB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,EAAE,GAAG,IAAI,CAAC;AACV,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,eAAe,GAAG,iBAAiB,CAAC;AACpC,QAAA,YAAY,GAAG,cAAc,CAAC;AAC9B,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,SAAS,GAAG,WAAW,CAAC;AAExB,QAAA,aAAa,GAAG;IACzB,cAAM;IACN,UAAE;IACF,qBAAa;IACb,uBAAe;IACf,oBAAY;IACZ,cAAM;IACN,cAAM;IACN,eAAO;IACP,cAAM;IACN,eAAO;IACP,kBAAU;IACV,mBAAW;IACX,iBAAS;IACT,iBAAS;IACT,iBAAS;CACZ,CAAC;AAEW,QAAA,gBAAgB,GAAG;IAC5B,qBAAa;IACb,uBAAe;IACf,oBAAY;IACZ,UAAE;IACF,cAAM;CACT,CAAC;AACW,QAAA,aAAa,GAAG,CAAC,cAAM,EAAE,cAAM,EAAE,eAAO,EAAE,cAAM,EAAE,eAAO,CAAC,CAAC;AAC3D,QAAA,cAAc,GAAG,CAAC,kBAAU,EAAE,mBAAW,CAAC,CAAC;AAC3C,QAAA,gBAAgB,GAAG,CAAC,iBAAS,EAAE,iBAAS,EAAE,iBAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const validateNumber: (value: unknown) => Promise<void>;
|
|
2
|
+
export declare const validateString: (value: unknown) => Promise<void>;
|
|
3
|
+
export declare const validateSemver: (value: unknown) => void;
|
|
4
|
+
export declare const validateDate: (value: unknown) => Promise<void>;
|
|
5
|
+
export declare const validateLegalValues: (legalValues: string[], match: string[] | string) => void;
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
+
exports.validateLegalValues = exports.validateDate = exports.validateSemver = exports.validateString = exports.validateNumber = void 0;
|
|
7
|
+
const semver_1 = __importDefault(require("semver"));
|
|
8
|
+
const constraint_value_types_1 = require("../../schema/constraint-value-types");
|
|
9
|
+
const bad_data_error_1 = __importDefault(require("../../error/bad-data-error"));
|
|
10
|
+
const validateNumber = async (value) => {
|
|
11
|
+
await constraint_value_types_1.constraintNumberTypeSchema.validateAsync(value);
|
|
12
|
+
};
|
|
13
|
+
exports.validateNumber = validateNumber;
|
|
14
|
+
const validateString = async (value) => {
|
|
15
|
+
await constraint_value_types_1.constraintStringTypeSchema.validateAsync(value);
|
|
16
|
+
};
|
|
17
|
+
exports.validateString = validateString;
|
|
18
|
+
const validateSemver = (value) => {
|
|
19
|
+
const cleanValue = semver_1.default.clean(value) === value;
|
|
20
|
+
const result = semver_1.default.valid(value);
|
|
21
|
+
if (result && cleanValue)
|
|
22
|
+
return;
|
|
23
|
+
throw new bad_data_error_1.default(`the provided value is not a valid semver format. The value provided was: ${value}`);
|
|
24
|
+
};
|
|
25
|
+
exports.validateSemver = validateSemver;
|
|
26
|
+
const validateDate = async (value) => {
|
|
27
|
+
await constraint_value_types_1.constraintDateTypeSchema.validateAsync(value);
|
|
28
|
+
};
|
|
29
|
+
exports.validateDate = validateDate;
|
|
30
|
+
const validateLegalValues = (legalValues, match) => {
|
|
31
|
+
if (Array.isArray(match)) {
|
|
32
|
+
// Compare arrays to arrays
|
|
33
|
+
const valid = match.every((value) => legalValues.includes(value));
|
|
34
|
+
if (!valid)
|
|
35
|
+
throw new bad_data_error_1.default(`input values are not specified as a legal value on this context field`);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
const valid = legalValues.includes(match);
|
|
39
|
+
if (!valid)
|
|
40
|
+
throw new bad_data_error_1.default(`${match} is not specified as a legal value on this context field`);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
exports.validateLegalValues = validateLegalValues;
|
|
44
|
+
//# sourceMappingURL=constraint-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraint-types.js","sourceRoot":"","sources":["../../../../src/lib/util/validators/constraint-types.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,gFAI6C;AAC7C,gFAAsD;AAE/C,MAAM,cAAc,GAAG,KAAK,EAAE,KAAc,EAAiB,EAAE;IAClE,MAAM,mDAA0B,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEK,MAAM,cAAc,GAAG,KAAK,EAAE,KAAc,EAAiB,EAAE;IAClE,MAAM,mDAA0B,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEK,MAAM,cAAc,GAAG,CAAC,KAAc,EAAQ,EAAE;IACnD,MAAM,UAAU,GAAG,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;IAEjD,MAAM,MAAM,GAAG,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEnC,IAAI,MAAM,IAAI,UAAU;QAAE,OAAO;IACjC,MAAM,IAAI,wBAAY,CAClB,4EAA4E,KAAK,EAAE,CACtF,CAAC;AACN,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB;AAEK,MAAM,YAAY,GAAG,KAAK,EAAE,KAAc,EAAiB,EAAE;IAChE,MAAM,iDAAwB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEK,MAAM,mBAAmB,GAAG,CAC/B,WAAqB,EACrB,KAAwB,EACpB,EAAE;IACN,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACtB,2BAA2B;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK;YACN,MAAM,IAAI,wBAAY,CAClB,uEAAuE,CAC1E,CAAC;KACT;SAAM;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK;YACN,MAAM,IAAI,wBAAY,CAClB,GAAG,KAAK,0DAA0D,CACrE,CAAC;KACT;AACL,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const constraint_types_1 = require("./constraint-types");
|
|
4
|
+
test('semver validation should throw with bad format', () => {
|
|
5
|
+
const badSemver = 'a.b.c';
|
|
6
|
+
expect.assertions(1);
|
|
7
|
+
try {
|
|
8
|
+
(0, constraint_types_1.validateSemver)(badSemver);
|
|
9
|
+
}
|
|
10
|
+
catch (e) {
|
|
11
|
+
expect(e.message).toBe(`the provided value is not a valid semver format. The value provided was: ${badSemver}`);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
test('semver valdiation should pass with correct format', () => {
|
|
15
|
+
const validSemver = '1.2.3';
|
|
16
|
+
expect.assertions(0);
|
|
17
|
+
try {
|
|
18
|
+
(0, constraint_types_1.validateSemver)(validSemver);
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
expect(e.message).toBe(`the provided value is not a valid semver format. The value provided was: ${validSemver}`);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
test('semver validation should fail partial semver', () => {
|
|
25
|
+
const partial = '1.2';
|
|
26
|
+
expect.assertions(1);
|
|
27
|
+
try {
|
|
28
|
+
(0, constraint_types_1.validateSemver)(partial);
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
expect(e.message).toBe(`the provided value is not a valid semver format. The value provided was: ${partial}`);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
test('semver validation should fail with leading v', () => {
|
|
35
|
+
const leadingV = 'v1.2.0';
|
|
36
|
+
expect.assertions(1);
|
|
37
|
+
try {
|
|
38
|
+
(0, constraint_types_1.validateSemver)(leadingV);
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
expect(e.message).toBe(`the provided value is not a valid semver format. The value provided was: ${leadingV}`);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
/* Legal values tests */
|
|
45
|
+
test('should fail validation if value does not exist in single legal value', () => {
|
|
46
|
+
const legalValues = ['100', '200', '300'];
|
|
47
|
+
const value = '500';
|
|
48
|
+
expect.assertions(1);
|
|
49
|
+
try {
|
|
50
|
+
(0, constraint_types_1.validateLegalValues)(legalValues, value);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
expect(error.message).toBe(`${value} is not specified as a legal value on this context field`);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
test('should pass validation if value exists in single legal value', () => {
|
|
57
|
+
const legalValues = ['100', '200', '300'];
|
|
58
|
+
const value = '100';
|
|
59
|
+
expect.assertions(0);
|
|
60
|
+
try {
|
|
61
|
+
(0, constraint_types_1.validateLegalValues)(legalValues, value);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
expect(error.message).toBe(`${value} is not specified as a legal value on this context field`);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
test('should fail validation if one of the values does not exist in multiple legal values', () => {
|
|
68
|
+
const legalValues = ['100', '200', '300'];
|
|
69
|
+
const values = ['500', '100'];
|
|
70
|
+
expect.assertions(1);
|
|
71
|
+
try {
|
|
72
|
+
(0, constraint_types_1.validateLegalValues)(legalValues, values);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
expect(error.message).toBe(`input values are not specified as a legal value on this context field`);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
test('should pass validation if all of the values exists in legal values', () => {
|
|
79
|
+
const legalValues = ['100', '200', '300'];
|
|
80
|
+
const values = ['200', '100'];
|
|
81
|
+
expect.assertions(0);
|
|
82
|
+
try {
|
|
83
|
+
(0, constraint_types_1.validateLegalValues)(legalValues, values);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
expect(error.message).toBe(`input values are not specified as a legal value on this context field`);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=constraint-types.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraint-types.test.js","sourceRoot":"","sources":["../../../../src/lib/util/validators/constraint-types.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
exports.up = function (db, cb) {
|
|
3
|
+
db.runSql(`
|
|
4
|
+
INSERT INTO context_fields(name, description, sort_order) VALUES('currentTime', 'Allows you to constrain on date values', 3);
|
|
5
|
+
`, cb);
|
|
6
|
+
};
|
|
7
|
+
exports.down = function (db, cb) {
|
|
8
|
+
db.runSql(`
|
|
9
|
+
DELETE FROM context_fields WHERE name = 'currentTime';
|
|
10
|
+
`, cb);
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=20220224111626-add-current-time-context-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20220224111626-add-current-time-context-field.js","sourceRoot":"","sources":["../../src/migrations/20220224111626-add-current-time-context-field.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,CAAC,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE;IACzB,EAAE,CAAC,MAAM,CACL;;SAEC,EACD,EAAE,CACL,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE;IAC3B,EAAE,CAAC,MAAM,CACL;;SAEC,EACD,EAAE,CACL,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -521,4 +521,67 @@ test('should change a users role in the project', async () => {
|
|
|
521
521
|
expect(customUser[0].id).toBe(projectUser.id);
|
|
522
522
|
expect(customUser[0].name).toBe(projectUser.name);
|
|
523
523
|
});
|
|
524
|
+
test('should update role for user on project', async () => {
|
|
525
|
+
const project = {
|
|
526
|
+
id: 'update-users',
|
|
527
|
+
name: 'New project',
|
|
528
|
+
description: 'Blah',
|
|
529
|
+
};
|
|
530
|
+
await projectService.createProject(project, user);
|
|
531
|
+
const projectMember1 = await stores.userStore.insert({
|
|
532
|
+
name: 'Some Member',
|
|
533
|
+
email: 'update99@getunleash.io',
|
|
534
|
+
});
|
|
535
|
+
const memberRole = await stores.roleStore.getRoleByName(model_1.RoleName.MEMBER);
|
|
536
|
+
const ownerRole = await stores.roleStore.getRoleByName(model_1.RoleName.OWNER);
|
|
537
|
+
await projectService.addUser(project.id, memberRole.id, projectMember1.id);
|
|
538
|
+
await projectService.changeRole(project.id, ownerRole.id, projectMember1.id, 'test');
|
|
539
|
+
const { users } = await projectService.getUsersWithAccess(project.id, user);
|
|
540
|
+
const memberUsers = users.filter((u) => u.roleId === memberRole.id);
|
|
541
|
+
const ownerUsers = users.filter((u) => u.roleId === ownerRole.id);
|
|
542
|
+
expect(memberUsers).toHaveLength(0);
|
|
543
|
+
expect(ownerUsers).toHaveLength(2);
|
|
544
|
+
});
|
|
545
|
+
test('should able to assign role without existing members', async () => {
|
|
546
|
+
const project = {
|
|
547
|
+
id: 'update-users-test',
|
|
548
|
+
name: 'New project',
|
|
549
|
+
description: 'Blah',
|
|
550
|
+
};
|
|
551
|
+
await projectService.createProject(project, user);
|
|
552
|
+
const projectMember1 = await stores.userStore.insert({
|
|
553
|
+
name: 'Some Member',
|
|
554
|
+
email: 'update1999@getunleash.io',
|
|
555
|
+
});
|
|
556
|
+
const testRole = await stores.roleStore.create({
|
|
557
|
+
name: 'Power user',
|
|
558
|
+
roleType: 'custom',
|
|
559
|
+
description: 'Grants access to modify all environments',
|
|
560
|
+
});
|
|
561
|
+
const memberRole = await stores.roleStore.getRoleByName(model_1.RoleName.MEMBER);
|
|
562
|
+
await projectService.addUser(project.id, memberRole.id, projectMember1.id);
|
|
563
|
+
await projectService.changeRole(project.id, testRole.id, projectMember1.id, 'test');
|
|
564
|
+
const { users } = await projectService.getUsersWithAccess(project.id, user);
|
|
565
|
+
const memberUsers = users.filter((u) => u.roleId === memberRole.id);
|
|
566
|
+
const testUsers = users.filter((u) => u.roleId === testRole.id);
|
|
567
|
+
expect(memberUsers).toHaveLength(0);
|
|
568
|
+
expect(testUsers).toHaveLength(1);
|
|
569
|
+
});
|
|
570
|
+
test('should not update role for user on project when she is the owner', async () => {
|
|
571
|
+
const project = {
|
|
572
|
+
id: 'update-users-not-allowed',
|
|
573
|
+
name: 'New project',
|
|
574
|
+
description: 'Blah',
|
|
575
|
+
};
|
|
576
|
+
await projectService.createProject(project, user);
|
|
577
|
+
const projectMember1 = await stores.userStore.insert({
|
|
578
|
+
name: 'Some Member',
|
|
579
|
+
email: 'update991@getunleash.io',
|
|
580
|
+
});
|
|
581
|
+
const memberRole = await stores.roleStore.getRoleByName(model_1.RoleName.MEMBER);
|
|
582
|
+
await projectService.addUser(project.id, memberRole.id, projectMember1.id);
|
|
583
|
+
await expect(async () => {
|
|
584
|
+
await projectService.changeRole(project.id, memberRole.id, user.id, 'test');
|
|
585
|
+
}).rejects.toThrowError(new Error('A project must have at least one owner'));
|
|
586
|
+
});
|
|
524
587
|
//# sourceMappingURL=project-service.e2e.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-service.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/project-service.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project-service.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/project-service.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IAccessStore, IRole, IUserPermission, IUserRole } from '../../lib/types/stores/access-store';
|
|
2
2
|
import { IPermission } from 'lib/types/model';
|
|
3
3
|
declare class AccessStoreMock implements IAccessStore {
|
|
4
|
+
updateUserProjectRole(userId: number, roleId: number, projectId: string): Promise<void>;
|
|
4
5
|
removeUserFromRole(userId: number, roleId: number, projectId: string): Promise<void>;
|
|
5
6
|
wipePermissionsFromRole(role_id: number): Promise<void>;
|
|
6
7
|
unlinkUserRoles(userId: number): Promise<void>;
|
|
@@ -5,6 +5,9 @@ class AccessStoreMock {
|
|
|
5
5
|
this.userPermissions = [];
|
|
6
6
|
this.roles = [];
|
|
7
7
|
}
|
|
8
|
+
updateUserProjectRole(userId, roleId, projectId) {
|
|
9
|
+
throw new Error('Method not implemented.');
|
|
10
|
+
}
|
|
8
11
|
removeUserFromRole(userId, roleId, projectId) {
|
|
9
12
|
throw new Error('Method not implemented.');
|
|
10
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-access-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-access-store.ts"],"names":[],"mappings":";;AAUA,MAAM,eAAe;IAArB;
|
|
1
|
+
{"version":3,"file":"fake-access-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-access-store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unleash-server",
|
|
3
3
|
"description": "Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.9.0-beta.2",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"unleash",
|
|
7
7
|
"feature toggle",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"helmet": "^5.0.0",
|
|
95
95
|
"joi": "^17.3.0",
|
|
96
96
|
"js-yaml": "^4.1.0",
|
|
97
|
-
"knex": "1.0.
|
|
97
|
+
"knex": "1.0.4",
|
|
98
98
|
"log4js": "^6.0.0",
|
|
99
99
|
"memoizee": "^0.4.15",
|
|
100
100
|
"mime": "^2.4.2",
|
|
@@ -112,8 +112,9 @@
|
|
|
112
112
|
"serve-favicon": "^2.5.0",
|
|
113
113
|
"stoppable": "^1.1.0",
|
|
114
114
|
"type-is": "^1.6.18",
|
|
115
|
-
"unleash-frontend": "4.
|
|
116
|
-
"uuid": "^8.3.2"
|
|
115
|
+
"unleash-frontend": "4.9.0-beta.2",
|
|
116
|
+
"uuid": "^8.3.2",
|
|
117
|
+
"semver": "^7.3.5"
|
|
117
118
|
},
|
|
118
119
|
"devDependencies": {
|
|
119
120
|
"@babel/core": "7.17.5",
|
|
@@ -133,15 +134,15 @@
|
|
|
133
134
|
"@types/supertest": "2.0.11",
|
|
134
135
|
"@types/type-is": "1.6.3",
|
|
135
136
|
"@types/uuid": "8.3.4",
|
|
136
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
137
|
-
"@typescript-eslint/parser": "5.
|
|
137
|
+
"@typescript-eslint/eslint-plugin": "5.14.0",
|
|
138
|
+
"@typescript-eslint/parser": "5.14.0",
|
|
138
139
|
"copyfiles": "2.4.1",
|
|
139
140
|
"coveralls": "3.1.1",
|
|
140
141
|
"del-cli": "4.0.1",
|
|
141
|
-
"eslint": "8.
|
|
142
|
+
"eslint": "8.11.0",
|
|
142
143
|
"eslint-config-airbnb-base": "15.0.0",
|
|
143
144
|
"eslint-config-airbnb-typescript": "16.0.0",
|
|
144
|
-
"eslint-config-prettier": "8.
|
|
145
|
+
"eslint-config-prettier": "8.5.0",
|
|
145
146
|
"eslint-plugin-import": "2.25.4",
|
|
146
147
|
"eslint-plugin-prettier": "4.0.0",
|
|
147
148
|
"faker": "5.5.3",
|
|
@@ -149,15 +150,15 @@
|
|
|
149
150
|
"husky": "7.0.4",
|
|
150
151
|
"jest": "27.5.1",
|
|
151
152
|
"jest-fetch-mock": "3.0.3",
|
|
152
|
-
"lint-staged": "12.3.
|
|
153
|
+
"lint-staged": "12.3.5",
|
|
153
154
|
"prettier": "2.5.1",
|
|
154
155
|
"proxyquire": "2.1.3",
|
|
155
156
|
"source-map-support": "0.5.21",
|
|
156
157
|
"superagent": "7.1.1",
|
|
157
158
|
"supertest": "6.2.2",
|
|
158
159
|
"ts-jest": "27.1.3",
|
|
159
|
-
"ts-node": "10.
|
|
160
|
-
"tsc-watch": "4.6.
|
|
160
|
+
"ts-node": "10.7.0",
|
|
161
|
+
"tsc-watch": "4.6.2",
|
|
161
162
|
"typescript": "4.6.2"
|
|
162
163
|
},
|
|
163
164
|
"resolutions": {
|