diff --git a/sreez-showcase/app-config.yaml b/sreez-showcase/app-config.yaml index db6643d..9a64499 100644 --- a/sreez-showcase/app-config.yaml +++ b/sreez-showcase/app-config.yaml @@ -71,6 +71,13 @@ integrations: -----END RSA PRIVATE KEY----- proxy: + '/argocd/api': + target: https://argocd-server-sreez.apps.oc-med.wk.nt.local/api/v1 + changeOrigin: true + secure: false + headers: + Cookie: + $env: ARGOCD_AUTH_TOKEN ### Example for how to add a proxy endpoint for the frontend. ### A typical reason to do this is to handle HTTPS and CORS for internal services. # endpoints: @@ -93,6 +100,7 @@ auth: # see https://backstage.io/docs/auth/ to learn about auth providers providers: # See https://backstage.io/docs/auth/guest/provider + guest: {} github: development: clientId: 400cfa04377727669c97 diff --git a/sreez-showcase/packages/app/package.json b/sreez-showcase/packages/app/package.json index 93c8b07..7fe5773 100644 --- a/sreez-showcase/packages/app/package.json +++ b/sreez-showcase/packages/app/package.json @@ -42,6 +42,7 @@ "@backstage/theme": "^0.5.3", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", + "@roadiehq/backstage-plugin-argo-cd": "^2.6.4", "history": "^5.0.0", "react": "^18.0.2", "react-dom": "^18.0.2", diff --git a/sreez-showcase/packages/app/src/App.tsx b/sreez-showcase/packages/app/src/App.tsx index 49cef97..d401497 100644 --- a/sreez-showcase/packages/app/src/App.tsx +++ b/sreez-showcase/packages/app/src/App.tsx @@ -64,12 +64,12 @@ const app = createApp({ ), diff --git a/sreez-showcase/packages/app/src/components/catalog/EntityPage.tsx b/sreez-showcase/packages/app/src/components/catalog/EntityPage.tsx index d3dd7d0..8d1e914 100644 --- a/sreez-showcase/packages/app/src/components/catalog/EntityPage.tsx +++ b/sreez-showcase/packages/app/src/components/catalog/EntityPage.tsx @@ -45,6 +45,7 @@ import { EntityCatalogGraphCard, } from '@backstage/plugin-catalog-graph'; import { + Entity, RELATION_API_CONSUMED_BY, RELATION_API_PROVIDED_BY, RELATION_CONSUMES_API, @@ -57,6 +58,7 @@ import { import { TechDocsAddons } from '@backstage/plugin-techdocs-react'; import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib'; +import { EntityArgoCDOverviewCard, isArgocdAvailable } from '@roadiehq/backstage-plugin-argo-cd'; const techdocsContent = ( @@ -123,6 +125,13 @@ const entityWarningContent = ( const overviewContent = ( {entityWarningContent} + + Boolean(isArgocdAvailable(e))}> + + + + + diff --git a/sreez-showcase/yarn.lock b/sreez-showcase/yarn.lock index 8b9e14d..e1a7599 100644 --- a/sreez-showcase/yarn.lock +++ b/sreez-showcase/yarn.lock @@ -2551,7 +2551,7 @@ "@backstage/version-bridge" "^1.0.8" "@types/react" "^16.13.1 || ^17.0.0" -"@backstage/core-components@^0.14.4": +"@backstage/core-components@^0.14.3", "@backstage/core-components@^0.14.4": version "0.14.4" resolved "https://registry.yarnpkg.com/@backstage/core-components/-/core-components-0.14.4.tgz#96867e77898327a4bc12a671597d0ca481d4d227" integrity sha512-yPsLtXI37Ar4bcmtL1VHxlR8GZAhRiXKor+25zuu6stArkVirIJvH4CdS0S2eMQZ9HEFnzo1O+QzeKGxsm7PKw== @@ -2596,7 +2596,7 @@ zen-observable "^0.10.0" zod "^3.22.4" -"@backstage/core-plugin-api@^1.9.2": +"@backstage/core-plugin-api@^1.9.1", "@backstage/core-plugin-api@^1.9.2": version "1.9.2" resolved "https://registry.yarnpkg.com/@backstage/core-plugin-api/-/core-plugin-api-1.9.2.tgz#1a75865e567708829f5a8056ad23ea94233f4b7f" integrity sha512-VbMzgbp5c14B+xi5qFDXEd/LMsrM9D9IpU9tLPSaN2fn9FWhxmeHILNaiLHO2mdLd6RxLopKKbKWduBYbqyu5Q== @@ -3171,7 +3171,7 @@ "@backstage/plugin-permission-node" "^0.7.28" "@backstage/types" "^1.1.1" -"@backstage/plugin-catalog-react@^1.11.3": +"@backstage/plugin-catalog-react@^1.11.2", "@backstage/plugin-catalog-react@^1.11.3": version "1.11.3" resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-react/-/plugin-catalog-react-1.11.3.tgz#e83948f3c921791066499d30ef487a9f4ce5964b" integrity sha512-WJPLLhYrRh6zPQ/lr1Lub+q8I7dd/kOfVklVxl3FmAK3Ad6z3IdK3Z7RrzUEHc2WVIE57bjnepEtBSSM9Xum/g== @@ -4019,7 +4019,7 @@ i18next "^22.4.15" zen-observable "^0.10.0" -"@backstage/theme@^0.5.3": +"@backstage/theme@^0.5.2", "@backstage/theme@^0.5.3": version "0.5.3" resolved "https://registry.yarnpkg.com/@backstage/theme/-/theme-0.5.3.tgz#bc715ad0f2215f1ad9683d15a460240feabbafca" integrity sha512-0d9tyLfbrjdIugSQHVA4ww/XT/VR7Kt2SvkhX/ZvQkcud85P4MN2P0aF/9q7BZeog7wpjI00AGHoWzMX4MdDIw== @@ -5367,6 +5367,17 @@ dependencies: "@babel/runtime" "^7.4.4" +"@material-ui/lab@4.0.0-alpha.45": + version "4.0.0-alpha.45" + resolved "https://registry.yarnpkg.com/@material-ui/lab/-/lab-4.0.0-alpha.45.tgz#6e1abbdd6e44b9ef7b3eff8ef892a3da5dc52f10" + integrity sha512-zT6kUU87SHsPukiu3tlWg8V6o0tGS38c1b/xst/kPqX6eLbfqrROyxhHn1A8ZtHmqga1AKQdv/1llQoG80Afww== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/utils" "^4.7.1" + clsx "^1.0.4" + prop-types "^15.7.2" + react-is "^16.8.0" + "@material-ui/lab@4.0.0-alpha.61": version "4.0.0-alpha.61" resolved "https://registry.yarnpkg.com/@material-ui/lab/-/lab-4.0.0-alpha.61.tgz#9bf8eb389c0c26c15e40933cc114d4ad85e3d978" @@ -5432,7 +5443,7 @@ resolved "https://registry.yarnpkg.com/@material-ui/types/-/types-6.0.2.tgz#a6d384196c6e2e130eb2765b62d944c0b1ea1015" integrity sha512-/XUca4wUb9pWimLLdM1PE8KS8rTbDEGohSGkGtk3WST7lm23m+8RYv9uOmrvOg/VSsl4bMiOv4t2/LCb+RLbTg== -"@material-ui/utils@^4.11.3": +"@material-ui/utils@^4.11.3", "@material-ui/utils@^4.7.1": version "4.11.3" resolved "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.11.3.tgz#232bd86c4ea81dab714f21edad70b7fdf0253942" integrity sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg== @@ -6838,6 +6849,29 @@ lodash "^4.17.21" lodash-es "^4.17.21" +"@roadiehq/backstage-plugin-argo-cd@^2.6.4": + version "2.6.4" + resolved "https://registry.yarnpkg.com/@roadiehq/backstage-plugin-argo-cd/-/backstage-plugin-argo-cd-2.6.4.tgz#c07c41ef2510c42c65189b7cce27a6a05ec8256e" + integrity sha512-dQ3InmLbaG3kv4hrgMsaCzJNBLmKYR8Wpb5VZK9i9HaMOl86bba5e/f0qxstOfQULypd8AJxNo2Z4VSuEboJ2Q== + dependencies: + "@backstage/catalog-model" "^1.4.5" + "@backstage/core-components" "^0.14.3" + "@backstage/core-plugin-api" "^1.9.1" + "@backstage/plugin-catalog-react" "^1.11.2" + "@backstage/theme" "^0.5.2" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.45" + cross-fetch "^3.1.4" + date-fns "^2.21.1" + fp-ts "^2.10.0" + history "^5.0.0" + io-ts "^2.2.16" + io-ts-promise "^2.0.2" + io-ts-reporters "^1.2.2" + moment "^2.29.1" + react-use "^17.2.4" + "@rollup/plugin-commonjs@^25.0.0": version "25.0.7" resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz#145cec7589ad952171aeb6a585bbeabd0fd3b4cf" @@ -11805,6 +11839,13 @@ cross-env@^7.0.0: dependencies: cross-spawn "^7.0.1" +cross-fetch@^3.1.4: + version "3.1.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + dependencies: + node-fetch "^2.6.12" + cross-fetch@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" @@ -12176,7 +12217,7 @@ dataloader@^2.0.0, dataloader@^2.2.2: resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== -date-fns@^2.16.1, date-fns@^2.30.0: +date-fns@^2.16.1, date-fns@^2.21.1, date-fns@^2.30.0: version "2.30.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== @@ -12261,6 +12302,18 @@ dedent@^1.0.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== +deep-equal@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" + integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== + dependencies: + is-arguments "^1.1.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + object-is "^1.1.5" + object-keys "^1.1.1" + regexp.prototype.flags "^1.5.1" + deep-equal@^2.0.5: version "2.2.3" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" @@ -13968,6 +14021,11 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +fp-ts@^2.10.0: + version "2.16.5" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.16.5.tgz#d79b97168aeafcf9612f18bbc017f513ecb20ac9" + integrity sha512-N8T8PwMSeTKKtkm9lkj/zSTAnPC/aJIIrQhnHxxkL0KLsRCNUPANksJOlMXxcKKCo7H1ORP3No9EMD+fP0tsdA== + framer-motion@^6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-6.5.1.tgz#802448a16a6eb764124bf36d8cbdfa6dd6b931a7" @@ -15222,6 +15280,23 @@ invariant@^2.2.2, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" +io-ts-promise@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/io-ts-promise/-/io-ts-promise-2.0.2.tgz#e034d10f269669c852887636f5bd1ce706bbc661" + integrity sha512-heFR4LRkdEgTCwTzH/YI7FL/18/oWVFipzdwBWOq7GZVM4oLK33HXITDkaTSFkmKTk9zcGGreHHhNxI8RY8jsg== + dependencies: + deep-equal "^1.1.0" + +io-ts-reporters@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/io-ts-reporters/-/io-ts-reporters-1.2.2.tgz#4d3219777ea5219c7d8f6ffac01fd68e72426dd1" + integrity sha512-igASwWWkDY757OutNcM6zTtdJf/eTZYkoe2ymsX2qpm5bKZLo74FJYjsCtMQOEdY7dRHLLEulCyFQwdN69GBCg== + +io-ts@^2.2.16: + version "2.2.21" + resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-2.2.21.tgz#4ef754176f7082a1099d04c7d5c4ea53267c530a" + integrity sha512-zz2Z69v9ZIC3mMLYWIeoUcwWD6f+O7yP92FMVVaXEOSZH1jnVBmET/urd/uoarD1WGBY4rCj8TAyMPzsGNzMFQ== + ioredis@^5.3.2: version "5.4.1" resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.4.1.tgz#1c56b70b759f01465913887375ed809134296f40" @@ -18188,6 +18263,11 @@ modify-values@^1.0.1: resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== +moment@^2.29.1: + version "2.30.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + moo@^0.5.0: version "0.5.2" resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" @@ -20597,7 +20677,7 @@ react-inspector@^6.0.1: resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-6.0.2.tgz#aa3028803550cb6dbd7344816d5c80bf39d07e9d" integrity sha512-x+b7LxhmHXjHoU/VrFAzw5iutsILRoYyDq97EDYdFpPLcvqtEzk4ZSZSQjnFPbr5T57tLXnHcqFYoN1pI6u8uQ== -react-is@^16.13.1, react-is@^16.7.0: +react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==