From 1711d51df0d2ee7990c928d33995ef4072aeeacf Mon Sep 17 00:00:00 2001 From: Frank Jogeleit Date: Wed, 3 Apr 2024 11:51:26 +0200 Subject: [PATCH] implement exception controls Signed-off-by: Frank Jogeleit --- backend/go.mod | 26 ++--- backend/go.sum | 89 ++++++------------ backend/pkg/server/api/mapper.go | 6 +- backend/pkg/service/model.go | 9 +- backend/pkg/service/service.go | 15 ++- backend/pkg/utils/fallback.go | 9 ++ frontend/bun.lockb | Bin 314468 -> 314966 bytes frontend/modules/core/api.ts | 8 +- .../core/components/policy/Results.vue | 3 +- .../components/resource/ExceptionDialog.vue | 10 +- .../modules/core/components/resource/Item.vue | 3 +- .../core/components/resource/Results.vue | 3 +- frontend/modules/core/mapper.ts | 2 +- frontend/modules/core/types.ts | 8 +- frontend/package.json | 2 +- 15 files changed, 92 insertions(+), 101 deletions(-) create mode 100644 backend/pkg/utils/fallback.go diff --git a/backend/go.mod b/backend/go.mod index 106c64c5..0ad1afd6 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -3,34 +3,34 @@ module github.com/kyverno/policy-reporter-ui go 1.22 require ( - github.com/gin-contrib/cors v1.7.0 - github.com/gin-contrib/gzip v0.0.6 - github.com/gin-contrib/sessions v0.0.5 - github.com/gin-contrib/zap v1.1.0 + github.com/gin-contrib/cors v1.7.1 + github.com/gin-contrib/gzip v1.0.0 + github.com/gin-contrib/sessions v1.0.0 + github.com/gin-contrib/zap v1.1.1 github.com/gin-gonic/gin v1.9.1 github.com/gorilla/sessions v1.2.2 github.com/gosimple/slug v1.14.0 - github.com/kyverno/policy-reporter-plugins/sdk/api v0.0.0-20240325083038-a6ae859a1f9a + github.com/kyverno/policy-reporter-plugins/sdk/api v0.0.0-20240403084424-e8de40bf5c80 github.com/markbates/goth v1.79.0 github.com/spf13/cobra v1.8.0 github.com/spf13/viper v1.18.2 go.uber.org/zap v1.27.0 - golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 + golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 golang.org/x/sync v0.6.0 golang.org/x/text v0.14.0 - k8s.io/api v0.29.2 - k8s.io/apimachinery v0.29.2 - k8s.io/client-go v0.29.2 + k8s.io/api v0.29.3 + k8s.io/apimachinery v0.29.3 + k8s.io/client-go v0.29.3 ) require ( - cloud.google.com/go/compute v1.25.0 // indirect + cloud.google.com/go/compute v1.25.1 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect github.com/bytedance/sonic v1.11.3 // indirect github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect github.com/chenzhuoyu/iasm v0.9.1 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/emicklei/go-restful/v3 v3.12.0 // indirect github.com/evanphx/json-patch v4.12.0+incompatible // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect @@ -74,7 +74,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pelletier/go-toml/v2 v2.1.1 // indirect + github.com/pelletier/go-toml/v2 v2.2.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect @@ -100,7 +100,7 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/klog/v2 v2.120.1 // indirect - k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect + k8s.io/kube-openapi v0.0.0-20240322212309-b815d8309940 // indirect k8s.io/utils v0.0.0-20240310230437-4693a0247e57 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect diff --git a/backend/go.sum b/backend/go.sum index 2f2737f1..d9d57958 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -1,5 +1,5 @@ -cloud.google.com/go/compute v1.25.0 h1:H1/4SqSUhjPFE7L5ddzHOfY2bCAvjwNRZPNl6Ni5oYU= -cloud.google.com/go/compute v1.25.0/go.mod h1:GR7F0ZPZH8EhChlMo9FkLd7eUTwEymjqQagxzilIxIE= +cloud.google.com/go/compute v1.25.1 h1:ZRpHJedLtTpKgr3RV1Fx23NuaAEN1Zfx9hw1u4aJdjU= +cloud.google.com/go/compute v1.25.1/go.mod h1:oopOIR53ly6viBYxaDhBfJwzUAxf1zE//uf3IB011ls= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= @@ -14,14 +14,14 @@ github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLI github.com/chenzhuoyu/iasm v0.9.1 h1:tUHQJXo3NhBqw6s33wkGn9SP3bvrWLdlVIJ3hQBL7P0= github.com/chenzhuoyu/iasm v0.9.1/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/emicklei/go-restful/v3 v3.12.0 h1:y2DdzBAURM29NFF94q6RaY4vjIH1rtwDapwQtU84iWk= github.com/emicklei/go-restful/v3 v3.12.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= @@ -32,17 +32,16 @@ github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nos github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gin-contrib/cors v1.7.0 h1:wZX2wuZ0o7rV2/1i7gb4Jn+gW7HBqaP91fizJkBUJOA= -github.com/gin-contrib/cors v1.7.0/go.mod h1:cI+h6iOAyxKRtUtC6iF/Si1KSFvGm/gK+kshxlCi8ro= -github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= -github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk= -github.com/gin-contrib/sessions v0.0.5 h1:CATtfHmLMQrMNpJRgzjWXD7worTh7g7ritsQfmF+0jE= -github.com/gin-contrib/sessions v0.0.5/go.mod h1:vYAuaUPqie3WUSsft6HUlCjlwwoJQs97miaG2+7neKY= +github.com/gin-contrib/cors v1.7.1 h1:s9SIppU/rk8enVvkzwiC2VK3UZ/0NNGsWfUKvV55rqs= +github.com/gin-contrib/cors v1.7.1/go.mod h1:n/Zj7B4xyrgk/cX1WCX2dkzFfaNm/xJb6oIUk7WTtps= +github.com/gin-contrib/gzip v1.0.0 h1:UKN586Po/92IDX6ie5CWLgMI81obiIp5nSP85T3wlTk= +github.com/gin-contrib/gzip v1.0.0/go.mod h1:CtG7tQrPB3vIBo6Gat9FVUsis+1emjvQqd66ME5TdnE= +github.com/gin-contrib/sessions v1.0.0 h1:r5GLta4Oy5xo9rAwMHx8B4wLpeRGHMdz9NafzJAdP8Y= +github.com/gin-contrib/sessions v1.0.0/go.mod h1:DN0f4bvpqMQElDdi+gNGScrP2QEI04IErRyMFyorUOI= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-contrib/zap v1.1.0 h1:GWzL9+zmK8OJdiycaK2SK1/D3SZIYpieJDD0QCNAU1o= -github.com/gin-contrib/zap v1.1.0/go.mod h1:KzROP9rAL7ofFd1P8lx7Oo2lerwPWNL5vv4f6U/mAk8= -github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/gin-contrib/zap v1.1.1 h1:DDyIF9YQorl3gZzAabIowRywHJuohDfiLnhwvWKl6SY= +github.com/gin-contrib/zap v1.1.1/go.mod h1:YW8KOko2kYLy8g6k9YgVNTj7SIcrUEzYiAd9IjiBPs0= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= @@ -53,21 +52,16 @@ github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= -github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= github.com/go-playground/validator/v10 v10.19.0 h1:ol+5Fu+cSq9JD7SoSqe04GMI92cbn0+wvQ3bZ8b/AU4= github.com/go-playground/validator/v10 v10.19.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= -github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -119,24 +113,12 @@ github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa02 github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kyverno/policy-reporter-plugins/sdk/api v0.0.0-20240310092637-ef8f6e3e7d87 h1:vEmkg6CF/J+jKtYT3keVTHHu6x+weHoz7Isr/z0iBe8= -github.com/kyverno/policy-reporter-plugins/sdk/api v0.0.0-20240310092637-ef8f6e3e7d87/go.mod h1:B6bwQr0mBUEMXltiWfgI8czu0O8bz6y/gVhZ2AvuCpk= -github.com/kyverno/policy-reporter-plugins/sdk/api v0.0.0-20240321205330-6f1abcd63600 h1:nMQEKGkeC7Bo7M0zDGXSBJmdVRWjB26eFtlWoZ3/7Ug= -github.com/kyverno/policy-reporter-plugins/sdk/api v0.0.0-20240321205330-6f1abcd63600/go.mod h1:VHxzQWYn6XRIGGWE+K5LZWa7UhUXaS0BmplTfHMHmrw= -github.com/kyverno/policy-reporter-plugins/sdk/api v0.0.0-20240324104935-96e94a8ecaca h1:7Pdxn34IbZ4jd0uv8wze+2xqoKztaQx1C3jGBbLP/A8= -github.com/kyverno/policy-reporter-plugins/sdk/api v0.0.0-20240324104935-96e94a8ecaca/go.mod h1:VHxzQWYn6XRIGGWE+K5LZWa7UhUXaS0BmplTfHMHmrw= -github.com/kyverno/policy-reporter-plugins/sdk/api v0.0.0-20240325083038-a6ae859a1f9a h1:9bhGth1CXFc8ucUNH2MC64DuUIXcI1i7nJ/MGPqudF0= -github.com/kyverno/policy-reporter-plugins/sdk/api v0.0.0-20240325083038-a6ae859a1f9a/go.mod h1:VHxzQWYn6XRIGGWE+K5LZWa7UhUXaS0BmplTfHMHmrw= -github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/kyverno/policy-reporter-plugins/sdk/api v0.0.0-20240403084424-e8de40bf5c80 h1:qfBPYZl+J2pz76CuuaAyWM6z3uLCTUYmyLDb8GGicZg= +github.com/kyverno/policy-reporter-plugins/sdk/api v0.0.0-20240403084424-e8de40bf5c80/go.mod h1:VHxzQWYn6XRIGGWE+K5LZWa7UhUXaS0BmplTfHMHmrw= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lestrrat-go/backoff/v2 v2.0.8 h1:oNb5E5isby2kiro9AgdHLv5N5tint1AnDVVf2E2un5A= @@ -158,7 +140,6 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/markbates/goth v1.79.0 h1:fUYi9R6VubVEK2bpmXvIUp7xRcxA68i8ovfUQx/i5Qc= github.com/markbates/goth v1.79.0/go.mod h1:RBD+tcFnXul2NnYuODhnIweOcuVPkBohLfEvutPekcU= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= @@ -174,17 +155,13 @@ github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4 github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg= github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= -github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -github.com/pelletier/go-toml/v2 v2.1.1 h1:LWAJwfNvjQZCFIDKWYQaM62NcYeYViCmWIwmOStowAI= -github.com/pelletier/go-toml/v2 v2.1.1/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo= +github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -221,8 +198,6 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= -github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= -github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -240,13 +215,12 @@ golang.org/x/arch v0.7.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw= +golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -276,8 +250,6 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -295,7 +267,6 @@ golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= @@ -310,8 +281,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= -golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= +golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= +golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -320,14 +291,11 @@ google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAs google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= @@ -336,19 +304,18 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.29.2 h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A= -k8s.io/api v0.29.2/go.mod h1:sdIaaKuU7P44aoyyLlikSLayT6Vb7bvJNCX105xZXY0= -k8s.io/apimachinery v0.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= -k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= -k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= -k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= +k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw= +k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg= +k8s.io/client-go v0.29.3/go.mod h1:tkDisCvgPfiRpxGnOORfkljmS+UrW+WtXAy2fTvXJB0= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= +k8s.io/kube-openapi v0.0.0-20240322212309-b815d8309940 h1:qVoMaQV5t62UUvHe16Q3eb2c5HPzLHYzsi0Tu/xLndo= +k8s.io/kube-openapi v0.0.0-20240322212309-b815d8309940/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= k8s.io/utils v0.0.0-20240310230437-4693a0247e57 h1:gbqbevonBh57eILzModw6mrkbwM0gQBEuevE/AaBsHY= k8s.io/utils v0.0.0-20240310230437-4693a0247e57/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= diff --git a/backend/pkg/server/api/mapper.go b/backend/pkg/server/api/mapper.go index 909448a7..8f427b5d 100644 --- a/backend/pkg/server/api/mapper.go +++ b/backend/pkg/server/api/mapper.go @@ -14,7 +14,7 @@ func MapSourceCategoryTreeToNavi(sources []core.SourceCategoryTree) []Navigation if len(sources) == 1 { for _, category := range sources[0].Categories { sourceBoards = append(sourceBoards, NavigationItem{ - Title: category.Name, + Title: utils.Fallback(category.Name, "Other"), Path: fmt.Sprintf("/source/%s/%s", sources[0].Name, category.Name), }) } @@ -32,7 +32,7 @@ func MapSourceCategoryTreeToNavi(sources []core.SourceCategoryTree) []Navigation } else if count == 1 { sourceBoards = append(sourceBoards, NavigationItem{ Title: utils.Title(source.Name), - Subtitle: source.Categories[0].Name, + Subtitle: utils.Fallback(source.Categories[0].Name, "Other"), Path: fmt.Sprintf("/source/%s/%s", source.Name, source.Categories[0].Name), }) } else { @@ -44,7 +44,7 @@ func MapSourceCategoryTreeToNavi(sources []core.SourceCategoryTree) []Navigation for _, category := range source.Categories { item.Children = append(item.Children, NavigationItem{ - Title: category.Name, + Title: utils.Fallback(category.Name, "Other"), Path: fmt.Sprintf("/source/%s/%s", source.Name, category.Name), }) } diff --git a/backend/pkg/service/model.go b/backend/pkg/service/model.go index 14f4cd96..30fa120e 100644 --- a/backend/pkg/service/model.go +++ b/backend/pkg/service/model.go @@ -120,9 +120,14 @@ type PolicyDetails struct { Exceptions bool `json:"exceptions"` } +type ExceptionRule struct { + Name string `json:"name"` + Props map[string]string `json:"props"` +} + type ExceptionPolicy struct { - Name string `json:"name"` - Rules []string `json:"rules"` + Name string `json:"name"` + Rules []ExceptionRule `json:"rules"` } type ExceptionRequest struct { diff --git a/backend/pkg/service/service.go b/backend/pkg/service/service.go index 09d3fe0a..4fc0c550 100644 --- a/backend/pkg/service/service.go +++ b/backend/pkg/service/service.go @@ -208,12 +208,12 @@ func (s *Service) CreateException(ctx context.Context, req ExceptionRequest) (*p return nil, fmt.Errorf("failed to get resource results: %w", err) } - results := make(map[string][]string, 0) + results := make(map[string][]ExceptionRule, 0) for _, r := range list.Items { if _, ok := results[r.Policy]; ok { - results[r.Policy] = append(results[r.Policy], r.Rule) + results[r.Policy] = append(results[r.Policy], ExceptionRule{Name: r.Rule, Props: r.Properties}) } else { - results[r.Policy] = []string{r.Rule} + results[r.Policy] = []ExceptionRule{{Name: r.Rule, Props: r.Properties}} } } @@ -235,8 +235,13 @@ func (s *Service) CreateException(ctx context.Context, req ExceptionRequest) (*p }, Policies: utils.Map(req.Policies, func(p ExceptionPolicy) *pluginAPI.ExceptionPolicy { return &pluginAPI.ExceptionPolicy{ - Name: p.Name, - Rules: p.Rules, + Name: p.Name, + Rules: utils.Map(p.Rules, func(rule ExceptionRule) pluginAPI.ExceptionRule { + return pluginAPI.ExceptionRule{ + Name: rule.Name, + Props: rule.Props, + } + }), } }), } diff --git a/backend/pkg/utils/fallback.go b/backend/pkg/utils/fallback.go new file mode 100644 index 00000000..3ed95a01 --- /dev/null +++ b/backend/pkg/utils/fallback.go @@ -0,0 +1,9 @@ +package utils + +func Fallback(s, f string) string { + if s != "" { + return s + } + + return f +} diff --git a/frontend/bun.lockb b/frontend/bun.lockb index 44c10655c5bc587910e0ae396ea29feccab295e5..fbd47e976af767f342fc3bbfc987e59a92a54770 100755 GIT binary patch delta 88912 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 KQP}}@+y4NcN$$1) delta 75076 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 F_&>}2@f837 diff --git a/frontend/modules/core/api.ts b/frontend/modules/core/api.ts index 7f9ed6e2..806d6375 100644 --- a/frontend/modules/core/api.ts +++ b/frontend/modules/core/api.ts @@ -15,7 +15,11 @@ import { type Profile, type LayoutConfig, type Dashboard, - type ResourceDetails, type SourceDetails, type PolicyDetails, type ExceptionResponse + type ResourceDetails, + type SourceDetails, + type PolicyDetails, + type ExceptionResponse, + type ExceptionPolicy, } from './types' import type { NitroFetchOptions, NitroFetchRequest } from "nitropack"; @@ -56,7 +60,7 @@ export class CoreAPI { return exec(`/api/config/${this.cluster}/resource/${id}`, { baseURL: this.baseURL, params: filter }) } - createException (id: string, source: string, policies: { name: string, rules: string[] }[], category?: string) { + createException (id: string, source: string, policies: ExceptionPolicy[], category?: string) { return exec(`/api/config/${this.cluster}/resource/${id}/exception`, { baseURL: this.baseURL, method: "POST", body: { policies, source, category } }) } diff --git a/frontend/modules/core/components/policy/Results.vue b/frontend/modules/core/components/policy/Results.vue index 308a71e4..e3d9f8ff 100644 --- a/frontend/modules/core/components/policy/Results.vue +++ b/frontend/modules/core/components/policy/Results.vue @@ -29,7 +29,7 @@