From 22731f4bc1a3cfc0d70f35d1044d5d7f86ddcf7d Mon Sep 17 00:00:00 2001 From: Manabu McCloskey Date: Thu, 7 Mar 2024 11:26:01 -0800 Subject: [PATCH 1/6] wip --- examples/k8s-apply/skeleton/cm.yaml | 17 + examples/k8s-apply/template.yaml | 30 ++ packages/backend/package.json | 3 + packages/backend/src/plugins/k8s-apply.ts | 171 ++++++ packages/backend/src/plugins/scaffolder.ts | 4 +- yarn.lock | 572 ++++++++++++++++----- 6 files changed, 670 insertions(+), 127 deletions(-) create mode 100644 examples/k8s-apply/skeleton/cm.yaml create mode 100644 examples/k8s-apply/template.yaml create mode 100644 packages/backend/src/plugins/k8s-apply.ts diff --git a/examples/k8s-apply/skeleton/cm.yaml b/examples/k8s-apply/skeleton/cm.yaml new file mode 100644 index 0000000..624feac --- /dev/null +++ b/examples/k8s-apply/skeleton/cm.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: game-demo +data: + # property-like keys; each key maps to a simple value + player_initial_lives: "3" + ui_properties_file_name: "user-interface.properties" + + # file-like keys + game.properties: | + enemy.types=aliens,monsters + player.maximum-lives=5 + user-interface.properties: | + color.good=purple + color.bad=yellow + allow.textmode=true diff --git a/examples/k8s-apply/template.yaml b/examples/k8s-apply/template.yaml new file mode 100644 index 0000000..3f097c3 --- /dev/null +++ b/examples/k8s-apply/template.yaml @@ -0,0 +1,30 @@ +apiVersion: scaffolder.backstage.io/v1beta3 +kind: Template +metadata: + name: deploy-resources + title: Deploy Resources + description: Deploy Resource to Kubernetes +spec: + owner: guest + type: service + # these are the steps which are rendered in the frontend with the form input + parameters: + - title: file name + properties: + path: + type: string + description: file name + default: cm.yaml + steps: + - id: template + name: Generating component + action: fetch:template + input: + url: ./skeleton + - id: apply + name: apply-manifest + action: cnoe:kubernetes:apply + input: + namespaced: true + manifestPath: cm.yaml + clusterName: local diff --git a/packages/backend/package.json b/packages/backend/package.json index 793c00c..48c0316 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -41,6 +41,7 @@ "@backstage/plugin-search-backend-node": "~1.2.13", "@backstage/plugin-techdocs-backend": "~1.9.2", "@backstage/types": "~1.1.1", + "@kubernetes/client-node": "~0.20.0", "@roadiehq/backstage-plugin-argo-cd-backend": "~2.14.0", "@roadiehq/scaffolder-backend-module-utils": "~1.13.1", "app": "link:../app", @@ -48,6 +49,7 @@ "dockerode": "^3.3.1", "express": "^4.17.1", "express-promise-router": "^4.1.0", + "fs-extra": "~11.2.0", "node-gyp": "^9.0.0", "pg": "^8.11.3", "winston": "^3.2.1" @@ -57,6 +59,7 @@ "@types/dockerode": "^3.3.0", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5", + "@types/fs-extra": "^11.0.4", "@types/luxon": "^2.0.4" }, "files": [ diff --git a/packages/backend/src/plugins/k8s-apply.ts b/packages/backend/src/plugins/k8s-apply.ts new file mode 100644 index 0000000..0810cb1 --- /dev/null +++ b/packages/backend/src/plugins/k8s-apply.ts @@ -0,0 +1,171 @@ +import { createTemplateAction, executeShellCommand} from '@backstage/plugin-scaffolder-node'; +import { dumpYaml } from '@kubernetes/client-node'; +import YAML from 'yaml'; +import { Config } from '@backstage/config'; +import { resolveSafeChildPath } from '@backstage/backend-common'; +import fs from 'fs-extra'; + +export const createKubernetesApply = (config: Config) => { + return createTemplateAction<{ + manifestString?: string; + manifestObject?: any; + manifestPath?: string; + namespaced: boolean; + clusterName?: string; + }>({ + id: 'cnoe:kubernetes:apply', + schema: { + input: { + type: 'object', + required: ['namespaced'], + properties: { + manifestString: { + type: 'string', + title: 'Manifest', + description: + 'The manifest to apply in the cluster. Must be a string', + }, + manifestObject: { + type: 'object', + title: 'Manifest', + description: + 'The manifest to apply in the cluster. Must be an object', + }, + manifestPath: { + type: 'string', + title: 'Path to the manifest file', + description: 'The path to the manifest file.', + }, + namespaced: { + type: 'boolean', + title: 'Namespaced', + description: 'Whether the API is namespaced or not', + }, + clusterName: { + type: 'string', + title: 'Cluster Name', + description: 'The name of the cluster to apply this', + }, + }, + }, + output: { + type: 'object', + title: 'Returned object', + description: + 'The object returned by Kubernetes by performing this operation', + }, + }, + async handler(ctx) { + let obj: any; + if (ctx.input.manifestString) { + obj = YAML.parse(ctx.input.manifestString); + } else if (ctx.input.manifestObject) { + obj = ctx.input.manifestObject; + } else { + const filePath = resolveSafeChildPath( + ctx.workspacePath, + ctx.input.manifestPath!, + ); + const fileContent = fs.readFileSync(filePath, 'utf8'); + obj = YAML.parse(fileContent); + } + + if (ctx.input.clusterName) { + // Supports SA token authentication only + const targetCluster = getClusterConfig(ctx.input.clusterName!, config); + const confFile = { + apiVersion: 'v1', + kind: 'Config', + 'current-context': ctx.input.clusterName, + contexts: [ + { + name: ctx.input.clusterName, + context: { + cluster: ctx.input.clusterName, + user: ctx.input.clusterName, + }, + }, + ], + clusters: [ + { + name: ctx.input.clusterName, + cluster: { + 'certificate-authority-data': targetCluster.getOptionalString('caData'), + server: targetCluster.getString('url'), + 'insecure-skip-tls-verify': !!targetCluster.getOptionalBoolean('skipTLSVerify'), + }, + }, + ], + users: [ + { + name: ctx.input.clusterName, + user: { + token: targetCluster.getString('serviceAccountToken'), + }, + }, + ], + }; + + if (!confFile.clusters[0].cluster["insecure-skip-tls-verify"]) { + let caDataRaw = targetCluster.getOptionalString('caData') + if (caDataRaw?.startsWith('-----BEGIN CERTIFICATE-----')) { + caDataRaw = Buffer.from(targetCluster.getString('caData'), 'utf8').toString( + 'base64', + ); + } + confFile.clusters[0].cluster['certificate-authority-data'] = caDataRaw + } + + const confString = dumpYaml(confFile); + const confFilePath = resolveSafeChildPath(ctx.workspacePath, 'config'); + fs.writeFileSync(confFilePath, confString, { + encoding: 'utf8', + mode: '600', + }); + const manifestPath = resolveSafeChildPath( + ctx.workspacePath, + ctx.input.manifestPath!, + ); + if (obj.metadata.generateName !== undefined) { + await executeShellCommand({ + command: 'kubectl', + args: ['--kubeconfig', confFilePath, 'create', '-f', manifestPath], + logStream: ctx.logStream, + }); + return; + } + await executeShellCommand({ + command: 'kubectl', + args: ['--kubeconfig', confFilePath, 'apply', '-f', manifestPath], + logStream: ctx.logStream, + }); + return; + } + throw new Error("please specify a valid cluster name") + }, + }); +}; + +// Finds the first cluster that matches the given name. +function getClusterConfig(name: string, config: Config): Config { + const clusterConfigs = config + .getConfigArray('kubernetes.clusterLocatorMethods') + .filter((val: Config) => { + return val.getString('type') === 'config'; + }); + + const clusters = new Array(); + clusterConfigs.filter((conf: Config) => { + const cluster = conf.getConfigArray('clusters').find((val: Config) => { + return val.getString('name') === name; + }); + if (cluster) { + clusters.push(cluster); + } + }); + + if (clusters.length === 0) { + throw new Error(`Cluster with name ${name} not found`); + } + return clusters[0]; +} diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts index a577370..b0a31b3 100644 --- a/packages/backend/src/plugins/scaffolder.ts +++ b/packages/backend/src/plugins/scaffolder.ts @@ -21,6 +21,7 @@ import { createJsonJSONataTransformAction, createReplaceInFileAction } from '@roadiehq/scaffolder-backend-module-utils'; +import {createKubernetesApply} from "./k8s-apply"; export default async function createPlugin( env: PluginEnvironment, @@ -48,7 +49,8 @@ export default async function createPlugin( const cnoeActions = [ createPublishGiteaAction(options), - createArgoCDApp(argocdOptions) + createArgoCDApp(argocdOptions), + createKubernetesApply(env.config) ] const roadieUtilActions = [ diff --git a/yarn.lock b/yarn.lock index fd8d6f3..3854156 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2064,21 +2064,21 @@ "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" -"@backstage/backend-app-api@^0.5.10", "@backstage/backend-app-api@^0.5.8": - version "0.5.10" - resolved "https://registry.npmmirror.com/@backstage/backend-app-api/-/backend-app-api-0.5.10.tgz#ec0cbebe9c2aebdfce6605bcafb8696bb1959a02" - integrity sha512-eD6CeHWaNsSjs3zHgQ8qio4kzqtnIgzAH71aUwaiOiiibtsBiueRCCmYNbibbEh/9eSZEm6nl0eIk0bKCDvnHQ== +"@backstage/backend-app-api@^0.5.10", "@backstage/backend-app-api@^0.5.14", "@backstage/backend-app-api@^0.5.8": + version "0.5.14" + resolved "https://registry.npmmirror.com/@backstage/backend-app-api/-/backend-app-api-0.5.14.tgz#a110bdbebc3b8b1b302b0726b7c92b2742fb5e3f" + integrity sha512-Sqd5WRkp5x0JxK0ms5shes+VXmJ/t9++Z88CR8N3oBtp3H0t+iKewxOlgHhvYZKPyPiVCXZqKu7eCWH9UZ+Gqg== dependencies: - "@backstage/backend-common" "^0.20.1" - "@backstage/backend-plugin-api" "^0.6.9" - "@backstage/backend-tasks" "^0.5.14" + "@backstage/backend-common" "^0.21.3" + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/backend-tasks" "^0.5.18" "@backstage/cli-common" "^0.1.13" - "@backstage/cli-node" "^0.2.2" + "@backstage/cli-node" "^0.2.3" "@backstage/config" "^1.1.1" - "@backstage/config-loader" "^1.6.1" + "@backstage/config-loader" "^1.6.2" "@backstage/errors" "^1.2.3" - "@backstage/plugin-auth-node" "^0.4.3" - "@backstage/plugin-permission-node" "^0.7.20" + "@backstage/plugin-auth-node" "^0.4.8" + "@backstage/plugin-permission-node" "^0.7.24" "@backstage/types" "^1.1.1" "@manypkg/get-packages" "^1.1.3" "@types/cors" "^2.8.6" @@ -2087,7 +2087,7 @@ cors "^2.8.5" express "^4.17.1" express-promise-router "^4.1.0" - fs-extra "10.1.0" + fs-extra "^11.2.0" helmet "^6.0.0" lodash "^4.17.21" logform "^2.3.2" @@ -2222,10 +2222,71 @@ yauzl "^2.10.0" yn "^4.0.0" -"@backstage/backend-dev-utils@^0.1.2", "@backstage/backend-dev-utils@^0.1.3": - version "0.1.3" - resolved "https://registry.npmmirror.com/@backstage/backend-dev-utils/-/backend-dev-utils-0.1.3.tgz#31412b8e14027718a7cf229474e032acd862a1a3" - integrity sha512-vq0zdpiAuMMAsaWavpCwmA4psi2EFoYmDEP5Kk9xU+jcDMTAH+ArNY+sn6fZ/6cA7IJEYNu6pFFEAXfn+dh6yg== +"@backstage/backend-common@^0.21.3": + version "0.21.3" + resolved "https://registry.npmmirror.com/@backstage/backend-common/-/backend-common-0.21.3.tgz#67d757d1ff81a79121bdbe80b3032542f5ff571f" + integrity sha512-kqJ5p/Cd3dRcvVoVLIo6kYi5MMy5/uQBibt92o4QKHclagPJ2KLKJOUXwDpAtCw8MLe4Dtms9hj19SoU+wsFCQ== + dependencies: + "@aws-sdk/abort-controller" "^3.347.0" + "@aws-sdk/client-s3" "^3.350.0" + "@aws-sdk/credential-providers" "^3.350.0" + "@aws-sdk/types" "^3.347.0" + "@backstage/backend-app-api" "^0.5.14" + "@backstage/backend-dev-utils" "^0.1.4" + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/cli-common" "^0.1.13" + "@backstage/config" "^1.1.1" + "@backstage/config-loader" "^1.6.2" + "@backstage/errors" "^1.2.3" + "@backstage/integration" "^1.9.0" + "@backstage/integration-aws-node" "^0.1.9" + "@backstage/types" "^1.1.1" + "@google-cloud/storage" "^7.0.0" + "@keyv/memcache" "^1.3.5" + "@keyv/redis" "^2.5.3" + "@kubernetes/client-node" "0.20.0" + "@manypkg/get-packages" "^1.1.3" + "@octokit/rest" "^19.0.3" + "@types/cors" "^2.8.6" + "@types/dockerode" "^3.3.0" + "@types/express" "^4.17.6" + "@types/luxon" "^3.0.0" + "@types/webpack-env" "^1.15.2" + archiver "^6.0.0" + base64-stream "^1.0.0" + compression "^1.7.4" + concat-stream "^2.0.0" + cors "^2.8.5" + dockerode "^4.0.0" + express "^4.17.1" + express-promise-router "^4.1.0" + fs-extra "^11.2.0" + git-url-parse "^14.0.0" + helmet "^6.0.0" + isomorphic-git "^1.23.0" + jose "^4.6.0" + keyv "^4.5.2" + knex "^3.0.0" + lodash "^4.17.21" + logform "^2.3.2" + luxon "^3.0.0" + minimatch "^5.0.0" + mysql2 "^2.2.5" + node-fetch "^2.6.7" + p-limit "^3.1.0" + pg "^8.11.3" + raw-body "^2.4.1" + tar "^6.1.12" + uuid "^8.3.2" + winston "^3.2.1" + winston-transport "^4.5.0" + yauzl "^2.10.0" + yn "^4.0.0" + +"@backstage/backend-dev-utils@^0.1.2", "@backstage/backend-dev-utils@^0.1.3", "@backstage/backend-dev-utils@^0.1.4": + version "0.1.4" + resolved "https://registry.npmmirror.com/@backstage/backend-dev-utils/-/backend-dev-utils-0.1.4.tgz#65d204939c49b5df6a2148e8ad4dc718ccd1df07" + integrity sha512-5YgAPz4CRtnqdaUlYCHwGmXvpkGQ1jaUMoDtiQ81WDxQrf+0iYZCwS4ftVyQmB0Ga6BaGOUf6GG/OuFA56Y5mA== "@backstage/backend-openapi-utils@^0.1.2": version "0.1.2" @@ -2244,32 +2305,32 @@ openapi-merge "^1.3.2" openapi3-ts "^3.1.2" -"@backstage/backend-plugin-api@^0.6.7", "@backstage/backend-plugin-api@^0.6.9": - version "0.6.9" - resolved "https://registry.npmmirror.com/@backstage/backend-plugin-api/-/backend-plugin-api-0.6.9.tgz#da43371efb576079dc51a023db8075ea14ba2870" - integrity sha512-NKRft/mK8SqNQw01QHGpwaAc4MhRh8HaAFtWrcQex746vMr8dqwspvr8KVALIkOodVrsS9oq4VnNDSVtnCBmUA== +"@backstage/backend-plugin-api@^0.6.13", "@backstage/backend-plugin-api@^0.6.7", "@backstage/backend-plugin-api@^0.6.9": + version "0.6.13" + resolved "https://registry.npmmirror.com/@backstage/backend-plugin-api/-/backend-plugin-api-0.6.13.tgz#26bb86cb4565fead2424faa42ac603ae98a85e5b" + integrity sha512-7SAAjx2YuZvsJHokkhh9U/cCV3az25DyqWse9BQJS4UTwDsWyebGmubtFI4SOXQKKR6U5t3ogtezYJXz+9K2Yw== dependencies: - "@backstage/backend-tasks" "^0.5.14" + "@backstage/backend-tasks" "^0.5.18" "@backstage/config" "^1.1.1" - "@backstage/plugin-auth-node" "^0.4.3" + "@backstage/plugin-auth-node" "^0.4.8" "@backstage/plugin-permission-common" "^0.7.12" "@backstage/types" "^1.1.1" "@types/express" "^4.17.6" express "^4.17.1" knex "^3.0.0" -"@backstage/backend-tasks@^0.5.14", "@backstage/backend-tasks@~0.5.14": - version "0.5.14" - resolved "https://registry.npmmirror.com/@backstage/backend-tasks/-/backend-tasks-0.5.14.tgz#0c0022339daf528ecd6d39fca891642b5ed7ddb5" - integrity sha512-bVRAOM86lhOk/tG0z+oXvPdIqtusgPxMO93WaayXbr0R7Tx4Ogp8pg49s7XU4WB7Mdq+fmyiqp1VQt0NR3FCwQ== +"@backstage/backend-tasks@^0.5.14", "@backstage/backend-tasks@^0.5.18", "@backstage/backend-tasks@~0.5.14": + version "0.5.18" + resolved "https://registry.npmmirror.com/@backstage/backend-tasks/-/backend-tasks-0.5.18.tgz#fd0aeea5f8b7fca3c1434c24ba885559124390dc" + integrity sha512-uYH/qj9OIc1Iupqf4N31HKEpTzbnNavysUkcoJFGR4+vV17gvuw3JSaLUXMK1z/soansAZHliRPktsQQ51nAqQ== dependencies: - "@backstage/backend-common" "^0.20.1" + "@backstage/backend-common" "^0.21.3" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" "@backstage/types" "^1.1.1" "@opentelemetry/api" "^1.3.0" "@types/luxon" "^3.0.0" - cron "^2.0.0" + cron "^3.0.0" knex "^3.0.0" lodash "^4.17.21" luxon "^3.0.0" @@ -2277,7 +2338,17 @@ winston "^3.2.1" zod "^3.22.4" -"@backstage/catalog-client@^1.4.6", "@backstage/catalog-client@^1.5.2", "@backstage/catalog-client@~1.5.2": +"@backstage/catalog-client@^1.4.6", "@backstage/catalog-client@^1.5.2", "@backstage/catalog-client@^1.6.0": + version "1.6.0" + resolved "https://registry.npmmirror.com/@backstage/catalog-client/-/catalog-client-1.6.0.tgz#d4ba505f84a58f03177d0998becc6eb8ed54f40e" + integrity sha512-O6yoBX/BcKy89AwXmXVxNPlk0mX7jbgqYUCeIxGZr7n10A9oJx1iRj1XMub+V67yuqdfILPmh8WW+jd0N98+JA== + dependencies: + "@backstage/catalog-model" "^1.4.4" + "@backstage/errors" "^1.2.3" + cross-fetch "^4.0.0" + uri-template "^2.0.0" + +"@backstage/catalog-client@~1.5.2": version "1.5.2" resolved "https://registry.npmmirror.com/@backstage/catalog-client/-/catalog-client-1.5.2.tgz#f75e14e4e3aa473fc5db47841f531d1833e611e8" integrity sha512-hWP1Zb2KZ7owSvHdOhP+VB8eSOYbnsXz+l2OdTgMhKQS8ulGZXUW1SzA+N9PZupnQLYmZP2+2DXTpKhSEzQnnQ== @@ -2287,10 +2358,10 @@ cross-fetch "^4.0.0" uri-template "^2.0.0" -"@backstage/catalog-model@^1.4.3", "@backstage/catalog-model@~1.4.3": - version "1.4.3" - resolved "https://registry.npmmirror.com/@backstage/catalog-model/-/catalog-model-1.4.3.tgz#64abf34071d1cad6372f905b92e1d831e480750c" - integrity sha512-cfbTPWLVma/ZKxRh76aLWqSFozzXMxHoGK+Tn50dOxHHp2xmdcx5jWBtOszNJs560rR7KScD7YnImUPkNn5DWQ== +"@backstage/catalog-model@^1.4.3", "@backstage/catalog-model@^1.4.4", "@backstage/catalog-model@~1.4.3": + version "1.4.4" + resolved "https://registry.npmmirror.com/@backstage/catalog-model/-/catalog-model-1.4.4.tgz#53ebbe754c72a0e01bb7ea025af0358dc459db9c" + integrity sha512-JiCeAgUdRMQTjO0+34QeKDxYh/UQrXtDUvVic5z11uf8WuX3L9N7LiPOqJG+3t9TAyc5side21nDD7REdHoVFA== dependencies: "@backstage/errors" "^1.2.3" "@backstage/types" "^1.1.1" @@ -2302,17 +2373,17 @@ resolved "https://registry.npmmirror.com/@backstage/cli-common/-/cli-common-0.1.13.tgz#cbeda6a359ca4437fc782f0ac51bb957e8d49e73" integrity sha512-UMgNAIJSeEPSMkzxiWCP8aFR8APsG21XczDnzwHdL/41F7g2C+KA6UeQc/3tzbe8XQo+PxbNLpReZeKSSnSPSQ== -"@backstage/cli-node@^0.2.2": - version "0.2.2" - resolved "https://registry.npmmirror.com/@backstage/cli-node/-/cli-node-0.2.2.tgz#f7a6062da90a20ce9d1af161ed841fbeb96337b8" - integrity sha512-YsEeT3sAF2sxNXv7IyI/d73TEZnivSBpyiJ4STnVpFi00woN440NeRWZfqaabS1XiuGbQibxJT3xTxORw1tMFA== +"@backstage/cli-node@^0.2.2", "@backstage/cli-node@^0.2.3": + version "0.2.3" + resolved "https://registry.npmmirror.com/@backstage/cli-node/-/cli-node-0.2.3.tgz#76d31a0ccd44326d110fb3a38c0db507b79e3ddf" + integrity sha512-gSsRds/xm9nh6jV/XoOipOA8rFwlMPOAoy3vkUyB5+Z5bfEM56NSccYjPdPMt52R9zZhVWhnsMNBHVoaqr+zeg== dependencies: "@backstage/cli-common" "^0.1.13" "@backstage/errors" "^1.2.3" "@backstage/types" "^1.1.1" "@manypkg/get-packages" "^1.1.3" "@yarnpkg/parsers" "^3.0.0-rc.4" - fs-extra "10.1.0" + fs-extra "^11.2.0" semver "^7.5.3" zod "^3.22.4" @@ -2431,10 +2502,10 @@ yn "^4.0.0" zod "^3.22.4" -"@backstage/config-loader@^1.5.3", "@backstage/config-loader@^1.6.1": - version "1.6.1" - resolved "https://registry.npmmirror.com/@backstage/config-loader/-/config-loader-1.6.1.tgz#bd5bc282cddc3b26dd0346962f814bad5dbe164b" - integrity sha512-wWbM7LGrN559HPzAKMczpv2mv1OXvhtgBMCgFw0jHZx5IrR3bdRZRapFQ8rmZAtj76vSLZv58qZfpOkSR6cWVQ== +"@backstage/config-loader@^1.5.3", "@backstage/config-loader@^1.6.1", "@backstage/config-loader@^1.6.2": + version "1.6.2" + resolved "https://registry.npmmirror.com/@backstage/config-loader/-/config-loader-1.6.2.tgz#b3dea400ec18dc64e1f1236e450668fb5d27e221" + integrity sha512-RFFK1NGhg2n6OKRxkBPCO8qRmuRJ8gtEwjQdMv17V8AuaituOVDIduKW7omrq2RNr1CNJFodhGmpkHxqSkpkiQ== dependencies: "@backstage/cli-common" "^0.1.13" "@backstage/config" "^1.1.1" @@ -2443,14 +2514,14 @@ "@types/json-schema" "^7.0.6" ajv "^8.10.0" chokidar "^3.5.2" - fs-extra "10.1.0" + fs-extra "^11.2.0" json-schema "^0.4.0" json-schema-merge-allof "^0.8.1" json-schema-traverse "^1.0.0" lodash "^4.17.21" minimist "^1.2.5" node-fetch "^2.6.7" - typescript-json-schema "^0.62.0" + typescript-json-schema "^0.63.0" yaml "^2.0.0" "@backstage/config@^1.1.1", "@backstage/config@~1.1.1": @@ -2605,10 +2676,10 @@ zod "^3.22.4" zod-to-json-schema "^3.21.4" -"@backstage/integration-aws-node@^0.1.8": - version "0.1.8" - resolved "https://registry.npmmirror.com/@backstage/integration-aws-node/-/integration-aws-node-0.1.8.tgz#c0582a63e2348a42bbe172bdcd4609f024cc0051" - integrity sha512-WD/ahhk1d92ycjBOIRK2gtvuoP1nt5lNMKkfR1qsRBlgZFUPRCe7rkdELGpmRgrGBzU7ZyWfWGjLUh/Qpfva9Q== +"@backstage/integration-aws-node@^0.1.8", "@backstage/integration-aws-node@^0.1.9": + version "0.1.9" + resolved "https://registry.npmmirror.com/@backstage/integration-aws-node/-/integration-aws-node-0.1.9.tgz#66d6898e855a6a8d495d7d1bcb3bb79b6c61479c" + integrity sha512-nr3LHM9vFGtWPqWSp1lutm5+/1H6pBcMCZ2bkTn7qy/Y5Ds7l9qY+0LSMxPbIyPoaQMM2D1x/gDPEMr/pNwPAA== dependencies: "@aws-sdk/client-sts" "^3.350.0" "@aws-sdk/credential-provider-node" "^3.350.0" @@ -2630,7 +2701,22 @@ "@material-ui/icons" "^4.9.1" "@types/react" "^16.13.1 || ^17.0.0" -"@backstage/integration@^1.7.2", "@backstage/integration@^1.8.0", "@backstage/integration@~1.8.0": +"@backstage/integration@^1.7.2", "@backstage/integration@^1.8.0", "@backstage/integration@^1.9.0": + version "1.9.0" + resolved "https://registry.npmmirror.com/@backstage/integration/-/integration-1.9.0.tgz#c60b33a7ec9b3970ccd4e8d54662b686b7ad27bf" + integrity sha512-lqZcjcfLeDyHxDdmTKxiko3GX+vQCyhoNM/lgPFLJFih9TiE3V+hTc9isEfkpQqRE9dCEy1w7rgUrNHXlz0pTA== + dependencies: + "@azure/identity" "^4.0.0" + "@backstage/config" "^1.1.1" + "@backstage/errors" "^1.2.3" + "@octokit/auth-app" "^4.0.0" + "@octokit/rest" "^19.0.3" + cross-fetch "^4.0.0" + git-url-parse "^14.0.0" + lodash "^4.17.21" + luxon "^3.0.0" + +"@backstage/integration@~1.8.0": version "1.8.0" resolved "https://registry.npmmirror.com/@backstage/integration/-/integration-1.8.0.tgz#affc54e1c12c5a4e68a92de4e42c6cf001bdf6ec" integrity sha512-FCFOubvpKK2dt38sNATrImHrS0pkmvS2LPzvLQ01JzRy5F/QxsdRGxJmzB9irpLOUh7F3/Ilr7cBdG5nYyYVOA== @@ -2841,15 +2927,15 @@ winston "^3.2.1" yn "^4.0.0" -"@backstage/plugin-auth-node@^0.4.3", "@backstage/plugin-auth-node@~0.4.3": - version "0.4.3" - resolved "https://registry.npmmirror.com/@backstage/plugin-auth-node/-/plugin-auth-node-0.4.3.tgz#87522b4a29824f9f160cf4087a6b02ae7adb735d" - integrity sha512-dIavrhNjsgxSLgm7CP+sc6YdoA6J4eVuS8Jl5vmt1jhX6Gc2DZMjPRglO2QVotWa3Ucl1tBa+GZxLGOwDetAWg== +"@backstage/plugin-auth-node@^0.4.3", "@backstage/plugin-auth-node@^0.4.8", "@backstage/plugin-auth-node@~0.4.3": + version "0.4.8" + resolved "https://registry.npmmirror.com/@backstage/plugin-auth-node/-/plugin-auth-node-0.4.8.tgz#4fcc9a22ce6b9eabbe5053a51204852e5719ea65" + integrity sha512-UXk6ke1BZQKsrKRAGm0oi1ncMimIcY0KNasLtuSnqFkboHHUPzGxco57S5rK4GC1chxF8pKHZ9MTzygMAb/xeg== dependencies: - "@backstage/backend-common" "^0.20.1" - "@backstage/backend-plugin-api" "^0.6.9" - "@backstage/catalog-client" "^1.5.2" - "@backstage/catalog-model" "^1.4.3" + "@backstage/backend-common" "^0.21.3" + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/catalog-client" "^1.6.0" + "@backstage/catalog-model" "^1.4.4" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" "@backstage/types" "^1.1.1" @@ -2864,16 +2950,16 @@ zod "^3.22.4" zod-to-json-schema "^3.21.4" -"@backstage/plugin-catalog-backend-module-scaffolder-entity-model@^0.1.6", "@backstage/plugin-catalog-backend-module-scaffolder-entity-model@~0.1.6": - version "0.1.6" - resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-backend-module-scaffolder-entity-model/-/plugin-catalog-backend-module-scaffolder-entity-model-0.1.6.tgz#0ea62233a916b86bf3ae8ba09fd93ff007bac0f0" - integrity sha512-aGawWFUjoJAbITPUdKzF4fzTTJk5hn/bLMF33Ks5iIW1EWokPoVmDR/qErjxKXXChnVTzPwvPdBejV6HPVcs8Q== +"@backstage/plugin-catalog-backend-module-scaffolder-entity-model@^0.1.10", "@backstage/plugin-catalog-backend-module-scaffolder-entity-model@^0.1.6", "@backstage/plugin-catalog-backend-module-scaffolder-entity-model@~0.1.6": + version "0.1.10" + resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-backend-module-scaffolder-entity-model/-/plugin-catalog-backend-module-scaffolder-entity-model-0.1.10.tgz#cd54fee56c0ef105cd762584adcf24c22846b34a" + integrity sha512-6iJMQzcMHJcfFyIJNbMkWIDpqNuyXWzRzAgES45Pe4ywuiHQ3Nvhrtce+4e4p7+WSZzK1smZrZOh5nkglfCvlw== dependencies: - "@backstage/backend-plugin-api" "^0.6.9" - "@backstage/catalog-model" "^1.4.3" - "@backstage/plugin-catalog-common" "^1.0.20" - "@backstage/plugin-catalog-node" "^1.6.1" - "@backstage/plugin-scaffolder-common" "^1.4.5" + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/catalog-model" "^1.4.4" + "@backstage/plugin-catalog-common" "^1.0.21" + "@backstage/plugin-catalog-node" "^1.7.3" + "@backstage/plugin-scaffolder-common" "^1.5.0" "@backstage/plugin-catalog-backend@~1.16.1": version "1.16.2" @@ -2919,12 +3005,12 @@ yn "^4.0.0" zod "^3.22.4" -"@backstage/plugin-catalog-common@^1.0.20", "@backstage/plugin-catalog-common@~1.0.20": - version "1.0.20" - resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-common/-/plugin-catalog-common-1.0.20.tgz#84050135b29b0690aff613b31a427277a2c18169" - integrity sha512-jHMzUBPDqieri/psW1H0ylR57ofzPLLjlSSVbvzLAVc63DDQMWunb6UdjARAGRceeV4ea+shrhlvEx5tdG9eEQ== +"@backstage/plugin-catalog-common@^1.0.20", "@backstage/plugin-catalog-common@^1.0.21", "@backstage/plugin-catalog-common@~1.0.20": + version "1.0.21" + resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-common/-/plugin-catalog-common-1.0.21.tgz#1dba78e151079cab0137158b71427276799d4104" + integrity sha512-7VA76TRzeVkfyefDVR01lAfTQnaHw2ZtlvOjIo+tSlteivZ+wEzJVq9af/ekHYlOGuDsYzDzGgc/P/eRwY67Ag== dependencies: - "@backstage/catalog-model" "^1.4.3" + "@backstage/catalog-model" "^1.4.4" "@backstage/plugin-permission-common" "^0.7.12" "@backstage/plugin-search-common" "^1.2.10" @@ -2978,18 +3064,18 @@ react-use "^17.2.4" yaml "^2.0.0" -"@backstage/plugin-catalog-node@^1.6.1": - version "1.6.1" - resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-node/-/plugin-catalog-node-1.6.1.tgz#9a872dfdc562f79cb1e3a5873028abaf5ae0b4f9" - integrity sha512-mYNzcCUy9s28/SymS0p1mPmjtRQBfICAS2lFUKfKFT6pXQ7sqnC0Cxcn9ln1XjS3+ikxFC7jfYs4EOrv2DVm7w== +"@backstage/plugin-catalog-node@^1.6.1", "@backstage/plugin-catalog-node@^1.7.3": + version "1.7.3" + resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-node/-/plugin-catalog-node-1.7.3.tgz#a7369ed5bebddd82adb7417b86f1670a1a9f14d8" + integrity sha512-Y6DgN2PSdUMndWjx+a8Vm6AU7NS40hzgbDfeVR50rRNMhL4g3SyTXKgiSxiijdl6eRnnUHaqt+ux5/iy/B7jCQ== dependencies: - "@backstage/backend-plugin-api" "^0.6.9" - "@backstage/catalog-client" "^1.5.2" - "@backstage/catalog-model" "^1.4.3" + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/catalog-client" "^1.6.0" + "@backstage/catalog-model" "^1.4.4" "@backstage/errors" "^1.2.3" - "@backstage/plugin-catalog-common" "^1.0.20" + "@backstage/plugin-catalog-common" "^1.0.21" "@backstage/plugin-permission-common" "^0.7.12" - "@backstage/plugin-permission-node" "^0.7.20" + "@backstage/plugin-permission-node" "^0.7.24" "@backstage/types" "^1.1.1" "@backstage/plugin-catalog-react@^1.9.1", "@backstage/plugin-catalog-react@^1.9.3", "@backstage/plugin-catalog-react@~1.9.3": @@ -3276,16 +3362,16 @@ uuid "^8.0.0" zod "^3.22.4" -"@backstage/plugin-permission-node@^0.7.20", "@backstage/plugin-permission-node@~0.7.20": - version "0.7.20" - resolved "https://registry.npmmirror.com/@backstage/plugin-permission-node/-/plugin-permission-node-0.7.20.tgz#172b1d36e5cf3cf2ead992fa495d054eea45fb11" - integrity sha512-OQD6R+n0AYC+o/jdAePrjdIYKNhssuimfx7plx7wcsTF9xz6Mpxj1zUvVp+zgDoNub2prG0Bd9H+tw0ATtAGgw== +"@backstage/plugin-permission-node@^0.7.20", "@backstage/plugin-permission-node@^0.7.24", "@backstage/plugin-permission-node@~0.7.20": + version "0.7.24" + resolved "https://registry.npmmirror.com/@backstage/plugin-permission-node/-/plugin-permission-node-0.7.24.tgz#2aba208d9fe0d7a554c024a9fce45c95ecbd4ed2" + integrity sha512-auNQ6Lbo8/fZTYXbeHv+0pWSKiFTgaBhJbKhIEIvi96LdL3AdlalIsd7EdEDsVqs+Vrcf0Y0xpQiNGdi7ciylQ== dependencies: - "@backstage/backend-common" "^0.20.1" - "@backstage/backend-plugin-api" "^0.6.9" + "@backstage/backend-common" "^0.21.3" + "@backstage/backend-plugin-api" "^0.6.13" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" - "@backstage/plugin-auth-node" "^0.4.3" + "@backstage/plugin-auth-node" "^0.4.8" "@backstage/plugin-permission-common" "^0.7.12" "@types/express" "^4.17.6" express "^4.17.1" @@ -3323,19 +3409,50 @@ yn "^4.0.0" yup "^0.32.9" -"@backstage/plugin-scaffolder-backend-module-azure@^0.1.1": - version "0.1.1" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-azure/-/plugin-scaffolder-backend-module-azure-0.1.1.tgz#c8ba1b4daae3cf9afe2950ac3cd366aa64c1959f" - integrity sha512-p0lbtVSiG5Z/4Mp9++RVjtJDexcxsZtHt/e89vRLueU9OdqFvacILJeB92WT6C9LR5ddT3+wBNajN2dhCz0yjg== +"@backstage/plugin-scaffolder-backend-module-azure@^0.1.1", "@backstage/plugin-scaffolder-backend-module-azure@^0.1.5": + version "0.1.5" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-azure/-/plugin-scaffolder-backend-module-azure-0.1.5.tgz#bad0ac4459379956ab4da4863cd65fb6f72c0751" + integrity sha512-fNIDA/Cf17dJZwzrHx/9BxY/88C0xWemiN9IYqJtgshSjDxmaDXeWBa8nc/easFFSqNob/u9JVcEO+uAZ584zQ== dependencies: - "@backstage/backend-common" "^0.20.1" + "@backstage/backend-common" "^0.21.3" + "@backstage/backend-plugin-api" "^0.6.13" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.8.0" - "@backstage/plugin-scaffolder-node" "^0.2.10" + "@backstage/integration" "^1.9.0" + "@backstage/plugin-scaffolder-node" "^0.3.3" azure-devops-node-api "^12.0.0" yaml "^2.0.0" +"@backstage/plugin-scaffolder-backend-module-bitbucket-cloud@^0.1.3": + version "0.1.3" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-bitbucket-cloud/-/plugin-scaffolder-backend-module-bitbucket-cloud-0.1.3.tgz#7643b3353a042db439f1d109d298b41762d2ef36" + integrity sha512-KspnbjM2CV2lqSEH9+9f4l5kXRZKIi//WkXgt8pHnlZZH+a82iQHIUloOYOIVacU1QUsDc4pIp/H2Qai8ReWtg== + dependencies: + "@backstage/backend-common" "^0.21.3" + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/config" "^1.1.1" + "@backstage/errors" "^1.2.3" + "@backstage/integration" "^1.9.0" + "@backstage/plugin-scaffolder-node" "^0.3.3" + fs-extra "^11.2.0" + node-fetch "^2.6.7" + yaml "^2.0.0" + +"@backstage/plugin-scaffolder-backend-module-bitbucket-server@^0.1.3": + version "0.1.3" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-bitbucket-server/-/plugin-scaffolder-backend-module-bitbucket-server-0.1.3.tgz#a3bab3df4e71a98bbca68e0c32957160a28abec4" + integrity sha512-HFjLh/ovboMqsI0Ud4ycixSXLNDAX12feTFYkzntoI3aj/6mSKkSkXjVZ8K6uatcAvxKNweyoLI1V3oJUWs49Q== + dependencies: + "@backstage/backend-common" "^0.21.3" + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/config" "^1.1.1" + "@backstage/errors" "^1.2.3" + "@backstage/integration" "^1.9.0" + "@backstage/plugin-scaffolder-node" "^0.3.3" + fs-extra "^11.2.0" + node-fetch "^2.6.7" + yaml "^2.0.0" + "@backstage/plugin-scaffolder-backend-module-bitbucket@^0.1.1": version "0.1.1" resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-bitbucket/-/plugin-scaffolder-backend-module-bitbucket-0.1.1.tgz#5b56f8f3e35c20bd380285f8e4ab6bc94dfa99dc" @@ -3349,15 +3466,46 @@ node-fetch "^2.6.7" yaml "^2.0.0" -"@backstage/plugin-scaffolder-backend-module-gerrit@^0.1.1": - version "0.1.1" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-gerrit/-/plugin-scaffolder-backend-module-gerrit-0.1.1.tgz#a52161f1b8e1980ef485f835ae1875ff35438a83" - integrity sha512-5ShekdtgmDDDOLnzJraEGZmYBWvGGV5cCwhPCnZWsgXU4I6PUiY37XbaAv4t6kN4YnzhFELTeDHqDSlk6RRXKQ== +"@backstage/plugin-scaffolder-backend-module-bitbucket@^0.2.3": + version "0.2.3" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-bitbucket/-/plugin-scaffolder-backend-module-bitbucket-0.2.3.tgz#3005b6a862fc6edd336063bbc8708a688d660210" + integrity sha512-bDPgMlYzUQdcFP0/PNEs71/wl3tb7FO6CY5At4AQkEI8VRxfL4NLiXnHLQZwB76c+QJ/8n/2Zkgnz7VTkZTLuw== dependencies: + "@backstage/backend-common" "^0.21.3" + "@backstage/backend-plugin-api" "^0.6.13" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.8.0" - "@backstage/plugin-scaffolder-node" "^0.2.10" + "@backstage/integration" "^1.9.0" + "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud" "^0.1.3" + "@backstage/plugin-scaffolder-backend-module-bitbucket-server" "^0.1.3" + "@backstage/plugin-scaffolder-node" "^0.3.3" + fs-extra "^11.2.0" + node-fetch "^2.6.7" + yaml "^2.0.0" + +"@backstage/plugin-scaffolder-backend-module-gerrit@^0.1.1", "@backstage/plugin-scaffolder-backend-module-gerrit@^0.1.5": + version "0.1.5" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-gerrit/-/plugin-scaffolder-backend-module-gerrit-0.1.5.tgz#6e03d30bdc0d1770b953fb1ce8fb12eecd056e54" + integrity sha512-1rWqfNU+rZU6gDireUqsXFCWRgkS63Z0kUjbmzZgy+rl6zbaepBnz/oKpBsNnySQhl7HDIytBs6hs+t5TdZBiA== + dependencies: + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/config" "^1.1.1" + "@backstage/errors" "^1.2.3" + "@backstage/integration" "^1.9.0" + "@backstage/plugin-scaffolder-node" "^0.3.3" + node-fetch "^2.6.7" + yaml "^2.0.0" + +"@backstage/plugin-scaffolder-backend-module-gitea@^0.1.3": + version "0.1.3" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-gitea/-/plugin-scaffolder-backend-module-gitea-0.1.3.tgz#33dc67cc0bd31fab4bbea148083f4ae0ed494b76" + integrity sha512-ZfblBeL6KD1Nu3oomuHynI+eQFh6N1QgpVbRuh9pc7aJjNNVAYPVd35Lenx6pwP3mqtSCebOOwtdbZQ6WVBWsg== + dependencies: + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/config" "^1.1.1" + "@backstage/errors" "^1.2.3" + "@backstage/integration" "^1.9.0" + "@backstage/plugin-scaffolder-node" "^0.3.3" node-fetch "^2.6.7" yaml "^2.0.0" @@ -3378,23 +3526,94 @@ winston "^3.2.1" yaml "^2.0.0" -"@backstage/plugin-scaffolder-backend-module-gitlab@^0.2.12": - version "0.2.12" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-gitlab/-/plugin-scaffolder-backend-module-gitlab-0.2.12.tgz#10cf7f69be0379c1e221fc82a177816969f01190" - integrity sha512-20VW3fAk4xkyE4bRwRz9rd5S2p9W3Tgmu9ITX7RB1qmEUTqWfAVIRQdkt18gN459srxpypwm7Kh97/I7o7X8KQ== +"@backstage/plugin-scaffolder-backend-module-github@^0.2.3": + version "0.2.3" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-github/-/plugin-scaffolder-backend-module-github-0.2.3.tgz#f5d35b501021661bb91ee9bb0ac2ff7971317a63" + integrity sha512-Azzu058i8V5TXEk6UG5JUE5fSsp9fY+7BDbVaBmaqYiyeilyXguKz1iBRAVp4JJlH8Ko8WcQY9vxdNNc/R1VIA== dependencies: - "@backstage/backend-common" "^0.20.1" + "@backstage/backend-common" "^0.21.3" + "@backstage/backend-plugin-api" "^0.6.13" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.8.0" - "@backstage/plugin-scaffolder-node" "^0.2.10" + "@backstage/integration" "^1.9.0" + "@backstage/plugin-scaffolder-node" "^0.3.3" + "@octokit/webhooks" "^10.0.0" + libsodium-wrappers "^0.7.11" + octokit "^3.0.0" + octokit-plugin-create-pull-request "^3.10.0" + winston "^3.2.1" + yaml "^2.0.0" + +"@backstage/plugin-scaffolder-backend-module-gitlab@^0.2.12", "@backstage/plugin-scaffolder-backend-module-gitlab@^0.2.16": + version "0.2.16" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-gitlab/-/plugin-scaffolder-backend-module-gitlab-0.2.16.tgz#32f129c28dce0650042d3079910fb1bb0fa5c2a0" + integrity sha512-zkI0QMdG1JqT3dW6ObL3vXkxwmRIcKoV8cGpZFrPa7UWys1RIe53bk/+JL6HcrFRxNt5ZvmdpmEcRm+VmooXaA== + dependencies: + "@backstage/backend-common" "^0.21.3" + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/config" "^1.1.1" + "@backstage/errors" "^1.2.3" + "@backstage/integration" "^1.9.0" + "@backstage/plugin-scaffolder-node" "^0.3.3" "@gitbeaker/core" "^35.8.0" "@gitbeaker/node" "^35.8.0" "@gitbeaker/rest" "^39.25.0" + luxon "^3.0.0" yaml "^2.0.0" zod "^3.22.4" -"@backstage/plugin-scaffolder-backend@^1.19.1", "@backstage/plugin-scaffolder-backend@~1.20.0": +"@backstage/plugin-scaffolder-backend@^1.21.3": + version "1.21.3" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend/-/plugin-scaffolder-backend-1.21.3.tgz#fdb5eb91e700c8af07b11a96580b0e7145fa16e4" + integrity sha512-YnDeEDXebsDYHYNAPlxuPvovFGb4hEs1F4ObvDFV7sG7DbAdHoEBVZNZHa/QpgiD9KKzrmwRJXUTbEFKMnJ7NQ== + dependencies: + "@backstage/backend-common" "^0.21.3" + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/backend-tasks" "^0.5.18" + "@backstage/catalog-client" "^1.6.0" + "@backstage/catalog-model" "^1.4.4" + "@backstage/config" "^1.1.1" + "@backstage/errors" "^1.2.3" + "@backstage/integration" "^1.9.0" + "@backstage/plugin-auth-node" "^0.4.8" + "@backstage/plugin-catalog-backend-module-scaffolder-entity-model" "^0.1.10" + "@backstage/plugin-catalog-node" "^1.7.3" + "@backstage/plugin-permission-common" "^0.7.12" + "@backstage/plugin-permission-node" "^0.7.24" + "@backstage/plugin-scaffolder-backend-module-azure" "^0.1.5" + "@backstage/plugin-scaffolder-backend-module-bitbucket" "^0.2.3" + "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud" "^0.1.3" + "@backstage/plugin-scaffolder-backend-module-bitbucket-server" "^0.1.3" + "@backstage/plugin-scaffolder-backend-module-gerrit" "^0.1.5" + "@backstage/plugin-scaffolder-backend-module-gitea" "^0.1.3" + "@backstage/plugin-scaffolder-backend-module-github" "^0.2.3" + "@backstage/plugin-scaffolder-backend-module-gitlab" "^0.2.16" + "@backstage/plugin-scaffolder-common" "^1.5.0" + "@backstage/plugin-scaffolder-node" "^0.3.3" + "@backstage/types" "^1.1.1" + "@types/express" "^4.17.6" + "@types/luxon" "^3.0.0" + express "^4.17.1" + express-promise-router "^4.1.0" + fs-extra "^11.2.0" + globby "^11.0.0" + isbinaryfile "^5.0.0" + isolated-vm "^4.5.0" + jsonschema "^1.2.6" + knex "^3.0.0" + lodash "^4.17.21" + luxon "^3.0.0" + nunjucks "^3.2.3" + p-limit "^3.1.0" + p-queue "^6.6.2" + prom-client "^15.0.0" + uuid "^8.2.0" + winston "^3.2.1" + yaml "^2.0.0" + zen-observable "^0.10.0" + zod "^3.22.4" + +"@backstage/plugin-scaffolder-backend@~1.20.0": version "1.20.0" resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend/-/plugin-scaffolder-backend-1.20.0.tgz#016d41d2dce8d128d632e5c81f3e31195ac9abfe" integrity sha512-LUhMgH58VNsUa/yBX0GOwwAkb9q0O6CA6p9PzCH5SeOnkJ6v6dMhkgzWgrfjsy0yktmSRb1d0PNdQFdGMzvszA== @@ -3442,16 +3661,16 @@ zen-observable "^0.10.0" zod "^3.22.4" -"@backstage/plugin-scaffolder-common@^1.4.5": - version "1.4.5" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-common/-/plugin-scaffolder-common-1.4.5.tgz#4e578416ff3648d8cfad0acd5eb4ef8f6811d7d6" - integrity sha512-JSOpUpLxwvYpjqTRPjcFLxa7Z1ngAnwV5ijI06ASboB+dai9IPIGATW57CfvF2u5Vn+wxaXQ6Tc8Pr9gwCdp4A== +"@backstage/plugin-scaffolder-common@^1.4.5", "@backstage/plugin-scaffolder-common@^1.5.0": + version "1.5.0" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-common/-/plugin-scaffolder-common-1.5.0.tgz#c599271c685514de9fb2701062d5a0b3a29e8928" + integrity sha512-byj0crG5rlH5JsiJdywi2DdR7qGe+OptIxERRImTSHTto8fa7z+f+1qeFW0/2oXIo7KFvS9uQ3g5+LSVqz58ug== dependencies: - "@backstage/catalog-model" "^1.4.3" + "@backstage/catalog-model" "^1.4.4" "@backstage/plugin-permission-common" "^0.7.12" "@backstage/types" "^1.1.1" -"@backstage/plugin-scaffolder-node@^0.2.10", "@backstage/plugin-scaffolder-node@^0.2.8", "@backstage/plugin-scaffolder-node@~0.2.9": +"@backstage/plugin-scaffolder-node@^0.2.10", "@backstage/plugin-scaffolder-node@~0.2.9": version "0.2.10" resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-node/-/plugin-scaffolder-node-0.2.10.tgz#ba0b97e4e8e86d48b991bc4233d64d3d9f389c5c" integrity sha512-3/JQL5JKhRchd/N2gTLTSEnHFhkfCcbSUdZoQDSj4bTkTALl7vNeR6XpW4QqOuKhnaDGndrLORtUiNiCugjRCA== @@ -3471,6 +3690,26 @@ zod "^3.22.4" zod-to-json-schema "^3.20.4" +"@backstage/plugin-scaffolder-node@^0.3.3": + version "0.3.3" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-node/-/plugin-scaffolder-node-0.3.3.tgz#debce42879e6e8bc0235a856d3dbdbedb0108296" + integrity sha512-+g6FDcog99AkVp1RQwF8XowjDSU/cjHSawVi9kIB8b34CUJNDSX2IISjmK55BUiSpoTrJy73h1fUp8CcMiCxiQ== + dependencies: + "@backstage/backend-common" "^0.21.3" + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/catalog-model" "^1.4.4" + "@backstage/errors" "^1.2.3" + "@backstage/integration" "^1.9.0" + "@backstage/plugin-scaffolder-common" "^1.5.0" + "@backstage/types" "^1.1.1" + fs-extra "^11.2.0" + globby "^11.0.0" + jsonschema "^1.2.6" + p-limit "^3.1.0" + winston "^3.2.1" + zod "^3.22.4" + zod-to-json-schema "^3.20.4" + "@backstage/plugin-scaffolder-react@^1.7.1": version "1.7.1" resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-react/-/plugin-scaffolder-react-1.7.1.tgz#3731fa9f82dbcfd36610e2db6dfe9d856a7f8e9f" @@ -5274,7 +5513,7 @@ optionalDependencies: openid-client "^5.3.0" -"@kubernetes/client-node@0.20.0", "@kubernetes/client-node@^0.20.0": +"@kubernetes/client-node@0.20.0", "@kubernetes/client-node@^0.20.0", "@kubernetes/client-node@~0.20.0": version "0.20.0" resolved "https://registry.npmmirror.com/@kubernetes/client-node/-/client-node-0.20.0.tgz#4447ae27fd6eef3d4830a5a039f3b84ffd5c5913" integrity sha512-xxlv5GLX4FVR/dDKEsmi4SPeuB49aRc35stndyxcC73XnUEEwF39vXbROpHOirmDse8WE9vxOjABnSVS+jb7EA== @@ -6376,6 +6615,11 @@ resolved "https://registry.npmmirror.com/@opentelemetry/api/-/api-1.7.0.tgz#b139c81999c23e3c8d3c0a7234480e945920fc40" integrity sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw== +"@opentelemetry/api@^1.4.0": + version "1.8.0" + resolved "https://registry.npmmirror.com/@opentelemetry/api/-/api-1.8.0.tgz#5aa7abb48f23f693068ed2999ae627d2f7d902ec" + integrity sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w== + "@parcel/watcher@2.0.4": version "2.0.4" resolved "https://registry.npmmirror.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" @@ -6856,24 +7100,24 @@ moment "^2.29.1" react-use "^17.2.4" -"@roadiehq/scaffolder-backend-module-utils@^1.13.1": - version "1.13.1" - resolved "https://registry.npmmirror.com/@roadiehq/scaffolder-backend-module-utils/-/scaffolder-backend-module-utils-1.13.1.tgz#a4bfbc3a0ea4bbb98744958187713b020f0df951" - integrity sha512-fM3R4p8bI71ZgTGWi7uA3hxaG9VN+pZU3aUIa6cDawdOVcfyQrbi00QVd9nyrkIh011obAssQ8Wi4m5WVR3Jsg== +"@roadiehq/scaffolder-backend-module-utils@~1.13.1": + version "1.13.7" + resolved "https://registry.npmmirror.com/@roadiehq/scaffolder-backend-module-utils/-/scaffolder-backend-module-utils-1.13.7.tgz#53e0214316f42170612ad2a7fcc625da979ced67" + integrity sha512-IeKCOsVbISfdnbLxSOwS95APOPVjvjUVMiI0teMokxY081QGcF28oJoM5fNv2qQ2r50BiQoJnfoTfs9PMzpa2g== dependencies: - "@backstage/backend-common" "^0.19.9" + "@backstage/backend-common" "^0.21.3" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" - "@backstage/plugin-scaffolder-backend" "^1.19.1" - "@backstage/plugin-scaffolder-node" "^0.2.8" + "@backstage/plugin-scaffolder-backend" "^1.21.3" + "@backstage/plugin-scaffolder-node" "^0.3.3" adm-zip "^0.5.9" cross-fetch "^3.1.4" detect-indent "^6.1.0" fs-extra "^10.0.0" - js-yaml "^4.0.0" jsonata "^1.8.6" lodash "^4.17.21" winston "^3.2.1" + yaml "^2.3.4" "@rollup/plugin-commonjs@^25.0.0": version "25.0.7" @@ -8721,6 +8965,14 @@ "@types/qs" "*" "@types/serve-static" "*" +"@types/fs-extra@^11.0.4": + version "11.0.4" + resolved "https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-11.0.4.tgz#e16a863bb8843fba8c5004362b5a73e17becca45" + integrity sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ== + dependencies: + "@types/jsonfile" "*" + "@types/node" "*" + "@types/graceful-fs@^4.1.3": version "4.1.9" resolved "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" @@ -8835,6 +9087,13 @@ resolved "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/jsonfile@*": + version "6.1.4" + resolved "https://registry.npmmirror.com/@types/jsonfile/-/jsonfile-6.1.4.tgz#614afec1a1164e7d670b4a7ad64df3e7beb7b702" + integrity sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ== + dependencies: + "@types/node" "*" + "@types/jsonwebtoken@^9.0.0": version "9.0.5" resolved "https://registry.npmmirror.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.5.tgz#0bd9b841c9e6c5a937c17656e2368f65da025588" @@ -11833,6 +12092,14 @@ cron@^2.0.0: "@types/luxon" "~3.3.0" luxon "~3.3.0" +cron@^3.0.0: + version "3.1.6" + resolved "https://registry.npmmirror.com/cron/-/cron-3.1.6.tgz#e7e1798a468e017c8d31459ecd7c2d088f97346c" + integrity sha512-cvFiQCeVzsA+QPM6fhjBtlKGij7tLLISnTSvFxVdnFGLdz+ZdXN37kNe0i2gefmdD17XuZA6n2uPVwzl4FxW/w== + dependencies: + "@types/luxon" "~3.3.0" + luxon "~3.4.0" + cronstrue@^2.2.0, cronstrue@^2.32.0: version "2.47.0" resolved "https://registry.npmmirror.com/cronstrue/-/cronstrue-2.47.0.tgz#3cf447c2a3a070d5bad2cedd6383e7cc16f5a308" @@ -12528,6 +12795,16 @@ docker-modem@^3.0.0: split-ca "^1.0.1" ssh2 "^1.11.0" +docker-modem@^5.0.3: + version "5.0.3" + resolved "https://registry.npmmirror.com/docker-modem/-/docker-modem-5.0.3.tgz#50c06f11285289f58112b5c4c4d89824541c41d0" + integrity sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg== + dependencies: + debug "^4.1.1" + readable-stream "^3.5.0" + split-ca "^1.0.1" + ssh2 "^1.15.0" + dockerode@^3.3.1: version "3.3.5" resolved "https://registry.npmmirror.com/dockerode/-/dockerode-3.3.5.tgz#7ae3f40f2bec53ae5e9a741ce655fff459745629" @@ -12537,6 +12814,15 @@ dockerode@^3.3.1: docker-modem "^3.0.0" tar-fs "~2.0.1" +dockerode@^4.0.0: + version "4.0.2" + resolved "https://registry.npmmirror.com/dockerode/-/dockerode-4.0.2.tgz#dedc8529a1db3ac46d186f5912389899bc309f7d" + integrity sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w== + dependencies: + "@balena/dockerignore" "^1.0.2" + docker-modem "^5.0.3" + tar-fs "~2.0.1" + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -14034,7 +14320,7 @@ fs-extra@10.1.0, fs-extra@^10.0.0, fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^11.1.0, fs-extra@^11.1.1: +fs-extra@^11.1.0, fs-extra@^11.1.1, fs-extra@^11.2.0, fs-extra@~11.2.0: version "11.2.0" resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== @@ -14321,6 +14607,13 @@ git-url-parse@^13.0.0: dependencies: git-up "^7.0.0" +git-url-parse@^14.0.0: + version "14.0.0" + resolved "https://registry.npmmirror.com/git-url-parse/-/git-url-parse-14.0.0.tgz#18ce834726d5fbca0c25a4555101aa277017418f" + integrity sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ== + dependencies: + git-up "^7.0.0" + gitconfiglocal@^1.0.0: version "1.0.0" resolved "https://registry.npmmirror.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" @@ -17319,7 +17612,7 @@ lunr@^2.3.9: resolved "https://registry.npmmirror.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== -luxon@^3.0.0, luxon@^3.4.3: +luxon@^3.0.0, luxon@^3.4.3, luxon@~3.4.0: version "3.4.4" resolved "https://registry.npmmirror.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af" integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA== @@ -20225,6 +20518,14 @@ prom-client@^14.0.1: dependencies: tdigest "^0.1.1" +prom-client@^15.0.0: + version "15.1.0" + resolved "https://registry.npmmirror.com/prom-client/-/prom-client-15.1.0.tgz#816a4a2128da169d0471093baeccc6d2f17a4613" + integrity sha512-cCD7jLTqyPdjEPBo/Xk4Iu8jxjuZgZJ3e/oET3L+ZwOuap/7Cw3dH/TJSsZKs1TQLZ2IHpIlRAKw82ef06kmMw== + dependencies: + "@opentelemetry/api" "^1.4.0" + tdigest "^0.1.1" + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -22116,7 +22417,7 @@ sqlstring@^2.3.2: resolved "https://registry.npmmirror.com/sqlstring/-/sqlstring-2.3.3.tgz#2ddc21f03bce2c387ed60680e739922c65751d0c" integrity sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg== -ssh2@^1.11.0: +ssh2@^1.11.0, ssh2@^1.15.0: version "1.15.0" resolved "https://registry.npmmirror.com/ssh2/-/ssh2-1.15.0.tgz#2f998455036a7f89e0df5847efb5421748d9871b" integrity sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw== @@ -23326,6 +23627,20 @@ typescript-json-schema@^0.62.0: typescript "~5.1.0" yargs "^17.1.1" +typescript-json-schema@^0.63.0: + version "0.63.0" + resolved "https://registry.npmmirror.com/typescript-json-schema/-/typescript-json-schema-0.63.0.tgz#55ef6c4dde71625425b169d37e0de3d2ea14e093" + integrity sha512-vBfMBq4U/rZ5FIRi7u4o/YAdeRHsSabdGHogUlCPi0cYU0CGvS4Bdu8bSzyUsF+Kf5PTQUGh2TictJuQTDK6eQ== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/node" "^16.9.2" + glob "^7.1.7" + path-equal "^1.2.5" + safe-stable-stringify "^2.2.0" + ts-node "^10.9.1" + typescript "~5.1.0" + yargs "^17.1.1" + "typescript@>=3 < 6": version "5.3.3" resolved "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" @@ -24419,6 +24734,11 @@ yaml@^2.0.0, yaml@^2.2.1, yaml@^2.2.2: resolved "https://registry.npmmirror.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== +yaml@^2.3.4: + version "2.4.1" + resolved "https://registry.npmmirror.com/yaml/-/yaml-2.4.1.tgz#2e57e0b5e995292c25c75d2658f0664765210eed" + integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== + yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" From 7ba6e7cdaef5d3d62d1b70e7009913482a4bd2d7 Mon Sep 17 00:00:00 2001 From: Jesse Sanford <108698+jessesanford@users.noreply.github.com> Date: Thu, 7 Mar 2024 22:02:25 -0500 Subject: [PATCH 2/6] revert yarn.lock Signed-off-by: Jesse Sanford <108698+jessesanford@users.noreply.github.com> --- yarn.lock | 572 ++++++++++++------------------------------------------ 1 file changed, 126 insertions(+), 446 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3854156..fd8d6f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2064,21 +2064,21 @@ "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" -"@backstage/backend-app-api@^0.5.10", "@backstage/backend-app-api@^0.5.14", "@backstage/backend-app-api@^0.5.8": - version "0.5.14" - resolved "https://registry.npmmirror.com/@backstage/backend-app-api/-/backend-app-api-0.5.14.tgz#a110bdbebc3b8b1b302b0726b7c92b2742fb5e3f" - integrity sha512-Sqd5WRkp5x0JxK0ms5shes+VXmJ/t9++Z88CR8N3oBtp3H0t+iKewxOlgHhvYZKPyPiVCXZqKu7eCWH9UZ+Gqg== +"@backstage/backend-app-api@^0.5.10", "@backstage/backend-app-api@^0.5.8": + version "0.5.10" + resolved "https://registry.npmmirror.com/@backstage/backend-app-api/-/backend-app-api-0.5.10.tgz#ec0cbebe9c2aebdfce6605bcafb8696bb1959a02" + integrity sha512-eD6CeHWaNsSjs3zHgQ8qio4kzqtnIgzAH71aUwaiOiiibtsBiueRCCmYNbibbEh/9eSZEm6nl0eIk0bKCDvnHQ== dependencies: - "@backstage/backend-common" "^0.21.3" - "@backstage/backend-plugin-api" "^0.6.13" - "@backstage/backend-tasks" "^0.5.18" + "@backstage/backend-common" "^0.20.1" + "@backstage/backend-plugin-api" "^0.6.9" + "@backstage/backend-tasks" "^0.5.14" "@backstage/cli-common" "^0.1.13" - "@backstage/cli-node" "^0.2.3" + "@backstage/cli-node" "^0.2.2" "@backstage/config" "^1.1.1" - "@backstage/config-loader" "^1.6.2" + "@backstage/config-loader" "^1.6.1" "@backstage/errors" "^1.2.3" - "@backstage/plugin-auth-node" "^0.4.8" - "@backstage/plugin-permission-node" "^0.7.24" + "@backstage/plugin-auth-node" "^0.4.3" + "@backstage/plugin-permission-node" "^0.7.20" "@backstage/types" "^1.1.1" "@manypkg/get-packages" "^1.1.3" "@types/cors" "^2.8.6" @@ -2087,7 +2087,7 @@ cors "^2.8.5" express "^4.17.1" express-promise-router "^4.1.0" - fs-extra "^11.2.0" + fs-extra "10.1.0" helmet "^6.0.0" lodash "^4.17.21" logform "^2.3.2" @@ -2222,71 +2222,10 @@ yauzl "^2.10.0" yn "^4.0.0" -"@backstage/backend-common@^0.21.3": - version "0.21.3" - resolved "https://registry.npmmirror.com/@backstage/backend-common/-/backend-common-0.21.3.tgz#67d757d1ff81a79121bdbe80b3032542f5ff571f" - integrity sha512-kqJ5p/Cd3dRcvVoVLIo6kYi5MMy5/uQBibt92o4QKHclagPJ2KLKJOUXwDpAtCw8MLe4Dtms9hj19SoU+wsFCQ== - dependencies: - "@aws-sdk/abort-controller" "^3.347.0" - "@aws-sdk/client-s3" "^3.350.0" - "@aws-sdk/credential-providers" "^3.350.0" - "@aws-sdk/types" "^3.347.0" - "@backstage/backend-app-api" "^0.5.14" - "@backstage/backend-dev-utils" "^0.1.4" - "@backstage/backend-plugin-api" "^0.6.13" - "@backstage/cli-common" "^0.1.13" - "@backstage/config" "^1.1.1" - "@backstage/config-loader" "^1.6.2" - "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.9.0" - "@backstage/integration-aws-node" "^0.1.9" - "@backstage/types" "^1.1.1" - "@google-cloud/storage" "^7.0.0" - "@keyv/memcache" "^1.3.5" - "@keyv/redis" "^2.5.3" - "@kubernetes/client-node" "0.20.0" - "@manypkg/get-packages" "^1.1.3" - "@octokit/rest" "^19.0.3" - "@types/cors" "^2.8.6" - "@types/dockerode" "^3.3.0" - "@types/express" "^4.17.6" - "@types/luxon" "^3.0.0" - "@types/webpack-env" "^1.15.2" - archiver "^6.0.0" - base64-stream "^1.0.0" - compression "^1.7.4" - concat-stream "^2.0.0" - cors "^2.8.5" - dockerode "^4.0.0" - express "^4.17.1" - express-promise-router "^4.1.0" - fs-extra "^11.2.0" - git-url-parse "^14.0.0" - helmet "^6.0.0" - isomorphic-git "^1.23.0" - jose "^4.6.0" - keyv "^4.5.2" - knex "^3.0.0" - lodash "^4.17.21" - logform "^2.3.2" - luxon "^3.0.0" - minimatch "^5.0.0" - mysql2 "^2.2.5" - node-fetch "^2.6.7" - p-limit "^3.1.0" - pg "^8.11.3" - raw-body "^2.4.1" - tar "^6.1.12" - uuid "^8.3.2" - winston "^3.2.1" - winston-transport "^4.5.0" - yauzl "^2.10.0" - yn "^4.0.0" - -"@backstage/backend-dev-utils@^0.1.2", "@backstage/backend-dev-utils@^0.1.3", "@backstage/backend-dev-utils@^0.1.4": - version "0.1.4" - resolved "https://registry.npmmirror.com/@backstage/backend-dev-utils/-/backend-dev-utils-0.1.4.tgz#65d204939c49b5df6a2148e8ad4dc718ccd1df07" - integrity sha512-5YgAPz4CRtnqdaUlYCHwGmXvpkGQ1jaUMoDtiQ81WDxQrf+0iYZCwS4ftVyQmB0Ga6BaGOUf6GG/OuFA56Y5mA== +"@backstage/backend-dev-utils@^0.1.2", "@backstage/backend-dev-utils@^0.1.3": + version "0.1.3" + resolved "https://registry.npmmirror.com/@backstage/backend-dev-utils/-/backend-dev-utils-0.1.3.tgz#31412b8e14027718a7cf229474e032acd862a1a3" + integrity sha512-vq0zdpiAuMMAsaWavpCwmA4psi2EFoYmDEP5Kk9xU+jcDMTAH+ArNY+sn6fZ/6cA7IJEYNu6pFFEAXfn+dh6yg== "@backstage/backend-openapi-utils@^0.1.2": version "0.1.2" @@ -2305,32 +2244,32 @@ openapi-merge "^1.3.2" openapi3-ts "^3.1.2" -"@backstage/backend-plugin-api@^0.6.13", "@backstage/backend-plugin-api@^0.6.7", "@backstage/backend-plugin-api@^0.6.9": - version "0.6.13" - resolved "https://registry.npmmirror.com/@backstage/backend-plugin-api/-/backend-plugin-api-0.6.13.tgz#26bb86cb4565fead2424faa42ac603ae98a85e5b" - integrity sha512-7SAAjx2YuZvsJHokkhh9U/cCV3az25DyqWse9BQJS4UTwDsWyebGmubtFI4SOXQKKR6U5t3ogtezYJXz+9K2Yw== +"@backstage/backend-plugin-api@^0.6.7", "@backstage/backend-plugin-api@^0.6.9": + version "0.6.9" + resolved "https://registry.npmmirror.com/@backstage/backend-plugin-api/-/backend-plugin-api-0.6.9.tgz#da43371efb576079dc51a023db8075ea14ba2870" + integrity sha512-NKRft/mK8SqNQw01QHGpwaAc4MhRh8HaAFtWrcQex746vMr8dqwspvr8KVALIkOodVrsS9oq4VnNDSVtnCBmUA== dependencies: - "@backstage/backend-tasks" "^0.5.18" + "@backstage/backend-tasks" "^0.5.14" "@backstage/config" "^1.1.1" - "@backstage/plugin-auth-node" "^0.4.8" + "@backstage/plugin-auth-node" "^0.4.3" "@backstage/plugin-permission-common" "^0.7.12" "@backstage/types" "^1.1.1" "@types/express" "^4.17.6" express "^4.17.1" knex "^3.0.0" -"@backstage/backend-tasks@^0.5.14", "@backstage/backend-tasks@^0.5.18", "@backstage/backend-tasks@~0.5.14": - version "0.5.18" - resolved "https://registry.npmmirror.com/@backstage/backend-tasks/-/backend-tasks-0.5.18.tgz#fd0aeea5f8b7fca3c1434c24ba885559124390dc" - integrity sha512-uYH/qj9OIc1Iupqf4N31HKEpTzbnNavysUkcoJFGR4+vV17gvuw3JSaLUXMK1z/soansAZHliRPktsQQ51nAqQ== +"@backstage/backend-tasks@^0.5.14", "@backstage/backend-tasks@~0.5.14": + version "0.5.14" + resolved "https://registry.npmmirror.com/@backstage/backend-tasks/-/backend-tasks-0.5.14.tgz#0c0022339daf528ecd6d39fca891642b5ed7ddb5" + integrity sha512-bVRAOM86lhOk/tG0z+oXvPdIqtusgPxMO93WaayXbr0R7Tx4Ogp8pg49s7XU4WB7Mdq+fmyiqp1VQt0NR3FCwQ== dependencies: - "@backstage/backend-common" "^0.21.3" + "@backstage/backend-common" "^0.20.1" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" "@backstage/types" "^1.1.1" "@opentelemetry/api" "^1.3.0" "@types/luxon" "^3.0.0" - cron "^3.0.0" + cron "^2.0.0" knex "^3.0.0" lodash "^4.17.21" luxon "^3.0.0" @@ -2338,17 +2277,7 @@ winston "^3.2.1" zod "^3.22.4" -"@backstage/catalog-client@^1.4.6", "@backstage/catalog-client@^1.5.2", "@backstage/catalog-client@^1.6.0": - version "1.6.0" - resolved "https://registry.npmmirror.com/@backstage/catalog-client/-/catalog-client-1.6.0.tgz#d4ba505f84a58f03177d0998becc6eb8ed54f40e" - integrity sha512-O6yoBX/BcKy89AwXmXVxNPlk0mX7jbgqYUCeIxGZr7n10A9oJx1iRj1XMub+V67yuqdfILPmh8WW+jd0N98+JA== - dependencies: - "@backstage/catalog-model" "^1.4.4" - "@backstage/errors" "^1.2.3" - cross-fetch "^4.0.0" - uri-template "^2.0.0" - -"@backstage/catalog-client@~1.5.2": +"@backstage/catalog-client@^1.4.6", "@backstage/catalog-client@^1.5.2", "@backstage/catalog-client@~1.5.2": version "1.5.2" resolved "https://registry.npmmirror.com/@backstage/catalog-client/-/catalog-client-1.5.2.tgz#f75e14e4e3aa473fc5db47841f531d1833e611e8" integrity sha512-hWP1Zb2KZ7owSvHdOhP+VB8eSOYbnsXz+l2OdTgMhKQS8ulGZXUW1SzA+N9PZupnQLYmZP2+2DXTpKhSEzQnnQ== @@ -2358,10 +2287,10 @@ cross-fetch "^4.0.0" uri-template "^2.0.0" -"@backstage/catalog-model@^1.4.3", "@backstage/catalog-model@^1.4.4", "@backstage/catalog-model@~1.4.3": - version "1.4.4" - resolved "https://registry.npmmirror.com/@backstage/catalog-model/-/catalog-model-1.4.4.tgz#53ebbe754c72a0e01bb7ea025af0358dc459db9c" - integrity sha512-JiCeAgUdRMQTjO0+34QeKDxYh/UQrXtDUvVic5z11uf8WuX3L9N7LiPOqJG+3t9TAyc5side21nDD7REdHoVFA== +"@backstage/catalog-model@^1.4.3", "@backstage/catalog-model@~1.4.3": + version "1.4.3" + resolved "https://registry.npmmirror.com/@backstage/catalog-model/-/catalog-model-1.4.3.tgz#64abf34071d1cad6372f905b92e1d831e480750c" + integrity sha512-cfbTPWLVma/ZKxRh76aLWqSFozzXMxHoGK+Tn50dOxHHp2xmdcx5jWBtOszNJs560rR7KScD7YnImUPkNn5DWQ== dependencies: "@backstage/errors" "^1.2.3" "@backstage/types" "^1.1.1" @@ -2373,17 +2302,17 @@ resolved "https://registry.npmmirror.com/@backstage/cli-common/-/cli-common-0.1.13.tgz#cbeda6a359ca4437fc782f0ac51bb957e8d49e73" integrity sha512-UMgNAIJSeEPSMkzxiWCP8aFR8APsG21XczDnzwHdL/41F7g2C+KA6UeQc/3tzbe8XQo+PxbNLpReZeKSSnSPSQ== -"@backstage/cli-node@^0.2.2", "@backstage/cli-node@^0.2.3": - version "0.2.3" - resolved "https://registry.npmmirror.com/@backstage/cli-node/-/cli-node-0.2.3.tgz#76d31a0ccd44326d110fb3a38c0db507b79e3ddf" - integrity sha512-gSsRds/xm9nh6jV/XoOipOA8rFwlMPOAoy3vkUyB5+Z5bfEM56NSccYjPdPMt52R9zZhVWhnsMNBHVoaqr+zeg== +"@backstage/cli-node@^0.2.2": + version "0.2.2" + resolved "https://registry.npmmirror.com/@backstage/cli-node/-/cli-node-0.2.2.tgz#f7a6062da90a20ce9d1af161ed841fbeb96337b8" + integrity sha512-YsEeT3sAF2sxNXv7IyI/d73TEZnivSBpyiJ4STnVpFi00woN440NeRWZfqaabS1XiuGbQibxJT3xTxORw1tMFA== dependencies: "@backstage/cli-common" "^0.1.13" "@backstage/errors" "^1.2.3" "@backstage/types" "^1.1.1" "@manypkg/get-packages" "^1.1.3" "@yarnpkg/parsers" "^3.0.0-rc.4" - fs-extra "^11.2.0" + fs-extra "10.1.0" semver "^7.5.3" zod "^3.22.4" @@ -2502,10 +2431,10 @@ yn "^4.0.0" zod "^3.22.4" -"@backstage/config-loader@^1.5.3", "@backstage/config-loader@^1.6.1", "@backstage/config-loader@^1.6.2": - version "1.6.2" - resolved "https://registry.npmmirror.com/@backstage/config-loader/-/config-loader-1.6.2.tgz#b3dea400ec18dc64e1f1236e450668fb5d27e221" - integrity sha512-RFFK1NGhg2n6OKRxkBPCO8qRmuRJ8gtEwjQdMv17V8AuaituOVDIduKW7omrq2RNr1CNJFodhGmpkHxqSkpkiQ== +"@backstage/config-loader@^1.5.3", "@backstage/config-loader@^1.6.1": + version "1.6.1" + resolved "https://registry.npmmirror.com/@backstage/config-loader/-/config-loader-1.6.1.tgz#bd5bc282cddc3b26dd0346962f814bad5dbe164b" + integrity sha512-wWbM7LGrN559HPzAKMczpv2mv1OXvhtgBMCgFw0jHZx5IrR3bdRZRapFQ8rmZAtj76vSLZv58qZfpOkSR6cWVQ== dependencies: "@backstage/cli-common" "^0.1.13" "@backstage/config" "^1.1.1" @@ -2514,14 +2443,14 @@ "@types/json-schema" "^7.0.6" ajv "^8.10.0" chokidar "^3.5.2" - fs-extra "^11.2.0" + fs-extra "10.1.0" json-schema "^0.4.0" json-schema-merge-allof "^0.8.1" json-schema-traverse "^1.0.0" lodash "^4.17.21" minimist "^1.2.5" node-fetch "^2.6.7" - typescript-json-schema "^0.63.0" + typescript-json-schema "^0.62.0" yaml "^2.0.0" "@backstage/config@^1.1.1", "@backstage/config@~1.1.1": @@ -2676,10 +2605,10 @@ zod "^3.22.4" zod-to-json-schema "^3.21.4" -"@backstage/integration-aws-node@^0.1.8", "@backstage/integration-aws-node@^0.1.9": - version "0.1.9" - resolved "https://registry.npmmirror.com/@backstage/integration-aws-node/-/integration-aws-node-0.1.9.tgz#66d6898e855a6a8d495d7d1bcb3bb79b6c61479c" - integrity sha512-nr3LHM9vFGtWPqWSp1lutm5+/1H6pBcMCZ2bkTn7qy/Y5Ds7l9qY+0LSMxPbIyPoaQMM2D1x/gDPEMr/pNwPAA== +"@backstage/integration-aws-node@^0.1.8": + version "0.1.8" + resolved "https://registry.npmmirror.com/@backstage/integration-aws-node/-/integration-aws-node-0.1.8.tgz#c0582a63e2348a42bbe172bdcd4609f024cc0051" + integrity sha512-WD/ahhk1d92ycjBOIRK2gtvuoP1nt5lNMKkfR1qsRBlgZFUPRCe7rkdELGpmRgrGBzU7ZyWfWGjLUh/Qpfva9Q== dependencies: "@aws-sdk/client-sts" "^3.350.0" "@aws-sdk/credential-provider-node" "^3.350.0" @@ -2701,22 +2630,7 @@ "@material-ui/icons" "^4.9.1" "@types/react" "^16.13.1 || ^17.0.0" -"@backstage/integration@^1.7.2", "@backstage/integration@^1.8.0", "@backstage/integration@^1.9.0": - version "1.9.0" - resolved "https://registry.npmmirror.com/@backstage/integration/-/integration-1.9.0.tgz#c60b33a7ec9b3970ccd4e8d54662b686b7ad27bf" - integrity sha512-lqZcjcfLeDyHxDdmTKxiko3GX+vQCyhoNM/lgPFLJFih9TiE3V+hTc9isEfkpQqRE9dCEy1w7rgUrNHXlz0pTA== - dependencies: - "@azure/identity" "^4.0.0" - "@backstage/config" "^1.1.1" - "@backstage/errors" "^1.2.3" - "@octokit/auth-app" "^4.0.0" - "@octokit/rest" "^19.0.3" - cross-fetch "^4.0.0" - git-url-parse "^14.0.0" - lodash "^4.17.21" - luxon "^3.0.0" - -"@backstage/integration@~1.8.0": +"@backstage/integration@^1.7.2", "@backstage/integration@^1.8.0", "@backstage/integration@~1.8.0": version "1.8.0" resolved "https://registry.npmmirror.com/@backstage/integration/-/integration-1.8.0.tgz#affc54e1c12c5a4e68a92de4e42c6cf001bdf6ec" integrity sha512-FCFOubvpKK2dt38sNATrImHrS0pkmvS2LPzvLQ01JzRy5F/QxsdRGxJmzB9irpLOUh7F3/Ilr7cBdG5nYyYVOA== @@ -2927,15 +2841,15 @@ winston "^3.2.1" yn "^4.0.0" -"@backstage/plugin-auth-node@^0.4.3", "@backstage/plugin-auth-node@^0.4.8", "@backstage/plugin-auth-node@~0.4.3": - version "0.4.8" - resolved "https://registry.npmmirror.com/@backstage/plugin-auth-node/-/plugin-auth-node-0.4.8.tgz#4fcc9a22ce6b9eabbe5053a51204852e5719ea65" - integrity sha512-UXk6ke1BZQKsrKRAGm0oi1ncMimIcY0KNasLtuSnqFkboHHUPzGxco57S5rK4GC1chxF8pKHZ9MTzygMAb/xeg== +"@backstage/plugin-auth-node@^0.4.3", "@backstage/plugin-auth-node@~0.4.3": + version "0.4.3" + resolved "https://registry.npmmirror.com/@backstage/plugin-auth-node/-/plugin-auth-node-0.4.3.tgz#87522b4a29824f9f160cf4087a6b02ae7adb735d" + integrity sha512-dIavrhNjsgxSLgm7CP+sc6YdoA6J4eVuS8Jl5vmt1jhX6Gc2DZMjPRglO2QVotWa3Ucl1tBa+GZxLGOwDetAWg== dependencies: - "@backstage/backend-common" "^0.21.3" - "@backstage/backend-plugin-api" "^0.6.13" - "@backstage/catalog-client" "^1.6.0" - "@backstage/catalog-model" "^1.4.4" + "@backstage/backend-common" "^0.20.1" + "@backstage/backend-plugin-api" "^0.6.9" + "@backstage/catalog-client" "^1.5.2" + "@backstage/catalog-model" "^1.4.3" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" "@backstage/types" "^1.1.1" @@ -2950,16 +2864,16 @@ zod "^3.22.4" zod-to-json-schema "^3.21.4" -"@backstage/plugin-catalog-backend-module-scaffolder-entity-model@^0.1.10", "@backstage/plugin-catalog-backend-module-scaffolder-entity-model@^0.1.6", "@backstage/plugin-catalog-backend-module-scaffolder-entity-model@~0.1.6": - version "0.1.10" - resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-backend-module-scaffolder-entity-model/-/plugin-catalog-backend-module-scaffolder-entity-model-0.1.10.tgz#cd54fee56c0ef105cd762584adcf24c22846b34a" - integrity sha512-6iJMQzcMHJcfFyIJNbMkWIDpqNuyXWzRzAgES45Pe4ywuiHQ3Nvhrtce+4e4p7+WSZzK1smZrZOh5nkglfCvlw== +"@backstage/plugin-catalog-backend-module-scaffolder-entity-model@^0.1.6", "@backstage/plugin-catalog-backend-module-scaffolder-entity-model@~0.1.6": + version "0.1.6" + resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-backend-module-scaffolder-entity-model/-/plugin-catalog-backend-module-scaffolder-entity-model-0.1.6.tgz#0ea62233a916b86bf3ae8ba09fd93ff007bac0f0" + integrity sha512-aGawWFUjoJAbITPUdKzF4fzTTJk5hn/bLMF33Ks5iIW1EWokPoVmDR/qErjxKXXChnVTzPwvPdBejV6HPVcs8Q== dependencies: - "@backstage/backend-plugin-api" "^0.6.13" - "@backstage/catalog-model" "^1.4.4" - "@backstage/plugin-catalog-common" "^1.0.21" - "@backstage/plugin-catalog-node" "^1.7.3" - "@backstage/plugin-scaffolder-common" "^1.5.0" + "@backstage/backend-plugin-api" "^0.6.9" + "@backstage/catalog-model" "^1.4.3" + "@backstage/plugin-catalog-common" "^1.0.20" + "@backstage/plugin-catalog-node" "^1.6.1" + "@backstage/plugin-scaffolder-common" "^1.4.5" "@backstage/plugin-catalog-backend@~1.16.1": version "1.16.2" @@ -3005,12 +2919,12 @@ yn "^4.0.0" zod "^3.22.4" -"@backstage/plugin-catalog-common@^1.0.20", "@backstage/plugin-catalog-common@^1.0.21", "@backstage/plugin-catalog-common@~1.0.20": - version "1.0.21" - resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-common/-/plugin-catalog-common-1.0.21.tgz#1dba78e151079cab0137158b71427276799d4104" - integrity sha512-7VA76TRzeVkfyefDVR01lAfTQnaHw2ZtlvOjIo+tSlteivZ+wEzJVq9af/ekHYlOGuDsYzDzGgc/P/eRwY67Ag== +"@backstage/plugin-catalog-common@^1.0.20", "@backstage/plugin-catalog-common@~1.0.20": + version "1.0.20" + resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-common/-/plugin-catalog-common-1.0.20.tgz#84050135b29b0690aff613b31a427277a2c18169" + integrity sha512-jHMzUBPDqieri/psW1H0ylR57ofzPLLjlSSVbvzLAVc63DDQMWunb6UdjARAGRceeV4ea+shrhlvEx5tdG9eEQ== dependencies: - "@backstage/catalog-model" "^1.4.4" + "@backstage/catalog-model" "^1.4.3" "@backstage/plugin-permission-common" "^0.7.12" "@backstage/plugin-search-common" "^1.2.10" @@ -3064,18 +2978,18 @@ react-use "^17.2.4" yaml "^2.0.0" -"@backstage/plugin-catalog-node@^1.6.1", "@backstage/plugin-catalog-node@^1.7.3": - version "1.7.3" - resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-node/-/plugin-catalog-node-1.7.3.tgz#a7369ed5bebddd82adb7417b86f1670a1a9f14d8" - integrity sha512-Y6DgN2PSdUMndWjx+a8Vm6AU7NS40hzgbDfeVR50rRNMhL4g3SyTXKgiSxiijdl6eRnnUHaqt+ux5/iy/B7jCQ== +"@backstage/plugin-catalog-node@^1.6.1": + version "1.6.1" + resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-node/-/plugin-catalog-node-1.6.1.tgz#9a872dfdc562f79cb1e3a5873028abaf5ae0b4f9" + integrity sha512-mYNzcCUy9s28/SymS0p1mPmjtRQBfICAS2lFUKfKFT6pXQ7sqnC0Cxcn9ln1XjS3+ikxFC7jfYs4EOrv2DVm7w== dependencies: - "@backstage/backend-plugin-api" "^0.6.13" - "@backstage/catalog-client" "^1.6.0" - "@backstage/catalog-model" "^1.4.4" + "@backstage/backend-plugin-api" "^0.6.9" + "@backstage/catalog-client" "^1.5.2" + "@backstage/catalog-model" "^1.4.3" "@backstage/errors" "^1.2.3" - "@backstage/plugin-catalog-common" "^1.0.21" + "@backstage/plugin-catalog-common" "^1.0.20" "@backstage/plugin-permission-common" "^0.7.12" - "@backstage/plugin-permission-node" "^0.7.24" + "@backstage/plugin-permission-node" "^0.7.20" "@backstage/types" "^1.1.1" "@backstage/plugin-catalog-react@^1.9.1", "@backstage/plugin-catalog-react@^1.9.3", "@backstage/plugin-catalog-react@~1.9.3": @@ -3362,16 +3276,16 @@ uuid "^8.0.0" zod "^3.22.4" -"@backstage/plugin-permission-node@^0.7.20", "@backstage/plugin-permission-node@^0.7.24", "@backstage/plugin-permission-node@~0.7.20": - version "0.7.24" - resolved "https://registry.npmmirror.com/@backstage/plugin-permission-node/-/plugin-permission-node-0.7.24.tgz#2aba208d9fe0d7a554c024a9fce45c95ecbd4ed2" - integrity sha512-auNQ6Lbo8/fZTYXbeHv+0pWSKiFTgaBhJbKhIEIvi96LdL3AdlalIsd7EdEDsVqs+Vrcf0Y0xpQiNGdi7ciylQ== +"@backstage/plugin-permission-node@^0.7.20", "@backstage/plugin-permission-node@~0.7.20": + version "0.7.20" + resolved "https://registry.npmmirror.com/@backstage/plugin-permission-node/-/plugin-permission-node-0.7.20.tgz#172b1d36e5cf3cf2ead992fa495d054eea45fb11" + integrity sha512-OQD6R+n0AYC+o/jdAePrjdIYKNhssuimfx7plx7wcsTF9xz6Mpxj1zUvVp+zgDoNub2prG0Bd9H+tw0ATtAGgw== dependencies: - "@backstage/backend-common" "^0.21.3" - "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/backend-common" "^0.20.1" + "@backstage/backend-plugin-api" "^0.6.9" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" - "@backstage/plugin-auth-node" "^0.4.8" + "@backstage/plugin-auth-node" "^0.4.3" "@backstage/plugin-permission-common" "^0.7.12" "@types/express" "^4.17.6" express "^4.17.1" @@ -3409,50 +3323,19 @@ yn "^4.0.0" yup "^0.32.9" -"@backstage/plugin-scaffolder-backend-module-azure@^0.1.1", "@backstage/plugin-scaffolder-backend-module-azure@^0.1.5": - version "0.1.5" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-azure/-/plugin-scaffolder-backend-module-azure-0.1.5.tgz#bad0ac4459379956ab4da4863cd65fb6f72c0751" - integrity sha512-fNIDA/Cf17dJZwzrHx/9BxY/88C0xWemiN9IYqJtgshSjDxmaDXeWBa8nc/easFFSqNob/u9JVcEO+uAZ584zQ== +"@backstage/plugin-scaffolder-backend-module-azure@^0.1.1": + version "0.1.1" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-azure/-/plugin-scaffolder-backend-module-azure-0.1.1.tgz#c8ba1b4daae3cf9afe2950ac3cd366aa64c1959f" + integrity sha512-p0lbtVSiG5Z/4Mp9++RVjtJDexcxsZtHt/e89vRLueU9OdqFvacILJeB92WT6C9LR5ddT3+wBNajN2dhCz0yjg== dependencies: - "@backstage/backend-common" "^0.21.3" - "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/backend-common" "^0.20.1" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.9.0" - "@backstage/plugin-scaffolder-node" "^0.3.3" + "@backstage/integration" "^1.8.0" + "@backstage/plugin-scaffolder-node" "^0.2.10" azure-devops-node-api "^12.0.0" yaml "^2.0.0" -"@backstage/plugin-scaffolder-backend-module-bitbucket-cloud@^0.1.3": - version "0.1.3" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-bitbucket-cloud/-/plugin-scaffolder-backend-module-bitbucket-cloud-0.1.3.tgz#7643b3353a042db439f1d109d298b41762d2ef36" - integrity sha512-KspnbjM2CV2lqSEH9+9f4l5kXRZKIi//WkXgt8pHnlZZH+a82iQHIUloOYOIVacU1QUsDc4pIp/H2Qai8ReWtg== - dependencies: - "@backstage/backend-common" "^0.21.3" - "@backstage/backend-plugin-api" "^0.6.13" - "@backstage/config" "^1.1.1" - "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.9.0" - "@backstage/plugin-scaffolder-node" "^0.3.3" - fs-extra "^11.2.0" - node-fetch "^2.6.7" - yaml "^2.0.0" - -"@backstage/plugin-scaffolder-backend-module-bitbucket-server@^0.1.3": - version "0.1.3" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-bitbucket-server/-/plugin-scaffolder-backend-module-bitbucket-server-0.1.3.tgz#a3bab3df4e71a98bbca68e0c32957160a28abec4" - integrity sha512-HFjLh/ovboMqsI0Ud4ycixSXLNDAX12feTFYkzntoI3aj/6mSKkSkXjVZ8K6uatcAvxKNweyoLI1V3oJUWs49Q== - dependencies: - "@backstage/backend-common" "^0.21.3" - "@backstage/backend-plugin-api" "^0.6.13" - "@backstage/config" "^1.1.1" - "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.9.0" - "@backstage/plugin-scaffolder-node" "^0.3.3" - fs-extra "^11.2.0" - node-fetch "^2.6.7" - yaml "^2.0.0" - "@backstage/plugin-scaffolder-backend-module-bitbucket@^0.1.1": version "0.1.1" resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-bitbucket/-/plugin-scaffolder-backend-module-bitbucket-0.1.1.tgz#5b56f8f3e35c20bd380285f8e4ab6bc94dfa99dc" @@ -3466,46 +3349,15 @@ node-fetch "^2.6.7" yaml "^2.0.0" -"@backstage/plugin-scaffolder-backend-module-bitbucket@^0.2.3": - version "0.2.3" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-bitbucket/-/plugin-scaffolder-backend-module-bitbucket-0.2.3.tgz#3005b6a862fc6edd336063bbc8708a688d660210" - integrity sha512-bDPgMlYzUQdcFP0/PNEs71/wl3tb7FO6CY5At4AQkEI8VRxfL4NLiXnHLQZwB76c+QJ/8n/2Zkgnz7VTkZTLuw== +"@backstage/plugin-scaffolder-backend-module-gerrit@^0.1.1": + version "0.1.1" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-gerrit/-/plugin-scaffolder-backend-module-gerrit-0.1.1.tgz#a52161f1b8e1980ef485f835ae1875ff35438a83" + integrity sha512-5ShekdtgmDDDOLnzJraEGZmYBWvGGV5cCwhPCnZWsgXU4I6PUiY37XbaAv4t6kN4YnzhFELTeDHqDSlk6RRXKQ== dependencies: - "@backstage/backend-common" "^0.21.3" - "@backstage/backend-plugin-api" "^0.6.13" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.9.0" - "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud" "^0.1.3" - "@backstage/plugin-scaffolder-backend-module-bitbucket-server" "^0.1.3" - "@backstage/plugin-scaffolder-node" "^0.3.3" - fs-extra "^11.2.0" - node-fetch "^2.6.7" - yaml "^2.0.0" - -"@backstage/plugin-scaffolder-backend-module-gerrit@^0.1.1", "@backstage/plugin-scaffolder-backend-module-gerrit@^0.1.5": - version "0.1.5" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-gerrit/-/plugin-scaffolder-backend-module-gerrit-0.1.5.tgz#6e03d30bdc0d1770b953fb1ce8fb12eecd056e54" - integrity sha512-1rWqfNU+rZU6gDireUqsXFCWRgkS63Z0kUjbmzZgy+rl6zbaepBnz/oKpBsNnySQhl7HDIytBs6hs+t5TdZBiA== - dependencies: - "@backstage/backend-plugin-api" "^0.6.13" - "@backstage/config" "^1.1.1" - "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.9.0" - "@backstage/plugin-scaffolder-node" "^0.3.3" - node-fetch "^2.6.7" - yaml "^2.0.0" - -"@backstage/plugin-scaffolder-backend-module-gitea@^0.1.3": - version "0.1.3" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-gitea/-/plugin-scaffolder-backend-module-gitea-0.1.3.tgz#33dc67cc0bd31fab4bbea148083f4ae0ed494b76" - integrity sha512-ZfblBeL6KD1Nu3oomuHynI+eQFh6N1QgpVbRuh9pc7aJjNNVAYPVd35Lenx6pwP3mqtSCebOOwtdbZQ6WVBWsg== - dependencies: - "@backstage/backend-plugin-api" "^0.6.13" - "@backstage/config" "^1.1.1" - "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.9.0" - "@backstage/plugin-scaffolder-node" "^0.3.3" + "@backstage/integration" "^1.8.0" + "@backstage/plugin-scaffolder-node" "^0.2.10" node-fetch "^2.6.7" yaml "^2.0.0" @@ -3526,94 +3378,23 @@ winston "^3.2.1" yaml "^2.0.0" -"@backstage/plugin-scaffolder-backend-module-github@^0.2.3": - version "0.2.3" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-github/-/plugin-scaffolder-backend-module-github-0.2.3.tgz#f5d35b501021661bb91ee9bb0ac2ff7971317a63" - integrity sha512-Azzu058i8V5TXEk6UG5JUE5fSsp9fY+7BDbVaBmaqYiyeilyXguKz1iBRAVp4JJlH8Ko8WcQY9vxdNNc/R1VIA== +"@backstage/plugin-scaffolder-backend-module-gitlab@^0.2.12": + version "0.2.12" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-gitlab/-/plugin-scaffolder-backend-module-gitlab-0.2.12.tgz#10cf7f69be0379c1e221fc82a177816969f01190" + integrity sha512-20VW3fAk4xkyE4bRwRz9rd5S2p9W3Tgmu9ITX7RB1qmEUTqWfAVIRQdkt18gN459srxpypwm7Kh97/I7o7X8KQ== dependencies: - "@backstage/backend-common" "^0.21.3" - "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/backend-common" "^0.20.1" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.9.0" - "@backstage/plugin-scaffolder-node" "^0.3.3" - "@octokit/webhooks" "^10.0.0" - libsodium-wrappers "^0.7.11" - octokit "^3.0.0" - octokit-plugin-create-pull-request "^3.10.0" - winston "^3.2.1" - yaml "^2.0.0" - -"@backstage/plugin-scaffolder-backend-module-gitlab@^0.2.12", "@backstage/plugin-scaffolder-backend-module-gitlab@^0.2.16": - version "0.2.16" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend-module-gitlab/-/plugin-scaffolder-backend-module-gitlab-0.2.16.tgz#32f129c28dce0650042d3079910fb1bb0fa5c2a0" - integrity sha512-zkI0QMdG1JqT3dW6ObL3vXkxwmRIcKoV8cGpZFrPa7UWys1RIe53bk/+JL6HcrFRxNt5ZvmdpmEcRm+VmooXaA== - dependencies: - "@backstage/backend-common" "^0.21.3" - "@backstage/backend-plugin-api" "^0.6.13" - "@backstage/config" "^1.1.1" - "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.9.0" - "@backstage/plugin-scaffolder-node" "^0.3.3" + "@backstage/integration" "^1.8.0" + "@backstage/plugin-scaffolder-node" "^0.2.10" "@gitbeaker/core" "^35.8.0" "@gitbeaker/node" "^35.8.0" "@gitbeaker/rest" "^39.25.0" - luxon "^3.0.0" yaml "^2.0.0" zod "^3.22.4" -"@backstage/plugin-scaffolder-backend@^1.21.3": - version "1.21.3" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend/-/plugin-scaffolder-backend-1.21.3.tgz#fdb5eb91e700c8af07b11a96580b0e7145fa16e4" - integrity sha512-YnDeEDXebsDYHYNAPlxuPvovFGb4hEs1F4ObvDFV7sG7DbAdHoEBVZNZHa/QpgiD9KKzrmwRJXUTbEFKMnJ7NQ== - dependencies: - "@backstage/backend-common" "^0.21.3" - "@backstage/backend-plugin-api" "^0.6.13" - "@backstage/backend-tasks" "^0.5.18" - "@backstage/catalog-client" "^1.6.0" - "@backstage/catalog-model" "^1.4.4" - "@backstage/config" "^1.1.1" - "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.9.0" - "@backstage/plugin-auth-node" "^0.4.8" - "@backstage/plugin-catalog-backend-module-scaffolder-entity-model" "^0.1.10" - "@backstage/plugin-catalog-node" "^1.7.3" - "@backstage/plugin-permission-common" "^0.7.12" - "@backstage/plugin-permission-node" "^0.7.24" - "@backstage/plugin-scaffolder-backend-module-azure" "^0.1.5" - "@backstage/plugin-scaffolder-backend-module-bitbucket" "^0.2.3" - "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud" "^0.1.3" - "@backstage/plugin-scaffolder-backend-module-bitbucket-server" "^0.1.3" - "@backstage/plugin-scaffolder-backend-module-gerrit" "^0.1.5" - "@backstage/plugin-scaffolder-backend-module-gitea" "^0.1.3" - "@backstage/plugin-scaffolder-backend-module-github" "^0.2.3" - "@backstage/plugin-scaffolder-backend-module-gitlab" "^0.2.16" - "@backstage/plugin-scaffolder-common" "^1.5.0" - "@backstage/plugin-scaffolder-node" "^0.3.3" - "@backstage/types" "^1.1.1" - "@types/express" "^4.17.6" - "@types/luxon" "^3.0.0" - express "^4.17.1" - express-promise-router "^4.1.0" - fs-extra "^11.2.0" - globby "^11.0.0" - isbinaryfile "^5.0.0" - isolated-vm "^4.5.0" - jsonschema "^1.2.6" - knex "^3.0.0" - lodash "^4.17.21" - luxon "^3.0.0" - nunjucks "^3.2.3" - p-limit "^3.1.0" - p-queue "^6.6.2" - prom-client "^15.0.0" - uuid "^8.2.0" - winston "^3.2.1" - yaml "^2.0.0" - zen-observable "^0.10.0" - zod "^3.22.4" - -"@backstage/plugin-scaffolder-backend@~1.20.0": +"@backstage/plugin-scaffolder-backend@^1.19.1", "@backstage/plugin-scaffolder-backend@~1.20.0": version "1.20.0" resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-backend/-/plugin-scaffolder-backend-1.20.0.tgz#016d41d2dce8d128d632e5c81f3e31195ac9abfe" integrity sha512-LUhMgH58VNsUa/yBX0GOwwAkb9q0O6CA6p9PzCH5SeOnkJ6v6dMhkgzWgrfjsy0yktmSRb1d0PNdQFdGMzvszA== @@ -3661,16 +3442,16 @@ zen-observable "^0.10.0" zod "^3.22.4" -"@backstage/plugin-scaffolder-common@^1.4.5", "@backstage/plugin-scaffolder-common@^1.5.0": - version "1.5.0" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-common/-/plugin-scaffolder-common-1.5.0.tgz#c599271c685514de9fb2701062d5a0b3a29e8928" - integrity sha512-byj0crG5rlH5JsiJdywi2DdR7qGe+OptIxERRImTSHTto8fa7z+f+1qeFW0/2oXIo7KFvS9uQ3g5+LSVqz58ug== +"@backstage/plugin-scaffolder-common@^1.4.5": + version "1.4.5" + resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-common/-/plugin-scaffolder-common-1.4.5.tgz#4e578416ff3648d8cfad0acd5eb4ef8f6811d7d6" + integrity sha512-JSOpUpLxwvYpjqTRPjcFLxa7Z1ngAnwV5ijI06ASboB+dai9IPIGATW57CfvF2u5Vn+wxaXQ6Tc8Pr9gwCdp4A== dependencies: - "@backstage/catalog-model" "^1.4.4" + "@backstage/catalog-model" "^1.4.3" "@backstage/plugin-permission-common" "^0.7.12" "@backstage/types" "^1.1.1" -"@backstage/plugin-scaffolder-node@^0.2.10", "@backstage/plugin-scaffolder-node@~0.2.9": +"@backstage/plugin-scaffolder-node@^0.2.10", "@backstage/plugin-scaffolder-node@^0.2.8", "@backstage/plugin-scaffolder-node@~0.2.9": version "0.2.10" resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-node/-/plugin-scaffolder-node-0.2.10.tgz#ba0b97e4e8e86d48b991bc4233d64d3d9f389c5c" integrity sha512-3/JQL5JKhRchd/N2gTLTSEnHFhkfCcbSUdZoQDSj4bTkTALl7vNeR6XpW4QqOuKhnaDGndrLORtUiNiCugjRCA== @@ -3690,26 +3471,6 @@ zod "^3.22.4" zod-to-json-schema "^3.20.4" -"@backstage/plugin-scaffolder-node@^0.3.3": - version "0.3.3" - resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-node/-/plugin-scaffolder-node-0.3.3.tgz#debce42879e6e8bc0235a856d3dbdbedb0108296" - integrity sha512-+g6FDcog99AkVp1RQwF8XowjDSU/cjHSawVi9kIB8b34CUJNDSX2IISjmK55BUiSpoTrJy73h1fUp8CcMiCxiQ== - dependencies: - "@backstage/backend-common" "^0.21.3" - "@backstage/backend-plugin-api" "^0.6.13" - "@backstage/catalog-model" "^1.4.4" - "@backstage/errors" "^1.2.3" - "@backstage/integration" "^1.9.0" - "@backstage/plugin-scaffolder-common" "^1.5.0" - "@backstage/types" "^1.1.1" - fs-extra "^11.2.0" - globby "^11.0.0" - jsonschema "^1.2.6" - p-limit "^3.1.0" - winston "^3.2.1" - zod "^3.22.4" - zod-to-json-schema "^3.20.4" - "@backstage/plugin-scaffolder-react@^1.7.1": version "1.7.1" resolved "https://registry.npmmirror.com/@backstage/plugin-scaffolder-react/-/plugin-scaffolder-react-1.7.1.tgz#3731fa9f82dbcfd36610e2db6dfe9d856a7f8e9f" @@ -5513,7 +5274,7 @@ optionalDependencies: openid-client "^5.3.0" -"@kubernetes/client-node@0.20.0", "@kubernetes/client-node@^0.20.0", "@kubernetes/client-node@~0.20.0": +"@kubernetes/client-node@0.20.0", "@kubernetes/client-node@^0.20.0": version "0.20.0" resolved "https://registry.npmmirror.com/@kubernetes/client-node/-/client-node-0.20.0.tgz#4447ae27fd6eef3d4830a5a039f3b84ffd5c5913" integrity sha512-xxlv5GLX4FVR/dDKEsmi4SPeuB49aRc35stndyxcC73XnUEEwF39vXbROpHOirmDse8WE9vxOjABnSVS+jb7EA== @@ -6615,11 +6376,6 @@ resolved "https://registry.npmmirror.com/@opentelemetry/api/-/api-1.7.0.tgz#b139c81999c23e3c8d3c0a7234480e945920fc40" integrity sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw== -"@opentelemetry/api@^1.4.0": - version "1.8.0" - resolved "https://registry.npmmirror.com/@opentelemetry/api/-/api-1.8.0.tgz#5aa7abb48f23f693068ed2999ae627d2f7d902ec" - integrity sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w== - "@parcel/watcher@2.0.4": version "2.0.4" resolved "https://registry.npmmirror.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" @@ -7100,24 +6856,24 @@ moment "^2.29.1" react-use "^17.2.4" -"@roadiehq/scaffolder-backend-module-utils@~1.13.1": - version "1.13.7" - resolved "https://registry.npmmirror.com/@roadiehq/scaffolder-backend-module-utils/-/scaffolder-backend-module-utils-1.13.7.tgz#53e0214316f42170612ad2a7fcc625da979ced67" - integrity sha512-IeKCOsVbISfdnbLxSOwS95APOPVjvjUVMiI0teMokxY081QGcF28oJoM5fNv2qQ2r50BiQoJnfoTfs9PMzpa2g== +"@roadiehq/scaffolder-backend-module-utils@^1.13.1": + version "1.13.1" + resolved "https://registry.npmmirror.com/@roadiehq/scaffolder-backend-module-utils/-/scaffolder-backend-module-utils-1.13.1.tgz#a4bfbc3a0ea4bbb98744958187713b020f0df951" + integrity sha512-fM3R4p8bI71ZgTGWi7uA3hxaG9VN+pZU3aUIa6cDawdOVcfyQrbi00QVd9nyrkIh011obAssQ8Wi4m5WVR3Jsg== dependencies: - "@backstage/backend-common" "^0.21.3" + "@backstage/backend-common" "^0.19.9" "@backstage/config" "^1.1.1" "@backstage/errors" "^1.2.3" - "@backstage/plugin-scaffolder-backend" "^1.21.3" - "@backstage/plugin-scaffolder-node" "^0.3.3" + "@backstage/plugin-scaffolder-backend" "^1.19.1" + "@backstage/plugin-scaffolder-node" "^0.2.8" adm-zip "^0.5.9" cross-fetch "^3.1.4" detect-indent "^6.1.0" fs-extra "^10.0.0" + js-yaml "^4.0.0" jsonata "^1.8.6" lodash "^4.17.21" winston "^3.2.1" - yaml "^2.3.4" "@rollup/plugin-commonjs@^25.0.0": version "25.0.7" @@ -8965,14 +8721,6 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/fs-extra@^11.0.4": - version "11.0.4" - resolved "https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-11.0.4.tgz#e16a863bb8843fba8c5004362b5a73e17becca45" - integrity sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ== - dependencies: - "@types/jsonfile" "*" - "@types/node" "*" - "@types/graceful-fs@^4.1.3": version "4.1.9" resolved "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" @@ -9087,13 +8835,6 @@ resolved "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/jsonfile@*": - version "6.1.4" - resolved "https://registry.npmmirror.com/@types/jsonfile/-/jsonfile-6.1.4.tgz#614afec1a1164e7d670b4a7ad64df3e7beb7b702" - integrity sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ== - dependencies: - "@types/node" "*" - "@types/jsonwebtoken@^9.0.0": version "9.0.5" resolved "https://registry.npmmirror.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.5.tgz#0bd9b841c9e6c5a937c17656e2368f65da025588" @@ -12092,14 +11833,6 @@ cron@^2.0.0: "@types/luxon" "~3.3.0" luxon "~3.3.0" -cron@^3.0.0: - version "3.1.6" - resolved "https://registry.npmmirror.com/cron/-/cron-3.1.6.tgz#e7e1798a468e017c8d31459ecd7c2d088f97346c" - integrity sha512-cvFiQCeVzsA+QPM6fhjBtlKGij7tLLISnTSvFxVdnFGLdz+ZdXN37kNe0i2gefmdD17XuZA6n2uPVwzl4FxW/w== - dependencies: - "@types/luxon" "~3.3.0" - luxon "~3.4.0" - cronstrue@^2.2.0, cronstrue@^2.32.0: version "2.47.0" resolved "https://registry.npmmirror.com/cronstrue/-/cronstrue-2.47.0.tgz#3cf447c2a3a070d5bad2cedd6383e7cc16f5a308" @@ -12795,16 +12528,6 @@ docker-modem@^3.0.0: split-ca "^1.0.1" ssh2 "^1.11.0" -docker-modem@^5.0.3: - version "5.0.3" - resolved "https://registry.npmmirror.com/docker-modem/-/docker-modem-5.0.3.tgz#50c06f11285289f58112b5c4c4d89824541c41d0" - integrity sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg== - dependencies: - debug "^4.1.1" - readable-stream "^3.5.0" - split-ca "^1.0.1" - ssh2 "^1.15.0" - dockerode@^3.3.1: version "3.3.5" resolved "https://registry.npmmirror.com/dockerode/-/dockerode-3.3.5.tgz#7ae3f40f2bec53ae5e9a741ce655fff459745629" @@ -12814,15 +12537,6 @@ dockerode@^3.3.1: docker-modem "^3.0.0" tar-fs "~2.0.1" -dockerode@^4.0.0: - version "4.0.2" - resolved "https://registry.npmmirror.com/dockerode/-/dockerode-4.0.2.tgz#dedc8529a1db3ac46d186f5912389899bc309f7d" - integrity sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w== - dependencies: - "@balena/dockerignore" "^1.0.2" - docker-modem "^5.0.3" - tar-fs "~2.0.1" - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -14320,7 +14034,7 @@ fs-extra@10.1.0, fs-extra@^10.0.0, fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^11.1.0, fs-extra@^11.1.1, fs-extra@^11.2.0, fs-extra@~11.2.0: +fs-extra@^11.1.0, fs-extra@^11.1.1: version "11.2.0" resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== @@ -14607,13 +14321,6 @@ git-url-parse@^13.0.0: dependencies: git-up "^7.0.0" -git-url-parse@^14.0.0: - version "14.0.0" - resolved "https://registry.npmmirror.com/git-url-parse/-/git-url-parse-14.0.0.tgz#18ce834726d5fbca0c25a4555101aa277017418f" - integrity sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ== - dependencies: - git-up "^7.0.0" - gitconfiglocal@^1.0.0: version "1.0.0" resolved "https://registry.npmmirror.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" @@ -17612,7 +17319,7 @@ lunr@^2.3.9: resolved "https://registry.npmmirror.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== -luxon@^3.0.0, luxon@^3.4.3, luxon@~3.4.0: +luxon@^3.0.0, luxon@^3.4.3: version "3.4.4" resolved "https://registry.npmmirror.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af" integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA== @@ -20518,14 +20225,6 @@ prom-client@^14.0.1: dependencies: tdigest "^0.1.1" -prom-client@^15.0.0: - version "15.1.0" - resolved "https://registry.npmmirror.com/prom-client/-/prom-client-15.1.0.tgz#816a4a2128da169d0471093baeccc6d2f17a4613" - integrity sha512-cCD7jLTqyPdjEPBo/Xk4Iu8jxjuZgZJ3e/oET3L+ZwOuap/7Cw3dH/TJSsZKs1TQLZ2IHpIlRAKw82ef06kmMw== - dependencies: - "@opentelemetry/api" "^1.4.0" - tdigest "^0.1.1" - promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -22417,7 +22116,7 @@ sqlstring@^2.3.2: resolved "https://registry.npmmirror.com/sqlstring/-/sqlstring-2.3.3.tgz#2ddc21f03bce2c387ed60680e739922c65751d0c" integrity sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg== -ssh2@^1.11.0, ssh2@^1.15.0: +ssh2@^1.11.0: version "1.15.0" resolved "https://registry.npmmirror.com/ssh2/-/ssh2-1.15.0.tgz#2f998455036a7f89e0df5847efb5421748d9871b" integrity sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw== @@ -23627,20 +23326,6 @@ typescript-json-schema@^0.62.0: typescript "~5.1.0" yargs "^17.1.1" -typescript-json-schema@^0.63.0: - version "0.63.0" - resolved "https://registry.npmmirror.com/typescript-json-schema/-/typescript-json-schema-0.63.0.tgz#55ef6c4dde71625425b169d37e0de3d2ea14e093" - integrity sha512-vBfMBq4U/rZ5FIRi7u4o/YAdeRHsSabdGHogUlCPi0cYU0CGvS4Bdu8bSzyUsF+Kf5PTQUGh2TictJuQTDK6eQ== - dependencies: - "@types/json-schema" "^7.0.9" - "@types/node" "^16.9.2" - glob "^7.1.7" - path-equal "^1.2.5" - safe-stable-stringify "^2.2.0" - ts-node "^10.9.1" - typescript "~5.1.0" - yargs "^17.1.1" - "typescript@>=3 < 6": version "5.3.3" resolved "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" @@ -24734,11 +24419,6 @@ yaml@^2.0.0, yaml@^2.2.1, yaml@^2.2.2: resolved "https://registry.npmmirror.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== -yaml@^2.3.4: - version "2.4.1" - resolved "https://registry.npmmirror.com/yaml/-/yaml-2.4.1.tgz#2e57e0b5e995292c25c75d2658f0664765210eed" - integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== - yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" From 5b2fb498030c816ff147bf0cab2d4a9dc34ddb93 Mon Sep 17 00:00:00 2001 From: Manabu McCloskey Date: Fri, 8 Mar 2024 11:58:52 -0800 Subject: [PATCH 3/6] add other cnoe actions --- packages/backend/src/plugins/sanitize.ts | 59 +++++++++++++++++++ packages/backend/src/plugins/scaffolder.ts | 6 +- packages/backend/src/plugins/verify.ts | 67 ++++++++++++++++++++++ 3 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 packages/backend/src/plugins/sanitize.ts create mode 100644 packages/backend/src/plugins/verify.ts diff --git a/packages/backend/src/plugins/sanitize.ts b/packages/backend/src/plugins/sanitize.ts new file mode 100644 index 0000000..94d7037 --- /dev/null +++ b/packages/backend/src/plugins/sanitize.ts @@ -0,0 +1,59 @@ +import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; +import yaml from 'js-yaml'; + +// Add type annotations to fix TS2742 +type SanitizeResourceInput = { + document: string; +}; + +type SanitizeResourceOutput = { + sanitized: string; +}; + +export const createSanitizeResource = () => { + return createTemplateAction({ + id: 'cnoe:utils:sanitize', + schema: { + input: { + type: 'object', + required: ['document'], + properties: { + document: { + type: 'string', + title: 'Document', + description: 'The document to be sanitized', + }, + }, + }, + }, + async handler(ctx) { + const obj = yaml.load(ctx.input.document); + ctx.output('sanitized', yaml.dump(removeEmptyObjects(obj))); + }, + }); +}; + +// Remove empty elements from an object +function removeEmptyObjects(obj: any): any { + if (typeof obj !== 'object' || obj === null) { + return obj; + } + + const newObj: any = Array.isArray(obj) ? [] : {}; + + for (const key in obj) { + const value = obj[key]; + const newValue = removeEmptyObjects(value); + if ( + !( + newValue === null || + newValue === undefined || + (typeof newValue === 'object' && Object.keys(newValue).length === 0) + ) + ) { + newObj[key] = newValue; + } + } + + return newObj; +} diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts index b0a31b3..87738e5 100644 --- a/packages/backend/src/plugins/scaffolder.ts +++ b/packages/backend/src/plugins/scaffolder.ts @@ -22,6 +22,8 @@ import { createReplaceInFileAction } from '@roadiehq/scaffolder-backend-module-utils'; import {createKubernetesApply} from "./k8s-apply"; +import {createSanitizeResource} from "./sanitize"; +import {createVerifyDependency} from "./verify"; export default async function createPlugin( env: PluginEnvironment, @@ -50,7 +52,9 @@ export default async function createPlugin( const cnoeActions = [ createPublishGiteaAction(options), createArgoCDApp(argocdOptions), - createKubernetesApply(env.config) + createKubernetesApply(env.config), + createSanitizeResource(), + createVerifyDependency() ] const roadieUtilActions = [ diff --git a/packages/backend/src/plugins/verify.ts b/packages/backend/src/plugins/verify.ts new file mode 100644 index 0000000..32e9737 --- /dev/null +++ b/packages/backend/src/plugins/verify.ts @@ -0,0 +1,67 @@ +import { executeShellCommand } from '@backstage/plugin-scaffolder-node'; +import { createTemplateAction }from '@backstage/plugin-scaffolder-node'; +import {Writable} from 'stream'; + +class ConsoleLogStream extends Writable { + data: string; + + constructor(options: any) { + super(options); + this.data = ''; + } + + _write(chunk: any, _: any, callback: any) { + this.data += chunk.toString(); // Convert the chunk to a string and append it to this.data + console.log(this.data) + callback(); + } +} + +export const createVerifyDependency = () => { + return createTemplateAction<{ + verifiers: string[]; + }>({ + id: 'cnoe:verify:dependency', + schema: { + input: { + type: 'object', + required: ['verifiers'], + properties: { + verifiers: { + type: 'array', + items: { + type: 'string', + }, + title: 'verifiers', + description: 'The list of verifiers', + }, + }, + }, + }, + async handler(ctx) { + const verifiers = ctx.input.verifiers + + if (verifiers === null || verifiers.length === 0) { + ctx.logger.error('no verifier was supplied for the object') + return + } + + const baseCommand = 'cnoe' + const baseArguments = ['k8s', 'verify'] + + verifiers.forEach((verifier: string) => baseArguments.push("--config", verifier)) + + const logStream = new ConsoleLogStream({}); + await executeShellCommand({ + command: baseCommand, + args: baseArguments, + logStream: logStream, + }).then(() => + ctx.logger.info("verification succeeded") + ).catch((error) => { + ctx.logger.error(error) + throw new Error(logStream.data) + }); + }, + }); +}; From d627de14bc9613bb2a415e1b258f253e635025a8 Mon Sep 17 00:00:00 2001 From: Manabu McCloskey Date: Tue, 12 Mar 2024 18:05:52 -0700 Subject: [PATCH 4/6] fix k8s-apply --- .../k8s-apply/template-manifest-object.yaml | 41 +++++++++++++++++++ .../k8s-apply/template-manifest-string.yaml | 41 +++++++++++++++++++ packages/backend/src/plugins/k8s-apply.ts | 21 ++++++---- packages/backend/src/plugins/sanitize.ts | 9 ++++ 4 files changed, 105 insertions(+), 7 deletions(-) create mode 100644 examples/k8s-apply/template-manifest-object.yaml create mode 100644 examples/k8s-apply/template-manifest-string.yaml diff --git a/examples/k8s-apply/template-manifest-object.yaml b/examples/k8s-apply/template-manifest-object.yaml new file mode 100644 index 0000000..f88963d --- /dev/null +++ b/examples/k8s-apply/template-manifest-object.yaml @@ -0,0 +1,41 @@ +apiVersion: scaffolder.backstage.io/v1beta3 +kind: Template +metadata: + name: deploy-resources-object + title: Deploy Resources using object + description: Deploy Resource to Kubernetes +spec: + owner: guest + type: service + # these are the steps which are rendered in the frontend with the form input + parameters: [] + steps: + - id: template + name: Generating component + action: fetch:template + input: + url: ./skeleton + - id: apply + name: apply-manifest + action: cnoe:kubernetes:apply + input: + namespaced: true + manifestObject: + apiVersion: v1 + kind: ConfigMap + metadata: + name: game-demo + data: + # property-like keys; each key maps to a simple value + player_initial_lives: "3" + ui_properties_file_name: "user-interface.properties" + + # file-like keys + game.properties: | + enemy.types=aliens,monsters + player.maximum-lives=5 + user-interface.properties: | + color.good=purple + color.bad=yellow + allow.textmode=true + clusterName: local diff --git a/examples/k8s-apply/template-manifest-string.yaml b/examples/k8s-apply/template-manifest-string.yaml new file mode 100644 index 0000000..312f557 --- /dev/null +++ b/examples/k8s-apply/template-manifest-string.yaml @@ -0,0 +1,41 @@ +apiVersion: scaffolder.backstage.io/v1beta3 +kind: Template +metadata: + name: deploy-resources-string + title: Deploy Resources using literal string + description: Deploy Resource to Kubernetes +spec: + owner: guest + type: service + # these are the steps which are rendered in the frontend with the form input + parameters: [] + steps: + - id: template + name: Generating component + action: fetch:template + input: + url: ./skeleton + - id: apply + name: apply-manifest + action: cnoe:kubernetes:apply + input: + namespaced: true + manifestString: | + apiVersion: v1 + kind: ConfigMap + metadata: + name: game-demo + data: + # property-like keys; each key maps to a simple value + player_initial_lives: "3" + ui_properties_file_name: "user-interface.properties" + + # file-like keys + game.properties: | + enemy.types=aliens,monsters + player.maximum-lives=5 + user-interface.properties: | + color.good=purple + color.bad=yellow + allow.textmode=true + clusterName: local diff --git a/packages/backend/src/plugins/k8s-apply.ts b/packages/backend/src/plugins/k8s-apply.ts index 0810cb1..bd3ea31 100644 --- a/packages/backend/src/plugins/k8s-apply.ts +++ b/packages/backend/src/plugins/k8s-apply.ts @@ -1,6 +1,6 @@ import { createTemplateAction, executeShellCommand} from '@backstage/plugin-scaffolder-node'; import { dumpYaml } from '@kubernetes/client-node'; -import YAML from 'yaml'; +import yaml from 'js-yaml'; import { Config } from '@backstage/config'; import { resolveSafeChildPath } from '@backstage/backend-common'; import fs from 'fs-extra'; @@ -57,17 +57,27 @@ export const createKubernetesApply = (config: Config) => { }, async handler(ctx) { let obj: any; + let manifestPath = resolveSafeChildPath(ctx.workspacePath, 'to-be-applied.yaml'); if (ctx.input.manifestString) { - obj = YAML.parse(ctx.input.manifestString); + obj = yaml.load(ctx.input.manifestString) + fs.writeFileSync(manifestPath, ctx.input.manifestString, { + encoding: 'utf8', + mode: '600', + }); } else if (ctx.input.manifestObject) { obj = ctx.input.manifestObject; + fs.writeFileSync(manifestPath, yaml.dump(ctx.input.manifestObject), { + encoding: 'utf8', + mode: '600', + }); } else { const filePath = resolveSafeChildPath( ctx.workspacePath, ctx.input.manifestPath!, ); const fileContent = fs.readFileSync(filePath, 'utf8'); - obj = YAML.parse(fileContent); + manifestPath = filePath + obj = yaml.load(fileContent); } if (ctx.input.clusterName) { @@ -122,10 +132,7 @@ export const createKubernetesApply = (config: Config) => { encoding: 'utf8', mode: '600', }); - const manifestPath = resolveSafeChildPath( - ctx.workspacePath, - ctx.input.manifestPath!, - ); + if (obj.metadata.generateName !== undefined) { await executeShellCommand({ command: 'kubectl', diff --git a/packages/backend/src/plugins/sanitize.ts b/packages/backend/src/plugins/sanitize.ts index 94d7037..03a87b1 100644 --- a/packages/backend/src/plugins/sanitize.ts +++ b/packages/backend/src/plugins/sanitize.ts @@ -25,6 +25,15 @@ export const createSanitizeResource = () => { }, }, }, + output: { + type: 'object', + properties: { + sanitized: { + type: 'string', + description: 'The sanitized yaml string' + } + } + } }, async handler(ctx) { const obj = yaml.load(ctx.input.document); From af1d23bc981ebf141d90c3f400b3306362b0ff80 Mon Sep 17 00:00:00 2001 From: Jesse Sanford <108698+jessesanford@users.noreply.github.com> Date: Wed, 13 Mar 2024 02:23:12 -0400 Subject: [PATCH 5/6] use caFile Signed-off-by: Jesse Sanford <108698+jessesanford@users.noreply.github.com> --- packages/backend/src/plugins/k8s-apply.ts | 32 ++++++++++++++++------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/packages/backend/src/plugins/k8s-apply.ts b/packages/backend/src/plugins/k8s-apply.ts index bd3ea31..0e37f07 100644 --- a/packages/backend/src/plugins/k8s-apply.ts +++ b/packages/backend/src/plugins/k8s-apply.ts @@ -100,7 +100,7 @@ export const createKubernetesApply = (config: Config) => { { name: ctx.input.clusterName, cluster: { - 'certificate-authority-data': targetCluster.getOptionalString('caData'), + 'certificate-authority': targetCluster.getOptionalString('caFile'), server: targetCluster.getString('url'), 'insecure-skip-tls-verify': !!targetCluster.getOptionalBoolean('skipTLSVerify'), }, @@ -116,15 +116,15 @@ export const createKubernetesApply = (config: Config) => { ], }; - if (!confFile.clusters[0].cluster["insecure-skip-tls-verify"]) { - let caDataRaw = targetCluster.getOptionalString('caData') - if (caDataRaw?.startsWith('-----BEGIN CERTIFICATE-----')) { - caDataRaw = Buffer.from(targetCluster.getString('caData'), 'utf8').toString( - 'base64', - ); - } - confFile.clusters[0].cluster['certificate-authority-data'] = caDataRaw - } + //if (!confFile.clusters[0].cluster["insecure-skip-tls-verify"]) { + // let caDataRaw = targetCluster.getOptionalString('caData') + // if (caDataRaw?.startsWith('-----BEGIN CERTIFICATE-----')) { + // caDataRaw = Buffer.from(targetCluster.getString('caData'), 'utf8').toString( + // 'base64', + // ); + // } + // confFile.clusters[0].cluster['certificate-authority-data'] = caDataRaw + //} const confString = dumpYaml(confFile); const confFilePath = resolveSafeChildPath(ctx.workspacePath, 'config'); @@ -132,6 +132,18 @@ export const createKubernetesApply = (config: Config) => { encoding: 'utf8', mode: '600', }); + + await executeShellCommand({ + command: 'cat', + args: [confFilePath], + logStream: ctx.logStream, + }); + + await executeShellCommand({ + command: 'cat', + args: [manifestPath], + logStream: ctx.logStream, + }); if (obj.metadata.generateName !== undefined) { await executeShellCommand({ From e101c857ede183e52420788b78c41fdff6391c90 Mon Sep 17 00:00:00 2001 From: Jesse Sanford <108698+jessesanford@users.noreply.github.com> Date: Wed, 13 Mar 2024 17:16:00 -0400 Subject: [PATCH 6/6] add caData back in Signed-off-by: Jesse Sanford <108698+jessesanford@users.noreply.github.com> --- packages/backend/src/plugins/k8s-apply.ts | 24 ++++++++++------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/packages/backend/src/plugins/k8s-apply.ts b/packages/backend/src/plugins/k8s-apply.ts index 0e37f07..733b6d3 100644 --- a/packages/backend/src/plugins/k8s-apply.ts +++ b/packages/backend/src/plugins/k8s-apply.ts @@ -100,6 +100,7 @@ export const createKubernetesApply = (config: Config) => { { name: ctx.input.clusterName, cluster: { + 'certificate-authority-data': targetCluster.getOptionalString('caData'), 'certificate-authority': targetCluster.getOptionalString('caFile'), server: targetCluster.getString('url'), 'insecure-skip-tls-verify': !!targetCluster.getOptionalBoolean('skipTLSVerify'), @@ -115,36 +116,31 @@ export const createKubernetesApply = (config: Config) => { }, ], }; - - //if (!confFile.clusters[0].cluster["insecure-skip-tls-verify"]) { - // let caDataRaw = targetCluster.getOptionalString('caData') - // if (caDataRaw?.startsWith('-----BEGIN CERTIFICATE-----')) { - // caDataRaw = Buffer.from(targetCluster.getString('caData'), 'utf8').toString( - // 'base64', - // ); - // } - // confFile.clusters[0].cluster['certificate-authority-data'] = caDataRaw - //} - + if (!confFile.clusters[0].cluster["insecure-skip-tls-verify"]) { + let caDataRaw = targetCluster.getOptionalString('caData') + if (caDataRaw?.startsWith('-----BEGIN CERTIFICATE-----')) { + caDataRaw = Buffer.from(targetCluster.getString('caData'), 'utf8').toString( + 'base64', + ); + } + confFile.clusters[0].cluster['certificate-authority-data'] = caDataRaw + } const confString = dumpYaml(confFile); const confFilePath = resolveSafeChildPath(ctx.workspacePath, 'config'); fs.writeFileSync(confFilePath, confString, { encoding: 'utf8', mode: '600', }); - await executeShellCommand({ command: 'cat', args: [confFilePath], logStream: ctx.logStream, }); - await executeShellCommand({ command: 'cat', args: [manifestPath], logStream: ctx.logStream, }); - if (obj.metadata.generateName !== undefined) { await executeShellCommand({ command: 'kubectl',