@kyverno/backstage-plugin-policy-reporter 2.1.1 → 2.2.1
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/README.md +9 -1
- package/dist/components/EntityCustomPoliciesContent/EntityCustomPoliciesContent.esm.js +105 -0
- package/dist/components/EntityCustomPoliciesContent/EntityCustomPoliciesContent.esm.js.map +1 -0
- package/dist/components/EntityCustomPoliciesContent/index.esm.js +2 -0
- package/dist/components/EntityCustomPoliciesContent/index.esm.js.map +1 -0
- package/dist/components/EntityKyvernoPoliciesContent/EntityKyvernoPoliciesContent.esm.js +66 -59
- package/dist/components/EntityKyvernoPoliciesContent/EntityKyvernoPoliciesContent.esm.js.map +1 -1
- package/dist/components/MissingEnvironmentsEmptyState/MissingEnvironmentsEmptyState.esm.js +21 -13
- package/dist/components/MissingEnvironmentsEmptyState/MissingEnvironmentsEmptyState.esm.js.map +1 -1
- package/dist/components/PolicyReportsDrawerComponent/PolicyReportsDrawerComponent.esm.js +69 -3
- package/dist/components/PolicyReportsDrawerComponent/PolicyReportsDrawerComponent.esm.js.map +1 -1
- package/dist/components/PolicyReportsTable/PolicyReportsTable.esm.js +43 -39
- package/dist/components/PolicyReportsTable/PolicyReportsTable.esm.js.map +1 -1
- package/dist/components/SelectEnvironment/SelectEnvironment.esm.js +16 -13
- package/dist/components/SelectEnvironment/SelectEnvironment.esm.js.map +1 -1
- package/dist/components/SeverityComponent/SeverityComponent.esm.js +6 -6
- package/dist/components/SeverityComponent/SeverityComponent.esm.js.map +1 -1
- package/dist/components/StatusComponent/StatusComponent.esm.js +6 -6
- package/dist/components/StatusComponent/StatusComponent.esm.js.map +1 -1
- package/dist/index.d.ts +11 -6
- package/dist/index.esm.js +1 -1
- package/dist/plugin.esm.js +10 -1
- package/dist/plugin.esm.js.map +1 -1
- package/package.json +12 -13
- package/LICENSE +0 -201
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
1
2
|
import { ResponseErrorPanel, Table } from '@backstage/core-components';
|
|
2
|
-
import
|
|
3
|
+
import { useState } from 'react';
|
|
3
4
|
import { makeStyles, Drawer } from '@material-ui/core';
|
|
4
5
|
import Chip from '@material-ui/core/Chip';
|
|
5
6
|
import { StatusComponent } from '../StatusComponent/StatusComponent.esm.js';
|
|
@@ -45,7 +46,7 @@ const PolicyReportsTable = ({
|
|
|
45
46
|
field: "policy",
|
|
46
47
|
render: (listResult) => {
|
|
47
48
|
if (policyDocumentationUrl)
|
|
48
|
-
return /* @__PURE__ */
|
|
49
|
+
return /* @__PURE__ */ jsx(
|
|
49
50
|
Chip,
|
|
50
51
|
{
|
|
51
52
|
label: listResult.policy,
|
|
@@ -53,17 +54,17 @@ const PolicyReportsTable = ({
|
|
|
53
54
|
target: "_blank",
|
|
54
55
|
href: `${policyDocumentationUrl}#${listResult.policy}`,
|
|
55
56
|
clickable: true,
|
|
56
|
-
icon: /* @__PURE__ */
|
|
57
|
+
icon: /* @__PURE__ */ jsx(Launch, { fontSize: "small" })
|
|
57
58
|
}
|
|
58
59
|
);
|
|
59
|
-
return /* @__PURE__ */
|
|
60
|
+
return /* @__PURE__ */ jsx(Chip, { label: listResult.policy });
|
|
60
61
|
}
|
|
61
62
|
},
|
|
62
63
|
{
|
|
63
64
|
title: "rule",
|
|
64
65
|
field: "rule",
|
|
65
66
|
render: (listResult) => {
|
|
66
|
-
return /* @__PURE__ */
|
|
67
|
+
return /* @__PURE__ */ jsx(Chip, { label: listResult.rule });
|
|
67
68
|
}
|
|
68
69
|
},
|
|
69
70
|
{
|
|
@@ -71,7 +72,7 @@ const PolicyReportsTable = ({
|
|
|
71
72
|
field: "status",
|
|
72
73
|
width: "30",
|
|
73
74
|
render: (listResult) => {
|
|
74
|
-
return /* @__PURE__ */
|
|
75
|
+
return /* @__PURE__ */ jsx(StatusComponent, { status: listResult.status });
|
|
75
76
|
}
|
|
76
77
|
},
|
|
77
78
|
{
|
|
@@ -79,7 +80,7 @@ const PolicyReportsTable = ({
|
|
|
79
80
|
field: "severity",
|
|
80
81
|
width: "30",
|
|
81
82
|
render: (listResult) => {
|
|
82
|
-
return /* @__PURE__ */
|
|
83
|
+
return /* @__PURE__ */ jsx(SeverityComponent, { severity: listResult.severity });
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
86
|
];
|
|
@@ -91,9 +92,9 @@ const PolicyReportsTable = ({
|
|
|
91
92
|
setCurrentOffset,
|
|
92
93
|
initialLoading
|
|
93
94
|
} = usePaginatedPolicies(currentEnvironment, filter);
|
|
94
|
-
if (policiesError) return /* @__PURE__ */
|
|
95
|
+
if (policiesError) return /* @__PURE__ */ jsx(ResponseErrorPanel, { error: policiesError });
|
|
95
96
|
if (initialLoading)
|
|
96
|
-
return /* @__PURE__ */
|
|
97
|
+
return /* @__PURE__ */ jsx(
|
|
97
98
|
Table,
|
|
98
99
|
{
|
|
99
100
|
options: { paging: false, padding: "dense" },
|
|
@@ -103,36 +104,39 @@ const PolicyReportsTable = ({
|
|
|
103
104
|
title
|
|
104
105
|
}
|
|
105
106
|
);
|
|
106
|
-
return /* @__PURE__ */
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
107
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
108
|
+
/* @__PURE__ */ jsx(
|
|
109
|
+
Drawer,
|
|
110
|
+
{
|
|
111
|
+
anchor: "right",
|
|
112
|
+
open: showDrawer,
|
|
113
|
+
onClose: () => setShowDrawer(false),
|
|
114
|
+
children: /* @__PURE__ */ jsx(PolicyReportsDrawerComponent, { content: drawerContent })
|
|
115
|
+
}
|
|
116
|
+
),
|
|
117
|
+
/* @__PURE__ */ jsx(
|
|
118
|
+
Table,
|
|
119
|
+
{
|
|
120
|
+
options: {
|
|
121
|
+
sorting: true,
|
|
122
|
+
padding: "dense"
|
|
123
|
+
},
|
|
124
|
+
onRowClick: (event, rowData) => {
|
|
125
|
+
event?.preventDefault();
|
|
126
|
+
setShowDrawer(true);
|
|
127
|
+
setDrawerContent(rowData);
|
|
128
|
+
},
|
|
129
|
+
data: policies?.items ?? [],
|
|
130
|
+
columns,
|
|
131
|
+
title,
|
|
132
|
+
totalCount: policies?.count,
|
|
133
|
+
page: currentPage,
|
|
134
|
+
onRowsPerPageChange: (page) => setCurrentOffset(page),
|
|
135
|
+
onPageChange: (page) => setCurrentPage(page),
|
|
136
|
+
emptyContent: /* @__PURE__ */ jsx("div", { className: classes.empty, children: emptyContentText })
|
|
137
|
+
}
|
|
138
|
+
)
|
|
139
|
+
] });
|
|
136
140
|
};
|
|
137
141
|
|
|
138
142
|
export { PolicyReportsTable };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolicyReportsTable.esm.js","sources":["../../../src/components/PolicyReportsTable/PolicyReportsTable.tsx"],"sourcesContent":["import {\n ResponseErrorPanel,\n Table,\n TableColumn,\n} from '@backstage/core-components';\nimport
|
|
1
|
+
{"version":3,"file":"PolicyReportsTable.esm.js","sources":["../../../src/components/PolicyReportsTable/PolicyReportsTable.tsx"],"sourcesContent":["import {\n ResponseErrorPanel,\n Table,\n TableColumn,\n} from '@backstage/core-components';\nimport { useState } from 'react';\nimport {\n Filter,\n ListResult,\n} from '@kyverno/backstage-plugin-policy-reporter-common';\nimport { Drawer, makeStyles } from '@material-ui/core';\nimport Chip from '@material-ui/core/Chip';\nimport { StatusComponent } from '../StatusComponent';\nimport { SeverityComponent } from '../SeverityComponent';\nimport Launch from '@material-ui/icons/Launch';\nimport { Environment } from '@kyverno/backstage-plugin-policy-reporter-common';\nimport { usePaginatedPolicies } from '../../hooks/usePaginatedPolicies';\nimport { PolicyReportsDrawerComponent } from '../PolicyReportsDrawerComponent/PolicyReportsDrawerComponent';\n\ninterface PolicyReportsTableProps {\n currentEnvironment: Environment;\n filter: Filter;\n title: string;\n emptyContentText: string;\n policyDocumentationUrl?: string;\n}\n\nexport const PolicyReportsTable = ({\n title,\n emptyContentText,\n currentEnvironment,\n filter,\n policyDocumentationUrl,\n}: PolicyReportsTableProps) => {\n const useStyles = makeStyles(theme => ({\n empty: {\n padding: theme.spacing(2),\n display: 'flex',\n justifyContent: 'center',\n },\n }));\n\n const [showDrawer, setShowDrawer] = useState<boolean>(false);\n const [drawerContent, setDrawerContent] = useState<ListResult | undefined>(\n undefined,\n );\n const classes = useStyles();\n\n const columns: TableColumn<ListResult>[] = [\n {\n title: 'name',\n field: 'name',\n },\n {\n title: 'namespace',\n field: 'namespace',\n },\n {\n title: 'kind',\n field: 'kind',\n },\n {\n title: 'policy',\n field: 'policy',\n render: (listResult: ListResult) => {\n // When policyDocumentationUrl is provided create link to the Policy section\n if (policyDocumentationUrl)\n return (\n <Chip\n label={listResult.policy}\n component=\"a\"\n target=\"_blank\"\n href={`${policyDocumentationUrl}#${listResult.policy}`}\n clickable\n icon={<Launch fontSize=\"small\" />}\n />\n );\n\n return <Chip label={listResult.policy} />;\n },\n },\n {\n title: 'rule',\n field: 'rule',\n render: (listResult: ListResult) => {\n return <Chip label={listResult.rule} />;\n },\n },\n {\n title: 'status',\n field: 'status',\n width: '30',\n render: (listResult: ListResult) => {\n return <StatusComponent status={listResult.status} />;\n },\n },\n {\n title: 'severity',\n field: 'severity',\n width: '30',\n render: (listResult: ListResult) => {\n return <SeverityComponent severity={listResult.severity} />;\n },\n },\n ];\n\n const {\n policies,\n policiesError,\n currentPage,\n setCurrentPage,\n setCurrentOffset,\n initialLoading,\n } = usePaginatedPolicies(currentEnvironment, filter);\n\n if (policiesError) return <ResponseErrorPanel error={policiesError} />;\n\n // Return loading table\n if (initialLoading)\n return (\n <Table\n options={{ paging: false, padding: 'dense' }}\n data={[]}\n columns={columns}\n isLoading\n title={title}\n />\n );\n\n return (\n <>\n <Drawer\n anchor=\"right\"\n open={showDrawer}\n onClose={() => setShowDrawer(false)}\n >\n <PolicyReportsDrawerComponent content={drawerContent} />\n </Drawer>\n <Table\n options={{\n sorting: true,\n padding: 'dense',\n }}\n onRowClick={(\n event?: React.MouseEvent<Element, MouseEvent>,\n rowData?: ListResult,\n ) => {\n event?.preventDefault();\n setShowDrawer(true);\n setDrawerContent(rowData);\n }}\n data={policies?.items ?? []}\n columns={columns}\n title={title}\n totalCount={policies?.count}\n page={currentPage}\n onRowsPerPageChange={page => setCurrentOffset(page)}\n onPageChange={page => setCurrentPage(page)}\n emptyContent={<div className={classes.empty}>{emptyContentText}</div>}\n />\n </>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import MenuItem from '@material-ui/core/MenuItem';
|
|
3
3
|
import InputLabel from '@material-ui/core/InputLabel';
|
|
4
4
|
import FormControl from '@material-ui/core/FormControl';
|
|
@@ -26,18 +26,21 @@ const SelectEnvironment = ({
|
|
|
26
26
|
setCurrentEnvironment(environments[Number(event.target.value)]);
|
|
27
27
|
};
|
|
28
28
|
const isSingleEnvironment = environments.length === 1;
|
|
29
|
-
return /* @__PURE__ */
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
29
|
+
return /* @__PURE__ */ jsxs(FormControl, { className: classes.formControl, children: [
|
|
30
|
+
/* @__PURE__ */ jsx(InputLabel, { id: "select-environment-label", children: "Environment" }),
|
|
31
|
+
/* @__PURE__ */ jsx(
|
|
32
|
+
Select,
|
|
33
|
+
{
|
|
34
|
+
labelId: "select-environment-label",
|
|
35
|
+
id: "select-environment",
|
|
36
|
+
value: String(currentEnvironment.id),
|
|
37
|
+
onChange: handleChange,
|
|
38
|
+
disabled: isSingleEnvironment,
|
|
39
|
+
className: isSingleEnvironment ? classes.hideDropdownArrow : "",
|
|
40
|
+
children: environments.map((env) => /* @__PURE__ */ jsx(MenuItem, { value: env.id, children: env.name }, env.name))
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
] });
|
|
41
44
|
};
|
|
42
45
|
|
|
43
46
|
export { SelectEnvironment };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectEnvironment.esm.js","sources":["../../../src/components/SelectEnvironment/SelectEnvironment.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"SelectEnvironment.esm.js","sources":["../../../src/components/SelectEnvironment/SelectEnvironment.tsx"],"sourcesContent":["import MenuItem from '@material-ui/core/MenuItem';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport FormControl from '@material-ui/core/FormControl';\nimport Select from '@material-ui/core/Select';\nimport { Environment } from '@kyverno/backstage-plugin-policy-reporter-common';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n formControl: {\n margin: 8,\n minWidth: 150,\n },\n hideDropdownArrow: {\n '& .MuiSelect-icon-196.Mui-disabled': {\n display: 'none',\n },\n },\n});\n\ntype SelectEnvironmentProps = {\n environments: Environment[];\n currentEnvironment: Environment;\n setCurrentEnvironment: (environment: Environment) => void;\n};\n\nexport const SelectEnvironment = ({\n environments,\n currentEnvironment,\n setCurrentEnvironment,\n}: SelectEnvironmentProps) => {\n const classes = useStyles();\n\n const handleChange = (event: any) => {\n setCurrentEnvironment(environments[Number(event.target.value)]);\n };\n\n // Check if there is more then 1 environment\n const isSingleEnvironment = environments.length === 1;\n\n return (\n <FormControl className={classes.formControl}>\n <InputLabel id=\"select-environment-label\">Environment</InputLabel>\n <Select\n labelId=\"select-environment-label\"\n id=\"select-environment\"\n value={String(currentEnvironment.id)}\n onChange={handleChange}\n disabled={isSingleEnvironment}\n className={isSingleEnvironment ? classes.hideDropdownArrow : ''}\n >\n {environments.map(env => (\n <MenuItem key={env.name} value={env.id}>\n {env.name}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAOA,MAAM,YAAY,UAAW,CAAA;AAAA,EAC3B,WAAa,EAAA;AAAA,IACX,MAAQ,EAAA,CAAA;AAAA,IACR,QAAU,EAAA;AAAA,GACZ;AAAA,EACA,iBAAmB,EAAA;AAAA,IACjB,oCAAsC,EAAA;AAAA,MACpC,OAAS,EAAA;AAAA;AACX;AAEJ,CAAC,CAAA;AAQM,MAAM,oBAAoB,CAAC;AAAA,EAChC,YAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAA8B,KAAA;AAC5B,EAAA,MAAM,UAAU,SAAU,EAAA;AAE1B,EAAM,MAAA,YAAA,GAAe,CAAC,KAAe,KAAA;AACnC,IAAA,qBAAA,CAAsB,aAAa,MAAO,CAAA,KAAA,CAAM,MAAO,CAAA,KAAK,CAAC,CAAC,CAAA;AAAA,GAChE;AAGA,EAAM,MAAA,mBAAA,GAAsB,aAAa,MAAW,KAAA,CAAA;AAEpD,EAAA,uBACG,IAAA,CAAA,WAAA,EAAA,EAAY,SAAW,EAAA,OAAA,CAAQ,WAC9B,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,UAAA,EAAA,EAAW,EAAG,EAAA,0BAAA,EAA2B,QAAW,EAAA,aAAA,EAAA,CAAA;AAAA,oBACrD,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAQ,EAAA,0BAAA;AAAA,QACR,EAAG,EAAA,oBAAA;AAAA,QACH,KAAA,EAAO,MAAO,CAAA,kBAAA,CAAmB,EAAE,CAAA;AAAA,QACnC,QAAU,EAAA,YAAA;AAAA,QACV,QAAU,EAAA,mBAAA;AAAA,QACV,SAAA,EAAW,mBAAsB,GAAA,OAAA,CAAQ,iBAAoB,GAAA,EAAA;AAAA,QAE5D,QAAa,EAAA,YAAA,CAAA,GAAA,CAAI,CAChB,GAAA,qBAAA,GAAA,CAAC,QAAwB,EAAA,EAAA,KAAA,EAAO,GAAI,CAAA,EAAA,EACjC,QAAI,EAAA,GAAA,CAAA,IAAA,EAAA,EADQ,GAAI,CAAA,IAEnB,CACD;AAAA;AAAA;AACH,GACF,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import Chip from '@material-ui/core/Chip';
|
|
3
3
|
import makeStyles from '@material-ui/core/styles/makeStyles';
|
|
4
4
|
|
|
@@ -24,15 +24,15 @@ const SeverityComponent = ({ severity }) => {
|
|
|
24
24
|
const classes = useStyles();
|
|
25
25
|
switch (severity) {
|
|
26
26
|
case "high":
|
|
27
|
-
return /* @__PURE__ */
|
|
27
|
+
return /* @__PURE__ */ jsx(Chip, { label: severity, className: classes.error });
|
|
28
28
|
case "low":
|
|
29
|
-
return /* @__PURE__ */
|
|
29
|
+
return /* @__PURE__ */ jsx(Chip, { label: severity, className: classes.success });
|
|
30
30
|
case "medium":
|
|
31
|
-
return /* @__PURE__ */
|
|
31
|
+
return /* @__PURE__ */ jsx(Chip, { label: severity, className: classes.warning });
|
|
32
32
|
case "info":
|
|
33
|
-
return /* @__PURE__ */
|
|
33
|
+
return /* @__PURE__ */ jsx(Chip, { label: severity, className: classes.info });
|
|
34
34
|
case "critical":
|
|
35
|
-
return /* @__PURE__ */
|
|
35
|
+
return /* @__PURE__ */ jsx(Chip, { label: severity, className: classes.error });
|
|
36
36
|
default:
|
|
37
37
|
return null;
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeverityComponent.esm.js","sources":["../../../src/components/SeverityComponent/SeverityComponent.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"SeverityComponent.esm.js","sources":["../../../src/components/SeverityComponent/SeverityComponent.tsx"],"sourcesContent":["import Chip from '@material-ui/core/Chip';\nimport { Severity } from '@kyverno/backstage-plugin-policy-reporter-common';\nimport makeStyles from '@material-ui/core/styles/makeStyles';\n\nconst useStyles = makeStyles((theme: any) => ({\n error: {\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText,\n },\n success: {\n backgroundColor: theme.palette.success.main,\n color: theme.palette.success.contrastText,\n },\n warning: {\n backgroundColor: theme.palette.warning.main,\n color: theme.palette.warning.contrastText,\n },\n info: {\n backgroundColor: theme.palette.info.main,\n color: theme.palette.info.contrastText,\n },\n}));\n\ntype SeverityComponentProps = {\n severity: Severity | null;\n};\n\nexport const SeverityComponent = ({ severity }: SeverityComponentProps) => {\n const classes = useStyles();\n switch (severity) {\n case 'high':\n return <Chip label={severity} className={classes.error} />;\n case 'low':\n return <Chip label={severity} className={classes.success} />;\n case 'medium':\n return <Chip label={severity} className={classes.warning} />;\n case 'info':\n return <Chip label={severity} className={classes.info} />;\n case 'critical':\n return <Chip label={severity} className={classes.error} />;\n default:\n return null;\n }\n};\n"],"names":[],"mappings":";;;;AAIA,MAAM,SAAA,GAAY,UAAW,CAAA,CAAC,KAAgB,MAAA;AAAA,EAC5C,KAAO,EAAA;AAAA,IACL,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,IAAA;AAAA,IACrC,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA;AAAA,GAC7B;AAAA,EACA,OAAS,EAAA;AAAA,IACP,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA,IAAA;AAAA,IACvC,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA;AAAA,GAC/B;AAAA,EACA,OAAS,EAAA;AAAA,IACP,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA,IAAA;AAAA,IACvC,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA;AAAA,GAC/B;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA,IAAA;AAAA,IACpC,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA;AAAA;AAE9B,CAAE,CAAA,CAAA;AAMK,MAAM,iBAAoB,GAAA,CAAC,EAAE,QAAA,EAAuC,KAAA;AACzE,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAA,QAAQ,QAAU;AAAA,IAChB,KAAK,MAAA;AACH,MAAA,2BAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,KAAO,EAAA,CAAA;AAAA,IAC1D,KAAK,KAAA;AACH,MAAA,2BAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,OAAS,EAAA,CAAA;AAAA,IAC5D,KAAK,QAAA;AACH,MAAA,2BAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,OAAS,EAAA,CAAA;AAAA,IAC5D,KAAK,MAAA;AACH,MAAA,2BAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,IAAM,EAAA,CAAA;AAAA,IACzD,KAAK,UAAA;AACH,MAAA,2BAAQ,IAAK,EAAA,EAAA,KAAA,EAAO,QAAU,EAAA,SAAA,EAAW,QAAQ,KAAO,EAAA,CAAA;AAAA,IAC1D;AACE,MAAO,OAAA,IAAA;AAAA;AAEb;;;;"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { StatusWarning, StatusAborted, StatusError, StatusOK } from '@backstage/core-components';
|
|
3
3
|
|
|
4
4
|
const StatusComponent = ({ status }) => {
|
|
5
5
|
switch (status) {
|
|
6
6
|
case "pass":
|
|
7
|
-
return /* @__PURE__ */
|
|
7
|
+
return /* @__PURE__ */ jsx(StatusOK, { children: "PASS" });
|
|
8
8
|
case "error":
|
|
9
|
-
return /* @__PURE__ */
|
|
9
|
+
return /* @__PURE__ */ jsx(StatusError, { children: "ERROR" });
|
|
10
10
|
case "fail":
|
|
11
|
-
return /* @__PURE__ */
|
|
11
|
+
return /* @__PURE__ */ jsx(StatusError, { children: "FAIL" });
|
|
12
12
|
case "skip":
|
|
13
|
-
return /* @__PURE__ */
|
|
13
|
+
return /* @__PURE__ */ jsx(StatusAborted, { children: "SKIP" });
|
|
14
14
|
case "warn":
|
|
15
|
-
return /* @__PURE__ */
|
|
15
|
+
return /* @__PURE__ */ jsx(StatusWarning, { children: "WARN" });
|
|
16
16
|
default:
|
|
17
17
|
return null;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusComponent.esm.js","sources":["../../../src/components/StatusComponent/StatusComponent.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"StatusComponent.esm.js","sources":["../../../src/components/StatusComponent/StatusComponent.tsx"],"sourcesContent":["import {\n StatusAborted,\n StatusError,\n StatusOK,\n StatusWarning,\n} from '@backstage/core-components';\nimport type { Status } from '@kyverno/backstage-plugin-policy-reporter-common';\n\ntype StatusComponentProps = {\n status: Status;\n};\n\nexport const StatusComponent = ({ status }: StatusComponentProps) => {\n switch (status) {\n case 'pass':\n return <StatusOK>PASS</StatusOK>;\n case 'error':\n return <StatusError>ERROR</StatusError>;\n case 'fail':\n return <StatusError>FAIL</StatusError>;\n case 'skip':\n return <StatusAborted>SKIP</StatusAborted>;\n case 'warn':\n return <StatusWarning>WARN</StatusWarning>;\n default:\n return null;\n }\n};\n"],"names":[],"mappings":";;;AAYO,MAAM,eAAkB,GAAA,CAAC,EAAE,MAAA,EAAmC,KAAA;AACnE,EAAA,QAAQ,MAAQ;AAAA,IACd,KAAK,MAAA;AACH,MAAO,uBAAA,GAAA,CAAC,YAAS,QAAI,EAAA,MAAA,EAAA,CAAA;AAAA,IACvB,KAAK,OAAA;AACH,MAAO,uBAAA,GAAA,CAAC,eAAY,QAAK,EAAA,OAAA,EAAA,CAAA;AAAA,IAC3B,KAAK,MAAA;AACH,MAAO,uBAAA,GAAA,CAAC,eAAY,QAAI,EAAA,MAAA,EAAA,CAAA;AAAA,IAC1B,KAAK,MAAA;AACH,MAAO,uBAAA,GAAA,CAAC,iBAAc,QAAI,EAAA,MAAA,EAAA,CAAA;AAAA,IAC5B,KAAK,MAAA;AACH,MAAO,uBAAA,GAAA,CAAC,iBAAc,QAAI,EAAA,MAAA,EAAA,CAAA;AAAA,IAC5B;AACE,MAAO,OAAA,IAAA;AAAA;AAEb;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
import * as react from 'react';
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
2
|
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
4
3
|
|
|
5
4
|
declare const policyReporterPlugin: _backstage_core_plugin_api.BackstagePlugin<{}, {}, {}>;
|
|
6
5
|
declare const EntityKyvernoPoliciesContent: ({ annotationsDocumentationUrl, policyDocumentationUrl, }: {
|
|
7
|
-
annotationsDocumentationUrl?: string
|
|
8
|
-
policyDocumentationUrl?: string
|
|
9
|
-
}) =>
|
|
6
|
+
annotationsDocumentationUrl?: string;
|
|
7
|
+
policyDocumentationUrl?: string;
|
|
8
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
9
|
+
declare const EntityCustomPoliciesContent: ({ annotationsDocumentationUrl, policyDocumentationUrl, sources, title, }: {
|
|
10
|
+
annotationsDocumentationUrl?: string;
|
|
11
|
+
policyDocumentationUrl?: string;
|
|
12
|
+
sources: string[];
|
|
13
|
+
title: string;
|
|
14
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
10
15
|
|
|
11
|
-
export { EntityKyvernoPoliciesContent, policyReporterPlugin };
|
|
16
|
+
export { EntityCustomPoliciesContent, EntityKyvernoPoliciesContent, policyReporterPlugin };
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { EntityKyvernoPoliciesContent, policyReporterPlugin } from './plugin.esm.js';
|
|
1
|
+
export { EntityCustomPoliciesContent, EntityKyvernoPoliciesContent, policyReporterPlugin } from './plugin.esm.js';
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/plugin.esm.js
CHANGED
|
@@ -22,6 +22,15 @@ const EntityKyvernoPoliciesContent = policyReporterPlugin.provide(
|
|
|
22
22
|
mountPoint: rootRouteRef
|
|
23
23
|
})
|
|
24
24
|
);
|
|
25
|
+
const EntityCustomPoliciesContent = policyReporterPlugin.provide(
|
|
26
|
+
createRoutableExtension({
|
|
27
|
+
name: "EntityCustomPoliciesContent",
|
|
28
|
+
component: () => import('./components/EntityCustomPoliciesContent/index.esm.js').then(
|
|
29
|
+
(m) => m.EntityCustomPoliciesContent
|
|
30
|
+
),
|
|
31
|
+
mountPoint: rootRouteRef
|
|
32
|
+
})
|
|
33
|
+
);
|
|
25
34
|
|
|
26
|
-
export { EntityKyvernoPoliciesContent, policyReporterPlugin };
|
|
35
|
+
export { EntityCustomPoliciesContent, EntityKyvernoPoliciesContent, policyReporterPlugin };
|
|
27
36
|
//# sourceMappingURL=plugin.esm.js.map
|
package/dist/plugin.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"sourcesContent":["import {\n createApiFactory,\n createPlugin,\n createRoutableExtension,\n discoveryApiRef,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\nimport { policyReporterApiRef } from './api/PolicyReporterApi';\nimport { PolicyReporterApiClient } from './api/PolicyReporterClient';\n\nimport { rootRouteRef } from './routes';\n\nexport const policyReporterPlugin = createPlugin({\n id: 'policy-reporter',\n apis: [\n createApiFactory({\n api: policyReporterApiRef,\n deps: { fetchApi: fetchApiRef, discoveryApi: discoveryApiRef },\n factory: ({ discoveryApi, fetchApi }) =>\n new PolicyReporterApiClient({ discoveryApi, fetchApi }),\n }),\n ],\n});\n\nexport const EntityKyvernoPoliciesContent = policyReporterPlugin.provide(\n createRoutableExtension({\n name: 'EntityKyvernoPoliciesContent',\n component: () =>\n import('./components/EntityKyvernoPoliciesContent').then(\n m => m.EntityKyvernoPoliciesContent,\n ),\n mountPoint: rootRouteRef,\n }),\n);\n"],"names":[],"mappings":";;;;;AAYO,MAAM,uBAAuB,YAAa,CAAA;AAAA,EAC/C,EAAI,EAAA,iBAAA;AAAA,EACJ,IAAM,EAAA;AAAA,IACJ,gBAAiB,CAAA;AAAA,MACf,GAAK,EAAA,oBAAA;AAAA,MACL,IAAM,EAAA,EAAE,QAAU,EAAA,WAAA,EAAa,cAAc,eAAgB,EAAA;AAAA,MAC7D,OAAA,EAAS,CAAC,EAAE,YAAc,EAAA,QAAA,EACxB,KAAA,IAAI,uBAAwB,CAAA,EAAE,YAAc,EAAA,QAAA,EAAU;AAAA,KACzD;AAAA;AAEL,CAAC;AAEM,MAAM,+BAA+B,oBAAqB,CAAA,OAAA;AAAA,EAC/D,uBAAwB,CAAA;AAAA,IACtB,IAAM,EAAA,8BAAA;AAAA,IACN,SAAW,EAAA,MACT,OAAO,wDAA2C,CAAE,CAAA,IAAA;AAAA,MAClD,OAAK,CAAE,CAAA;AAAA,KACT;AAAA,IACF,UAAY,EAAA;AAAA,GACb;AACH;;;;"}
|
|
1
|
+
{"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"sourcesContent":["import {\n createApiFactory,\n createPlugin,\n createRoutableExtension,\n discoveryApiRef,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\nimport { policyReporterApiRef } from './api/PolicyReporterApi';\nimport { PolicyReporterApiClient } from './api/PolicyReporterClient';\n\nimport { rootRouteRef } from './routes';\n\nexport const policyReporterPlugin = createPlugin({\n id: 'policy-reporter',\n apis: [\n createApiFactory({\n api: policyReporterApiRef,\n deps: { fetchApi: fetchApiRef, discoveryApi: discoveryApiRef },\n factory: ({ discoveryApi, fetchApi }) =>\n new PolicyReporterApiClient({ discoveryApi, fetchApi }),\n }),\n ],\n});\n\nexport const EntityKyvernoPoliciesContent = policyReporterPlugin.provide(\n createRoutableExtension({\n name: 'EntityKyvernoPoliciesContent',\n component: () =>\n import('./components/EntityKyvernoPoliciesContent').then(\n m => m.EntityKyvernoPoliciesContent,\n ),\n mountPoint: rootRouteRef,\n }),\n);\n\nexport const EntityCustomPoliciesContent = policyReporterPlugin.provide(\n createRoutableExtension({\n name: 'EntityCustomPoliciesContent',\n component: () =>\n import('./components/EntityCustomPoliciesContent').then(\n m => m.EntityCustomPoliciesContent,\n ),\n mountPoint: rootRouteRef,\n }),\n);\n"],"names":[],"mappings":";;;;;AAYO,MAAM,uBAAuB,YAAa,CAAA;AAAA,EAC/C,EAAI,EAAA,iBAAA;AAAA,EACJ,IAAM,EAAA;AAAA,IACJ,gBAAiB,CAAA;AAAA,MACf,GAAK,EAAA,oBAAA;AAAA,MACL,IAAM,EAAA,EAAE,QAAU,EAAA,WAAA,EAAa,cAAc,eAAgB,EAAA;AAAA,MAC7D,OAAA,EAAS,CAAC,EAAE,YAAc,EAAA,QAAA,EACxB,KAAA,IAAI,uBAAwB,CAAA,EAAE,YAAc,EAAA,QAAA,EAAU;AAAA,KACzD;AAAA;AAEL,CAAC;AAEM,MAAM,+BAA+B,oBAAqB,CAAA,OAAA;AAAA,EAC/D,uBAAwB,CAAA;AAAA,IACtB,IAAM,EAAA,8BAAA;AAAA,IACN,SAAW,EAAA,MACT,OAAO,wDAA2C,CAAE,CAAA,IAAA;AAAA,MAClD,OAAK,CAAE,CAAA;AAAA,KACT;AAAA,IACF,UAAY,EAAA;AAAA,GACb;AACH;AAEO,MAAM,8BAA8B,oBAAqB,CAAA,OAAA;AAAA,EAC9D,uBAAwB,CAAA;AAAA,IACtB,IAAM,EAAA,6BAAA;AAAA,IACN,SAAW,EAAA,MACT,OAAO,uDAA0C,CAAE,CAAA,IAAA;AAAA,MACjD,OAAK,CAAE,CAAA;AAAA,KACT;AAAA,IACF,UAAY,EAAA;AAAA,GACb;AACH;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kyverno/backstage-plugin-policy-reporter",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"main": "dist/index.esm.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@backstage/catalog-client": "^1.9.1",
|
|
43
43
|
"@backstage/catalog-model": "^1.7.3",
|
|
44
|
-
"@backstage/core-components": "^0.
|
|
45
|
-
"@backstage/core-plugin-api": "^1.10.
|
|
46
|
-
"@backstage/plugin-catalog-react": "^1.
|
|
47
|
-
"@backstage/theme": "^0.6.
|
|
48
|
-
"@kyverno/backstage-plugin-policy-reporter-common": "
|
|
44
|
+
"@backstage/core-components": "^0.17.1",
|
|
45
|
+
"@backstage/core-plugin-api": "^1.10.6",
|
|
46
|
+
"@backstage/plugin-catalog-react": "^1.17.0",
|
|
47
|
+
"@backstage/theme": "^0.6.5",
|
|
48
|
+
"@kyverno/backstage-plugin-policy-reporter-common": "2.0.4",
|
|
49
49
|
"@material-ui/core": "^4.9.13",
|
|
50
50
|
"@material-ui/icons": "^4.9.1",
|
|
51
51
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
@@ -55,10 +55,10 @@
|
|
|
55
55
|
"react": "^16.13.1 || ^17.0.0 || ^18.0.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@backstage/cli": "^0.
|
|
59
|
-
"@backstage/core-app-api": "^1.
|
|
60
|
-
"@backstage/dev-utils": "^1.1.
|
|
61
|
-
"@backstage/test-utils": "^1.7.
|
|
58
|
+
"@backstage/cli": "^0.32.0",
|
|
59
|
+
"@backstage/core-app-api": "^1.16.1",
|
|
60
|
+
"@backstage/dev-utils": "^1.1.9",
|
|
61
|
+
"@backstage/test-utils": "^1.7.7",
|
|
62
62
|
"@testing-library/jest-dom": "^6.0.0",
|
|
63
63
|
"@testing-library/react": "^14.0.0",
|
|
64
64
|
"@testing-library/user-event": "^14.0.0",
|
|
@@ -67,11 +67,10 @@
|
|
|
67
67
|
"files": [
|
|
68
68
|
"dist"
|
|
69
69
|
],
|
|
70
|
-
"gitHead": "b356bb6926596e2a9b851ee4b543c1c676e38685",
|
|
71
70
|
"typesVersions": {
|
|
72
71
|
"*": {
|
|
73
|
-
"
|
|
74
|
-
"
|
|
72
|
+
"package.json": [
|
|
73
|
+
"package.json"
|
|
75
74
|
]
|
|
76
75
|
}
|
|
77
76
|
},
|