open-index/open-npm huggingface dataset:
npm package: @portal-dx/plugin-deploy-schedule
Description: List the Deploys scheduled in Cronhooks in a simple way.
Latest version: 1.0.6

![img](https://github.com/madeiramadeirabr/portaldx/blob/feat-cronhooks-plugin/images/banner.svg)

# @portal-dx/plugin-deploy-schedule

List the Deploys scheduled in Cronhooks in a simple way.

_This plugin was created through the Backstage CLI_

## Requirements

- [Backstage](https://backstage.io/) Project;
- Node.js v16.14.x

## Use

### app-config.yaml

```yaml
[...]

proxy:
  '/chronhooks':
    target: 'https://api.cronhooks.io/'
    changeOrigin: true
    allowedMethods: [GET, POST, PUT, DELETE]
    allowedHeaders: ['Authorization']
    pathRewrite:
      '^/api/proxy/chronhooks/': '/'
    headers:
      Authorization: ${TOKEN_CRONHOOKS}

[...]
```

### routes.tsx

`packages/app/src/routes.tsx`

```tsx
import { DeploySchedulePage } from '@portal-dx/plugin-deploy-schedule'

[...]

const routes = (
  <FlatRoutes>
  [...]
    <Route path="/deploy-schedule" element={<DeploySchedulePage />} />
  </FlatRoutes>
);
```

_Developed with ❤️ by the [MadeiraMadeira](https://github.com/madeiramadeirabr) SRE Team_
npm package: @portal-dx/plugin-github-insights
Description: Welcome to the github-insights plugin!
Latest version: 1.3.6

# github-insights

Welcome to the github-insights plugin!

_This plugin was created through the Backstage CLI_

## Getting started

Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn start` in the root directory, and then navigating to [/github-insights](http://localhost:3000/github-insights).

You can also serve the plugin in isolation by running `yarn start` in the plugin directory.
This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads.
It is only meant for local development, and the setup for it can be found inside the [/dev](./dev) directory.
npm package: @portal-dx/plugin-medium-feed
Description: List the feed of a user on Backstage
Latest version: 1.0.7

# @portal-dx/plugin-medium-feed

List the feed of a user on Backstage

_This plugin was created through the Backstage CLI_

## Requirements

- [Backstage](https://backstage.io/) Project;
- Node.js v16.14.x

## Use

### On App.tsx:

```tsx
import { MediumFeedProvider } from '@portal-dx/plugin-medium-feed'

[...]

export default app.createRoot(
<AppRouter>
  <MediumFeedProvider user="your-user-here">
    [...]
  </MediumFeedProvider>
<AppRouter />
);
```

### On routes.tsx or Root.tsx:

`packages/app/src/routes.tsx`

```tsx
import { MediumFeedPage } from '@portal-dx/plugin-medium-feed'

[...]

const routes = (
  <FlatRoutes>
    [...]
    <Route path="/medium" element={<MediumFeedPage />} />
  </FlatRoutes>
);
```

### On HomePage.tsx or any other page:

`packages/app/src/pages/HomePage.tsx`

```tsx
import { MediumFeedHomeWidget } from '@portal-dx/plugin-medium-feed';

 [...]

 export const HomePage = () => {

    return (

    [...]
    <Grid item xs={12} md={6}>
        <MediumFeedHomeWidget />
    </Grid>
    );
 };

```

_Developed with ❤️ by the [MadeiraMadeira](https://github.com/madeiramadeirabr) DX Junior Team_
npm package: @portal-dx/plugin-mm-components
Description: > Check the documentation in pt-BR by clicking [here](./docs/README_pt-BR.md).
Latest version: 0.1.0

# mm-components
> Check the documentation in pt-BR by clicking [here](./docs/README_pt-BR.md).

Plugin that allows you to customize the layout of the default pages, as well as the customized ones in Spotify's [Backstage](https://backstage.io/).


_This plugin was created through the Backstage CLI_

## Requirements

- [Backstage](https://backstage.io/) Project;
- Node.js v16.14.x

## What can you do?

Restructure the entire layout of the pages, so that those that have SideBar are not harmed.

## Install

```
yarn add @portal-dx/plugin-mm-components
```

or

```
npm i @portal-dx/plugin-mm-components
```

## Use

In your pages custom:

```diff
+ import { WorkspaceLayout } from '@portal-dx/plugin-mm-components'

[...]

+ return (
+     <WorkspaceLayout
+      title="Example Title"
+      subtitle="Example Subtitle."
+      themeId="home"
+      hasSidebar={boolean}
+    >

      [...]

+    </WorkspaceLayout>
+  );
```
_Developed with ❤️ by the [MadeiraMadeira](https://github.com/madeiramadeirabr) DX Team_
npm package: @portal-dx/plugin-notifications-backend
Description: Welcome to the notifications backend plugin!
Latest version: 0.1.6

# notifications

Welcome to the notifications backend plugin!

_This plugin was created through the Backstage CLI_

## Getting started

Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn start` in the root directory, and then navigating to [/notifications](http://localhost:3000/notifications).

You can also serve the plugin in isolation by running `yarn start` in the plugin directory.
This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads.
It is only meant for local development, and the setup for it can be found inside the [/dev](/dev) directory.
npm package: @portal-dx/plugin-positive-quotes
Description: Display a random positive quote message from "O Pensador".
Latest version: 1.0.4

# @portal-dx/plugin-positive-quotes

Display a random positive quote message from "O Pensador".

_This plugin was created through the Backstage CLI_

## Requirements

- [Backstage](https://backstage.io/) Project;
- Node.js v16.14.x

## Install

```
yarn add @portal-dx/plugin-positive-quotes
```

or

```
npm i @portal-dx/plugin-positive-quotes
```

## Use

### app-config.yaml

```yaml
[...]

proxy:
  '/positive-quotes':
    target: 'https://quotes-br.herokuapp.com/api/'
    changeOrigin: true
    allowedMethods: [GET, POST]
    pathRewrite:
      '^/api/proxy/positive-quotes/': '/'

[...]
```

### routes.tsx

`packages/app/src/routes.tsx`

```tsx
import { PositiveQuotesPage } from '@portal-dx/plugin-positive-quotes';
// ...

const routes = (
  <FlatRoutes>
    // ...
    <Route path="/positive-quotes" element={<PositiveQuotesPage />} />
  </FlatRoutes>
);
```

### Import the component where you want to use it:

`src/components/common/WelcomeHeader/WelcomeHeader.tsx`

```tsx
import { PositiveQuoteText } from '@portal-dx/plugin-positive-quotes';

// ...

const routes = (
  <>
    // ...
    <PositiveQuoteText />
  </>
);
```

_Developed with ❤️ by the [MadeiraMadeira](https://github.com/madeiramadeirabr) DX Team_
npm package: @portal-dx/plugin-rollback-application
Description: Imagine you have an application that takes 20 minutes to deploy and you need to make an URGENT fix, waiting that time wouldn't be a good idea.
Latest version: 0.1.4

# @portal-dx/plugin-rollback-application

Imagine you have an application that takes 20 minutes to deploy and you need to make an URGENT fix, waiting that time wouldn't be a good idea.

This plugin was developed to simplify the process of rolling back your ECS application. By using it, you can easily revert to a previous version of your taskDefinition in case of errors or problems with the current version, bypassing the deploy phase. Additionally, it also allows you to view and compare the differences between versions before performing the rollback. All of this with just a few clicks!

_This plugin was created through the Backstage CLI_

## Requirements

- [Backstage](https://backstage.io/) Project;
- Node.js v16.14.x
- AWS Credentials with permissions to read and alter taskDefinitions

## Use

### app-config.yaml

```yaml
[...]
rollbackApplication:
  accessKeyId: {{ ACCESS_KEY_ID }}
  accessSecretKey: {{ SECRET_ACCESS_KEY_ID }}
  region: {{ AWS_REGION }}
[...]
```

### catalog-info.yaml

_This file is located at the root of each of your remote repositories. The plugin will only work with the settings as described_

```yaml
[...]
metadata:
  [...]
  annotations:
    [...]
    aws.amazon.com/service: name-you-application-aws-staging
    aws.amazon.com/cluster: your-application-cluster
[...]
```

### catalog/EntityPage.tsx
`packages/app/src/components/catalog/EntityPage.tsx`

```diff
+ import { RollbackApplicationComponent, isRollbackAvaliable } from '@portal-dx/plugin-rollback-application';

[...]

const serviceEntityPage = (
  <EntityLayout>
+   <EntityLayout.Route if={isRollbackAvaliable} path="/rollback" title="Rollback">
+      <RollbackApplicationComponent />
+    </EntityLayout.Route>
  </EntityLayout>
); 
```

_Developed with ❤️ by the [MadeiraMadeira](https://github.com/madeiramadeirabr) SRE Team_
npm package: @portal-dx/plugin-tech-dashboard
Description: Welcome to the tech-dashboard plugin!
Latest version: 0.1.7

# @portal-dx/plugin-tech-dashboard

Welcome to the tech-dashboard plugin!

This plugin presents tech metrics from inside MadeiraMadeira and PortalDX, such as repository creation patterns, quantity of technical debts, incident count and the Q&A plugin consume, seeking data from New Relic, Github and Jira

_This plugin was created through the Backstage CLI_

## Requirements

- [Backstage](https://backstage.io/) Project;
- Node.js v18.17.1
- You will also need the backend plugin [tech-dashboard-backend](https://www.npmjs.com/package/@portal-dx/plugin-tech-dashboard-backend)

## Use

Access the folder /packages/app and run the following command

```
yarn add @portal-dx/plugin-tech-dashboard
```

### On App.tsx:

```tsx
import { TechDashboardPage } from '@portal-dx/plugin-tech-dashboard';

[...]

const routes = (
  <FlatRoutes>
  [...]
    <Route path="/tech-dashboard" element={<TechDashboardPage />} />
  [...]
  </FlatRoutes>
);
```

### On HomePage.tsx or any other page:

```tsx
import { TechDashboardWidget } from '@portal-dx/plugin-tech-dashboard';

 [...]

 export const HomePage = () => {
    return (
    [...]
    <Grid container>
      <Grid item xs={12} md={12}>
        <Box style={{ marginBottom: 25 }}>
          <TechDashboardWidget />
        </Box>
      </Grid>
    </Grid>
    );
 };

```

_Developed with ❤️ by the [MadeiraMadeira](https://github.com/madeiramadeirabr) DX Team_
npm package: @portal-dx/plugin-tech-dashboard-backend
Description: Welcome to the tech-dashboard plugin!
Latest version: 0.2.8

# @portal-dx/plugin-tech-dashboard

Welcome to the tech-dashboard plugin!

This is the backend plugin related to the tech-dashboard plugin, which presents tech metrics on the HomePage

_This plugin was created through the Backstage CLI_

## Requirements

- [Backstage](https://backstage.io/) Project;
- Node.js v18.17.1
- This plugin use Redis for data cache

## Use

Access the folder `/packages/backend` and run the following command

```
yarn add @portal-dx/plugin-tech-dashboard-backend
```

In your `App-config.yaml` include this

```yaml
backend:
[...]
  cache:
    store: redis
    connection: {{ REDIS_CONNECTION }}
[...]
proxy:
  '/github-traffic-views':
    target: 'https://api.github.com/repos/madeiramadeirabr/mmrfc/traffic/views'
    changeOrigin: true
    allowedHeaders: ['Authorization', 'Accept', 'X-GitHub-Api-Version']
    allowedMethods: ['GET']
    pathRewrite:
      '^/api/proxy/github-traffic-views': ''
    headers:
      Authorization: {{ GIT_HUB_KEY }}
      Accept: 'application/vnd.github+json'
      X-GitHub-Api-Version: '2022-11-28'

  '/github-search':
    target: 'https://api.github.com/search/code'
    changeOrigin: true
    allowedMethods: ['GET']
    pathRewrite:
      '^/api/proxy/github-search/code': ''
    headers:
      Authorization: {{ GIT_HUB_KEY }}

  '/newrelic-graphql':
    target: 'https://api.newrelic.com/graphql'
    allowedMethods: [POST]
    allowedHeaders: ['X-Api-Key']
    preserveHeaderKeyCase: true
    pathRewrite:
      '^/api/proxy/newrelic-graphql': ''
    headers:
      X-Api-Key: {{ NEW_RELIC_RFC_KEY }}

  '/jira/api':
    target: https://madeiramadeira.atlassian.net
    allowedMethods: [GET]
    allowedHeaders: ['Authorization']
    headers:
      Authorization: {{ JIRA_TOKEN }}
      Accept: 'application/json'
      Content-Type: 'application/json'
[...]
```

In `/packages/backend/src/index.ts` create an api route

```tsx
import techDashboard from './plugins/techDashboard';
[...]
apiRouter.use('/tech-dashboard', authMiddleware, await techDashboard(techDashboardEnv));
```

In your `/packages/backend/src/plugins/` create a file `techDashboard.ts`

```tsx
import { PluginEnvironment } from '../types';
import { Router } from 'express';
import { createRouter } from '@portal-dx/plugin-tech-dashboard-backend';

export default async function createPlugin({
  logger,
  config,
}: PluginEnvironment): Promise<Router> {
  return await createRouter({
    logger,
    config,
  });
}
```