unleash-server 4.22.0 → 4.22.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/routes/admin-api/api-token.js +1 -1
- package/dist/lib/routes/admin-api/api-token.js.map +1 -1
- package/dist/lib/routes/admin-api/project/api-token.js +1 -1
- package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
- package/dist/lib/routes/admin-api/user/pat.d.ts +1 -0
- package/dist/lib/routes/admin-api/user/pat.js +9 -0
- package/dist/lib/routes/admin-api/user/pat.js.map +1 -1
- package/dist/lib/services/project-schema.js +1 -4
- package/dist/lib/services/project-schema.js.map +1 -1
- package/dist/lib/services/proxy-service.d.ts +6 -1
- package/dist/lib/services/proxy-service.js +18 -7
- package/dist/lib/services/proxy-service.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +1 -0
- package/dist/lib/types/experimental.js +1 -0
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/test/e2e/api/proxy/proxy.concurrency.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/proxy/proxy.concurrency.e2e.test.js +58 -0
- package/dist/test/e2e/api/proxy/proxy.concurrency.e2e.test.js.map +1 -0
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/{CreateProject-79087949.js → CreateProject-51932050.js} +1 -1
- package/frontend/build/static/{Error-b8ec37c0.js → Error-e6e1194a.js} +1 -1
- package/frontend/build/static/{ExpandMore-4c20b51c.js → ExpandMore-d71bbced.js} +1 -1
- package/frontend/build/static/{FeatureArchiveDialog-b81c4e16.js → FeatureArchiveDialog-fd71aac2.js} +1 -1
- package/frontend/build/static/{FeatureMetricsChart-37e55387.js → FeatureMetricsChart-66e2ebdf.js} +1 -1
- package/frontend/build/static/FeatureViewLazyExport-3403c2b4.js +7 -0
- package/frontend/build/static/{LazyAdminExport-0f2734aa.js → LazyAdminExport-17ef1739.js} +2 -2
- package/frontend/build/static/{LazyProjectExport-cb47b897.js → LazyProjectExport-96365c31.js} +1 -1
- package/frontend/build/static/{NetworkOverview-8b64cc40.js → NetworkOverview-02d7cec9.js} +1 -1
- package/frontend/build/static/{NetworkTraffic-38cef6f4.js → NetworkTraffic-ea8ea762.js} +1 -1
- package/frontend/build/static/{Playground-4e2c6704.js → Playground-1b14c01c.js} +1 -1
- package/frontend/build/static/{StrategyItemContainer-d93244f3.js → StrategyItemContainer-7ce39bda.js} +1 -1
- package/frontend/build/static/{chartjs-adapter-date-fns.esm-24250637.js → chartjs-adapter-date-fns.esm-8ccfeb24.js} +1 -1
- package/frontend/build/static/{index-32a0dc63.js → index-17782336.js} +1 -1
- package/frontend/build/static/{index-c4e310cb.js → index-1d165488.js} +66 -66
- package/frontend/build/static/{index-fe84ab30.js → index-96dcc77e.js} +1 -1
- package/frontend/build/static/{unknownify-8af014d5.js → unknownify-132fbce3.js} +1 -1
- package/frontend/build/static/{useProjectRole-08992a4c.js → useProjectRole-f048973d.js} +1 -1
- package/package.json +1 -1
- package/frontend/build/static/FeatureViewLazyExport-10ea877c.js +0 -7
|
@@ -110,7 +110,7 @@ class ApiTokenController extends controller_1.default {
|
|
|
110
110
|
async deleteApiToken(req, res) {
|
|
111
111
|
const { token } = req.params;
|
|
112
112
|
await this.apiTokenService.delete(token, (0, util_1.extractUsername)(req));
|
|
113
|
-
this.proxyService.deleteClientForProxyToken(token);
|
|
113
|
+
await this.proxyService.deleteClientForProxyToken(token);
|
|
114
114
|
res.status(200).end();
|
|
115
115
|
}
|
|
116
116
|
async accessibleTokens(user) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-token.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/api-token.ts"],"names":[],"mappings":";;;;;;AAEA,+DAAuC;AACvC,yDAMiC;AAOjC,4DAAuE;AACvE,oEAA+D;AAG/D,oFAA+E;AAC/E,sFAGmD;AACnD,4EAG8C;AAC9C,iEAA6D;AAC7D,0EAG6C;AAE7C,8EAAsE;AAEtE,qCAA6C;AAK7C,MAAa,kBAAmB,SAAQ,oBAAU;IAW9C,YACI,MAAsB,EACtB,EACI,eAAe,EACf,aAAa,EACb,YAAY,EACZ,cAAc,GAOjB;QAED,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAE1D,IAAI,CAAC,KAAK,CAAC;YACP,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,UAAU,EAAE,4BAAc;YAC1B,UAAU,EAAE;gBACR,cAAc,CAAC,SAAS,CAAC;oBACrB,IAAI,EAAE,CAAC,YAAY,CAAC;oBACpB,WAAW,EAAE,iBAAiB;oBAC9B,SAAS,EAAE;wBACP,GAAG,EAAE,IAAA,6CAAoB,EAAC,iBAAiB,CAAC;qBAC/C;iBACJ,CAAC;aACL;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC;YACP,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,UAAU,EAAE,8BAAgB;YAC5B,UAAU,EAAE;gBACR,cAAc,CAAC,SAAS,CAAC;oBACrB,IAAI,EAAE,CAAC,YAAY,CAAC;oBACpB,WAAW,EAAE,gBAAgB;oBAC7B,WAAW,EAAE,IAAA,2CAAmB,EAAC,sBAAsB,CAAC;oBACxD,SAAS,EAAE;wBACP,GAAG,EAAE,IAAA,sDAA6B,EAAC,gBAAgB,CAAC;qBACvD;iBACJ,CAAC;aACL;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC;YACP,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,UAAU,EAAE,8BAAgB;YAC5B,UAAU,EAAE;gBACR,cAAc,CAAC,SAAS,CAAC;oBACrB,IAAI,EAAE,CAAC,YAAY,CAAC;oBACpB,WAAW,EAAE,gBAAgB;oBAC7B,WAAW,EAAE,IAAA,2CAAmB,EAAC,sBAAsB,CAAC;oBACxD,SAAS,EAAE;wBACP,GAAG,EAAE,kCAAa;qBACrB;iBACJ,CAAC;aACL;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC;YACP,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,oBAAoB,EAAE,IAAI;YAC1B,UAAU,EAAE,8BAAgB;YAC5B,UAAU,EAAE;gBACR,cAAc,CAAC,SAAS,CAAC;oBACrB,IAAI,EAAE,CAAC,YAAY,CAAC;oBACpB,WAAW,EAAE,gBAAgB;oBAC7B,SAAS,EAAE;wBACP,GAAG,EAAE,kCAAa;qBACrB;iBACJ,CAAC;aACL;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,eAAe,CACjB,GAAiB,EACjB,GAA8B;QAE9B,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,qBAAqB,CACrC,GAAG,EACH,GAAG,EACH,mCAAe,CAAC,GAAG,EACnB,EAAE,MAAM,EAAE,IAAA,gCAAc,EAAC,MAAM,CAAC,EAAE,CACrC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,GAAiB,EACjB,GAA6B;QAE7B,MAAM,WAAW,GAAG,MAAM,iCAAc,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CACnD,WAAW,EACX,IAAA,sBAAe,EAAC,GAAG,CAAC,CACvB,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,qBAAqB,CACrC,GAAG,EACH,GAAG,EACH,iCAAc,CAAC,GAAG,EAClB,IAAA,gCAAc,EAAC,KAAK,CAAC,EACrB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC7B,CAAC;IACN,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,GAAyD,EACzD,GAAa;QAEb,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAE/B,IAAI,CAAC,SAAS,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;SACjC;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CACnC,KAAK,EACL,IAAI,IAAI,CAAC,SAAS,CAAC,EACnB,IAAA,sBAAe,EAAC,GAAG,CAAC,CACvB,CAAC;QACF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,GAA6B,EAC7B,GAAa;QAEb,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAE7B,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,IAAA,sBAAe,EAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"api-token.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/api-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,7 +101,7 @@ class ProjectApiTokenController extends controller_1.default {
|
|
|
101
101
|
(storedToken.projects.length === 1 &&
|
|
102
102
|
storedToken.project[0] === projectId))) {
|
|
103
103
|
await this.apiTokenService.delete(token, (0, util_1.extractUsername)(req));
|
|
104
|
-
this.proxyService.deleteClientForProxyToken(token);
|
|
104
|
+
await this.proxyService.deleteClientForProxyToken(token);
|
|
105
105
|
res.status(200).end();
|
|
106
106
|
}
|
|
107
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-token.js","sourceRoot":"","sources":["../../../../../src/lib/routes/admin-api/project/api-token.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api-token.js","sourceRoot":"","sources":["../../../../../src/lib/routes/admin-api/project/api-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export default class PatController extends Controller {
|
|
|
7
7
|
private patService;
|
|
8
8
|
private openApiService;
|
|
9
9
|
private logger;
|
|
10
|
+
private flagResolver;
|
|
10
11
|
constructor(config: IUnleashConfig, { openApiService, patService, }: Pick<IUnleashServices, 'openApiService' | 'patService'>);
|
|
11
12
|
createPat(req: IAuthRequest, res: Response): Promise<void>;
|
|
12
13
|
getPats(req: IAuthRequest, res: Response<PatSchema>): Promise<void>;
|
|
@@ -15,6 +15,7 @@ class PatController extends controller_1.default {
|
|
|
15
15
|
constructor(config, { openApiService, patService, }) {
|
|
16
16
|
super(config);
|
|
17
17
|
this.logger = config.getLogger('lib/routes/auth/pat-controller.ts');
|
|
18
|
+
this.flagResolver = config.flagResolver;
|
|
18
19
|
this.openApiService = openApiService;
|
|
19
20
|
this.patService = patService;
|
|
20
21
|
this.route({
|
|
@@ -60,11 +61,19 @@ class PatController extends controller_1.default {
|
|
|
60
61
|
});
|
|
61
62
|
}
|
|
62
63
|
async createPat(req, res) {
|
|
64
|
+
if (this.flagResolver.isEnabled('personalAccessTokensKillSwitch')) {
|
|
65
|
+
res.status(404).send({ message: 'PAT is disabled' });
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
63
68
|
const pat = req.body;
|
|
64
69
|
const createdPat = await this.patService.createPat(pat, req.user.id, req.user);
|
|
65
70
|
this.openApiService.respondWithValidation(201, res, pat_schema_1.patSchema.$id, (0, serialize_dates_1.serializeDates)(createdPat));
|
|
66
71
|
}
|
|
67
72
|
async getPats(req, res) {
|
|
73
|
+
if (this.flagResolver.isEnabled('personalAccessTokensKillSwitch')) {
|
|
74
|
+
res.status(404).send({ message: 'PAT is disabled' });
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
68
77
|
const pats = await this.patService.getAll(req.user.id);
|
|
69
78
|
this.openApiService.respondWithValidation(200, res, pats_schema_1.patsSchema.$id, {
|
|
70
79
|
pats: (0, serialize_dates_1.serializeDates)(pats),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pat.js","sourceRoot":"","sources":["../../../../../src/lib/routes/admin-api/user/pat.ts"],"names":[],"mappings":";;;;;AACA,kEAA0C;
|
|
1
|
+
{"version":3,"file":"pat.js","sourceRoot":"","sources":["../../../../../src/lib/routes/admin-api/user/pat.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,10 +13,7 @@ exports.projectSchema = joi_1.default
|
|
|
13
13
|
name: joi_1.default.string().required(),
|
|
14
14
|
description: joi_1.default.string().allow(null).allow('').optional(),
|
|
15
15
|
mode: joi_1.default.string().valid('open', 'protected').default('open'),
|
|
16
|
-
defaultStickiness: joi_1.default
|
|
17
|
-
.string()
|
|
18
|
-
.valid('default', 'userId', 'sessionId', 'random')
|
|
19
|
-
.default('default'),
|
|
16
|
+
defaultStickiness: joi_1.default.string().default('default'),
|
|
20
17
|
})
|
|
21
18
|
.options({ allowUnknown: false, stripUnknown: true });
|
|
22
19
|
//# sourceMappingURL=project-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-schema.js","sourceRoot":"","sources":["../../../src/lib/services/project-schema.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AACtB,yCAA0C;AAE7B,QAAA,aAAa,GAAG,aAAG;KAC3B,MAAM,EAAE;KACR,IAAI,CAAC;IACF,EAAE,EAAE,eAAQ;IACZ,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1D,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7D,iBAAiB,EAAE,aAAG
|
|
1
|
+
{"version":3,"file":"project-schema.js","sourceRoot":"","sources":["../../../src/lib/services/project-schema.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AACtB,yCAA0C;AAE7B,QAAA,aAAa,GAAG,aAAG;KAC3B,MAAM,EAAE;KACR,IAAI,CAAC;IACF,EAAE,EAAE,eAAQ;IACZ,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1D,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7D,iBAAiB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;CACrD,CAAC;KACD,OAAO,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC"}
|
|
@@ -11,6 +11,11 @@ export declare class ProxyService {
|
|
|
11
11
|
private readonly logger;
|
|
12
12
|
private readonly stores;
|
|
13
13
|
private readonly services;
|
|
14
|
+
/**
|
|
15
|
+
* This is intentionally a Promise becasue we want to be able to await
|
|
16
|
+
* until the client (which might be being created by a different request) is ready
|
|
17
|
+
* Check this test that fails if we don't use a Promise: src/test/e2e/api/proxy/proxy.concurrency.e2e.test.ts
|
|
18
|
+
*/
|
|
14
19
|
private readonly clients;
|
|
15
20
|
private cachedFrontendSettings?;
|
|
16
21
|
private timer;
|
|
@@ -19,7 +24,7 @@ export declare class ProxyService {
|
|
|
19
24
|
registerProxyMetrics(token: ApiUser, metrics: ClientMetricsSchema, ip: string): Promise<void>;
|
|
20
25
|
private clientForProxyToken;
|
|
21
26
|
private createClientForProxyToken;
|
|
22
|
-
deleteClientForProxyToken(secret: string): void
|
|
27
|
+
deleteClientForProxyToken(secret: string): Promise<void>;
|
|
23
28
|
stopAll(): void;
|
|
24
29
|
private static assertExpectedTokenType;
|
|
25
30
|
setFrontendSettings(value: FrontendSettings, createdBy: string): Promise<void>;
|
|
@@ -10,6 +10,11 @@ const error_1 = require("../error");
|
|
|
10
10
|
const date_fns_1 = require("date-fns");
|
|
11
11
|
class ProxyService {
|
|
12
12
|
constructor(config, stores, services) {
|
|
13
|
+
/**
|
|
14
|
+
* This is intentionally a Promise becasue we want to be able to await
|
|
15
|
+
* until the client (which might be being created by a different request) is ready
|
|
16
|
+
* Check this test that fails if we don't use a Promise: src/test/e2e/api/proxy/proxy.concurrency.e2e.test.ts
|
|
17
|
+
*/
|
|
13
18
|
this.clients = new Map();
|
|
14
19
|
this.config = config;
|
|
15
20
|
this.logger = config.getLogger('services/proxy-service.ts');
|
|
@@ -36,10 +41,12 @@ class ProxyService {
|
|
|
36
41
|
}
|
|
37
42
|
async clientForProxyToken(token) {
|
|
38
43
|
ProxyService.assertExpectedTokenType(token);
|
|
39
|
-
|
|
40
|
-
|
|
44
|
+
let client = this.clients.get(token.secret);
|
|
45
|
+
if (!client) {
|
|
46
|
+
client = this.createClientForProxyToken(token);
|
|
47
|
+
this.clients.set(token.secret, client);
|
|
41
48
|
}
|
|
42
|
-
return
|
|
49
|
+
return client;
|
|
43
50
|
}
|
|
44
51
|
async createClientForProxyToken(token) {
|
|
45
52
|
const repository = new proxy_1.ProxyRepository(this.config, this.stores, this.services, token);
|
|
@@ -56,12 +63,16 @@ class ProxyService {
|
|
|
56
63
|
await client.start();
|
|
57
64
|
return client;
|
|
58
65
|
}
|
|
59
|
-
deleteClientForProxyToken(secret) {
|
|
60
|
-
this.clients.get(secret)
|
|
61
|
-
|
|
66
|
+
async deleteClientForProxyToken(secret) {
|
|
67
|
+
let clientPromise = this.clients.get(secret);
|
|
68
|
+
if (clientPromise) {
|
|
69
|
+
const client = await clientPromise;
|
|
70
|
+
client.destroy();
|
|
71
|
+
this.clients.delete(secret);
|
|
72
|
+
}
|
|
62
73
|
}
|
|
63
74
|
stopAll() {
|
|
64
|
-
this.clients.forEach((
|
|
75
|
+
this.clients.forEach((promise) => promise.then((c) => c.destroy()));
|
|
65
76
|
}
|
|
66
77
|
static assertExpectedTokenType({ type }) {
|
|
67
78
|
if (!(type === api_token_1.ApiTokenType.FRONTEND || type === api_token_1.ApiTokenType.ADMIN)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-service.js","sourceRoot":"","sources":["../../../src/lib/services/proxy-service.ts"],"names":[],"mappings":";;;AAIA,mDAKwB;AACxB,oCAA2C;AAC3C,yDAAyD;AACzD,2EAG6C;AAC7C,kCAA0C;AAC1C,oCAA2D;AAC3D,uCAAiD;AAiBjD,MAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"proxy-service.js","sourceRoot":"","sources":["../../../src/lib/services/proxy-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ const flags = {
|
|
|
22
22
|
projectScopedSegments: (0, util_1.parseEnvVarBoolean)(process.env.PROJECT_SCOPED_SEGMENTS, false),
|
|
23
23
|
projectScopedStickiness: (0, util_1.parseEnvVarBoolean)(process.env.PROJECT_SCOPED_STICKINESS, false),
|
|
24
24
|
projectMode: (0, util_1.parseEnvVarBoolean)(process.env.PROJECT_MODE, false),
|
|
25
|
+
personalAccessTokensKillSwitch: (0, util_1.parseEnvVarBoolean)(process.env.UNLEASH_PAT_KILL_SWITCH, false),
|
|
25
26
|
cleanClientApi: (0, util_1.parseEnvVarBoolean)(process.env.CLEAN_CLIENT_API, false),
|
|
26
27
|
optimal304: (0, util_1.parseEnvVarBoolean)(process.env.UNLEASH_EXPERIMENTAL_OPTIMAL_304, false),
|
|
27
28
|
optimal304Differ: (0, util_1.parseEnvVarBoolean)(process.env.UNLEASH_EXPERIMENTAL_OPTIMAL_304_DIFFER, false),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experimental.js","sourceRoot":"","sources":["../../../src/lib/types/experimental.ts"],"names":[],"mappings":";;;AAAA,kCAA6C;AAK7C,MAAM,KAAK,GAAG;IACV,wBAAwB,EAAE,KAAK;IAC/B,iBAAiB,EAAE,KAAK;IACxB,UAAU,EAAE,IAAA,yBAAkB,EAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,IAAI,CACP;IACD,gBAAgB,EAAE,IAAA,yBAAkB,EAChC,OAAO,CAAC,GAAG,CAAC,uCAAuC,EACnD,KAAK,CACR;IACD,kBAAkB,EAAE,IAAA,yBAAkB,EAClC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAChC,KAAK,CACR;IACD,kBAAkB,EAAE,IAAA,yBAAkB,EAClC,OAAO,CAAC,GAAG,CAAC,yCAAyC,EACrD,IAAI,CACP;IACD,iCAAiC,EAAE,IAAA,yBAAkB,EACjD,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAC3D,KAAK,CACR;IACD,eAAe,EAAE,IAAA,yBAAkB,EAC/B,OAAO,CAAC,GAAG,CAAC,qCAAqC,EACjD,KAAK,CACR;IACD,aAAa,EAAE,IAAA,yBAAkB,EAC7B,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAC/C,KAAK,CACR;IACD,oBAAoB,EAAE,IAAA,yBAAkB,EACpC,OAAO,CAAC,GAAG,CAAC,2CAA2C,EACvD,IAAI,CACP;IACD,0BAA0B,EAAE,IAAA,yBAAkB,EAC1C,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAC9D,KAAK,CACR;IACD,YAAY,EAAE,IAAA,yBAAkB,EAC5B,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAC/C,KAAK,CACR;IACD,sBAAsB,EAAE,IAAA,yBAAkB,EACtC,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAC3C,KAAK,CACR;IACD,iBAAiB,EAAE,IAAA,yBAAkB,EACjC,OAAO,CAAC,GAAG,CAAC,4BAA4B,EACxC,KAAK,CACR;IACD,YAAY,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC;IAC1E,cAAc,EAAE,IAAA,yBAAkB,EAC9B,OAAO,CAAC,GAAG,CAAC,uBAAuB,EACnC,KAAK,CACR;IACD,qBAAqB,EAAE,IAAA,yBAAkB,EACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EACnC,KAAK,CACR;IACD,uBAAuB,EAAE,IAAA,yBAAkB,EACvC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EACrC,KAAK,CACR;IACD,WAAW,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC;IAChE,cAAc,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACvE,UAAU,EAAE,IAAA,yBAAkB,EAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,KAAK,CACR;IACD,gBAAgB,EAAE,IAAA,yBAAkB,EAChC,OAAO,CAAC,GAAG,CAAC,uCAAuC,EACnD,KAAK,CACR;IACD,aAAa,EAAE,IAAA,yBAAkB,EAC7B,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAC/C,KAAK,CACR;CACJ,CAAC;AAEW,QAAA,0BAA0B,GAAyB;IAC5D,KAAK;IACL,gBAAgB,EAAE,EAAE,SAAS,EAAE,GAAY,EAAE,CAAC,KAAK,EAAE;CACxD,CAAC"}
|
|
1
|
+
{"version":3,"file":"experimental.js","sourceRoot":"","sources":["../../../src/lib/types/experimental.ts"],"names":[],"mappings":";;;AAAA,kCAA6C;AAK7C,MAAM,KAAK,GAAG;IACV,wBAAwB,EAAE,KAAK;IAC/B,iBAAiB,EAAE,KAAK;IACxB,UAAU,EAAE,IAAA,yBAAkB,EAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,IAAI,CACP;IACD,gBAAgB,EAAE,IAAA,yBAAkB,EAChC,OAAO,CAAC,GAAG,CAAC,uCAAuC,EACnD,KAAK,CACR;IACD,kBAAkB,EAAE,IAAA,yBAAkB,EAClC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAChC,KAAK,CACR;IACD,kBAAkB,EAAE,IAAA,yBAAkB,EAClC,OAAO,CAAC,GAAG,CAAC,yCAAyC,EACrD,IAAI,CACP;IACD,iCAAiC,EAAE,IAAA,yBAAkB,EACjD,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAC3D,KAAK,CACR;IACD,eAAe,EAAE,IAAA,yBAAkB,EAC/B,OAAO,CAAC,GAAG,CAAC,qCAAqC,EACjD,KAAK,CACR;IACD,aAAa,EAAE,IAAA,yBAAkB,EAC7B,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAC/C,KAAK,CACR;IACD,oBAAoB,EAAE,IAAA,yBAAkB,EACpC,OAAO,CAAC,GAAG,CAAC,2CAA2C,EACvD,IAAI,CACP;IACD,0BAA0B,EAAE,IAAA,yBAAkB,EAC1C,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAC9D,KAAK,CACR;IACD,YAAY,EAAE,IAAA,yBAAkB,EAC5B,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAC/C,KAAK,CACR;IACD,sBAAsB,EAAE,IAAA,yBAAkB,EACtC,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAC3C,KAAK,CACR;IACD,iBAAiB,EAAE,IAAA,yBAAkB,EACjC,OAAO,CAAC,GAAG,CAAC,4BAA4B,EACxC,KAAK,CACR;IACD,YAAY,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC;IAC1E,cAAc,EAAE,IAAA,yBAAkB,EAC9B,OAAO,CAAC,GAAG,CAAC,uBAAuB,EACnC,KAAK,CACR;IACD,qBAAqB,EAAE,IAAA,yBAAkB,EACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EACnC,KAAK,CACR;IACD,uBAAuB,EAAE,IAAA,yBAAkB,EACvC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EACrC,KAAK,CACR;IACD,WAAW,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC;IAChE,8BAA8B,EAAE,IAAA,yBAAkB,EAC9C,OAAO,CAAC,GAAG,CAAC,uBAAuB,EACnC,KAAK,CACR;IACD,cAAc,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACvE,UAAU,EAAE,IAAA,yBAAkB,EAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,KAAK,CACR;IACD,gBAAgB,EAAE,IAAA,yBAAkB,EAChC,OAAO,CAAC,GAAG,CAAC,uCAAuC,EACnD,KAAK,CACR;IACD,aAAa,EAAE,IAAA,yBAAkB,EAC7B,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAC/C,KAAK,CACR;CACJ,CAAC;AAEW,QAAA,0BAA0B,GAAyB;IAC5D,KAAK;IACL,gBAAgB,EAAE,EAAE,SAAS,EAAE,GAAY,EAAE,CAAC,KAAK,EAAE;CACxD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const test_helper_1 = require("../../helpers/test-helper");
|
|
7
|
+
const database_init_1 = __importDefault(require("../../helpers/database-init"));
|
|
8
|
+
const no_logger_1 = __importDefault(require("../../../fixtures/no-logger"));
|
|
9
|
+
const util_1 = require("../../../../lib/util");
|
|
10
|
+
const api_token_1 = require("../../../../lib/types/models/api-token");
|
|
11
|
+
let app;
|
|
12
|
+
let db;
|
|
13
|
+
let appErrorLogs = [];
|
|
14
|
+
beforeAll(async () => {
|
|
15
|
+
db = await (0, database_init_1.default)(`proxy_concurrency`, no_logger_1.default);
|
|
16
|
+
const baseLogger = (0, no_logger_1.default)();
|
|
17
|
+
const appLogger = {
|
|
18
|
+
...baseLogger,
|
|
19
|
+
error: (msg, ...args) => {
|
|
20
|
+
appErrorLogs.push(msg);
|
|
21
|
+
baseLogger.error(msg, ...args);
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
app = await (0, test_helper_1.setupAppWithAuth)(db.stores, {
|
|
25
|
+
frontendApiOrigins: ['https://example.com'],
|
|
26
|
+
getLogger: () => appLogger,
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
afterEach(() => {
|
|
30
|
+
app.services.proxyService.stopAll();
|
|
31
|
+
jest.clearAllMocks();
|
|
32
|
+
});
|
|
33
|
+
afterAll(async () => {
|
|
34
|
+
await app.destroy();
|
|
35
|
+
await db.destroy();
|
|
36
|
+
});
|
|
37
|
+
beforeEach(async () => {
|
|
38
|
+
appErrorLogs = [];
|
|
39
|
+
});
|
|
40
|
+
/**
|
|
41
|
+
* This test needs to run on a new instance of the application and a clean DB
|
|
42
|
+
* which is why it should be the only test of this file
|
|
43
|
+
*/
|
|
44
|
+
test('multiple parallel calls to api/frontend should not create multiple instances', async () => {
|
|
45
|
+
const frontendTokenDefault = await app.services.apiTokenService.createApiTokenWithProjects({
|
|
46
|
+
type: api_token_1.ApiTokenType.FRONTEND,
|
|
47
|
+
projects: ['default'],
|
|
48
|
+
environment: 'default',
|
|
49
|
+
username: `test-token-${(0, util_1.randomId)()}`,
|
|
50
|
+
});
|
|
51
|
+
await Promise.all(Array.from(Array(15).keys()).map(() => app.request
|
|
52
|
+
.get('/api/frontend')
|
|
53
|
+
.set('Authorization', frontendTokenDefault.secret)
|
|
54
|
+
.expect('Content-Type', /json/)
|
|
55
|
+
.expect(200)));
|
|
56
|
+
expect(appErrorLogs).toHaveLength(0);
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=proxy.concurrency.e2e.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.concurrency.e2e.test.js","sourceRoot":"","sources":["../../../../../src/test/e2e/api/proxy/proxy.concurrency.e2e.test.ts"],"names":[],"mappings":";;;;;AAAA,2DAA2E;AAC3E,gFAA8D;AAC9D,4EAAoD;AACpD,+CAAgD;AAChD,sEAAsE;AAEtE,IAAI,GAAiB,CAAC;AACtB,IAAI,EAAW,CAAC;AAChB,IAAI,YAAY,GAAa,EAAE,CAAC;AAEhC,SAAS,CAAC,KAAK,IAAI,EAAE;IACjB,EAAE,GAAG,MAAM,IAAA,uBAAM,EAAC,mBAAmB,EAAE,mBAAS,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,IAAA,mBAAS,GAAE,CAAC;IAC/B,MAAM,SAAS,GAAG;QACd,GAAG,UAAU;QACb,KAAK,EAAE,CAAC,GAAW,EAAE,GAAG,IAAW,EAAE,EAAE;YACnC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACnC,CAAC;KACJ,CAAC;IACF,GAAG,GAAG,MAAM,IAAA,8BAAgB,EAAC,EAAE,CAAC,MAAM,EAAE;QACpC,kBAAkB,EAAE,CAAC,qBAAqB,CAAC;QAC3C,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;KAC7B,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACX,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;IACpC,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;IAChB,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,KAAK,IAAI,EAAE;IAClB,YAAY,GAAG,EAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,IAAI,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;IAC5F,MAAM,oBAAoB,GACtB,MAAM,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,0BAA0B,CAAC;QAC1D,IAAI,EAAE,wBAAY,CAAC,QAAQ;QAC3B,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,WAAW,EAAE,SAAS;QACtB,QAAQ,EAAE,cAAc,IAAA,eAAQ,GAAE,EAAE;KACvC,CAAC,CAAC;IAEP,MAAM,OAAO,CAAC,GAAG,CACb,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAClC,GAAG,CAAC,OAAO;SACN,GAAG,CAAC,eAAe,CAAC;SACpB,GAAG,CAAC,eAAe,EAAE,oBAAoB,CAAC,MAAM,CAAC;SACjD,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC;SAC9B,MAAM,CAAC,GAAG,CAAC,CACnB,CACJ,CAAC;IACF,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
href="https://fonts.googleapis.com/css2?family=Sen:wght@400;700;800&display=swap"
|
|
17
17
|
rel="stylesheet"
|
|
18
18
|
/>
|
|
19
|
-
<script type="module" crossorigin src="/static/index-
|
|
19
|
+
<script type="module" crossorigin src="/static/index-1d165488.js"></script>
|
|
20
20
|
<link rel="stylesheet" href="/static/index-870c8122.css">
|
|
21
21
|
</head>
|
|
22
22
|
<body>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a2 as k,aq as R,H as w,ar as O,as as U,at as D,au as J,j as e,av as b,aw as x,ax as B,ay as F,az as L,a4 as K,aA as $}from"./index-
|
|
1
|
+
import{a2 as k,aq as R,H as w,ar as O,as as U,at as D,au as J,j as e,av as b,aw as x,ax as B,ay as F,az as L,a4 as K,aA as $}from"./index-1d165488.js";const q="CREATE_PROJECT_BTN",Y=()=>{const{setToastData:n,setToastApiError:i}=k(),{refetchUser:d}=R(),{uiConfig:l}=w(),t=O(),{trackEvent:u}=U(),{projectId:a,projectName:j,projectMode:p,projectDesc:m,setProjectId:P,setProjectName:C,setProjectDesc:T,getProjectPayload:o,clearErrors:r,validateProjectId:s,validateName:h,setProjectStickiness:E,setProjectMode:f,projectStickiness:c,errors:g}=D(),{createProject:A,loading:_}=J();return e(b,{loading:_,title:"Create project",description:"Projects allows you to group feature toggles together in the management UI.",documentationLink:"https://docs.getunleash.io/reference/projects",documentationLinkLabel:"Projects documentation",formatApiCode:()=>`curl --location --request POST '${l.unleashUrl}/api/admin/projects' \\
|
|
2
2
|
--header 'Authorization: INSERT_API_KEY' \\
|
|
3
3
|
--header 'Content-Type: application/json' \\
|
|
4
4
|
--data-raw '${JSON.stringify(o(),void 0,2)}'`,children:e(x,{errors:g,handleSubmit:async N=>{N.preventDefault(),r();const v=h(),y=await s();if(v&&y){const S=o();try{await A(S),d(),t(`/projects/${a}`),n({title:"Project created",text:"Now you can add toggles to this project",confetti:!0,type:"success"}),c!==L&&u("project_stickiness_set")}catch(I){i(K(I))}}},handleCancel:()=>{t($)},projectId:a,setProjectId:P,projectName:j,projectMode:p,projectStickiness:c,setProjectStickiness:E,setProjectMode:f,setProjectName:C,projectDesc:m,setProjectDesc:T,mode:"Create",clearErrors:r,validateProjectId:s,children:e(B,{name:"project",permission:F,"data-testid":q})})})};export{Y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as r,j as o}from"./index-
|
|
1
|
+
import{c as r,j as o}from"./index-1d165488.js";const a=r(o("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"}),"Error");export{a as E};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as a,j as o}from"./index-
|
|
1
|
+
import{c as a,j as o}from"./index-1d165488.js";const e=a(o("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore");export{e as E};
|
package/frontend/build/static/{FeatureArchiveDialog-b81c4e16.js → FeatureArchiveDialog-fd71aac2.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as _,j as n,aI as F,b1 as k,f as v,a_ as x,C as A,A as te,T as w,b_ as ae,cp as $,r as y,cq as ne,cr as se,a$ as re,b0 as j,a2 as E,H as oe,ar as N,aJ as z,aV as ce,cs as ie,av as le,ap as ue,ct as ge,cu as de,cv as he,cw as pe,b8 as H,cx as ye,b2 as me,a4 as R,cy as fe,s as P,aZ as ve,cz as Te,cA as be,F as U,cB as Se,cC as Ce,cD as Ae,ad as W,ac as Y,bJ as we,c1 as Re,cE as xe,w as Ee,cF as qe,cG as Fe,u as ke,Z as Pe,bF as Be,aU as De,aS as Oe,aT as Le,bB as I,au as $e}from"./index-
|
|
1
|
+
import{c as _,j as n,aI as F,b1 as k,f as v,a_ as x,C as A,A as te,T as w,b_ as ae,cp as $,r as y,cq as ne,cr as se,a$ as re,b0 as j,a2 as E,H as oe,ar as N,aJ as z,aV as ce,cs as ie,av as le,ap as ue,ct as ge,cu as de,cv as he,cw as pe,b8 as H,cx as ye,b2 as me,a4 as R,cy as fe,s as P,aZ as ve,cz as Te,cA as be,F as U,cB as Se,cC as Ce,cD as Ae,ad as W,ac as Y,bJ as we,c1 as Re,cE as xe,w as Ee,cF as qe,cG as Fe,u as ke,Z as Pe,bF as Be,aU as De,aS as Oe,aT as Le,bB as I,au as $e}from"./index-1d165488.js";const Ke=_(n("path",{d:"m20.54 5.23-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5 6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z"}),"Archive"),Ze=_(n("path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"}),"WatchLater"),Qe=({isOpen:e,onConfirm:t,onClose:s,showBanner:o,environment:a,messageComponent:r})=>{const i=F("projectId"),{data:h}=k(i),{changeRequestInReviewOrApproved:l,alert:u}=ae(h),d=l(a||"");return v(x,{open:e,primaryButtonText:d?"Add to existing change request":"Add suggestion to draft",secondaryButtonText:"Cancel",onClick:t,onClose:s,title:"Request changes",fullWidth:!0,children:[n(A,{condition:d,show:u}),n(A,{condition:Boolean(o),show:v(te,{severity:"info",sx:{mb:2},children:["Change requests feature is enabled for ",a,". Your changes need to be approved before they will be live. All the changes you do now will be added into a draft that you can submit for review."]})}),n(w,{variant:"body2",color:"text.secondary",children:"Your suggestion:"}),r]})},ze=(e,t)=>{const s={};return t.parameters.forEach(o=>{s[o.name]=Ve(e,o)}),{name:t.name,constraints:[],parameters:s}},Ve=(e,t)=>t.name==="rollout"||t.name==="percentage"||t.type==="percentage"?"50":t.name==="stickiness"?"":t.name==="groupId"?e:t.type==="boolean"?"false":"",Xe=()=>{const e=F("projectId"),t=F("featureId"),s=$("environmentId"),o=$("strategyName"),[a,r]=y.useState({}),[i,h]=y.useState([]),{strategyDefinition:l}=ne(o),u=se(),{addStrategyToFeature:d,loading:m}=re(),{addChange:c}=j(),{setToastData:g,setToastApiError:T}=E(),{uiConfig:p}=oe(),{unleashUrl:f}=p,b=N(),{feature:S,refetchFeature:D}=z(e,t),O=y.useRef(S),{isChangeRequestConfigured:L}=ce(e),{refetch:G}=k(e),{data:q,staleDataNotification:J,forceRefreshCache:K}=ie({unleashGetter:z,params:[e,t],dataKey:"feature",refetchFunctionKey:"refetchFeature",options:{}},S,{afterSubmitAction:D},fe);y.useEffect(()=>{O.current.name===""&&S.name&&(K(S),O.current=S)},[S]),y.useEffect(()=>{l&&r(ze(t,l))},[t,l]);const Z=async C=>{await d(e,t,s,C),g({title:"Strategy created",type:"success",confetti:!0})},Q=async C=>{await c(e,s,{action:"addStrategy",feature:t,payload:C}),g({title:"Strategy added to draft",type:"success",confetti:!0}),G()},X=async()=>{const C=ye(a,i);try{L(s)?await Q(C):await Z(C),D(),b(me(e,t))}catch(ee){T(R(ee))}};return!q||!q.project?null:v(le,{modal:!0,title:ue(o),description:ge,documentationLink:de,documentationLinkLabel:he,formatApiCode:()=>je(e,t,s,a,f),children:[n(pe,{projectId:e,feature:q,strategy:a,setStrategy:r,segments:i,setSegments:h,environmentId:s,onSubmit:X,loading:m,permission:H,errors:u,isChangeRequest:L(s)}),J]})},_e=(e,t,s,o)=>{const a=new URLSearchParams({environmentId:s,strategyName:o});return`/projects/${e}/features/${t}/strategies/create?${a}`},je=(e,t,s,o,a)=>{if(!a)return"";const r=`${a}/api/admin/projects/${e}/features/${t}/environments/${s}/strategies`,i=JSON.stringify(o,void 0,2);return`curl --location --request POST '${r}' \\
|
|
2
2
|
--header 'Authorization: INSERT_API_KEY' \\
|
|
3
3
|
--header 'Content-Type: application/json' \\
|
|
4
4
|
--data-raw '${i}'`},V=P("p")(({theme:e})=>({marginBottom:e.spacing(.5),fontSize:e.fontSizes.bodySize})),et=({open:e,environmentName:t,featureId:s,projectId:o,onClose:a})=>{const r=N(),i=_e(o,s,t,"default");return v(x,{open:e,maxWidth:"sm",onClose:()=>a(),title:"You need to add a strategy to your toggle",primaryButtonText:"Take me directly to add strategy",permissionButton:n(ve,{type:"button",permission:H,projectId:o,environmentId:t,onClick:()=>{a(),r(i)},children:"Take me directly to add strategy"}),secondaryButtonText:"Cancel",children:[n(V,{children:"Before you can enable the toggle in the environment, you need to add an activation strategy."}),n(V,{children:"You can add the activation strategy by selecting the toggle, open the environment accordion and add the activation strategy."})]})},tt="You can not enable the environment before it has strategies",at=e=>{const{setToastData:t,setToastApiError:s}=E(),{addChange:o}=j(),{refetch:a}=k(e),[r,i]=y.useState({isOpen:!1}),h=y.useCallback((d,m,c)=>{i({featureName:d,environment:m,enabled:c,isOpen:!0})},[]),l=y.useCallback(()=>{i(d=>({...d,isOpen:!1}))},[]),u=y.useCallback(async()=>{try{await o(e,r.environment,{feature:r.featureName,action:"updateEnabled",payload:{enabled:Boolean(r.enabled)}}),a(),i(d=>({...d,isOpen:!1})),t({type:"success",title:"Changes added to the draft!"})}catch(d){s(R(d)),i(m=>({...m,isOpen:!1}))}},[o]);return{onChangeRequestToggle:h,onChangeRequestToggleClose:l,onChangeRequestToggleConfirm:u,changeRequestDialogDetails:r}},nt=({enabled:e,featureName:t,environment:s})=>v(w,{"data-testid":"update-enabled-message",children:[n("strong",{children:e?"Enable":"Disable"})," feature toggle"," ",n("strong",{children:t})," in ",n("strong",{children:s})]}),Ne=P(Te)(({theme:e})=>({color:e.palette.warning.main,fontSize:e.fontSizes.bodySize})),st=()=>n(be,{arrow:!0,title:v(U,{children:["This environment has no variants enabled. If you check this feature's variants in this environment, you will get the"," ",n("a",{href:"https://docs.getunleash.io/reference/feature-toggle-variants#the-disabled-variant",target:"_blank",rel:"noreferrer",children:"disabled variant"}),"."]}),children:n(Ne,{})});var B={},He=Ce;Object.defineProperty(B,"__esModule",{value:!0});var M=B.default=void 0,Ue=He(Se()),We=Ae,Ye=(0,Ue.default)((0,We.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");M=B.default=Ye;const Ie=qe(),rt=({options:e,selectedOptions:t,indeterminateOptions:s,tagType:o,existingTags:a,disabled:r=!1,onChange:i})=>{const h=n(Fe,{fontSize:"small"});return n(W,{multiple:!0,id:"checkboxes-tag",sx:{marginTop:c=>c.spacing(2),width:500},disableCloseOnSelect:!0,placeholder:"Select Values",options:e,value:t,renderTags:(c,g)=>c.map((T,p)=>a.some(b=>b.value===T.title&&b.type===o.name)&&s===void 0?null:n(Ee,{...g({index:p}),label:T.title})),isOptionEqualToValue:(c,g)=>g.inputValue&&g.inputValue!==""?c.title===g.inputValue:c.title===g.title,getOptionLabel:c=>c.inputValue?c.inputValue:c.title,renderOption:(c,g,{selected:T})=>{const p=(s==null?void 0:s.some(f=>f.title===g.title))??!1;return v("li",{...c,children:[n(A,{condition:Boolean(g.inputValue),show:n(we,{sx:{mr:f=>f.spacing(.5)}}),elseShow:n(Re,{icon:h,checkedIcon:n(xe,{fontSize:"small"}),indeterminateIcon:n(M,{fontSize:"small"}),sx:{mr:f=>f.spacing(.5)},checked:T&&!p,indeterminate:p})}),g.title]})},filterOptions:(c,g)=>{const T=Ie(c,g),{inputValue:p}=g,f=c.some(b=>p===b.title);return p!==""&&!f&&T.push({inputValue:p,title:`Create new value "${p}"`}),T},ListboxProps:{style:{maxHeight:200,overflow:"auto"}},onChange:i,renderInput:c=>n(Y,{...c,label:"Select values",placeholder:"Select values"}),disabled:r})},Me=P("li")({flexDirection:"column"}),ot=({options:e,value:t,disabled:s=!1,onChange:o})=>{const a=ke();return n(W,{disablePortal:!0,disabled:s,id:"tag-type-select",sx:{marginTop:r=>r.spacing(2),width:500},options:e,disableClearable:!0,value:t,getOptionLabel:r=>r.name,renderOption:(r,i)=>v(Me,{...r,style:{alignItems:"flex-start",gap:a.spacing(.5)},children:[n(w,{variant:"body1",children:i.name}),n(w,{variant:"caption",children:i.description})]}),renderInput:r=>n(Y,{...r,label:"Tag type",value:t}),onChange:o,ListboxProps:{style:{maxHeight:200,overflow:"auto"}}})},ct=()=>{const{makeRequest:e,createRequest:t,errors:s,loading:o}=Pe({propagateErrors:!0});return{createTag:async i=>{const l=t("api/admin/tags",{method:"POST",body:JSON.stringify(i)});try{return await e(l.caller,l.id)}catch(u){throw u}},bulkUpdateTags:async i=>{const l=t("api/admin/tags/features",{method:"PUT",body:JSON.stringify(i)});try{return await e(l.caller,l.id)}catch(u){throw u}},errors:s,loading:o}},it=(e,t={})=>{const s=async()=>{const u=Oe(`api/admin/tags/${e}`);return(await fetch(u,{method:"GET"}).then(Le("Tags"))).json()},o=`api/admin/tags/${e}`,{data:a,error:r}=Be(Boolean(e),{tags:[]},o,s,t),[i,h]=y.useState(!r&&!a),l=()=>{De(o)};return y.useEffect(()=>{h(!r&&!a)},[a,r]),{tags:(a==null?void 0:a.tags)||[],error:r,loading:i,refetch:l}},lt=({isStale:e,isOpen:t,projectId:s,featureId:o,onClose:a})=>{const{setToastData:r,setToastApiError:i}=E(),{patchFeatureToggle:h}=I(),l=n(w,{children:"Setting a toggle to stale marks it for cleanup"}),u=n(w,{children:"Setting a toggle to active marks it as in active use"}),d=e?"active":"stale",m=async c=>{c.stopPropagation();try{await h(s,o,[{op:"replace",path:"/stale",value:!e}]),a()}catch(g){i(R(g))}r(e?{type:"success",title:"And we're back!",text:"The toggle is no longer marked as stale."}:{type:"success",title:"A job well done.",text:"The toggle has been marked as stale."})};return n(x,{open:t,secondaryButtonText:"Cancel",primaryButtonText:`Flip to ${d}`,title:`Set feature state to ${d}`,onClick:m,onClose:a,children:n(A,{condition:e,show:u,elseShow:l})})},ut=({isOpen:e,onClose:t,onConfirm:s,projectId:o,featureIds:a})=>{const{archiveFeatureToggle:r}=I(),{archiveFeatures:i}=$e(),{setToastData:h,setToastApiError:l}=E(),u=(a==null?void 0:a.length)>1;return n(x,{onClick:u?async()=>{try{await i(o,a),h({text:"Selected feature toggles have been archived",type:"success",title:"Feature toggles archived"}),s(),t()}catch(c){l(R(c)),t()}}:async()=>{try{await r(o,a[0]),h({text:"Your feature toggle has been archived",type:"success",title:"Feature archived"}),s(),t()}catch(c){l(R(c)),t()}},open:e,onClose:t,primaryButtonText:u?"Archive toggles":"Archive toggle",secondaryButtonText:"Cancel",title:u?"Archive feature toggles":"Archive feature toggle",children:n(A,{condition:u,show:v(U,{children:[v("p",{children:["Are you sure you want to archive"," ",n("strong",{children:a==null?void 0:a.length})," feature toggles?"]}),n(A,{condition:(a==null?void 0:a.length)<=5,show:n("ul",{children:a==null?void 0:a.map(c=>n("li",{children:c},c))})})]}),elseShow:n("p",{children:"Are you sure you want to archive these feature toggles?"})})})};export{Ke as A,Qe as C,tt as E,Xe as F,ot as T,nt as U,st as V,Ze as W,et as a,ct as b,it as c,rt as d,ut as e,_e as f,lt as g,at as u};
|
package/frontend/build/static/{FeatureMetricsChart-37e55387.js → FeatureMetricsChart-66e2ebdf.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c5 as s,fa as p,bw as y,r as l,j as d}from"./index-
|
|
1
|
+
import{c5 as s,fa as p,bw as y,r as l,j as d}from"./index-1d165488.js";import{d as u,L as g,C as h,a as C,b as f,P as x,c as S,T as q,p as k,e as M,f as L}from"./chartjs-adapter-date-fns.esm-8ccfeb24.js";import"./index-17782336.js";import"./index-96dcc77e.js";const P=(t,o)=>{const i={label:"total requests",borderColor:s.palette.primary.main,backgroundColor:s.palette.primary.main,data:n(t,o,r=>r.yes+r.no),elements:{point:{radius:6,pointStyle:"circle"},line:{borderDash:[8,4]}}},e={label:"exposed",borderColor:s.palette.success.main,backgroundColor:s.palette.success.main,data:n(t,o,r=>r.yes),elements:{point:{radius:6,pointStyle:"triangle"}}},a={label:"not exposed",borderColor:s.palette.error.main,backgroundColor:s.palette.error.main,data:n(t,o,r=>r.no),elements:{point:{radius:6,pointStyle:"triangle",pointRotation:180}}};return{datasets:[e,a,i]}},n=(t,o,i)=>t.map(e=>({x:e.timestamp,y:i(e)})),v=(t,o,i)=>({locale:i.locale,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},plugins:{tooltip:{backgroundColor:s.palette.background.paper,bodyColor:s.palette.text.primary,titleColor:s.palette.text.secondary,borderColor:s.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,callbacks:{title:e=>p(e[0].parsed.x,i.locale)},itemSort:(e,a)=>a.parsed.y-e.parsed.y},legend:{position:"top",align:"end",labels:{boxWidth:10,boxHeight:10,usePointStyle:!0}},title:{text:w(o),position:"top",align:"start",display:!0,font:{size:16,weight:"400"}}},scales:{y:{type:"linear",title:{display:!0,text:"Number of requests"},suggestedMin:0,ticks:{precision:0}},x:{type:"time",time:{unit:"hour"},grid:{display:!1},ticks:{callback:(e,a,r)=>p(r[a].value,i.locale)}}}}),w=t=>t===1?"Requests in the last hour":`Requests in the last ${t} hours`;u.font={...u.font,family:"Sen",size:13,weight:"400"};const j=({metrics:t,hoursBack:o,statsSectionId:i})=>{const{locationSettings:e}=y(),a=l.useMemo(()=>[...t].sort((m,b)=>m.timestamp.localeCompare(b.timestamp)),[t]),r=l.useMemo(()=>v(a,o,e),[a,o,e]),c=l.useMemo(()=>P(a,e),[a,e]);return d("div",{style:{height:400},children:d(g,{options:r,data:c,"aria-label":"A feature metrics line chart, with three lines: all requests, positive requests, and negative requests.","aria-describedby":i})})};h.register(C,f,x,S,q,k,M,L);export{j as FeatureMetricsChart,j as default};
|