diff --git a/backend-plugin/README.md b/backend-plugin/README.md index 45cc46172..cf178e400 100644 --- a/backend-plugin/README.md +++ b/backend-plugin/README.md @@ -2,4 +2,4 @@ To use these plugins you need to get a license from [Port](https://backstage-plugin.getport.io/) -Read more about the Port Backstage Plugin in the [docs](https://port-labs.github.io/backstage-plugin/docs/intro) +Read more about the Port Backstage Plugin in the [docs](https://port-labs.github.io/backstage-plugin/docs) diff --git a/docs/site/blog/2019-05-28-first-blog-post.md b/docs/site/blog/2019-05-28-first-blog-post.md deleted file mode 100644 index d3032efb3..000000000 --- a/docs/site/blog/2019-05-28-first-blog-post.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -slug: first-blog-post -title: First Blog Post -authors: [slorber, yangshun] -tags: [hola, docusaurus] ---- - -Lorem ipsum dolor sit amet... - - - -...consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet diff --git a/docs/site/blog/2019-05-29-long-blog-post.md b/docs/site/blog/2019-05-29-long-blog-post.md deleted file mode 100644 index eb4435de5..000000000 --- a/docs/site/blog/2019-05-29-long-blog-post.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -slug: long-blog-post -title: Long Blog Post -authors: yangshun -tags: [hello, docusaurus] ---- - -This is the summary of a very long blog post, - -Use a `` comment to limit blog post size in the list view. - - - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet diff --git a/docs/site/blog/2021-08-01-mdx-blog-post.mdx b/docs/site/blog/2021-08-01-mdx-blog-post.mdx deleted file mode 100644 index 0c4b4a48b..000000000 --- a/docs/site/blog/2021-08-01-mdx-blog-post.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -slug: mdx-blog-post -title: MDX Blog Post -authors: [slorber] -tags: [docusaurus] ---- - -Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/). - -:::tip - -Use the power of React to create interactive blog posts. - -::: - -{/* truncate */} - -For example, use JSX to create an interactive button: - -```js - -``` - - diff --git a/docs/site/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg b/docs/site/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg deleted file mode 100644 index 11bda0928..000000000 Binary files a/docs/site/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg and /dev/null differ diff --git a/docs/site/blog/2021-08-26-welcome/index.md b/docs/site/blog/2021-08-26-welcome/index.md deleted file mode 100644 index 349ea075f..000000000 --- a/docs/site/blog/2021-08-26-welcome/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -slug: welcome -title: Welcome -authors: [slorber, yangshun] -tags: [facebook, hello, docusaurus] ---- - -[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog). - -Here are a few tips you might find useful. - - - -Simply add Markdown files (or folders) to the `blog` directory. - -Regular blog authors can be added to `authors.yml`. - -The blog post date can be extracted from filenames, such as: - -- `2019-05-30-welcome.md` -- `2019-05-30-welcome/index.md` - -A blog post folder can be convenient to co-locate blog post images: - -![Docusaurus Plushie](./docusaurus-plushie-banner.jpeg) - -The blog supports tags as well! - -**And if you don't want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config. diff --git a/docs/site/blog/authors.yml b/docs/site/blog/authors.yml deleted file mode 100644 index 8bfa5c7c4..000000000 --- a/docs/site/blog/authors.yml +++ /dev/null @@ -1,23 +0,0 @@ -yangshun: - name: Yangshun Tay - title: Front End Engineer @ Facebook - url: https://github.com/yangshun - image_url: https://github.com/yangshun.png - page: true - socials: - x: yangshunz - github: yangshun - -slorber: - name: Sébastien Lorber - title: Docusaurus maintainer - url: https://sebastienlorber.com - image_url: https://github.com/slorber.png - page: - # customize the url of the author page at /blog/authors/ - permalink: '/all-sebastien-lorber-articles' - socials: - x: sebastienlorber - linkedin: sebastienlorber - github: slorber - newsletter: https://thisweekinreact.com diff --git a/docs/site/blog/tags.yml b/docs/site/blog/tags.yml deleted file mode 100644 index bfaa778fb..000000000 --- a/docs/site/blog/tags.yml +++ /dev/null @@ -1,19 +0,0 @@ -facebook: - label: Facebook - permalink: /facebook - description: Facebook tag description - -hello: - label: Hello - permalink: /hello - description: Hello tag description - -docusaurus: - label: Docusaurus - permalink: /docusaurus - description: Docusaurus tag description - -hola: - label: Hola - permalink: /hola - description: Hola tag description diff --git a/docs/site/docs/customize-ui.md b/docs/site/docs/customize-ui.md new file mode 100644 index 000000000..99d2dbd55 --- /dev/null +++ b/docs/site/docs/customize-ui.md @@ -0,0 +1,153 @@ +--- +sidebar_position: 3 +--- + +# Customize UI + +The Port Backstage plugin is designed with flexibility in mind, allowing you to fully customize how data is presented in your Backstage instance. Since the Port SDK returns standard JavaScript objects, you have complete control over the presentation layer. + +## Understanding the Data Structure + +When you fetch data using the Port SDK, you receive plain JavaScript objects that you can manipulate and render however you prefer. For example: + +```typescript +// Example of data returned from Port SDK +const entityData = { + id: "entity-123", + title: "My Service", + properties: { + owner: "team-a", + status: "production", + scorecard: { + score: 85, + rules: [ + /* ... */ + ], + }, + }, +}; +``` + +## Creating Custom Components + +You can create your own components to display Port data in ways that match your organization's needs: + +```typescript +import { usePortEntity } from "@port-labs/backstage-plugin-port-frontend"; + +const CustomEntityCard = () => { + const { entity, loading } = usePortEntity("entity-id"); + + if (loading) return ; + + return ( + + {/* Render entity data however you want */} + {entity.title} + + {/* Add your custom styling and components */} + + ); +}; +``` + +## Customization Examples + +### 1. Custom Scorecard Visualization + +Instead of using the default scorecard view, you can create your own visualization: + +```typescript +const CustomScorecard = () => { + const { scorecard } = usePortScorecard("scorecard-id"); + + return ( + + ); +}; +``` + +### 2. Custom Entity List + +Create your own layout for displaying multiple entities: + +```typescript +const CustomEntityList = () => { + const { entities } = usePortEntities(); + + return ( + + {entities.map((entity) => ( + + ))} + + ); +}; +``` + +## Integration with Existing Components + +You can easily integrate Port data with your existing Backstage components: + +```typescript +import { Table } from "@backstage/core-components"; + +const PortDataTable = () => { + const { entities } = usePortEntities(); + + const columns = [ + { title: "Name", field: "title" }, + { title: "Owner", field: "properties.owner" }, + // Add more columns as needed + ]; + + return ( + + ); +}; +``` + +## Best Practices + +1. **Data Transformation** + + - Create utility functions to transform Port data into your preferred format + - Keep transformation logic separate from presentation components + +2. **Component Reusability** + + - Build reusable components that can handle different types of Port entities + - Use TypeScript interfaces to ensure type safety + +3. **Performance** + + - Implement proper loading states + - Consider pagination for large data sets + - Use memoization when appropriate + +4. **Error Handling** + - Add proper error boundaries + - Provide meaningful feedback to users when data loading fails + +## Available Hooks + +The Port frontend plugin provides several hooks to help you access and manipulate data: + +- `usePortEntity`: Fetch a single entity +- `usePortEntities`: Fetch multiple entities +- `usePortScorecard`: Fetch scorecard data +- `usePortActions`: Access available actions +- And more... diff --git a/docs/site/docs/data-security.md b/docs/site/docs/data-security.md new file mode 100644 index 000000000..f2df10dd6 --- /dev/null +++ b/docs/site/docs/data-security.md @@ -0,0 +1,14 @@ +--- +sidebar_position: 7 +--- + +# Data handling & security + +We do not store any secrets in Port SaaS. All secrets remain within your own infrastructure, and we never access them in the SaaS. + +The way we solve it is by using Ocean, our open-source data integration tool. which you can run on-prem. read more about it [here](https://ocean.getport.io/). + +The following diagram shows how the data flows between Ocean - on your own infrastructure - and Port, with only outgoing requests from your infrastructure to Port: +![Ocean architecture](/img/ocean-architecture.svg) + +Read more about how we handle data and security in our [official documentation](https://docs.getport.io/security). diff --git a/docs/site/docs/examples/_category_.json b/docs/site/docs/examples/_category_.json new file mode 100644 index 000000000..73d20c19a --- /dev/null +++ b/docs/site/docs/examples/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Examples", + "position": 6 +} diff --git a/docs/site/docs/examples/jira-integration.md b/docs/site/docs/examples/jira-integration.md new file mode 100644 index 000000000..4494e86d6 --- /dev/null +++ b/docs/site/docs/examples/jira-integration.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 2 +--- + +# Jira integration diff --git a/docs/site/docs/examples/plugin-catalog.md b/docs/site/docs/examples/plugin-catalog.md new file mode 100644 index 000000000..1f64ce732 --- /dev/null +++ b/docs/site/docs/examples/plugin-catalog.md @@ -0,0 +1,14 @@ +--- +sidebar_position: 1 +--- + +# Plugin catalog + +You can build a catalog of the plugins that you have installed in your Backstage instance. +The catalog will contain: + +- A list of all the plugins that you have installed +- A search bar to search for plugins +- A scorecard for each plugin that will show you the status of the plugin +- A status indicator for each plugin +- A kill switch to disable a plugin diff --git a/docs/site/docs/features/_category_.json b/docs/site/docs/features/_category_.json new file mode 100644 index 000000000..59287f7a8 --- /dev/null +++ b/docs/site/docs/features/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Features", + "position": 4 +} diff --git a/docs/site/docs/features/actions.md b/docs/site/docs/features/actions.md new file mode 100644 index 000000000..8a98a5f49 --- /dev/null +++ b/docs/site/docs/features/actions.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 4 +--- + +# Actions diff --git a/docs/site/docs/features/automations.md b/docs/site/docs/features/automations.md new file mode 100644 index 000000000..70a933851 --- /dev/null +++ b/docs/site/docs/features/automations.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 5 +--- + +# Automations diff --git a/docs/site/docs/features/catalog-builder.md b/docs/site/docs/features/catalog-builder.md new file mode 100644 index 000000000..69680252b --- /dev/null +++ b/docs/site/docs/features/catalog-builder.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 1 +--- + +# Catalog builder diff --git a/docs/site/docs/features/integrations.md b/docs/site/docs/features/integrations.md new file mode 100644 index 000000000..6f1a5dffb --- /dev/null +++ b/docs/site/docs/features/integrations.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 3 +--- + +# Integrations diff --git a/docs/site/docs/features/notifications.md b/docs/site/docs/features/notifications.md new file mode 100644 index 000000000..174870c01 --- /dev/null +++ b/docs/site/docs/features/notifications.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 6 +--- + +# Notifications diff --git a/docs/site/docs/features/scorecards.md b/docs/site/docs/features/scorecards.md new file mode 100644 index 000000000..58b9c0d8e --- /dev/null +++ b/docs/site/docs/features/scorecards.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 2 +--- + +# Scorecards diff --git a/docs/site/docs/getting-started.md b/docs/site/docs/getting-started.md new file mode 100644 index 000000000..3dc01a3d7 --- /dev/null +++ b/docs/site/docs/getting-started.md @@ -0,0 +1,81 @@ +--- +sidebar_position: 1 +--- + +# Getting Started + +Let's discover **Port's Backstage plugin in less than 5 minutes**. + +### Prerequisites + +- A Backstage instance +- A Port account + - Visit [Port's website](https://www.getport.io) to create your **free** account. + - Follow the onboarding process to set up your organization. + +### Install Plugins + +Install frontend and backend plugins using yarn: + +```bash +# Install backend plugin +yarn add --cwd packages/backend @port-labs/backstage-plugin-port-backend + +# Install frontend plugin +yarn add --cwd packages/app @port-labs/backstage-plugin-port-frontend +``` + +Then register the backend plugin in `packages/backend/src/index.ts`: + +```typescript +backend.add(import("@port-labs/backstage-plugin-port-backend")); +``` + +Finally, add components as you like from the frontend plugin to your Backstage instance. + +For example, let's add the Scorecard component to the NavBar: + +in the file: `packages/app/src/App.tsx`, add the route: + +```typescript +} /> +``` + +and then add the link to the NavBar, in the file: `packages/app/src/components/Root/Root.tsx`: + +```typescript + +``` + +![Scorecards page](/img/scorecards.png) + +### Configure Credentials + +1. In Port, on the top right, click on the `...` (three dots) and select **Credentials**. +2. Generate API credentials (Client ID and Client Secret) +3. Add these credentials to your Backstage's `app-config.yaml`: + + ```yaml + port: + api: + baseUrl: https://api.getport.io + auth: + clientId: YOUR_CLIENT_ID + clientSecret: YOUR_CLIENT_SECRET + ``` + +
+ +Read more [find your Port credentials](https://docs.getport.io/build-your-software-catalog/custom-integration/api/#find-your-port-credentials) + +## Extend your Backstage instance + +Take your Backstage instance to the next level by integrating with Port's powerful API. + +Start by reviewing our frontend plugin documentation to see what's possible. You can: + +- Query Port's API to bring rich data into your Backstage views +- Create custom visualizations using Port's flexible data models +- Build tailored experiences for your teams + +For complete API capabilities, check out our comprehensive [API documentation](https://docs.getport.io/api-reference/port-api). diff --git a/docs/site/docs/installation.md b/docs/site/docs/installation.md new file mode 100644 index 000000000..04fa54d49 --- /dev/null +++ b/docs/site/docs/installation.md @@ -0,0 +1,60 @@ +--- +sidebar_position: 2 +--- + +# Installation + +### Install Plugins + +Install frontend and backend plugins using yarn: + +```bash +# Install backend plugin +yarn add --cwd packages/backend @port-labs/backstage-plugin-port-backend + +# Install frontend plugin +yarn add --cwd packages/app @port-labs/backstage-plugin-port-frontend +``` + +Then register the backend plugin in `packages/backend/src/index.ts`: + +```typescript +backend.add(import("@port-labs/backstage-plugin-port-backend")); +``` + +Finally, add components as you like from the frontend plugin to your Backstage instance. + +For example, let's add the Scorecard component to the NavBar: + +in the file: `packages/app/src/App.tsx`, add the route: + +```typescript +} /> +``` + +and then add the link to the NavBar, in the file: `packages/app/src/components/Root/Root.tsx`: + +```typescript + +``` + +![Scorecards page](/img/scorecards.png) + +### Configure Credentials + +1. In Port, on the top right, click on the `...` (three dots) and select **Credentials**. +2. Generate API credentials (Client ID and Client Secret) +3. Add these credentials to your Backstage's `app-config.yaml`: + + ```yaml + port: + api: + baseUrl: https://api.getport.io + auth: + clientId: YOUR_CLIENT_ID + clientSecret: YOUR_CLIENT_SECRET + ``` + +
+ +Read more [find your Port credentials](https://docs.getport.io/build-your-software-catalog/custom-integration/api/#find-your-port-credentials) diff --git a/docs/site/docs/intro.md b/docs/site/docs/intro.md index 258965743..8b87ef135 100644 --- a/docs/site/docs/intro.md +++ b/docs/site/docs/intro.md @@ -1,81 +1,39 @@ --- sidebar_position: 1 +slug: / --- -# Getting Started +# Introduction -Let's discover **Port's Backstage plugin in less than 5 minutes**. +The Port Backstage plugin allows you to ramp up your Backstage instance quickly. +Building a developer portal from scratch can be a daunting task, but with the Port Backstage plugin, you can have a **fully functional portal in days not months**. -### Prerequisites +
+ Port Backstage plugin +
-- A Backstage instance -- A Port account - - Visit [Port's website](https://www.getport.io) to create your **free** account. - - Follow the onboarding process to set up your organization. +With this plugin, you can: -### Configure Credentials +- Build new plugin with **PortSDK** in days and not months +- Consolidate data from multiple sources into a single, unified view +- Implement governance and compliance through Port's rules engine and scorecards +- Enable self-service actions for developers +- Integrate with 50+ tools and services through Port's extensive integration library -1. In Port, on the top right, click on the `...` (three dots) and select **Credentials**. -2. Generate API credentials (Client ID and Client Secret) -3. Add these credentials to your Backstage's `app-config.yaml`: +## Key benefits - ```yaml - port: - api: - baseUrl: https://api.getport.io - auth: - clientId: YOUR_CLIENT_ID - clientSecret: YOUR_CLIENT_SECRET - ``` +1. **Simplified Integration**: Connect to dozens of data sources through a single plugin, eliminating the need to manage multiple individual Backstage plugins. -
+2. **Flexible Data Modeling**: Shape and customize your data model in Port to display exactly the information your teams need in Backstage. -Read more [find your Port credentials](https://docs.getport.io/build-your-software-catalog/custom-integration/api/#find-your-port-credentials) +3. **Governance & Compliance**: Use Port's rules engine and scorecards to define, measure, and enforce standards across your software catalog. -### Install Plugins +4. **Enhanced Developer Experience**: Provide developers with a more comprehensive and actionable view of their services, including compliance scores, actions, and data from various integrations. -Install frontend and backend plugins using yarn: +5. **Rapid Setup**: Get up and running quickly with Port's easy-to-use interface for configuring integrations and data models. -```bash -# Install backend plugin -yarn add --cwd packages/backend @port-labs/backstage-plugin-port-backend +6. **Continuous Updates**: Benefit from Port's ongoing development of new integrations and features without waiting for individual Backstage plugin updates. -# Install frontend plugin -yarn add --cwd packages/app @port-labs/backstage-plugin-port-frontend -``` +This plugin is designed to complement and enhance your existing Backstage setup, allowing you to build a more powerful and tailored developer portal efficiently. Whether you're just getting started with Backstage or looking to take your existing instance to the next level, the Port plugin offers a flexible and scalable solution for your software catalog and developer portal needs. -Then register the backend plugin in `packages/backend/src/index.ts`: - -```typescript -backend.add(import("@port-labs/backstage-plugin-port-backend")); -``` - -Finally, add components as you like from the frontend plugin to your Backstage instance. - -For example, let's add the Scorecard component to the NavBar: - -in the file: `packages/app/src/App.tsx`, add the route: - -```typescript -} /> -``` - -and then add the link to the NavBar, in the file: `packages/app/src/components/Root/Root.tsx`: - -```typescript - -``` - -![Scorecards page](/img/scorecards.png) - -## Extend your Backstage instance - -Take your Backstage instance to the next level by integrating with Port's powerful API. - -Start by reviewing our frontend plugin documentation to see what's possible. You can: - -- Query Port's API to bring rich data into your Backstage views -- Create custom visualizations using Port's flexible data models -- Build tailored experiences for your teams - -For complete API capabilities, check out our comprehensive [API documentation](https://docs.getport.io/api-reference/port-api). +Let's get started with setting up the Port Backstage plugin and exploring its capabilities! diff --git a/docs/site/docusaurus.config.ts b/docs/site/docusaurus.config.ts index 14411470d..567915f3c 100644 --- a/docs/site/docusaurus.config.ts +++ b/docs/site/docusaurus.config.ts @@ -83,8 +83,12 @@ const config: Config = { title: "Docs", items: [ { - label: "Tutorial", - to: "/docs/intro", + label: "Getting Started", + to: "/docs/getting-started", + }, + { + label: "Introduction", + to: "/docs/", }, ], }, diff --git a/docs/site/src/pages/index.tsx b/docs/site/src/pages/index.tsx index 414ce98ac..e0a58089d 100644 --- a/docs/site/src/pages/index.tsx +++ b/docs/site/src/pages/index.tsx @@ -14,10 +14,7 @@ function HomepageHeader() {

{siteConfig.title}

{siteConfig.tagline}

- + Get started with the plugin
diff --git a/docs/site/static/img/ocean-architecture.svg b/docs/site/static/img/ocean-architecture.svg new file mode 100644 index 000000000..7552921c0 --- /dev/null +++ b/docs/site/static/img/ocean-architecture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-plugin/README.md b/frontend-plugin/README.md index fe422cd0b..34c110278 100644 --- a/frontend-plugin/README.md +++ b/frontend-plugin/README.md @@ -2,4 +2,4 @@ To use these plugins you need to get a license from [Port](https://backstage-plugin.getport.io/) -Read more about the Port Backstage Plugin in the [docs](https://port-labs.github.io/backstage-plugin/docs/intro) +Read more about the Port Backstage Plugin in the [docs](https://port-labs.github.io/backstage-plugin/docs)