Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow me to RE-introduce the DevTools plugin! 馃О #17393

Merged

Conversation

awanlin
Copy link
Collaborator

@awanlin awanlin commented Apr 14, 2023

Hey, I just made a Pull Request!

Allow me to RE-introduce the DevTools plugin - another handy tool to add to your Backstage 馃О ! This will close #9737 and hopefully open a world of new features to help Backstage Adopters who run the Ops side of things 馃槈

Note: I've moved this to my work account so that I can more easily get this merged in; the previous Draft PR is #14642

The plugin offers the following features:

Lists info about your current Backstage instance - OS, NodeJS version, Backstage version and packages:

devtools-info-tab

Lists the config being used by your current Backstage instance:

devtools-config-tab

There's also an optional tab where you can list connectivity with External Dependencies:

devtools-external-dependencies

The plugin has also been designed so you can customize the tabs - remove them, add them, and/or create your own.

Support for the permissions framework is included in an open way so that you can control this as best fits your needs. There is detailed guidance in the plugin's README.md on this topic.

鉁旓笍 Checklist

  • A changeset describing the change and affected packages. (more info)
  • Added or updated documentation
  • Tests for new functionality and regression tests for bug fixes
  • Screenshots attached (for UI changes)
  • All your commits have a Signed-off-by line in the message. (more info)

@backstage-goalie
Copy link
Contributor

backstage-goalie bot commented Apr 14, 2023

Changed Packages

Package Name Package Path Changeset Bump Current Version
example-app packages/app none v0.2.83-next.1
example-backend packages/backend none v0.2.83-next.1
@backstage/plugin-devtools-backend plugins/devtools-backend minor v0.0.0
@backstage/plugin-devtools-common plugins/devtools-common minor v0.0.0
@backstage/plugin-devtools plugins/devtools minor v0.0.0

@awanlin
Copy link
Collaborator Author

awanlin commented Apr 14, 2023

@adamdmharvey @sennyeya @regicsolutions @efenner-cambia @webark just a heads up that I moved PR #1642 to my work account and moved it to ready so that I can more easily get it merged in. Thanks a ton for your patience, just a bit longer as I work though getting this reviewed now 馃殌

@awanlin
Copy link
Collaborator Author

awanlin commented Apr 14, 2023

@freben do I need to do anything special with the DCO? @ahhhndre is me so not sure if this needs anything special.

@github-actions
Copy link
Contributor

github-actions bot commented Apr 14, 2023

Uffizzi Preview deployment-22318 was deleted.

Copy link
Member

@adamdmharvey adamdmharvey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Posted this to my internal team, I think this could really help us, so eager to see this one through! 馃憦馃徎

One thing I'm not clear about is the permissioning? I see the file defining it, but I don't see any instructions in a README or anything about how to set it? Maybe I missed it? i.e. how would an adopter configure the permissions to limit this route? oof, yeah missed it. it's complicated :) not your doing, but we've just not implemented any permissions yet so a lot to dig into, but something we can do.

plugins/devtools-backend/src/api/DevToolsBackendApi.ts Outdated Show resolved Hide resolved
plugins/devtools-backend/src/api/DevToolsBackendApi.ts Outdated Show resolved Hide resolved
plugins/devtools-common/api-report.md Outdated Show resolved Hide resolved
plugins/devtools-common/src/index.ts Show resolved Hide resolved
plugins/devtools-backend/src/index.ts Show resolved Hide resolved
plugins/devtools/src/index.ts Show resolved Hide resolved
Copy link
Member

@adamdmharvey adamdmharvey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, @awanlin !

Re: the @packageDocumentation, with them set, it'll flesh out the microsite's API Reference index here: https://backstage.io/docs/reference/

So having something so they're not blank is just a nice way to better elevate them.

Thanks, look forward to trying this one out!! 馃憦馃徎

@antoniobergas
Copy link
Contributor

This looks great! Is it possible to configure any external dependency through the config?

Looking forward to test it 馃榿

@awanlin
Copy link
Collaborator Author

awanlin commented Apr 20, 2023

This looks great! Is it possible to configure any external dependency through the config?

Looking forward to test it 馃榿

Yes you can configure them using the config, there details on how to do that are in the frontend README. Here's a link to that in the PR branch for now: https://github.com/awanlin/backstage/tree/topic/re-introduce-devtools-plugin/plugins/devtools#external-dependencies-configuration

The idea is really around dependencies that your Backstage instance might need to connect to not something more global. We used this to help us identify firewall issues connection to services/APIs we needed to be able to pull data from. If we got reports of something not working we could also check here to quickly validate what's going on

Copy link
Member

@benjdlambert benjdlambert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey 馃憢 thanks for this @awanlin! Really well written plugin 馃憤

Some higher level comments, but it's looking pretty good to me.

}

public async listConfig(): Promise<ConfigInfo> {
/* eslint-disable-next-line no-restricted-syntax */
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Rugvip is this the best way to grab all the configs and omit secrets or is there an easier way?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

plugins/devtools-backend/src/util/Lockfile.ts Show resolved Hide resolved
plugins/devtools/src/api/DevToolsClient.ts Show resolved Hide resolved
Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com>
Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com>
Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com>
@awanlin awanlin force-pushed the topic/re-introduce-devtools-plugin branch from 715648b to 155cfab Compare May 2, 2023 20:51
@awanlin
Copy link
Collaborator Author

awanlin commented May 3, 2023

Thanks for the initial review @benjdlambert, ready for another look when you have time 馃憤

Copy link
Member

@benjdlambert benjdlambert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Let鈥檚 merge and keep adding some things to this!

@benjdlambert benjdlambert merged commit c1ad97f into backstage:master May 8, 2023
36 checks passed
@github-actions
Copy link
Contributor

github-actions bot commented May 8, 2023

Thank you for contributing to Backstage! The changes in this pull request will be part of the 1.14.0 release, scheduled for Tue, 16 May 2023.

@awanlin awanlin deleted the topic/re-introduce-devtools-plugin branch May 8, 2023 16:48
@freben freben mentioned this pull request May 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[RFC] Debug Plugin
4 participants