Files
karma/ui/src/Models/API.js
Łukasz Mierzwa 80c30f1879 fix(ui): pass configured alertmanager headers when making requests from the browser
Right now configured headers are only set on requests made from the backend to alertmanager API.
With this change fetch() calls in the browser will use those headers if proxy mode is not enabled.
2019-09-26 20:37:23 +01:00

87 lines
2.7 KiB
JavaScript

import PropTypes from "prop-types";
const AlertState = PropTypes.oneOf(["unprocessed", "active", "suppressed"]);
const Annotation = PropTypes.exact({
name: PropTypes.string.isRequired,
value: PropTypes.string.isRequired,
visible: PropTypes.bool.isRequired,
isLink: PropTypes.bool.isRequired
});
const APIAlertAlertmanagerState = PropTypes.exact({
name: PropTypes.string.isRequired,
cluster: PropTypes.string.isRequired,
state: AlertState.isRequired,
startsAt: PropTypes.string.isRequired,
source: PropTypes.string.isRequired,
silencedBy: PropTypes.arrayOf(PropTypes.string).isRequired,
inhibitedBy: PropTypes.arrayOf(PropTypes.string).isRequired
});
const APIAlert = PropTypes.exact({
annotations: PropTypes.arrayOf(Annotation).isRequired,
labels: PropTypes.object.isRequired,
startsAt: PropTypes.string.isRequired,
state: AlertState.isRequired,
alertmanager: PropTypes.arrayOf(APIAlertAlertmanagerState).isRequired,
receiver: PropTypes.string.isRequired
});
const APIGroup = PropTypes.exact({
receiver: PropTypes.string.isRequired,
labels: PropTypes.object.isRequired,
alerts: PropTypes.arrayOf(APIAlert),
id: PropTypes.string.isRequired,
hash: PropTypes.string.isRequired,
alertmanagerCount: PropTypes.objectOf(PropTypes.number).isRequired,
stateCount: PropTypes.exact({
active: PropTypes.number.isRequired,
suppressed: PropTypes.number.isRequired,
unprocessed: PropTypes.number.isRequired
}),
shared: PropTypes.exact({
annotations: PropTypes.arrayOf(Annotation).isRequired,
labels: PropTypes.object.isRequired,
silences: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)).isRequired
}).isRequired
});
const APISilenceMatcher = PropTypes.exact({
name: PropTypes.string.isRequired,
value: PropTypes.string.isRequired,
isRegex: PropTypes.bool.isRequired
});
const APISilence = PropTypes.exact({
id: PropTypes.string.isRequired,
matchers: PropTypes.arrayOf(APISilenceMatcher).isRequired,
startsAt: PropTypes.string.isRequired,
endsAt: PropTypes.string.isRequired,
createdAt: PropTypes.string.isRequired,
createdBy: PropTypes.string.isRequired,
comment: PropTypes.string.isRequired,
jiraID: PropTypes.string.isRequired,
jiraURL: PropTypes.string.isRequired
});
const APIAlertmanagerUpstream = PropTypes.exact({
name: PropTypes.string.isRequired,
cluster: PropTypes.string.isRequired,
uri: PropTypes.string.isRequired,
publicURI: PropTypes.string.isRequired,
headers: PropTypes.object.isRequired,
error: PropTypes.string.isRequired,
version: PropTypes.string.isRequired,
clusterMembers: PropTypes.arrayOf(PropTypes.string).isRequired
});
export {
APIAlert,
APIGroup,
APISilence,
APISilenceMatcher,
APIAlertAlertmanagerState,
APIAlertmanagerUpstream
};