[Uptime] [Synthetics integration] parse inline script as json before sending it to fleet (#110118)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
4cf722fb48
commit
bb9ea8413f
|
@ -15,7 +15,7 @@ export const browserFormatters: BrowserFormatMap = {
|
|||
[ConfigKeys.SOURCE_ZIP_USERNAME]: null,
|
||||
[ConfigKeys.SOURCE_ZIP_PASSWORD]: null,
|
||||
[ConfigKeys.SOURCE_ZIP_FOLDER]: null,
|
||||
[ConfigKeys.SOURCE_INLINE]: null,
|
||||
[ConfigKeys.SOURCE_INLINE]: (fields) => JSON.stringify(fields[ConfigKeys.SOURCE_INLINE]),
|
||||
[ConfigKeys.PARAMS]: null,
|
||||
[ConfigKeys.SCREENSHOTS]: null,
|
||||
[ConfigKeys.SYNTHETICS_ARGS]: (fields) =>
|
||||
|
|
|
@ -10,7 +10,7 @@ import {
|
|||
Normalizer,
|
||||
commonNormalizers,
|
||||
getNormalizer,
|
||||
getJsonToArrayOrObjectNormalizer,
|
||||
getJsonToJavascriptNormalizer,
|
||||
} from '../common/normalizers';
|
||||
|
||||
import { defaultBrowserSimpleFields, defaultBrowserAdvancedFields } from '../contexts';
|
||||
|
@ -26,8 +26,8 @@ export const getBrowserNormalizer = (key: ConfigKeys) => {
|
|||
return getNormalizer(key, defaultBrowserFields);
|
||||
};
|
||||
|
||||
export const getBrowserJsonToArrayOrObjectNormalizer = (key: ConfigKeys) => {
|
||||
return getJsonToArrayOrObjectNormalizer(key, defaultBrowserFields);
|
||||
export const getBrowserJsonToJavascriptNormalizer = (key: ConfigKeys) => {
|
||||
return getJsonToJavascriptNormalizer(key, defaultBrowserFields);
|
||||
};
|
||||
|
||||
export const browserNormalizers: BrowserNormalizerMap = {
|
||||
|
@ -35,9 +35,9 @@ export const browserNormalizers: BrowserNormalizerMap = {
|
|||
[ConfigKeys.SOURCE_ZIP_USERNAME]: getBrowserNormalizer(ConfigKeys.SOURCE_ZIP_USERNAME),
|
||||
[ConfigKeys.SOURCE_ZIP_PASSWORD]: getBrowserNormalizer(ConfigKeys.SOURCE_ZIP_PASSWORD),
|
||||
[ConfigKeys.SOURCE_ZIP_FOLDER]: getBrowserNormalizer(ConfigKeys.SOURCE_ZIP_FOLDER),
|
||||
[ConfigKeys.SOURCE_INLINE]: getBrowserNormalizer(ConfigKeys.SOURCE_INLINE),
|
||||
[ConfigKeys.SOURCE_INLINE]: getBrowserJsonToJavascriptNormalizer(ConfigKeys.SOURCE_INLINE),
|
||||
[ConfigKeys.PARAMS]: getBrowserNormalizer(ConfigKeys.PARAMS),
|
||||
[ConfigKeys.SCREENSHOTS]: getBrowserNormalizer(ConfigKeys.SCREENSHOTS),
|
||||
[ConfigKeys.SYNTHETICS_ARGS]: getBrowserJsonToArrayOrObjectNormalizer(ConfigKeys.SYNTHETICS_ARGS),
|
||||
[ConfigKeys.SYNTHETICS_ARGS]: getBrowserJsonToJavascriptNormalizer(ConfigKeys.SYNTHETICS_ARGS),
|
||||
...commonNormalizers,
|
||||
};
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { cronToSecondsNormalizer, jsonToArrayOrObjectNormalizer } from './normalizers';
|
||||
import { cronToSecondsNormalizer, jsonToJavascriptNormalizer } from './normalizers';
|
||||
|
||||
describe('normalizers', () => {
|
||||
describe('cronToSecondsNormalizer', () => {
|
||||
|
@ -14,15 +14,15 @@ describe('normalizers', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('jsonToArrayOrObjectNormalizer', () => {
|
||||
describe('jsonToJavascriptNormalizer', () => {
|
||||
it('takes a json object string and returns an object', () => {
|
||||
expect(jsonToArrayOrObjectNormalizer('{\n "key": "value"\n}')).toEqual({
|
||||
expect(jsonToJavascriptNormalizer('{\n "key": "value"\n}')).toEqual({
|
||||
key: 'value',
|
||||
});
|
||||
});
|
||||
|
||||
it('takes a json array string and returns an array', () => {
|
||||
expect(jsonToArrayOrObjectNormalizer('["tag1","tag2"]')).toEqual(['tag1', 'tag2']);
|
||||
expect(jsonToJavascriptNormalizer('["tag1","tag2"]')).toEqual(['tag1', 'tag2']);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -23,19 +23,19 @@ export type CommonNormalizerMap = Record<keyof ICommonFields | ConfigKeys.NAME,
|
|||
export const cronToSecondsNormalizer = (value: string) =>
|
||||
value ? value.slice(0, value.length - 1) : null;
|
||||
|
||||
export const jsonToArrayOrObjectNormalizer = (value: string) => (value ? JSON.parse(value) : null);
|
||||
export const jsonToJavascriptNormalizer = (value: string) => (value ? JSON.parse(value) : null);
|
||||
|
||||
export function getNormalizer<Fields>(key: string, defaultValues: Fields): Normalizer {
|
||||
return (fields: NewPackagePolicyInput['vars']) =>
|
||||
fields?.[key]?.value ?? defaultValues[key as keyof Fields];
|
||||
}
|
||||
|
||||
export function getJsonToArrayOrObjectNormalizer<Fields>(
|
||||
export function getJsonToJavascriptNormalizer<Fields>(
|
||||
key: string,
|
||||
defaultValues: Fields
|
||||
): Normalizer {
|
||||
return (fields: NewPackagePolicyInput['vars']) =>
|
||||
jsonToArrayOrObjectNormalizer(fields?.[key]?.value) ?? defaultValues[key as keyof Fields];
|
||||
jsonToJavascriptNormalizer(fields?.[key]?.value) ?? defaultValues[key as keyof Fields];
|
||||
}
|
||||
|
||||
export function getCronNormalizer<Fields>(key: string, defaultValues: Fields): Normalizer {
|
||||
|
@ -47,8 +47,8 @@ export const getCommonNormalizer = (key: ConfigKeys) => {
|
|||
return getNormalizer(key, commonDefaultValues);
|
||||
};
|
||||
|
||||
export const getCommonJsonToArrayOrObjectNormalizer = (key: ConfigKeys) => {
|
||||
return getJsonToArrayOrObjectNormalizer(key, commonDefaultValues);
|
||||
export const getCommonjsonToJavascriptNormalizer = (key: ConfigKeys) => {
|
||||
return getJsonToJavascriptNormalizer(key, commonDefaultValues);
|
||||
};
|
||||
|
||||
export const getCommonCronToSecondsNormalizer = (key: ConfigKeys) => {
|
||||
|
@ -74,6 +74,6 @@ export const commonNormalizers: CommonNormalizerMap = {
|
|||
}
|
||||
},
|
||||
[ConfigKeys.APM_SERVICE_NAME]: getCommonNormalizer(ConfigKeys.APM_SERVICE_NAME),
|
||||
[ConfigKeys.TAGS]: getCommonJsonToArrayOrObjectNormalizer(ConfigKeys.TAGS),
|
||||
[ConfigKeys.TAGS]: getCommonjsonToJavascriptNormalizer(ConfigKeys.TAGS),
|
||||
[ConfigKeys.TIMEOUT]: getCommonCronToSecondsNormalizer(ConfigKeys.TIMEOUT),
|
||||
};
|
||||
|
|
|
@ -10,7 +10,7 @@ import {
|
|||
Normalizer,
|
||||
commonNormalizers,
|
||||
getNormalizer,
|
||||
getJsonToArrayOrObjectNormalizer,
|
||||
getJsonToJavascriptNormalizer,
|
||||
} from '../common/normalizers';
|
||||
import { tlsNormalizers } from '../tls/normalizers';
|
||||
import { defaultHTTPSimpleFields, defaultHTTPAdvancedFields } from '../contexts';
|
||||
|
@ -26,8 +26,8 @@ export const getHTTPNormalizer = (key: ConfigKeys) => {
|
|||
return getNormalizer(key, defaultHTTPValues);
|
||||
};
|
||||
|
||||
export const getHTTPJsonToArrayOrObjectNormalizer = (key: ConfigKeys) => {
|
||||
return getJsonToArrayOrObjectNormalizer(key, defaultHTTPValues);
|
||||
export const getHTTPJsonToJavascriptNormalizer = (key: ConfigKeys) => {
|
||||
return getJsonToJavascriptNormalizer(key, defaultHTTPValues);
|
||||
};
|
||||
|
||||
export const httpNormalizers: HTTPNormalizerMap = {
|
||||
|
@ -36,18 +36,18 @@ export const httpNormalizers: HTTPNormalizerMap = {
|
|||
[ConfigKeys.USERNAME]: getHTTPNormalizer(ConfigKeys.USERNAME),
|
||||
[ConfigKeys.PASSWORD]: getHTTPNormalizer(ConfigKeys.PASSWORD),
|
||||
[ConfigKeys.PROXY_URL]: getHTTPNormalizer(ConfigKeys.PROXY_URL),
|
||||
[ConfigKeys.RESPONSE_BODY_CHECK_NEGATIVE]: getHTTPJsonToArrayOrObjectNormalizer(
|
||||
[ConfigKeys.RESPONSE_BODY_CHECK_NEGATIVE]: getHTTPJsonToJavascriptNormalizer(
|
||||
ConfigKeys.RESPONSE_BODY_CHECK_NEGATIVE
|
||||
),
|
||||
[ConfigKeys.RESPONSE_BODY_CHECK_POSITIVE]: getHTTPJsonToArrayOrObjectNormalizer(
|
||||
[ConfigKeys.RESPONSE_BODY_CHECK_POSITIVE]: getHTTPJsonToJavascriptNormalizer(
|
||||
ConfigKeys.RESPONSE_BODY_CHECK_POSITIVE
|
||||
),
|
||||
[ConfigKeys.RESPONSE_BODY_INDEX]: getHTTPNormalizer(ConfigKeys.RESPONSE_BODY_INDEX),
|
||||
[ConfigKeys.RESPONSE_HEADERS_CHECK]: getHTTPJsonToArrayOrObjectNormalizer(
|
||||
[ConfigKeys.RESPONSE_HEADERS_CHECK]: getHTTPJsonToJavascriptNormalizer(
|
||||
ConfigKeys.RESPONSE_HEADERS_CHECK
|
||||
),
|
||||
[ConfigKeys.RESPONSE_HEADERS_INDEX]: getHTTPNormalizer(ConfigKeys.RESPONSE_HEADERS_INDEX),
|
||||
[ConfigKeys.RESPONSE_STATUS_CHECK]: getHTTPJsonToArrayOrObjectNormalizer(
|
||||
[ConfigKeys.RESPONSE_STATUS_CHECK]: getHTTPJsonToJavascriptNormalizer(
|
||||
ConfigKeys.RESPONSE_STATUS_CHECK
|
||||
),
|
||||
[ConfigKeys.REQUEST_BODY_CHECK]: (fields) => {
|
||||
|
@ -76,7 +76,7 @@ export const httpNormalizers: HTTPNormalizerMap = {
|
|||
return defaultHTTPAdvancedFields[ConfigKeys.REQUEST_BODY_CHECK];
|
||||
}
|
||||
},
|
||||
[ConfigKeys.REQUEST_HEADERS_CHECK]: getHTTPJsonToArrayOrObjectNormalizer(
|
||||
[ConfigKeys.REQUEST_HEADERS_CHECK]: getHTTPJsonToJavascriptNormalizer(
|
||||
ConfigKeys.REQUEST_HEADERS_CHECK
|
||||
),
|
||||
[ConfigKeys.REQUEST_METHOD_CHECK]: getHTTPNormalizer(ConfigKeys.REQUEST_METHOD_CHECK),
|
||||
|
|
|
@ -655,7 +655,9 @@ describe('useBarChartsHooks', () => {
|
|||
config[ConfigKeys.SOURCE_ZIP_PASSWORD]
|
||||
);
|
||||
expect(vars?.[ConfigKeys.SOURCE_ZIP_URL].value).toEqual(config[ConfigKeys.SOURCE_ZIP_URL]);
|
||||
expect(vars?.[ConfigKeys.SOURCE_INLINE].value).toEqual(config[ConfigKeys.SOURCE_INLINE]);
|
||||
expect(vars?.[ConfigKeys.SOURCE_INLINE].value).toEqual(
|
||||
JSON.stringify(config[ConfigKeys.SOURCE_INLINE])
|
||||
);
|
||||
expect(vars?.[ConfigKeys.SOURCE_ZIP_PASSWORD].value).toEqual(
|
||||
config[ConfigKeys.SOURCE_ZIP_PASSWORD]
|
||||
);
|
||||
|
|
Loading…
Reference in a new issue