mirror of
https://github.com/Unleash/unleash.git
synced 2025-05-17 01:17:29 +02:00
Poc/strip client headers on 304 (#5574)
To reduce traffic returned on 304.
This commit is contained in:
parent
1173b664da
commit
b6f1929efb
@ -102,6 +102,7 @@ exports[`should create default config 1`] = `
|
||||
"responseTimeWithAppNameKillSwitch": false,
|
||||
"scheduledConfigurationChanges": false,
|
||||
"strictSchemaValidation": false,
|
||||
"stripClientHeadersOn304": false,
|
||||
},
|
||||
"externalResolver": {
|
||||
"getVariant": [Function],
|
||||
|
@ -248,6 +248,11 @@ export default class FeatureController extends Controller {
|
||||
|
||||
if (etag === userVersion) {
|
||||
res.status(304);
|
||||
if (this.flagResolver.isEnabled('stripClientHeadersOn304')) {
|
||||
res.getHeaderNames().forEach((header) =>
|
||||
res.removeHeader(header),
|
||||
);
|
||||
}
|
||||
res.end();
|
||||
return;
|
||||
} else {
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Response } from 'express';
|
||||
import Controller from '../controller';
|
||||
import { IUnleashConfig, IUnleashServices } from '../../types';
|
||||
import { IFlagResolver, IUnleashConfig, IUnleashServices } from '../../types';
|
||||
import ClientInstanceService from '../../services/client-metrics/instance-service';
|
||||
import { Logger } from '../../logger';
|
||||
import { IAuthRequest } from '../unleash-types';
|
||||
@ -24,6 +24,8 @@ export default class ClientMetricsController extends Controller {
|
||||
|
||||
metricsV2: ClientMetricsServiceV2;
|
||||
|
||||
flagResolver: IFlagResolver;
|
||||
|
||||
constructor(
|
||||
{
|
||||
clientInstanceService,
|
||||
@ -44,6 +46,7 @@ export default class ClientMetricsController extends Controller {
|
||||
this.clientInstanceService = clientInstanceService;
|
||||
this.openApiService = openApiService;
|
||||
this.metricsV2 = clientMetricsServiceV2;
|
||||
this.flagResolver = config.flagResolver;
|
||||
|
||||
this.route({
|
||||
method: 'post',
|
||||
@ -90,6 +93,11 @@ export default class ClientMetricsController extends Controller {
|
||||
);
|
||||
|
||||
await this.metricsV2.registerClientMetrics(data, clientIp);
|
||||
if (this.flagResolver.isEnabled('stripClientHeadersOn304')) {
|
||||
res.getHeaderNames().forEach((header) =>
|
||||
res.removeHeader(header),
|
||||
);
|
||||
}
|
||||
res.status(202).end();
|
||||
} catch (e) {
|
||||
res.status(400).end();
|
||||
|
@ -29,7 +29,8 @@ export type IFlagKey =
|
||||
| 'featureSearchAPI'
|
||||
| 'featureSearchFrontend'
|
||||
| 'scheduledConfigurationChanges'
|
||||
| 'detectSegmentUsageInChangeRequests';
|
||||
| 'detectSegmentUsageInChangeRequests'
|
||||
| 'stripClientHeadersOn304';
|
||||
|
||||
export type IFlags = Partial<{ [key in IFlagKey]: boolean | Variant }>;
|
||||
|
||||
@ -130,6 +131,11 @@ const flags: IFlags = {
|
||||
.UNLEASH_EXPERIMENTAL_DETECT_SEGMENT_USAGE_IN_CHANGE_REQUESTS,
|
||||
false,
|
||||
),
|
||||
stripClientHeadersOn304: parseEnvVarBoolean(
|
||||
process.env
|
||||
.UNLEASH_EXPERIMENTAL_DETECT_SEGMENT_USAGE_IN_CHANGE_REQUESTS,
|
||||
false,
|
||||
),
|
||||
};
|
||||
|
||||
export const defaultExperimentalOptions: IExperimentalOptions = {
|
||||
|
@ -26,7 +26,7 @@ process.nextTick(async () => {
|
||||
enableHeapSnapshotEnpoint: true,
|
||||
},
|
||||
logLevel: LogLevel.debug,
|
||||
// secureHeaders: true,
|
||||
secureHeaders: true,
|
||||
versionCheck: {
|
||||
enable: false,
|
||||
},
|
||||
@ -40,6 +40,7 @@ process.nextTick(async () => {
|
||||
privateProjects: true,
|
||||
featureSearchAPI: true,
|
||||
featureSearchFrontend: true,
|
||||
stripClientHeadersOn304: true,
|
||||
},
|
||||
},
|
||||
authentication: {
|
||||
|
Loading…
Reference in New Issue
Block a user