diff --git a/packages/cli/templates/default-backend-plugin/package.json.hbs b/packages/cli/templates/default-backend-plugin/package.json.hbs index b51b724eb4..cb86d53c75 100644 --- a/packages/cli/templates/default-backend-plugin/package.json.hbs +++ b/packages/cli/templates/default-backend-plugin/package.json.hbs @@ -53,7 +53,6 @@ "@types/express": "^{{versionQuery '@types/express' '4.17.6'}}", "express": "^{{versionQuery 'express' '4.17.1'}}", "express-promise-router": "^{{versionQuery 'express-promise-router' '4.1.0'}}", - "winston": "^{{versionQuery 'winston' '3.2.1'}}", "node-fetch": "^{{versionQuery 'node-fetch' '2.6.7'}}", "yn": "^{{versionQuery 'yn' '4.0.0'}}" }, diff --git a/packages/cli/templates/default-backend-plugin/src/plugin.ts.hbs b/packages/cli/templates/default-backend-plugin/src/plugin.ts.hbs index d0b5d6cef5..d38364ee80 100644 --- a/packages/cli/templates/default-backend-plugin/src/plugin.ts.hbs +++ b/packages/cli/templates/default-backend-plugin/src/plugin.ts.hbs @@ -1,4 +1,3 @@ -import { loggerToWinstonLogger } from '@backstage/backend-common'; import { coreServices, createBackendPlugin } from '@backstage/backend-plugin-api'; import { createRouter } from './service/router'; @@ -18,7 +17,7 @@ export const {{id}}Plugin = createBackendPlugin({ http: coreServices.httpRouter, }, async init({ config, logger, http }) { - http.use(() => createRouter({...config, logger: loggerToWinstonLogger(logger)})); + http.use(() => createRouter({...config, logger})); }, }); }, diff --git a/packages/cli/templates/default-backend-plugin/src/service/router.ts.hbs b/packages/cli/templates/default-backend-plugin/src/service/router.ts.hbs index acbdc978e4..602621e005 100644 --- a/packages/cli/templates/default-backend-plugin/src/service/router.ts.hbs +++ b/packages/cli/templates/default-backend-plugin/src/service/router.ts.hbs @@ -1,10 +1,10 @@ import { errorHandler } from '@backstage/backend-common'; import express from 'express'; import Router from 'express-promise-router'; -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; export interface RouterOptions { - logger: Logger; + logger: LoggerService; } export async function createRouter( diff --git a/packages/cli/templates/default-backend-plugin/src/service/standaloneServer.ts.hbs b/packages/cli/templates/default-backend-plugin/src/service/standaloneServer.ts.hbs index 8ec516ed39..d487d6c29f 100644 --- a/packages/cli/templates/default-backend-plugin/src/service/standaloneServer.ts.hbs +++ b/packages/cli/templates/default-backend-plugin/src/service/standaloneServer.ts.hbs @@ -1,12 +1,12 @@ import { createServiceBuilder } from '@backstage/backend-common'; import { Server } from 'http'; -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { createRouter } from './router'; export interface ServerOptions { port: number; enableCors: boolean; - logger: Logger; + logger: LoggerService; } export async function startStandaloneServer( diff --git a/plugins/3scale-backend/dist-dynamic/package.json b/plugins/3scale-backend/dist-dynamic/package.json index 051c23750f..73d37126bf 100644 --- a/plugins/3scale-backend/dist-dynamic/package.json +++ b/plugins/3scale-backend/dist-dynamic/package.json @@ -25,9 +25,7 @@ "./package.json": "./package.json" }, "scripts": {}, - "dependencies": { - "winston": "^3.11.0" - }, + "dependencies": {}, "devDependencies": {}, "files": [ "dist", diff --git a/plugins/3scale-backend/dist-dynamic/yarn.lock b/plugins/3scale-backend/dist-dynamic/yarn.lock index 5c5df9101a..aa4ab1fd91 100644 --- a/plugins/3scale-backend/dist-dynamic/yarn.lock +++ b/plugins/3scale-backend/dist-dynamic/yarn.lock @@ -10,20 +10,6 @@ "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@colors/colors@1.6.0", "@colors/colors@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" - integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== - -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - "@smithy/is-array-buffer@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" @@ -39,196 +25,7 @@ "@smithy/is-array-buffer" "^2.2.0" tslib "^2.6.2" -"@types/triple-beam@^1.3.2": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" - integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== - -async@^3.2.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== - -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - -enabled@2.0.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" - integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== - -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - -fn.name@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" - integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== - -inherits@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -kuler@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" - integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== - -logform@^2.3.2, logform@^2.4.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" - integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== - dependencies: - "@colors/colors" "1.6.0" - "@types/triple-beam" "^1.3.2" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -one-time@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" - integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== - dependencies: - fn.name "1.x.x" - -readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - -triple-beam@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" - integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== - tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -winston-transport@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.7.0.tgz#e302e6889e6ccb7f383b926df6936a5b781bd1f0" - integrity sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@^3.11.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" - integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== - dependencies: - "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.7.0" diff --git a/plugins/3scale-backend/package.json b/plugins/3scale-backend/package.json index 2bfa351564..cadf04bb6a 100644 --- a/plugins/3scale-backend/package.json +++ b/plugins/3scale-backend/package.json @@ -47,8 +47,7 @@ "@backstage/catalog-model": "^1.4.5", "@backstage/config": "^1.2.0", "@backstage/plugin-catalog-node": "^1.11.1", - "@backstage/backend-dynamic-feature-service": "^0.2.9", - "winston": "^3.11.0" + "@backstage/backend-dynamic-feature-service": "^0.2.9" }, "devDependencies": { "@backstage/cli": "0.26.4", diff --git a/plugins/3scale-backend/src/module.ts b/plugins/3scale-backend/src/module.ts index 3ef43e7e55..98f93d3034 100644 --- a/plugins/3scale-backend/src/module.ts +++ b/plugins/3scale-backend/src/module.ts @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { loggerToWinstonLogger } from '@backstage/backend-common'; import { coreServices, createBackendModule, @@ -36,7 +35,7 @@ export const catalogModule3ScaleEntityProvider = createBackendModule({ async init({ catalog, config, logger, scheduler }) { catalog.addEntityProvider( ThreeScaleApiEntityProvider.fromConfig(config, { - logger: loggerToWinstonLogger(logger), + logger, scheduler: scheduler, schedule: scheduler.createScheduledTaskRunner({ frequency: { minutes: 30 }, diff --git a/plugins/3scale-backend/src/providers/ThreeScaleApiEntityProvider.ts b/plugins/3scale-backend/src/providers/ThreeScaleApiEntityProvider.ts index 8514396d30..9fd0ae8f99 100644 --- a/plugins/3scale-backend/src/providers/ThreeScaleApiEntityProvider.ts +++ b/plugins/3scale-backend/src/providers/ThreeScaleApiEntityProvider.ts @@ -1,3 +1,4 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks'; import { ANNOTATION_LOCATION, @@ -11,8 +12,6 @@ import { EntityProviderConnection, } from '@backstage/plugin-catalog-node'; -import { Logger } from 'winston'; - import { getProxyConfig, listApiDocs, @@ -33,14 +32,14 @@ export class ThreeScaleApiEntityProvider implements EntityProvider { private readonly env: string; private readonly baseUrl: string; private readonly accessToken: string; - private readonly logger: Logger; + private readonly logger: LoggerService; private readonly scheduleFn: () => Promise; private connection?: EntityProviderConnection; static fromConfig( configRoot: Config, options: { - logger: Logger; + logger: LoggerService; schedule?: TaskRunner; scheduler?: PluginTaskScheduler; }, @@ -83,7 +82,7 @@ export class ThreeScaleApiEntityProvider implements EntityProvider { private constructor( config: ThreeScaleConfig, - logger: Logger, + logger: LoggerService, taskRunner: TaskRunner, ) { this.env = config.id; @@ -171,7 +170,7 @@ export class ThreeScaleApiEntityProvider implements EntityProvider { service.service.id, ); if (apiDoc !== undefined) { - this.logger.info(apiDoc); + this.logger.info(JSON.stringify(apiDoc)); const apiEntity: ApiEntity = this.buildApiEntityFromService( service, apiDoc, diff --git a/plugins/aap-backend/dist-dynamic/package.json b/plugins/aap-backend/dist-dynamic/package.json index f62952f35e..b097790134 100644 --- a/plugins/aap-backend/dist-dynamic/package.json +++ b/plugins/aap-backend/dist-dynamic/package.json @@ -25,9 +25,7 @@ "./package.json": "./package.json" }, "scripts": {}, - "dependencies": { - "winston": "^3.11.0" - }, + "dependencies": {}, "devDependencies": {}, "files": [ "dist", diff --git a/plugins/aap-backend/dist-dynamic/yarn.lock b/plugins/aap-backend/dist-dynamic/yarn.lock index 5c5df9101a..aa4ab1fd91 100644 --- a/plugins/aap-backend/dist-dynamic/yarn.lock +++ b/plugins/aap-backend/dist-dynamic/yarn.lock @@ -10,20 +10,6 @@ "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@colors/colors@1.6.0", "@colors/colors@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" - integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== - -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - "@smithy/is-array-buffer@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" @@ -39,196 +25,7 @@ "@smithy/is-array-buffer" "^2.2.0" tslib "^2.6.2" -"@types/triple-beam@^1.3.2": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" - integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== - -async@^3.2.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== - -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - -enabled@2.0.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" - integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== - -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - -fn.name@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" - integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== - -inherits@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -kuler@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" - integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== - -logform@^2.3.2, logform@^2.4.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" - integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== - dependencies: - "@colors/colors" "1.6.0" - "@types/triple-beam" "^1.3.2" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -one-time@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" - integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== - dependencies: - fn.name "1.x.x" - -readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - -triple-beam@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" - integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== - tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -winston-transport@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.7.0.tgz#e302e6889e6ccb7f383b926df6936a5b781bd1f0" - integrity sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@^3.11.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" - integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== - dependencies: - "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.7.0" diff --git a/plugins/aap-backend/package.json b/plugins/aap-backend/package.json index a4eb427a51..085f08ee5c 100644 --- a/plugins/aap-backend/package.json +++ b/plugins/aap-backend/package.json @@ -47,8 +47,7 @@ "@backstage/catalog-model": "^1.4.5", "@backstage/config": "^1.2.0", "@backstage/plugin-catalog-node": "^1.11.1", - "@backstage/backend-dynamic-feature-service": "^0.2.9", - "winston": "^3.11.0" + "@backstage/backend-dynamic-feature-service": "^0.2.9" }, "devDependencies": { "@backstage/cli": "0.26.4", diff --git a/plugins/aap-backend/src/module.ts b/plugins/aap-backend/src/module.ts index 1a42426087..ebbdbc511a 100644 --- a/plugins/aap-backend/src/module.ts +++ b/plugins/aap-backend/src/module.ts @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { loggerToWinstonLogger } from '@backstage/backend-common'; import { coreServices, createBackendModule, @@ -36,7 +35,7 @@ export const catalogModuleAapResourceEntityProvider = createBackendModule({ async init({ catalog, config, logger, scheduler }) { catalog.addEntityProvider( AapResourceEntityProvider.fromConfig(config, { - logger: loggerToWinstonLogger(logger), + logger, schedule: scheduler.createScheduledTaskRunner({ frequency: { minutes: 30 }, timeout: { minutes: 3 }, diff --git a/plugins/aap-backend/src/providers/AapResourceEntityProvider.ts b/plugins/aap-backend/src/providers/AapResourceEntityProvider.ts index 04fca5345b..b9811e2d50 100644 --- a/plugins/aap-backend/src/providers/AapResourceEntityProvider.ts +++ b/plugins/aap-backend/src/providers/AapResourceEntityProvider.ts @@ -1,3 +1,4 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks'; import { ANNOTATION_LOCATION, @@ -11,8 +12,6 @@ import { EntityProviderConnection, } from '@backstage/plugin-catalog-node'; -import { Logger } from 'winston'; - import { listJobTemplates, listWorkflowJobTemplates, @@ -27,14 +26,14 @@ export class AapResourceEntityProvider implements EntityProvider { private readonly authorization: string; private readonly owner: string; private readonly system: string; - private readonly logger: Logger; + private readonly logger: LoggerService; private readonly scheduleFn: () => Promise; private connection?: EntityProviderConnection; static fromConfig( configRoot: Config, options: { - logger: Logger; + logger: LoggerService; schedule?: TaskRunner; scheduler?: PluginTaskScheduler; }, @@ -65,7 +64,7 @@ export class AapResourceEntityProvider implements EntityProvider { private constructor( config: AapConfig, - logger: Logger, + logger: LoggerService, taskRunner: TaskRunner, ) { this.env = config.id; diff --git a/plugins/argocd/CHANGELOG.md b/plugins/argocd/CHANGELOG.md index bdabb73bb3..558ecde10c 100644 --- a/plugins/argocd/CHANGELOG.md +++ b/plugins/argocd/CHANGELOG.md @@ -1,3 +1,5 @@ +## @janus-idp/backstage-plugin-argocd [1.1.9](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-argocd@1.1.8...@janus-idp/backstage-plugin-argocd@1.1.9) (2024-06-10) + ## @janus-idp/backstage-plugin-argocd [1.1.8](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-argocd@1.1.7...@janus-idp/backstage-plugin-argocd@1.1.8) (2024-06-05) diff --git a/plugins/argocd/package.json b/plugins/argocd/package.json index 2aba364d79..3b99d54909 100644 --- a/plugins/argocd/package.json +++ b/plugins/argocd/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-argocd", - "version": "1.1.8", + "version": "1.1.9", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -56,12 +56,12 @@ "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", "@janus-idp/cli": "1.10.0", - "@playwright/test": "1.41.2", + "@playwright/test": "1.44.1", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "14.3.1", "@testing-library/user-event": "14.5.2", - "msw": "1.0.0" + "msw": "1.3.3" }, "files": [ "dist", diff --git a/plugins/audit-log-node/CHANGELOG.md b/plugins/audit-log-node/CHANGELOG.md index 60f5a264a3..9b037d7ef6 100644 --- a/plugins/audit-log-node/CHANGELOG.md +++ b/plugins/audit-log-node/CHANGELOG.md @@ -1 +1,8 @@ +## @janus-idp/backstage-plugin-audit-log-node [1.1.0](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-audit-log-node@1.0.3...@janus-idp/backstage-plugin-audit-log-node@1.1.0) (2024-06-05) + + +### Features + +* **rbac:** add type checks with generics for audit log ([#1789](https://github.com/janus-idp/backstage-plugins/issues/1789)) ([ac69838](https://github.com/janus-idp/backstage-plugins/commit/ac698382f64fe91e0f9f9232dd3eecd9cc9247be)) + ## @janus-idp/backstage-plugin-audit-log-node [1.0.3](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-audit-log-node@1.0.2...@janus-idp/backstage-plugin-audit-log-node@1.0.3) (2024-06-04) diff --git a/plugins/audit-log-node/package.json b/plugins/audit-log-node/package.json index 0d9ffdae3d..18e5e7edf0 100644 --- a/plugins/audit-log-node/package.json +++ b/plugins/audit-log-node/package.json @@ -1,7 +1,7 @@ { "name": "@janus-idp/backstage-plugin-audit-log-node", "description": "Node.js library for the audit-log plugin", - "version": "1.0.3", + "version": "1.1.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/audit-log-node/src/DefaultAuditLogger.ts b/plugins/audit-log-node/src/DefaultAuditLogger.ts index 27751d781e..e8fd04daa5 100644 --- a/plugins/audit-log-node/src/DefaultAuditLogger.ts +++ b/plugins/audit-log-node/src/DefaultAuditLogger.ts @@ -4,7 +4,7 @@ import { LoggerService, } from '@backstage/backend-plugin-api'; import { ErrorLike } from '@backstage/errors'; -import { JsonObject } from '@backstage/types'; +import { JsonObject, JsonValue } from '@backstage/types'; import { Request } from 'express'; import { cloneDeep } from 'lodash'; @@ -51,8 +51,8 @@ export class DefaultAuditLogger implements AuditLogger { return undefined; } } - async createAuditLogDetails( - options: AuditLogDetailsOptions, + async createAuditLogDetails( + options: AuditLogDetailsOptions, ): Promise { const { eventName, stage, metadata, request, response, status } = options; @@ -106,7 +106,9 @@ export class DefaultAuditLogger implements AuditLogger { status, }; } - async auditLog(options: AuditLogOptions): Promise { + async auditLog( + options: AuditLogOptions, + ): Promise { let auditLogDetails: AuditLogDetails; const logLevel = options.level || 'info'; const auditLogCommonDetails = { diff --git a/plugins/audit-log-node/src/types.ts b/plugins/audit-log-node/src/types.ts index 4284056acb..67ccb2cc4f 100644 --- a/plugins/audit-log-node/src/types.ts +++ b/plugins/audit-log-node/src/types.ts @@ -54,22 +54,22 @@ export type AuditLogDetails = { isAuditLog: true; } & AuditLogStatus; -export type AuditLogDetailsOptions = { +export type AuditLogDetailsOptions = { eventName: string; stage: string; - metadata?: JsonValue; + metadata?: T; response?: AuditResponse; actorId?: string; request?: Request; } & (AuditLogSuccessStatus | AuditLogUnknownFailureStatus); -export type AuditLogOptions = { +export type AuditLogOptions = { eventName: string; message: string; stage: string; level?: 'info' | 'debug' | 'warn' | 'error'; actorId?: string; - metadata?: JsonValue; + metadata?: T; response?: AuditResponse; request?: Request; } & (AuditLogSuccessStatus | AuditLogUnknownFailureStatus); @@ -94,8 +94,8 @@ export interface AuditLogger { * Secrets in the metadata field and request body, params and query field should be redacted by the user before passing in the request object * @public */ - createAuditLogDetails( - options: AuditLogDetailsOptions, + createAuditLogDetails( + options: AuditLogDetailsOptions, ): Promise; /** @@ -105,5 +105,5 @@ export interface AuditLogger { * Secrets in the metadata field and request body, params and query field should be redacted by the user before passing in the request object * @public */ - auditLog(options: AuditLogOptions): Promise; + auditLog(options: AuditLogOptions): Promise; } diff --git a/plugins/bulk-import/package.json b/plugins/bulk-import/package.json index 624031291b..ded32f416d 100644 --- a/plugins/bulk-import/package.json +++ b/plugins/bulk-import/package.json @@ -50,7 +50,7 @@ "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", "@janus-idp/cli": "1.8.7", - "@playwright/test": "1.41.2", + "@playwright/test": "1.44.1", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "14.3.1", diff --git a/plugins/feedback-backend/CHANGELOG.md b/plugins/feedback-backend/CHANGELOG.md index 4b6bfcfcfe..b369dd293b 100644 --- a/plugins/feedback-backend/CHANGELOG.md +++ b/plugins/feedback-backend/CHANGELOG.md @@ -1,3 +1,10 @@ +## @janus-idp/backstage-plugin-feedback-backend [1.3.9](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-feedback-backend@1.3.8...@janus-idp/backstage-plugin-feedback-backend@1.3.9) (2024-06-12) + + +### Bug Fixes + +* **feedback:** fixed feedback backend plugin crashing ([#1809](https://github.com/janus-idp/backstage-plugins/issues/1809)) ([e4a571e](https://github.com/janus-idp/backstage-plugins/commit/e4a571e737b7697a5ad96a4a43aacf29b2a2179e)) + ## @janus-idp/backstage-plugin-feedback-backend [1.3.8](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-feedback-backend@1.3.7...@janus-idp/backstage-plugin-feedback-backend@1.3.8) (2024-06-05) diff --git a/plugins/feedback-backend/config.d.ts b/plugins/feedback-backend/config.d.ts index 043e64ed96..a65aa64bda 100644 --- a/plugins/feedback-backend/config.d.ts +++ b/plugins/feedback-backend/config.d.ts @@ -17,16 +17,16 @@ export interface Config { * The hostname or URL of the JIRA organization. * @visibility frontend */ - host: string; + host?: string; /** * The access token for authenticating with JIRA. * @visibility secret */ - token: string; + token?: string; /** * what type of jira instance are you using, CLOUD/SERVER */ - hostType: string; + hostType?: string; }>; /** @@ -36,12 +36,12 @@ export interface Config { /** * The SMTP server's hostname or IP address. */ - host: string; + host?: string; /** * The port number to use for the SMTP server. */ - port: number; + port?: number; /** * Optional authentication settings for the SMTP server. @@ -56,7 +56,7 @@ export interface Config { * The password to use for SMTP server authentication. * @visibility secret */ - pass?: string; + password?: string; }; /** diff --git a/plugins/feedback-backend/dist-dynamic/package.json b/plugins/feedback-backend/dist-dynamic/package.json index 066125a4db..531e51b71e 100644 --- a/plugins/feedback-backend/dist-dynamic/package.json +++ b/plugins/feedback-backend/dist-dynamic/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-feedback-backend-dynamic", - "version": "1.3.7", + "version": "1.3.8", "main": "dist/index.cjs.js", "types": "dist/index.d.ts", "license": "Apache-2.0", @@ -34,7 +34,6 @@ "node-fetch": "^2.6.7", "nodemailer": "^6.9.8", "short-uuid": "^4.2.2", - "winston": "^3.2.1", "yn": "^4.0.0" }, "devDependencies": {}, diff --git a/plugins/feedback-backend/dist-dynamic/yarn.lock b/plugins/feedback-backend/dist-dynamic/yarn.lock index f4dc1ac379..e73701baa1 100644 --- a/plugins/feedback-backend/dist-dynamic/yarn.lock +++ b/plugins/feedback-backend/dist-dynamic/yarn.lock @@ -10,20 +10,6 @@ "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@colors/colors@1.6.0", "@colors/colors@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" - integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== - -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - "@smithy/is-array-buffer@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" @@ -118,11 +104,6 @@ "@types/node" "*" "@types/send" "*" -"@types/triple-beam@^1.3.2": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" - integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== - accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -141,11 +122,6 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -async@^3.2.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -194,52 +170,11 @@ call-bind@^1.0.7: get-intrinsic "^1.2.4" set-function-length "^1.2.1" -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - colorette@2.0.19: version "2.0.19" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -317,11 +252,6 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -enabled@2.0.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" - integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -405,11 +335,6 @@ express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - finalhandler@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" @@ -423,11 +348,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -fn.name@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" - integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== - follow-redirects@^1.15.6: version "1.15.6" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" @@ -527,7 +447,7 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -inherits@2.0.4, inherits@^2.0.3: +inherits@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -542,11 +462,6 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-core-module@^2.13.0: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" @@ -559,11 +474,6 @@ is-promise@^4.0.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - knex@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/knex/-/knex-3.1.0.tgz#b6ddd5b5ad26a6315234a5b09ec38dc4a370bd8c" @@ -584,11 +494,6 @@ knex@^3.1.0: tarn "^3.0.2" tildify "2.0.0" -kuler@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" - integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== - lodash.flattendeep@^4.0.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" @@ -599,18 +504,6 @@ lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -logform@^2.3.2, logform@^2.4.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" - integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== - dependencies: - "@colors/colors" "1.6.0" - "@types/triple-beam" "^1.3.2" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -653,7 +546,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.1.1: +ms@2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -687,13 +580,6 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -one-time@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" - integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== - dependencies: - fn.name "1.x.x" - parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -749,15 +635,6 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" -readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - rechoir@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" @@ -779,16 +656,11 @@ resolve@^1.20.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -safe-buffer@5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -858,30 +730,11 @@ side-channel@^1.0.4: get-intrinsic "^1.2.4" object-inspect "^1.13.1" -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -892,11 +745,6 @@ tarn@^3.0.2: resolved "https://registry.yarnpkg.com/tarn/-/tarn-3.0.2.tgz#73b6140fbb881b71559c4f8bfde3d9a4b3d27693" integrity sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ== -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - tildify@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/tildify/-/tildify-2.0.0.tgz#f205f3674d677ce698b7067a99e949ce03b4754a" @@ -912,11 +760,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -triple-beam@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" - integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== - tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -940,11 +783,6 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -973,32 +811,6 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -winston-transport@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.7.0.tgz#e302e6889e6ccb7f383b926df6936a5b781bd1f0" - integrity sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@^3.2.1: - version "3.13.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" - integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== - dependencies: - "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.7.0" - yn@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yn/-/yn-4.0.0.tgz#611480051ea43b510da1dfdbe177ed159f00a979" diff --git a/plugins/feedback-backend/package.json b/plugins/feedback-backend/package.json index bd273fb75e..12f9221c70 100644 --- a/plugins/feedback-backend/package.json +++ b/plugins/feedback-backend/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-feedback-backend", - "version": "1.3.8", + "version": "1.3.9", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -55,7 +55,6 @@ "node-fetch": "^2.6.7", "nodemailer": "^6.9.8", "short-uuid": "^4.2.2", - "winston": "^3.2.1", "yn": "^4.0.0" }, "devDependencies": { diff --git a/plugins/feedback-backend/src/dynamic/inedx.ts b/plugins/feedback-backend/src/dynamic/index.ts similarity index 100% rename from plugins/feedback-backend/src/dynamic/inedx.ts rename to plugins/feedback-backend/src/dynamic/index.ts diff --git a/plugins/feedback-backend/src/service/emails.ts b/plugins/feedback-backend/src/service/emails.ts index 1cf39b047c..0c9a83d752 100644 --- a/plugins/feedback-backend/src/service/emails.ts +++ b/plugins/feedback-backend/src/service/emails.ts @@ -7,13 +7,13 @@ import { readFileSync } from 'fs'; export class NodeMailer { private readonly transportConfig: Transporter; - private readonly from: string; + private readonly from: string | undefined; constructor( config: Config, private logger: LoggerService, ) { - const useSecure: boolean = config.getBoolean( + const useSecure = config.getOptionalBoolean( 'feedback.integrations.email.secure', ); const caCertPath = config.getOptionalString( @@ -21,9 +21,9 @@ export class NodeMailer { ); const customCACert = caCertPath ? readFileSync(caCertPath) : undefined; - this.from = config.getString('feedback.integrations.email.from'); + this.from = config.getOptionalString('feedback.integrations.email.from'); this.transportConfig = createTransport({ - host: config.getString('feedback.integrations.email.host'), + host: config.getOptionalString('feedback.integrations.email.host'), port: config.getOptionalNumber('feedback.integrations.email.port') ?? 587, auth: { user: config.getOptionalString('feedback.integrations.email.auth.user'), diff --git a/plugins/feedback-backend/src/service/router.test.ts b/plugins/feedback-backend/src/service/router.test.ts index 0f5dafa38f..e5edaf935f 100644 --- a/plugins/feedback-backend/src/service/router.test.ts +++ b/plugins/feedback-backend/src/service/router.test.ts @@ -1,5 +1,9 @@ import { getRootLogger, HostDiscovery } from '@backstage/backend-common'; -import { AuthService, DiscoveryService } from '@backstage/backend-plugin-api'; +import { + AuthService, + DiscoveryService, + LoggerService, +} from '@backstage/backend-plugin-api'; import { mockServices } from '@backstage/backend-test-utils'; import { Config, ConfigReader } from '@backstage/config'; @@ -7,7 +11,6 @@ import express from 'express'; import { rest } from 'msw'; import { setupServer } from 'msw/node'; import request from 'supertest'; -import { Logger } from 'winston'; import { mockConfig, @@ -68,13 +71,15 @@ describe('Router', () => { mswMockServer.listen({ onUnhandledRequest: 'bypass' }); const config: Config = new ConfigReader(mockConfig); const discovery: DiscoveryService = HostDiscovery.fromConfig(config); - const logger: Logger = getRootLogger().child({ service: 'feedback-backend' }); + const logger: LoggerService = getRootLogger().child({ + service: 'feedback-backend', + }); const auth: AuthService = mockServices.auth(); let app: express.Express; beforeAll(async () => { const router = await createRouter({ - logger: logger, + logger, config: config, discovery: discovery, auth: auth, diff --git a/plugins/feedback-backend/src/service/router.ts b/plugins/feedback-backend/src/service/router.ts index 530857fb04..4985d2964f 100644 --- a/plugins/feedback-backend/src/service/router.ts +++ b/plugins/feedback-backend/src/service/router.ts @@ -5,7 +5,7 @@ import { } from '@backstage/backend-common'; import { AuthService, LoggerService } from '@backstage/backend-plugin-api'; import { CatalogClient } from '@backstage/catalog-client'; -import { Entity } from '@backstage/catalog-model'; +import { Entity, UserEntityV1alpha1 } from '@backstage/catalog-model'; import { Config } from '@backstage/config'; import express from 'express'; @@ -31,13 +31,14 @@ export async function createRouter( const feedbackDB = await DatabaseFeedbackStore.create({ database: DatabaseManager.fromConfig(config).forPlugin('feedback'), skipMigrations: false, - logger: logger, + logger, }); const mailer = new NodeMailer(config, logger); const catalogClient = new CatalogClient({ discoveryApi: discovery }); router.use(express.json()); + logger.info('Feedback backend plugin is running'); router.post('/', (req, res) => { (async () => { @@ -108,9 +109,10 @@ export async function createRouter( const type = annotations['feedback/type']; const replyTo = annotations['feedback/email-to']; const reporterEmail = ( - (await catalogClient.getEntityByRef(reqData.createdBy!, { token })) - ?.spec?.profile as { email: string } - ).email; + (await catalogClient.getEntityByRef(reqData.createdBy!, { + token, + })) as UserEntityV1alpha1 + ).spec.profile?.email; const appTitle = config.getString('app.title'); if ( @@ -118,21 +120,27 @@ export async function createRouter( !reqData.tag?.match(/(Excellent|Good)/g) ) { let host = annotations['feedback/host']; + let serviceConfig: Config; // if host is undefined then // use the first host from config - const serviceConfig = - config - .getConfigArray('feedback.integrations.jira') - .find(hostConfig => host === hostConfig.getString('host')) ?? - config.getConfigArray('feedback.integrations.jira')[0]; + try { + serviceConfig = + config + .getConfigArray('feedback.integrations.jira') + .find(hostConfig => host === hostConfig.getString('host')) ?? + config.getConfigArray('feedback.integrations.jira')[0]; + } catch { + return logger.error('Jira integeration not found'); + } host = serviceConfig.getString('host'); const authToken = serviceConfig.getString('token'); const hostType = serviceConfig.getOptionalString('hostType'); const projectKey = entityRef.metadata.annotations['jira/project-key']; const jiraService = new JiraApiService(host, authToken, hostType); - const jiraUsername = - await jiraService.getJiraUsernameByEmail(reporterEmail); + const jiraUsername = reporterEmail + ? await jiraService.getJiraUsernameByEmail(reporterEmail) + : undefined; // if jira id is not there for reporter, add reporter email in description const jiraDescription = reqData.description!.concat( @@ -159,7 +167,7 @@ export async function createRouter( if (type.toUpperCase() === 'MAIL' || replyTo) { mailer.sendMail({ - to: reporterEmail, + to: reporterEmail ?? replyTo, replyTo: replyTo, subject: `${reqData.tag} - ${feedbackType} reported for ${ reqData.projectId?.split('/')[1] diff --git a/plugins/feedback-backend/src/service/standaloneServer.ts b/plugins/feedback-backend/src/service/standaloneServer.ts index 2b86aac439..b840ffb4fd 100644 --- a/plugins/feedback-backend/src/service/standaloneServer.ts +++ b/plugins/feedback-backend/src/service/standaloneServer.ts @@ -7,8 +7,6 @@ import { import { mockServices } from '@backstage/backend-test-utils'; import { Config, ConfigReader } from '@backstage/config'; -import { Logger } from 'winston'; - import { Server } from 'http'; import { createRouter } from './router'; @@ -16,7 +14,7 @@ import { createRouter } from './router'; export interface ServerOptions { port: number; enableCors: boolean; - logger: Logger; + logger: LoggerService; } export async function startStandaloneServer( @@ -30,7 +28,7 @@ export async function startStandaloneServer( }); logger.debug('Starting application server...'); const router = await createRouter({ - logger: logger, + logger, config: config, discovery: discovery, auth: auth, diff --git a/plugins/feedback/CHANGELOG.md b/plugins/feedback/CHANGELOG.md index 2f7b7a26bb..bc01759b8e 100644 --- a/plugins/feedback/CHANGELOG.md +++ b/plugins/feedback/CHANGELOG.md @@ -1,3 +1,10 @@ +## @janus-idp/backstage-plugin-feedback [1.3.12](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-feedback@1.3.11...@janus-idp/backstage-plugin-feedback@1.3.12) (2024-06-07) + + +### Bug Fixes + +* **feedback:** update EntityPage component ([#1798](https://github.com/janus-idp/backstage-plugins/issues/1798)) ([f5b04b5](https://github.com/janus-idp/backstage-plugins/commit/f5b04b5f5431cb6c710613b699ee81c9fec6d10d)) + ## @janus-idp/backstage-plugin-feedback [1.3.11](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-feedback@1.3.10...@janus-idp/backstage-plugin-feedback@1.3.11) (2024-06-05) diff --git a/plugins/feedback/package.json b/plugins/feedback/package.json index 0a5ce36b3c..3a0fb5837c 100644 --- a/plugins/feedback/package.json +++ b/plugins/feedback/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-feedback", - "version": "1.3.11", + "version": "1.3.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/feedback/src/components/CreateFeedbackModal/CreateFeedbackModal.tsx b/plugins/feedback/src/components/CreateFeedbackModal/CreateFeedbackModal.tsx index faffa0c8fc..b5639aec39 100644 --- a/plugins/feedback/src/components/CreateFeedbackModal/CreateFeedbackModal.tsx +++ b/plugins/feedback/src/components/CreateFeedbackModal/CreateFeedbackModal.tsx @@ -207,6 +207,16 @@ export const CreateFeedbackModal = (props: { + {props.serverType.toLowerCase() !== 'mail' && + !selectedTag.match(/(Excellent|Good)/g) ? ( + + + Note: By submitting  + {feedbackType === 'FEEDBACK' ? 'feedback' : 'bug'} with this + tag, it will create an issue in {props.serverType.toLowerCase()} + + + ) : null} Select type @@ -219,7 +229,7 @@ export const CreateFeedbackModal = (props: { } checkedIcon={} - color="secondary" + color="error" /> } /> @@ -249,7 +259,7 @@ export const CreateFeedbackModal = (props: { variant={ selectedTag === issueTitle ? 'filled' : 'outlined' } - color="secondary" + color="error" onClick={() => handleChipSlection(issueTitle)} label={issueTitle} /> @@ -309,21 +319,13 @@ export const CreateFeedbackModal = (props: { - {props.serverType.toLowerCase() !== 'mail' && - !selectedTag.match(/(Excellent|Good)/g) ? ( - - Note: By submitting  - {feedbackType === 'FEEDBACK' ? 'feedback' : 'bug'} with this tag, it - will create an issue in {props.serverType.toLowerCase()} - - ) : null} ); }; diff --git a/plugins/feedback/src/components/EntityFeedbackPage/EntityFeedbackPage.tsx b/plugins/feedback/src/components/EntityFeedbackPage/EntityFeedbackPage.tsx index 5658177805..cf8b404f04 100644 --- a/plugins/feedback/src/components/EntityFeedbackPage/EntityFeedbackPage.tsx +++ b/plugins/feedback/src/components/EntityFeedbackPage/EntityFeedbackPage.tsx @@ -130,8 +130,12 @@ export const EntityFeedbackPage = () => { arrow TransitionComponent={Zoom} > - {pluginConfig.feedbackType === 'JIRA' ? ( diff --git a/plugins/jfrog-artifactory/CHANGELOG.md b/plugins/jfrog-artifactory/CHANGELOG.md index 7e09d639d7..0864cd297d 100644 --- a/plugins/jfrog-artifactory/CHANGELOG.md +++ b/plugins/jfrog-artifactory/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-plugin-jfrog-artifactory [1.4.11](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-jfrog-artifactory@1.4.10...@janus-idp/backstage-plugin-jfrog-artifactory@1.4.11) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-jfrog-artifactory [1.4.10](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-jfrog-artifactory@1.4.9...@janus-idp/backstage-plugin-jfrog-artifactory@1.4.10) (2024-06-04) diff --git a/plugins/jfrog-artifactory/package.json b/plugins/jfrog-artifactory/package.json index 2398ae2b4c..5c4cc738f7 100644 --- a/plugins/jfrog-artifactory/package.json +++ b/plugins/jfrog-artifactory/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-jfrog-artifactory", - "version": "1.4.10", + "version": "1.4.11", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -46,7 +46,7 @@ "@backstage/core-app-api": "1.12.4", "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "14.3.1", diff --git a/plugins/keycloak-backend/CHANGELOG.md b/plugins/keycloak-backend/CHANGELOG.md index 9678f57cef..37bd58252f 100644 --- a/plugins/keycloak-backend/CHANGELOG.md +++ b/plugins/keycloak-backend/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-plugin-keycloak-backend [1.9.12](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-keycloak-backend@1.9.11...@janus-idp/backstage-plugin-keycloak-backend@1.9.12) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-keycloak-backend [1.9.11](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-keycloak-backend@1.9.10...@janus-idp/backstage-plugin-keycloak-backend@1.9.11) (2024-06-04) ## @janus-idp/backstage-plugin-keycloak-backend [1.9.10](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-keycloak-backend@1.9.9...@janus-idp/backstage-plugin-keycloak-backend@1.9.10) (2024-06-03) diff --git a/plugins/keycloak-backend/dev/index.ts b/plugins/keycloak-backend/dev/index.ts index 6b79988743..91f9c2c03b 100644 --- a/plugins/keycloak-backend/dev/index.ts +++ b/plugins/keycloak-backend/dev/index.ts @@ -8,6 +8,7 @@ import { UrlReaders, useHotMemoize, } from '@backstage/backend-common'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { TaskScheduler } from '@backstage/backend-tasks'; import { Config, ConfigReader } from '@backstage/config'; import { DefaultIdentityClient } from '@backstage/plugin-auth-node'; @@ -15,7 +16,6 @@ import { CatalogBuilder } from '@backstage/plugin-catalog-backend'; import { ServerPermissionClient } from '@backstage/plugin-permission-node'; import { Router } from 'express'; -import { Logger } from 'winston'; import { Server } from 'http'; @@ -24,7 +24,7 @@ import { PluginEnvironment } from './types'; export interface ServerOptions { port: number; - logger: Logger; + logger: LoggerService; } function makeCreateEnv(config: Config) { diff --git a/plugins/keycloak-backend/dev/types.ts b/plugins/keycloak-backend/dev/types.ts index a2c43b45de..337ff15c9c 100644 --- a/plugins/keycloak-backend/dev/types.ts +++ b/plugins/keycloak-backend/dev/types.ts @@ -5,15 +5,14 @@ import { TokenManager, UrlReader, } from '@backstage/backend-common'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { Config } from '@backstage/config'; import { IdentityApi } from '@backstage/plugin-auth-node'; import { PermissionEvaluator } from '@backstage/plugin-permission-common'; -import { Logger } from 'winston'; - export type PluginEnvironment = { - logger: Logger; + logger: LoggerService; database: PluginDatabaseManager; cache: PluginCacheManager; config: Config; diff --git a/plugins/keycloak-backend/dist-dynamic/package.json b/plugins/keycloak-backend/dist-dynamic/package.json index e9a30b38f3..42140aab2e 100644 --- a/plugins/keycloak-backend/dist-dynamic/package.json +++ b/plugins/keycloak-backend/dist-dynamic/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-keycloak-backend-dynamic", - "version": "1.9.11", + "version": "1.9.12", "description": "A Backend backend plugin for Keycloak", "main": "dist/index.cjs.js", "types": "dist/index.d.ts", @@ -29,7 +29,6 @@ "dependencies": { "lodash": "^4.17.21", "uuid": "^9.0.1", - "winston": "^3.11.0", "axios": "^0.26.1", "camelize-ts": "^1.0.8", "keycloak-js": "^17.0.1", diff --git a/plugins/keycloak-backend/dist-dynamic/yarn.lock b/plugins/keycloak-backend/dist-dynamic/yarn.lock index c860175c1d..3a40ddc5cd 100644 --- a/plugins/keycloak-backend/dist-dynamic/yarn.lock +++ b/plugins/keycloak-backend/dist-dynamic/yarn.lock @@ -10,20 +10,6 @@ "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@colors/colors@1.6.0", "@colors/colors@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" - integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== - -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - "@smithy/is-array-buffer@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" @@ -39,16 +25,6 @@ "@smithy/is-array-buffer" "^2.2.0" tslib "^2.6.2" -"@types/triple-beam@^1.3.2": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" - integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== - -async@^3.2.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== - axios@^0.26.1: version "0.26.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" @@ -66,92 +42,21 @@ camelize-ts@^1.0.8: resolved "https://registry.yarnpkg.com/camelize-ts/-/camelize-ts-1.0.9.tgz#6ac46fbe660d18e093568ef0d56c836141b700f4" integrity sha512-ePOW3V2qrQ0qtRlcTM6Qe3nXremdydIwsMKI1Vl2NBGM0tOo8n2xzJ7YOQpV1GIKHhs3p+F40ThI8/DoYWbYKQ== -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - decode-uri-component@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -enabled@2.0.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" - integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== - -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - filter-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== -fn.name@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" - integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== - follow-redirects@^1.14.8: version "1.15.6" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== -inherits@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - js-sha256@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" @@ -165,40 +70,11 @@ keycloak-js@^17.0.1: base64-js "^1.5.1" js-sha256 "^0.9.0" -kuler@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" - integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== - lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -logform@^2.3.2, logform@^2.4.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" - integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== - dependencies: - "@colors/colors" "1.6.0" - "@types/triple-beam" "^1.3.2" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -one-time@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" - integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== - dependencies: - fn.name "1.x.x" - query-string@^7.0.1: version "7.1.3" resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328" @@ -209,64 +85,16 @@ query-string@^7.0.1: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - split-on-first@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - -triple-beam@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" - integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== - tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -282,38 +110,7 @@ url-template@^2.0.8: resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" integrity sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw== -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - uuid@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - -winston-transport@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.7.0.tgz#e302e6889e6ccb7f383b926df6936a5b781bd1f0" - integrity sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@^3.11.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" - integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== - dependencies: - "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.7.0" diff --git a/plugins/keycloak-backend/package.json b/plugins/keycloak-backend/package.json index c494535f9a..6498963887 100644 --- a/plugins/keycloak-backend/package.json +++ b/plugins/keycloak-backend/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-keycloak-backend", - "version": "1.9.11", + "version": "1.9.12", "description": "A Backend backend plugin for Keycloak", "main": "src/index.ts", "types": "src/index.ts", @@ -53,8 +53,7 @@ "@backstage/backend-dynamic-feature-service": "^0.2.9", "@keycloak/keycloak-admin-client": "<19.0.0", "lodash": "^4.17.21", - "uuid": "^9.0.1", - "winston": "^3.11.0" + "uuid": "^9.0.1" }, "devDependencies": { "@backstage/backend-app-api": "0.7.2", @@ -64,7 +63,7 @@ "@backstage/plugin-catalog-backend": "1.21.1", "@backstage/plugin-permission-common": "0.7.13", "@backstage/plugin-permission-node": "0.7.28", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@types/lodash": "4.17.4", "@types/supertest": "2.0.16", "@types/uuid": "9.0.8", diff --git a/plugins/keycloak-backend/src/module/catalogModuleKeycloakEntityProvider.ts b/plugins/keycloak-backend/src/module/catalogModuleKeycloakEntityProvider.ts index 115c7323f6..5d7a042b05 100644 --- a/plugins/keycloak-backend/src/module/catalogModuleKeycloakEntityProvider.ts +++ b/plugins/keycloak-backend/src/module/catalogModuleKeycloakEntityProvider.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import { loggerToWinstonLogger } from '@backstage/backend-common'; import { coreServices, createBackendModule, @@ -46,7 +45,7 @@ export const catalogModuleKeycloakEntityProvider = createBackendModule({ catalog.addEntityProvider( KeycloakOrgEntityProvider.fromConfig(config, { id: 'development', - logger: loggerToWinstonLogger(logger), + logger, scheduler, }), ); diff --git a/plugins/keycloak-backend/src/providers/KeycloakOrgEntityProvider.ts b/plugins/keycloak-backend/src/providers/KeycloakOrgEntityProvider.ts index 160ffb73cc..ec884e0b65 100644 --- a/plugins/keycloak-backend/src/providers/KeycloakOrgEntityProvider.ts +++ b/plugins/keycloak-backend/src/providers/KeycloakOrgEntityProvider.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import { LoggerService } from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks'; import { ANNOTATION_LOCATION, @@ -30,7 +31,6 @@ import KcAdminClient from '@keycloak/keycloak-admin-client'; import type { Credentials } from '@keycloak/keycloak-admin-client/lib/utils/auth'; import { merge } from 'lodash'; import * as uuid from 'uuid'; -import { Logger } from 'winston'; import { GroupTransformer, @@ -78,7 +78,7 @@ export interface KeycloakOrgEntityProviderOptions { /** * The logger to use. */ - logger: Logger; + logger: LoggerService; /** * The function that transforms a user entry in LDAP to an entity. @@ -161,7 +161,7 @@ export class KeycloakOrgEntityProvider implements EntityProvider { private options: { id: string; provider: KeycloakProviderConfig; - logger: Logger; + logger: LoggerService; userTransformer?: UserTransformer; groupTransformer?: GroupTransformer; }, @@ -180,7 +180,7 @@ export class KeycloakOrgEntityProvider implements EntityProvider { * Runs one complete ingestion loop. Call this method regularly at some * appropriate cadence. */ - async read(options?: { logger?: Logger }) { + async read(options?: { logger?: LoggerService }) { if (!this.connection) { throw new Error('Not initialized'); } @@ -269,7 +269,7 @@ export class KeycloakOrgEntityProvider implements EntityProvider { } // Helps wrap the timing and logging behaviors -function trackProgress(logger: Logger) { +function trackProgress(logger: LoggerService) { let timestamp = Date.now(); let summary: string; diff --git a/plugins/kiali-backend/CHANGELOG.md b/plugins/kiali-backend/CHANGELOG.md index cef57acf1d..6d629f1932 100644 --- a/plugins/kiali-backend/CHANGELOG.md +++ b/plugins/kiali-backend/CHANGELOG.md @@ -1,3 +1,18 @@ +## @janus-idp/backstage-plugin-kiali-backend [1.10.22](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-kiali-backend@1.10.21...@janus-idp/backstage-plugin-kiali-backend@1.10.22) (2024-06-06) + + +### Bug Fixes + +* **kiali:** sanitize input for CWE-79 ([#1786](https://github.com/janus-idp/backstage-plugins/issues/1786)) ([9ba95bb](https://github.com/janus-idp/backstage-plugins/commit/9ba95bba7b9d5081829831e797b27f6a286971a4)) + +## @janus-idp/backstage-plugin-kiali-backend [1.10.21](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-kiali-backend@1.10.20...@janus-idp/backstage-plugin-kiali-backend@1.10.21) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-kiali-backend [1.10.20](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-kiali-backend@1.10.19...@janus-idp/backstage-plugin-kiali-backend@1.10.20) (2024-06-04) ## @janus-idp/backstage-plugin-kiali-backend [1.10.19](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-kiali-backend@1.10.18...@janus-idp/backstage-plugin-kiali-backend@1.10.19) (2024-06-03) diff --git a/plugins/kiali-backend/dist-dynamic/package.json b/plugins/kiali-backend/dist-dynamic/package.json index 5a1aa30a87..7b6a66c630 100644 --- a/plugins/kiali-backend/dist-dynamic/package.json +++ b/plugins/kiali-backend/dist-dynamic/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-kiali-backend-dynamic", - "version": "1.10.19", + "version": "1.10.21", "main": "dist/index.cjs.js", "types": "dist/index.d.ts", "license": "Apache-2.0", @@ -31,7 +31,6 @@ "express": "^4.18.2", "express-promise-router": "^4.1.1", "moment": "^2.29.4", - "winston": "^3.11.0", "yn": "^4.0.0" }, "devDependencies": {}, diff --git a/plugins/kiali-backend/dist-dynamic/yarn.lock b/plugins/kiali-backend/dist-dynamic/yarn.lock index c6962963f9..f081d111f7 100644 --- a/plugins/kiali-backend/dist-dynamic/yarn.lock +++ b/plugins/kiali-backend/dist-dynamic/yarn.lock @@ -10,20 +10,6 @@ "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@colors/colors@1.6.0", "@colors/colors@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" - integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== - -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - "@smithy/is-array-buffer@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" @@ -39,11 +25,6 @@ "@smithy/is-array-buffer" "^2.2.0" tslib "^2.6.2" -"@types/triple-beam@^1.3.2": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" - integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== - accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -57,11 +38,6 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -async@^3.2.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -110,47 +86,6 @@ call-bind@^1.0.7: get-intrinsic "^1.2.4" set-function-length "^1.2.1" -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -216,11 +151,6 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -enabled@2.0.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" - integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -294,11 +224,6 @@ express@^4.18.2: utils-merge "1.0.1" vary "~1.1.2" -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - finalhandler@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" @@ -312,11 +237,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -fn.name@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" - integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== - follow-redirects@^1.15.6: version "1.15.6" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" @@ -406,7 +326,7 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -inherits@2.0.4, inherits@^2.0.3: +inherits@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -416,43 +336,16 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-promise@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -kuler@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" - integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== - lodash.flattendeep@^4.0.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== -logform@^2.3.2, logform@^2.4.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" - integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== - dependencies: - "@colors/colors" "1.6.0" - "@types/triple-beam" "^1.3.2" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -495,7 +388,7 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.3, ms@^2.1.1: +ms@2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -517,13 +410,6 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -one-time@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" - integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== - dependencies: - fn.name "1.x.x" - parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -569,25 +455,11 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" -readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -safe-buffer@5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -649,45 +521,16 @@ side-channel@^1.0.4: get-intrinsic "^1.2.4" object-inspect "^1.13.1" -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - toidentifier@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -triple-beam@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" - integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== - tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -706,11 +549,6 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -721,32 +559,6 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -winston-transport@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.7.0.tgz#e302e6889e6ccb7f383b926df6936a5b781bd1f0" - integrity sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@^3.11.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" - integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== - dependencies: - "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.7.0" - yn@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yn/-/yn-4.0.0.tgz#611480051ea43b510da1dfdbe177ed159f00a979" diff --git a/plugins/kiali-backend/package.json b/plugins/kiali-backend/package.json index 9e0ec44aa4..60ee67e251 100644 --- a/plugins/kiali-backend/package.json +++ b/plugins/kiali-backend/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-kiali-backend", - "version": "1.10.20", + "version": "1.10.22", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -54,12 +54,11 @@ "express": "^4.18.2", "express-promise-router": "^4.1.1", "moment": "^2.29.4", - "winston": "^3.11.0", "yn": "^4.0.0" }, "devDependencies": { "@backstage/cli": "0.26.4", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@types/express": "4.17.21", "@types/supertest": "2.0.16", "msw": "1.3.3", diff --git a/plugins/kiali-backend/src/clients/KialiAPIConnector.test.ts b/plugins/kiali-backend/src/clients/KialiAPIConnector.test.ts index f31c874c1d..7812171b21 100644 --- a/plugins/kiali-backend/src/clients/KialiAPIConnector.test.ts +++ b/plugins/kiali-backend/src/clients/KialiAPIConnector.test.ts @@ -1,14 +1,12 @@ -import { createLogger, transports } from 'winston'; +import { getVoidLogger } from '@backstage/backend-common'; import supported from '../kiali_supported.json'; import { KIALI_CORE_VERSION, KialiApiImpl } from './KialiAPIConnector'; -const logger = createLogger({ - transports: [new transports.Console({ silent: true })], -}); +const logger = getVoidLogger(); const kialiApi = new KialiApiImpl({ - logger: logger, + logger, kiali: { url: 'https://localhost:4000' }, }); diff --git a/plugins/kiali-backend/src/clients/KialiAPIConnector.ts b/plugins/kiali-backend/src/clients/KialiAPIConnector.ts index 51e0c1bb89..470e095236 100644 --- a/plugins/kiali-backend/src/clients/KialiAPIConnector.ts +++ b/plugins/kiali-backend/src/clients/KialiAPIConnector.ts @@ -1,11 +1,11 @@ -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import supported from '../kiali_supported.json'; import { KialiDetails } from '../service/config'; import { KialiFetcher, KialiValidations, ValidationCategory } from './fetch'; export type Options = { - logger: Logger; + logger: LoggerService; kiali: KialiDetails; }; @@ -22,7 +22,7 @@ export interface KialiApi { } export class KialiApiImpl implements KialiApi { private kialiFetcher: KialiFetcher; - private logger: Logger; + private logger: LoggerService; constructor(options: Options) { this.logger = options.logger; diff --git a/plugins/kiali-backend/src/clients/fetch.test.ts b/plugins/kiali-backend/src/clients/fetch.test.ts index a96d064ed0..35f446717d 100644 --- a/plugins/kiali-backend/src/clients/fetch.test.ts +++ b/plugins/kiali-backend/src/clients/fetch.test.ts @@ -1,12 +1,11 @@ +import { getVoidLogger } from '@backstage/backend-common'; + import { AxiosError } from 'axios'; -import { createLogger, transports } from 'winston'; import { AuthStrategy } from './Auth'; import { KialiFetcher, ValidationCategory } from './fetch'; -const logger = createLogger({ - transports: [new transports.Console({ silent: true })], -}); +const logger = getVoidLogger(); describe('kiali Fetch', () => { describe('Kiali configuration validation', () => { diff --git a/plugins/kiali-backend/src/clients/fetch.ts b/plugins/kiali-backend/src/clients/fetch.ts index 84b84950c5..103c546678 100644 --- a/plugins/kiali-backend/src/clients/fetch.ts +++ b/plugins/kiali-backend/src/clients/fetch.ts @@ -1,5 +1,6 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; + import axios, { AxiosError, AxiosRequestConfig } from 'axios'; -import { Logger } from 'winston'; import fs from 'fs'; import https from 'https'; @@ -32,13 +33,13 @@ export type KialiValidations = { const TIMEOUT_FETCH = 8000; export class KialiFetcher { - private readonly logger: Logger; + private readonly logger: LoggerService; private kialiAuth: KialiAuthentication; private KialiDetails: KialiDetails; - constructor(KD: KialiDetails, log: Logger) { + constructor(KD: KialiDetails, logger: LoggerService) { this.KialiDetails = KD; - this.logger = log; + this.logger = logger; this.kialiAuth = new KialiAuthentication(KD); } diff --git a/plugins/kiali-backend/src/plugin.ts b/plugins/kiali-backend/src/plugin.ts index 42ef1f159f..9302cdda62 100644 --- a/plugins/kiali-backend/src/plugin.ts +++ b/plugins/kiali-backend/src/plugin.ts @@ -1,4 +1,3 @@ -import { loggerToWinstonLogger } from '@backstage/backend-common'; import { coreServices, createBackendPlugin, @@ -22,9 +21,8 @@ export const kialiPlugin = createBackendPlugin({ catalogApi: catalogServiceRef, }, async init({ http, logger, config }) { - const winstonLogger = loggerToWinstonLogger(logger); const router = await createRouter({ - logger: winstonLogger, + logger, config, }); http.use(router); diff --git a/plugins/kiali-backend/src/service/router.test.ts b/plugins/kiali-backend/src/service/router.test.ts index a4f863acad..2d92ddec66 100644 --- a/plugins/kiali-backend/src/service/router.test.ts +++ b/plugins/kiali-backend/src/service/router.test.ts @@ -1,9 +1,9 @@ +import { getVoidLogger } from '@backstage/backend-common'; import { ConfigReader } from '@backstage/config'; import express from 'express'; import { setupServer } from 'msw/node'; import request from 'supertest'; -import { createLogger, transports } from 'winston'; import { handlers } from '../../__fixtures__/handlers'; import { createRouter } from './router'; @@ -22,9 +22,7 @@ beforeAll(() => afterEach(() => server.restoreHandlers()); afterAll(() => server.close()); -const logger = createLogger({ - transports: [new transports.Console({ silent: true })], -}); +const logger = getVoidLogger(); describe('createRouter', () => { let app: express.Express; @@ -32,7 +30,7 @@ describe('createRouter', () => { beforeAll(async () => { jest.resetAllMocks(); const router = await createRouter({ - logger: logger, + logger, config: new ConfigReader({ catalog: { providers: { @@ -44,7 +42,10 @@ describe('createRouter', () => { }, }), }); - app = express().use(router); + app = express(); + app.disable("'x-powered-by"); + + app = app.use(router); }); describe('POST /status', () => { diff --git a/plugins/kiali-backend/src/service/router.ts b/plugins/kiali-backend/src/service/router.ts index 550040aeb1..fa54c602a7 100644 --- a/plugins/kiali-backend/src/service/router.ts +++ b/plugins/kiali-backend/src/service/router.ts @@ -1,19 +1,19 @@ import { errorHandler } from '@backstage/backend-common'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import express from 'express'; -import { Logger } from 'winston'; import { KialiApiImpl } from '../clients/KialiAPIConnector'; import { readKialiConfigs } from './config'; export interface RouterOptions { - logger: Logger; + logger: LoggerService; config: Config; } export const makeRouter = ( - logger: Logger, + logger: LoggerService, kialiAPI: KialiApiImpl, ): express.Router => { const router = express.Router(); diff --git a/plugins/kiali-backend/src/service/standaloneServer.ts b/plugins/kiali-backend/src/service/standaloneServer.ts index 4ea2081eaf..bd1dc80893 100644 --- a/plugins/kiali-backend/src/service/standaloneServer.ts +++ b/plugins/kiali-backend/src/service/standaloneServer.ts @@ -1,8 +1,7 @@ import { createServiceBuilder } from '@backstage/backend-common'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { ConfigReader } from '@backstage/config'; -import { Logger } from 'winston'; - import { Server } from 'http'; import { createRouter } from './router'; @@ -10,7 +9,7 @@ import { createRouter } from './router'; export interface ServerOptions { port: number; enableCors: boolean; - logger: Logger; + logger: LoggerService; } export async function startStandaloneServer( diff --git a/plugins/kiali/CHANGELOG.md b/plugins/kiali/CHANGELOG.md index 8440566a86..f78f99d227 100644 --- a/plugins/kiali/CHANGELOG.md +++ b/plugins/kiali/CHANGELOG.md @@ -1,3 +1,39 @@ +## @janus-idp/backstage-plugin-kiali [1.18.13](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-kiali@1.18.12...@janus-idp/backstage-plugin-kiali@1.18.13) (2024-06-10) + + +### Bug Fixes + +* **kiali:** fix dev links ([#1801](https://github.com/janus-idp/backstage-plugins/issues/1801)) ([2a86a5e](https://github.com/janus-idp/backstage-plugins/commit/2a86a5e7ed43c520962f32a11bc1cce6d13523e3)) + +## @janus-idp/backstage-plugin-kiali [1.18.12](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-kiali@1.18.11...@janus-idp/backstage-plugin-kiali@1.18.12) (2024-06-06) + + +### Bug Fixes + +* **kiali:** remove debug window ([#1793](https://github.com/janus-idp/backstage-plugins/issues/1793)) ([b5b5376](https://github.com/janus-idp/backstage-plugins/commit/b5b5376181d49074bd58bb34734561eab6ee8d2a)) + +## @janus-idp/backstage-plugin-kiali [1.18.11](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-kiali@1.18.10...@janus-idp/backstage-plugin-kiali@1.18.11) (2024-06-06) + + +### Documentation + +* **kiali:** update development doc for alpha backend([#1720](https://github.com/janus-idp/backstage-plugins/issues/1720)) ([e06e9be](https://github.com/janus-idp/backstage-plugins/commit/e06e9bee0745e76beccb8d7e3810548fd46207db)) + +## @janus-idp/backstage-plugin-kiali [1.18.10](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-kiali@1.18.9...@janus-idp/backstage-plugin-kiali@1.18.10) (2024-06-06) + + +### Bug Fixes + +* **kiali:** sanitize input for CWE-79 ([#1786](https://github.com/janus-idp/backstage-plugins/issues/1786)) ([9ba95bb](https://github.com/janus-idp/backstage-plugins/commit/9ba95bba7b9d5081829831e797b27f6a286971a4)) + +## @janus-idp/backstage-plugin-kiali [1.18.9](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-kiali@1.18.8...@janus-idp/backstage-plugin-kiali@1.18.9) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-kiali [1.18.8](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-kiali@1.18.7...@janus-idp/backstage-plugin-kiali@1.18.8) (2024-06-04) ## @janus-idp/backstage-plugin-kiali [1.18.7](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-kiali@1.18.6...@janus-idp/backstage-plugin-kiali@1.18.7) (2024-06-04) diff --git a/plugins/kiali/DEVELOPMENT.md b/plugins/kiali/DEVELOPMENT.md index 25eccd88fa..c4ba988ddb 100644 --- a/plugins/kiali/DEVELOPMENT.md +++ b/plugins/kiali/DEVELOPMENT.md @@ -44,48 +44,13 @@ ); ``` -3. Create a file called `kiali.ts` inside `packages/backend/src/plugins/` and add the following: - - ```ts title="packages/backend/src/plugins/kiali.tsx" - /* highlight-add-start */ - import { Router } from 'express'; - - // .. - import { createRouter } from '@janus-idp/backstage-plugin-kiali-backend'; - - import { PluginEnvironment } from '../types'; - - export default async function createPlugin( - env: PluginEnvironment, - ): Promise { - return await createRouter({ - logger: env.logger, - config: env.config, - }); - } - // .. - /* highlight-add-end */ - ``` - -4. import the plugin to `packages/backend/src/index.ts`. There are three lines of code you'll need to add, and they should be added near similar code in your existing Backstage backend. +3. import the plugin to `packages/backend/src/index.ts`. ```typescript title="packages/backend/src/index.ts" - // .. - /* highlight-add-next-line */ - import kiali from './plugins/kiali'; - - async function main() { - // ... - /* highlight-add-next-line */ - const kialiEnv = useHotMemoize(module, () => createEnv('kiali')); - // ... - /* highlight-add-next-line */ - apiRouter.use('/kiali', await kiali(kialiEnv)); - // ... - } + backend.add(import('@janus-idp/backstage-plugin-kiali-backend/alpha')); ``` -5. Configure you `app-config.local.yaml` with kiali configuration +4. Configure you `app-config.local.yaml` with kiali configuration ```yaml catalog: @@ -107,7 +72,7 @@ # highlight-add-end ``` -6. Add catalog +5. Add catalog Add to locations in `app-config.local.yaml` @@ -118,6 +83,16 @@ target: ../../plugins/kiali/catalog-demo.yaml ``` +6. Disable backend authentication for development (If required) + + Add the auth config to backend in `app-config.local.yaml` + + ```yaml + backend: + auth: + dangerouslyDisableDefaultAuthPolicy: true + ``` + 7. Run `yarn start:backstage` from the project root. 8. After create a new component, the Kiali tab should be enabled: diff --git a/plugins/kiali/dev/MockProvider.tsx b/plugins/kiali/dev/MockProvider.tsx new file mode 100644 index 0000000000..4e55c1fe43 --- /dev/null +++ b/plugins/kiali/dev/MockProvider.tsx @@ -0,0 +1,548 @@ +import React from 'react'; + +import { Entity } from '@backstage/catalog-model'; +import { Content, HeaderTabs, Page } from '@backstage/core-components'; +import { EntityProvider } from '@backstage/plugin-catalog-react'; +import { TestApiProvider } from '@backstage/test-utils'; + +import { getEntityRoutes } from '../src/components/Router'; +import { AppDetailsPage } from '../src/pages/AppDetails/AppDetailsPage'; +import { AppListPage } from '../src/pages/AppList/AppListPage'; +import { IstioConfigDetailsPage } from '../src/pages/IstioConfigDetails/IstioConfigDetailsPage'; +import { IstioConfigListPage } from '../src/pages/IstioConfigList/IstioConfigListPage'; +import { KialiNoPath } from '../src/pages/Kiali'; +import { KialiHeader } from '../src/pages/Kiali/Header/KialiHeader'; +import { OverviewPage } from '../src/pages/Overview/OverviewPage'; +import { ServiceDetailsPage } from '../src/pages/ServiceDetails/ServiceDetailsPage'; +import { ServiceListPage } from '../src/pages/ServiceList/ServiceListPage'; +import { WorkloadDetailsPage } from '../src/pages/WorkloadDetails/WorkloadDetailsPage'; +import { WorkloadListPage } from '../src/pages/WorkloadList/WorkloadListPage'; +import { KialiApi, kialiApiRef } from '../src/services/Api'; +import { KialiProvider } from '../src/store/KialiProvider'; +import { App, AppQuery } from '../src/types/App'; +import { AppList, AppListQuery } from '../src/types/AppList'; +import { AuthInfo } from '../src/types/Auth'; +import { CertsInfo } from '../src/types/CertsInfo'; +import { DurationInSeconds, TimeInSeconds } from '../src/types/Common'; +import { DashboardModel } from '../src/types/Dashboards'; +import { GrafanaInfo } from '../src/types/GrafanaInfo'; +import { + AppHealth, + NamespaceAppHealth, + NamespaceServiceHealth, + NamespaceWorkloadHealth, + ServiceHealth, + WorkloadHealth, +} from '../src/types/Health'; +import { IstioConfigDetails } from '../src/types/IstioConfigDetails'; +import { IstioConfigList, IstioConfigsMap } from '../src/types/IstioConfigList'; +import { + CanaryUpgradeStatus, + OutboundTrafficPolicy, + PodLogs, + ValidationStatus, +} from '../src/types/IstioObjects'; +import { + ComponentStatus, + IstiodResourceThresholds, +} from '../src/types/IstioStatus'; +import { IstioMetricsMap } from '../src/types/Metrics'; +import { IstioMetricsOptions } from '../src/types/MetricsOptions'; +import { Namespace } from '../src/types/Namespace'; +import { KialiCrippledFeatures, ServerConfig } from '../src/types/ServerConfig'; +import { ServiceDetailsInfo } from '../src/types/ServiceInfo'; +import { ServiceList, ServiceListQuery } from '../src/types/ServiceList'; +import { StatusState } from '../src/types/StatusState'; +import { TLSStatus } from '../src/types/TLSStatus'; +import { Span, TracingQuery } from '../src/types/Tracing'; +import { + Workload, + WorkloadListItem, + WorkloadNamespaceResponse, + WorkloadOverview, + WorkloadQuery, +} from '../src/types/Workload'; +import { filterNsByAnnotation } from '../src/utils/entityFilter'; +import { kialiData } from './__fixtures__'; +import { mockEntity } from './mockEntity'; + +export class MockKialiClient implements KialiApi { + private entity?: Entity; + + constructor() { + this.entity = undefined; + } + + setEntity(entity?: Entity): void { + this.entity = entity; + } + + async status(): Promise { + return kialiData.status; + } + + async getAuthInfo(): Promise { + return kialiData.auth; + } + async getStatus(): Promise { + return kialiData.status; + } + + async getNamespaces(): Promise { + return filterNsByAnnotation( + kialiData.namespaces as Namespace[], + this.entity, + ); + } + + async getWorkloads( + namespace: string, + duration: number, + ): Promise { + const nsl = kialiData.workloads as WorkloadNamespaceResponse[]; + // @ts-ignore + return nsl[namespace].workloads.map( + (w: WorkloadOverview): WorkloadListItem => { + return { + name: w.name, + namespace: namespace, + cluster: w.cluster, + type: w.type, + istioSidecar: w.istioSidecar, + istioAmbient: w.istioAmbient, + additionalDetailSample: undefined, + appLabel: w.appLabel, + versionLabel: w.versionLabel, + labels: w.labels, + istioReferences: w.istioReferences, + notCoveredAuthPolicy: w.notCoveredAuthPolicy, + health: WorkloadHealth.fromJson(namespace, w.name, w.health, { + rateInterval: duration, + hasSidecar: w.istioSidecar, + hasAmbient: w.istioAmbient, + }), + }; + }, + ); + } + + async getWorkload( + namespace: string, + name: string, + _: WorkloadQuery, + __?: string, + ): Promise { + const parsedName = name.replace(/-/g, ''); + return kialiData.namespacesData[namespace].workloads[parsedName]; + } + + async getIstioConfig( + namespace: string, + _: string[], + __: boolean, + ___: string, + ____: string, + _____?: string, + ): Promise { + return kialiData.namespacesData[namespace].istioConfigList; + } + + async getServerConfig(): Promise { + return kialiData.config; + } + + async getNamespaceAppHealth( + namespace: string, + duration: DurationInSeconds, + cluster?: string, + queryTime?: TimeInSeconds, + ): Promise { + const ret: NamespaceAppHealth = {}; + const params: any = { + type: 'app', + rateInterval: `${String(duration)}s`, + queryTime: String(queryTime), + clusterName: cluster, + }; + const data = kialiData.namespacesData[namespace].health[params.type]; + Object.keys(data).forEach(k => { + ret[k] = AppHealth.fromJson(namespace, k, data[k], { + rateInterval: duration, + hasSidecar: true, + hasAmbient: false, + }); + }); + return ret; + } + + async getNamespaceServiceHealth( + namespace: string, + duration: DurationInSeconds, + cluster?: string, + queryTime?: TimeInSeconds, + ): Promise { + const ret: NamespaceServiceHealth = {}; + const params: any = { + type: 'service', + rateInterval: `${String(duration)}s`, + queryTime: String(queryTime), + clusterName: cluster, + }; + const data = kialiData.namespacesData[namespace].health[params.type]; + Object.keys(data).forEach(k => { + ret[k] = ServiceHealth.fromJson(namespace, k, data[k], { + rateInterval: duration, + hasSidecar: true, + hasAmbient: false, + }); + }); + return ret; + } + + async getNamespaceWorkloadHealth( + namespace: string, + duration: DurationInSeconds, + cluster?: string, + queryTime?: TimeInSeconds, + ): Promise { + const ret: NamespaceWorkloadHealth = {}; + const params: any = { + type: 'workload', + rateInterval: `${String(duration)}s`, + queryTime: String(queryTime), + clusterName: cluster, + }; + const data = kialiData.namespacesData[namespace].health[params.type]; + Object.keys(data).forEach(k => { + ret[k] = WorkloadHealth.fromJson(namespace, k, data[k], { + rateInterval: duration, + hasSidecar: true, + hasAmbient: false, + }); + }); + return ret; + } + + async getNamespaceTls( + namespace: string, + cluster?: string, + ): Promise { + const queryParams: any = {}; + if (cluster) { + queryParams.clusterName = cluster; + } + return kialiData.namespacesData[namespace].tls; + } + + async getMeshTls(cluster?: string): Promise { + const queryParams: any = {}; + if (cluster) { + queryParams.clusterName = cluster; + } + return kialiData.meshTls; + } + + async getOutboundTrafficPolicyMode(): Promise { + return kialiData.outboundTrafficPolicy; + } + + async getCanaryUpgradeStatus(): Promise { + return kialiData.meshCanaryStatus; + } + + async getIstiodResourceThresholds(): Promise { + return kialiData.meshIstioResourceThresholds; + } + + async getConfigValidations(cluster?: string): Promise { + const queryParams: any = {}; + if (cluster) { + queryParams.clusterName = cluster; + } + return kialiData.istioValidations; + } + + async getAllIstioConfigs( + namespaces: string[], + objects: string[], + validate: boolean, + labelSelector: string, + workloadSelector: string, + cluster?: string, + ): Promise { + const params: any = + namespaces && namespaces.length > 0 + ? { namespaces: namespaces.join(',') } + : {}; + if (objects && objects.length > 0) { + params.objects = objects.join(','); + } + if (validate) { + params.validate = validate; + } + if (labelSelector) { + params.labelSelector = labelSelector; + } + if (workloadSelector) { + params.workloadSelector = workloadSelector; + } + if (cluster) { + params.clusterName = cluster; + } + return kialiData.istioConfig; + } + + async getNamespaceMetrics( + namespace: string, + params: IstioMetricsOptions, + ): Promise> { + return kialiData.namespacesData[namespace].metrics[params.direction][ + params.duration as number + ]; + } + + async getIstioStatus(cluster?: string): Promise { + const queryParams: any = {}; + if (cluster) { + queryParams.clusterName = cluster; + } + return kialiData.istioStatus; + } + + async getIstioCertsInfo(): Promise { + return kialiData.istioCertsInfo; + } + isDevEnv(): boolean { + return true; + } + + async getPodLogs( + _: string, + __: string, + container?: string, + ___?: number, + ____?: number, + _duration?: DurationInSeconds, + _isProxy?: boolean, + _cluster?: string, + ): Promise { + if (container === 'istio-proxy') { + return kialiData.istioLogs; + } + return kialiData.logs; + } + + setPodEnvoyProxyLogLevel = async ( + _namespace: string, + _name: string, + _level: string, + _cluster?: string, + ): Promise => { + return; + }; + + async getWorkloadSpans( + _: string, + __: string, + ___: TracingQuery, + ____?: string, + ): Promise { + return kialiData.spanLogs; + } + + async getServices( + namespace: string, + _?: ServiceListQuery, + ): Promise { + return kialiData.services[namespace]; + } + + async getIstioConfigDetail( + namespace: string, + objectType: string, + object: string, + _validate: boolean, + _cluster?: string, + ): Promise { + return kialiData.namespacesData[namespace].istioConfigDetails[objectType][ + object + ]; + } + + async getServiceDetail( + namespace: string, + service: string, + _validate: boolean, + _cluster?: string, + rateInterval?: DurationInSeconds, + ): Promise { + const parsedName = service.replace(/-/g, ''); + const info: ServiceDetailsInfo = + kialiData.namespacesData[namespace].services[parsedName]; + + if (info.health) { + // Default rate interval in backend = 600s + info.health = ServiceHealth.fromJson(namespace, service, info.health, { + rateInterval: rateInterval ?? 600, + hasSidecar: info.istioSidecar, + hasAmbient: info.istioAmbient, + }); + } + return info; + } + + getApps = async ( + namespace: string, + _params: AppListQuery, + ): Promise => { + return kialiData.apps[namespace]; + }; + + getApp = async ( + namespace: string, + app: string, + _params: AppQuery, + _cluster?: string, + ): Promise => { + const parsedName = app.replace(/-/g, ''); + return kialiData.namespacesData[namespace].apps[parsedName]; + }; + + getCrippledFeatures = async (): Promise => { + return kialiData.crippledFeatures; + }; + + getWorkloadDashboard = async ( + namespace: string, + _workload: string, + _params: IstioMetricsOptions, + _cluster?: string, + ): Promise => { + return kialiData.namespacesData[namespace].dashboard; + }; + + getServiceDashboard = async ( + namespace: string, + _service: string, + _params: IstioMetricsOptions, + _cluster?: string, + ): Promise => { + return kialiData.namespacesData[namespace].dashboard; + }; + + getAppDashboard = async ( + namespace: string, + _app: string, + _params: IstioMetricsOptions, + _cluster?: string, + ): Promise => { + return kialiData.namespacesData[namespace].dashboard; + }; + + getGrafanaInfo = async (): Promise => { + return kialiData.grafanaInfo; + }; + + getAppSpans = async ( + namespace: string, + _app: string, + _params: TracingQuery, + _cluster?: string, + ): Promise => { + return kialiData.namespacesData[namespace].spans; + }; + + getServiceSpans = async ( + namespace: string, + _service: string, + _params: TracingQuery, + _cluster?: string, + ): Promise => { + return kialiData.namespacesData[namespace].spans; + }; +} + +const getSelected = (route: number) => { + const pathname = window.location.pathname.split('/'); + const paths = ['workloads', 'applications', 'services', 'istio']; + if (pathname && paths.includes(pathname[2])) { + switch (pathname[2]) { + case 'workloads': + return ; + case 'services': + return ; + case 'applications': + return ; + case 'istio': + return ; + default: + return ; + } + } + switch (route) { + case 0: + return ; + case 1: + return ; + case 2: + return ; + case 3: + return ; + case 4: + return ; + default: + return ; + } +}; + +interface Props { + children?: React.ReactNode; + entity?: Entity; + isEntity?: boolean; +} + +export const MockProvider = (props: Props) => { + const [selectedTab, setSelectedTab] = React.useState(0); + const tabs = [ + { label: 'Overview', route: `/kiali#overview` }, + { label: 'Workloads', route: `/kiali#workloads` }, + { label: 'Services', route: `/kiali#services` }, + { label: 'Applications', route: `/kiali#applications` }, + { label: 'Istio Config', route: `/kiali#istio` }, + ]; + + const content = ( + + + {!props.isEntity && ( + <> + + { + setSelectedTab(index); + }} + tabs={tabs.map(({ label }, index) => ({ + id: tabs[index].route, + label, + }))} + /> + + {getSelected(selectedTab)} + + )} + {props.isEntity && {getEntityRoutes()}} + + + ); + + const viewIfEntity = props.isEntity && ( + {content} + ); + + return ( + + {viewIfEntity || content} + + ); +}; diff --git a/plugins/kiali/dev/index.tsx b/plugins/kiali/dev/index.tsx index 70a8ae770b..a0d2e245e4 100644 --- a/plugins/kiali/dev/index.tsx +++ b/plugins/kiali/dev/index.tsx @@ -1,13 +1,7 @@ import React from 'react'; -import { useNavigate } from 'react-router-dom'; -import { Entity } from '@backstage/catalog-model'; -import { - Content, - HeaderTabs, - InfoCard, - Page, -} from '@backstage/core-components'; +import { Content, InfoCard, Page } from '@backstage/core-components'; +import { createRoutableExtension } from '@backstage/core-plugin-api'; import { createDevApp } from '@backstage/dev-utils'; import { EntityProvider } from '@backstage/plugin-catalog-react'; import { TestApiProvider } from '@backstage/test-utils'; @@ -16,518 +10,23 @@ import { Grid } from '@material-ui/core'; import { createDevAppThemes } from '@redhat-developer/red-hat-developer-hub-theme'; import { EntityKialiResourcesCard, kialiPlugin } from '../src'; -import { getEntityRoutes, getRoutes } from '../src/components/Router'; -import { KialiHeader } from '../src/pages/Kiali/Header/KialiHeader'; import { KialiHelper } from '../src/pages/Kiali/KialiHelper'; import { KialiNoAnnotation } from '../src/pages/Kiali/KialiNoAnnotation'; import { KialiNoResources } from '../src/pages/Kiali/KialiNoResources'; import { pluginName } from '../src/plugin'; -import { KialiApi, kialiApiRef } from '../src/services/Api'; -import { - KialiChecker, - KialiProvider, - ValidationCategory, -} from '../src/store/KialiProvider'; -import { App, AppQuery } from '../src/types/App'; -import { AppList, AppListQuery } from '../src/types/AppList'; -import { AuthInfo } from '../src/types/Auth'; -import { CertsInfo } from '../src/types/CertsInfo'; -import { DurationInSeconds, TimeInSeconds } from '../src/types/Common'; -import { DashboardModel } from '../src/types/Dashboards'; -import { GrafanaInfo } from '../src/types/GrafanaInfo'; -import { - AppHealth, - NamespaceAppHealth, - NamespaceServiceHealth, - NamespaceWorkloadHealth, - ServiceHealth, - WorkloadHealth, -} from '../src/types/Health'; -import { IstioConfigDetails } from '../src/types/IstioConfigDetails'; -import { IstioConfigList, IstioConfigsMap } from '../src/types/IstioConfigList'; -import { - CanaryUpgradeStatus, - OutboundTrafficPolicy, - PodLogs, - ValidationStatus, -} from '../src/types/IstioObjects'; -import { - ComponentStatus, - IstiodResourceThresholds, -} from '../src/types/IstioStatus'; -import { IstioMetricsMap } from '../src/types/Metrics'; -import { IstioMetricsOptions } from '../src/types/MetricsOptions'; -import { Namespace } from '../src/types/Namespace'; -import { KialiCrippledFeatures, ServerConfig } from '../src/types/ServerConfig'; -import { ServiceDetailsInfo } from '../src/types/ServiceInfo'; -import { ServiceList, ServiceListQuery } from '../src/types/ServiceList'; -import { StatusState } from '../src/types/StatusState'; -import { TLSStatus } from '../src/types/TLSStatus'; -import { Span, TracingQuery } from '../src/types/Tracing'; -import { - Workload, - WorkloadListItem, - WorkloadNamespaceResponse, - WorkloadOverview, - WorkloadQuery, -} from '../src/types/Workload'; -import { filterNsByAnnotation } from '../src/utils/entityFilter'; -import { kialiData } from './__fixtures__'; +import { rootRouteRef } from '../src/routes'; +import { kialiApiRef } from '../src/services/Api'; +import { KialiChecker, ValidationCategory } from '../src/store/KialiProvider'; import { mockEntity, mockEntityAnnotationNoNamespace } from './mockEntity'; +import { MockKialiClient } from './MockProvider'; -class MockKialiClient implements KialiApi { - private entity?: Entity; - - constructor() { - this.entity = undefined; - } - - setEntity(entity?: Entity): void { - this.entity = entity; - } - - async status(): Promise { - return kialiData.status; - } - - async getAuthInfo(): Promise { - return kialiData.auth; - } - async getStatus(): Promise { - return kialiData.status; - } - - async getNamespaces(): Promise { - return filterNsByAnnotation( - kialiData.namespaces as Namespace[], - this.entity, - ); - } - - async getWorkloads( - namespace: string, - duration: number, - ): Promise { - const nsl = kialiData.workloads as WorkloadNamespaceResponse[]; - // @ts-ignore - return nsl[namespace].workloads.map( - (w: WorkloadOverview): WorkloadListItem => { - return { - name: w.name, - namespace: namespace, - cluster: w.cluster, - type: w.type, - istioSidecar: w.istioSidecar, - istioAmbient: w.istioAmbient, - additionalDetailSample: undefined, - appLabel: w.appLabel, - versionLabel: w.versionLabel, - labels: w.labels, - istioReferences: w.istioReferences, - notCoveredAuthPolicy: w.notCoveredAuthPolicy, - health: WorkloadHealth.fromJson(namespace, w.name, w.health, { - rateInterval: duration, - hasSidecar: w.istioSidecar, - hasAmbient: w.istioAmbient, - }), - }; - }, - ); - } - - async getWorkload( - namespace: string, - name: string, - _: WorkloadQuery, - __?: string, - ): Promise { - const parsedName = name.replace(/-/g, ''); - return kialiData.namespacesData[namespace].workloads[parsedName]; - } - - async getIstioConfig( - namespace: string, - _: string[], - __: boolean, - ___: string, - ____: string, - _____?: string, - ): Promise { - return kialiData.namespacesData[namespace].istioConfigList; - } - - async getServerConfig(): Promise { - return kialiData.config; - } - - async getNamespaceAppHealth( - namespace: string, - duration: DurationInSeconds, - cluster?: string, - queryTime?: TimeInSeconds, - ): Promise { - const ret: NamespaceAppHealth = {}; - const params: any = { - type: 'app', - rateInterval: `${String(duration)}s`, - queryTime: String(queryTime), - clusterName: cluster, - }; - const data = kialiData.namespacesData[namespace].health[params.type]; - Object.keys(data).forEach(k => { - ret[k] = AppHealth.fromJson(namespace, k, data[k], { - rateInterval: duration, - hasSidecar: true, - hasAmbient: false, - }); - }); - return ret; - } - - async getNamespaceServiceHealth( - namespace: string, - duration: DurationInSeconds, - cluster?: string, - queryTime?: TimeInSeconds, - ): Promise { - const ret: NamespaceServiceHealth = {}; - const params: any = { - type: 'service', - rateInterval: `${String(duration)}s`, - queryTime: String(queryTime), - clusterName: cluster, - }; - const data = kialiData.namespacesData[namespace].health[params.type]; - Object.keys(data).forEach(k => { - ret[k] = ServiceHealth.fromJson(namespace, k, data[k], { - rateInterval: duration, - hasSidecar: true, - hasAmbient: false, - }); - }); - return ret; - } - - async getNamespaceWorkloadHealth( - namespace: string, - duration: DurationInSeconds, - cluster?: string, - queryTime?: TimeInSeconds, - ): Promise { - const ret: NamespaceWorkloadHealth = {}; - const params: any = { - type: 'workload', - rateInterval: `${String(duration)}s`, - queryTime: String(queryTime), - clusterName: cluster, - }; - const data = kialiData.namespacesData[namespace].health[params.type]; - Object.keys(data).forEach(k => { - ret[k] = WorkloadHealth.fromJson(namespace, k, data[k], { - rateInterval: duration, - hasSidecar: true, - hasAmbient: false, - }); - }); - return ret; - } - - async getNamespaceTls( - namespace: string, - cluster?: string, - ): Promise { - const queryParams: any = {}; - if (cluster) { - queryParams.clusterName = cluster; - } - return kialiData.namespacesData[namespace].tls; - } - - async getMeshTls(cluster?: string): Promise { - const queryParams: any = {}; - if (cluster) { - queryParams.clusterName = cluster; - } - return kialiData.meshTls; - } - - async getOutboundTrafficPolicyMode(): Promise { - return kialiData.outboundTrafficPolicy; - } - - async getCanaryUpgradeStatus(): Promise { - return kialiData.meshCanaryStatus; - } - - async getIstiodResourceThresholds(): Promise { - return kialiData.meshIstioResourceThresholds; - } - - async getConfigValidations(cluster?: string): Promise { - const queryParams: any = {}; - if (cluster) { - queryParams.clusterName = cluster; - } - return kialiData.istioValidations; - } - - async getAllIstioConfigs( - namespaces: string[], - objects: string[], - validate: boolean, - labelSelector: string, - workloadSelector: string, - cluster?: string, - ): Promise { - const params: any = - namespaces && namespaces.length > 0 - ? { namespaces: namespaces.join(',') } - : {}; - if (objects && objects.length > 0) { - params.objects = objects.join(','); - } - if (validate) { - params.validate = validate; - } - if (labelSelector) { - params.labelSelector = labelSelector; - } - if (workloadSelector) { - params.workloadSelector = workloadSelector; - } - if (cluster) { - params.clusterName = cluster; - } - return kialiData.istioConfig; - } - - async getNamespaceMetrics( - namespace: string, - params: IstioMetricsOptions, - ): Promise> { - return kialiData.namespacesData[namespace].metrics[params.direction][ - params.duration as number - ]; - } - - async getIstioStatus(cluster?: string): Promise { - const queryParams: any = {}; - if (cluster) { - queryParams.clusterName = cluster; - } - return kialiData.istioStatus; - } - - async getIstioCertsInfo(): Promise { - return kialiData.istioCertsInfo; - } - isDevEnv(): boolean { - return true; - } - - async getPodLogs( - _: string, - __: string, - container?: string, - ___?: number, - ____?: number, - _duration?: DurationInSeconds, - _isProxy?: boolean, - _cluster?: string, - ): Promise { - if (container === 'istio-proxy') { - return kialiData.istioLogs; - } - return kialiData.logs; - } - - setPodEnvoyProxyLogLevel = async ( - _namespace: string, - _name: string, - _level: string, - _cluster?: string, - ): Promise => { - return; - }; - - async getWorkloadSpans( - _: string, - __: string, - ___: TracingQuery, - ____?: string, - ): Promise { - return kialiData.spanLogs; - } - - async getServices( - namespace: string, - _?: ServiceListQuery, - ): Promise { - return kialiData.services[namespace]; - } - - async getIstioConfigDetail( - namespace: string, - objectType: string, - object: string, - _validate: boolean, - _cluster?: string, - ): Promise { - return kialiData.namespacesData[namespace].istioConfigDetails[objectType][ - object - ]; - } - - async getServiceDetail( - namespace: string, - service: string, - _validate: boolean, - _cluster?: string, - rateInterval?: DurationInSeconds, - ): Promise { - const parsedName = service.replace(/-/g, ''); - const info: ServiceDetailsInfo = - kialiData.namespacesData[namespace].services[parsedName]; - - if (info.health) { - // Default rate interval in backend = 600s - info.health = ServiceHealth.fromJson(namespace, service, info.health, { - rateInterval: rateInterval ?? 600, - hasSidecar: info.istioSidecar, - hasAmbient: info.istioAmbient, - }); - } - return info; - } - - getApps = async ( - namespace: string, - _params: AppListQuery, - ): Promise => { - return kialiData.apps[namespace]; - }; - - getApp = async ( - namespace: string, - app: string, - _params: AppQuery, - _cluster?: string, - ): Promise => { - const parsedName = app.replace(/-/g, ''); - return kialiData.namespacesData[namespace].apps[parsedName]; - }; - - getCrippledFeatures = async (): Promise => { - return kialiData.crippledFeatures; - }; - - getWorkloadDashboard = async ( - namespace: string, - _workload: string, - _params: IstioMetricsOptions, - _cluster?: string, - ): Promise => { - return kialiData.namespacesData[namespace].dashboard; - }; - - getServiceDashboard = async ( - namespace: string, - _service: string, - _params: IstioMetricsOptions, - _cluster?: string, - ): Promise => { - return kialiData.namespacesData[namespace].dashboard; - }; - - getAppDashboard = async ( - namespace: string, - _app: string, - _params: IstioMetricsOptions, - _cluster?: string, - ): Promise => { - return kialiData.namespacesData[namespace].dashboard; - }; - - getGrafanaInfo = async (): Promise => { - return kialiData.grafanaInfo; - }; - - getAppSpans = async ( - namespace: string, - _app: string, - _params: TracingQuery, - _cluster?: string, - ): Promise => { - return kialiData.namespacesData[namespace].spans; - }; - - getServiceSpans = async ( - namespace: string, - _service: string, - _params: TracingQuery, - _cluster?: string, - ): Promise => { - return kialiData.namespacesData[namespace].spans; - }; -} - -interface Props { - children?: React.ReactNode; - entity?: Entity; - isEntity?: boolean; -} - -export const TabsMock = () => { - const [selectedTab, setSelectedTab] = React.useState(0); - const tabs = [ - { label: 'Overview', route: `${pluginName}/overview` }, - { label: 'Workloads', route: `${pluginName}/workloads` }, - { label: 'Services', route: `${pluginName}/services` }, - { label: 'Applications', route: `${pluginName}/applications` }, - { label: 'Istio Config', route: `${pluginName}/istio` }, - ]; - const navigate = useNavigate(); - return ( - { - navigate(tabs[index].route); - setSelectedTab(index); - }} - tabs={tabs.map(({ label }, index) => ({ - id: index.toString(), - label, - }))} - /> - ); -}; - -const MockProvider = (props: Props) => { - const content = ( - - - {!props.isEntity && ( - <> - - - {getRoutes(true)} - - )} - {props.isEntity && {getEntityRoutes()}} - - - ); - - const viewIfEntity = props.isEntity && ( - {content} - ); - - return ( - - {viewIfEntity || content} - - ); -}; +const KialiMock = kialiPlugin.provide( + createRoutableExtension({ + name: 'KialiPage', + component: () => import('./MockProvider').then(m => m.MockProvider), + mountPoint: rootRouteRef, + }), +); const MockEntityCard = () => { const content = ( @@ -622,9 +121,9 @@ createDevApp() .registerPlugin(kialiPlugin) .addThemes(createDevAppThemes()) .addPage({ - element: , + element: , title: 'KialiPage', - path: `/${pluginName}/overview`, + path: `/${pluginName}`, }) .addPage({ element: , diff --git a/plugins/kiali/package.json b/plugins/kiali/package.json index 4b552ecc19..c1c87345bb 100644 --- a/plugins/kiali/package.json +++ b/plugins/kiali/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-kiali", - "version": "1.18.8", + "version": "1.18.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -76,7 +76,7 @@ "@backstage/core-app-api": "1.12.4", "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@playwright/test": "1.44.1", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.5", diff --git a/plugins/kiali/src/components/DebugInformation/DebugInformation.tsx b/plugins/kiali/src/components/DebugInformation/DebugInformation.tsx deleted file mode 100644 index 815c111aa4..0000000000 --- a/plugins/kiali/src/components/DebugInformation/DebugInformation.tsx +++ /dev/null @@ -1,296 +0,0 @@ -// @ts-nocheck -import * as React from 'react'; -import AceEditor from 'react-ace'; -import { CopyToClipboard } from 'react-copy-to-clipboard'; - -import { - CardTab, - TabbedCard, - Table, - TableColumn, -} from '@backstage/core-components'; - -import { - Button, - Dialog, - DialogActions, - DialogContent, - DialogTitle, -} from '@material-ui/core'; -import { - Alert, - AlertActionCloseButton, - AlertVariant, -} from '@patternfly/react-core'; - -import { serverConfig } from '../../config'; -import { authenticationConfig } from '../../config/AuthenticationConfig'; -import { ComputedServerConfig } from '../../config/ServerConfig'; -import { KialiAppState } from '../../store/Store'; -import { istioAceEditorStyle } from '../../styles/AceEditorStyle'; -import { AuthConfig } from '../../types/Auth'; -import { aceOptions } from '../../types/IstioConfigDetails'; - -const beautify = require('json-beautify'); - -enum CopyStatus { - NOT_COPIED, // We haven't copied the current output - COPIED, // Current output is in the clipboard - OLD_COPY, // We copied the prev output, but there are changes in the KialiAppState -} - -type DebugInformationProps = { - appState: KialiAppState; - showDebug: boolean; - setShowDebug: React.Dispatch>; -}; - -type DebugInformationData = { - backendConfigs: { - authenticationConfig: AuthConfig; - computedServerConfig: ComputedServerConfig; - }; - currentURL: string; - reduxState: KialiAppState; -}; - -const copyToClipboardOptions = { - message: - 'We failed to automatically copy the text, please use: #{key}, Enter\t', -}; - -// Will be shown in Kiali Config and hidden in Additional state -const propsToShow = [ - 'accessibleNamespaces', - 'authStrategy', - 'clusters', - 'gatewayAPIClasses', - 'gatewayAPIEnabled', - 'istioConfigMap', - 'istioIdentityDomain', - 'istioNamespace', - 'istioStatusEnabled', - 'logLevel', - 'istioCanaryRevision', - 'istioAnnotationsAction', - 'istioInjectionAction', -]; - -const propsToPatch = ['cyRef', 'summaryTarget', 'token', 'username']; - -const defaultTab = 'kialiConfig'; - -export const DebugInformation = (props: DebugInformationProps) => { - const aceEditorRef: React.RefObject = React.createRef(); - let kialiConfig: { [key: string]: string } = {}; - - for (const key in serverConfig) { - if (propsToShow.includes(key)) { - // @ts-expect-error - if (typeof serverConfig[key] === 'string') { - // @ts-expect-error - kialiConfig[key] = serverConfig[key]; - } else { - // @ts-expect-error - kialiConfig[key] = JSON.stringify(serverConfig[key]); - } - } - } - - kialiConfig = Object.keys(kialiConfig) - .sort((a, b) => a.localeCompare(b)) - .reduce((obj, key) => { - // @ts-expect-error - obj[key] = kialiConfig[key]; - return obj; - }, {}); - - const [currentTab, setCurrentTab] = React.useState(defaultTab); - const [copyStatus, setCopyStatus] = React.useState( - CopyStatus.NOT_COPIED, - ); - - const close = () => { - props.setShowDebug(false); - }; - - const copyCallback = (_text: string, result: boolean) => { - setCopyStatus(result ? CopyStatus.COPIED : CopyStatus.NOT_COPIED); - }; - - // Properties shown in Kiali Config are not shown again in Additional State - const filterDebugInformation = (info: any) => { - if (info !== null) { - for (const [key] of Object.entries(info)) { - if (propsToShow.includes(key)) { - delete info[key]; - continue; - } - } - } - return info; - }; - - const parseConfig = (key: string, value: any) => { - // We have to patch some runtime properties we don't want to serialize - if (propsToPatch.includes(key)) { - return null; - } - return value; - }; - - const renderDebugInformation = () => { - let debugInformation: DebugInformationData = { - backendConfigs: { - authenticationConfig: authenticationConfig, - computedServerConfig: serverConfig, - }, - currentURL: window.location.href, - reduxState: props.appState, - }; - debugInformation = filterDebugInformation(debugInformation); - return beautify(debugInformation, parseConfig, 2); - }; - - const getCopyText = (): string => { - const text = - currentTab === 'kialiConfig' - ? JSON.stringify(kialiConfig, null, 2) - : renderDebugInformation(); - return text; - }; - - const download = () => { - const element = document.createElement('a'); - const file = new Blob([getCopyText()], { type: 'text/plain' }); - element.href = URL.createObjectURL(file); - element.download = `debug_${ - currentTab === 'kialiConfig' ? 'kiali_config' : 'additional_state' - }.json`; - document.body.appendChild(element); // Required for this to work in FireFox - element.click(); - }; - - const hideAlert = () => { - setCopyStatus(CopyStatus.NOT_COPIED); - }; - - const debugInformation = renderDebugInformation(); - - const columns = (): TableColumn[] => { - return [ - { title: 'Configuration', field: 'configuration' }, - { title: 'Value', field: 'value' }, - ]; - }; - - const getRows = () => { - const conf: Array<{}> = []; - - for (const [k, v] of Object.entries(kialiConfig)) { - if (typeof v !== 'string') { - conf.push({ configuration: k, value: JSON.stringify(v) }); - } else { - conf.push({ configuration: k, value: v }); - } - } - return conf; - }; - - const renderTabs = () => { - const copyClip = ( - - - - ); - - const kialiConfigCard = ( - - {copyClip} - - ); - - const additionalState = ( - - Please include this information when opening a bug: - - - - - ); - // TODO additionalState - const tabsArray: JSX.Element[] = [kialiConfigCard]; - return tabsArray; - }; - - return props.showDebug ? ( - - Debug information - - {copyStatus === CopyStatus.COPIED && ( - } - /> - )} - {copyStatus === CopyStatus.OLD_COPY && ( - } - /> - )} - setCurrentTab(tabName as string)} - > - {renderTabs()} - - - - - - - - - - - ) : null; -}; diff --git a/plugins/kiali/src/pages/AppDetails/AppDetailsPage.tsx b/plugins/kiali/src/pages/AppDetails/AppDetailsPage.tsx index 259facb0d6..bc8b4476aa 100644 --- a/plugins/kiali/src/pages/AppDetails/AppDetailsPage.tsx +++ b/plugins/kiali/src/pages/AppDetails/AppDetailsPage.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { useParams } from 'react-router-dom'; +import { useLocation } from 'react-router-dom'; import { useAsyncFn, useDebounce } from 'react-use'; import { Content, EmptyState } from '@backstage/core-components'; @@ -9,7 +9,10 @@ import { CircularProgress, Tab, Tabs } from '@material-ui/core'; import { AxiosError } from 'axios'; import { HistoryManager } from '../../app/History'; -import { BreadcrumbView } from '../../components/BreadcrumbView/BreadcrumbView'; +import { + BreadcrumbView, + getPath, +} from '../../components/BreadcrumbView/BreadcrumbView'; import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; import * as FilterHelper from '../../components/FilterList/FilterHelper'; import { IstioMetrics } from '../../components/Metrics/IstioMetrics'; @@ -25,7 +28,9 @@ import { MetricsObjectTypes } from '../../types/Metrics'; import { AppInfo } from './AppInfo'; export const AppDetailsPage = (props: { entity?: boolean }) => { - const { namespace, app } = useParams(); + const path = getPath(useLocation()); + const namespace = path.namespace; + const app = path.item; const kialiClient = useApi(kialiApiRef); const kialiState = React.useContext(KialiContext) as KialiAppState; const [appItem, setAppItem] = React.useState(); diff --git a/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigDetailsPage.tsx b/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigDetailsPage.tsx index e9ecfc58a6..52f2ea3337 100644 --- a/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigDetailsPage.tsx +++ b/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigDetailsPage.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import AceEditor from 'react-ace'; -import { useParams } from 'react-router-dom'; +import { useLocation } from 'react-router-dom'; import { Content } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; @@ -8,7 +8,10 @@ import { useApi } from '@backstage/core-plugin-api'; import { Grid } from '@material-ui/core'; import jsYaml from 'js-yaml'; -import { BreadcrumbView } from '../../components/BreadcrumbView/BreadcrumbView'; +import { + BreadcrumbView, + getPath, +} from '../../components/BreadcrumbView/BreadcrumbView'; import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; import { kialiApiRef } from '../../services/Api'; import { KialiAppState, KialiContext } from '../../store'; @@ -32,7 +35,11 @@ import { IstioConfigDetailsOverview } from './IstioConfigDetailsOverview'; export const IstioConfigDetailsPage = (props: { entity?: boolean; }): React.JSX.Element => { - const { namespace, objectType, object } = useParams(); + const path = getPath(useLocation()); + const namespace = path.namespace; + const object = path.item; + const objectType = path.istioType; + const kialiClient = useApi(kialiApiRef); const kialiState = React.useContext(KialiContext) as KialiAppState; const [istioConfig, setIstioConfig] = React.useState(); diff --git a/plugins/kiali/src/pages/Kiali/Header/HelpKiali.tsx b/plugins/kiali/src/pages/Kiali/Header/HelpKiali.tsx index 883fa3f234..28b5c9d3ee 100644 --- a/plugins/kiali/src/pages/Kiali/Header/HelpKiali.tsx +++ b/plugins/kiali/src/pages/Kiali/Header/HelpKiali.tsx @@ -1,48 +1,24 @@ import React from 'react'; -import { Button, Menu, MenuItem } from '@material-ui/core'; +import { Button } from '@material-ui/core'; import { QuestionCircleIcon } from '@patternfly/react-icons'; import { AboutUIModal } from '../../../components/About/AboutUIModal'; -import { DebugInformation } from '../../../components/DebugInformation/DebugInformation'; import { KialiAppState, KialiContext } from '../../../store'; export const HelpKiali = (props: { color?: string }) => { const kialiState = React.useContext(KialiContext) as KialiAppState; - const [anchorEl, setAnchorEl] = React.useState(null); const [showAbout, setShowAbout] = React.useState(false); - const [showDebug, setShowDebug] = React.useState(false); - const open = Boolean(anchorEl); - - const handleClick = (event: React.MouseEvent) => { - setAnchorEl(event.currentTarget); - }; - - const handleClose = () => { - setShowAbout(false); - setAnchorEl(null); - }; const openAbout = () => { setShowAbout(true); - setAnchorEl(null); - }; - - const openDebugInformation = () => { - // Using wrapped component, so we have to get the wrappedInstance - setShowDebug(true); - setAnchorEl(null); }; return ( <> - - - View Debug Info - About - { externalServices={kialiState.statusState.externalServices} warningMessages={kialiState.statusState.warningMessages} /> - ); }; diff --git a/plugins/kiali/src/pages/Kiali/Header/KialiHeader.tsx b/plugins/kiali/src/pages/Kiali/Header/KialiHeader.tsx index 35d5cdb1d6..f06f3f4393 100644 --- a/plugins/kiali/src/pages/Kiali/Header/KialiHeader.tsx +++ b/plugins/kiali/src/pages/Kiali/Header/KialiHeader.tsx @@ -26,8 +26,8 @@ export const KialiHeader = () => { label={homeCluster?.name} /> - - + + {kialiState.authentication.session && (
{ justifyContent: 'space-between', }} > - + User : {kialiState.authentication.session.username || 'anonymous'} diff --git a/plugins/kiali/src/pages/Kiali/Header/KialiTabs.tsx b/plugins/kiali/src/pages/Kiali/Header/KialiTabs.tsx index 9993ae2fd2..a7516d5db9 100644 --- a/plugins/kiali/src/pages/Kiali/Header/KialiTabs.tsx +++ b/plugins/kiali/src/pages/Kiali/Header/KialiTabs.tsx @@ -1,8 +1,7 @@ import React from 'react'; -import { Location, useLocation, useNavigate } from 'react-router-dom'; +import { Location, useLocation } from 'react-router-dom'; import { HeaderTabs } from '@backstage/core-components'; -import { useRouteRef } from '@backstage/core-plugin-api'; import { appsRouteRef, @@ -33,22 +32,21 @@ export const KialiTabs = () => { const path = getPath(loc); const [selectedTab, setSelectedTab] = React.useState(path); const tabs = [ - { label: 'Overview', route: useRouteRef(overviewRouteRef) }, - { label: 'Workloads', route: useRouteRef(workloadsRouteRef) }, - { label: 'Services', route: useRouteRef(servicesRouteRef) }, - { label: 'Applications', route: useRouteRef(appsRouteRef) }, - { label: 'Istio Config', route: useRouteRef(istioConfigRouteRef) }, + { label: 'Overview', route: overviewRouteRef.path }, + { label: 'Workloads', route: workloadsRouteRef.path }, + { label: 'Services', route: servicesRouteRef.path }, + { label: 'Applications', route: appsRouteRef.path }, + { label: 'Istio Config', route: istioConfigRouteRef.path }, ]; - const navigate = useNavigate(); + return ( { - navigate(tabs[index].route()); setSelectedTab(index); }} tabs={tabs.map(({ label }, index) => ({ - id: index.toString(), + id: tabs[index].route, label, }))} /> diff --git a/plugins/kiali/src/pages/Kiali/Header/NamespaceSelector.tsx b/plugins/kiali/src/pages/Kiali/Header/NamespaceSelector.tsx index cf70565d5e..d7df38c588 100644 --- a/plugins/kiali/src/pages/Kiali/Header/NamespaceSelector.tsx +++ b/plugins/kiali/src/pages/Kiali/Header/NamespaceSelector.tsx @@ -56,7 +56,6 @@ export const NamespaceSelector = (props: { page?: boolean }) => { onChange={handleChange} renderValue={selected => (selected as string[]).join(', ')} MenuProps={MenuProps} - style={{ color: props.page ? 'white' : undefined }} > {(kialiState.namespaces.items || []).map(ns => ( diff --git a/plugins/kiali/src/pages/ServiceDetails/ServiceDetailsPage.tsx b/plugins/kiali/src/pages/ServiceDetails/ServiceDetailsPage.tsx index f1c80ea842..f5027ca957 100644 --- a/plugins/kiali/src/pages/ServiceDetails/ServiceDetailsPage.tsx +++ b/plugins/kiali/src/pages/ServiceDetails/ServiceDetailsPage.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { useParams } from 'react-router-dom'; +import { useLocation } from 'react-router-dom'; import { useAsyncFn, useDebounce } from 'react-use'; import { Content, EmptyState } from '@backstage/core-components'; @@ -8,7 +8,10 @@ import { useApi } from '@backstage/core-plugin-api'; import { CircularProgress, Tab, Tabs } from '@material-ui/core'; import { HistoryManager } from '../../app/History'; -import { BreadcrumbView } from '../../components/BreadcrumbView/BreadcrumbView'; +import { + BreadcrumbView, + getPath, +} from '../../components/BreadcrumbView/BreadcrumbView'; import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; import * as FilterHelper from '../../components/FilterList/FilterHelper'; import { IstioMetrics } from '../../components/Metrics/IstioMetrics'; @@ -29,7 +32,9 @@ import { ServiceDetailsInfo } from '../../types/ServiceInfo'; import { ServiceInfo } from './ServiceInfo'; export const ServiceDetailsPage = (props: { entity?: boolean }) => { - const { namespace, service } = useParams(); + const path = getPath(useLocation()); + const namespace = path.namespace; + const service = path.item; const kialiClient = useApi(kialiApiRef); const kialiState = React.useContext(KialiContext) as KialiAppState; const [serviceItem, setServiceItem] = React.useState(); diff --git a/plugins/kiali/src/pages/WorkloadDetails/WorkloadDetailsPage.tsx b/plugins/kiali/src/pages/WorkloadDetails/WorkloadDetailsPage.tsx index 47861511f3..79a65c6a4a 100644 --- a/plugins/kiali/src/pages/WorkloadDetails/WorkloadDetailsPage.tsx +++ b/plugins/kiali/src/pages/WorkloadDetails/WorkloadDetailsPage.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { useParams } from 'react-router-dom'; +import { useLocation } from 'react-router-dom'; import { useAsyncFn, useDebounce } from 'react-use'; import { Content, EmptyState } from '@backstage/core-components'; @@ -7,7 +7,10 @@ import { useApi } from '@backstage/core-plugin-api'; import { CircularProgress, Tab, Tabs } from '@material-ui/core'; -import { BreadcrumbView } from '../../components/BreadcrumbView/BreadcrumbView'; +import { + BreadcrumbView, + getPath, +} from '../../components/BreadcrumbView/BreadcrumbView'; import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; import * as FilterHelper from '../../components/FilterList/FilterHelper'; import { IstioMetrics } from '../../components/Metrics/IstioMetrics'; @@ -24,7 +27,9 @@ import { WorkloadInfo } from './WorkloadInfo'; import { WorkloadPodLogs } from './WorkloadPodLogs'; export const WorkloadDetailsPage = (props: { entity?: boolean }) => { - const { namespace, workload } = useParams(); + const path = getPath(useLocation()); + const namespace = path.namespace; + const workload = path.item; const kialiClient = useApi(kialiApiRef); const kialiState = React.useContext(KialiContext) as KialiAppState; const [workloadItem, setWorkloadItem] = React.useState(); diff --git a/plugins/kiali/src/routes.ts b/plugins/kiali/src/routes.ts index 8131b42caa..298fa8a06a 100644 --- a/plugins/kiali/src/routes.ts +++ b/plugins/kiali/src/routes.ts @@ -10,31 +10,31 @@ export const rootRouteRef = createRouteRef({ /* Kiali Page Routes */ export const overviewRouteRef = createSubRouteRef({ - id: 'kiali/overview', + id: 'overview', path: '/overview', parent: rootRouteRef, }); export const workloadsRouteRef: SubRouteRef = createSubRouteRef({ - id: 'kiali/workloads', + id: 'workloads', path: '/workloads', parent: rootRouteRef, }); export const servicesRouteRef: SubRouteRef = createSubRouteRef({ - id: 'kiali/services', + id: 'services', path: '/services', parent: rootRouteRef, }); export const appsRouteRef: SubRouteRef = createSubRouteRef({ - id: 'kiali/applications', + id: 'applications', path: '/applications', parent: rootRouteRef, }); export const istioConfigRouteRef = createSubRouteRef({ - id: 'kiali/istio', + id: 'istio', parent: rootRouteRef, path: '/istio', }); diff --git a/plugins/kubernetes-actions/CHANGELOG.md b/plugins/kubernetes-actions/CHANGELOG.md index e5da490913..8d72db8e1a 100644 --- a/plugins/kubernetes-actions/CHANGELOG.md +++ b/plugins/kubernetes-actions/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-scaffolder-backend-module-kubernetes [1.4.13](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-kubernetes@1.4.12...@janus-idp/backstage-scaffolder-backend-module-kubernetes@1.4.13) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-scaffolder-backend-module-kubernetes [1.4.12](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-kubernetes@1.4.11...@janus-idp/backstage-scaffolder-backend-module-kubernetes@1.4.12) (2024-06-04) ## @janus-idp/backstage-scaffolder-backend-module-kubernetes [1.4.11](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-kubernetes@1.4.10...@janus-idp/backstage-scaffolder-backend-module-kubernetes@1.4.11) (2024-06-03) diff --git a/plugins/kubernetes-actions/dist-dynamic/package.json b/plugins/kubernetes-actions/dist-dynamic/package.json index 698ea66622..66c2af39e0 100644 --- a/plugins/kubernetes-actions/dist-dynamic/package.json +++ b/plugins/kubernetes-actions/dist-dynamic/package.json @@ -1,7 +1,7 @@ { "name": "@janus-idp/backstage-scaffolder-backend-module-kubernetes-dynamic", "description": "The kubernetes module for @backstage/plugin-scaffolder-backend", - "version": "1.4.11", + "version": "1.4.12", "main": "dist/index.cjs.js", "types": "dist/index.d.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-actions/package.json b/plugins/kubernetes-actions/package.json index ed1c53bb80..7098df6f21 100644 --- a/plugins/kubernetes-actions/package.json +++ b/plugins/kubernetes-actions/package.json @@ -1,7 +1,7 @@ { "name": "@janus-idp/backstage-scaffolder-backend-module-kubernetes", "description": "The kubernetes module for @backstage/plugin-scaffolder-backend", - "version": "1.4.12", + "version": "1.4.13", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -52,7 +52,7 @@ "@backstage/backend-common": "0.21.7", "@backstage/cli": "0.26.4", "@backstage/plugin-scaffolder-node-test-utils": "0.1.3", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "msw": "1.3.3" }, "files": [ diff --git a/plugins/matomo-backend/CHANGELOG.md b/plugins/matomo-backend/CHANGELOG.md index f03e264245..edce7fda09 100644 --- a/plugins/matomo-backend/CHANGELOG.md +++ b/plugins/matomo-backend/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-plugin-matomo-backend [1.4.14](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-matomo-backend@1.4.13...@janus-idp/backstage-plugin-matomo-backend@1.4.14) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-matomo-backend [1.4.13](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-matomo-backend@1.4.12...@janus-idp/backstage-plugin-matomo-backend@1.4.13) (2024-06-04) ## @janus-idp/backstage-plugin-matomo-backend [1.4.12](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-matomo-backend@1.4.11...@janus-idp/backstage-plugin-matomo-backend@1.4.12) (2024-06-04) diff --git a/plugins/matomo-backend/dist-dynamic/package.json b/plugins/matomo-backend/dist-dynamic/package.json index d9324148f2..e362c443b8 100644 --- a/plugins/matomo-backend/dist-dynamic/package.json +++ b/plugins/matomo-backend/dist-dynamic/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-matomo-backend-dynamic", - "version": "1.4.13", + "version": "1.4.14", "main": "dist/index.cjs.js", "types": "dist/index.d.ts", "license": "Apache-2.0", @@ -31,7 +31,6 @@ "express-promise-router": "^4.1.1", "http-proxy-middleware": "^2.0.6", "node-fetch": "^3.3.2", - "winston": "^3.11.0", "yn": "^4.0.0" }, "devDependencies": {}, diff --git a/plugins/matomo-backend/dist-dynamic/yarn.lock b/plugins/matomo-backend/dist-dynamic/yarn.lock index 6a6063fedc..c8c29a0f9f 100644 --- a/plugins/matomo-backend/dist-dynamic/yarn.lock +++ b/plugins/matomo-backend/dist-dynamic/yarn.lock @@ -10,20 +10,6 @@ "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@colors/colors@1.6.0", "@colors/colors@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" - integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== - -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - "@smithy/is-array-buffer@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" @@ -125,11 +111,6 @@ "@types/node" "*" "@types/send" "*" -"@types/triple-beam@^1.3.2": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" - integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== - accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -143,11 +124,6 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -async@^3.2.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== - body-parser@1.20.2: version "1.20.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" @@ -189,47 +165,6 @@ call-bind@^1.0.7: get-intrinsic "^1.2.4" set-function-length "^1.2.1" -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - content-disposition@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" @@ -288,11 +223,6 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -enabled@2.0.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" - integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -371,11 +301,6 @@ express@^4.18.2: utils-merge "1.0.1" vary "~1.1.2" -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.2.0" resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" @@ -404,11 +329,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -fn.name@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" - integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== - follow-redirects@^1.0.0: version "1.15.6" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" @@ -516,7 +436,7 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -inherits@2.0.4, inherits@^2.0.3: +inherits@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -526,11 +446,6 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -558,33 +473,11 @@ is-promise@^4.0.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -kuler@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" - integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== - lodash.flattendeep@^4.0.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== -logform@^2.3.2, logform@^2.4.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" - integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== - dependencies: - "@colors/colors" "1.6.0" - "@types/triple-beam" "^1.3.2" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -630,7 +523,7 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.3, ms@^2.1.1: +ms@2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -666,13 +559,6 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -one-time@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" - integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== - dependencies: - fn.name "1.x.x" - parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -718,30 +604,16 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" -readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== -safe-buffer@5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -803,35 +675,11 @@ side-channel@^1.0.4: get-intrinsic "^1.2.4" object-inspect "^1.13.1" -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -844,11 +692,6 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -triple-beam@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" - integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== - tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -872,11 +715,6 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -892,32 +730,6 @@ web-streams-polyfill@^3.0.3: resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== -winston-transport@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.7.0.tgz#e302e6889e6ccb7f383b926df6936a5b781bd1f0" - integrity sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@^3.11.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" - integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== - dependencies: - "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.7.0" - yn@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yn/-/yn-4.0.0.tgz#611480051ea43b510da1dfdbe177ed159f00a979" diff --git a/plugins/matomo-backend/package.json b/plugins/matomo-backend/package.json index 5d85865484..a3a6a4ba90 100644 --- a/plugins/matomo-backend/package.json +++ b/plugins/matomo-backend/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-matomo-backend", - "version": "1.4.13", + "version": "1.4.14", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -50,12 +50,11 @@ "express-promise-router": "^4.1.1", "http-proxy-middleware": "^2.0.6", "node-fetch": "^3.3.2", - "winston": "^3.11.0", "yn": "^4.0.0" }, "devDependencies": { "@backstage/cli": "0.26.4", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@types/supertest": "2.0.16", "msw": "1.3.3", "supertest": "6.3.3" diff --git a/plugins/matomo-backend/src/service/standaloneServer.ts b/plugins/matomo-backend/src/service/standaloneServer.ts index d25b88af96..693d9e6a93 100644 --- a/plugins/matomo-backend/src/service/standaloneServer.ts +++ b/plugins/matomo-backend/src/service/standaloneServer.ts @@ -2,8 +2,7 @@ import { createServiceBuilder, loadBackendConfig, } from '@backstage/backend-common'; - -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { Server } from 'http'; @@ -12,7 +11,7 @@ import { createRouter } from './router'; export interface ServerOptions { port: number; enableCors: boolean; - logger: Logger; + logger: LoggerService; } export async function startStandaloneServer( diff --git a/plugins/matomo/CHANGELOG.md b/plugins/matomo/CHANGELOG.md index 8069ad52dc..11ad8446ce 100644 --- a/plugins/matomo/CHANGELOG.md +++ b/plugins/matomo/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-plugin-matomo [1.4.10](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-matomo@1.4.9...@janus-idp/backstage-plugin-matomo@1.4.10) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-matomo [1.4.9](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-matomo@1.4.8...@janus-idp/backstage-plugin-matomo@1.4.9) (2024-06-04) ## @janus-idp/backstage-plugin-matomo [1.4.8](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-matomo@1.4.7...@janus-idp/backstage-plugin-matomo@1.4.8) (2024-06-04) diff --git a/plugins/matomo/package.json b/plugins/matomo/package.json index d2f6717744..8926dfd094 100644 --- a/plugins/matomo/package.json +++ b/plugins/matomo/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-matomo", - "version": "1.4.9", + "version": "1.4.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -50,7 +50,7 @@ "@backstage/core-app-api": "1.12.4", "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.2", "@testing-library/react": "14.2.1", diff --git a/plugins/nexus-repository-manager/CHANGELOG.md b/plugins/nexus-repository-manager/CHANGELOG.md index 1342044b39..1d38815b63 100644 --- a/plugins/nexus-repository-manager/CHANGELOG.md +++ b/plugins/nexus-repository-manager/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-plugin-nexus-repository-manager [1.6.10](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-nexus-repository-manager@1.6.9...@janus-idp/backstage-plugin-nexus-repository-manager@1.6.10) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-nexus-repository-manager [1.6.9](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-nexus-repository-manager@1.6.8...@janus-idp/backstage-plugin-nexus-repository-manager@1.6.9) (2024-06-04) diff --git a/plugins/nexus-repository-manager/package.json b/plugins/nexus-repository-manager/package.json index 1ab17ffff8..84fbc51821 100644 --- a/plugins/nexus-repository-manager/package.json +++ b/plugins/nexus-repository-manager/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-nexus-repository-manager", - "version": "1.6.9", + "version": "1.6.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -49,7 +49,7 @@ "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", "@hey-api/openapi-ts": "0.34.5", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "14.3.1", diff --git a/plugins/notifications-backend/CHANGELOG.md b/plugins/notifications-backend/CHANGELOG.md index d2569ab971..03d8438ace 100644 --- a/plugins/notifications-backend/CHANGELOG.md +++ b/plugins/notifications-backend/CHANGELOG.md @@ -1,3 +1,13 @@ +## @janus-idp/plugin-notifications-backend [1.4.19](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/plugin-notifications-backend@1.4.18...@janus-idp/plugin-notifications-backend@1.4.19) (2024-06-07) + +## @janus-idp/plugin-notifications-backend [1.4.18](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/plugin-notifications-backend@1.4.17...@janus-idp/plugin-notifications-backend@1.4.18) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/plugin-notifications-backend [1.4.17](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/plugin-notifications-backend@1.4.16...@janus-idp/plugin-notifications-backend@1.4.17) (2024-06-04) ## @janus-idp/plugin-notifications-backend [1.4.16](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/plugin-notifications-backend@1.4.15...@janus-idp/plugin-notifications-backend@1.4.16) (2024-06-03) diff --git a/plugins/notifications-backend/dist-dynamic/package.json b/plugins/notifications-backend/dist-dynamic/package.json index 8521a80114..302b419373 100644 --- a/plugins/notifications-backend/dist-dynamic/package.json +++ b/plugins/notifications-backend/dist-dynamic/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/plugin-notifications-backend-dynamic", - "version": "1.4.17", + "version": "1.4.19", "main": "dist/index.cjs.js", "types": "dist/index.d.ts", "license": "Apache-2.0", diff --git a/plugins/notifications-backend/package.json b/plugins/notifications-backend/package.json index 9c51e63dcc..9ae1c69b62 100644 --- a/plugins/notifications-backend/package.json +++ b/plugins/notifications-backend/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/plugin-notifications-backend", - "version": "1.4.17", + "version": "1.4.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -68,13 +68,13 @@ "@backstage/backend-test-utils": "0.3.7", "@backstage/catalog-model": "1.4.5", "@backstage/cli": "0.26.4", - "@types/express": "4.17.20", + "@types/express": "4.17.21", "@types/supertest": "2.0.16", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "js-yaml-cli": "0.6.0", "knex-mock-client": "2.0.1", - "msw": "1.3.2", - "openapicmd": "2.1.0", + "msw": "1.3.3", + "openapicmd": "2.3.1", "supertest": "6.3.3" }, "files": [ diff --git a/plugins/notifications-backend/src/plugin.ts b/plugins/notifications-backend/src/plugin.ts index f69814030b..fb4fa84a40 100644 --- a/plugins/notifications-backend/src/plugin.ts +++ b/plugins/notifications-backend/src/plugin.ts @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { loggerToWinstonLogger } from '@backstage/backend-common'; import { coreServices, createBackendPlugin, @@ -49,9 +48,8 @@ export const notificationBackendPlugin = createBackendPlugin({ identity, tokenManager, }) { - const winstonLogger = loggerToWinstonLogger(logger); const router = await createRouter({ - logger: winstonLogger, + logger, config, database, discovery, diff --git a/plugins/notifications/CHANGELOG.md b/plugins/notifications/CHANGELOG.md index 7566532205..66e7c342d4 100644 --- a/plugins/notifications/CHANGELOG.md +++ b/plugins/notifications/CHANGELOG.md @@ -1,3 +1,13 @@ +## @janus-idp/plugin-notifications [1.3.8](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/plugin-notifications@1.3.7...@janus-idp/plugin-notifications@1.3.8) (2024-06-07) + +## @janus-idp/plugin-notifications [1.3.7](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/plugin-notifications@1.3.6...@janus-idp/plugin-notifications@1.3.7) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/plugin-notifications [1.3.6](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/plugin-notifications@1.3.5...@janus-idp/plugin-notifications@1.3.6) (2024-06-04) ## @janus-idp/plugin-notifications [1.3.5](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/plugin-notifications@1.3.4...@janus-idp/plugin-notifications@1.3.5) (2024-06-03) diff --git a/plugins/notifications/package.json b/plugins/notifications/package.json index a548a31495..66b6c1ba56 100644 --- a/plugins/notifications/package.json +++ b/plugins/notifications/package.json @@ -1,7 +1,7 @@ { "name": "@janus-idp/plugin-notifications", "description": "Frontend part of the notifications providing the Notifications API, Notifications page, left-side menu item and other REACT components.", - "version": "1.3.6", + "version": "1.3.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -48,14 +48,14 @@ "@backstage/core-app-api": "1.12.4", "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", - "@janus-idp/cli": "1.9.0", - "@openapitools/openapi-generator-cli": "2.7.0", + "@janus-idp/cli": "1.10.0", + "@openapitools/openapi-generator-cli": "2.13.4", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.2", "@testing-library/react": "14.2.1", "@testing-library/user-event": "14.5.1", - "@types/node": "20.8.7", - "msw": "1.3.2" + "@types/node": "20.14.2", + "msw": "1.3.3" }, "scalprum": { "name": "janus-idp.backstage-plugin-notifications", diff --git a/plugins/ocm-backend/CHANGELOG.md b/plugins/ocm-backend/CHANGELOG.md index a4168d62cf..1fd8147c1f 100644 --- a/plugins/ocm-backend/CHANGELOG.md +++ b/plugins/ocm-backend/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-plugin-ocm-backend [4.0.8](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-ocm-backend@4.0.7...@janus-idp/backstage-plugin-ocm-backend@4.0.8) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-ocm-backend [4.0.7](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-ocm-backend@4.0.6...@janus-idp/backstage-plugin-ocm-backend@4.0.7) (2024-06-04) diff --git a/plugins/ocm-backend/dev/index.ts b/plugins/ocm-backend/dev/index.ts index 2a0de9cb2f..c6bfcedd27 100644 --- a/plugins/ocm-backend/dev/index.ts +++ b/plugins/ocm-backend/dev/index.ts @@ -8,6 +8,7 @@ import { UrlReaders, useHotMemoize, } from '@backstage/backend-common'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { TaskScheduler } from '@backstage/backend-tasks'; import { Config, ConfigReader } from '@backstage/config'; import { DefaultIdentityClient } from '@backstage/plugin-auth-node'; @@ -15,7 +16,6 @@ import { CatalogBuilder } from '@backstage/plugin-catalog-backend'; import { ServerPermissionClient } from '@backstage/plugin-permission-node'; import { Router } from 'express'; -import { Logger } from 'winston'; import { Server } from 'http'; @@ -25,7 +25,7 @@ import { PluginEnvironment } from './types'; export interface ServerOptions { port: number; - logger: Logger; + logger: LoggerService; } function makeCreateEnv(config: Config) { diff --git a/plugins/ocm-backend/dev/types.ts b/plugins/ocm-backend/dev/types.ts index a2c43b45de..337ff15c9c 100644 --- a/plugins/ocm-backend/dev/types.ts +++ b/plugins/ocm-backend/dev/types.ts @@ -5,15 +5,14 @@ import { TokenManager, UrlReader, } from '@backstage/backend-common'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { Config } from '@backstage/config'; import { IdentityApi } from '@backstage/plugin-auth-node'; import { PermissionEvaluator } from '@backstage/plugin-permission-common'; -import { Logger } from 'winston'; - export type PluginEnvironment = { - logger: Logger; + logger: LoggerService; database: PluginDatabaseManager; cache: PluginCacheManager; config: Config; diff --git a/plugins/ocm-backend/dist-dynamic/package.json b/plugins/ocm-backend/dist-dynamic/package.json index ab0f25fee2..553b05a119 100644 --- a/plugins/ocm-backend/dist-dynamic/package.json +++ b/plugins/ocm-backend/dist-dynamic/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-ocm-backend-dynamic", - "version": "4.0.7", + "version": "4.0.8", "main": "dist/index.cjs.js", "types": "dist/index.d.ts", "license": "Apache-2.0", @@ -31,7 +31,6 @@ "express": "^4.18.2", "express-promise-router": "^4.1.1", "semver": "^7.5.4", - "winston": "^3.11.0", "kubernetes-models": "^4.3.1", "lodash": "^4.17.21", "luxon": "^3.0.0" diff --git a/plugins/ocm-backend/dist-dynamic/yarn.lock b/plugins/ocm-backend/dist-dynamic/yarn.lock index f50f46bc8b..67b2cdb64e 100644 --- a/plugins/ocm-backend/dist-dynamic/yarn.lock +++ b/plugins/ocm-backend/dist-dynamic/yarn.lock @@ -10,20 +10,6 @@ "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@colors/colors@1.6.0", "@colors/colors@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" - integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== - -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - "@kubernetes-models/apimachinery@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@kubernetes-models/apimachinery/-/apimachinery-1.2.1.tgz#39725bf5e1f50972475ee6e614d5d70e41876b13" @@ -121,11 +107,6 @@ resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== -"@types/triple-beam@^1.3.2": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" - integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== - "@types/ws@^8.5.3": version "8.5.10" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" @@ -200,11 +181,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== -async@^3.2.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -276,47 +252,6 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -412,11 +347,6 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -enabled@2.0.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" - integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -515,11 +445,6 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - finalhandler@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" @@ -533,11 +458,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -fn.name@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" - integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== - forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -672,7 +592,7 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -inherits@2.0.4, inherits@^2.0.3: +inherits@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -682,11 +602,6 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -697,11 +612,6 @@ is-promise@^4.0.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -779,11 +689,6 @@ kubernetes-models@^4.3.1: "@kubernetes-models/validate" "^3.1.1" tslib "^2.4.0" -kuler@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" - integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== - lodash.flattendeep@^4.0.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" @@ -794,18 +699,6 @@ lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -logform@^2.3.2, logform@^2.4.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" - integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== - dependencies: - "@colors/colors" "1.6.0" - "@types/triple-beam" "^1.3.2" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -885,7 +778,7 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.3, ms@^2.1.1: +ms@2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -932,13 +825,6 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -one-time@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" - integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== - dependencies: - fn.name "1.x.x" - openid-client@^5.3.0: version "5.6.5" resolved "https://registry.yarnpkg.com/openid-client/-/openid-client-5.6.5.tgz#c149ad07b9c399476dc347097e297bbe288b8b00" @@ -1022,15 +908,6 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" -readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - request@^2.88.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" @@ -1072,16 +949,11 @@ rfc4648@^1.3.0: resolved "https://registry.yarnpkg.com/rfc4648/-/rfc4648-1.5.3.tgz#e62b81736c10361ca614efe618a566e93d0b41c0" integrity sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ== -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.2: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -1155,13 +1027,6 @@ side-channel@^1.0.4: get-intrinsic "^1.2.4" object-inspect "^1.13.1" -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - smtp-address-parser@^1.0.3: version "1.0.10" resolved "https://registry.yarnpkg.com/smtp-address-parser/-/smtp-address-parser-1.0.10.tgz#9fc4ed6021f13dc3d8f591e0ad0d50454073025e" @@ -1184,11 +1049,6 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -1199,13 +1059,6 @@ stream-buffers@^3.0.2: resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-3.0.2.tgz#5249005a8d5c2d00b3a32e6e0a6ea209dc4f3521" integrity sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ== -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - tar@^6.1.11: version "6.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" @@ -1218,11 +1071,6 @@ tar@^6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - toidentifier@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" @@ -1236,11 +1084,6 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -triple-beam@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" - integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== - tslib@^2.4.0, tslib@^2.4.1, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -1283,11 +1126,6 @@ uri-js@^4.2.2, uri-js@^4.4.1: dependencies: punycode "^2.1.0" -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -1312,32 +1150,6 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -winston-transport@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.7.0.tgz#e302e6889e6ccb7f383b926df6936a5b781bd1f0" - integrity sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@^3.11.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" - integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== - dependencies: - "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.7.0" - ws@^8.11.0: version "8.17.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" diff --git a/plugins/ocm-backend/package.json b/plugins/ocm-backend/package.json index eac42dcfe0..6fc7241fcb 100644 --- a/plugins/ocm-backend/package.json +++ b/plugins/ocm-backend/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-ocm-backend", - "version": "4.0.7", + "version": "4.0.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -58,12 +58,11 @@ "@kubernetes/client-node": "^0.20.0", "express": "^4.18.2", "express-promise-router": "^4.1.1", - "semver": "^7.5.4", - "winston": "^3.11.0" + "semver": "^7.5.4" }, "devDependencies": { "@backstage/cli": "0.26.4", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@backstage/plugin-auth-node": "0.4.12", "@backstage/plugin-catalog-backend": "1.21.1", "@backstage/plugin-permission-common": "0.7.13", diff --git a/plugins/ocm-backend/src/helpers/kubernetes.test.ts b/plugins/ocm-backend/src/helpers/kubernetes.test.ts index 49552883a3..2b5528be3e 100644 --- a/plugins/ocm-backend/src/helpers/kubernetes.test.ts +++ b/plugins/ocm-backend/src/helpers/kubernetes.test.ts @@ -1,7 +1,7 @@ +import { getVoidLogger } from '@backstage/backend-common'; + import { CustomObjectsApi, KubeConfig } from '@kubernetes/client-node'; import { setupServer } from 'msw/node'; -import { createLogger } from 'winston'; -import transports from 'winston/lib/winston/transports'; import { handlers } from '../../__fixtures__/handlers'; import { OcmConfig } from '../types'; @@ -20,9 +20,7 @@ afterEach(() => server.restoreHandlers()); afterAll(() => server.close()); const FIXTURES_DIR = `${__dirname}/../../__fixtures__`; -const logger = createLogger({ - transports: [new transports.Console({ silent: true })], -}); +const logger = getVoidLogger(); describe('hubApiClient', () => { it('should use the default config if there is no service account token configured', () => { diff --git a/plugins/ocm-backend/src/helpers/kubernetes.ts b/plugins/ocm-backend/src/helpers/kubernetes.ts index 2493e4fd59..3452a7916b 100644 --- a/plugins/ocm-backend/src/helpers/kubernetes.ts +++ b/plugins/ocm-backend/src/helpers/kubernetes.ts @@ -1,9 +1,10 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; + import { CustomObjectsApi, KubeConfig, KubernetesListObject, } from '@kubernetes/client-node'; -import { Logger } from 'winston'; import http from 'http'; @@ -11,7 +12,7 @@ import { ManagedCluster, ManagedClusterInfo, OcmConfig } from '../types'; export const hubApiClient = ( clusterConfig: OcmConfig, - logger: Logger, + logger: LoggerService, ): CustomObjectsApi => { const kubeConfig = new KubeConfig(); diff --git a/plugins/ocm-backend/src/providers/ManagedClusterProvider.ts b/plugins/ocm-backend/src/providers/ManagedClusterProvider.ts index e608beb4bc..83429bf02c 100644 --- a/plugins/ocm-backend/src/providers/ManagedClusterProvider.ts +++ b/plugins/ocm-backend/src/providers/ManagedClusterProvider.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import { LoggerService } from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskRunner } from '@backstage/backend-tasks'; import { ANNOTATION_LOCATION, @@ -28,7 +29,6 @@ import { import { ANNOTATION_KUBERNETES_API_SERVER } from '@backstage/plugin-kubernetes-common'; import { CustomObjectsApi } from '@kubernetes/client-node'; -import * as winston from 'winston'; import { ANNOTATION_CLUSTER_ID, @@ -52,7 +52,7 @@ export class ManagedClusterProvider implements EntityProvider { protected readonly hubResourceName: string; protected readonly id: string; protected readonly owner: string; - protected readonly logger: winston.Logger; + protected readonly logger: LoggerService; private readonly scheduleFn: () => Promise; protected connection?: EntityProviderConnection; @@ -60,7 +60,7 @@ export class ManagedClusterProvider implements EntityProvider { client: CustomObjectsApi, hubResourceName: string, id: string, - options: { logger: winston.Logger }, + options: { logger: LoggerService }, owner: string, taskRunner: TaskRunner, ) { @@ -75,7 +75,7 @@ export class ManagedClusterProvider implements EntityProvider { static fromConfig( config: Config, options: { - logger: winston.Logger; + logger: LoggerService; schedule?: TaskRunner; scheduler?: PluginTaskScheduler; }, diff --git a/plugins/ocm-backend/src/providers/module.ts b/plugins/ocm-backend/src/providers/module.ts index 24472af109..3c33a922d2 100644 --- a/plugins/ocm-backend/src/providers/module.ts +++ b/plugins/ocm-backend/src/providers/module.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import { loggerToWinstonLogger } from '@backstage/backend-common'; import { coreServices, createBackendModule, @@ -37,7 +36,7 @@ export const catalogModuleOCMEntityProvider = createBackendModule({ async init({ catalog, config, logger, scheduler }) { catalog.addEntityProvider( ManagedClusterProvider.fromConfig(config, { - logger: loggerToWinstonLogger(logger), + logger, schedule: scheduler.createScheduledTaskRunner({ frequency: { hours: 1 }, timeout: { minutes: 15 }, diff --git a/plugins/ocm-backend/src/service/router.test.ts b/plugins/ocm-backend/src/service/router.test.ts index aeb1ad6234..da9a667337 100644 --- a/plugins/ocm-backend/src/service/router.test.ts +++ b/plugins/ocm-backend/src/service/router.test.ts @@ -1,10 +1,10 @@ +import { getVoidLogger } from '@backstage/backend-common'; import { ConfigReader } from '@backstage/config'; import { AuthorizeResult } from '@backstage/plugin-permission-common'; import express from 'express'; import { setupServer } from 'msw/node'; import request from 'supertest'; -import { createLogger, transports } from 'winston'; import { handlers } from '../../__fixtures__/handlers'; import { createRouter } from './router'; @@ -23,9 +23,7 @@ beforeAll(() => afterEach(() => server.restoreHandlers()); afterAll(() => server.close()); -const logger = createLogger({ - transports: [new transports.Console({ silent: true })], -}); +const logger = getVoidLogger(); const mockedAuthorize = jest.fn().mockImplementation(async () => [ { @@ -55,7 +53,7 @@ describe('createRouter', () => { beforeAll(async () => { jest.clearAllMocks(); const router = await createRouter({ - logger: logger, + logger, config: new ConfigReader({ catalog: { providers: { diff --git a/plugins/ocm-backend/src/service/router.ts b/plugins/ocm-backend/src/service/router.ts index b8f67edc28..ec8b30ba40 100644 --- a/plugins/ocm-backend/src/service/router.ts +++ b/plugins/ocm-backend/src/service/router.ts @@ -17,13 +17,13 @@ import { createLegacyAuthAdapters, errorHandler, - loggerToWinstonLogger, PluginEndpointDiscovery, } from '@backstage/backend-common'; import { coreServices, createBackendPlugin, HttpAuthService, + LoggerService, PermissionsService, } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; @@ -37,7 +37,6 @@ import { createPermissionIntegrationRouter } from '@backstage/plugin-permission- import express from 'express'; import Router from 'express-promise-router'; import { Request } from 'express-serve-static-core'; -import { Logger } from 'winston'; import { Cluster, @@ -67,7 +66,7 @@ import { import { ManagedClusterInfo } from '../types'; export interface RouterOptions { - logger: Logger; + logger: LoggerService; config: Config; discovery: PluginEndpointDiscovery; permissions: PermissionsService; @@ -76,7 +75,7 @@ export interface RouterOptions { const buildRouter = ( config: Config, - logger: Logger, + logger: LoggerService, httpAuth: HttpAuthService, permissions: PermissionsService, ) => { @@ -214,14 +213,7 @@ export const ocmPlugin = createBackendPlugin({ permissions: coreServices.permissions, }, async init({ config, logger, http, httpAuth, permissions }) { - http.use( - buildRouter( - config, - loggerToWinstonLogger(logger), - httpAuth, - permissions, - ), - ); + http.use(buildRouter(config, logger, httpAuth, permissions)); }, }); }, diff --git a/plugins/ocm/CHANGELOG.md b/plugins/ocm/CHANGELOG.md index ce36760176..f45808d83f 100644 --- a/plugins/ocm/CHANGELOG.md +++ b/plugins/ocm/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-plugin-ocm [4.1.8](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-ocm@4.1.7...@janus-idp/backstage-plugin-ocm@4.1.8) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-ocm [4.1.7](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-ocm@4.1.6...@janus-idp/backstage-plugin-ocm@4.1.7) (2024-06-04) diff --git a/plugins/ocm/package.json b/plugins/ocm/package.json index 1ee21aea33..109f9fed3e 100644 --- a/plugins/ocm/package.json +++ b/plugins/ocm/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-ocm", - "version": "4.1.7", + "version": "4.1.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -54,7 +54,7 @@ "@backstage/dev-utils": "1.0.31", "@backstage/plugin-catalog": "1.19.0", "@backstage/test-utils": "1.5.4", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "14.3.1", diff --git a/plugins/openshift-image-registry/CHANGELOG.md b/plugins/openshift-image-registry/CHANGELOG.md index 66ece30c0f..42ceb5ea61 100644 --- a/plugins/openshift-image-registry/CHANGELOG.md +++ b/plugins/openshift-image-registry/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-plugin-openshift-image-registry [1.5.11](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-openshift-image-registry@1.5.10...@janus-idp/backstage-plugin-openshift-image-registry@1.5.11) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-openshift-image-registry [1.5.10](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-openshift-image-registry@1.5.9...@janus-idp/backstage-plugin-openshift-image-registry@1.5.10) (2024-06-04) diff --git a/plugins/openshift-image-registry/package.json b/plugins/openshift-image-registry/package.json index d6000c9e43..0f7f076784 100644 --- a/plugins/openshift-image-registry/package.json +++ b/plugins/openshift-image-registry/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-openshift-image-registry", - "version": "1.5.10", + "version": "1.5.11", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -44,7 +44,7 @@ "@backstage/core-app-api": "1.12.4", "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "14.3.1", diff --git a/plugins/orchestrator-backend/CHANGELOG.md b/plugins/orchestrator-backend/CHANGELOG.md index 0531e69dc9..9e248b7f86 100644 --- a/plugins/orchestrator-backend/CHANGELOG.md +++ b/plugins/orchestrator-backend/CHANGELOG.md @@ -1,3 +1,18 @@ +## @janus-idp/backstage-plugin-orchestrator-backend [1.9.7](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-orchestrator-backend@1.9.6...@janus-idp/backstage-plugin-orchestrator-backend@1.9.7) (2024-06-11) + + +### Bug Fixes + +* **orchestrator:** fix error handling in case data index failed to start ([#1804](https://github.com/janus-idp/backstage-plugins/issues/1804)) ([27affb7](https://github.com/janus-idp/backstage-plugins/commit/27affb7815e02127721fd854f7903dca3525dede)) + +## @janus-idp/backstage-plugin-orchestrator-backend [1.9.6](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-orchestrator-backend@1.9.5...@janus-idp/backstage-plugin-orchestrator-backend@1.9.6) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-orchestrator-backend [1.9.5](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-orchestrator-backend@1.9.4...@janus-idp/backstage-plugin-orchestrator-backend@1.9.5) (2024-06-04) diff --git a/plugins/orchestrator-backend/dev/index.ts b/plugins/orchestrator-backend/dev/index.ts index fafe9590ec..55c5099d67 100644 --- a/plugins/orchestrator-backend/dev/index.ts +++ b/plugins/orchestrator-backend/dev/index.ts @@ -3,14 +3,12 @@ import { ServerTokenManager, UrlReader, } from '@backstage/backend-common'; -import { DiscoveryService } from '@backstage/backend-plugin-api'; +import { DiscoveryService, LoggerService } from '@backstage/backend-plugin-api'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import { ServerPermissionClient } from '@backstage/plugin-permission-node'; -import { Logger } from 'winston'; - import { Server } from 'http'; import { createRouter } from '../src/routerWrapper'; @@ -18,7 +16,7 @@ import { createRouter } from '../src/routerWrapper'; export interface ServerOptions { port: number; enableCors: boolean; - logger: Logger; + logger: LoggerService; config: Config; discovery: DiscoveryService; catalogApi: CatalogApi; @@ -38,7 +36,7 @@ export async function startStandaloneServer( }); const router = await createRouter({ - logger: logger, + logger, config: options.config, discovery: options.discovery, catalogApi: options.catalogApi, diff --git a/plugins/orchestrator-backend/dist-dynamic/package.json b/plugins/orchestrator-backend/dist-dynamic/package.json index d710e9adfe..2fb1ba9dbe 100644 --- a/plugins/orchestrator-backend/dist-dynamic/package.json +++ b/plugins/orchestrator-backend/dist-dynamic/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-orchestrator-backend-dynamic", - "version": "1.9.5", + "version": "1.9.7", "license": "Apache-2.0", "main": "dist/index.cjs.js", "types": "dist/index.d.ts", @@ -56,7 +56,6 @@ "json-schema": "^0.4.0", "moment": "^2.29.4", "openapi-backend": "^5.10.5", - "winston": "^3.11.0", "yn": "^5.0.0", "@severlessworkflow/sdk-typescript": "^3.0.3", "js-yaml": "^4.1.0" diff --git a/plugins/orchestrator-backend/dist-dynamic/yarn.lock b/plugins/orchestrator-backend/dist-dynamic/yarn.lock index 5c75ab8069..c9c24d51c5 100644 --- a/plugins/orchestrator-backend/dist-dynamic/yarn.lock +++ b/plugins/orchestrator-backend/dist-dynamic/yarn.lock @@ -24,20 +24,6 @@ "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@colors/colors@1.6.0", "@colors/colors@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" - integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== - -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - "@jsdevtools/ono@^7.1.3": version "7.1.3" resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" @@ -71,11 +57,6 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/triple-beam@^1.3.2": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" - integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== - "@urql/core@^4.1.4": version "4.3.0" resolved "https://registry.yarnpkg.com/@urql/core/-/core-4.3.0.tgz#5e150412ed08d167861b05ceed417abbd048553f" @@ -119,11 +100,6 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -async@^3.2.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== - available-typed-arrays@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" @@ -187,47 +163,6 @@ cloudevents@^8.0.0: util "^0.12.4" uuid "^8.3.2" -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - content-disposition@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" @@ -291,11 +226,6 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -enabled@2.0.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" - integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -374,11 +304,6 @@ fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - finalhandler@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" @@ -392,11 +317,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -fn.name@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" - integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== - for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -518,11 +438,6 @@ is-arguments@^1.0.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-callable@^1.1.3: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" @@ -540,11 +455,6 @@ is-promise@^4.0.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - is-typed-array@^1.1.3: version "1.1.13" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" @@ -585,11 +495,6 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -kuler@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" - integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== - lodash.flattendeep@^4.0.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" @@ -605,18 +510,6 @@ lodash@^4.17.15, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -logform@^2.3.2, logform@^2.4.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" - integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== - dependencies: - "@colors/colors" "1.6.0" - "@types/triple-beam" "^1.3.2" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -666,7 +559,7 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.3, ms@^2.1.1: +ms@2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -688,13 +581,6 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -one-time@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" - integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== - dependencies: - fn.name "1.x.x" - openapi-backend@^5.10.5: version "5.10.6" resolved "https://registry.yarnpkg.com/openapi-backend/-/openapi-backend-5.10.6.tgz#e719be85d006a1379900d0ff5c8f60baecb5de21" @@ -788,30 +674,16 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" -readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -safe-buffer@5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -873,45 +745,16 @@ side-channel@^1.0.4, side-channel@^1.0.6: get-intrinsic "^1.2.4" object-inspect "^1.13.1" -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - toidentifier@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -triple-beam@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" - integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== - tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -942,11 +785,6 @@ uri-js@^4.4.1: dependencies: punycode "^2.1.0" -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - util@^0.12.4: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" @@ -984,32 +822,6 @@ which-typed-array@^1.1.14, which-typed-array@^1.1.2: gopd "^1.0.1" has-tostringtag "^1.0.2" -winston-transport@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.7.0.tgz#e302e6889e6ccb7f383b926df6936a5b781bd1f0" - integrity sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@^3.11.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" - integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== - dependencies: - "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.7.0" - wonka@^6.3.2: version "6.3.4" resolved "https://registry.yarnpkg.com/wonka/-/wonka-6.3.4.tgz#76eb9316e3d67d7febf4945202b5bdb2db534594" diff --git a/plugins/orchestrator-backend/package.json b/plugins/orchestrator-backend/package.json index 1e554c599e..e8293b8b12 100644 --- a/plugins/orchestrator-backend/package.json +++ b/plugins/orchestrator-backend/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-orchestrator-backend", - "version": "1.9.5", + "version": "1.9.7", "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", @@ -93,13 +93,12 @@ "json-schema": "^0.4.0", "moment": "^2.29.4", "openapi-backend": "^5.10.5", - "winston": "^3.11.0", "yn": "^5.0.0" }, "devDependencies": { "@backstage/backend-test-utils": "0.3.7", "@backstage/cli": "0.26.4", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@types/express": "4.17.21", "@types/fs-extra": "11.0.4", "@types/json-schema": "7.0.15" diff --git a/plugins/orchestrator-backend/src/OrchestratorPlugin.ts b/plugins/orchestrator-backend/src/OrchestratorPlugin.ts index 1eca7cc558..77248eb882 100644 --- a/plugins/orchestrator-backend/src/OrchestratorPlugin.ts +++ b/plugins/orchestrator-backend/src/OrchestratorPlugin.ts @@ -1,4 +1,3 @@ -import { loggerToWinstonLogger } from '@backstage/backend-common'; import { coreServices, createBackendPlugin, @@ -33,10 +32,9 @@ export const orchestratorPlugin = createBackendPlugin({ permissions, httpAuth, }) { - const log = loggerToWinstonLogger(logger); const router = await createRouter({ config: config, - logger: log, + logger, discovery: discovery, catalogApi: catalogApi, urlReader: urlReader, diff --git a/plugins/orchestrator-backend/src/routerWrapper/index.ts b/plugins/orchestrator-backend/src/routerWrapper/index.ts index 63f74ab2bf..8170042934 100644 --- a/plugins/orchestrator-backend/src/routerWrapper/index.ts +++ b/plugins/orchestrator-backend/src/routerWrapper/index.ts @@ -2,6 +2,7 @@ import { createLegacyAuthAdapters, UrlReader } from '@backstage/backend-common'; import { DiscoveryService, HttpAuthService, + LoggerService, PermissionsService, } from '@backstage/backend-plugin-api'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; @@ -9,14 +10,13 @@ import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import express from 'express'; -import { Logger } from 'winston'; import { DevModeService } from '../service/DevModeService'; import { createBackendRouter } from '../service/router'; export interface RouterArgs { config: Config; - logger: Logger; + logger: LoggerService; discovery: DiscoveryService; catalogApi: CatalogApi; urlReader: UrlReader; diff --git a/plugins/orchestrator-backend/src/service/CloudEventService.ts b/plugins/orchestrator-backend/src/service/CloudEventService.ts index c3a0a5e12f..f42cb905a0 100644 --- a/plugins/orchestrator-backend/src/service/CloudEventService.ts +++ b/plugins/orchestrator-backend/src/service/CloudEventService.ts @@ -1,12 +1,13 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; + import { CloudEvent, emitterFor, httpTransport } from 'cloudevents'; -import { Logger } from 'winston'; export type CloudEventResponse = | { success: true } | { success: false; error: string }; export class CloudEventService { - constructor(private readonly logger: Logger) {} + constructor(private readonly logger: LoggerService) {} public async send(args: { event: CloudEvent; diff --git a/plugins/orchestrator-backend/src/service/DataIndexService.ts b/plugins/orchestrator-backend/src/service/DataIndexService.ts index 28e656f0de..067028f2be 100644 --- a/plugins/orchestrator-backend/src/service/DataIndexService.ts +++ b/plugins/orchestrator-backend/src/service/DataIndexService.ts @@ -1,5 +1,6 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; + import { Client, fetchExchange, gql } from '@urql/core'; -import { Logger } from 'winston'; import { fromWorkflowSource, @@ -21,7 +22,7 @@ export class DataIndexService { public constructor( private readonly dataIndexUrl: string, - private readonly logger: Logger, + private readonly logger: LoggerService, ) { if (!dataIndexUrl.length) { throw ErrorBuilder.GET_NO_DATA_INDEX_URL_ERR(); diff --git a/plugins/orchestrator-backend/src/service/DevModeService.ts b/plugins/orchestrator-backend/src/service/DevModeService.ts index 19c9779e3e..0290718517 100644 --- a/plugins/orchestrator-backend/src/service/DevModeService.ts +++ b/plugins/orchestrator-backend/src/service/DevModeService.ts @@ -1,7 +1,7 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import fs from 'fs-extra'; -import { Logger } from 'winston'; import { DEFAULT_SONATAFLOW_BASE_URL, @@ -45,7 +45,7 @@ export class DevModeService { constructor( config: Config, - private readonly logger: Logger, + private readonly logger: LoggerService, ) { this.connection = this.extractConnectionConfig(config); this.gitService = new GitService(logger, config); diff --git a/plugins/orchestrator-backend/src/service/GitService.ts b/plugins/orchestrator-backend/src/service/GitService.ts index 600fc24073..c19bc0ddcc 100644 --- a/plugins/orchestrator-backend/src/service/GitService.ts +++ b/plugins/orchestrator-backend/src/service/GitService.ts @@ -1,13 +1,12 @@ import { Git } from '@backstage/backend-common'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import { ScmIntegrations } from '@backstage/integration'; -import { Logger } from 'winston'; - export class GitService { private readonly git: Git; - private readonly logger: Logger; + private readonly logger: LoggerService; private authenticated: boolean; private readonly author = { @@ -20,7 +19,7 @@ export class GitService { email: 'orchestrator@backstage.io', }; - constructor(logger: Logger, config: Config) { + constructor(logger: LoggerService, config: Config) { this.logger = logger; const githubIntegration = ScmIntegrations.fromConfig(config) .github.list() diff --git a/plugins/orchestrator-backend/src/service/Helper.ts b/plugins/orchestrator-backend/src/service/Helper.ts index 010a1a5438..0c10b7cbb8 100644 --- a/plugins/orchestrator-backend/src/service/Helper.ts +++ b/plugins/orchestrator-backend/src/service/Helper.ts @@ -1,7 +1,7 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import fs from 'fs-extra'; -import { Logger } from 'winston'; import os from 'os'; @@ -23,7 +23,7 @@ export async function retryAsyncFunction(args: { export async function getWorkingDirectory( config: Config, - logger: Logger, + logger: LoggerService, ): Promise { if (!config.has('backend.workingDirectory')) { return os.tmpdir(); diff --git a/plugins/orchestrator-backend/src/service/JiraService.ts b/plugins/orchestrator-backend/src/service/JiraService.ts index 1412d925c8..0fada357c5 100644 --- a/plugins/orchestrator-backend/src/service/JiraService.ts +++ b/plugins/orchestrator-backend/src/service/JiraService.ts @@ -1,5 +1,6 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; + import { CloudEvent } from 'cloudevents'; -import { Logger } from 'winston'; import { CloudEventService } from './CloudEventService'; import { DataIndexService } from './DataIndexService'; @@ -37,7 +38,7 @@ export type JiraEvent = IssueCommented | IssueUpdated; export class JiraService { constructor( - private readonly logger: Logger, + private readonly logger: LoggerService, private readonly cloudEventService: CloudEventService, private readonly dataIndexService: DataIndexService, ) {} diff --git a/plugins/orchestrator-backend/src/service/OrchestratorService.test.ts b/plugins/orchestrator-backend/src/service/OrchestratorService.test.ts index b6a8fdcf9a..dbc671d5ff 100644 --- a/plugins/orchestrator-backend/src/service/OrchestratorService.test.ts +++ b/plugins/orchestrator-backend/src/service/OrchestratorService.test.ts @@ -140,8 +140,17 @@ describe('OrchestratorService', () => { jest.clearAllMocks(); }); - it('should execute the operation when the cache is not empty', async () => { - workflowCacheServiceMock.isEmpty = jest.fn().mockReturnValue(false); + it('should throw error when data index returns error', async () => { + const errMsg = 'Failed to load instances'; + dataIndexServiceMock.fetchInstances = jest.fn().mockImplementation(() => { + throw new Error(errMsg); + }); + + const promise = orchestratorService.fetchInstances({}); + await expect(promise).rejects.toThrow(errMsg); + }); + + it('should execute the operation', async () => { dataIndexServiceMock.fetchInstances = jest .fn() .mockResolvedValue(instances); @@ -151,15 +160,6 @@ describe('OrchestratorService', () => { expect(result).toHaveLength(instances.length); expect(dataIndexServiceMock.fetchInstances).toHaveBeenCalled(); }); - - it('should not execute the operation when the cache is empty', async () => { - workflowCacheServiceMock.isEmpty = jest.fn().mockReturnValue(true); - - const result = await orchestratorService.fetchInstances({}); - - expect(result).toHaveLength(0); - expect(dataIndexServiceMock.fetchInstances).not.toHaveBeenCalled(); - }); }); describe('fetchInstancesTotalCount', () => { @@ -167,8 +167,18 @@ describe('OrchestratorService', () => { jest.clearAllMocks(); }); - it('should execute the operation when the cache is not empty', async () => { - workflowCacheServiceMock.isEmpty = jest.fn().mockReturnValue(false); + it('should throw error when data index returns error', async () => { + const errMsg = 'Failed to get instances total count'; + dataIndexServiceMock.fetchInstancesTotalCount = jest + .fn() + .mockImplementation(() => { + throw new Error(errMsg); + }); + const promise = orchestratorService.fetchInstancesTotalCount(); + await expect(promise).rejects.toThrow(errMsg); + }); + + it('should execute the operation', async () => { dataIndexServiceMock.fetchInstancesTotalCount = jest .fn() .mockResolvedValue(instances.length); @@ -178,17 +188,6 @@ describe('OrchestratorService', () => { expect(result).toBe(instances.length); expect(dataIndexServiceMock.fetchInstancesTotalCount).toHaveBeenCalled(); }); - - it('should not execute the operation when the cache is empty', async () => { - workflowCacheServiceMock.isEmpty = jest.fn().mockReturnValue(true); - - const result = await orchestratorService.fetchInstancesTotalCount(); - - expect(result).toBe(0); - expect( - dataIndexServiceMock.fetchInstancesTotalCount, - ).not.toHaveBeenCalled(); - }); }); describe('fetchWorkflowOverviews', () => { @@ -196,27 +195,27 @@ describe('OrchestratorService', () => { jest.clearAllMocks(); }); - it('should execute the operation when the cache is not empty', async () => { - workflowCacheServiceMock.isEmpty = jest.fn().mockReturnValue(false); + it('should throw error when data index returns error', async () => { + const errMsg = 'Failed to get workflows overview'; sonataFlowServiceMock.fetchWorkflowOverviews = jest .fn() - .mockResolvedValue(workflowOverviews); - - const result = await orchestratorService.fetchWorkflowOverviews({}); + .mockImplementation(() => { + throw new Error(errMsg); + }); - expect(result).toHaveLength(workflowOverviews.length); - expect(sonataFlowServiceMock.fetchWorkflowOverviews).toHaveBeenCalled(); + const promise = orchestratorService.fetchWorkflowOverviews({}); + await expect(promise).rejects.toThrow(); }); - it('should not execute the operation when the cache is empty', async () => { - workflowCacheServiceMock.isEmpty = jest.fn().mockReturnValue(true); + it('should execute the operation', async () => { + sonataFlowServiceMock.fetchWorkflowOverviews = jest + .fn() + .mockResolvedValue(workflowOverviews); const result = await orchestratorService.fetchWorkflowOverviews({}); - expect(result).toHaveLength(0); - expect( - sonataFlowServiceMock.fetchWorkflowOverviews, - ).not.toHaveBeenCalled(); + expect(result).toHaveLength(workflowOverviews.length); + expect(sonataFlowServiceMock.fetchWorkflowOverviews).toHaveBeenCalled(); }); }); diff --git a/plugins/orchestrator-backend/src/service/OrchestratorService.ts b/plugins/orchestrator-backend/src/service/OrchestratorService.ts index 00fbd12322..1b43e4ebc9 100644 --- a/plugins/orchestrator-backend/src/service/OrchestratorService.ts +++ b/plugins/orchestrator-backend/src/service/OrchestratorService.ts @@ -54,9 +54,6 @@ export class OrchestratorService { public async fetchInstances(args: { pagination?: Pagination; }): Promise { - if (this.workflowCacheService.isEmpty()) { - return []; - } return await this.dataIndexService.fetchInstances({ definitionIds: this.workflowCacheService.definitionIds, pagination: args.pagination, @@ -64,9 +61,6 @@ export class OrchestratorService { } public async fetchInstancesTotalCount(): Promise { - if (this.workflowCacheService.isEmpty()) { - return 0; - } return await this.dataIndexService.fetchInstancesTotalCount( this.workflowCacheService.definitionIds, ); @@ -149,9 +143,6 @@ export class OrchestratorService { public async fetchWorkflowOverviews(args: { pagination?: Pagination; }): Promise { - if (this.workflowCacheService.isEmpty()) { - return []; - } return await this.sonataFlowService.fetchWorkflowOverviews({ definitionIds: this.workflowCacheService.definitionIds, pagination: args.pagination, diff --git a/plugins/orchestrator-backend/src/service/ScaffolderService.ts b/plugins/orchestrator-backend/src/service/ScaffolderService.ts index 1b9096369f..c3ddb9f918 100644 --- a/plugins/orchestrator-backend/src/service/ScaffolderService.ts +++ b/plugins/orchestrator-backend/src/service/ScaffolderService.ts @@ -1,4 +1,5 @@ -import { UrlReader } from '@backstage/backend-common'; +import { loggerToWinstonLogger, UrlReader } from '@backstage/backend-common'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import { ScmIntegrations } from '@backstage/integration'; @@ -13,7 +14,6 @@ import { import { JsonObject, JsonValue } from '@backstage/types'; import fs from 'fs-extra'; -import { Logger } from 'winston'; import { randomUUID } from 'crypto'; import path from 'path'; @@ -32,7 +32,7 @@ export class ScaffolderService { private streamLogger = new PassThrough(); constructor( - private readonly logger: Logger, + private readonly logger: LoggerService, private readonly config: Config, private readonly catalogApi: CatalogApi, private readonly urlReader: UrlReader, @@ -78,17 +78,18 @@ export class ScaffolderService { workingDirectory, actionExecutionContext.instanceId ?? randomUUID(), ); - } catch (err) { + } catch (err: unknown) { this.logger.error( `Error getting working directory to execute action ${actionExecutionContext.actionId}`, - err, + err as Error, ); throw err; } const mockContext: ActionContext = { input: actionExecutionContext.input, workspacePath: workspacePath, - logger: this.logger, + // TODO: Move this to LoggerService after scaffolder-node moves to LoggerService + logger: loggerToWinstonLogger(this.logger), logStream: this.streamLogger, createTemporaryDirectory: async () => await fs.mkdtemp(`${workspacePath}_step-${0}-`), diff --git a/plugins/orchestrator-backend/src/service/SonataFlowService.ts b/plugins/orchestrator-backend/src/service/SonataFlowService.ts index 824d2e0949..ce9c8f51d3 100644 --- a/plugins/orchestrator-backend/src/service/SonataFlowService.ts +++ b/plugins/orchestrator-backend/src/service/SonataFlowService.ts @@ -1,4 +1,4 @@ -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { extractWorkflowFormat, @@ -19,7 +19,7 @@ import { DataIndexService } from './DataIndexService'; export class SonataFlowService { constructor( private readonly dataIndexService: DataIndexService, - private readonly logger: Logger, + private readonly logger: LoggerService, ) {} public async fetchWorkflowInfoOnService(args: { diff --git a/plugins/orchestrator-backend/src/service/WorkflowCacheService.ts b/plugins/orchestrator-backend/src/service/WorkflowCacheService.ts index 34efcfc680..86f98f1b4d 100644 --- a/plugins/orchestrator-backend/src/service/WorkflowCacheService.ts +++ b/plugins/orchestrator-backend/src/service/WorkflowCacheService.ts @@ -1,7 +1,6 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; -import { Logger } from 'winston'; - import { DataIndexService } from './DataIndexService'; import { SonataFlowService } from './SonataFlowService'; @@ -14,7 +13,7 @@ export class WorkflowCacheService { private readonly definitionIdCache = new Set(); constructor( - private readonly logger: Logger, + private readonly logger: LoggerService, private readonly dataIndexService: DataIndexService, private readonly sonataFlowService: SonataFlowService, ) {} diff --git a/plugins/orchestrator-backend/src/service/router.ts b/plugins/orchestrator-backend/src/service/router.ts index a0d905c60e..799f01448b 100644 --- a/plugins/orchestrator-backend/src/service/router.ts +++ b/plugins/orchestrator-backend/src/service/router.ts @@ -5,6 +5,7 @@ import { } from '@backstage/backend-common'; import { HttpAuthService, + LoggerService, PermissionsService, } from '@backstage/backend-plugin-api'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; @@ -23,7 +24,6 @@ import express from 'express'; import Router from 'express-promise-router'; import { Request as HttpRequest } from 'express-serve-static-core'; import { OpenAPIBackend, Request } from 'openapi-backend'; -import { Logger } from 'winston'; import { openApiDocument, @@ -143,7 +143,7 @@ export async function createBackendRouter( } function initPublicServices( - logger: Logger, + logger: LoggerService, config: Config, scheduler: PluginTaskScheduler, ): PublicServices { diff --git a/plugins/orchestrator/CHANGELOG.md b/plugins/orchestrator/CHANGELOG.md index 8a5812f7dc..7137908095 100644 --- a/plugins/orchestrator/CHANGELOG.md +++ b/plugins/orchestrator/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-plugin-orchestrator [1.13.6](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-orchestrator@1.13.5...@janus-idp/backstage-plugin-orchestrator@1.13.6) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-orchestrator [1.13.5](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-orchestrator@1.13.4...@janus-idp/backstage-plugin-orchestrator@1.13.5) (2024-06-04) diff --git a/plugins/orchestrator/package.json b/plugins/orchestrator/package.json index 5fd701612a..a28b7f3b38 100644 --- a/plugins/orchestrator/package.json +++ b/plugins/orchestrator/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-orchestrator", - "version": "1.13.5", + "version": "1.13.6", "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", @@ -78,7 +78,7 @@ "@backstage/cli": "0.26.4", "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@storybook/preview-api": "7.6.19", "@storybook/react": "7.6.19", diff --git a/plugins/quay-actions/CHANGELOG.md b/plugins/quay-actions/CHANGELOG.md index e373c37c30..f6a2d6fb28 100644 --- a/plugins/quay-actions/CHANGELOG.md +++ b/plugins/quay-actions/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-scaffolder-backend-module-quay [1.4.12](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-quay@1.4.11...@janus-idp/backstage-scaffolder-backend-module-quay@1.4.12) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-scaffolder-backend-module-quay [1.4.11](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-quay@1.4.10...@janus-idp/backstage-scaffolder-backend-module-quay@1.4.11) (2024-06-04) ## @janus-idp/backstage-scaffolder-backend-module-quay [1.4.10](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-quay@1.4.9...@janus-idp/backstage-scaffolder-backend-module-quay@1.4.10) (2024-06-03) diff --git a/plugins/quay-actions/dist-dynamic/package.json b/plugins/quay-actions/dist-dynamic/package.json index 702cb2e8f6..b6723cb41d 100644 --- a/plugins/quay-actions/dist-dynamic/package.json +++ b/plugins/quay-actions/dist-dynamic/package.json @@ -1,7 +1,7 @@ { "name": "@janus-idp/backstage-scaffolder-backend-module-quay-dynamic", "description": "The quay-actions module for @backstage/plugin-scaffolder-backend", - "version": "1.4.11", + "version": "1.4.12", "main": "dist/index.cjs.js", "types": "dist/index.d.ts", "license": "Apache-2.0", diff --git a/plugins/quay-actions/package.json b/plugins/quay-actions/package.json index a328af839e..95ee6642c2 100644 --- a/plugins/quay-actions/package.json +++ b/plugins/quay-actions/package.json @@ -1,7 +1,7 @@ { "name": "@janus-idp/backstage-scaffolder-backend-module-quay", "description": "The quay-actions module for @backstage/plugin-scaffolder-backend", - "version": "1.4.11", + "version": "1.4.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -50,7 +50,7 @@ "@backstage/backend-common": "0.21.7", "@backstage/cli": "0.26.4", "@backstage/plugin-scaffolder-node-test-utils": "0.1.3", - "@janus-idp/cli": "1.9.0" + "@janus-idp/cli": "1.10.0" }, "files": [ "dist", diff --git a/plugins/quay/CHANGELOG.md b/plugins/quay/CHANGELOG.md index 0929e81e63..88d642d101 100644 --- a/plugins/quay/CHANGELOG.md +++ b/plugins/quay/CHANGELOG.md @@ -1,3 +1,13 @@ +## @janus-idp/backstage-plugin-quay [1.7.9](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-quay@1.7.8...@janus-idp/backstage-plugin-quay@1.7.9) (2024-06-10) + +## @janus-idp/backstage-plugin-quay [1.7.8](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-quay@1.7.7...@janus-idp/backstage-plugin-quay@1.7.8) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-quay [1.7.7](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-quay@1.7.6...@janus-idp/backstage-plugin-quay@1.7.7) (2024-06-04) diff --git a/plugins/quay/package.json b/plugins/quay/package.json index 7ef3984611..783c363546 100644 --- a/plugins/quay/package.json +++ b/plugins/quay/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-quay", - "version": "1.7.7", + "version": "1.7.9", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -49,16 +49,16 @@ "@backstage/core-app-api": "1.12.4", "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", - "@janus-idp/cli": "1.9.0", - "@playwright/test": "1.41.2", + "@janus-idp/cli": "1.10.0", + "@playwright/test": "1.44.1", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "14.3.1", "@testing-library/react-hooks": "8.0.1", "@testing-library/user-event": "14.5.2", - "@types/node": "18.18.5", + "@types/node": "18.19.34", "cross-fetch": "4.0.0", - "msw": "1.3.2" + "msw": "1.3.3" }, "files": [ "dist", diff --git a/plugins/quay/tests/quay.spec.ts b/plugins/quay/tests/quay.spec.ts index abd5431af0..ed235a4cdf 100644 --- a/plugins/quay/tests/quay.spec.ts +++ b/plugins/quay/tests/quay.spec.ts @@ -37,21 +37,21 @@ test.describe('Quay plugin', () => { } }); - test('Vulnerabilities are listed', async () => { + test.skip('Vulnerabilities are listed', async () => { const severity = ['High:', 'Medium:', 'Low:']; for (const lvl of severity) { await expect(page.getByRole('link', { name: lvl })).toBeVisible(); } }); - test('Vulnerability details are accessible', async () => { + test.skip('Vulnerability details are accessible', async () => { await page.getByRole('link', { name: 'High' }).first().click(); await expect(page.getByText('Vulnerabilities for')).toBeVisible({ timeout: 15000, }); }); - test('Vulnerability columns are shown', async () => { + test.skip('Vulnerability columns are shown', async () => { const columns = [ 'Advisory', 'Severity', @@ -65,12 +65,12 @@ test.describe('Quay plugin', () => { } }); - test('Vulnerability rows are shown', async () => { + test.skip('Vulnerability rows are shown', async () => { const tbody = page.locator('tbody'); await expect(tbody.locator('tr')).toHaveCount(5); }); - test('Link back to repository works', async () => { + test.skip('Link back to repository works', async () => { await page.getByRole('link', { name: 'Back to repository' }).click(); await expect( page.getByRole('link', { name: 'backstage-test/test-images' }), diff --git a/plugins/rbac-backend/CHANGELOG.md b/plugins/rbac-backend/CHANGELOG.md index 3d27a622e0..7ec3fef045 100644 --- a/plugins/rbac-backend/CHANGELOG.md +++ b/plugins/rbac-backend/CHANGELOG.md @@ -1,3 +1,16 @@ +## @janus-idp/backstage-plugin-rbac-backend [4.2.0](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-rbac-backend@4.1.0...@janus-idp/backstage-plugin-rbac-backend@4.2.0) (2024-06-05) + + +### Features + +* **rbac:** add type checks with generics for audit log ([#1789](https://github.com/janus-idp/backstage-plugins/issues/1789)) ([ac69838](https://github.com/janus-idp/backstage-plugins/commit/ac698382f64fe91e0f9f9232dd3eecd9cc9247be)) + + + +### Dependencies + +* **@janus-idp/backstage-plugin-audit-log-node:** upgraded to 1.1.0 + ## @janus-idp/backstage-plugin-rbac-backend [4.1.0](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-rbac-backend@4.0.2...@janus-idp/backstage-plugin-rbac-backend@4.1.0) (2024-06-04) diff --git a/plugins/rbac-backend/package.json b/plugins/rbac-backend/package.json index e8e41ed464..a6f7abea9d 100644 --- a/plugins/rbac-backend/package.json +++ b/plugins/rbac-backend/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-rbac-backend", - "version": "4.1.0", + "version": "4.2.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -39,7 +39,7 @@ "@dagrejs/graphlib": "^2.1.13", "@janus-idp/backstage-plugin-rbac-common": "1.5.0", "@janus-idp/backstage-plugin-rbac-node": "1.1.2", - "@janus-idp/backstage-plugin-audit-log-node": "1.0.3", + "@janus-idp/backstage-plugin-audit-log-node": "1.1.0", "casbin": "^5.27.1", "chokidar": "^3.6.0", "csv-parse": "^5.5.5", @@ -49,7 +49,6 @@ "lodash": "^4.17.21", "qs": "^6.11.2", "typeorm-adapter": "^1.6.1", - "winston": "^3.11.0", "yn": "^4.0.0" }, "devDependencies": { diff --git a/plugins/rbac-backend/src/audit-log/audit-logger.ts b/plugins/rbac-backend/src/audit-log/audit-logger.ts index ccc7be79fb..e2b9d55d55 100644 --- a/plugins/rbac-backend/src/audit-log/audit-logger.ts +++ b/plugins/rbac-backend/src/audit-log/audit-logger.ts @@ -8,7 +8,6 @@ import { PolicyQuery } from '@backstage/plugin-permission-node'; import { AuditLogOptions } from '@janus-idp/backstage-plugin-audit-log-node'; import { PermissionAction, - PermissionInfo, RoleConditionalPolicyDecision, Source, toPermissionAction, @@ -91,7 +90,8 @@ export const ConditionEvents = { }; export type ConditionAuditInfo = { - condition: RoleConditionalPolicyDecision; + conditionId?: number; + condition: RoleConditionalPolicyDecision; }; export const RBAC_BACKEND = 'rbac-backend'; @@ -111,7 +111,7 @@ export function createPermissionEvaluationOptions( userEntityRef: string, request: PolicyQuery, policyDecision?: PolicyDecision, -): AuditLogOptions { +): AuditLogOptions { const auditInfo: EvaluationAuditInfo = { userEntityRef, permissionName: request.permission.name, diff --git a/plugins/rbac-backend/src/file-permissions/csv-file-watcher.test.ts b/plugins/rbac-backend/src/file-permissions/csv-file-watcher.test.ts index 02d1787852..ed5e8b28aa 100644 --- a/plugins/rbac-backend/src/file-permissions/csv-file-watcher.test.ts +++ b/plugins/rbac-backend/src/file-permissions/csv-file-watcher.test.ts @@ -1,3 +1,4 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; import { mockServices } from '@backstage/backend-test-utils'; import { ConfigReader } from '@backstage/config'; @@ -10,7 +11,6 @@ import { } from 'casbin'; import * as Knex from 'knex'; import { MockClient } from 'knex-mock-client'; -import { Logger } from 'winston'; import { PermissionPolicyMetadata, @@ -684,7 +684,7 @@ describe('CSVFileWatcher', () => { async function createEnforcer( theModel: Model, adapter: Adapter, - log: Logger, + logger: LoggerService, ): Promise { const catalogDBClient = Knex.knex({ client: MockClient }); const rbacDBClient = Knex.knex({ client: MockClient }); @@ -694,7 +694,7 @@ async function createEnforcer( const rm = new BackstageRoleManager( catalogApi, - log, + logger, catalogDBClient, rbacDBClient, config, diff --git a/plugins/rbac-backend/src/file-permissions/csv-file-watcher.ts b/plugins/rbac-backend/src/file-permissions/csv-file-watcher.ts index 5a12b47887..578b626a18 100644 --- a/plugins/rbac-backend/src/file-permissions/csv-file-watcher.ts +++ b/plugins/rbac-backend/src/file-permissions/csv-file-watcher.ts @@ -1,8 +1,9 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; + import { Enforcer, FileAdapter, newEnforcer, newModelFromString } from 'casbin'; import chokidar from 'chokidar'; import { parse } from 'csv-parse/sync'; import { difference } from 'lodash'; -import { Logger } from 'winston'; import { AuditLogger } from '@janus-idp/backstage-plugin-audit-log-node'; @@ -10,8 +11,10 @@ import fs from 'fs'; import { HANDLE_RBAC_DATA_STAGE, + PermissionAuditInfo, PermissionEvents, RBAC_BACKEND, + RoleAuditInfo, RoleEvents, } from '../audit-log/audit-logger'; import { @@ -48,7 +51,7 @@ export class CSVFileWatcher { private csvFileName: string; constructor( private readonly enforcer: EnforcerDelegate, - private readonly logger: Logger, + private readonly logger: LoggerService, private readonly roleMetadataStorage: RoleMetadataStorage, private readonly auditLogger: AuditLogger, ) { @@ -308,7 +311,7 @@ export class CSVFileWatcher { try { await this.enforcer.addOrUpdatePolicy(policy, 'csv-file'); - await this.auditLogger.auditLog({ + await this.auditLogger.auditLog({ actorId: RBAC_BACKEND, message: `Created or updated policy`, eventName: PermissionEvents.CREATE_OR_UPDATE_POLICY, @@ -333,7 +336,7 @@ export class CSVFileWatcher { try { await this.enforcer.removePolicies(this.csvFilePolicies.removedPolicies); - await this.auditLogger.auditLog({ + await this.auditLogger.auditLog({ actorId: RBAC_BACKEND, message: `Deleted policies`, eventName: PermissionEvents.DELETE_POLICY, @@ -405,7 +408,7 @@ export class CSVFileWatcher { ? RoleEvents.UPDATE_ROLE : RoleEvents.CREATE_ROLE; const message = currentMetadata ? 'Updated role' : 'Created role'; - await this.auditLogger.auditLog({ + await this.auditLogger.auditLog({ actorId: RBAC_BACKEND, message, eventName, @@ -459,7 +462,7 @@ export class CSVFileWatcher { const message = isRolePresent ? 'Updated role: deleted members' : 'Deleted role'; - await this.auditLogger.auditLog({ + await this.auditLogger.auditLog({ actorId: RBAC_BACKEND, message, eventName, diff --git a/plugins/rbac-backend/src/helper.ts b/plugins/rbac-backend/src/helper.ts index c3bff21911..98334e1621 100644 --- a/plugins/rbac-backend/src/helper.ts +++ b/plugins/rbac-backend/src/helper.ts @@ -17,6 +17,7 @@ import { import { HANDLE_RBAC_DATA_STAGE, RBAC_BACKEND, + RoleAuditInfo, RoleEvents, } from './audit-log/audit-logger'; import { EnforcerDelegate } from './service/enforcer-delegate'; @@ -73,7 +74,7 @@ export async function removeTheDifference( remainingMembers.length > 0 ? RoleEvents.UPDATE_ROLE : RoleEvents.DELETE_ROLE; - await auditLogger.auditLog({ + await auditLogger.auditLog({ actorId: RBAC_BACKEND, message, eventName, diff --git a/plugins/rbac-backend/src/plugin.ts b/plugins/rbac-backend/src/plugin.ts index d07bec768b..3c30b804c6 100644 --- a/plugins/rbac-backend/src/plugin.ts +++ b/plugins/rbac-backend/src/plugin.ts @@ -1,4 +1,3 @@ -import { loggerToWinstonLogger } from '@backstage/backend-common'; import { coreServices, createBackendPlugin, @@ -54,13 +53,11 @@ export const rbacPlugin = createBackendPlugin({ auth, httpAuth, }) { - const winstonLogger = loggerToWinstonLogger(logger); - http.use( await PolicyBuilder.build( { config, - logger: winstonLogger, + logger, discovery, identity, permissions, diff --git a/plugins/rbac-backend/src/role-manager/ancestor-search-memo.ts b/plugins/rbac-backend/src/role-manager/ancestor-search-memo.ts index e436a70264..71c8aa2697 100644 --- a/plugins/rbac-backend/src/role-manager/ancestor-search-memo.ts +++ b/plugins/rbac-backend/src/role-manager/ancestor-search-memo.ts @@ -1,10 +1,9 @@ -import { AuthService } from '@backstage/backend-plugin-api'; +import { AuthService, LoggerService } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { Entity } from '@backstage/catalog-model'; import { alg, Graph } from '@dagrejs/graphlib'; import { Knex } from 'knex'; -import { Logger } from 'winston'; export interface Relation { source_entity_ref: string; @@ -62,11 +61,11 @@ export class AncestorSearchMemo { return this.graph.hasNode(groupRef); } - debugNodesAndEdges(log: Logger, userEntity: string): void { - log.debug( + debugNodesAndEdges(logger: LoggerService, userEntity: string): void { + logger.debug( `SubGraph edges: ${JSON.stringify(this.graph.edges())} for ${userEntity}`, ); - log.debug( + logger.debug( `SubGraph nodes: ${JSON.stringify(this.graph.nodes())} for ${userEntity}`, ); } diff --git a/plugins/rbac-backend/src/role-manager/role-manager.test.ts b/plugins/rbac-backend/src/role-manager/role-manager.test.ts index 9a3885ca85..dd4b2840f8 100644 --- a/plugins/rbac-backend/src/role-manager/role-manager.test.ts +++ b/plugins/rbac-backend/src/role-manager/role-manager.test.ts @@ -1,3 +1,4 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; import { mockServices } from '@backstage/backend-test-utils'; import { CatalogApi } from '@backstage/catalog-client'; import { Entity } from '@backstage/catalog-model'; @@ -5,7 +6,6 @@ import { ConfigReader } from '@backstage/config'; import * as Knex from 'knex'; import { createTracker, MockClient, Tracker } from 'knex-mock-client'; -import { Logger } from 'winston'; import { BackstageRoleManager } from '../role-manager/role-manager'; @@ -33,7 +33,7 @@ describe('BackstageRoleManager', () => { roleManager = new BackstageRoleManager( catalogApiMock as CatalogApi, - loggerMock as Logger, + loggerMock as LoggerService, catalogDBClient, rbacDBClient, config, @@ -54,7 +54,7 @@ describe('BackstageRoleManager', () => { try { errorRoleManager = new BackstageRoleManager( catalogApiMock as CatalogApi, - loggerMock as Logger, + loggerMock as LoggerService, catalogDBClient, rbacDBClient, config, @@ -1045,7 +1045,7 @@ describe('BackstageRoleManager', () => { const roleManagerMaxDepth = new BackstageRoleManager( catalogApiMock as CatalogApi, - loggerMock as Logger, + loggerMock as LoggerService, catalogDBClient, rbacDBClient, config, diff --git a/plugins/rbac-backend/src/role-manager/role-manager.ts b/plugins/rbac-backend/src/role-manager/role-manager.ts index b62d602dfc..1f7a15ca15 100644 --- a/plugins/rbac-backend/src/role-manager/role-manager.ts +++ b/plugins/rbac-backend/src/role-manager/role-manager.ts @@ -1,11 +1,10 @@ -import { AuthService } from '@backstage/backend-plugin-api'; +import { AuthService, LoggerService } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { parseEntityRef } from '@backstage/catalog-model'; import { Config } from '@backstage/config'; import { RoleManager } from 'casbin'; import { Knex } from 'knex'; -import { Logger } from 'winston'; import { AncestorSearchMemo } from './ancestor-search-memo'; import { RoleMemberList } from './member-list'; @@ -15,7 +14,7 @@ export class BackstageRoleManager implements RoleManager { private maxDepth?: number; constructor( private readonly catalogApi: CatalogApi, - private readonly log: Logger, + private readonly logger: LoggerService, private readonly catalogDBClient: Knex, private readonly rbacDBClient: Knex, private readonly config: Config, @@ -151,11 +150,11 @@ export class BackstageRoleManager implements RoleManager { ); await memo.buildUserGraph(memo); - memo.debugNodesAndEdges(this.log, name1); + memo.debugNodesAndEdges(this.logger, name1); if (!memo.isAcyclic()) { const cycles = memo.findCycles(); - this.log.warn( + this.logger.warn( `Detected cycle dependencies in the Group graph: ${JSON.stringify( cycles, )}. Admin/(catalog owner) have to fix it to make RBAC permission evaluation correct for groups: ${JSON.stringify( @@ -224,7 +223,7 @@ export class BackstageRoleManager implements RoleManager { this.maxDepth, ); await memo.buildUserGraph(memo); - memo.debugNodesAndEdges(this.log, name); + memo.debugNodesAndEdges(this.logger, name); if (this.isPGClient()) { const currentRole = new RoleMemberList(name); diff --git a/plugins/rbac-backend/src/service/permission-policy.test.ts b/plugins/rbac-backend/src/service/permission-policy.test.ts index 250a12ba56..ce4baaa04f 100644 --- a/plugins/rbac-backend/src/service/permission-policy.test.ts +++ b/plugins/rbac-backend/src/service/permission-policy.test.ts @@ -1,4 +1,5 @@ import { getVoidLogger } from '@backstage/backend-common'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { mockServices } from '@backstage/backend-test-utils'; import { Entity } from '@backstage/catalog-model'; import { ConfigReader } from '@backstage/config'; @@ -19,7 +20,6 @@ import { } from 'casbin'; import * as Knex from 'knex'; import { MockClient } from 'knex-mock-client'; -import { Logger } from 'winston'; import { PermissionPolicyMetadata, @@ -2475,7 +2475,7 @@ async function newAdapter( async function createEnforcer( theModel: Model, adapter: Adapter, - logger: Logger, + logger: LoggerService, config: ConfigReader, ): Promise { const catalogDBClient = Knex.knex({ client: MockClient }); diff --git a/plugins/rbac-backend/src/service/permission-policy.ts b/plugins/rbac-backend/src/service/permission-policy.ts index fe73cbf43a..22b72f4091 100644 --- a/plugins/rbac-backend/src/service/permission-policy.ts +++ b/plugins/rbac-backend/src/service/permission-policy.ts @@ -1,3 +1,4 @@ +import { LoggerService } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import { ConfigApi } from '@backstage/core-plugin-api'; import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; @@ -18,7 +19,6 @@ import { } from '@backstage/plugin-permission-node'; import { Knex } from 'knex'; -import { Logger } from 'winston'; import { AuditLogger } from '@janus-idp/backstage-plugin-audit-log-node'; import { @@ -31,8 +31,10 @@ import { EVALUATE_PERMISSION_ACCESS_STAGE, EvaluationEvents, HANDLE_RBAC_DATA_STAGE, + PermissionAuditInfo, PermissionEvents, RBAC_BACKEND, + RoleAuditInfo, RoleEvents, } from '../audit-log/audit-logger'; import { ConditionalStorage } from '../database/conditional-storage'; @@ -107,7 +109,7 @@ const useAdminsFromConfig = async ( getAdminRoleMetadata(), ); - await auditLogger.auditLog({ + await auditLogger.auditLog({ actorId: RBAC_BACKEND, message: `Created or updated role`, eventName: RoleEvents.CREATE_OR_UPDATE_ROLE, @@ -147,7 +149,7 @@ const addAdminPermission = async ( ) => { await enf.addOrUpdatePolicy(policy, 'configuration'); - await auditLogger.auditLog({ + await auditLogger.auditLog({ actorId: RBAC_BACKEND, message: `Created or updated policy`, eventName: PermissionEvents.CREATE_OR_UPDATE_POLICY, @@ -207,7 +209,7 @@ export class RBACPermissionPolicy implements PermissionPolicy { private readonly superUserList?: string[]; public static async build( - logger: Logger, + logger: LoggerService, auditLogger: AuditLogger, configApi: ConfigApi, conditionalStorage: ConditionalStorage, diff --git a/plugins/rbac-backend/src/service/policies-rest-api.ts b/plugins/rbac-backend/src/service/policies-rest-api.ts index 8145bba2ee..89245e91aa 100644 --- a/plugins/rbac-backend/src/service/policies-rest-api.ts +++ b/plugins/rbac-backend/src/service/policies-rest-api.ts @@ -47,10 +47,13 @@ import { import { PluginIdProvider } from '@janus-idp/backstage-plugin-rbac-node'; import { + ConditionAuditInfo, ConditionEvents, ListConditionEvents, ListPluginPoliciesEvents, + PermissionAuditInfo, PermissionEvents, + RoleAuditInfo, RoleEvents, SEND_RESPONSE_STAGE, } from '../audit-log/audit-logger'; @@ -256,7 +259,7 @@ export class PoliciesServer { await this.enforcer.removePolicies(processedPolicies); - await this.aLog.auditLog({ + await this.aLog.auditLog({ message: `Deleted permission policies`, eventName: PermissionEvents.DELETE_POLICY, metadata: { policies: processedPolicies, source: 'rest' }, @@ -297,7 +300,7 @@ export class PoliciesServer { await this.enforcer.addPolicies(processedPolicies, 'rest'); - await this.aLog.auditLog({ + await this.aLog.auditLog({ message: `Created permission policies`, eventName: PermissionEvents.CREATE_POLICY, metadata: { policies: processedPolicies, source: 'rest' }, @@ -385,7 +388,7 @@ export class PoliciesServer { 'rest', ); - await this.aLog.auditLog({ + await this.aLog.auditLog({ message: `Updated permission policies`, eventName: PermissionEvents.UPDATE_POLICY, metadata: { policies: processedNewPolicy, source: 'rest' }, @@ -523,7 +526,7 @@ export class PoliciesServer { await this.enforcer.addGroupingPolicies(roles, metadata); - await this.aLog.auditLog({ + await this.aLog.auditLog({ message: `Created ${metadata.roleEntityRef}`, eventName: RoleEvents.CREATE_ROLE, metadata: { @@ -663,7 +666,7 @@ export class PoliciesServer { if (newMetadata.roleEntityRef !== oldMetadata.roleEntityRef) { message = `${message}. Role entity reference renamed to ${newMetadata.roleEntityRef}`; } - await this.aLog.auditLog({ + await this.aLog.auditLog({ message, eventName: RoleEvents.UPDATE_ROLE, metadata: { @@ -733,7 +736,7 @@ export class PoliciesServer { false, ); - await this.aLog.auditLog({ + await this.aLog.auditLog({ message: `Deleted ${metadata.roleEntityRef}`, eventName: RoleEvents.DELETE_ROLE, metadata: { @@ -863,10 +866,10 @@ export class PoliciesServer { const body = { id: id }; - await this.aLog.auditLog({ + await this.aLog.auditLog({ message: `Created conditional permission policy`, eventName: ConditionEvents.CREATE_CONDITION, - metadata: { condition: conditionToCreate }, + metadata: { condition: roleConditionPolicy }, stage: SEND_RESPONSE_STAGE, status: 'succeeded', request, @@ -942,7 +945,7 @@ export class PoliciesServer { await this.conditionalStorage.deleteCondition(id); - await this.aLog.auditLog({ + await this.aLog.auditLog({ message: `Deleted conditional permission policy`, eventName: ConditionEvents.DELETE_CONDITION, metadata: { condition: conditionToDelete }, @@ -983,10 +986,10 @@ export class PoliciesServer { await this.conditionalStorage.updateCondition(id, conditionToUpdate); - await this.aLog.auditLog({ + await this.aLog.auditLog({ message: `Updated conditional permission policy`, eventName: ConditionEvents.UPDATE_CONDITION, - metadata: { conditionId: id, condition: conditionToUpdate }, + metadata: { condition: roleConditionPolicy }, stage: SEND_RESPONSE_STAGE, status: 'succeeded', request, diff --git a/plugins/rbac-backend/src/service/policy-builder.test.ts b/plugins/rbac-backend/src/service/policy-builder.test.ts index 4dcfe9c68e..ff8942fdc5 100644 --- a/plugins/rbac-backend/src/service/policy-builder.test.ts +++ b/plugins/rbac-backend/src/service/policy-builder.test.ts @@ -1,11 +1,11 @@ import { getVoidLogger } from '@backstage/backend-common'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { ConfigReader } from '@backstage/config'; import { AuthorizeResult } from '@backstage/plugin-permission-common'; import { Adapter, Enforcer } from 'casbin'; import { Router } from 'express'; import TypeORMAdapter from 'typeorm-adapter'; -import { Logger } from 'winston'; import { PluginIdProvider } from '@janus-idp/backstage-plugin-rbac-node'; @@ -114,8 +114,8 @@ describe('PolicyBuilder', () => { }; const logger = getVoidLogger(); - let loggerInfoSpy: jest.SpyInstance; - let loggerWarnSpy: jest.SpyInstance; + let loggerInfoSpy: jest.SpyInstance; + let loggerWarnSpy: jest.SpyInstance; beforeEach(async () => { loggerInfoSpy = jest.spyOn(logger, 'info'); diff --git a/plugins/rbac-backend/src/service/policy-builder.ts b/plugins/rbac-backend/src/service/policy-builder.ts index 2cc5a48f6f..eae8a3eff7 100644 --- a/plugins/rbac-backend/src/service/policy-builder.ts +++ b/plugins/rbac-backend/src/service/policy-builder.ts @@ -3,7 +3,11 @@ import { DatabaseManager, PluginEndpointDiscovery, } from '@backstage/backend-common'; -import { AuthService, HttpAuthService } from '@backstage/backend-plugin-api'; +import { + AuthService, + HttpAuthService, + LoggerService, +} from '@backstage/backend-plugin-api'; import { CatalogClient } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import { IdentityApi } from '@backstage/plugin-auth-node'; @@ -12,7 +16,6 @@ import { PermissionEvaluator } from '@backstage/plugin-permission-common'; import { newEnforcer, newModelFromString } from 'casbin'; import { Router } from 'express'; -import { Logger } from 'winston'; import { DefaultAuditLogger } from '@janus-idp/backstage-plugin-audit-log-node'; import { PluginIdProvider } from '@janus-idp/backstage-plugin-rbac-node'; @@ -32,7 +35,7 @@ export class PolicyBuilder { public static async build( env: { config: Config; - logger: Logger; + logger: LoggerService; discovery: PluginEndpointDiscovery; identity: IdentityApi; permissions: PermissionEvaluator; diff --git a/plugins/rbac-backend/src/service/router.ts b/plugins/rbac-backend/src/service/router.ts index 580ed516c5..d3883caead 100644 --- a/plugins/rbac-backend/src/service/router.ts +++ b/plugins/rbac-backend/src/service/router.ts @@ -1,11 +1,11 @@ import { errorHandler } from '@backstage/backend-common'; +import { LoggerService } from '@backstage/backend-plugin-api'; import express from 'express'; import Router from 'express-promise-router'; -import { Logger } from 'winston'; export interface RouterOptions { - logger: Logger; + logger: LoggerService; } export async function createRouter( diff --git a/plugins/rbac-backend/src/service/standaloneServer.ts b/plugins/rbac-backend/src/service/standaloneServer.ts index 7f994676ef..bc3c953ad9 100644 --- a/plugins/rbac-backend/src/service/standaloneServer.ts +++ b/plugins/rbac-backend/src/service/standaloneServer.ts @@ -1,6 +1,5 @@ import { createServiceBuilder } from '@backstage/backend-common'; - -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { Server } from 'http'; @@ -9,7 +8,7 @@ import { createRouter } from './router'; export interface ServerOptions { port: number; enableCors: boolean; - logger: Logger; + logger: LoggerService; } export async function startStandaloneServer( diff --git a/plugins/rbac/CHANGELOG.md b/plugins/rbac/CHANGELOG.md index 59a95f77fd..d4a38cba15 100644 --- a/plugins/rbac/CHANGELOG.md +++ b/plugins/rbac/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-plugin-rbac [1.20.14](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-rbac@1.20.13...@janus-idp/backstage-plugin-rbac@1.20.14) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-rbac [1.20.13](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-rbac@1.20.12...@janus-idp/backstage-plugin-rbac@1.20.13) (2024-06-04) diff --git a/plugins/rbac/package.json b/plugins/rbac/package.json index 7b16d7b0cc..af2a5ee673 100644 --- a/plugins/rbac/package.json +++ b/plugins/rbac/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-rbac", - "version": "1.20.13", + "version": "1.20.14", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -60,8 +60,8 @@ "@backstage/core-app-api": "1.12.4", "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", - "@janus-idp/cli": "1.9.0", - "@playwright/test": "1.41.2", + "@janus-idp/cli": "1.10.0", + "@playwright/test": "1.44.1", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "14.3.1", diff --git a/plugins/regex-actions/CHANGELOG.md b/plugins/regex-actions/CHANGELOG.md index 32d159e89f..d42ee80d51 100644 --- a/plugins/regex-actions/CHANGELOG.md +++ b/plugins/regex-actions/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-scaffolder-backend-module-regex [1.4.12](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-regex@1.4.11...@janus-idp/backstage-scaffolder-backend-module-regex@1.4.12) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-scaffolder-backend-module-regex [1.4.11](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-regex@1.4.10...@janus-idp/backstage-scaffolder-backend-module-regex@1.4.11) (2024-06-04) ## @janus-idp/backstage-scaffolder-backend-module-regex [1.4.10](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-regex@1.4.9...@janus-idp/backstage-scaffolder-backend-module-regex@1.4.10) (2024-06-03) diff --git a/plugins/regex-actions/dist-dynamic/package.json b/plugins/regex-actions/dist-dynamic/package.json index 0367deeec0..dc3db8f61c 100644 --- a/plugins/regex-actions/dist-dynamic/package.json +++ b/plugins/regex-actions/dist-dynamic/package.json @@ -1,7 +1,7 @@ { "name": "@janus-idp/backstage-scaffolder-backend-module-regex-dynamic", "description": "The regex custom actions", - "version": "1.4.11", + "version": "1.4.12", "main": "dist/index.cjs.js", "types": "dist/index.d.ts", "license": "Apache-2.0", diff --git a/plugins/regex-actions/package.json b/plugins/regex-actions/package.json index efa354c5dc..bc9054a729 100644 --- a/plugins/regex-actions/package.json +++ b/plugins/regex-actions/package.json @@ -1,7 +1,7 @@ { "name": "@janus-idp/backstage-scaffolder-backend-module-regex", "description": "The regex custom actions", - "version": "1.4.11", + "version": "1.4.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -52,7 +52,7 @@ "@backstage/backend-common": "0.21.7", "@backstage/cli": "0.26.4", "@backstage/plugin-scaffolder-node-test-utils": "0.1.3", - "@janus-idp/cli": "1.9.0" + "@janus-idp/cli": "1.10.0" }, "files": [ "dist", diff --git a/plugins/servicenow-actions/CHANGELOG.md b/plugins/servicenow-actions/CHANGELOG.md index 39058c4578..ac8ee0a530 100644 --- a/plugins/servicenow-actions/CHANGELOG.md +++ b/plugins/servicenow-actions/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-scaffolder-backend-module-servicenow [1.4.14](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-servicenow@1.4.13...@janus-idp/backstage-scaffolder-backend-module-servicenow@1.4.14) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-scaffolder-backend-module-servicenow [1.4.13](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-servicenow@1.4.12...@janus-idp/backstage-scaffolder-backend-module-servicenow@1.4.13) (2024-06-04) ## @janus-idp/backstage-scaffolder-backend-module-servicenow [1.4.12](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-servicenow@1.4.11...@janus-idp/backstage-scaffolder-backend-module-servicenow@1.4.12) (2024-06-03) diff --git a/plugins/servicenow-actions/dist-dynamic/package.json b/plugins/servicenow-actions/dist-dynamic/package.json index ab99995346..9319960a80 100644 --- a/plugins/servicenow-actions/dist-dynamic/package.json +++ b/plugins/servicenow-actions/dist-dynamic/package.json @@ -1,7 +1,7 @@ { "name": "@janus-idp/backstage-scaffolder-backend-module-servicenow-dynamic", "description": "The servicenow custom actions", - "version": "1.4.13", + "version": "1.4.14", "main": "dist/index.cjs.js", "types": "dist/index.d.ts", "license": "Apache-2.0", diff --git a/plugins/servicenow-actions/package.json b/plugins/servicenow-actions/package.json index dea66133bb..3f6b2aeb6b 100644 --- a/plugins/servicenow-actions/package.json +++ b/plugins/servicenow-actions/package.json @@ -1,7 +1,7 @@ { "name": "@janus-idp/backstage-scaffolder-backend-module-servicenow", "description": "The servicenow custom actions", - "version": "1.4.13", + "version": "1.4.14", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -60,7 +60,7 @@ "@backstage/plugin-scaffolder-node-test-utils": "0.1.3", "@backstage/types": "1.1.1", "@hey-api/openapi-ts": "0.34.5", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@types/node-fetch": "2.6.11", "msw": "1.3.3" }, diff --git a/plugins/sonarqube-actions/CHANGELOG.md b/plugins/sonarqube-actions/CHANGELOG.md index 1271cab908..40b44338e0 100644 --- a/plugins/sonarqube-actions/CHANGELOG.md +++ b/plugins/sonarqube-actions/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-scaffolder-backend-module-sonarqube [1.4.12](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-sonarqube@1.4.11...@janus-idp/backstage-scaffolder-backend-module-sonarqube@1.4.12) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-scaffolder-backend-module-sonarqube [1.4.11](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-sonarqube@1.4.10...@janus-idp/backstage-scaffolder-backend-module-sonarqube@1.4.11) (2024-06-04) ## @janus-idp/backstage-scaffolder-backend-module-sonarqube [1.4.10](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-scaffolder-backend-module-sonarqube@1.4.9...@janus-idp/backstage-scaffolder-backend-module-sonarqube@1.4.10) (2024-06-03) diff --git a/plugins/sonarqube-actions/dist-dynamic/package.json b/plugins/sonarqube-actions/dist-dynamic/package.json index 8278cd4fb4..921ce5031f 100644 --- a/plugins/sonarqube-actions/dist-dynamic/package.json +++ b/plugins/sonarqube-actions/dist-dynamic/package.json @@ -1,7 +1,7 @@ { "name": "@janus-idp/backstage-scaffolder-backend-module-sonarqube-dynamic", "description": "The sonarqube module for @backstage/plugin-scaffolder-backend", - "version": "1.4.11", + "version": "1.4.12", "main": "dist/index.cjs.js", "types": "dist/index.d.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube-actions/package.json b/plugins/sonarqube-actions/package.json index ffc48dbf78..7b4e8c35ff 100644 --- a/plugins/sonarqube-actions/package.json +++ b/plugins/sonarqube-actions/package.json @@ -1,7 +1,7 @@ { "name": "@janus-idp/backstage-scaffolder-backend-module-sonarqube", "description": "The sonarqube module for @backstage/plugin-scaffolder-backend", - "version": "1.4.11", + "version": "1.4.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -51,7 +51,7 @@ "@backstage/backend-common": "0.21.7", "@backstage/cli": "0.26.4", "@backstage/plugin-scaffolder-node-test-utils": "0.1.3", - "@janus-idp/cli": "1.9.0" + "@janus-idp/cli": "1.10.0" }, "files": [ "dist", diff --git a/plugins/tekton/CHANGELOG.md b/plugins/tekton/CHANGELOG.md index 2de1b06e03..36bd45d797 100644 --- a/plugins/tekton/CHANGELOG.md +++ b/plugins/tekton/CHANGELOG.md @@ -1,3 +1,13 @@ +## @janus-idp/backstage-plugin-tekton [3.7.8](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-tekton@3.7.7...@janus-idp/backstage-plugin-tekton@3.7.8) (2024-06-10) + +## @janus-idp/backstage-plugin-tekton [3.7.7](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-tekton@3.7.6...@janus-idp/backstage-plugin-tekton@3.7.7) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-tekton [3.7.6](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-tekton@3.7.5...@janus-idp/backstage-plugin-tekton@3.7.6) (2024-06-04) ## @janus-idp/backstage-plugin-tekton [3.7.5](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-tekton@3.7.4...@janus-idp/backstage-plugin-tekton@3.7.5) (2024-06-03) diff --git a/plugins/tekton/package.json b/plugins/tekton/package.json index a6c57437df..d531e0b96e 100644 --- a/plugins/tekton/package.json +++ b/plugins/tekton/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-tekton", - "version": "3.7.6", + "version": "3.7.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -62,16 +62,16 @@ "@backstage/core-app-api": "1.12.4", "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", - "@janus-idp/cli": "1.9.0", - "@playwright/test": "1.41.2", + "@janus-idp/cli": "1.10.0", + "@playwright/test": "1.44.1", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "14.3.1", "@testing-library/react-hooks": "8.0.1", "@testing-library/user-event": "14.5.2", - "@types/node": "18.18.5", + "@types/node": "18.19.34", "cross-fetch": "4.0.0", - "msw": "1.3.2" + "msw": "1.3.3" }, "files": [ "dist", diff --git a/plugins/topology/CHANGELOG.md b/plugins/topology/CHANGELOG.md index b4da974063..61805f7d8a 100644 --- a/plugins/topology/CHANGELOG.md +++ b/plugins/topology/CHANGELOG.md @@ -1,3 +1,18 @@ +## @janus-idp/backstage-plugin-topology [1.21.10](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-topology@1.21.9...@janus-idp/backstage-plugin-topology@1.21.10) (2024-06-07) + + +### Bug Fixes + +* **topology:** remove check for catalog entity permission ([#1800](https://github.com/janus-idp/backstage-plugins/issues/1800)) ([fd6ae41](https://github.com/janus-idp/backstage-plugins/commit/fd6ae41f8d4438f58d74dbf1163df25c335eef61)) + +## @janus-idp/backstage-plugin-topology [1.21.9](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-topology@1.21.8...@janus-idp/backstage-plugin-topology@1.21.9) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-topology [1.21.8](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-topology@1.21.7...@janus-idp/backstage-plugin-topology@1.21.8) (2024-06-04) diff --git a/plugins/topology/package.json b/plugins/topology/package.json index e8d81f25da..f6fee9aa07 100644 --- a/plugins/topology/package.json +++ b/plugins/topology/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-topology", - "version": "1.21.8", + "version": "1.21.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,7 +29,6 @@ "@backstage/catalog-model": "^1.4.5", "@backstage/core-components": "^0.14.6", "@backstage/core-plugin-api": "^1.9.2", - "@backstage/plugin-catalog-common": "^1.0.23", "@backstage/plugin-catalog-react": "^1.11.3", "@backstage/plugin-kubernetes": "^0.11.9", "@backstage/plugin-kubernetes-common": "^0.7.5", @@ -64,7 +63,7 @@ "@backstage/core-app-api": "1.12.4", "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "14.3.1", diff --git a/plugins/topology/src/components/Topology/TopologyViewWorkloadComponent.tsx b/plugins/topology/src/components/Topology/TopologyViewWorkloadComponent.tsx index 906cea2fcd..0f27f6907f 100644 --- a/plugins/topology/src/components/Topology/TopologyViewWorkloadComponent.tsx +++ b/plugins/topology/src/components/Topology/TopologyViewWorkloadComponent.tsx @@ -25,7 +25,6 @@ import TopologyToolbar from './TopologyToolbar'; import './TopologyToolbar.css'; -import { catalogEntityReadPermission } from '@backstage/plugin-catalog-common/alpha'; import { usePermission } from '@backstage/plugin-permission-react'; import { topologyViewPermission } from '@janus-idp/backstage-plugin-topology-common'; @@ -58,11 +57,6 @@ const TopologyViewWorkloadComponent = ({ permission: topologyViewPermission, }); - const catalogEntityPermissionResult = usePermission({ - permission: catalogEntityReadPermission, - resourceRef: catalogEntityReadPermission.resourceType, - }); - const allErrors: ClusterErrors = [ ...(responseError ? [{ message: responseError }] : []), ...(selectedClusterErrors ?? []), @@ -117,6 +111,21 @@ const TopologyViewWorkloadComponent = ({ const isDataModelEmpty = loaded && dataModel?.nodes?.length === 0; + const getTopologyState = () => { + if (isDataModelEmpty) { + return ; + } + if (!topologyViewPermissionResult.allowed) { + return ( + + ); + } + return ; + }; + return ( <> {allErrors && allErrors.length > 0 && ( @@ -140,18 +149,7 @@ const TopologyViewWorkloadComponent = ({ sideBarOpen={sideBarOpen} minSideBarSize="400px" > - {isDataModelEmpty || - !( - topologyViewPermissionResult.allowed && - catalogEntityPermissionResult.allowed - ) ? ( - - ) : ( - - )} + {getTopologyState()} )} diff --git a/plugins/web-terminal/CHANGELOG.md b/plugins/web-terminal/CHANGELOG.md index 2b23066887..ec3bef0621 100644 --- a/plugins/web-terminal/CHANGELOG.md +++ b/plugins/web-terminal/CHANGELOG.md @@ -1,3 +1,11 @@ +## @janus-idp/backstage-plugin-web-terminal [1.5.8](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-web-terminal@1.5.7...@janus-idp/backstage-plugin-web-terminal@1.5.8) (2024-06-05) + + + +### Dependencies + +* **@janus-idp/cli:** upgraded to 1.10.0 + ## @janus-idp/backstage-plugin-web-terminal [1.5.7](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-web-terminal@1.5.6...@janus-idp/backstage-plugin-web-terminal@1.5.7) (2024-06-04) ## @janus-idp/backstage-plugin-web-terminal [1.5.6](https://github.com/janus-idp/backstage-plugins/compare/@janus-idp/backstage-plugin-web-terminal@1.5.5...@janus-idp/backstage-plugin-web-terminal@1.5.6) (2024-06-03) diff --git a/plugins/web-terminal/package.json b/plugins/web-terminal/package.json index 6bbae627cb..4679f333b4 100644 --- a/plugins/web-terminal/package.json +++ b/plugins/web-terminal/package.json @@ -1,6 +1,6 @@ { "name": "@janus-idp/backstage-plugin-web-terminal", - "version": "1.5.7", + "version": "1.5.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -49,7 +49,7 @@ "@backstage/core-app-api": "1.12.4", "@backstage/dev-utils": "1.0.31", "@backstage/test-utils": "1.5.4", - "@janus-idp/cli": "1.9.0", + "@janus-idp/cli": "1.10.0", "@redhat-developer/red-hat-developer-hub-theme": "0.0.54", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "14.3.1", diff --git a/yarn.lock b/yarn.lock index 448bde3b97..d6dd50444d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -61,17 +61,6 @@ call-me-maybe "^1.0.1" js-yaml "^3.13.1" -"@apidevtools/json-schema-ref-parser@^10.1.0": - version "10.1.0" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-10.1.0.tgz#bf54494039a56fa7f77fed17dc6f01dfde50f64c" - integrity sha512-3e+viyMuXdrcK8v5pvP+SDoAQ77FH6OyRmuK48SZKmdHJRFm87RsSs8qm6kP39a/pOPURByJw+OXzQIqcfmKtA== - dependencies: - "@jsdevtools/ono" "^7.1.3" - "@types/json-schema" "^7.0.11" - "@types/lodash.clonedeep" "^4.5.7" - js-yaml "^4.1.0" - lodash.clonedeep "^4.5.0" - "@apidevtools/json-schema-ref-parser@^11.1.0": version "11.6.1" resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.1.tgz#ce462f4fe6d1f952f3695f3c05eac955f177ac43" @@ -81,6 +70,15 @@ "@types/json-schema" "^7.0.15" js-yaml "^4.1.0" +"@apidevtools/json-schema-ref-parser@^11.2.0": + version "11.6.4" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.4.tgz#0f3e02302f646471d621a8850e6a346d63c8ebd4" + integrity sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w== + dependencies: + "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.15" + js-yaml "^4.1.0" + "@apidevtools/json-schema-ref-parser@^9.1.2": version "9.1.2" resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz#8ff5386b365d4c9faa7c8b566ff16a46a577d9b8" @@ -7343,7 +7341,7 @@ "@types/set-cookie-parser" "^2.4.0" set-cookie-parser "^2.4.6" -"@mswjs/interceptors@^0.17.10", "@mswjs/interceptors@^0.17.5": +"@mswjs/interceptors@^0.17.10": version "0.17.10" resolved "https://registry.yarnpkg.com/@mswjs/interceptors/-/interceptors-0.17.10.tgz#857b41f30e2b92345ed9a4e2b1d0a08b8b6fcad4" integrity sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw== @@ -8696,29 +8694,7 @@ dependencies: fast-deep-equal "^3.1.3" -"@openapitools/openapi-generator-cli@2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.7.0.tgz#5e8001a01b088bbb65ee7aa85cb73cdf88a0363e" - integrity sha512-ieEpHTA/KsDz7ANw03lLPYyjdedDEXYEyYoGBRWdduqXWSX65CJtttjqa8ZaB1mNmIjMtchUHwAYQmTLVQ8HYg== - dependencies: - "@nestjs/axios" "0.1.0" - "@nestjs/common" "9.3.11" - "@nestjs/core" "9.3.11" - "@nuxtjs/opencollective" "0.3.2" - chalk "4.1.2" - commander "8.3.0" - compare-versions "4.1.4" - concurrently "6.5.1" - console.table "0.10.0" - fs-extra "10.1.0" - glob "7.1.6" - inquirer "8.2.5" - lodash "4.17.21" - reflect-metadata "0.1.13" - rxjs "7.8.0" - tslib "2.0.3" - -"@openapitools/openapi-generator-cli@^2.7.0": +"@openapitools/openapi-generator-cli@2.13.4", "@openapitools/openapi-generator-cli@^2.7.0": version "2.13.4" resolved "https://registry.yarnpkg.com/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.13.4.tgz#8557fdec317cc6a669c615a35a5ddaa00fc269b4" integrity sha512-4JKyrk55ohQK2FcuZbPdNvxdyXD14jjOIvE8hYjJ+E1cHbRbfXQXbYnjTODFE52Gx8eAxz8C9icuhDYDLn7nww== @@ -8742,6 +8718,28 @@ rxjs "7.8.1" tslib "2.6.2" +"@openapitools/openapi-generator-cli@2.7.0": + version "2.7.0" + resolved "https://registry.yarnpkg.com/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.7.0.tgz#5e8001a01b088bbb65ee7aa85cb73cdf88a0363e" + integrity sha512-ieEpHTA/KsDz7ANw03lLPYyjdedDEXYEyYoGBRWdduqXWSX65CJtttjqa8ZaB1mNmIjMtchUHwAYQmTLVQ8HYg== + dependencies: + "@nestjs/axios" "0.1.0" + "@nestjs/common" "9.3.11" + "@nestjs/core" "9.3.11" + "@nuxtjs/opencollective" "0.3.2" + chalk "4.1.2" + commander "8.3.0" + compare-versions "4.1.4" + concurrently "6.5.1" + console.table "0.10.0" + fs-extra "10.1.0" + glob "7.1.6" + inquirer "8.2.5" + lodash "4.17.21" + reflect-metadata "0.1.13" + rxjs "7.8.0" + tslib "2.0.3" + "@openshift/dynamic-plugin-sdk-webpack@^3.0.0": version "3.0.1" resolved "https://registry.yarnpkg.com/@openshift/dynamic-plugin-sdk-webpack/-/dynamic-plugin-sdk-webpack-3.0.1.tgz#ae62d6b48910ad652d20fd0a725c981826ed98be" @@ -8883,13 +8881,6 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@playwright/test@1.41.2": - version "1.41.2" - resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.41.2.tgz#bd9db40177f8fd442e16e14e0389d23751cdfc54" - integrity sha512-qQB9h7KbibJzrDpkXkYvsmiDJK14FULCCZgEcoe2AvFAS64oCirWTwzTlAYEbKaRxWs5TFesE1Na6izMv3HfGg== - dependencies: - playwright "1.41.2" - "@playwright/test@1.44.1": version "1.44.1" resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.44.1.tgz#cc874ec31342479ad99838040e99b5f604299bcb" @@ -14219,23 +14210,16 @@ dependencies: "@types/node" "*" -"@types/lodash.clonedeep@^4.5.7": - version "4.5.9" - resolved "https://registry.yarnpkg.com/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.9.tgz#ea48276c7cc18d080e00bb56cf965bcceb3f0fc1" - integrity sha512-19429mWC+FyaAhOLzsS8kZUsI+/GmBAQ0HFiCPsKGU+7pBXOQWhyrY6xNNDwUSX8SMZMJvuFVMF9O5dQOlQK9Q== - dependencies: - "@types/lodash" "*" - -"@types/lodash@*", "@types/lodash@^4.14.167", "@types/lodash@^4.14.175": - version "4.17.1" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.1.tgz#0fabfcf2f2127ef73b119d98452bd317c4a17eb8" - integrity sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q== - "@types/lodash@4.17.4": version "4.17.4" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.4.tgz#0303b64958ee070059e3a7184048a55159fe20b7" integrity sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ== +"@types/lodash@^4.14.167", "@types/lodash@^4.14.175": + version "4.17.1" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.1.tgz#0fabfcf2f2127ef73b119d98452bd317c4a17eb8" + integrity sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q== + "@types/long@^4.0.0": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" @@ -14329,11 +14313,6 @@ dependencies: undici-types "~5.26.4" -"@types/node@18.18.5": - version "18.18.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.5.tgz#afc0fd975df946d6e1add5bbf98264225b212244" - integrity sha512-4slmbtwV59ZxitY4ixUZdy1uRLf9eSIvBWPQxNjhHYWEtn0FryfKpyS2cvADYXTayWdKEIsJengncrVvkI4I6A== - "@types/node@18.19.33", "@types/node@^18.0.0", "@types/node@^18.11.18": version "18.19.33" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.33.tgz#98cd286a1b8a5e11aa06623210240bcc28e95c48" @@ -14341,6 +14320,13 @@ dependencies: undici-types "~5.26.4" +"@types/node@18.19.34": + version "18.19.34" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.34.tgz#c3fae2bbbdb94b4a52fe2d229d0dccce02ef3d27" + integrity sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g== + dependencies: + undici-types "~5.26.4" + "@types/node@20.14.0": version "20.14.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.0.tgz#49ceec7b34f8621470cff44677fa9d461a477f17" @@ -14348,12 +14334,12 @@ dependencies: undici-types "~5.26.4" -"@types/node@20.8.7": - version "20.8.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.7.tgz#ad23827850843de973096edfc5abc9e922492a25" - integrity sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ== +"@types/node@20.14.2": + version "20.14.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18" + integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q== dependencies: - undici-types "~5.25.1" + undici-types "~5.26.4" "@types/node@^12.7.1": version "12.20.55" @@ -16971,14 +16957,6 @@ chalk@2.4.2, chalk@^2.3.2, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -22042,7 +22020,7 @@ graphql-ws@^5.14.0, graphql-ws@^5.4.1: resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.16.0.tgz#849efe02f384b4332109329be01d74c345842729" integrity sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A== -"graphql@^15.0.0 || ^16.0.0", graphql@^16.0.0, graphql@^16.8.1: +graphql@^16.0.0, graphql@^16.8.1: version "16.8.1" resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== @@ -22260,11 +22238,6 @@ headers-polyfill@3.2.5: resolved "https://registry.yarnpkg.com/headers-polyfill/-/headers-polyfill-3.2.5.tgz#6e67d392c9d113d37448fe45014e0afdd168faed" integrity sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA== -headers-polyfill@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/headers-polyfill/-/headers-polyfill-3.3.0.tgz#67c6ef7b72d4c8cac832ad5936f5b3a56e7b705a" - integrity sha512-5e57etwBpNcDc0b6KCVWEh/Ro063OxPvzVimUdM0/tsYM/T7Hfy3kknIGj78SFTOhNd8AZY41U8mOHoO4LzmIQ== - helmet@^6.0.0: version "6.2.0" resolved "https://registry.yarnpkg.com/helmet/-/helmet-6.2.0.tgz#c29d62014be4c70b8ef092c9c5e54c8c26b8e16e" @@ -23325,7 +23298,7 @@ is-network-error@^1.0.0: resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.1.0.tgz#d26a760e3770226d11c169052f266a4803d9c997" integrity sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g== -is-node-process@^1.0.1, is-node-process@^1.2.0: +is-node-process@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-node-process/-/is-node-process-1.2.0.tgz#ea02a1b90ddb3934a19aea414e88edef7e11d134" integrity sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw== @@ -27067,56 +27040,6 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -msw@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/msw/-/msw-1.0.0.tgz#4f8e63aa23912561a63b99ff560a089da6969418" - integrity sha512-8QVa1RAN/Nzbn/tKmtimJ+b2M1QZOMdETQW7/1TmBOZ4w+wJojfxuh1Hj5J4FYdBgZWW/TK4CABUOlOM4OjTOA== - dependencies: - "@mswjs/cookies" "^0.2.2" - "@mswjs/interceptors" "^0.17.5" - "@open-draft/until" "^1.0.3" - "@types/cookie" "^0.4.1" - "@types/js-levenshtein" "^1.1.1" - chalk "4.1.1" - chokidar "^3.4.2" - cookie "^0.4.2" - graphql "^15.0.0 || ^16.0.0" - headers-polyfill "^3.1.0" - inquirer "^8.2.0" - is-node-process "^1.0.1" - js-levenshtein "^1.1.6" - node-fetch "^2.6.7" - outvariant "^1.3.0" - path-to-regexp "^6.2.0" - strict-event-emitter "^0.4.3" - type-fest "^2.19.0" - yargs "^17.3.1" - -msw@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/msw/-/msw-1.3.2.tgz#35e0271293e893fc3c55116e90aad5d955c66899" - integrity sha512-wKLhFPR+NitYTkQl5047pia0reNGgf0P6a1eTnA5aNlripmiz0sabMvvHcicE8kQ3/gZcI0YiPFWmYfowfm3lA== - dependencies: - "@mswjs/cookies" "^0.2.2" - "@mswjs/interceptors" "^0.17.10" - "@open-draft/until" "^1.0.3" - "@types/cookie" "^0.4.1" - "@types/js-levenshtein" "^1.1.1" - chalk "^4.1.1" - chokidar "^3.4.2" - cookie "^0.4.2" - graphql "^16.8.1" - headers-polyfill "3.2.5" - inquirer "^8.2.0" - is-node-process "^1.2.0" - js-levenshtein "^1.1.6" - node-fetch "^2.6.7" - outvariant "^1.4.0" - path-to-regexp "^6.2.0" - strict-event-emitter "^0.4.3" - type-fest "^2.19.0" - yargs "^17.3.1" - msw@1.3.3, msw@^1.0.0: version "1.3.3" resolved "https://registry.yarnpkg.com/msw/-/msw-1.3.3.tgz#0b6f173db07292e1cf096b435878932dcf78f208" @@ -28364,21 +28287,21 @@ openapi-backend@^5.10.5, openapi-backend@^5.6.2: openapi-types "^12.0.2" qs "^6.9.3" -openapi-client-axios-typegen@^7.4.1: - version "7.6.0" - resolved "https://registry.yarnpkg.com/openapi-client-axios-typegen/-/openapi-client-axios-typegen-7.6.0.tgz#fc576e677c28ed5179cb6a2eb85d3962fa7ce8b3" - integrity sha512-zS0/N7dlgAHfVRumLSvlBpKv3/yYa4uaf1tZM+n9AyZDifZu+2oUrWT/a39yVYNfwUxL9XklQXnnOTLNvWVpXg== +openapi-client-axios-typegen@^7.5.4: + version "7.6.1" + resolved "https://registry.yarnpkg.com/openapi-client-axios-typegen/-/openapi-client-axios-typegen-7.6.1.tgz#4f2e34819f47dd61e10e0e96a9e6e218b52f8664" + integrity sha512-NDpf9rWh+TdZWN/njaCrGXryoVtxjboBxYSDnkUzAVXQmFGd+KEFjmSnYzEOx+vnUT4LAkqM+FHtoDljwFOd0g== dependencies: "@anttiviljami/dtsgenerator" "^3.19.3" - "@apidevtools/json-schema-ref-parser" "^10.1.0" + "@apidevtools/json-schema-ref-parser" "^11.2.0" axios ">=0.25.0" indent-string "^4.0.0" lodash "^4.17.21" - openapi-client-axios "^7.5.4" + openapi-client-axios "^7.5.5" openapi-types "^12.1.0" yargs "^17.3.0" -openapi-client-axios@^7.4.0, openapi-client-axios@^7.5.4: +openapi-client-axios@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/openapi-client-axios/-/openapi-client-axios-7.5.4.tgz#6132d093c530c95d269186e748eb513e50c77c4e" integrity sha512-ZVzGRobfNjV1EWVlQ8R1ycpx+36bn6uAxrQotII6gy9fFmEoYgkMBM2qlrbfa3JgPO8G3A2bLF4dV7oyCJK2Pg== @@ -28387,6 +28310,15 @@ openapi-client-axios@^7.4.0, openapi-client-axios@^7.5.4: dereference-json-schema "^0.2.1" openapi-types "^12.1.3" +openapi-client-axios@^7.5.5: + version "7.5.5" + resolved "https://registry.yarnpkg.com/openapi-client-axios/-/openapi-client-axios-7.5.5.tgz#4cb2bb7484ff9d1c92d9ff509db235cc35d64f38" + integrity sha512-pgCo1z+rxtYmGQXzB+N5DiXvRurTP6JqV+Ao/wtaGUMIIIM+znh3nTztps+FZS8mZgWnDHpdEzL9bWtZuWuvoA== + dependencies: + bath-es5 "^3.0.3" + dereference-json-schema "^0.2.1" + openapi-types "^12.1.3" + openapi-merge@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/openapi-merge/-/openapi-merge-1.3.2.tgz#dc77a8e85ac63a5d7373eb63f05ab8b93ff78380" @@ -28453,10 +28385,10 @@ openapi@^1.0.1: object-hash "^2.0.3" url-parse "^1.4.7" -openapicmd@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/openapicmd/-/openapicmd-2.1.0.tgz#ac68e0717fb63018486784f03ebda105ed939fbc" - integrity sha512-AMe2rEXUCMZoJ7s6rYyVXauRtI0vFhm70lsn+QrV4HLItFK959GghCblgO3BXxqJ4SP4P8f+BY/74RRn0t0ZNA== +openapicmd@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/openapicmd/-/openapicmd-2.3.1.tgz#371b2b874bf36a3b0e6e4b52fcf36aa822fd535a" + integrity sha512-bqhJKUbHqjl4gVcHPcAwzdF2EeOVAo6X793DS/hD0whvUk5eVtMKdNZNmtsKvlS9F6DAksjy08EnJj7a+Y7OJA== dependencies: "@apidevtools/swagger-parser" "^10.1.0" "@koa/cors" "^4.0.0" @@ -28488,8 +28420,8 @@ openapicmd@2.1.0: koa-router "^12.0.0" koa-static "^5.0.0" openapi-backend "^5.6.2" - openapi-client-axios "^7.4.0" - openapi-client-axios-typegen "^7.4.1" + openapi-client-axios "^7.5.4" + openapi-client-axios-typegen "^7.5.4" swagger-editor-dist "^4.11.2" swagger-ui-dist "^5.9.0" swagger2openapi "^7.0.8" @@ -28567,7 +28499,7 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== -outvariant@^1.2.1, outvariant@^1.3.0, outvariant@^1.4.0: +outvariant@^1.2.1, outvariant@^1.4.0: version "1.4.2" resolved "https://registry.yarnpkg.com/outvariant/-/outvariant-1.4.2.tgz#f54f19240eeb7f15b28263d5147405752d8e2066" integrity sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ== @@ -29440,25 +29372,11 @@ pkginfo@^0.4.1: resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" integrity sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ== -playwright-core@1.41.2: - version "1.41.2" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.41.2.tgz#db22372c708926c697acc261f0ef8406606802d9" - integrity sha512-VaTvwCA4Y8kxEe+kfm2+uUUw5Lubf38RxF7FpBxLPmGe5sdNkSg5e3ChEigaGrX7qdqT3pt2m/98LiyvU2x6CA== - playwright-core@1.44.1: version "1.44.1" resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.44.1.tgz#53ec975503b763af6fc1a7aa995f34bc09ff447c" integrity sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA== -playwright@1.41.2: - version "1.41.2" - resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.41.2.tgz#4e760b1c79f33d9129a8c65cc27953be6dd35042" - integrity sha512-v0bOa6H2GJChDL8pAeLa/LZC4feoAMbSQm1/jF/ySsWWoaNItvrMP7GEkvEEFyCTUYKMxjQKaTSg5up7nR6/8A== - dependencies: - playwright-core "1.41.2" - optionalDependencies: - fsevents "2.3.2" - playwright@1.44.1: version "1.44.1" resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.44.1.tgz#5634369d777111c1eea9180430b7a184028e7892" @@ -33021,7 +32939,16 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -33108,7 +33035,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@6.0, strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -33122,6 +33049,13 @@ strip-ansi@5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@6.0, strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -34544,11 +34478,6 @@ underscore@~1.7.0: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" integrity sha512-cp0oQQyZhUM1kpJDLdGO1jPZHgS/MpzoWYfe9+CM2h/QGDZlqwT2T3YGukuBdaNJ/CAPoeyAZRRHz8JFo176vA== -undici-types@~5.25.1: - version "5.25.3" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.25.3.tgz#e044115914c85f0bcbb229f346ab739f064998c3" - integrity sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA== - undici-types@~5.26.4: version "5.26.5" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" @@ -35955,7 +35884,7 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -35973,6 +35902,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"