Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions workspaces/mta/.changeset/backstage-v1-42-5-mta-updates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
'@backstage-community/backstage-plugin-mta-backend': minor
'@backstage-community/backstage-plugin-catalog-backend-module-mta-entity-provider': minor
'@backstage-community/backstage-plugin-scaffolder-backend-module-mta': minor
'@backstage-community/backstage-plugin-mta-frontend': minor
---

Updated MTA plugins for Backstage v1.42.5:

- Migrated dynamic plugin installer from legacy to new format
- Enhanced scaffolder action with better type safety and output handling
- Updated dependencies to align with Backstage v1.42.5
2 changes: 1 addition & 1 deletion workspaces/mta/backstage.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"version": "1.37.1"
"version": "1.42.5"
}
4 changes: 2 additions & 2 deletions workspaces/mta/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@
"directory": "workspaces/mta"
},
"devDependencies": {
"@backstage/cli": "^0.31.1",
"@backstage/cli": "^0.34.1",
"@backstage/e2e-test-utils": "^0.1.1",
"@backstage/repo-tools": "^0.13.1",
"@backstage/repo-tools": "^0.15.1",
"@changesets/cli": "^2.27.7",
"@playwright/test": "^1.32.3",
"knip": "^5.27.4",
Expand Down
48 changes: 24 additions & 24 deletions workspaces/mta/packages/app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,31 +20,31 @@
},
"dependencies": {
"@backstage-community/backstage-plugin-mta-frontend": "workspace:^",
"@backstage/app-defaults": "^1.6.0",
"@backstage/catalog-model": "^1.7.3",
"@backstage/cli": "^0.31.1",
"@backstage/core-app-api": "^1.16.0",
"@backstage/core-components": "^0.17.0",
"@backstage/core-plugin-api": "^1.10.5",
"@backstage/integration-react": "^1.2.5",
"@backstage/plugin-api-docs": "^0.12.5",
"@backstage/plugin-catalog": "^1.28.0",
"@backstage/plugin-catalog-common": "^1.1.3",
"@backstage/plugin-catalog-graph": "^0.4.17",
"@backstage/plugin-catalog-import": "^0.12.12",
"@backstage/plugin-catalog-react": "^1.16.0",
"@backstage/app-defaults": "^1.6.5",
"@backstage/catalog-model": "^1.7.5",
"@backstage/cli": "^0.34.1",
"@backstage/core-app-api": "^1.18.0",
"@backstage/core-components": "^0.17.5",
"@backstage/core-plugin-api": "^1.10.9",
"@backstage/integration-react": "^1.2.9",
"@backstage/plugin-api-docs": "^0.12.10",
"@backstage/plugin-catalog": "^1.31.2",
"@backstage/plugin-catalog-common": "^1.1.5",
"@backstage/plugin-catalog-graph": "^0.4.22",
"@backstage/plugin-catalog-import": "^0.13.4",
"@backstage/plugin-catalog-react": "^1.20.1",
"@backstage/plugin-github-actions": "^0.6.15",
"@backstage/plugin-org": "^0.6.37",
"@backstage/plugin-permission-react": "^0.4.32",
"@backstage/plugin-scaffolder": "^1.29.0",
"@backstage/plugin-search": "^1.4.24",
"@backstage/plugin-search-react": "^1.8.7",
"@backstage/plugin-org": "^0.6.43",
"@backstage/plugin-permission-react": "^0.4.36",
"@backstage/plugin-scaffolder": "^1.34.0",
"@backstage/plugin-search": "^1.4.29",
"@backstage/plugin-search-react": "^1.9.3",
"@backstage/plugin-tech-radar": "^0.7.3",
"@backstage/plugin-techdocs": "^1.12.4",
"@backstage/plugin-techdocs-module-addons-contrib": "^1.1.22",
"@backstage/plugin-techdocs-react": "^1.2.15",
"@backstage/plugin-user-settings": "^0.8.20",
"@backstage/theme": "^0.6.4",
"@backstage/plugin-techdocs": "^1.14.1",
"@backstage/plugin-techdocs-module-addons-contrib": "^1.1.27",
"@backstage/plugin-techdocs-react": "^1.3.2",
"@backstage/plugin-user-settings": "^0.8.25",
"@backstage/theme": "^0.6.8",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"history": "^5.0.0",
Expand All @@ -55,7 +55,7 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/test-utils": "^1.7.6",
"@backstage/test-utils": "^1.7.11",
"@playwright/test": "^1.32.3",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
Expand Down
44 changes: 22 additions & 22 deletions workspaces/mta/packages/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,27 +24,27 @@
"@backstage-community/backstage-plugin-catalog-backend-module-mta-entity-provider": "workspace:^",
"@backstage-community/backstage-plugin-mta-backend": "workspace:^",
"@backstage-community/backstage-plugin-scaffolder-backend-module-mta": "workspace:^",
"@backstage/backend-defaults": "^0.8.2",
"@backstage/backend-dynamic-feature-service": "^0.6.1",
"@backstage/config": "^1.3.2",
"@backstage/plugin-app-backend": "^0.5.0",
"@backstage/plugin-auth-backend": "^0.24.4",
"@backstage/plugin-auth-backend-module-github-provider": "^0.3.1",
"@backstage/plugin-auth-backend-module-guest-provider": "^0.2.6",
"@backstage/plugin-auth-node": "^0.6.1",
"@backstage/plugin-catalog-backend": "^1.32.0",
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.2.6",
"@backstage/plugin-permission-backend": "^0.5.55",
"@backstage/plugin-permission-backend-module-allow-all-policy": "^0.2.6",
"@backstage/plugin-permission-common": "^0.8.4",
"@backstage/plugin-permission-node": "^0.9.0",
"@backstage/plugin-proxy-backend": "^0.6.0",
"@backstage/plugin-scaffolder-backend": "^1.31.0",
"@backstage/plugin-search-backend": "^2.0.0",
"@backstage/plugin-search-backend-module-catalog": "^0.3.2",
"@backstage/plugin-search-backend-module-techdocs": "^0.4.0",
"@backstage/plugin-search-backend-node": "^1.3.9",
"@backstage/plugin-techdocs-backend": "^2.0.0",
"@backstage/backend-defaults": "^0.12.0",
"@backstage/backend-dynamic-feature-service": "^0.7.3",
"@backstage/config": "^1.3.3",
"@backstage/plugin-app-backend": "^0.5.5",
"@backstage/plugin-auth-backend": "^0.25.3",
"@backstage/plugin-auth-backend-module-github-provider": "^0.3.6",
"@backstage/plugin-auth-backend-module-guest-provider": "^0.2.11",
"@backstage/plugin-auth-node": "^0.6.6",
"@backstage/plugin-catalog-backend": "^3.0.1",
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.2.11",
"@backstage/plugin-permission-backend": "^0.7.3",
"@backstage/plugin-permission-backend-module-allow-all-policy": "^0.2.11",
"@backstage/plugin-permission-common": "^0.9.1",
"@backstage/plugin-permission-node": "^0.10.3",
"@backstage/plugin-proxy-backend": "^0.6.5",
"@backstage/plugin-scaffolder-backend": "^2.2.0",
"@backstage/plugin-search-backend": "^2.0.5",
"@backstage/plugin-search-backend-module-catalog": "^0.3.7",
"@backstage/plugin-search-backend-module-techdocs": "^0.4.5",
"@backstage/plugin-search-backend-node": "^1.3.14",
"@backstage/plugin-techdocs-backend": "^2.0.5",
"app": "link:../app",
"better-sqlite3": "^9.0.0",
"dockerode": "^3.3.1",
Expand All @@ -53,7 +53,7 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/cli": "^0.31.1",
"@backstage/cli": "^0.34.1",
"@types/dockerode": "^3.3.0",
"@types/express": "^4.17.6",
"@types/express-serve-static-core": "^4.17.5",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,18 @@
"tsc": "tsc"
},
"dependencies": {
"@backstage/backend-dynamic-feature-service": "^0.6.1",
"@backstage/backend-plugin-api": "^1.2.1",
"@backstage/catalog-model": "^1.7.3",
"@backstage/config": "^1.3.2",
"@backstage/plugin-catalog-common": "^1.1.3",
"@backstage/plugin-catalog-node": "^1.16.2",
"@backstage/backend-dynamic-feature-service": "^0.7.3",
"@backstage/backend-plugin-api": "^1.4.2",
"@backstage/catalog-model": "^1.7.5",
"@backstage/config": "^1.3.3",
"@backstage/plugin-catalog-common": "^1.1.5",
"@backstage/plugin-catalog-node": "^1.18.0",
"openid-client": "^5.6.5",
"winston": "^3.13.0"
},
"devDependencies": {
"@backstage/backend-test-utils": "^1.3.1",
"@backstage/cli": "^0.31.1"
"@backstage/backend-test-utils": "^1.8.0",
"@backstage/cli": "^0.34.1"
},
"files": [
"dist"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
import { BackendDynamicPluginInstaller } from '@backstage/backend-dynamic-feature-service';
import { MTAProvider } from '../provider/MTAEntityProvider';
import { catalogModuleMtaEntityProvider } from '../module';

export const dynamicPluginInstaller: BackendDynamicPluginInstaller = {
kind: 'legacy',
async catalog(builder, env) {
builder.addEntityProvider(
MTAProvider.newProvider(env.config, env.logger, env.scheduler),
);
},
kind: 'new',
install: () => [catalogModuleMtaEntityProvider],
};
18 changes: 9 additions & 9 deletions workspaces/mta/plugins/mta-backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@
"tsc": "tsc"
},
"dependencies": {
"@backstage/backend-dynamic-feature-service": "^0.6.1",
"@backstage/backend-plugin-api": "^1.2.1",
"@backstage/config": "^1.3.2",
"@backstage/plugin-auth-node": "^0.6.1",
"@backstage/plugin-catalog-node": "^1.16.2",
"@backstage/backend-dynamic-feature-service": "^0.7.3",
"@backstage/backend-plugin-api": "^1.4.2",
"@backstage/config": "^1.3.3",
"@backstage/plugin-auth-node": "^0.6.6",
"@backstage/plugin-catalog-node": "^1.18.0",
"@types/express": "*",
"dotenv": "^16.4.5",
"express": "^4.17.1",
Expand All @@ -49,10 +49,10 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/backend-defaults": "^0.8.2",
"@backstage/cli": "^0.31.1",
"@backstage/plugin-auth-backend": "^0.24.4",
"@backstage/plugin-auth-backend-module-guest-provider": "^0.2.6",
"@backstage/backend-defaults": "^0.12.0",
"@backstage/cli": "^0.34.1",
"@backstage/plugin-auth-backend": "^0.25.3",
"@backstage/plugin-auth-backend-module-guest-provider": "^0.2.11",
"@types/supertest": "^2.0.12",
"msw": "^1.3.3",
"supertest": "^6.2.4"
Expand Down
22 changes: 11 additions & 11 deletions workspaces/mta/plugins/mta-frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,13 @@
"postpack": "backstage-cli package postpack"
},
"dependencies": {
"@backstage/core-components": "^0.17.0",
"@backstage/core-plugin-api": "^1.10.5",
"@backstage/frontend-plugin-api": "^0.10.0",
"@backstage/plugin-catalog-react": "^1.16.0",
"@backstage/plugin-scaffolder": "^1.29.0",
"@backstage/plugin-scaffolder-react": "^1.14.6",
"@backstage/theme": "^0.6.4",
"@backstage/core-components": "^0.17.5",
"@backstage/core-plugin-api": "^1.10.9",
"@backstage/frontend-plugin-api": "^0.11.0",
"@backstage/plugin-catalog-react": "^1.20.1",
"@backstage/plugin-scaffolder": "^1.34.0",
"@backstage/plugin-scaffolder-react": "^1.19.0",
"@backstage/theme": "^0.6.8",
"@material-ui/core": "^4.12.4",
"@material-ui/icons": "^4.11.3",
"@material-ui/lab": "4.0.0-alpha.61",
Expand All @@ -52,10 +52,10 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.31.1",
"@backstage/core-app-api": "^1.16.0",
"@backstage/dev-utils": "^1.1.8",
"@backstage/test-utils": "^1.7.6",
"@backstage/cli": "^0.34.1",
"@backstage/core-app-api": "^1.18.0",
"@backstage/dev-utils": "^1.1.13",
"@backstage/test-utils": "^1.7.11",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@
"postpack": "backstage-cli package postpack"
},
"dependencies": {
"@backstage/backend-dynamic-feature-service": "^0.6.1",
"@backstage/backend-plugin-api": "^1.2.1",
"@backstage/catalog-client": "^1.9.1",
"@backstage/plugin-scaffolder-node": "^0.8.0",
"@backstage/backend-dynamic-feature-service": "^0.7.3",
"@backstage/backend-plugin-api": "^1.4.2",
"@backstage/catalog-client": "^1.11.0",
"@backstage/plugin-scaffolder-node": "^0.11.0",
"openid-client": "^5.6.5"
},
"devDependencies": {
"@backstage/cli": "^0.31.1"
"@backstage/cli": "^0.34.1"
},
"files": [
"dist"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,14 @@
```ts

import { BackendFeature } from '@backstage/backend-plugin-api';
import { JsonObject } from '@backstage/types/index';
import { TemplateAction } from '@backstage/plugin-scaffolder-node';

// @public (undocumented)
export function createMTAApplicationAction(opts: any): TemplateAction< {
name: string;
url: string;
branch: string;
rootPath: string;
}, JsonObject, "v1">;
[x: string]: any;
}, {
[x: string]: any;
}, "v2">;

// @public (undocumented)
const mtaScaffolderModule: BackendFeature;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { Issuer } from 'openid-client';

/**
* Creates an action that creates an application in MTA.
*/
Expand All @@ -8,28 +9,18 @@ import { Issuer } from 'openid-client';
export function createMTAApplicationAction(opts: any) {
const { config, logger } = opts;

return createTemplateAction<{
name: string;
url: string;
branch: string;
rootPath: string;
}>({
return createTemplateAction({
id: 'mta:createApplication',
description: 'Create application in MTA',
schema: {
input: {
type: 'object',
required: ['name', 'url', 'branch', 'rootPath'],
properties: {
name: { title: 'Name of the application', type: 'string' },
url: { title: 'Repository URL', type: 'string' },
branch: { title: 'Branch', type: 'string' },
rootPath: { title: 'Root Path', type: 'string' },
},
},
},
supportsDryRun: false,
async handler(ctx) {
const { name, url, branch, rootPath } = ctx.input;
const { name, url, branch, rootPath } = ctx.input as {
name: string;
url: string;
branch: string;
rootPath: string;
};

const baseUrl = config.getString('mta.url');
const baseURLHub = `${baseUrl}/hub`;
const realm = config.getString('mta.providerAuth.realm');
Expand Down Expand Up @@ -58,9 +49,9 @@ export function createMTAApplicationAction(opts: any) {

const repository = {
kind: 'git',
url: url.trim(),
branch: branch.trim(),
path: rootPath.trim(),
url: String(url).trim(),
branch: String(branch).trim(),
path: String(rootPath).trim(),
};
const body = JSON.stringify({ name, repository });

Expand All @@ -85,6 +76,10 @@ export function createMTAApplicationAction(opts: any) {
logger.info(
`Application created successfully: ${JSON.stringify(responseData)}`,
);

// Set outputs for use in subsequent steps
ctx.output('applicationId', responseData.id);
ctx.output('applicationName', responseData.name);
} catch (error: any) {
logger.error(
`Error in creating application: ${error?.message as string}`,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import { BackendDynamicPluginInstaller } from '@backstage/backend-dynamic-feature-service';
import { createMTAApplicationAction } from '../actions';
import { mtaScaffolderModule } from '../module';

export const dynamicPluginInstaller: BackendDynamicPluginInstaller = {
kind: 'legacy',
scaffolder: env => {
return [createMTAApplicationAction(env)];
},
kind: 'new',
install: () => [mtaScaffolderModule],
};
Loading