unleash-server 4.15.0-beta.4 → 4.15.0-beta.8
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/app.js +12 -13
- package/dist/lib/app.js.map +1 -1
- package/dist/lib/middleware/api-token-middleware.d.ts +1 -1
- package/dist/lib/middleware/api-token-middleware.js +11 -3
- package/dist/lib/middleware/api-token-middleware.js.map +1 -1
- package/dist/lib/middleware/conditional-middleware.d.ts +2 -0
- package/dist/lib/middleware/conditional-middleware.js +19 -0
- package/dist/lib/middleware/conditional-middleware.js.map +1 -0
- package/dist/lib/openapi/index.d.ts +0 -3
- package/dist/lib/openapi/spec/ui-config-schema.d.ts +0 -3
- package/dist/lib/openapi/spec/ui-config-schema.js +0 -3
- package/dist/lib/openapi/spec/ui-config-schema.js.map +1 -1
- package/dist/lib/routes/admin-api/config.js +0 -1
- package/dist/lib/routes/admin-api/config.js.map +1 -1
- package/dist/lib/routes/index.js +2 -3
- package/dist/lib/routes/index.js.map +1 -1
- package/dist/lib/routes/proxy-api/index.js +3 -5
- package/dist/lib/routes/proxy-api/index.js.map +1 -1
- package/dist/lib/services/client-metrics/metrics-service-v2.d.ts +2 -3
- package/dist/lib/services/client-metrics/metrics-service-v2.js +9 -12
- package/dist/lib/services/client-metrics/metrics-service-v2.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +2 -0
- package/dist/lib/types/experimental.js +1 -0
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/util/findPublicFolder.d.ts +1 -0
- package/dist/lib/util/findPublicFolder.js +12 -0
- package/dist/lib/util/findPublicFolder.js.map +1 -0
- package/dist/lib/util/rewriteHTML.test.js +4 -2
- package/dist/lib/util/rewriteHTML.test.js.map +1 -1
- package/dist/server-dev.js +1 -0
- package/dist/server-dev.js.map +1 -1
- package/dist/test/config/test-config.js +1 -0
- package/dist/test/config/test-config.js.map +1 -1
- package/frontend/README.md +68 -0
- package/frontend/build/cs_CZ.png +0 -0
- package/frontend/build/da-DK.png +0 -0
- package/frontend/build/datadog.svg +1 -0
- package/frontend/build/de_DE.png +0 -0
- package/frontend/build/en-GB.png +0 -0
- package/frontend/build/en-IN.png +0 -0
- package/frontend/build/en-US.png +0 -0
- package/frontend/build/favicon.ico +0 -0
- package/frontend/build/favicon_old.ico +0 -0
- package/frontend/build/flags-normal/ad.png +0 -0
- package/frontend/build/flags-normal/ae.png +0 -0
- package/frontend/build/flags-normal/af.png +0 -0
- package/frontend/build/flags-normal/ag.png +0 -0
- package/frontend/build/flags-normal/al.png +0 -0
- package/frontend/build/flags-normal/am.png +0 -0
- package/frontend/build/flags-normal/ao.png +0 -0
- package/frontend/build/flags-normal/ar.png +0 -0
- package/frontend/build/flags-normal/at.png +0 -0
- package/frontend/build/flags-normal/au.png +0 -0
- package/frontend/build/flags-normal/az.png +0 -0
- package/frontend/build/flags-normal/ba.png +0 -0
- package/frontend/build/flags-normal/bb.png +0 -0
- package/frontend/build/flags-normal/bd.png +0 -0
- package/frontend/build/flags-normal/be.png +0 -0
- package/frontend/build/flags-normal/bf.png +0 -0
- package/frontend/build/flags-normal/bg.png +0 -0
- package/frontend/build/flags-normal/bh.png +0 -0
- package/frontend/build/flags-normal/bi.png +0 -0
- package/frontend/build/flags-normal/bj.png +0 -0
- package/frontend/build/flags-normal/bn.png +0 -0
- package/frontend/build/flags-normal/bo.png +0 -0
- package/frontend/build/flags-normal/br.png +0 -0
- package/frontend/build/flags-normal/bs.png +0 -0
- package/frontend/build/flags-normal/bt.png +0 -0
- package/frontend/build/flags-normal/bw.png +0 -0
- package/frontend/build/flags-normal/by.png +0 -0
- package/frontend/build/flags-normal/bz.png +0 -0
- package/frontend/build/flags-normal/ca.png +0 -0
- package/frontend/build/flags-normal/cd.png +0 -0
- package/frontend/build/flags-normal/cf.png +0 -0
- package/frontend/build/flags-normal/cg.png +0 -0
- package/frontend/build/flags-normal/ch.png +0 -0
- package/frontend/build/flags-normal/ci.png +0 -0
- package/frontend/build/flags-normal/cl.png +0 -0
- package/frontend/build/flags-normal/cm.png +0 -0
- package/frontend/build/flags-normal/cn.png +0 -0
- package/frontend/build/flags-normal/co.png +0 -0
- package/frontend/build/flags-normal/cr.png +0 -0
- package/frontend/build/flags-normal/cu.png +0 -0
- package/frontend/build/flags-normal/cv.png +0 -0
- package/frontend/build/flags-normal/cy.png +0 -0
- package/frontend/build/flags-normal/cz.png +0 -0
- package/frontend/build/flags-normal/de.png +0 -0
- package/frontend/build/flags-normal/dj.png +0 -0
- package/frontend/build/flags-normal/dk.png +0 -0
- package/frontend/build/flags-normal/dm.png +0 -0
- package/frontend/build/flags-normal/do.png +0 -0
- package/frontend/build/flags-normal/dz.png +0 -0
- package/frontend/build/flags-normal/ec.png +0 -0
- package/frontend/build/flags-normal/ee.png +0 -0
- package/frontend/build/flags-normal/eg.png +0 -0
- package/frontend/build/flags-normal/eh.png +0 -0
- package/frontend/build/flags-normal/er.png +0 -0
- package/frontend/build/flags-normal/es.png +0 -0
- package/frontend/build/flags-normal/et.png +0 -0
- package/frontend/build/flags-normal/fi.png +0 -0
- package/frontend/build/flags-normal/fj.png +0 -0
- package/frontend/build/flags-normal/fm.png +0 -0
- package/frontend/build/flags-normal/fr.png +0 -0
- package/frontend/build/flags-normal/ga.png +0 -0
- package/frontend/build/flags-normal/gb.png +0 -0
- package/frontend/build/flags-normal/gd.png +0 -0
- package/frontend/build/flags-normal/ge.png +0 -0
- package/frontend/build/flags-normal/gh.png +0 -0
- package/frontend/build/flags-normal/gm.png +0 -0
- package/frontend/build/flags-normal/gn.png +0 -0
- package/frontend/build/flags-normal/gq.png +0 -0
- package/frontend/build/flags-normal/gr.png +0 -0
- package/frontend/build/flags-normal/gt.png +0 -0
- package/frontend/build/flags-normal/gw.png +0 -0
- package/frontend/build/flags-normal/gy.png +0 -0
- package/frontend/build/flags-normal/hn.png +0 -0
- package/frontend/build/flags-normal/hr.png +0 -0
- package/frontend/build/flags-normal/ht.png +0 -0
- package/frontend/build/flags-normal/hu.png +0 -0
- package/frontend/build/flags-normal/id.png +0 -0
- package/frontend/build/flags-normal/ie.png +0 -0
- package/frontend/build/flags-normal/il.png +0 -0
- package/frontend/build/flags-normal/in.png +0 -0
- package/frontend/build/flags-normal/iq.png +0 -0
- package/frontend/build/flags-normal/ir.png +0 -0
- package/frontend/build/flags-normal/is.png +0 -0
- package/frontend/build/flags-normal/it.png +0 -0
- package/frontend/build/flags-normal/jm.png +0 -0
- package/frontend/build/flags-normal/jo.png +0 -0
- package/frontend/build/flags-normal/jp.png +0 -0
- package/frontend/build/flags-normal/ke.png +0 -0
- package/frontend/build/flags-normal/kg.png +0 -0
- package/frontend/build/flags-normal/kh.png +0 -0
- package/frontend/build/flags-normal/ki.png +0 -0
- package/frontend/build/flags-normal/km.png +0 -0
- package/frontend/build/flags-normal/kn.png +0 -0
- package/frontend/build/flags-normal/kp.png +0 -0
- package/frontend/build/flags-normal/kr.png +0 -0
- package/frontend/build/flags-normal/ks.png +0 -0
- package/frontend/build/flags-normal/kw.png +0 -0
- package/frontend/build/flags-normal/kz.png +0 -0
- package/frontend/build/flags-normal/la.png +0 -0
- package/frontend/build/flags-normal/lb.png +0 -0
- package/frontend/build/flags-normal/lc.png +0 -0
- package/frontend/build/flags-normal/li.png +0 -0
- package/frontend/build/flags-normal/lk.png +0 -0
- package/frontend/build/flags-normal/lr.png +0 -0
- package/frontend/build/flags-normal/ls.png +0 -0
- package/frontend/build/flags-normal/lt.png +0 -0
- package/frontend/build/flags-normal/lu.png +0 -0
- package/frontend/build/flags-normal/lv.png +0 -0
- package/frontend/build/flags-normal/ly.png +0 -0
- package/frontend/build/flags-normal/ma.png +0 -0
- package/frontend/build/flags-normal/mc.png +0 -0
- package/frontend/build/flags-normal/md.png +0 -0
- package/frontend/build/flags-normal/me.png +0 -0
- package/frontend/build/flags-normal/mg.png +0 -0
- package/frontend/build/flags-normal/mh.png +0 -0
- package/frontend/build/flags-normal/mk.png +0 -0
- package/frontend/build/flags-normal/ml.png +0 -0
- package/frontend/build/flags-normal/mm.png +0 -0
- package/frontend/build/flags-normal/mn.png +0 -0
- package/frontend/build/flags-normal/mr.png +0 -0
- package/frontend/build/flags-normal/mt.png +0 -0
- package/frontend/build/flags-normal/mu.png +0 -0
- package/frontend/build/flags-normal/mv.png +0 -0
- package/frontend/build/flags-normal/mw.png +0 -0
- package/frontend/build/flags-normal/mx.png +0 -0
- package/frontend/build/flags-normal/my.png +0 -0
- package/frontend/build/flags-normal/mz.png +0 -0
- package/frontend/build/flags-normal/na.png +0 -0
- package/frontend/build/flags-normal/ne.png +0 -0
- package/frontend/build/flags-normal/ng.png +0 -0
- package/frontend/build/flags-normal/ni.png +0 -0
- package/frontend/build/flags-normal/nl.png +0 -0
- package/frontend/build/flags-normal/no.png +0 -0
- package/frontend/build/flags-normal/np.png +0 -0
- package/frontend/build/flags-normal/nr.png +0 -0
- package/frontend/build/flags-normal/nz.png +0 -0
- package/frontend/build/flags-normal/om.png +0 -0
- package/frontend/build/flags-normal/pa.png +0 -0
- package/frontend/build/flags-normal/pe.png +0 -0
- package/frontend/build/flags-normal/pg.png +0 -0
- package/frontend/build/flags-normal/ph.png +0 -0
- package/frontend/build/flags-normal/pk.png +0 -0
- package/frontend/build/flags-normal/pl.png +0 -0
- package/frontend/build/flags-normal/pt.png +0 -0
- package/frontend/build/flags-normal/pw.png +0 -0
- package/frontend/build/flags-normal/py.png +0 -0
- package/frontend/build/flags-normal/qa.png +0 -0
- package/frontend/build/flags-normal/ro.png +0 -0
- package/frontend/build/flags-normal/rs.png +0 -0
- package/frontend/build/flags-normal/ru.png +0 -0
- package/frontend/build/flags-normal/rw.png +0 -0
- package/frontend/build/flags-normal/sa.png +0 -0
- package/frontend/build/flags-normal/sb.png +0 -0
- package/frontend/build/flags-normal/sc.png +0 -0
- package/frontend/build/flags-normal/sd.png +0 -0
- package/frontend/build/flags-normal/se.png +0 -0
- package/frontend/build/flags-normal/sg.png +0 -0
- package/frontend/build/flags-normal/si.png +0 -0
- package/frontend/build/flags-normal/sk.png +0 -0
- package/frontend/build/flags-normal/sl.png +0 -0
- package/frontend/build/flags-normal/sm.png +0 -0
- package/frontend/build/flags-normal/sn.png +0 -0
- package/frontend/build/flags-normal/so.png +0 -0
- package/frontend/build/flags-normal/sr.png +0 -0
- package/frontend/build/flags-normal/st.png +0 -0
- package/frontend/build/flags-normal/sv.png +0 -0
- package/frontend/build/flags-normal/sy.png +0 -0
- package/frontend/build/flags-normal/sz.png +0 -0
- package/frontend/build/flags-normal/td.png +0 -0
- package/frontend/build/flags-normal/tg.png +0 -0
- package/frontend/build/flags-normal/th.png +0 -0
- package/frontend/build/flags-normal/tj.png +0 -0
- package/frontend/build/flags-normal/tl.png +0 -0
- package/frontend/build/flags-normal/tm.png +0 -0
- package/frontend/build/flags-normal/tn.png +0 -0
- package/frontend/build/flags-normal/to.png +0 -0
- package/frontend/build/flags-normal/tr.png +0 -0
- package/frontend/build/flags-normal/tt.png +0 -0
- package/frontend/build/flags-normal/tv.png +0 -0
- package/frontend/build/flags-normal/tw.png +0 -0
- package/frontend/build/flags-normal/tz.png +0 -0
- package/frontend/build/flags-normal/ua.png +0 -0
- package/frontend/build/flags-normal/ug.png +0 -0
- package/frontend/build/flags-normal/us.png +0 -0
- package/frontend/build/flags-normal/uy.png +0 -0
- package/frontend/build/flags-normal/uz.png +0 -0
- package/frontend/build/flags-normal/va.png +0 -0
- package/frontend/build/flags-normal/vc.png +0 -0
- package/frontend/build/flags-normal/ve.png +0 -0
- package/frontend/build/flags-normal/vn.png +0 -0
- package/frontend/build/flags-normal/vu.png +0 -0
- package/frontend/build/flags-normal/ws.png +0 -0
- package/frontend/build/flags-normal/ye.png +0 -0
- package/frontend/build/flags-normal/za.png +0 -0
- package/frontend/build/flags-normal/zm.png +0 -0
- package/frontend/build/flags-normal/zw.png +0 -0
- package/frontend/build/fr-FR.png +0 -0
- package/frontend/build/index.html +25 -0
- package/frontend/build/jira.svg +1 -0
- package/frontend/build/logo-filled.png +0 -0
- package/frontend/build/logo-inverted.png +0 -0
- package/frontend/build/logo.png +0 -0
- package/frontend/build/logo_old.png +0 -0
- package/frontend/build/nb-NO.png +0 -0
- package/frontend/build/pt_BR.png +0 -0
- package/frontend/build/slack.svg +1 -0
- package/frontend/build/static/24_Negator off.764e9292.svg +3 -0
- package/frontend/build/static/24_Negator.3c95065e.svg +3 -0
- package/frontend/build/static/24_Text format off.9a1401ab.svg +3 -0
- package/frontend/build/static/24_Text format.c0530280.svg +3 -0
- package/frontend/build/static/FeatureMetricsChart.10085f84.js +23 -0
- package/frontend/build/static/Playground.ce4beb7e.js +10 -0
- package/frontend/build/static/datadog.591b6a73.svg +1 -0
- package/frontend/build/static/email.1b13db1f.svg +17 -0
- package/frontend/build/static/google.4c4465a1.svg +100 -0
- package/frontend/build/static/index.37dbe0f2.js +412 -0
- package/frontend/build/static/index.9ba43249.css +1 -0
- package/frontend/build/static/isenabled-false.85a17190.svg +5 -0
- package/frontend/build/static/isenabled-true.def895c4.svg +5 -0
- package/frontend/build/static/jira.d9eb9af9.svg +1 -0
- package/frontend/build/static/logo.b574b8c7.svg +7 -0
- package/frontend/build/static/logoBg.6e3a3ec3.svg +1 -0
- package/frontend/build/static/logoDarkWithText.7b7859f1.svg +1 -0
- package/frontend/build/static/logoPlain.b10e04a3.svg +6 -0
- package/frontend/build/static/logoWhiteBg.41a11888.svg +7 -0
- package/frontend/build/static/logoWhiteTransparentHorizontal.32f9c398.svg +1 -0
- package/frontend/build/static/logoWithWhiteText.954086cd.svg +1 -0
- package/frontend/build/static/mobileGuidanceBg.0cc2cfdc.svg +3 -0
- package/frontend/build/static/projectIcon.0c6827a4.svg +9 -0
- package/frontend/build/static/rollout.c922b6e9.svg +4 -0
- package/frontend/build/static/slack.c0af31c6.svg +1 -0
- package/frontend/build/static/teams.62e72076.svg +26 -0
- package/frontend/build/static/texture.c29e66c0.png +0 -0
- package/frontend/build/static/unknownUser.fc3b9184.png +0 -0
- package/frontend/build/static/unleashLogoIconDarkAlpha.de056a82.gif +0 -0
- package/frontend/build/static/webhooks.ffa904ac.svg +1 -0
- package/frontend/build/sv-SE.png +0 -0
- package/frontend/build/switches.svg +11 -0
- package/frontend/build/teams.svg +59 -0
- package/frontend/build/unknown-locale.png +0 -0
- package/frontend/build/webhooks.svg +1 -0
- package/frontend/index.js +9 -0
- package/frontend/package.json +131 -0
- package/package.json +9 -8
package/dist/lib/app.js
CHANGED
|
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const unleash_frontend_1 = require("unleash-frontend");
|
|
7
6
|
const express_1 = __importDefault(require("express"));
|
|
8
7
|
const compression_1 = __importDefault(require("compression"));
|
|
9
8
|
const serve_favicon_1 = __importDefault(require("serve-favicon"));
|
|
@@ -22,10 +21,13 @@ const oss_authentication_1 = __importDefault(require("./middleware/oss-authentic
|
|
|
22
21
|
const no_authentication_1 = __importDefault(require("./middleware/no-authentication"));
|
|
23
22
|
const secure_headers_1 = __importDefault(require("./middleware/secure-headers"));
|
|
24
23
|
const load_index_html_1 = require("./util/load-index-html");
|
|
24
|
+
const findPublicFolder_1 = require("./util/findPublicFolder");
|
|
25
|
+
const conditional_middleware_1 = require("./middleware/conditional-middleware");
|
|
25
26
|
async function getApp(config, stores, services, unleashSession) {
|
|
26
27
|
const app = (0, express_1.default)();
|
|
27
28
|
const baseUriPath = config.server.baseUriPath || '';
|
|
28
|
-
|
|
29
|
+
const publicFolder = (0, findPublicFolder_1.findPublicFolder)();
|
|
30
|
+
let indexHTML = await (0, load_index_html_1.loadIndexHTML)(config, publicFolder);
|
|
29
31
|
app.set('trust proxy', true);
|
|
30
32
|
app.disable('x-powered-by');
|
|
31
33
|
app.set('port', config.server.port);
|
|
@@ -45,22 +47,19 @@ async function getApp(config, stores, services, unleashSession) {
|
|
|
45
47
|
}
|
|
46
48
|
app.use((0, secure_headers_1.default)(config));
|
|
47
49
|
app.use(express_1.default.urlencoded({ extended: true }));
|
|
48
|
-
app.use((0, serve_favicon_1.default)(path_1.default.join(
|
|
49
|
-
app.use(baseUriPath, (0, serve_favicon_1.default)(path_1.default.join(
|
|
50
|
-
app.use(baseUriPath, express_1.default.static(
|
|
50
|
+
app.use((0, serve_favicon_1.default)(path_1.default.join(publicFolder, 'favicon.ico')));
|
|
51
|
+
app.use(baseUriPath, (0, serve_favicon_1.default)(path_1.default.join(publicFolder, 'favicon.ico')));
|
|
52
|
+
app.use(baseUriPath, express_1.default.static(publicFolder, { index: false }));
|
|
51
53
|
if (config.enableOAS) {
|
|
52
54
|
app.use(`${baseUriPath}/oas`, express_1.default.static('docs/api/oas'));
|
|
53
55
|
}
|
|
54
56
|
if (config.enableOAS && services.openApiService) {
|
|
55
57
|
services.openApiService.useDocs(app);
|
|
56
58
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
// so this must be handled before the API token middleware.
|
|
62
|
-
app.options('/api/frontend*', (0, cors_origin_middleware_1.corsOriginMiddleware)(services));
|
|
63
|
-
}
|
|
59
|
+
// Support CORS preflight requests for the frontend endpoints.
|
|
60
|
+
// Preflight requests should not have Authorization headers,
|
|
61
|
+
// so this must be handled before the API token middleware.
|
|
62
|
+
app.options('/api/frontend*', (0, conditional_middleware_1.conditionalMiddleware)(() => config.flagResolver.isEnabled('embedProxy'), (0, cors_origin_middleware_1.corsOriginMiddleware)(services)));
|
|
64
63
|
switch (config.authentication.type) {
|
|
65
64
|
case option_1.IAuthType.OPEN_SOURCE: {
|
|
66
65
|
app.use(baseUriPath, (0, api_token_middleware_1.default)(config, services));
|
|
@@ -114,7 +113,7 @@ async function getApp(config, stores, services, unleashSession) {
|
|
|
114
113
|
});
|
|
115
114
|
app.get(`${baseUriPath}/*`, (req, res) => {
|
|
116
115
|
if (req.path.startsWith(`${baseUriPath}/api`)) {
|
|
117
|
-
res.status(404).send({ message: '
|
|
116
|
+
res.status(404).send({ message: 'Not found' });
|
|
118
117
|
return;
|
|
119
118
|
}
|
|
120
119
|
res.send(indexHTML);
|
package/dist/lib/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/lib/app.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/lib/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { IUnleashConfig } from '../types/option';
|
|
2
2
|
export declare const TOKEN_TYPE_ERROR_MESSAGE = "invalid token: expected a different token type for this endpoint";
|
|
3
|
-
declare const apiAccessMiddleware: ({ getLogger, authentication,
|
|
3
|
+
declare const apiAccessMiddleware: ({ getLogger, authentication, flagResolver, }: Pick<IUnleashConfig, 'getLogger' | 'authentication' | 'flagResolver'>, { apiTokenService }: any) => any;
|
|
4
4
|
export default apiAccessMiddleware;
|
|
@@ -7,10 +7,18 @@ const isClientApi = ({ path }) => {
|
|
|
7
7
|
return path && path.startsWith('/api/client');
|
|
8
8
|
};
|
|
9
9
|
const isProxyApi = ({ path }) => {
|
|
10
|
-
|
|
10
|
+
if (!path) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
// Handle all our current proxy paths which will redirect to the new
|
|
14
|
+
// embedded proxy endpoint
|
|
15
|
+
return (path.startsWith('/api/default/proxy') ||
|
|
16
|
+
path.startsWith('/api/development/proxy') ||
|
|
17
|
+
path.startsWith('/api/production/proxy') ||
|
|
18
|
+
path.startsWith('/api/frontend'));
|
|
11
19
|
};
|
|
12
20
|
exports.TOKEN_TYPE_ERROR_MESSAGE = 'invalid token: expected a different token type for this endpoint';
|
|
13
|
-
const apiAccessMiddleware = ({ getLogger, authentication,
|
|
21
|
+
const apiAccessMiddleware = ({ getLogger, authentication, flagResolver, }, { apiTokenService }) => {
|
|
14
22
|
const logger = getLogger('/middleware/api-token.ts');
|
|
15
23
|
logger.debug('Enabling api-token middleware');
|
|
16
24
|
if (!authentication.enableApiToken) {
|
|
@@ -28,7 +36,7 @@ const apiAccessMiddleware = ({ getLogger, authentication, experimental, }, { api
|
|
|
28
36
|
if ((apiUser.type === CLIENT && !isClientApi(req)) ||
|
|
29
37
|
(apiUser.type === FRONTEND && !isProxyApi(req)) ||
|
|
30
38
|
(apiUser.type === FRONTEND &&
|
|
31
|
-
!
|
|
39
|
+
!flagResolver.isEnabled('embedProxy'))) {
|
|
32
40
|
res.status(403).send({ message: exports.TOKEN_TYPE_ERROR_MESSAGE });
|
|
33
41
|
return;
|
|
34
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-token-middleware.js","sourceRoot":"","sources":["../../../src/lib/middleware/api-token-middleware.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACtE,yDAAyD;AAGzD,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7B,OAAO,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC5B,OAAO,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"api-token-middleware.js","sourceRoot":"","sources":["../../../src/lib/middleware/api-token-middleware.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACtE,yDAAyD;AAGzD,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7B,OAAO,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC5B,IAAI,CAAC,IAAI,EAAE;QACP,OAAO;KACV;IAED,oEAAoE;IACpE,0BAA0B;IAC1B,OAAO,CACH,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CACnC,CAAC;AACN,CAAC,CAAC;AAEW,QAAA,wBAAwB,GACjC,kEAAkE,CAAC;AAEvE,MAAM,mBAAmB,GAAG,CACxB,EACI,SAAS,EACT,cAAc,EACd,YAAY,GACwD,EACxE,EAAE,eAAe,EAAO,EACrB,EAAE;IACL,MAAM,MAAM,GAAG,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAE9C,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE;QAChC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;KACrC;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,IAAI,EAAE;YACV,OAAO,IAAI,EAAE,CAAC;SACjB;QAED,IAAI;YACA,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,wBAAY,CAAC;YAE1C,IAAI,OAAO,EAAE;gBACT,IACI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBAC9C,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC/C,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;wBACtB,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAC5C;oBACE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gCAAwB,EAAE,CAAC,CAAC;oBAC5D,OAAO;iBACV;gBACD,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;aACtB;SACJ;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACvB;QAED,IAAI,EAAE,CAAC;IACX,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.conditionalMiddleware = void 0;
|
|
4
|
+
const express_1 = require("express");
|
|
5
|
+
const conditionalMiddleware = (condition, middleware) => {
|
|
6
|
+
const router = (0, express_1.Router)();
|
|
7
|
+
router.use((req, res, next) => {
|
|
8
|
+
if (condition()) {
|
|
9
|
+
next();
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
res.status(404).send({ message: 'Not found' });
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
router.use(middleware);
|
|
16
|
+
return router;
|
|
17
|
+
};
|
|
18
|
+
exports.conditionalMiddleware = conditionalMiddleware;
|
|
19
|
+
//# sourceMappingURL=conditional-middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditional-middleware.js","sourceRoot":"","sources":["../../../src/lib/middleware/conditional-middleware.ts"],"names":[],"mappings":";;;AAAA,qCAAiD;AAE1C,MAAM,qBAAqB,GAAG,CACjC,SAAwB,EACxB,UAA0B,EACZ,EAAE;IAChB,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,CAAC;SACV;aAAM;YACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;SAClD;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAhBW,QAAA,qBAAqB,yBAgBhC"}
|
|
@@ -9408,9 +9408,6 @@ export declare const schemas: {
|
|
|
9408
9408
|
readonly versionInfo: {
|
|
9409
9409
|
readonly $ref: "#/components/schemas/versionSchema";
|
|
9410
9410
|
};
|
|
9411
|
-
readonly embedProxy: {
|
|
9412
|
-
readonly type: "boolean";
|
|
9413
|
-
};
|
|
9414
9411
|
};
|
|
9415
9412
|
readonly components: {
|
|
9416
9413
|
readonly schemas: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-config-schema.js","sourceRoot":"","sources":["../../../../src/lib/openapi/spec/ui-config-schema.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AAEpC,QAAA,cAAc,GAAG;IAC1B,GAAG,EAAE,qCAAqC;IAC1C,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC;IACjE,UAAU,EAAE;QACR,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;SACjB;QACD,IAAI,EAAE;YACF,IAAI,EAAE,QAAQ;SACjB;QACD,OAAO,EAAE;YACL,IAAI,EAAE,QAAQ;SACjB;QACD,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;SACjB;QACD,UAAU,EAAE;YACR,IAAI,EAAE,QAAQ;SACjB;QACD,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;SACjB;QACD,mBAAmB,EAAE;YACjB,IAAI,EAAE,SAAS;SAClB;QACD,YAAY,EAAE;YACV,IAAI,EAAE,SAAS;SAClB;QACD,kBAAkB,EAAE;YAChB,IAAI,EAAE,QAAQ;SACjB;QACD,qBAAqB,EAAE;YACnB,IAAI,EAAE,QAAQ;SACjB;QACD,kBAAkB,EAAE;YAChB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,KAAK,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE;gBAClB,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,KAAK,EAAE;YACH,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,kBAAkB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE;gBACF,aAAa;gBACb,MAAM;gBACN,YAAY;gBACZ,QAAQ;gBACR,QAAQ;gBACR,MAAM;aACT;SACJ;QACD,WAAW,EAAE;YACT,IAAI,EAAE,oCAAoC;SAC7C;
|
|
1
|
+
{"version":3,"file":"ui-config-schema.js","sourceRoot":"","sources":["../../../../src/lib/openapi/spec/ui-config-schema.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AAEpC,QAAA,cAAc,GAAG;IAC1B,GAAG,EAAE,qCAAqC;IAC1C,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC;IACjE,UAAU,EAAE;QACR,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;SACjB;QACD,IAAI,EAAE;YACF,IAAI,EAAE,QAAQ;SACjB;QACD,OAAO,EAAE;YACL,IAAI,EAAE,QAAQ;SACjB;QACD,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;SACjB;QACD,UAAU,EAAE;YACR,IAAI,EAAE,QAAQ;SACjB;QACD,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;SACjB;QACD,mBAAmB,EAAE;YACjB,IAAI,EAAE,SAAS;SAClB;QACD,YAAY,EAAE;YACV,IAAI,EAAE,SAAS;SAClB;QACD,kBAAkB,EAAE;YAChB,IAAI,EAAE,QAAQ;SACjB;QACD,qBAAqB,EAAE;YACnB,IAAI,EAAE,QAAQ;SACjB;QACD,kBAAkB,EAAE;YAChB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,KAAK,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE;gBAClB,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,KAAK,EAAE;YACH,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,kBAAkB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE;gBACF,aAAa;gBACb,MAAM;gBACN,YAAY;gBACZ,QAAQ;gBACR,QAAQ;gBACR,MAAM;aACT;SACJ;QACD,WAAW,EAAE;YACT,IAAI,EAAE,oCAAoC;SAC7C;KACJ;IACD,UAAU,EAAE;QACR,OAAO,EAAE;YACL,aAAa,EAAb,8BAAa;SAChB;KACJ;CACK,CAAC"}
|
|
@@ -75,7 +75,6 @@ class ConfigController extends controller_1.default {
|
|
|
75
75
|
frontendApiOrigins: frontendSettings.frontendApiOrigins,
|
|
76
76
|
versionInfo: this.versionService.getVersionInfo(),
|
|
77
77
|
disablePasswordAuth,
|
|
78
|
-
embedProxy: this.config.experimental.flags.embedProxy,
|
|
79
78
|
};
|
|
80
79
|
this.openApiService.respondWithValidation(200, res, ui_config_schema_1.uiConfigSchema.$id, response);
|
|
81
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/routes/index.js
CHANGED
|
@@ -12,6 +12,7 @@ const ClientApi = require('./client-api');
|
|
|
12
12
|
const Controller = require('./controller');
|
|
13
13
|
const health_check_1 = require("./health-check");
|
|
14
14
|
const proxy_api_1 = __importDefault(require("./proxy-api"));
|
|
15
|
+
const conditional_middleware_1 = require("../middleware/conditional-middleware");
|
|
15
16
|
class IndexRouter extends Controller {
|
|
16
17
|
constructor(config, services) {
|
|
17
18
|
super(config);
|
|
@@ -22,9 +23,7 @@ class IndexRouter extends Controller {
|
|
|
22
23
|
this.use('/auth/reset', new reset_password_controller_1.default(config, services).router);
|
|
23
24
|
this.use('/api/admin', new AdminApi(config, services).router);
|
|
24
25
|
this.use('/api/client', new ClientApi(config, services).router);
|
|
25
|
-
|
|
26
|
-
this.use('/api/frontend', new proxy_api_1.default(config, services).router);
|
|
27
|
-
}
|
|
26
|
+
this.use('/api/frontend', (0, conditional_middleware_1.conditionalMiddleware)(() => config.flagResolver.isEnabled('embedProxy'), new proxy_api_1.default(config, services).router));
|
|
28
27
|
}
|
|
29
28
|
}
|
|
30
29
|
exports.default = IndexRouter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/routes/index.ts"],"names":[],"mappings":";;;;;AAAA,2CAAkD;AAClD,iGAAuE;AACvE,8EAAyE;AAGzE,sDAAwC;AAExC,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACxC,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAC3C,iDAAuD;AACvD,4DAA0C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/routes/index.ts"],"names":[],"mappings":";;;;;AAAA,2CAAkD;AAClD,iGAAuE;AACvE,8EAAyE;AAGzE,sDAAwC;AAExC,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACxC,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAC3C,iDAAuD;AACvD,4DAA0C;AAC1C,iFAA6E;AAE7E,MAAM,WAAY,SAAQ,UAAU;IAChC,YAAY,MAAsB,EAAE,QAA0B;QAC1D,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,oCAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,+BAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG,CACJ,cAAc,EACd,IAAI,iDAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,CACtD,CAAC;QACF,IAAI,CAAC,GAAG,CACJ,aAAa,EACb,IAAI,mCAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,CACvD,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;QAEhE,IAAI,CAAC,GAAG,CACJ,eAAe,EACf,IAAA,8CAAqB,EACjB,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,EACjD,IAAI,mBAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,CAC/C,CACJ,CAAC;IACN,CAAC;CACJ;AAED,kBAAe,WAAW,CAAC;AAE3B,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC"}
|
|
@@ -16,11 +16,9 @@ class ProxyController extends controller_1.default {
|
|
|
16
16
|
super(config);
|
|
17
17
|
this.logger = config.getLogger('client-api/feature.js');
|
|
18
18
|
this.services = services;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.app.use((0, cors_origin_middleware_1.corsOriginMiddleware)(services));
|
|
23
|
-
}
|
|
19
|
+
// Support CORS requests for the frontend endpoints.
|
|
20
|
+
// Preflight requests are handled in `app.ts`.
|
|
21
|
+
this.app.use((0, cors_origin_middleware_1.corsOriginMiddleware)(services));
|
|
24
22
|
this.route({
|
|
25
23
|
method: 'get',
|
|
26
24
|
path: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/routes/proxy-api/index.ts"],"names":[],"mappings":";;;;;AACA,+DAAuC;AAGvC,yDAA+C;AAE/C,oFAGkD;AAElD,+DAA2D;AAG3D,sFAAiF;AACjF,oFAA+E;AAC/E,8EAAsE;AACtE,oFAA+E;AAgB/E,MAAqB,eAAgB,SAAQ,oBAAU;IAKnD,YAAY,MAAsB,EAAE,QAAkB;QAClD,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/routes/proxy-api/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,14 +6,13 @@ import { IClientMetricsEnv } from '../../types/stores/client-metrics-store-v2';
|
|
|
6
6
|
import ApiUser from '../../types/api-user';
|
|
7
7
|
import User from '../../types/user';
|
|
8
8
|
export default class ClientMetricsServiceV2 {
|
|
9
|
+
private config;
|
|
9
10
|
private timers;
|
|
10
11
|
private unsavedMetrics;
|
|
11
12
|
private clientMetricsStoreV2;
|
|
12
13
|
private featureToggleStore;
|
|
13
|
-
private batchMetricsEnabled;
|
|
14
|
-
private eventBus;
|
|
15
14
|
private logger;
|
|
16
|
-
constructor({ featureToggleStore, clientMetricsStoreV2, }: Pick<IUnleashStores, 'featureToggleStore' | 'clientMetricsStoreV2'>,
|
|
15
|
+
constructor({ featureToggleStore, clientMetricsStoreV2, }: Pick<IUnleashStores, 'featureToggleStore' | 'clientMetricsStoreV2'>, config: IUnleashConfig, bulkInterval?: number);
|
|
17
16
|
registerClientMetrics(data: IClientApp, clientIp: string): Promise<void>;
|
|
18
17
|
bulkAdd(): Promise<void>;
|
|
19
18
|
getFeatureToggleMetricsSummary(featureName: string): Promise<ToggleMetricsSummary>;
|
|
@@ -10,19 +10,16 @@ const api_user_1 = __importDefault(require("../../types/api-user"));
|
|
|
10
10
|
const api_token_1 = require("../../types/models/api-token");
|
|
11
11
|
const collapseHourlyMetrics_1 = require("../../util/collapseHourlyMetrics");
|
|
12
12
|
class ClientMetricsServiceV2 {
|
|
13
|
-
constructor({ featureToggleStore, clientMetricsStoreV2, },
|
|
13
|
+
constructor({ featureToggleStore, clientMetricsStoreV2, }, config, bulkInterval = (0, date_fns_1.secondsToMilliseconds)(5)) {
|
|
14
14
|
this.timers = [];
|
|
15
15
|
this.unsavedMetrics = [];
|
|
16
16
|
this.featureToggleStore = featureToggleStore;
|
|
17
17
|
this.clientMetricsStoreV2 = clientMetricsStoreV2;
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
this.bulkAdd().catch(console.error);
|
|
24
|
-
}, bulkInterval).unref());
|
|
25
|
-
}
|
|
18
|
+
this.config = config;
|
|
19
|
+
this.logger = config.getLogger('/services/client-metrics/client-metrics-service-v2.ts');
|
|
20
|
+
this.timers.push(setInterval(() => {
|
|
21
|
+
this.bulkAdd().catch(console.error);
|
|
22
|
+
}, bulkInterval).unref());
|
|
26
23
|
this.timers.push(setInterval(() => {
|
|
27
24
|
this.clientMetricsStoreV2.clearMetrics(48).catch(console.error);
|
|
28
25
|
}, (0, date_fns_1.hoursToMilliseconds)(12)).unref());
|
|
@@ -44,7 +41,7 @@ class ClientMetricsServiceV2 {
|
|
|
44
41
|
no: value.bucket.toggles[name].no,
|
|
45
42
|
}))
|
|
46
43
|
.filter((item) => !(item.yes === 0 && item.no === 0));
|
|
47
|
-
if (this.
|
|
44
|
+
if (this.config.flagResolver.isEnabled('batchMetrics')) {
|
|
48
45
|
this.unsavedMetrics = (0, collapseHourlyMetrics_1.collapseHourlyMetrics)([
|
|
49
46
|
...this.unsavedMetrics,
|
|
50
47
|
...clientMetrics,
|
|
@@ -53,10 +50,10 @@ class ClientMetricsServiceV2 {
|
|
|
53
50
|
else {
|
|
54
51
|
await this.clientMetricsStoreV2.batchInsertMetrics(clientMetrics);
|
|
55
52
|
}
|
|
56
|
-
this.eventBus.emit(events_1.CLIENT_METRICS, value);
|
|
53
|
+
this.config.eventBus.emit(events_1.CLIENT_METRICS, value);
|
|
57
54
|
}
|
|
58
55
|
async bulkAdd() {
|
|
59
|
-
if (this.
|
|
56
|
+
if (this.unsavedMetrics.length > 0) {
|
|
60
57
|
// Make a copy of `unsavedMetrics` in case new metrics
|
|
61
58
|
// arrive while awaiting `batchInsertMetrics`.
|
|
62
59
|
const copy = [...this.unsavedMetrics];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-service-v2.js","sourceRoot":"","sources":["../../../../src/lib/services/client-metrics/metrics-service-v2.ts"],"names":[],"mappings":";;;;;AASA,qCAA+C;AAC/C,uCAAsE;
|
|
1
|
+
{"version":3,"file":"metrics-service-v2.js","sourceRoot":"","sources":["../../../../src/lib/services/client-metrics/metrics-service-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ export declare const defaultExperimentalOptions: {
|
|
|
4
4
|
ENABLE_DARK_MODE_SUPPORT: boolean;
|
|
5
5
|
anonymiseEventLog: boolean;
|
|
6
6
|
embedProxy: boolean;
|
|
7
|
+
embedProxyFrontend: boolean;
|
|
7
8
|
batchMetrics: boolean;
|
|
8
9
|
};
|
|
9
10
|
externalResolver: {
|
|
@@ -15,6 +16,7 @@ export interface IExperimentalOptions {
|
|
|
15
16
|
[key: string]: boolean;
|
|
16
17
|
ENABLE_DARK_MODE_SUPPORT?: boolean;
|
|
17
18
|
embedProxy?: boolean;
|
|
19
|
+
embedProxyFrontend?: boolean;
|
|
18
20
|
batchMetrics?: boolean;
|
|
19
21
|
anonymiseEventLog?: boolean;
|
|
20
22
|
};
|
|
@@ -7,6 +7,7 @@ exports.defaultExperimentalOptions = {
|
|
|
7
7
|
ENABLE_DARK_MODE_SUPPORT: false,
|
|
8
8
|
anonymiseEventLog: false,
|
|
9
9
|
embedProxy: (0, parseEnvVar_1.parseEnvVarBoolean)(process.env.UNLEASH_EXPERIMENTAL_EMBED_PROXY, false),
|
|
10
|
+
embedProxyFrontend: (0, parseEnvVar_1.parseEnvVarBoolean)(process.env.UNLEASH_EXPERIMENTAL_EMBED_PROXY_FRONTEND, false),
|
|
10
11
|
batchMetrics: (0, parseEnvVar_1.parseEnvVarBoolean)(process.env.UNLEASH_EXPERIMENTAL_BATCH_METRICS, false),
|
|
11
12
|
},
|
|
12
13
|
externalResolver: { isEnabled: () => false },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experimental.js","sourceRoot":"","sources":["../../../src/lib/types/experimental.ts"],"names":[],"mappings":";;;AAAA,qDAAyD;AAI5C,QAAA,0BAA0B,GAAG;IACtC,KAAK,EAAE;QACH,wBAAwB,EAAE,KAAK;QAC/B,iBAAiB,EAAE,KAAK;QACxB,UAAU,EAAE,IAAA,gCAAkB,EAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,KAAK,CACR;QACD,YAAY,EAAE,IAAA,gCAAkB,EAC5B,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAC9C,KAAK,CACR;KACJ;IACD,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,qDAAyD;AAI5C,QAAA,0BAA0B,GAAG;IACtC,KAAK,EAAE;QACH,wBAAwB,EAAE,KAAK;QAC/B,iBAAiB,EAAE,KAAK;QACxB,UAAU,EAAE,IAAA,gCAAkB,EAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,KAAK,CACR;QACD,kBAAkB,EAAE,IAAA,gCAAkB,EAClC,OAAO,CAAC,GAAG,CAAC,yCAAyC,EACrD,KAAK,CACR;QACD,YAAY,EAAE,IAAA,gCAAkB,EAC5B,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAC9C,KAAK,CACR;KACJ;IACD,gBAAgB,EAAE,EAAE,SAAS,EAAE,GAAY,EAAE,CAAC,KAAK,EAAE;CACxD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const findPublicFolder: () => string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.findPublicFolder = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const findPublicFolder = () => {
|
|
9
|
+
return path_1.default.join(__dirname, '..', '..', '..', 'frontend', 'build');
|
|
10
|
+
};
|
|
11
|
+
exports.findPublicFolder = findPublicFolder;
|
|
12
|
+
//# sourceMappingURL=findPublicFolder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findPublicFolder.js","sourceRoot":"","sources":["../../../src/lib/util/findPublicFolder.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAEjB,MAAM,gBAAgB,GAAG,GAAW,EAAE;IACzC,OAAO,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B"}
|
|
@@ -6,8 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const fs_1 = __importDefault(require("fs"));
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const rewriteHTML_1 = require("./rewriteHTML");
|
|
9
|
-
const
|
|
10
|
-
const input = fs_1.default
|
|
9
|
+
const findPublicFolder_1 = require("./findPublicFolder");
|
|
10
|
+
const input = fs_1.default
|
|
11
|
+
.readFileSync(path_1.default.join((0, findPublicFolder_1.findPublicFolder)(), 'index.html'))
|
|
12
|
+
.toString();
|
|
11
13
|
test('rewriteHTML substitutes meta tag with existing rewrite value', () => {
|
|
12
14
|
const result = (0, rewriteHTML_1.rewriteHTML)(input, '/hosted');
|
|
13
15
|
expect(result.includes('<meta name="baseUriPath" content="/hosted" />')).toBe(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewriteHTML.test.js","sourceRoot":"","sources":["../../../src/lib/util/rewriteHTML.test.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,+CAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"rewriteHTML.test.js","sourceRoot":"","sources":["../../../src/lib/util/rewriteHTML.test.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,+CAA4C;AAC5C,yDAAsD;AAEtD,MAAM,KAAK,GAAG,YAAE;KACX,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,IAAA,mCAAgB,GAAE,EAAE,YAAY,CAAC,CAAC;KACzD,QAAQ,EAAE,CAAC;AAEhB,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,CACF,MAAM,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CACnE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;IAC3D,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC,CAAC,IAAI,CAClE,IAAI,CACP,CAAC;AACN,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;IACxE,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,CACF,MAAM,CAAC,QAAQ,CACX,6DAA6D,CAChE,CACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;IAC3E,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,CACF,MAAM,CAAC,QAAQ,CAAC,sDAAsD,CAAC,CAC1E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,KAAK,EAAE,EAAE,EAAE,kCAAkC,CAAC,CAAC;IAC1E,MAAM,CACF,MAAM,CAAC,QAAQ,CACX,sFAAsF,CACzF,CACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;IAC/D,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,KAAK,EAAE,EAAE,EAAE,kCAAkC,CAAC,CAAC;IAC1E,MAAM,CACF,MAAM,CAAC,QAAQ,CACX,kEAAkE,CACrE,CACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;IAC/C,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAC,CAAC,IAAI,CACnE,IAAI,CACP,CAAC;AACN,CAAC,CAAC,CAAC"}
|
package/dist/server-dev.js
CHANGED
package/dist/server-dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-dev.js","sourceRoot":"","sources":["../src/server-dev.ts"],"names":[],"mappings":";;AAAA,mDAA0C;AAC1C,uDAAmD;AACnD,yCAAwC;AACxC,4DAA4D;AAE5D,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;IACxB,IAAI;QACA,MAAM,IAAA,mBAAK,EACP,IAAA,4BAAY,EAAC;YACT,EAAE,EAAE;gBACA,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;gBACxD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;gBAC3C,GAAG,EAAE,KAAK;gBACV,eAAe,EAAE,SAAS;aAC7B;YACD,MAAM,EAAE;gBACJ,mBAAmB,EAAE,IAAI;gBACzB,WAAW,EAAE,EAAE;gBACf,uBAAuB;gBACvB,sBAAsB,EAAE,IAAI;gBAC5B,yDAAyD;aAC5D;YACD,QAAQ,EAAE,iBAAQ,CAAC,KAAK;YACxB,SAAS,EAAE,IAAI;YACf,uBAAuB;YACvB,YAAY,EAAE;gBACV,MAAM,EAAE,KAAK;aAChB;YACD,YAAY,EAAE;gBACV,6BAA6B;gBAC7B,KAAK,EAAE;oBACH,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,IAAI;oBAClB,iBAAiB,EAAE,KAAK;iBAC3B;aACJ;YACD,cAAc,EAAE;gBACZ,aAAa,EAAE;oBACX;wBACI,WAAW,EAAE,GAAG;wBAChB,OAAO,EAAE,GAAG;wBACZ,MAAM,EAAE,sCAAsC;wBAC9C,IAAI,EAAE,wBAAY,CAAC,KAAK;wBACxB,QAAQ,EAAE,WAAW;qBACxB;iBACJ;aACJ;SACJ,CAAC,CACL,CAAC;KACL;IAAC,OAAO,KAAK,EAAE;QACZ,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;YAC7B,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;SACpE;aAAM;YACH,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,EAAE,CAAC;SAClB;KACJ;AACL,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"server-dev.js","sourceRoot":"","sources":["../src/server-dev.ts"],"names":[],"mappings":";;AAAA,mDAA0C;AAC1C,uDAAmD;AACnD,yCAAwC;AACxC,4DAA4D;AAE5D,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;IACxB,IAAI;QACA,MAAM,IAAA,mBAAK,EACP,IAAA,4BAAY,EAAC;YACT,EAAE,EAAE;gBACA,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;gBACxD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;gBAC3C,GAAG,EAAE,KAAK;gBACV,eAAe,EAAE,SAAS;aAC7B;YACD,MAAM,EAAE;gBACJ,mBAAmB,EAAE,IAAI;gBACzB,WAAW,EAAE,EAAE;gBACf,uBAAuB;gBACvB,sBAAsB,EAAE,IAAI;gBAC5B,yDAAyD;aAC5D;YACD,QAAQ,EAAE,iBAAQ,CAAC,KAAK;YACxB,SAAS,EAAE,IAAI;YACf,uBAAuB;YACvB,YAAY,EAAE;gBACV,MAAM,EAAE,KAAK;aAChB;YACD,YAAY,EAAE;gBACV,6BAA6B;gBAC7B,KAAK,EAAE;oBACH,UAAU,EAAE,IAAI;oBAChB,kBAAkB,EAAE,IAAI;oBACxB,YAAY,EAAE,IAAI;oBAClB,iBAAiB,EAAE,KAAK;iBAC3B;aACJ;YACD,cAAc,EAAE;gBACZ,aAAa,EAAE;oBACX;wBACI,WAAW,EAAE,GAAG;wBAChB,OAAO,EAAE,GAAG;wBACZ,MAAM,EAAE,sCAAsC;wBAC9C,IAAI,EAAE,wBAAY,CAAC,KAAK;wBACxB,QAAQ,EAAE,WAAW;qBACxB;iBACJ;aACJ;SACJ,CAAC,CACL,CAAC;KACL;IAAC,OAAO,KAAK,EAAE;QACZ,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;YAC7B,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;SACpE;aAAM;YACH,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,EAAE,CAAC;SAClB;KACJ;AACL,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-config.js","sourceRoot":"","sources":["../../../src/test/config/test-config.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA8B;AAC9B,mDAIgC;AAChC,sEAA8C;AAC9C,2DAAuD;AAEvD,SAAS,QAAQ,CAAI,OAAqB;IACtC,OAAO,mBAAK,CAAC,GAAG,CAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAwB;IACrD,MAAM,UAAU,GAAoB;QAChC,SAAS,EAAT,mBAAS;QACT,cAAc,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE;QAChE,MAAM,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;QACnC,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;QACtB,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAC/B,SAAS,EAAE,IAAI;QACf,oBAAoB,EAAE;YAClB,OAAO,EAAE,KAAK;SACjB;QACD,YAAY,EAAE;YACV,KAAK,EAAE;gBACH,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;aACrB;SACJ;KACJ,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,OAAO,IAAA,4BAAY,EAAC,OAAO,CAAC,CAAC;AACjC,CAAC;
|
|
1
|
+
{"version":3,"file":"test-config.js","sourceRoot":"","sources":["../../../src/test/config/test-config.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA8B;AAC9B,mDAIgC;AAChC,sEAA8C;AAC9C,2DAAuD;AAEvD,SAAS,QAAQ,CAAI,OAAqB;IACtC,OAAO,mBAAK,CAAC,GAAG,CAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAwB;IACrD,MAAM,UAAU,GAAoB;QAChC,SAAS,EAAT,mBAAS;QACT,cAAc,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE;QAChE,MAAM,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;QACnC,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;QACtB,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAC/B,SAAS,EAAE,IAAI;QACf,oBAAoB,EAAE;YAClB,OAAO,EAAE,KAAK;SACjB;QACD,YAAY,EAAE;YACV,KAAK,EAAE;gBACH,UAAU,EAAE,IAAI;gBAChB,kBAAkB,EAAE,IAAI;gBACxB,YAAY,EAAE,IAAI;aACrB;SACJ;KACJ,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,OAAO,IAAA,4BAAY,EAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AArBD,4CAqBC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# frontend
|
|
2
|
+
|
|
3
|
+
This directory contains the Unleash Admin UI frontend app.
|
|
4
|
+
|
|
5
|
+
## Run with a local instance of the unleash-api
|
|
6
|
+
|
|
7
|
+
First, start the unleash-api backend on port 4242.
|
|
8
|
+
Then, start the frontend dev server:
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
cd ~/frontend
|
|
12
|
+
yarn install
|
|
13
|
+
yarn run start
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Run with a heroku-hosted instance of unleash-api
|
|
17
|
+
|
|
18
|
+
Alternatively, instead of running unleash-api on localhost, use a remote instance:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
cd ~/frontend
|
|
22
|
+
yarn install
|
|
23
|
+
yarn run start:heroku
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Running end-to-end tests
|
|
27
|
+
|
|
28
|
+
We have a set of Cypress tests that run on the build before a PR can be merged
|
|
29
|
+
so it's important that you check these yourself before submitting a PR.
|
|
30
|
+
On the server the tests will run against the deployed Heroku app so this is what you probably want to test against:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
yarn run start:heroku
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
In a different shell, you can run the tests themselves:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
yarn run e2e:heroku
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
If you need to test against patches against a local server instance,
|
|
43
|
+
you'll need to run that, and then run the end to end tests using:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
yarn run e2e
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
You may also need to test that a feature works against the enterprise version of unleash.
|
|
50
|
+
Assuming the Heroku instance is still running, this can be done by:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
yarn run start:enterprise
|
|
54
|
+
yarn run e2e
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Generating the OpenAPI client
|
|
58
|
+
|
|
59
|
+
The frontend uses an OpenAPI client generated from the backend's OpenAPI spec.
|
|
60
|
+
Whenever there are changes to the backend API, the client should be regenerated:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
./scripts/generate-openapi.sh
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
This script assumes that you have a running instance of the enterprise backend at `http://localhost:4242`.
|
|
67
|
+
The new OpenAPI client will be generated from the runtime schema of this instance.
|
|
68
|
+
The target URL can be changed by setting the `UNLEASH_OPENAPI_URL` env var.
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg height="2500" viewBox=".27 .27 800.01 858.98" width="2328" xmlns="http://www.w3.org/2000/svg"><path d="m670.38 608.27-71.24-46.99-59.43 99.27-69.12-20.21-60.86 92.89 3.12 29.24 330.9-60.97-19.22-206.75zm-308.59-89.14 53.09-7.3c8.59 3.86 14.57 5.33 24.87 7.95 16.04 4.18 34.61 8.19 62.11-5.67 6.4-3.17 19.73-15.36 25.12-22.31l217.52-39.46 22.19 268.56-372.65 67.16zm404.06-96.77-21.47 4.09-41.25-426.18-702.86 81.5 86.59 702.68 82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26-24.23-20.13-15.66-54.32-1.37-75.91 18.91-36.48 116.34-82.84 110.82-141.15-1.98-21.2-5.35-48.8-25.03-67.71-.74 7.85.59 15.41.59 15.41s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31-3.03 8.33-2.63 17.99-2.63 17.99s-6.61-15.62-7.68-28.8c-3.92 5.9-4.91 17.11-4.91 17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49 21.45 15.03 68.67 11.46 87.07-15.66 6.11-8.98 10.29-33.5-3.05-81.81-8.57-30.98-29.79-77.11-38.06-94.61l-.99.71c4.36 14.1 13.35 43.66 16.8 57.99 10.44 43.47 13.24 58.6 8.34 78.64-4.17 17.42-14.17 28.82-39.52 41.56-25.35 12.78-58.99-18.32-61.12-20.04-24.63-19.62-43.68-51.63-45.81-67.18-2.21-17.02 9.81-27.24 15.87-41.16-8.67 2.48-18.34 6.88-18.34 6.88s11.54-11.94 25.77-22.27c5.89-3.9 9.35-6.38 15.56-11.54-8.99-.15-16.29.11-16.29.11s14.99-8.1 30.53-14c-11.37-.5-22.25-.08-22.25-.08s33.45-14.96 59.87-25.94c18.17-7.45 35.92-5.25 45.89 9.17 13.09 18.89 26.84 29.15 55.98 35.51 17.89-7.93 23.33-12.01 45.81-18.13 19.79-21.76 35.33-24.58 35.33-24.58s-7.71 7.07-9.77 18.18c11.22-8.84 23.52-16.22 23.52-16.22s-4.76 5.88-9.2 15.22l1.03 1.53c13.09-7.85 28.48-14.04 28.48-14.04s-4.4 5.56-9.56 12.76c9.87-.08 29.89.42 37.66 1.3 45.87 1.01 55.39-48.99 72.99-55.26 22.04-7.87 31.89-12.63 69.45 24.26 32.23 31.67 57.41 88.36 44.91 101.06-10.48 10.54-31.16-4.11-54.08-32.68-12.11-15.13-21.27-33.01-25.56-55.74-3.62-19.18-17.71-30.31-17.71-30.31s8.18 18.18 8.18 34.24c0 8.77 1.1 41.56 15.16 59.96-1.39 2.69-2.04 13.31-3.58 15.34-16.36-19.77-51.49-33.92-57.22-38.09 19.39 15.89 63.96 52.39 81.08 87.37 16.19 33.08 6.65 63.4 14.84 71.25 2.33 2.25 34.82 42.73 41.07 63.07 10.9 35.45.65 72.7-13.62 95.81l-39.85 6.21c-5.83-1.62-9.76-2.43-14.99-5.46 2.88-5.1 8.61-17.82 8.67-20.44l-2.25-3.95c-12.4 17.57-33.18 34.63-50.44 44.43-22.59 12.8-48.63 10.83-65.58 5.58-48.11-14.84-93.6-47.35-104.57-55.89 0 0-.34 6.82 1.73 8.35 12.13 13.68 39.92 38.43 66.78 55.68l-57.26 6.3 27.07 210.78c-12 1.72-13.87 2.56-27.01 4.43-11.58-40.91-33.73-67.62-57.94-83.18-21.35-13.72-50.8-16.81-78.99-11.23l-1.81 2.1c19.6-2.04 42.74.8 66.51 15.85 23.33 14.75 42.13 52.85 49.05 75.79 8.86 29.32 14.99 60.68-8.86 93.92-16.97 23.63-66.51 36.69-106.53 8.44 10.69 17.19 25.14 31.25 44.59 33.9 28.88 3.92 56.29-1.09 75.16-20.46 16.11-16.56 24.65-51.19 22.4-87.66l25.49-3.7 9.2 65.46 421.98-50.81zm-256.73-177.77c-1.18 2.69-3.03 4.45-.25 13.2l.17.5.44 1.13 1.16 2.62c5.01 10.24 10.51 19.9 19.7 24.83 2.38-.4 4.84-.67 7.39-.8 8.63-.38 14.08.99 17.54 2.85.31-1.72.38-4.24.19-7.95-.67-12.97 2.57-35.03-22.36-46.64-9.41-4.37-22.61-3.02-27.01 2.43.8.1 1.52.27 2.08.46 6.65 2.33 2.14 4.62.95 7.37m69.87 121.02c-3.27-1.8-18.55-1.09-29.29.19-20.46 2.41-42.55 9.51-47.39 13.29-8.8 6.8-4.8 18.66 1.7 23.53 18.23 13.62 34.21 22.75 51.08 20.53 10.36-1.36 19.49-17.76 25.96-32.64 4.43-10.25 4.43-21.31-2.06-24.9m-181.14-104.96c5.77-5.48-28.74-12.68-55.52 5.58-19.75 13.47-20.38 42.35-1.47 58.72 1.89 1.62 3.45 2.77 4.91 3.71 5.52-2.6 11.81-5.23 19.05-7.58 12.23-3.97 22.4-6.02 30.76-7.11 4-4.47 8.65-12.34 7.49-26.59-1.58-19.33-16.23-16.26-5.22-26.73" fill="#632ca6"/></svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|