unleash-server 4.3.1 → 4.4.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/CHANGELOG.md +1266 -0
- package/dist/lib/app.d.ts +1 -3
- package/dist/lib/app.js +3 -3
- package/dist/lib/app.js.map +1 -1
- package/dist/lib/create-config.js +2 -0
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/db/client-instance-store.d.ts +1 -0
- package/dist/lib/db/client-instance-store.js +7 -0
- package/dist/lib/db/client-instance-store.js.map +1 -1
- package/dist/lib/db/client-metrics-store-v2.d.ts +1 -0
- package/dist/lib/db/client-metrics-store-v2.js +8 -0
- package/dist/lib/db/client-metrics-store-v2.js.map +1 -1
- package/dist/lib/db/feature-strategy-store.js +1 -0
- package/dist/lib/db/feature-strategy-store.js.map +1 -1
- package/dist/lib/db/index.d.ts +1 -2
- package/dist/lib/db/index.js +2 -6
- package/dist/lib/db/index.js.map +1 -1
- package/dist/lib/db/project-store.js +10 -2
- package/dist/lib/db/project-store.js.map +1 -1
- package/dist/lib/metrics.js +2 -2
- package/dist/lib/metrics.js.map +1 -1
- package/dist/lib/metrics.test.js +1 -1
- package/dist/lib/metrics.test.js.map +1 -1
- package/dist/lib/middleware/oss-authentication.test.js +1 -3
- package/dist/lib/middleware/oss-authentication.test.js.map +1 -1
- package/dist/lib/routes/admin-api/client-metrics.js +2 -2
- package/dist/lib/routes/admin-api/client-metrics.js.map +1 -1
- package/dist/lib/routes/admin-api/config.test.js +2 -4
- package/dist/lib/routes/admin-api/config.test.js.map +1 -1
- package/dist/lib/routes/admin-api/context.test.js +2 -4
- package/dist/lib/routes/admin-api/context.test.js.map +1 -1
- package/dist/lib/routes/admin-api/email.test.js +1 -3
- package/dist/lib/routes/admin-api/email.test.js.map +1 -1
- package/dist/lib/routes/admin-api/events.test.js +1 -3
- package/dist/lib/routes/admin-api/events.test.js.map +1 -1
- package/dist/lib/routes/admin-api/feature.js +1 -1
- package/dist/lib/routes/admin-api/feature.js.map +1 -1
- package/dist/lib/routes/admin-api/metrics.d.ts +3 -6
- package/dist/lib/routes/admin-api/metrics.js +17 -31
- package/dist/lib/routes/admin-api/metrics.js.map +1 -1
- package/dist/lib/routes/admin-api/metrics.test.js +6 -65
- package/dist/lib/routes/admin-api/metrics.test.js.map +1 -1
- package/dist/lib/routes/admin-api/strategy.test.js +2 -4
- package/dist/lib/routes/admin-api/strategy.test.js.map +1 -1
- package/dist/lib/routes/admin-api/tag.test.js +2 -4
- package/dist/lib/routes/admin-api/tag.test.js.map +1 -1
- package/dist/lib/routes/admin-api/user.test.js +1 -3
- package/dist/lib/routes/admin-api/user.test.js.map +1 -1
- package/dist/lib/routes/backstage.test.js +2 -4
- package/dist/lib/routes/backstage.test.js.map +1 -1
- package/dist/lib/routes/client-api/feature.test.js +2 -4
- package/dist/lib/routes/client-api/feature.test.js.map +1 -1
- package/dist/lib/routes/client-api/metrics.d.ts +4 -4
- package/dist/lib/routes/client-api/metrics.js +3 -3
- package/dist/lib/routes/client-api/metrics.js.map +1 -1
- package/dist/lib/routes/client-api/metrics.test.js +5 -7
- package/dist/lib/routes/client-api/metrics.test.js.map +1 -1
- package/dist/lib/routes/client-api/register.d.ts +3 -3
- package/dist/lib/routes/client-api/register.js +2 -2
- package/dist/lib/routes/client-api/register.js.map +1 -1
- package/dist/lib/routes/client-api/register.test.js +2 -4
- package/dist/lib/routes/client-api/register.test.js.map +1 -1
- package/dist/lib/routes/health-check.test.js +3 -5
- package/dist/lib/routes/health-check.test.js.map +1 -1
- package/dist/lib/routes/index.test.js +2 -4
- package/dist/lib/routes/index.test.js.map +1 -1
- package/dist/lib/server-impl.js +4 -7
- package/dist/lib/server-impl.js.map +1 -1
- package/dist/lib/services/client-metrics/instance-service.d.ts +31 -0
- package/dist/lib/services/client-metrics/instance-service.js +125 -0
- package/dist/lib/services/client-metrics/instance-service.js.map +1 -0
- package/dist/lib/{db/client-metrics-store.test.d.ts → services/client-metrics/instance-service.test.d.ts} +0 -0
- package/dist/lib/services/client-metrics/instance-service.test.js +193 -0
- package/dist/lib/services/client-metrics/instance-service.test.js.map +1 -0
- package/dist/lib/services/client-metrics/{client-metrics-service-v2.d.ts → metrics-service-v2.d.ts} +3 -1
- package/dist/lib/services/client-metrics/{client-metrics-service-v2.js → metrics-service-v2.js} +12 -5
- package/dist/lib/services/client-metrics/metrics-service-v2.js.map +1 -0
- package/dist/lib/services/client-metrics/schema.d.ts +4 -0
- package/dist/lib/services/client-metrics/schema.js +63 -0
- package/dist/lib/services/client-metrics/schema.js.map +1 -0
- package/dist/lib/services/index.js +5 -5
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/project-health-service.js +1 -0
- package/dist/lib/services/project-health-service.js.map +1 -1
- package/dist/lib/types/events.d.ts +1 -0
- package/dist/lib/types/events.js +2 -1
- package/dist/lib/types/events.js.map +1 -1
- package/dist/lib/types/model.d.ts +2 -0
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/option.d.ts +3 -0
- package/dist/lib/types/option.js.map +1 -1
- package/dist/lib/types/services.d.ts +3 -3
- package/dist/lib/types/stores/client-instance-store.d.ts +1 -0
- package/dist/lib/types/stores/client-metrics-store-v2.d.ts +1 -0
- package/dist/lib/types/stores/project-store.d.ts +1 -0
- package/dist/lib/types/stores.d.ts +0 -2
- package/dist/migrations/20211130142314-add-updated-at-to-projects.d.ts +2 -0
- package/dist/migrations/20211130142314-add-updated-at-to-projects.js +8 -0
- package/dist/migrations/20211130142314-add-updated-at-to-projects.js.map +1 -0
- package/dist/migrations/20211209205201-drop-client-metrics.d.ts +2 -0
- package/dist/migrations/20211209205201-drop-client-metrics.js +13 -0
- package/dist/migrations/20211209205201-drop-client-metrics.js.map +1 -0
- package/dist/test/e2e/api/admin/metrics.e2e.test.js +6 -74
- package/dist/test/e2e/api/admin/metrics.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/features.e2e.test.js +43 -0
- package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/project.health.e2e.test.js +12 -0
- package/dist/test/e2e/api/admin/project/project.health.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/metrics.e2e.access.e2e.test.js +3 -3
- package/dist/test/e2e/api/client/metrics.e2e.access.e2e.test.js.map +1 -1
- package/dist/test/e2e/helpers/database-init.js +2 -6
- package/dist/test/e2e/helpers/database-init.js.map +1 -1
- package/dist/test/e2e/helpers/test-helper.js +2 -2
- package/dist/test/e2e/helpers/test-helper.js.map +1 -1
- package/dist/test/e2e/services/client-metrics-service.e2e.test.js +7 -7
- package/dist/test/e2e/services/client-metrics-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/project-store.e2e.test.js +1 -0
- package/dist/test/e2e/stores/project-store.e2e.test.js.map +1 -1
- package/dist/test/fixtures/fake-client-instance-store.d.ts +1 -0
- package/dist/test/fixtures/fake-client-instance-store.js +3 -0
- package/dist/test/fixtures/fake-client-instance-store.js.map +1 -1
- package/dist/test/fixtures/fake-client-metrics-store-v2.d.ts +2 -2
- package/dist/test/fixtures/fake-client-metrics-store-v2.js +3 -0
- package/dist/test/fixtures/fake-client-metrics-store-v2.js.map +1 -1
- package/dist/test/fixtures/store.js +0 -2
- package/dist/test/fixtures/store.js.map +1 -1
- package/package.json +9 -9
- package/dist/lib/db/client-metrics-db.d.ts +0 -18
- package/dist/lib/db/client-metrics-db.js +0 -94
- package/dist/lib/db/client-metrics-db.js.map +0 -1
- package/dist/lib/db/client-metrics-store.d.ts +0 -31
- package/dist/lib/db/client-metrics-store.js +0 -85
- package/dist/lib/db/client-metrics-store.js.map +0 -1
- package/dist/lib/db/client-metrics-store.test.js +0 -87
- package/dist/lib/db/client-metrics-store.test.js.map +0 -1
- package/dist/lib/services/client-metrics/client-metrics-schema.d.ts +0 -2
- package/dist/lib/services/client-metrics/client-metrics-schema.js +0 -32
- package/dist/lib/services/client-metrics/client-metrics-schema.js.map +0 -1
- package/dist/lib/services/client-metrics/client-metrics-service-v2.js.map +0 -1
- package/dist/lib/services/client-metrics/client-metrics.test.d.ts +0 -1
- package/dist/lib/services/client-metrics/client-metrics.test.js +0 -524
- package/dist/lib/services/client-metrics/client-metrics.test.js.map +0 -1
- package/dist/lib/services/client-metrics/index.d.ts +0 -50
- package/dist/lib/services/client-metrics/index.js +0 -267
- package/dist/lib/services/client-metrics/index.js.map +0 -1
- package/dist/lib/services/client-metrics/list.d.ts +0 -21
- package/dist/lib/services/client-metrics/list.js +0 -109
- package/dist/lib/services/client-metrics/list.js.map +0 -1
- package/dist/lib/services/client-metrics/list.test.d.ts +0 -1
- package/dist/lib/services/client-metrics/list.test.js +0 -100
- package/dist/lib/services/client-metrics/list.test.js.map +0 -1
- package/dist/lib/services/client-metrics/metrics-schema.d.ts +0 -2
- package/dist/lib/services/client-metrics/metrics-schema.js +0 -24
- package/dist/lib/services/client-metrics/metrics-schema.js.map +0 -1
- package/dist/lib/services/client-metrics/projection.d.ts +0 -7
- package/dist/lib/services/client-metrics/projection.js +0 -37
- package/dist/lib/services/client-metrics/projection.js.map +0 -1
- package/dist/lib/services/client-metrics/projection.test.d.ts +0 -1
- package/dist/lib/services/client-metrics/projection.test.js +0 -24
- package/dist/lib/services/client-metrics/projection.test.js.map +0 -1
- package/dist/lib/services/client-metrics/register-schema.d.ts +0 -2
- package/dist/lib/services/client-metrics/register-schema.js +0 -23
- package/dist/lib/services/client-metrics/register-schema.js.map +0 -1
- package/dist/lib/services/client-metrics/ttl-list.d.ts +0 -26
- package/dist/lib/services/client-metrics/ttl-list.js +0 -60
- package/dist/lib/services/client-metrics/ttl-list.js.map +0 -1
- package/dist/lib/services/client-metrics/ttl-list.test.d.ts +0 -1
- package/dist/lib/services/client-metrics/ttl-list.test.js +0 -71
- package/dist/lib/services/client-metrics/ttl-list.test.js.map +0 -1
- package/dist/lib/types/stores/client-metrics-db.d.ts +0 -11
- package/dist/lib/types/stores/client-metrics-db.js +0 -3
- package/dist/lib/types/stores/client-metrics-db.js.map +0 -1
- package/dist/lib/types/stores/client-metrics-store.d.ts +0 -7
- package/dist/lib/types/stores/client-metrics-store.js +0 -3
- package/dist/lib/types/stores/client-metrics-store.js.map +0 -1
- package/dist/test/fixtures/fake-client-metrics-store.d.ts +0 -16
- package/dist/test/fixtures/fake-client-metrics-store.js +0 -42
- package/dist/test/fixtures/fake-client-metrics-store.js.map +0 -1
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const supertest_1 = __importDefault(require("supertest"));
|
|
7
|
-
const events_1 = require("events");
|
|
8
7
|
const store_1 = __importDefault(require("../../../test/fixtures/store"));
|
|
9
8
|
const no_logger_1 = __importDefault(require("../../../test/fixtures/no-logger"));
|
|
10
9
|
const app_1 = __importDefault(require("../../app"));
|
|
@@ -12,7 +11,6 @@ const services_1 = require("../../services");
|
|
|
12
11
|
const feature_1 = __importDefault(require("./feature"));
|
|
13
12
|
const test_config_1 = require("../../../test/config/test-config");
|
|
14
13
|
const date_fns_1 = require("date-fns");
|
|
15
|
-
const eventBus = new events_1.EventEmitter();
|
|
16
14
|
function getSetup() {
|
|
17
15
|
const base = `/random${Math.round(Math.random() * 1000)}`;
|
|
18
16
|
const stores = (0, store_1.default)();
|
|
@@ -20,7 +18,7 @@ function getSetup() {
|
|
|
20
18
|
server: { baseUriPath: base },
|
|
21
19
|
});
|
|
22
20
|
const services = (0, services_1.createServices)(stores, config);
|
|
23
|
-
const app = (0, app_1.default)(config, stores, services
|
|
21
|
+
const app = (0, app_1.default)(config, stores, services);
|
|
24
22
|
return {
|
|
25
23
|
base,
|
|
26
24
|
featureToggleStore: stores.featureToggleStore,
|
|
@@ -28,7 +26,7 @@ function getSetup() {
|
|
|
28
26
|
request: (0, supertest_1.default)(app),
|
|
29
27
|
destroy: () => {
|
|
30
28
|
services.versionService.destroy();
|
|
31
|
-
services.
|
|
29
|
+
services.clientInstanceService.destroy();
|
|
32
30
|
services.apiTokenService.destroy();
|
|
33
31
|
},
|
|
34
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature.test.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/feature.test.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"feature.test.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/feature.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,15 +2,15 @@ import { Response } from 'express';
|
|
|
2
2
|
import Controller from '../controller';
|
|
3
3
|
import { IUnleashServices } from '../../types';
|
|
4
4
|
import { IUnleashConfig } from '../../types/option';
|
|
5
|
-
import
|
|
5
|
+
import ClientInstanceService from '../../services/client-metrics/instance-service';
|
|
6
6
|
import { Logger } from '../../logger';
|
|
7
7
|
import { IAuthRequest } from '../unleash-types';
|
|
8
|
-
import ClientMetricsServiceV2 from '../../services/client-metrics/
|
|
8
|
+
import ClientMetricsServiceV2 from '../../services/client-metrics/metrics-service-v2';
|
|
9
9
|
export default class ClientMetricsController extends Controller {
|
|
10
10
|
logger: Logger;
|
|
11
|
-
|
|
11
|
+
clientInstanceService: ClientInstanceService;
|
|
12
12
|
metricsV2: ClientMetricsServiceV2;
|
|
13
|
-
constructor({
|
|
13
|
+
constructor({ clientInstanceService, clientMetricsServiceV2, }: Pick<IUnleashServices, 'clientInstanceService' | 'clientMetricsServiceV2'>, config: IUnleashConfig);
|
|
14
14
|
private resolveEnvironment;
|
|
15
15
|
registerMetrics(req: IAuthRequest, res: Response): Promise<void>;
|
|
16
16
|
}
|
|
@@ -8,11 +8,11 @@ const api_user_1 = __importDefault(require("../../types/api-user"));
|
|
|
8
8
|
const api_token_1 = require("../../types/models/api-token");
|
|
9
9
|
const permissions_1 = require("../../types/permissions");
|
|
10
10
|
class ClientMetricsController extends controller_1.default {
|
|
11
|
-
constructor({
|
|
11
|
+
constructor({ clientInstanceService, clientMetricsServiceV2, }, config) {
|
|
12
12
|
super(config);
|
|
13
13
|
const { getLogger } = config;
|
|
14
14
|
this.logger = getLogger('/api/client/metrics');
|
|
15
|
-
this.
|
|
15
|
+
this.clientInstanceService = clientInstanceService;
|
|
16
16
|
this.metricsV2 = clientMetricsServiceV2;
|
|
17
17
|
this.post('/', this.registerMetrics, permissions_1.NONE);
|
|
18
18
|
}
|
|
@@ -30,7 +30,7 @@ class ClientMetricsController extends controller_1.default {
|
|
|
30
30
|
async registerMetrics(req, res) {
|
|
31
31
|
const { body: data, ip: clientIp, user } = req;
|
|
32
32
|
data.environment = this.resolveEnvironment(user, data);
|
|
33
|
-
await this.
|
|
33
|
+
await this.clientInstanceService.registerInstance(data, clientIp);
|
|
34
34
|
await this.metricsV2.registerClientMetrics(data, clientIp);
|
|
35
35
|
return res.status(202).end();
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/metrics.ts"],"names":[],"mappings":";;;;;AACA,+DAAuC;AAMvC,oEAA2C;AAC3C,4DAAmD;AAInD,yDAA+C;AAE/C,MAAqB,uBAAwB,SAAQ,oBAAU;IAO3D,YACI,EACI,
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/metrics.ts"],"names":[],"mappings":";;;;;AACA,+DAAuC;AAMvC,oEAA2C;AAC3C,4DAAmD;AAInD,yDAA+C;AAE/C,MAAqB,uBAAwB,SAAQ,oBAAU;IAO3D,YACI,EACI,qBAAqB,EACrB,sBAAsB,GAIzB,EACD,MAAsB;QAEtB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAE7B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC/C,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC;QAExC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,kBAAI,CAAC,CAAC;IAC/C,CAAC;IAEO,kBAAkB,CAAC,IAAU,EAAE,IAAgB;QACnD,IAAI,IAAI,YAAY,kBAAO,EAAE;YACzB,IAAI,IAAI,CAAC,WAAW,KAAK,eAAG,EAAE;gBAC1B,OAAO,IAAI,CAAC,WAAW,CAAC;aAC3B;iBAAM,IAAI,IAAI,CAAC,WAAW,KAAK,eAAG,IAAI,IAAI,CAAC,WAAW,EAAE;gBACrD,OAAO,IAAI,CAAC,WAAW,CAAC;aAC3B;SACJ;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAiB,EAAE,GAAa;QAClD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAElE,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE3D,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC;CACJ;AA/CD,0CA+CC"}
|
|
@@ -4,24 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const supertest_1 = __importDefault(require("supertest"));
|
|
7
|
-
const events_1 = require("events");
|
|
8
7
|
const store_1 = __importDefault(require("../../../test/fixtures/store"));
|
|
9
8
|
const app_1 = __importDefault(require("../../app"));
|
|
10
9
|
const test_config_1 = require("../../../test/config/test-config");
|
|
11
|
-
const
|
|
10
|
+
const schema_1 = require("../../services/client-metrics/schema");
|
|
12
11
|
const services_1 = require("../../services");
|
|
13
|
-
const eventBus = new events_1.EventEmitter();
|
|
14
12
|
function getSetup(opts) {
|
|
15
13
|
const stores = (0, store_1.default)();
|
|
16
14
|
const config = (0, test_config_1.createTestConfig)(opts);
|
|
17
15
|
const services = (0, services_1.createServices)(stores, config);
|
|
18
|
-
const app = (0, app_1.default)(config, stores, services
|
|
16
|
+
const app = (0, app_1.default)(config, stores, services);
|
|
19
17
|
return {
|
|
20
18
|
request: (0, supertest_1.default)(app),
|
|
21
19
|
stores,
|
|
22
20
|
destroy: () => {
|
|
23
21
|
services.versionService.destroy();
|
|
24
|
-
services.
|
|
22
|
+
services.clientInstanceService.destroy();
|
|
25
23
|
services.apiTokenService.destroy();
|
|
26
24
|
},
|
|
27
25
|
};
|
|
@@ -152,7 +150,7 @@ test('schema allow empty strings', () => {
|
|
|
152
150
|
stop: '2019-05-06T09:30:50.515Z',
|
|
153
151
|
},
|
|
154
152
|
};
|
|
155
|
-
const { error, value } =
|
|
153
|
+
const { error, value } = schema_1.clientMetricsSchema.validate(data);
|
|
156
154
|
expect(error).toBeFalsy();
|
|
157
155
|
expect(value.bucket.toggles.Demo2.yes).toBe(0);
|
|
158
156
|
expect(value.bucket.toggles.Demo2.no).toBe(0);
|
|
@@ -167,7 +165,7 @@ test('schema allow yes=<string nbr>', () => {
|
|
|
167
165
|
stop: '2019-05-06T09:30:50.515Z',
|
|
168
166
|
},
|
|
169
167
|
};
|
|
170
|
-
const { error, value } =
|
|
168
|
+
const { error, value } = schema_1.clientMetricsSchema.validate(data);
|
|
171
169
|
expect(error).toBeFalsy();
|
|
172
170
|
expect(value.bucket.toggles.Demo2.yes).toBe(12);
|
|
173
171
|
expect(value.bucket.toggles.Demo2.no).toBe(256);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.test.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/metrics.test.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"metrics.test.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/metrics.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,12 @@ import Controller from '../controller';
|
|
|
3
3
|
import { IUnleashServices } from '../../types';
|
|
4
4
|
import { IUnleashConfig } from '../../types/option';
|
|
5
5
|
import { Logger } from '../../logger';
|
|
6
|
-
import
|
|
6
|
+
import ClientInstanceService from '../../services/client-metrics/instance-service';
|
|
7
7
|
import { IAuthRequest } from '../../server-impl';
|
|
8
8
|
export default class RegisterController extends Controller {
|
|
9
9
|
logger: Logger;
|
|
10
|
-
metrics:
|
|
11
|
-
constructor({
|
|
10
|
+
metrics: ClientInstanceService;
|
|
11
|
+
constructor({ clientInstanceService, }: Pick<IUnleashServices, 'clientInstanceService'>, config: IUnleashConfig);
|
|
12
12
|
private resolveEnvironment;
|
|
13
13
|
handleRegister(req: IAuthRequest, res: Response): Promise<void>;
|
|
14
14
|
}
|
|
@@ -8,10 +8,10 @@ const api_user_1 = __importDefault(require("../../types/api-user"));
|
|
|
8
8
|
const api_token_1 = require("../../types/models/api-token");
|
|
9
9
|
const permissions_1 = require("../../types/permissions");
|
|
10
10
|
class RegisterController extends controller_1.default {
|
|
11
|
-
constructor({
|
|
11
|
+
constructor({ clientInstanceService, }, config) {
|
|
12
12
|
super(config);
|
|
13
13
|
this.logger = config.getLogger('/api/client/register');
|
|
14
|
-
this.metrics =
|
|
14
|
+
this.metrics = clientInstanceService;
|
|
15
15
|
// NONE permission is not optimal here in terms of readability.
|
|
16
16
|
this.post('/', this.handleRegister, permissions_1.NONE);
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/register.ts"],"names":[],"mappings":";;;;;AACA,+DAAuC;AAOvC,oEAA2C;AAC3C,4DAAmD;AACnD,yDAA+C;AAE/C,MAAqB,kBAAmB,SAAQ,oBAAU;IAKtD,YACI,EACI,
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/register.ts"],"names":[],"mappings":";;;;;AACA,+DAAuC;AAOvC,oEAA2C;AAC3C,4DAAmD;AACnD,yDAA+C;AAE/C,MAAqB,kBAAmB,SAAQ,oBAAU;IAKtD,YACI,EACI,qBAAqB,GACyB,EAClD,MAAsB;QAEtB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC;QAErC,+DAA+D;QAC/D,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,kBAAI,CAAC,CAAC;IAC9C,CAAC;IAEO,kBAAkB,CAAC,IAAU,EAAE,IAAgB;QACnD,IAAI,IAAI,YAAY,kBAAO,EAAE;YACzB,IAAI,IAAI,CAAC,WAAW,KAAK,eAAG,EAAE;gBAC1B,OAAO,IAAI,CAAC,WAAW,CAAC;aAC3B;iBAAM,IAAI,IAAI,CAAC,WAAW,KAAK,eAAG,IAAI,IAAI,CAAC,WAAW,EAAE;gBACrD,OAAO,IAAI,CAAC,WAAW,CAAC;aAC3B;SACJ;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAiB,EAAE,GAAa;QACjD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC;CACJ;AApCD,qCAoCC"}
|
|
@@ -4,24 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const supertest_1 = __importDefault(require("supertest"));
|
|
7
|
-
const events_1 = require("events");
|
|
8
7
|
const test_config_1 = require("../../../test/config/test-config");
|
|
9
8
|
const store_1 = __importDefault(require("../../../test/fixtures/store"));
|
|
10
9
|
const no_logger_1 = __importDefault(require("../../../test/fixtures/no-logger"));
|
|
11
10
|
const app_1 = __importDefault(require("../../app"));
|
|
12
11
|
const services_1 = require("../../services");
|
|
13
|
-
const eventBus = new events_1.EventEmitter();
|
|
14
12
|
function getSetup() {
|
|
15
13
|
const stores = (0, store_1.default)();
|
|
16
14
|
const config = (0, test_config_1.createTestConfig)();
|
|
17
15
|
const services = (0, services_1.createServices)(stores, config);
|
|
18
|
-
const app = (0, app_1.default)(config, stores, services
|
|
16
|
+
const app = (0, app_1.default)(config, stores, services);
|
|
19
17
|
return {
|
|
20
18
|
request: (0, supertest_1.default)(app),
|
|
21
19
|
stores,
|
|
22
20
|
destroy: () => {
|
|
23
21
|
services.versionService.destroy();
|
|
24
|
-
services.
|
|
22
|
+
services.clientInstanceService.destroy();
|
|
25
23
|
services.apiTokenService.destroy();
|
|
26
24
|
},
|
|
27
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.test.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/register.test.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"register.test.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/register.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,24 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const supertest_1 = __importDefault(require("supertest"));
|
|
7
|
-
const events_1 = require("events");
|
|
8
7
|
const services_1 = require("../services");
|
|
9
8
|
const test_config_1 = require("../../test/config/test-config");
|
|
10
9
|
const store_1 = __importDefault(require("../../test/fixtures/store"));
|
|
11
10
|
const no_logger_1 = __importDefault(require("../../test/fixtures/no-logger"));
|
|
12
11
|
const app_1 = __importDefault(require("../app"));
|
|
13
|
-
const eventBus = new events_1.EventEmitter();
|
|
14
12
|
function getSetup() {
|
|
15
13
|
const stores = (0, store_1.default)();
|
|
16
14
|
const config = (0, test_config_1.createTestConfig)();
|
|
17
15
|
const services = (0, services_1.createServices)(stores, config);
|
|
18
|
-
const app = (0, app_1.default)(config, stores, services
|
|
16
|
+
const app = (0, app_1.default)(config, stores, services);
|
|
19
17
|
return {
|
|
20
18
|
request: (0, supertest_1.default)(app),
|
|
21
19
|
stores,
|
|
22
20
|
destroy: () => {
|
|
23
21
|
services.versionService.destroy();
|
|
24
|
-
services.
|
|
22
|
+
services.clientInstanceService.destroy();
|
|
25
23
|
services.apiTokenService.destroy();
|
|
26
24
|
},
|
|
27
25
|
};
|
|
@@ -55,7 +53,7 @@ test('should give 500 when db is failing', () => {
|
|
|
55
53
|
// @ts-ignore
|
|
56
54
|
const services = (0, services_1.createServices)(failingStores, config);
|
|
57
55
|
// @ts-ignore
|
|
58
|
-
const app = (0, app_1.default)((0, test_config_1.createTestConfig)(), failingStores, services
|
|
56
|
+
const app = (0, app_1.default)((0, test_config_1.createTestConfig)(), failingStores, services);
|
|
59
57
|
request = (0, supertest_1.default)(app);
|
|
60
58
|
no_logger_1.default.setMuteError(true);
|
|
61
59
|
expect.assertions(2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-check.test.js","sourceRoot":"","sources":["../../../src/lib/routes/health-check.test.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"health-check.test.js","sourceRoot":"","sources":["../../../src/lib/routes/health-check.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const supertest_1 = __importDefault(require("supertest"));
|
|
7
|
-
const events_1 = require("events");
|
|
8
7
|
const test_config_1 = require("../../test/config/test-config");
|
|
9
8
|
const store_1 = __importDefault(require("../../test/fixtures/store"));
|
|
10
9
|
const app_1 = __importDefault(require("../app"));
|
|
11
10
|
const services_1 = require("../services");
|
|
12
|
-
const eventBus = new events_1.EventEmitter();
|
|
13
11
|
function getSetup() {
|
|
14
12
|
const base = `/random${Math.round(Math.random() * 1000)}`;
|
|
15
13
|
const stores = (0, store_1.default)();
|
|
@@ -17,13 +15,13 @@ function getSetup() {
|
|
|
17
15
|
server: { baseUriPath: base },
|
|
18
16
|
});
|
|
19
17
|
const services = (0, services_1.createServices)(stores, config);
|
|
20
|
-
const app = (0, app_1.default)(config, stores, services
|
|
18
|
+
const app = (0, app_1.default)(config, stores, services);
|
|
21
19
|
return {
|
|
22
20
|
base,
|
|
23
21
|
request: (0, supertest_1.default)(app),
|
|
24
22
|
destroy: () => {
|
|
25
23
|
services.versionService.destroy();
|
|
26
|
-
services.
|
|
24
|
+
services.clientInstanceService.destroy();
|
|
27
25
|
services.apiTokenService.destroy();
|
|
28
26
|
},
|
|
29
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/lib/routes/index.test.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAClC
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/lib/routes/index.test.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/server-impl.js
CHANGED
|
@@ -23,7 +23,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
25
|
exports.IAuthType = exports.RoleName = exports.LogLevel = exports.User = exports.AuthenticationRequired = exports.Controller = exports.eventType = exports.permissions = exports.create = exports.start = void 0;
|
|
26
|
-
const events_1 = __importDefault(require("events"));
|
|
27
26
|
const stoppable_1 = __importDefault(require("stoppable"));
|
|
28
27
|
const util_1 = require("util");
|
|
29
28
|
const version_1 = __importDefault(require("./util/version"));
|
|
@@ -57,9 +56,8 @@ async function createApp(config, startApp) {
|
|
|
57
56
|
// Database dependencies (stateful)
|
|
58
57
|
const logger = config.getLogger('server-impl.js');
|
|
59
58
|
const serverVersion = version_1.default;
|
|
60
|
-
const eventBus = new events_1.default();
|
|
61
59
|
const db = (0, db_pool_1.createDb)(config);
|
|
62
|
-
const stores = (0, db_1.createStores)(config,
|
|
60
|
+
const stores = (0, db_1.createStores)(config, db);
|
|
63
61
|
const services = (0, services_1.createServices)(stores, config);
|
|
64
62
|
const metricsMonitor = (0, metrics_1.createMetricsMonitor)();
|
|
65
63
|
const unleashSession = (0, session_db_1.default)(config, db);
|
|
@@ -71,7 +69,6 @@ async function createApp(config, startApp) {
|
|
|
71
69
|
}
|
|
72
70
|
metricsMonitor.stopMonitoring();
|
|
73
71
|
stores.clientInstanceStore.destroy();
|
|
74
|
-
stores.clientMetricsStore.destroy();
|
|
75
72
|
services.clientMetricsServiceV2.destroy();
|
|
76
73
|
await db.destroy();
|
|
77
74
|
};
|
|
@@ -80,14 +77,14 @@ async function createApp(config, startApp) {
|
|
|
80
77
|
// eslint-disable-next-line no-param-reassign
|
|
81
78
|
config.server.secret = secret;
|
|
82
79
|
}
|
|
83
|
-
const app = (0, app_1.default)(config, stores, services,
|
|
80
|
+
const app = (0, app_1.default)(config, stores, services, unleashSession);
|
|
84
81
|
if (typeof config.eventHook === 'function') {
|
|
85
82
|
(0, event_hook_1.addEventHook)(config.eventHook, stores.eventStore);
|
|
86
83
|
}
|
|
87
|
-
metricsMonitor.startMonitoring(config, stores, serverVersion, eventBus, db);
|
|
84
|
+
metricsMonitor.startMonitoring(config, stores, serverVersion, config.eventBus, db);
|
|
88
85
|
const unleash = {
|
|
89
86
|
stores,
|
|
90
|
-
eventBus,
|
|
87
|
+
eventBus: config.eventBus,
|
|
91
88
|
services,
|
|
92
89
|
app,
|
|
93
90
|
config,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-impl.js","sourceRoot":"","sources":["../../src/lib/server-impl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"server-impl.js","sourceRoot":"","sources":["../../src/lib/server-impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { IApplication } from './models';
|
|
2
|
+
import { IUnleashStores } from '../../types/stores';
|
|
3
|
+
import { IUnleashConfig } from '../../types/option';
|
|
4
|
+
import { IClientApplication } from '../../types/stores/client-applications-store';
|
|
5
|
+
import { IApplicationQuery } from '../../types/query';
|
|
6
|
+
import { IClientApp } from '../../types/model';
|
|
7
|
+
export default class ClientInstanceService {
|
|
8
|
+
apps: {};
|
|
9
|
+
logger: any;
|
|
10
|
+
seenClients: Record<string, IClientApp>;
|
|
11
|
+
private timers;
|
|
12
|
+
private clientMetricsStoreV2;
|
|
13
|
+
private strategyStore;
|
|
14
|
+
private featureToggleStore;
|
|
15
|
+
private clientApplicationsStore;
|
|
16
|
+
private clientInstanceStore;
|
|
17
|
+
private eventStore;
|
|
18
|
+
private bulkInterval;
|
|
19
|
+
private announcementInterval;
|
|
20
|
+
constructor({ clientMetricsStoreV2, strategyStore, featureToggleStore, clientInstanceStore, clientApplicationsStore, eventStore, }: Pick<IUnleashStores, 'clientMetricsStoreV2' | 'strategyStore' | 'featureToggleStore' | 'clientApplicationsStore' | 'clientInstanceStore' | 'eventStore'>, { getLogger }: Pick<IUnleashConfig, 'getLogger'>, bulkInterval?: number, announcementInterval?: number);
|
|
21
|
+
registerInstance(data: IClientApp, clientIp: string): Promise<void>;
|
|
22
|
+
registerClient(data: IClientApp, clientIp: string): Promise<void>;
|
|
23
|
+
announceUnannounced(): Promise<void>;
|
|
24
|
+
clientKey(client: IClientApp): string;
|
|
25
|
+
bulkAdd(): Promise<void>;
|
|
26
|
+
getApplications(query: IApplicationQuery): Promise<IClientApplication[]>;
|
|
27
|
+
getApplication(appName: string): Promise<IApplication>;
|
|
28
|
+
deleteApplication(appName: string): Promise<void>;
|
|
29
|
+
createApplication(input: IApplication): Promise<void>;
|
|
30
|
+
destroy(): void;
|
|
31
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const schema_1 = require("./schema");
|
|
4
|
+
const events_1 = require("../../types/events");
|
|
5
|
+
const schema_2 = require("./schema");
|
|
6
|
+
const date_fns_1 = require("date-fns");
|
|
7
|
+
const schema_3 = require("./schema");
|
|
8
|
+
class ClientInstanceService {
|
|
9
|
+
constructor({ clientMetricsStoreV2, strategyStore, featureToggleStore, clientInstanceStore, clientApplicationsStore, eventStore, }, { getLogger }, bulkInterval = (0, date_fns_1.secondsToMilliseconds)(5), announcementInterval = (0, date_fns_1.minutesToMilliseconds)(5)) {
|
|
10
|
+
this.apps = {};
|
|
11
|
+
this.logger = null;
|
|
12
|
+
this.seenClients = {};
|
|
13
|
+
this.timers = [];
|
|
14
|
+
this.clientMetricsStoreV2 = clientMetricsStoreV2;
|
|
15
|
+
this.strategyStore = strategyStore;
|
|
16
|
+
this.featureToggleStore = featureToggleStore;
|
|
17
|
+
this.clientApplicationsStore = clientApplicationsStore;
|
|
18
|
+
this.clientInstanceStore = clientInstanceStore;
|
|
19
|
+
this.eventStore = eventStore;
|
|
20
|
+
this.logger = getLogger('/services/client-metrics/client-instance-service.ts');
|
|
21
|
+
this.bulkInterval = bulkInterval;
|
|
22
|
+
this.announcementInterval = announcementInterval;
|
|
23
|
+
this.timers.push(setInterval(() => this.bulkAdd(), this.bulkInterval).unref());
|
|
24
|
+
this.timers.push(setInterval(() => this.announceUnannounced(), this.announcementInterval).unref());
|
|
25
|
+
}
|
|
26
|
+
async registerInstance(data, clientIp) {
|
|
27
|
+
const value = await schema_3.clientMetricsSchema.validateAsync(data);
|
|
28
|
+
await this.clientInstanceStore.setLastSeen({
|
|
29
|
+
appName: value.appName,
|
|
30
|
+
instanceId: value.instanceId,
|
|
31
|
+
environment: value.environment,
|
|
32
|
+
clientIp: clientIp,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
async registerClient(data, clientIp) {
|
|
36
|
+
const value = await schema_2.clientRegisterSchema.validateAsync(data);
|
|
37
|
+
value.clientIp = clientIp;
|
|
38
|
+
value.createdBy = clientIp;
|
|
39
|
+
this.seenClients[this.clientKey(value)] = value;
|
|
40
|
+
}
|
|
41
|
+
async announceUnannounced() {
|
|
42
|
+
if (this.clientApplicationsStore) {
|
|
43
|
+
const appsToAnnounce = await this.clientApplicationsStore.setUnannouncedToAnnounced();
|
|
44
|
+
if (appsToAnnounce.length > 0) {
|
|
45
|
+
const events = appsToAnnounce.map((app) => ({
|
|
46
|
+
type: events_1.APPLICATION_CREATED,
|
|
47
|
+
createdBy: app.createdBy || 'unknown',
|
|
48
|
+
data: app,
|
|
49
|
+
}));
|
|
50
|
+
await this.eventStore.batchStore(events);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
clientKey(client) {
|
|
55
|
+
return `${client.appName}_${client.instanceId}`;
|
|
56
|
+
}
|
|
57
|
+
async bulkAdd() {
|
|
58
|
+
if (this &&
|
|
59
|
+
this.seenClients &&
|
|
60
|
+
this.clientApplicationsStore &&
|
|
61
|
+
this.clientInstanceStore) {
|
|
62
|
+
const uniqueRegistrations = Object.values(this.seenClients);
|
|
63
|
+
const uniqueApps = Object.values(uniqueRegistrations.reduce((soFar, reg) => {
|
|
64
|
+
// eslint-disable-next-line no-param-reassign
|
|
65
|
+
soFar[reg.appName] = reg;
|
|
66
|
+
return soFar;
|
|
67
|
+
}, {}));
|
|
68
|
+
this.seenClients = {};
|
|
69
|
+
try {
|
|
70
|
+
if (uniqueRegistrations.length > 0) {
|
|
71
|
+
await this.clientApplicationsStore.bulkUpsert(uniqueApps);
|
|
72
|
+
await this.clientInstanceStore.bulkUpsert(uniqueRegistrations);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
this.logger.warn('Failed to register clients', err);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async getApplications(query) {
|
|
81
|
+
return this.clientApplicationsStore.getAppsForStrategy(query);
|
|
82
|
+
}
|
|
83
|
+
async getApplication(appName) {
|
|
84
|
+
const [seenToggles, application, instances, strategies, features] = await Promise.all([
|
|
85
|
+
this.clientMetricsStoreV2.getSeenTogglesForApp(appName),
|
|
86
|
+
this.clientApplicationsStore.get(appName),
|
|
87
|
+
this.clientInstanceStore.getByAppName(appName),
|
|
88
|
+
this.strategyStore.getAll(),
|
|
89
|
+
this.featureToggleStore.getAll(),
|
|
90
|
+
]);
|
|
91
|
+
return {
|
|
92
|
+
appName: application.appName,
|
|
93
|
+
createdAt: application.createdAt,
|
|
94
|
+
description: application.description,
|
|
95
|
+
url: application.url,
|
|
96
|
+
color: application.color,
|
|
97
|
+
icon: application.icon,
|
|
98
|
+
strategies: application.strategies.map((name) => {
|
|
99
|
+
const found = strategies.find((f) => f.name === name);
|
|
100
|
+
return found || { name, notFound: true };
|
|
101
|
+
}),
|
|
102
|
+
instances,
|
|
103
|
+
seenToggles: seenToggles.map((name) => {
|
|
104
|
+
const found = features.find((f) => f.name === name);
|
|
105
|
+
return found || { name, notFound: true };
|
|
106
|
+
}),
|
|
107
|
+
links: {
|
|
108
|
+
self: `/api/applications/${application.appName}`,
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
async deleteApplication(appName) {
|
|
113
|
+
await this.clientInstanceStore.deleteForApplication(appName);
|
|
114
|
+
await this.clientApplicationsStore.delete(appName);
|
|
115
|
+
}
|
|
116
|
+
async createApplication(input) {
|
|
117
|
+
const applicationData = await schema_1.applicationSchema.validateAsync(input);
|
|
118
|
+
await this.clientApplicationsStore.upsert(applicationData);
|
|
119
|
+
}
|
|
120
|
+
destroy() {
|
|
121
|
+
this.timers.forEach(clearInterval);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.default = ClientInstanceService;
|
|
125
|
+
//# sourceMappingURL=instance-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-service.js","sourceRoot":"","sources":["../../../../src/lib/services/client-metrics/instance-service.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|