unleash-server 4.2.0 → 4.2.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 +6 -5
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/db/client-instance-store.js +2 -2
- package/dist/lib/db/client-instance-store.js.map +1 -1
- package/dist/lib/db/client-metrics-db.js +2 -2
- package/dist/lib/db/client-metrics-db.js.map +1 -1
- package/dist/lib/db/client-metrics-store.js +2 -2
- package/dist/lib/db/client-metrics-store.js.map +1 -1
- package/dist/lib/db/session-store.js +2 -1
- package/dist/lib/db/session-store.js.map +1 -1
- package/dist/lib/error/minimum-one-environment-error.d.ts +5 -0
- package/dist/lib/error/minimum-one-environment-error.js +24 -0
- package/dist/lib/error/minimum-one-environment-error.js.map +1 -0
- package/dist/lib/metrics.js +3 -4
- package/dist/lib/metrics.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.js +2 -17
- package/dist/lib/middleware/rbac-middleware.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.test.js +0 -21
- package/dist/lib/middleware/rbac-middleware.test.js.map +1 -1
- package/dist/lib/middleware/secure-headers.js +2 -1
- package/dist/lib/middleware/secure-headers.js.map +1 -1
- package/dist/lib/middleware/session-db.js +2 -3
- package/dist/lib/middleware/session-db.js.map +1 -1
- package/dist/lib/routes/admin-api/feature.js +6 -2
- package/dist/lib/routes/admin-api/feature.js.map +1 -1
- package/dist/lib/routes/admin-api/project/features.js +11 -8
- package/dist/lib/routes/admin-api/project/features.js.map +1 -1
- package/dist/lib/routes/admin-api/state.js +2 -2
- package/dist/lib/routes/admin-api/state.js.map +1 -1
- package/dist/lib/routes/client-api/feature.test.js +3 -2
- package/dist/lib/routes/client-api/feature.test.js.map +1 -1
- package/dist/lib/routes/util.js +2 -0
- package/dist/lib/routes/util.js.map +1 -1
- package/dist/lib/services/addon-service.js +2 -2
- package/dist/lib/services/addon-service.js.map +1 -1
- package/dist/lib/services/api-token-service.js +2 -2
- package/dist/lib/services/api-token-service.js.map +1 -1
- package/dist/lib/services/client-metrics/client-metrics-service-v2.js +3 -4
- package/dist/lib/services/client-metrics/client-metrics-service-v2.js.map +1 -1
- package/dist/lib/services/client-metrics/client-metrics.test.js +74 -41
- package/dist/lib/services/client-metrics/client-metrics.test.js.map +1 -1
- package/dist/lib/services/client-metrics/index.js +8 -8
- package/dist/lib/services/client-metrics/index.js.map +1 -1
- package/dist/lib/services/client-metrics/ttl-list.d.ts +1 -0
- package/dist/lib/services/client-metrics/ttl-list.js +15 -9
- package/dist/lib/services/client-metrics/ttl-list.js.map +1 -1
- package/dist/lib/services/client-metrics/ttl-list.test.js +25 -5
- package/dist/lib/services/client-metrics/ttl-list.test.js.map +1 -1
- package/dist/lib/services/environment-service.d.ts +2 -1
- package/dist/lib/services/environment-service.js +10 -3
- package/dist/lib/services/environment-service.js.map +1 -1
- package/dist/lib/services/{feature-toggle-service-v2.d.ts → feature-toggle-service.d.ts} +16 -7
- package/dist/lib/services/{feature-toggle-service-v2.js → feature-toggle-service.js} +39 -14
- package/dist/lib/services/feature-toggle-service.js.map +1 -0
- package/dist/lib/services/index.js +3 -2
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/project-health-service.d.ts +1 -1
- package/dist/lib/services/project-health-service.js +3 -3
- package/dist/lib/services/project-health-service.js.map +1 -1
- package/dist/lib/services/project-service.d.ts +1 -1
- package/dist/lib/services/reset-token-service.js +2 -2
- package/dist/lib/services/reset-token-service.js.map +1 -1
- package/dist/lib/services/state-util.js +1 -1
- package/dist/lib/services/state-util.js.map +1 -1
- package/dist/lib/services/version-service.js +2 -2
- package/dist/lib/services/version-service.js.map +1 -1
- package/dist/lib/types/services.d.ts +3 -2
- package/dist/lib/util/constants.d.ts +0 -2
- package/dist/lib/util/constants.js +1 -3
- package/dist/lib/util/constants.js.map +1 -1
- package/dist/migrator.js +9 -2
- package/dist/migrator.js.map +1 -1
- package/dist/test/e2e/api/admin/feature-archive.e2e.test.js +1 -2
- package/dist/test/e2e/api/admin/feature-archive.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/feature.e2e.test.js +19 -2
- package/dist/test/e2e/api/admin/feature.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/metrics.e2e.test.js +5 -3
- package/dist/test/e2e/api/admin/metrics.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/environments.e2e.test.js +10 -0
- package/dist/test/e2e/api/admin/project/environments.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/features.e2e.test.js +114 -0
- package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/state.e2e.test.js +17 -13
- package/dist/test/e2e/api/admin/state.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.js +8 -4
- package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +4 -4
- package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/register.e2e.test.js +1 -1
- package/dist/test/e2e/api/client/register.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/addon-service.e2e.test.js +1 -1
- package/dist/test/e2e/services/addon-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/api-token-service.e2e.test.js +5 -3
- package/dist/test/e2e/services/api-token-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/client-metrics-service.e2e.test.js +5 -2
- package/dist/test/e2e/services/client-metrics-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/environment-service.test.js +1 -1
- package/dist/test/e2e/services/environment-service.test.js.map +1 -1
- package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js +14 -11
- package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/project-health-service.e2e.test.js +2 -2
- package/dist/test/e2e/services/project-health-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/project-service.e2e.test.js +2 -2
- package/dist/test/e2e/services/project-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/session-service.e2e.test.js +5 -4
- package/dist/test/e2e/services/session-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/user-service.e2e.test.js +3 -2
- package/dist/test/e2e/services/user-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.js +4 -6
- package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/event-store.e2e.test.js +1 -1
- package/dist/test/e2e/stores/event-store.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/feature-toggle-store.e2e.test.js +1 -1
- package/dist/test/e2e/stores/feature-toggle-store.e2e.test.js.map +1 -1
- package/package.json +6 -6
- package/dist/lib/services/feature-toggle-service-v2.js.map +0 -1
|
@@ -18,15 +18,18 @@ class ProjectFeaturesController extends controller_1.default {
|
|
|
18
18
|
super(config);
|
|
19
19
|
this.featureService = featureToggleServiceV2;
|
|
20
20
|
this.logger = config.getLogger('/admin-api/project/features.ts');
|
|
21
|
+
// Environments
|
|
21
22
|
this.get(`${PATH_ENV}`, this.getEnvironment);
|
|
22
23
|
this.post(`${PATH_ENV}/on`, this.toggleEnvironmentOn, permissions_1.UPDATE_FEATURE);
|
|
23
24
|
this.post(`${PATH_ENV}/off`, this.toggleEnvironmentOff, permissions_1.UPDATE_FEATURE);
|
|
25
|
+
// activation strategies
|
|
24
26
|
this.get(`${PATH_STRATEGIES}`, this.getStrategies);
|
|
25
27
|
this.post(`${PATH_STRATEGIES}`, this.addStrategy, permissions_1.UPDATE_FEATURE);
|
|
26
28
|
this.get(`${PATH_STRATEGY}`, this.getStrategy);
|
|
27
29
|
this.put(`${PATH_STRATEGY}`, this.updateStrategy, permissions_1.UPDATE_FEATURE);
|
|
28
30
|
this.patch(`${PATH_STRATEGY}`, this.patchStrategy, permissions_1.UPDATE_FEATURE);
|
|
29
31
|
this.delete(`${PATH_STRATEGY}`, this.deleteStrategy, permissions_1.UPDATE_FEATURE);
|
|
32
|
+
// feature toggles
|
|
30
33
|
this.get(PATH, this.getFeatures);
|
|
31
34
|
this.post(PATH, this.createFeature, permissions_1.CREATE_FEATURE);
|
|
32
35
|
this.post(PATH_FEATURE_CLONE, this.cloneFeature, permissions_1.CREATE_FEATURE);
|
|
@@ -95,7 +98,7 @@ class ProjectFeaturesController extends controller_1.default {
|
|
|
95
98
|
async addStrategy(req, res) {
|
|
96
99
|
const { projectId, featureName, environment } = req.params;
|
|
97
100
|
const userName = (0, extract_user_1.extractUsername)(req);
|
|
98
|
-
const featureStrategy = await this.featureService.createStrategy(req.body, projectId, featureName, userName
|
|
101
|
+
const featureStrategy = await this.featureService.createStrategy(req.body, { environment, projectId, featureName }, userName);
|
|
99
102
|
res.status(200).json(featureStrategy);
|
|
100
103
|
}
|
|
101
104
|
async getStrategies(req, res) {
|
|
@@ -104,18 +107,18 @@ class ProjectFeaturesController extends controller_1.default {
|
|
|
104
107
|
res.status(200).json(featureStrategies);
|
|
105
108
|
}
|
|
106
109
|
async updateStrategy(req, res) {
|
|
107
|
-
const { strategyId, environment, projectId } = req.params;
|
|
110
|
+
const { strategyId, environment, projectId, featureName } = req.params;
|
|
108
111
|
const userName = (0, extract_user_1.extractUsername)(req);
|
|
109
|
-
const updatedStrategy = await this.featureService.updateStrategy(strategyId, environment, projectId,
|
|
112
|
+
const updatedStrategy = await this.featureService.updateStrategy(strategyId, req.body, { environment, projectId, featureName }, userName);
|
|
110
113
|
res.status(200).json(updatedStrategy);
|
|
111
114
|
}
|
|
112
115
|
async patchStrategy(req, res) {
|
|
113
|
-
const { strategyId, projectId, environment } = req.params;
|
|
116
|
+
const { strategyId, projectId, environment, featureName } = req.params;
|
|
114
117
|
const userName = (0, extract_user_1.extractUsername)(req);
|
|
115
118
|
const patch = req.body;
|
|
116
119
|
const strategy = await this.featureService.getStrategy(strategyId);
|
|
117
120
|
const { newDocument } = (0, fast_json_patch_1.applyPatch)(strategy, patch);
|
|
118
|
-
const updatedStrategy = await this.featureService.updateStrategy(strategyId, environment, projectId,
|
|
121
|
+
const updatedStrategy = await this.featureService.updateStrategy(strategyId, newDocument, { environment, projectId, featureName }, userName);
|
|
119
122
|
res.status(200).json(updatedStrategy);
|
|
120
123
|
}
|
|
121
124
|
async getStrategy(req, res) {
|
|
@@ -131,14 +134,14 @@ class ProjectFeaturesController extends controller_1.default {
|
|
|
131
134
|
const userName = (0, extract_user_1.extractUsername)(req);
|
|
132
135
|
const { strategyId } = req.params;
|
|
133
136
|
this.logger.info(strategyId);
|
|
134
|
-
const strategy = await this.featureService.deleteStrategy(strategyId,
|
|
137
|
+
const strategy = await this.featureService.deleteStrategy(strategyId, { environment, projectId, featureName }, userName);
|
|
135
138
|
res.status(200).json(strategy);
|
|
136
139
|
}
|
|
137
140
|
async updateStrategyParameter(req, res) {
|
|
138
|
-
const { strategyId, environment, projectId } = req.params;
|
|
141
|
+
const { strategyId, environment, projectId, featureName } = req.params;
|
|
139
142
|
const userName = (0, extract_user_1.extractUsername)(req);
|
|
140
143
|
const { name, value } = req.body;
|
|
141
|
-
const updatedStrategy = await this.featureService.updateStrategyParameter(strategyId, name, value,
|
|
144
|
+
const updatedStrategy = await this.featureService.updateStrategyParameter(strategyId, name, value, { environment, projectId, featureName }, userName);
|
|
142
145
|
res.status(200).json(updatedStrategy);
|
|
143
146
|
}
|
|
144
147
|
async getStrategyParameters(req, res) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features.js","sourceRoot":"","sources":["../../../../../src/lib/routes/admin-api/project/features.ts"],"names":[],"mappings":";;;;;AACA,qDAAwD;AACxD,kEAA0C;AAK1C,4DAA4E;AAM5E,6DAA6D;AA4B7D,MAAM,IAAI,GAAG,sBAAsB,CAAC;AACpC,MAAM,YAAY,GAAG,GAAG,IAAI,eAAe,CAAC;AAC5C,MAAM,kBAAkB,GAAG,GAAG,YAAY,QAAQ,CAAC;AACnD,MAAM,QAAQ,GAAG,GAAG,YAAY,4BAA4B,CAAC;AAC7D,MAAM,eAAe,GAAG,GAAG,QAAQ,aAAa,CAAC;AACjD,MAAM,aAAa,GAAG,GAAG,eAAe,cAAc,CAAC;AAOvD,MAAqB,yBAA0B,SAAQ,oBAAU;IAK7D,YACI,MAAsB,EACtB,EAAE,sBAAsB,EAA2B;QAEnD,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,cAAc,GAAG,sBAAsB,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAEjE,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,4BAAc,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,4BAAc,CAAC,CAAC;QAExE,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,4BAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"features.js","sourceRoot":"","sources":["../../../../../src/lib/routes/admin-api/project/features.ts"],"names":[],"mappings":";;;;;AACA,qDAAwD;AACxD,kEAA0C;AAK1C,4DAA4E;AAM5E,6DAA6D;AA4B7D,MAAM,IAAI,GAAG,sBAAsB,CAAC;AACpC,MAAM,YAAY,GAAG,GAAG,IAAI,eAAe,CAAC;AAC5C,MAAM,kBAAkB,GAAG,GAAG,YAAY,QAAQ,CAAC;AACnD,MAAM,QAAQ,GAAG,GAAG,YAAY,4BAA4B,CAAC;AAC7D,MAAM,eAAe,GAAG,GAAG,QAAQ,aAAa,CAAC;AACjD,MAAM,aAAa,GAAG,GAAG,eAAe,cAAc,CAAC;AAOvD,MAAqB,yBAA0B,SAAQ,oBAAU;IAK7D,YACI,MAAsB,EACtB,EAAE,sBAAsB,EAA2B;QAEnD,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,cAAc,GAAG,sBAAsB,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAEjE,eAAe;QACf,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,4BAAc,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,4BAAc,CAAC,CAAC;QAExE,wBAAwB;QACxB,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,4BAAc,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,4BAAc,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,CAAC,GAAG,aAAa,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,4BAAc,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,GAAG,aAAa,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,4BAAc,CAAC,CAAC;QAErE,kBAAkB;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,4BAAc,CAAC,CAAC;QAEpD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,EAAE,4BAAc,CAAC,CAAC;QAEjE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,WAAW,CACb,GAAyC,EACzC,GAAa;QAEb,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CACzD,SAAS,CACZ,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,YAAY,CACd,GAKC,EACD,GAAa;QAEb,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC9C,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAA,8BAAe,EAAC,GAAG,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CACxD,WAAW,EACX,SAAS,EACT,IAAI,EACJ,cAAc,EACd,QAAQ,CACX,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,aAAa,CACf,GAA4D,EAC5D,GAAa;QAEb,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAA,8BAAe,EAAC,GAAG,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CACzD,SAAS,EACT,GAAG,CAAC,IAAI,EACR,QAAQ,CACX,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,GAA0C,EAC1C,GAAa;QAEb,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAClE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,aAAa,CACf,GAA2D,EAC3D,GAAa;QAEb,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAA,8BAAe,EAAC,GAAG,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CACzD,SAAS,EACT,IAAI,EACJ,QAAQ,CACX,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY,CACd,GAKC,EACD,GAAa;QAEb,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAClD,SAAS,EACT,WAAW,EACX,IAAA,8BAAe,EAAC,GAAG,CAAC,EACpB,GAAG,CAAC,IAAI,CACX,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,cAAc,CAChB,GAKC,EACD,GAAa;QAEb,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAA,8BAAe,EAAC,GAAG,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC/D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,GAAkD,EAClD,GAAa;QAEb,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC3D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAChE,SAAS,EACT,WAAW,EACX,WAAW,CACd,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,mBAAmB,CACrB,GAAuD,EACvD,GAAa;QAEb,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC3D,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACnC,SAAS,EACT,WAAW,EACX,WAAW,EACX,IAAI,EACJ,IAAA,8BAAe,EAAC,GAAG,CAAC,CACvB,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,oBAAoB,CACtB,GAAuD,EACvD,GAAa;QAEb,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC3D,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACnC,SAAS,EACT,WAAW,EACX,WAAW,EACX,KAAK,EACL,IAAA,8BAAe,EAAC,GAAG,CAAC,CACvB,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,WAAW,CACb,GAAmE,EACnE,GAAa;QAEb,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAA,8BAAe,EAAC,GAAG,CAAC,CAAC;QACtC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAC5D,GAAG,CAAC,IAAI,EACR,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,EACvC,QAAQ,CACX,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,aAAa,CACf,GAAkD,EAClD,GAAa;QAEb,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC3D,MAAM,iBAAiB,GACnB,MAAM,IAAI,CAAC,cAAc,CAAC,2BAA2B,CACjD,SAAS,EACT,WAAW,EACX,WAAW,CACd,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,GAAiE,EACjE,GAAa;QAEb,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAA,8BAAe,EAAC,GAAG,CAAC,CAAC;QACtC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAC5D,UAAU,EACV,GAAG,CAAC,IAAI,EACR,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,EACvC,QAAQ,CACX,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,aAAa,CACf,GAA0D,EAC1D,GAAa;QAEb,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAA,8BAAe,EAAC,GAAG,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,4BAAU,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAC5D,UAAU,EACV,WAAW,EACX,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,EACvC,QAAQ,CACX,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,WAAW,CACb,GAAkD,EAClD,GAAa;QAEb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrC,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACnE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,GAAkD,EAClD,GAAa;QAEb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAA,8BAAe,EAAC,GAAG,CAAC,CAAC;QACtC,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CACrD,UAAU,EACV,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,EACvC,QAAQ,CACX,CAAC;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,uBAAuB,CACzB,GAKC,EACD,GAAa;QAEb,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAA,8BAAe,EAAC,GAAG,CAAC,CAAC;QACtC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAEjC,MAAM,eAAe,GACjB,MAAM,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAC7C,UAAU,EACV,IAAI,EACJ,KAAK,EACL,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,EACvC,QAAQ,CACX,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,qBAAqB,CACvB,GAA6C,EAC7C,GAAa;QAEb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAChD,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACnE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;CACJ;AArTD,4CAqTC"}
|
|
@@ -24,8 +24,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
25
|
const mime = __importStar(require("mime"));
|
|
26
26
|
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
27
|
-
const moment_1 = __importDefault(require("moment"));
|
|
28
27
|
const multer_1 = __importDefault(require("multer"));
|
|
28
|
+
const date_fns_1 = require("date-fns");
|
|
29
29
|
const controller_1 = __importDefault(require("../controller"));
|
|
30
30
|
const permissions_1 = require("../../types/permissions");
|
|
31
31
|
const extract_user_1 = require("../../util/extract-user");
|
|
@@ -92,7 +92,7 @@ class StateController extends controller_1.default {
|
|
|
92
92
|
includeTags,
|
|
93
93
|
includeEnvironments,
|
|
94
94
|
});
|
|
95
|
-
const timestamp = (0,
|
|
95
|
+
const timestamp = (0, date_fns_1.format)(Date.now(), 'yyyy-MM-dd_HH-mm-ss');
|
|
96
96
|
if (format === 'yaml') {
|
|
97
97
|
if (downloadFile) {
|
|
98
98
|
res.attachment(`export-${timestamp}.yml`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/state.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,sDAA2B;AAC3B,oDAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/state.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,sDAA2B;AAC3B,oDAA4B;AAC5B,uCAAgD;AAEhD,+DAAuC;AACvC,yDAAgD;AAChD,0DAA0D;AAO1D,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AACzD,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC/B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QACvC,OAAO,GAAG,CAAC;KACd;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;QAClB,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;KACzC;IACD,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;AACvB,CAAC,CAAC;AACF,MAAM,eAAgB,SAAQ,oBAAU;IAKpC,YACI,MAAsB,EACtB,EAAE,YAAY,EAA0C;QAExD,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,mBAAK,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,mBAAK,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,mBAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAiB,EAAE,GAAa;QACzC,MAAM,QAAQ,GAAG,IAAA,8BAAe,EAAC,GAAG,CAAC,CAAC;QACtC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;QACjC,kEAAkE;QAClE,IAAI,IAAI,CAAC;QACT,aAAa;QACb,IAAI,GAAG,CAAC,IAAI,EAAE;YACV,aAAa;YACb,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,WAAW,EAAE;gBACrD,aAAa;gBACb,IAAI,GAAG,iBAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACrC;iBAAM;gBACH,aAAa;gBACb,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACtC;SACJ;aAAM;YACH,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;SACnB;QAED,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAC3B,IAAI;YACJ,QAAQ;YACR,gBAAgB,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC;YAC1C,YAAY,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;SACxC,CAAC,CAAC;QACH,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAY,EAAE,GAAa;QACpC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;QAE7B,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAClE,MAAM,qBAAqB,GAAG,WAAW,CACrC,GAAG,CAAC,KAAK,CAAC,cAAc,EACxB,IAAI,CACP,CAAC;QACF,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEtE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YACxC,iBAAiB;YACjB,qBAAqB;YACrB,eAAe;YACf,WAAW;YACX,mBAAmB;SACtB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,iBAAU,EAAC,IAAI,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAChE,IAAI,MAAM,KAAK,MAAM,EAAE;YACnB,IAAI,YAAY,EAAE;gBACd,GAAG,CAAC,UAAU,CAAC,UAAU,SAAS,MAAM,CAAC,CAAC;aAC7C;YACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;SACjE;aAAM;YACH,IAAI,YAAY,EAAE;gBACd,GAAG,CAAC,UAAU,CAAC,UAAU,SAAS,OAAO,CAAC,CAAC;aAC9C;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;IACL,CAAC;CACJ;AACD,kBAAe,eAAe,CAAC;AAC/B,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC"}
|
|
@@ -11,6 +11,7 @@ const app_1 = __importDefault(require("../../app"));
|
|
|
11
11
|
const services_1 = require("../../services");
|
|
12
12
|
const feature_1 = __importDefault(require("./feature"));
|
|
13
13
|
const test_config_1 = require("../../../test/config/test-config");
|
|
14
|
+
const date_fns_1 = require("date-fns");
|
|
14
15
|
const eventBus = new events_1.EventEmitter();
|
|
15
16
|
function getSetup() {
|
|
16
17
|
const base = `/random${Math.round(Math.random() * 1000)}`;
|
|
@@ -68,7 +69,7 @@ test('if caching is enabled should memoize', async () => {
|
|
|
68
69
|
experimental: {
|
|
69
70
|
clientFeatureMemoize: {
|
|
70
71
|
enabled: true,
|
|
71
|
-
maxAge:
|
|
72
|
+
maxAge: (0, date_fns_1.secondsToMilliseconds)(10),
|
|
72
73
|
},
|
|
73
74
|
},
|
|
74
75
|
});
|
|
@@ -90,7 +91,7 @@ test('if caching is not enabled all calls goes to service', async () => {
|
|
|
90
91
|
experimental: {
|
|
91
92
|
clientFeatureMemoize: {
|
|
92
93
|
enabled: false,
|
|
93
|
-
maxAge:
|
|
94
|
+
maxAge: (0, date_fns_1.secondsToMilliseconds)(10),
|
|
94
95
|
},
|
|
95
96
|
},
|
|
96
97
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature.test.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/feature.test.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAClC,mCAAsC;AACtC,yEAAwD;AACxD,iFAAyD;AACzD,oDAA+B;AAC/B,6CAAgD;AAChD,wDAA0C;AAC1C,kEAAoE;
|
|
1
|
+
{"version":3,"file":"feature.test.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/feature.test.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/routes/util.js
CHANGED
|
@@ -51,6 +51,8 @@ const handleErrors = (res, logger, error) => {
|
|
|
51
51
|
return res.status(400).json(error).end();
|
|
52
52
|
case 'IncompatibleProjectError':
|
|
53
53
|
return res.status(403).json(error).end();
|
|
54
|
+
case 'MinimumOneEnvironmentError':
|
|
55
|
+
return res.status(400).json(error).end();
|
|
54
56
|
default:
|
|
55
57
|
logger.error('Server failed executing request', error);
|
|
56
58
|
return res.status(500).end();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/lib/routes/util.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/lib/routes/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,8 +28,8 @@ const addons_1 = require("../addons");
|
|
|
28
28
|
const events = __importStar(require("../types/events"));
|
|
29
29
|
const addon_schema_1 = require("./addon-schema");
|
|
30
30
|
const name_exists_error_1 = __importDefault(require("../error/name-exists-error"));
|
|
31
|
+
const date_fns_1 = require("date-fns");
|
|
31
32
|
const SUPPORTED_EVENTS = Object.keys(events).map((k) => events[k]);
|
|
32
|
-
const ADDONS_CACHE_TIME = 60 * 1000; // 60s
|
|
33
33
|
const MASKED_VALUE = '*****';
|
|
34
34
|
class AddonService {
|
|
35
35
|
constructor({ addonStore, eventStore, featureToggleStore, }, { getLogger, server }, tagTypeService, addons) {
|
|
@@ -51,7 +51,7 @@ class AddonService {
|
|
|
51
51
|
// Memoized private function
|
|
52
52
|
this.fetchAddonConfigs = (0, memoizee_1.default)(async () => addonStore.getAll({ enabled: true }), {
|
|
53
53
|
promise: true,
|
|
54
|
-
maxAge:
|
|
54
|
+
maxAge: (0, date_fns_1.minutesToMilliseconds)(1),
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
loadSensitiveParams(addonProviders) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addon-service.js","sourceRoot":"","sources":["../../../src/lib/services/addon-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAgC;AAChC,6BAAsC;AACtC,sCAAuD;AACvD,wDAA0C;AAC1C,iDAA6C;AAC7C,mFAAyD;
|
|
1
|
+
{"version":3,"file":"addon-service.js","sourceRoot":"","sources":["../../../src/lib/services/addon-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,14 +10,14 @@ const api_user_1 = __importDefault(require("../types/api-user"));
|
|
|
10
10
|
const api_token_1 = require("../types/models/api-token");
|
|
11
11
|
const db_error_1 = require("../error/db-error");
|
|
12
12
|
const bad_data_error_1 = __importDefault(require("../error/bad-data-error"));
|
|
13
|
-
const
|
|
13
|
+
const date_fns_1 = require("date-fns");
|
|
14
14
|
class ApiTokenService {
|
|
15
15
|
constructor({ apiTokenStore }, config) {
|
|
16
16
|
this.activeTokens = [];
|
|
17
17
|
this.store = apiTokenStore;
|
|
18
18
|
this.logger = config.getLogger('/services/api-token-service.ts');
|
|
19
19
|
this.fetchActiveTokens();
|
|
20
|
-
this.timer = setInterval(() => this.fetchActiveTokens(),
|
|
20
|
+
this.timer = setInterval(() => this.fetchActiveTokens(), (0, date_fns_1.minutesToMilliseconds)(1)).unref();
|
|
21
21
|
}
|
|
22
22
|
async fetchActiveTokens() {
|
|
23
23
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-token-service.js","sourceRoot":"","sources":["../../../src/lib/services/api-token-service.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,sDAAqD;AAGrD,iEAAwC;AACxC,yDAKmC;AAEnC,gDAA0D;AAC1D,6EAAmD;
|
|
1
|
+
{"version":3,"file":"api-token-service.js","sourceRoot":"","sources":["../../../src/lib/services/api-token-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const client_metrics_schema_1 = require("./client-metrics-schema");
|
|
4
|
-
const
|
|
5
|
-
const ONE_DAY = 24 * 60 * 60 * 1000;
|
|
4
|
+
const date_fns_1 = require("date-fns");
|
|
6
5
|
class ClientMetricsServiceV2 {
|
|
7
|
-
constructor({ clientMetricsStoreV2 }, { getLogger }, bulkInterval =
|
|
6
|
+
constructor({ clientMetricsStoreV2 }, { getLogger }, bulkInterval = (0, date_fns_1.minutesToMilliseconds)(5)) {
|
|
8
7
|
this.clientMetricsStoreV2 = clientMetricsStoreV2;
|
|
9
8
|
this.logger = getLogger('/services/client-metrics/index.ts');
|
|
10
9
|
this.bulkInterval = bulkInterval;
|
|
11
10
|
this.timer = setInterval(() => {
|
|
12
11
|
this.clientMetricsStoreV2.clearMetrics(48);
|
|
13
|
-
},
|
|
12
|
+
}, (0, date_fns_1.hoursToMilliseconds)(24));
|
|
14
13
|
this.timer.unref();
|
|
15
14
|
}
|
|
16
15
|
async registerClientMetrics(data, clientIp) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-metrics-service-v2.js","sourceRoot":"","sources":["../../../../src/lib/services/client-metrics/client-metrics-service-v2.ts"],"names":[],"mappings":";;AASA,mEAA8D;
|
|
1
|
+
{"version":3,"file":"client-metrics-service-v2.js","sourceRoot":"","sources":["../../../../src/lib/services/client-metrics/client-metrics-service-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,42 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const events_1 = __importDefault(require("events"));
|
|
7
|
-
const moment_1 = __importDefault(require("moment"));
|
|
8
7
|
const index_1 = __importDefault(require("./index"));
|
|
9
8
|
const no_logger_1 = __importDefault(require("../../../test/fixtures/no-logger"));
|
|
9
|
+
const date_fns_1 = require("date-fns");
|
|
10
|
+
/**
|
|
11
|
+
* A utility to wait for any pending promises in the test subject code.
|
|
12
|
+
* For instance, if the test needs to wait for a timeout/interval handler,
|
|
13
|
+
* and that handler does something async, advancing the timers is not enough:
|
|
14
|
+
* We have to explicitly wait for the second promise.
|
|
15
|
+
* For more info, see https://stackoverflow.com/a/51045733/2868829
|
|
16
|
+
*
|
|
17
|
+
* Usage in test code after advancing timers, but before making assertions:
|
|
18
|
+
*
|
|
19
|
+
* test('hello', async () => {
|
|
20
|
+
* jest.useFakeTimers('modern');
|
|
21
|
+
*
|
|
22
|
+
* // Schedule a timeout with a callback that does something async
|
|
23
|
+
* // before calling our spy
|
|
24
|
+
* const spy = jest.fn();
|
|
25
|
+
* setTimeout(async () => {
|
|
26
|
+
* await Promise.resolve();
|
|
27
|
+
* spy();
|
|
28
|
+
* }, 1000);
|
|
29
|
+
*
|
|
30
|
+
* expect(spy).not.toHaveBeenCalled();
|
|
31
|
+
*
|
|
32
|
+
* jest.advanceTimersByTime(1500);
|
|
33
|
+
* await flushPromises(); // this is required to make it work!
|
|
34
|
+
*
|
|
35
|
+
* expect(spy).toHaveBeenCalledTimes(1);
|
|
36
|
+
*
|
|
37
|
+
* jest.useRealTimers();
|
|
38
|
+
* });
|
|
39
|
+
*/
|
|
40
|
+
function flushPromises() {
|
|
41
|
+
return Promise.resolve(setImmediate);
|
|
42
|
+
}
|
|
10
43
|
const appName = 'appName';
|
|
11
44
|
const instanceId = 'instanceId';
|
|
12
45
|
const createMetricsService = (cms) => new index_1.default({
|
|
@@ -32,8 +65,8 @@ test('data should expire', () => {
|
|
|
32
65
|
appName,
|
|
33
66
|
instanceId,
|
|
34
67
|
bucket: {
|
|
35
|
-
start: Date.now()
|
|
36
|
-
stop: Date.now()
|
|
68
|
+
start: (0, date_fns_1.subSeconds)(Date.now(), 2),
|
|
69
|
+
stop: (0, date_fns_1.subSeconds)(Date.now(), 1),
|
|
37
70
|
toggles: {
|
|
38
71
|
toggleX: {
|
|
39
72
|
yes: 123,
|
|
@@ -50,10 +83,10 @@ test('data should expire', () => {
|
|
|
50
83
|
metrics.lastMinuteList.on('expire', () => {
|
|
51
84
|
lastMinExpires++;
|
|
52
85
|
});
|
|
53
|
-
jest.advanceTimersByTime(
|
|
86
|
+
jest.advanceTimersByTime((0, date_fns_1.minutesToMilliseconds)(1));
|
|
54
87
|
expect(lastMinExpires).toBe(1);
|
|
55
88
|
expect(lastHourExpires).toBe(0);
|
|
56
|
-
jest.advanceTimersByTime(
|
|
89
|
+
jest.advanceTimersByTime((0, date_fns_1.hoursToMilliseconds)(1));
|
|
57
90
|
expect(lastMinExpires).toBe(1);
|
|
58
91
|
expect(lastHourExpires).toBe(1);
|
|
59
92
|
jest.useRealTimers();
|
|
@@ -170,36 +203,36 @@ test('should have correct values for lastMinute', () => {
|
|
|
170
203
|
const now = new Date();
|
|
171
204
|
const input = [
|
|
172
205
|
{
|
|
173
|
-
start: (0,
|
|
174
|
-
stop: (0,
|
|
206
|
+
start: (0, date_fns_1.subHours)(now, 1),
|
|
207
|
+
stop: (0, date_fns_1.subMinutes)(now, 59),
|
|
175
208
|
toggles: {
|
|
176
209
|
toggle: { yes: 10, no: 10 },
|
|
177
210
|
},
|
|
178
211
|
},
|
|
179
212
|
{
|
|
180
|
-
start: (0,
|
|
181
|
-
stop: (0,
|
|
213
|
+
start: (0, date_fns_1.subMinutes)(now, 30),
|
|
214
|
+
stop: (0, date_fns_1.subMinutes)(now, 29),
|
|
182
215
|
toggles: {
|
|
183
216
|
toggle: { yes: 10, no: 10 },
|
|
184
217
|
},
|
|
185
218
|
},
|
|
186
219
|
{
|
|
187
|
-
start: (0,
|
|
188
|
-
stop: (0,
|
|
220
|
+
start: (0, date_fns_1.subMinutes)(now, 2),
|
|
221
|
+
stop: (0, date_fns_1.subMinutes)(now, 1),
|
|
189
222
|
toggles: {
|
|
190
223
|
toggle: { yes: 10, no: 10 },
|
|
191
224
|
},
|
|
192
225
|
},
|
|
193
226
|
{
|
|
194
|
-
start: (0,
|
|
195
|
-
stop: (0,
|
|
227
|
+
start: (0, date_fns_1.subMinutes)(now, 2),
|
|
228
|
+
stop: (0, date_fns_1.subSeconds)(now, 59),
|
|
196
229
|
toggles: {
|
|
197
230
|
toggle: { yes: 10, no: 10 },
|
|
198
231
|
},
|
|
199
232
|
},
|
|
200
233
|
{
|
|
201
|
-
start:
|
|
202
|
-
stop: (0,
|
|
234
|
+
start: now,
|
|
235
|
+
stop: (0, date_fns_1.subSeconds)(now, 30),
|
|
203
236
|
toggles: {
|
|
204
237
|
toggle: { yes: 10, no: 10 },
|
|
205
238
|
},
|
|
@@ -217,10 +250,10 @@ test('should have correct values for lastMinute', () => {
|
|
|
217
250
|
// metrics.se
|
|
218
251
|
let c = metrics.getTogglesMetrics();
|
|
219
252
|
expect(c.lastMinute.toggle).toEqual({ yes: 20, no: 20 });
|
|
220
|
-
jest.advanceTimersByTime(
|
|
253
|
+
jest.advanceTimersByTime(10000);
|
|
221
254
|
c = metrics.getTogglesMetrics();
|
|
222
255
|
expect(c.lastMinute.toggle).toEqual({ yes: 10, no: 10 });
|
|
223
|
-
jest.advanceTimersByTime(
|
|
256
|
+
jest.advanceTimersByTime(20000);
|
|
224
257
|
c = metrics.getTogglesMetrics();
|
|
225
258
|
expect(c.lastMinute.toggle).toEqual({ yes: 0, no: 0 });
|
|
226
259
|
metrics.destroy();
|
|
@@ -230,32 +263,32 @@ test('should have correct values for lastHour', () => {
|
|
|
230
263
|
jest.useFakeTimers('modern');
|
|
231
264
|
const clientMetricsStore = new events_1.default();
|
|
232
265
|
const metrics = createMetricsService(clientMetricsStore);
|
|
233
|
-
const now =
|
|
266
|
+
const now = Date.now();
|
|
234
267
|
const input = [
|
|
235
268
|
{
|
|
236
|
-
start: (0,
|
|
237
|
-
stop: (0,
|
|
269
|
+
start: (0, date_fns_1.subHours)(now, 1),
|
|
270
|
+
stop: (0, date_fns_1.subMinutes)(now, 59),
|
|
238
271
|
toggles: {
|
|
239
272
|
toggle: { yes: 10, no: 10 },
|
|
240
273
|
},
|
|
241
274
|
},
|
|
242
275
|
{
|
|
243
|
-
start: (0,
|
|
244
|
-
stop: (0,
|
|
276
|
+
start: (0, date_fns_1.subMinutes)(now, 30),
|
|
277
|
+
stop: (0, date_fns_1.subMinutes)(now, 29),
|
|
245
278
|
toggles: {
|
|
246
279
|
toggle: { yes: 10, no: 10 },
|
|
247
280
|
},
|
|
248
281
|
},
|
|
249
282
|
{
|
|
250
|
-
start: (0,
|
|
251
|
-
stop: (0,
|
|
283
|
+
start: (0, date_fns_1.subMinutes)(now, 15),
|
|
284
|
+
stop: (0, date_fns_1.subMinutes)(now, 14),
|
|
252
285
|
toggles: {
|
|
253
286
|
toggle: { yes: 10, no: 10 },
|
|
254
287
|
},
|
|
255
288
|
},
|
|
256
289
|
{
|
|
257
|
-
start: (0,
|
|
258
|
-
stop: (0,
|
|
290
|
+
start: (0, date_fns_1.addMinutes)(now, 59),
|
|
291
|
+
stop: (0, date_fns_1.addHours)(now, 1),
|
|
259
292
|
toggles: {
|
|
260
293
|
toggle: { yes: 11, no: 11 },
|
|
261
294
|
},
|
|
@@ -273,23 +306,23 @@ test('should have correct values for lastHour', () => {
|
|
|
273
306
|
// metrics.se
|
|
274
307
|
let c = metrics.getTogglesMetrics();
|
|
275
308
|
expect(c.lastHour.toggle).toEqual({ yes: 41, no: 41 });
|
|
276
|
-
jest.advanceTimersByTime(
|
|
309
|
+
jest.advanceTimersByTime(10000);
|
|
277
310
|
c = metrics.getTogglesMetrics();
|
|
278
311
|
expect(c.lastHour.toggle).toEqual({ yes: 41, no: 41 });
|
|
279
312
|
// at 30
|
|
280
|
-
jest.advanceTimersByTime(
|
|
313
|
+
jest.advanceTimersByTime((0, date_fns_1.minutesToMilliseconds)(30));
|
|
281
314
|
c = metrics.getTogglesMetrics();
|
|
282
315
|
expect(c.lastHour.toggle).toEqual({ yes: 31, no: 31 });
|
|
283
316
|
// at 45
|
|
284
|
-
jest.advanceTimersByTime(
|
|
317
|
+
jest.advanceTimersByTime((0, date_fns_1.minutesToMilliseconds)(15));
|
|
285
318
|
c = metrics.getTogglesMetrics();
|
|
286
319
|
expect(c.lastHour.toggle).toEqual({ yes: 21, no: 21 });
|
|
287
320
|
// at 1:15
|
|
288
|
-
jest.advanceTimersByTime(
|
|
321
|
+
jest.advanceTimersByTime((0, date_fns_1.minutesToMilliseconds)(30));
|
|
289
322
|
c = metrics.getTogglesMetrics();
|
|
290
323
|
expect(c.lastHour.toggle).toEqual({ yes: 11, no: 11 });
|
|
291
324
|
// at 2:00
|
|
292
|
-
jest.advanceTimersByTime(
|
|
325
|
+
jest.advanceTimersByTime((0, date_fns_1.minutesToMilliseconds)(45));
|
|
293
326
|
c = metrics.getTogglesMetrics();
|
|
294
327
|
expect(c.lastHour.toggle).toEqual({ yes: 0, no: 0 });
|
|
295
328
|
metrics.destroy();
|
|
@@ -363,7 +396,8 @@ test('Multiple registrations of same appname and instanceid within same time per
|
|
|
363
396
|
await clientMetrics.registerClient(client1, '127.0.0.1');
|
|
364
397
|
await clientMetrics.registerClient(client1, '127.0.0.1');
|
|
365
398
|
await clientMetrics.registerClient(client1, '127.0.0.1');
|
|
366
|
-
|
|
399
|
+
jest.advanceTimersByTime(7000);
|
|
400
|
+
await flushPromises();
|
|
367
401
|
expect(appStoreSpy).toHaveBeenCalledTimes(1);
|
|
368
402
|
expect(bulkSpy).toHaveBeenCalledTimes(1);
|
|
369
403
|
const registrations = appStoreSpy.mock.calls[0][0];
|
|
@@ -413,9 +447,8 @@ test('Multiple unique clients causes multiple registrations', async () => {
|
|
|
413
447
|
await clientMetrics.registerClient(client2, '127.0.0.1');
|
|
414
448
|
await clientMetrics.registerClient(client2, '127.0.0.1');
|
|
415
449
|
await clientMetrics.registerClient(client2, '127.0.0.1');
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
expect(bulkSpy).toHaveBeenCalledTimes(1);
|
|
450
|
+
jest.advanceTimersByTime(7000);
|
|
451
|
+
await flushPromises();
|
|
419
452
|
const registrations = appStoreSpy.mock.calls[0][0];
|
|
420
453
|
expect(registrations.length).toBe(2);
|
|
421
454
|
jest.useRealTimers();
|
|
@@ -431,7 +464,7 @@ test('Same client registered outside of dedup interval will be registered twice'
|
|
|
431
464
|
const clientInstanceStore = {
|
|
432
465
|
bulkUpsert: bulkSpy,
|
|
433
466
|
};
|
|
434
|
-
const bulkInterval =
|
|
467
|
+
const bulkInterval = (0, date_fns_1.secondsToMilliseconds)(2);
|
|
435
468
|
const clientMetrics = new index_1.default({
|
|
436
469
|
clientMetricsStore,
|
|
437
470
|
strategyStore: null,
|
|
@@ -450,11 +483,12 @@ test('Same client registered outside of dedup interval will be registered twice'
|
|
|
450
483
|
await clientMetrics.registerClient(client1, '127.0.0.1');
|
|
451
484
|
await clientMetrics.registerClient(client1, '127.0.0.1');
|
|
452
485
|
await clientMetrics.registerClient(client1, '127.0.0.1');
|
|
453
|
-
|
|
486
|
+
jest.advanceTimersByTime(3000);
|
|
454
487
|
await clientMetrics.registerClient(client1, '127.0.0.1');
|
|
455
488
|
await clientMetrics.registerClient(client1, '127.0.0.1');
|
|
456
489
|
await clientMetrics.registerClient(client1, '127.0.0.1');
|
|
457
|
-
|
|
490
|
+
jest.advanceTimersByTime(3000);
|
|
491
|
+
await flushPromises();
|
|
458
492
|
expect(appStoreSpy).toHaveBeenCalledTimes(2);
|
|
459
493
|
expect(bulkSpy).toHaveBeenCalledTimes(2);
|
|
460
494
|
const firstRegistrations = appStoreSpy.mock.calls[0][0][0];
|
|
@@ -474,8 +508,7 @@ test('No registrations during a time period will not call stores', async () => {
|
|
|
474
508
|
const clientInstanceStore = {
|
|
475
509
|
bulkUpsert: bulkSpy,
|
|
476
510
|
};
|
|
477
|
-
|
|
478
|
-
const clientMetrics = new index_1.default({
|
|
511
|
+
new index_1.default({
|
|
479
512
|
clientMetricsStore,
|
|
480
513
|
strategyStore: null,
|
|
481
514
|
featureToggleStore: null,
|
|
@@ -483,7 +516,7 @@ test('No registrations during a time period will not call stores', async () => {
|
|
|
483
516
|
clientInstanceStore,
|
|
484
517
|
eventStore: null,
|
|
485
518
|
}, { getLogger: no_logger_1.default });
|
|
486
|
-
|
|
519
|
+
jest.advanceTimersByTime(6000);
|
|
487
520
|
expect(appStoreSpy).toHaveBeenCalledTimes(0);
|
|
488
521
|
expect(bulkSpy).toHaveBeenCalledTimes(0);
|
|
489
522
|
jest.useRealTimers();
|