diff --git a/docs/assets/uiguide/backstage-website-registered-catalog-view.png b/docs/assets/uiguide/backstage-website-registered-catalog-view.png new file mode 100644 index 0000000000..9263eff0c7 Binary files /dev/null and b/docs/assets/uiguide/backstage-website-registered-catalog-view.png differ diff --git a/docs/assets/uiguide/catalog-filter-options.png b/docs/assets/uiguide/catalog-filter-options.png new file mode 100644 index 0000000000..f2a85ab192 Binary files /dev/null and b/docs/assets/uiguide/catalog-filter-options.png differ diff --git a/docs/assets/uiguide/catalog-graph.png b/docs/assets/uiguide/catalog-graph.png new file mode 100644 index 0000000000..59e290b0f0 Binary files /dev/null and b/docs/assets/uiguide/catalog-graph.png differ diff --git a/docs/assets/uiguide/component-name-updated.png b/docs/assets/uiguide/component-name-updated.png new file mode 100644 index 0000000000..602e2e551a Binary files /dev/null and b/docs/assets/uiguide/component-name-updated.png differ diff --git a/docs/assets/uiguide/confirm-unregister-entity.png b/docs/assets/uiguide/confirm-unregister-entity.png new file mode 100644 index 0000000000..89a565ff35 Binary files /dev/null and b/docs/assets/uiguide/confirm-unregister-entity.png differ diff --git a/docs/assets/uiguide/curve-monotone.png b/docs/assets/uiguide/curve-monotone.png new file mode 100644 index 0000000000..52275ec780 Binary files /dev/null and b/docs/assets/uiguide/curve-monotone.png differ diff --git a/docs/assets/uiguide/curve-step-before.png b/docs/assets/uiguide/curve-step-before.png new file mode 100644 index 0000000000..a9aa4c8e6f Binary files /dev/null and b/docs/assets/uiguide/curve-step-before.png differ diff --git a/docs/assets/uiguide/details-for-registered-backstage-website.png b/docs/assets/uiguide/details-for-registered-backstage-website.png new file mode 100644 index 0000000000..00d55026f2 Binary files /dev/null and b/docs/assets/uiguide/details-for-registered-backstage-website.png differ diff --git a/docs/assets/uiguide/details-system-entity.png b/docs/assets/uiguide/details-system-entity.png new file mode 100644 index 0000000000..c667421603 Binary files /dev/null and b/docs/assets/uiguide/details-system-entity.png differ diff --git a/docs/assets/uiguide/enter-name-of-new-component.png b/docs/assets/uiguide/enter-name-of-new-component.png new file mode 100644 index 0000000000..fc6a11a360 Binary files /dev/null and b/docs/assets/uiguide/enter-name-of-new-component.png differ diff --git a/docs/assets/uiguide/enter-url-of-component.png b/docs/assets/uiguide/enter-url-of-component.png new file mode 100644 index 0000000000..29fecb7bfd Binary files /dev/null and b/docs/assets/uiguide/enter-url-of-component.png differ diff --git a/docs/assets/uiguide/entities-owned-by-me.png b/docs/assets/uiguide/entities-owned-by-me.png new file mode 100644 index 0000000000..e0dda5e680 Binary files /dev/null and b/docs/assets/uiguide/entities-owned-by-me.png differ diff --git a/docs/assets/uiguide/entity-actions.png b/docs/assets/uiguide/entity-actions.png new file mode 100644 index 0000000000..3c725758e4 Binary files /dev/null and b/docs/assets/uiguide/entity-actions.png differ diff --git a/docs/assets/uiguide/error-creating-new-component.png b/docs/assets/uiguide/error-creating-new-component.png new file mode 100644 index 0000000000..8c7da95159 Binary files /dev/null and b/docs/assets/uiguide/error-creating-new-component.png differ diff --git a/docs/assets/uiguide/error-message-catalog-info-file-deleted.png b/docs/assets/uiguide/error-message-catalog-info-file-deleted.png new file mode 100644 index 0000000000..7526ba65aa Binary files /dev/null and b/docs/assets/uiguide/error-message-catalog-info-file-deleted.png differ diff --git a/docs/assets/uiguide/example-website-relationships.png b/docs/assets/uiguide/example-website-relationships.png new file mode 100644 index 0000000000..b4fa6e33c7 Binary files /dev/null and b/docs/assets/uiguide/example-website-relationships.png differ diff --git a/docs/assets/uiguide/filter-by-name.png b/docs/assets/uiguide/filter-by-name.png new file mode 100644 index 0000000000..ca0336eadc Binary files /dev/null and b/docs/assets/uiguide/filter-by-name.png differ diff --git a/docs/assets/uiguide/max-depth-1.png b/docs/assets/uiguide/max-depth-1.png new file mode 100644 index 0000000000..d353b8ae23 Binary files /dev/null and b/docs/assets/uiguide/max-depth-1.png differ diff --git a/docs/assets/uiguide/max-depth-infinite.png b/docs/assets/uiguide/max-depth-infinite.png new file mode 100644 index 0000000000..0f72cccb84 Binary files /dev/null and b/docs/assets/uiguide/max-depth-infinite.png differ diff --git a/docs/assets/uiguide/new-tutorial-component-in-software-catalog.png b/docs/assets/uiguide/new-tutorial-component-in-software-catalog.png new file mode 100644 index 0000000000..51ee73c524 Binary files /dev/null and b/docs/assets/uiguide/new-tutorial-component-in-software-catalog.png differ diff --git a/docs/assets/uiguide/portal-with-annotations.png b/docs/assets/uiguide/portal-with-annotations.png new file mode 100644 index 0000000000..a8c9bc535b Binary files /dev/null and b/docs/assets/uiguide/portal-with-annotations.png differ diff --git a/docs/assets/uiguide/review-select-import.png b/docs/assets/uiguide/review-select-import.png new file mode 100644 index 0000000000..bd4a0acd7c Binary files /dev/null and b/docs/assets/uiguide/review-select-import.png differ diff --git a/docs/assets/uiguide/select-advanced-options.png b/docs/assets/uiguide/select-advanced-options.png new file mode 100644 index 0000000000..27fe7c7b16 Binary files /dev/null and b/docs/assets/uiguide/select-advanced-options.png differ diff --git a/docs/assets/uiguide/select-create-for-new-component.png b/docs/assets/uiguide/select-create-for-new-component.png new file mode 100644 index 0000000000..9fbc612ac0 Binary files /dev/null and b/docs/assets/uiguide/select-create-for-new-component.png differ diff --git a/docs/assets/uiguide/select-create-to-make-component.png b/docs/assets/uiguide/select-create-to-make-component.png new file mode 100644 index 0000000000..e86e9398ca Binary files /dev/null and b/docs/assets/uiguide/select-create-to-make-component.png differ diff --git a/docs/assets/uiguide/select-delete-entity.png b/docs/assets/uiguide/select-delete-entity.png new file mode 100644 index 0000000000..6874c5e83d Binary files /dev/null and b/docs/assets/uiguide/select-delete-entity.png differ diff --git a/docs/assets/uiguide/select-edit-icon-for-component.png b/docs/assets/uiguide/select-edit-icon-for-component.png new file mode 100644 index 0000000000..04d693259d Binary files /dev/null and b/docs/assets/uiguide/select-edit-icon-for-component.png differ diff --git a/docs/assets/uiguide/select-example-website.png b/docs/assets/uiguide/select-example-website.png new file mode 100644 index 0000000000..f8f72699eb Binary files /dev/null and b/docs/assets/uiguide/select-example-website.png differ diff --git a/docs/assets/uiguide/select-register-existing-component.png b/docs/assets/uiguide/select-register-existing-component.png new file mode 100644 index 0000000000..8d3f5c7af4 Binary files /dev/null and b/docs/assets/uiguide/select-register-existing-component.png differ diff --git a/docs/assets/uiguide/select-review-create-component.png b/docs/assets/uiguide/select-review-create-component.png new file mode 100644 index 0000000000..5acce27ec6 Binary files /dev/null and b/docs/assets/uiguide/select-review-create-component.png differ diff --git a/docs/assets/uiguide/select-unregister-entity-from-three-dots.png b/docs/assets/uiguide/select-unregister-entity-from-three-dots.png new file mode 100644 index 0000000000..959ec3f544 Binary files /dev/null and b/docs/assets/uiguide/select-unregister-entity-from-three-dots.png differ diff --git a/docs/assets/uiguide/select-view-graph.png b/docs/assets/uiguide/select-view-graph.png new file mode 100644 index 0000000000..79886a82b4 Binary files /dev/null and b/docs/assets/uiguide/select-view-graph.png differ diff --git a/docs/assets/uiguide/setup-nodejs-cat-owner.png b/docs/assets/uiguide/setup-nodejs-cat-owner.png new file mode 100644 index 0000000000..5e8effec72 Binary files /dev/null and b/docs/assets/uiguide/setup-nodejs-cat-owner.png differ diff --git a/docs/assets/uiguide/simplify-off-merge-relations-off.png b/docs/assets/uiguide/simplify-off-merge-relations-off.png new file mode 100644 index 0000000000..d999a7a5c7 Binary files /dev/null and b/docs/assets/uiguide/simplify-off-merge-relations-off.png differ diff --git a/docs/assets/uiguide/simplify-off-merge-relations-on.png b/docs/assets/uiguide/simplify-off-merge-relations-on.png new file mode 100644 index 0000000000..1003f2dd3d Binary files /dev/null and b/docs/assets/uiguide/simplify-off-merge-relations-on.png differ diff --git a/docs/assets/uiguide/simplify-on-merge-relations-off.png b/docs/assets/uiguide/simplify-on-merge-relations-off.png new file mode 100644 index 0000000000..60cbe0107e Binary files /dev/null and b/docs/assets/uiguide/simplify-on-merge-relations-off.png differ diff --git a/docs/assets/uiguide/simplify-on-merge-relations-on.png b/docs/assets/uiguide/simplify-on-merge-relations-on.png new file mode 100644 index 0000000000..d72489b50e Binary files /dev/null and b/docs/assets/uiguide/simplify-on-merge-relations-on.png differ diff --git a/docs/assets/uiguide/successful-create-new-component.png b/docs/assets/uiguide/successful-create-new-component.png new file mode 100644 index 0000000000..658189b7d2 Binary files /dev/null and b/docs/assets/uiguide/successful-create-new-component.png differ diff --git a/docs/assets/uiguide/tutorial-catalog-info-yaml-file.png b/docs/assets/uiguide/tutorial-catalog-info-yaml-file.png new file mode 100644 index 0000000000..55d3d24baf Binary files /dev/null and b/docs/assets/uiguide/tutorial-catalog-info-yaml-file.png differ diff --git a/docs/assets/uiguide/tutorial-component-open-in-catalog.png b/docs/assets/uiguide/tutorial-component-open-in-catalog.png new file mode 100644 index 0000000000..107974c437 Binary files /dev/null and b/docs/assets/uiguide/tutorial-component-open-in-catalog.png differ diff --git a/docs/assets/uiguide/updated-component-name-in-ui.png b/docs/assets/uiguide/updated-component-name-in-ui.png new file mode 100644 index 0000000000..7b5a9e5648 Binary files /dev/null and b/docs/assets/uiguide/updated-component-name-in-ui.png differ diff --git a/docs/getting-started/create-a-component.md b/docs/getting-started/create-a-component.md index 29ba99db83..b4e5c6ab19 100644 --- a/docs/getting-started/create-a-component.md +++ b/docs/getting-started/create-a-component.md @@ -6,38 +6,92 @@ description: Leverage the scaffolder to start creating components with best prac Audience: Developers -## Summary +## Overview -This guide will walk you through how to use Software Templates to create new components with baked in best practices. +Components can be created in the Software Catalog using software templates. Templates load skeletons of code, which can include some variables, and incorporate your company's best practices. The templates are published to a location, such as GitHub or GitLab. + +The standalone Backstage application includes the `Example Node.js Template`, which is an example template for the scaffolder that creates and registers a simple Node.js service. You can also [create your own templates](../features/software-templates/adding-templates.md). ## Prerequisites -:::note +For this example, the default Node.js template will be used. The template creates a repository in GitHub and adds the necessary files to it so that the component is integrated into the Software Catalog. Because you are creating a repository, you must first create an integration between Backstage and GitHub. -If you're running Backstage with Node 20 or later, you'll need to pass the flag `--no-node-snapshot` to Node in order to use the templates feature. One way to do this is to specify the `NODE_OPTIONS` environment variable before starting Backstage: `export NODE_OPTIONS=--no-node-snapshot` +- You should have already [installed a standalone app](./index.md). -::: +- Register the [GitHub Scaffolder Action module](../features/software-templates/builtin-actions.md#installing-action-modules). -You should already have [a standalone app](./index.md). +- [Set up a GitHub Integration](../getting-started/config/authentication.md#setting-up-a-github-integration) with Backstage, using a GitHub Personal Access Token. -You will also need to register the [GitHub Scaffolder Action module](../features/software-templates/builtin-actions.md#installing-action-modules) before moving forward. +## Creating the component -## Creating your component +To create the component: -- Go to `create` and choose to create a website with the `Example Node.js Template` -- Type in a name, let's use `tutorial` and click `Next Step` +1. Select `Create`. - +  -- You should see the following screen: +2. Select `Service` in the `CATEGORIES` dropdown list. +3. Select the `Owner`. For this example, you can select `guest`. +4. Select `Choose` in the `Example Node.js Template`. - +  -- For host, it should default to github.com -- As owner, type your GitHub username -- For the repository name, type `tutorial`. Go to the next step +5. For this example, enter `tutorial` for the `Name` of the service and select `NEXT`. -- Review the details of this new service, and press `Create` if you want to - deploy it like this. -- You can follow along with the progress, and as soon as every step is - finished, you can take a look at your new service +  + +6. Enter your GitHub user name as the `Owner`. +7. Enter `tutorial` for the `Repository` and select `REVIEW`. + +  + +8. Review the information and select `CREATE`. + +  + +If you see an error message, similar to the following, + +  + +Perform the following steps: + +1. Close the Backstage app. +2. Enter `CTRL-C` in the terminal window to stop the Backstage frontend and backend. +3. In the terminal window, enter: + + ``` + export NODE_OPTIONS=--no-node-snapshot + ``` + + > **NOTE:** + > The [no-node-snapshot](../features/software-templates/index.md#prerequisites) `NODE_OPTIONS` environment variable is required in order to use the templates. + +4. Enter `yarn start` to restart the Backstage application. +5. Repeat steps to create the component. + +Otherwise, you can follow along with the progress, and as soon as every step is finished, you can take a look at your new service in either the repository or the Catalog. + + + +Selecting `REPOSITORY` displays the `catalog-info.yaml`file and other project setup files that were created for the new component in the main branch of the `tutorial` repository. + +The `catalog-info.yaml` file describes the entity for the Software Catalog. [Descriptor Format of Catalog Entities](../features/software-catalog/descriptor-format.md) provides additional information. + +``` + apiVersion: backstage.io/v1alpha1 + kind: Component + metadata: + name: "tutorial" + spec: + type: service + owner: user:guest + lifecycle: experimental +``` + +Selecting `OPEN IN CATALOG` displays details of the new component, such as its relationships, links, and subcomponents. + + + +Selecting `Home` in the sidebar, displays the new `tutorial` component in the Catalog. + + diff --git a/docs/getting-started/filter-catalog.md b/docs/getting-started/filter-catalog.md new file mode 100644 index 0000000000..3e0de8cdeb --- /dev/null +++ b/docs/getting-started/filter-catalog.md @@ -0,0 +1,57 @@ +--- +id: filter-catalog +title: Filtering the Catalog +description: Filtering the Catalog. +--- + +Audience: All + +## Overview + +The Catalog can be filtered by any combination of owner, kind, type, lifecycle, processing status, namespace, and name. [Customize Filters](../features/software-catalog/catalog-customization.md#customize-filters) provides information on how to modify the available filter criteria. + + + +The [Technical Overview](../overview/technical-overview.md#software-catalog-system-model) provides a description of the types of entities displayed in the Catalog. + +## Filtering the Catalog + +You can filter the Catalog using a combination of the following: + +- **Filter by name** + + Enter one or more consecutive letters into the `Filter` field. As you type the letters, the entities whose names do not contain that string will be filtered out of the displayed list. + +  + +- **Filter by kind** + + Use the `Kind` dropdown list to select which kind of entity to show in the list: + + - API + - Component + - Group + - Location + - System + - Template + - User + +- **Filter by Type** + + Use the `Type` dropdown list to select which type of entity to show in the list. The selections available in the dropdown list depend on the kind of entity selected in the `Kind` list, and the types of entity you have registered for that kind. + +- **Filter by Owner** + + Use the `Owner` dropdown to filter the Catalog list by who owns the entity. + +- **Filter by Lifecycle** + + Use the `Lifecycle` dropdown to filter the Catalog list by lifecycle. + +- **Filter by Processing Status** + + Use the `Processing Status` dropdown to restrict the displayed list to only include those entities which are [orphaned](../features/software-catalog/life-of-an-entity.md#orphaning) or [in error](../features/software-catalog/life-of-an-entity.md#errors). + +- **Filter by Namespace** + + Use the `Namespace` dropdown to filter the catalog list by namespace associated with the entity. diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index d7c4ee96c8..5893877a55 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -184,8 +184,14 @@ Choose the correct next steps for your user role, if you're likely to be deployi - Using your Backstage instance - [Logging into Backstage](./logging-in.md) + - [Viewing the Catalog](./viewing-catalog.md) + - [Viewing what you own](./view-what-you-own.md) + - [Viewing entity relationships](./viewing-entity-relationships.md) + - [Filtering the Catalog](./filter-catalog.md) - [Register a component](./register-a-component.md) - [Create a new component](./create-a-component.md) + - [Update a component](./update-a-component.md) + - [Unregistering and deleting a component](./unregister-delete-component.md) Share your experiences, comments, or suggestions with us: [on discord](https://discord.gg/backstage-687207715902193673), file issues for any diff --git a/docs/getting-started/register-a-component.md b/docs/getting-started/register-a-component.md index 4e2076ee8d..1f2fda2871 100644 --- a/docs/getting-started/register-a-component.md +++ b/docs/getting-started/register-a-component.md @@ -8,38 +8,53 @@ Audience: Developers :::note Note Entity files are stored in YAML format, if you are not familiar with YAML, you can learn more about it [here](https://yaml.org). + +[Descriptor Format of Catalog Entities](../features/software-catalog/descriptor-format.md) provides additional information on the format of the YAML entity files. ::: -## Summary +## Overview This guide will walk you through how to pull Backstage data from other locations manually. There are integrations that will automatically do this for you. +When registering a component, you can: + +- Link to an existing entity file: The file is analyzed to determine which entities are defined, and the entities are added to the Scaffolded Backstage App Catalog. For example, `https://github.com/backstage/backstage/blob/master/catalog-info.yaml`. + +- Link to a repository: All `catalog-info.yaml` files are discovered in the repository and their defined entities are added to the Scaffolded Backstage App Catalog. For example, `https://github.com/backstage/backstage`. + + :::note Note + If no entities are found, a Pull Request is created that adds an example `catalog-info.yaml` file to the repository. When the Pull Request is merged, the Scaffolded Backstage App Catalog loads all of the defined entities. + + ::: + ## Prerequisites -You should have already [have a standalone app](./index.md). +- You should have already [installed a standalone app](./index.md). -## 1. Finding our template +## Registering a component -Register a new component, by going to `create` and choose `Register existing component` +To manually register a component in the Software Catalog: - +1. Select `Create`. +2. Select `REGISTER EXISTING COMPONENT`. - +  -## 2. Filling out the template +3. Fill out the template. -For repository URL, use `https://github.com/backstage/backstage/blob/master/catalog-info.yaml`. This is used in our [demo site](https://demo.backstage.io) catalog. + The standalone Backstage application includes one template. For this example, enter the repository URL to the entity file, `https://github.com/backstage/backstage/blob/master/catalog-info.yaml`. This is used in the Backstage [demo site](https://demo.backstage.io) catalog. - +  -Hit `Analyze` and review the changes. +4. Select `ANALYZE`. +5. If the changes from `ANALYZE` are correct, select `IMPORT`. -## 3. Import the entity +  -If the changes from `Analyze` are correct, click `Apply`. + If your entity was successfully imported, the details will be displayed. - +  -You should receive a message that your entities have been added. +6. Select `Home` to view your new entity in the Software Catalog. -If you go back to `Home`, you should be able to find `backstage`. You can click it and see the details for this new entity. +  diff --git a/docs/getting-started/unregister-delete-component.md b/docs/getting-started/unregister-delete-component.md new file mode 100644 index 0000000000..f8034bf3ed --- /dev/null +++ b/docs/getting-started/unregister-delete-component.md @@ -0,0 +1,66 @@ +--- +id: unregister-delete-component +title: Unregistering and deleting a component +description: Unregistering and deleting a component from the catalog +--- + +Audience: Developers + +## Overview + +URLs to YAML files that you registered either using the `Create` button or by adding to your app-config file are both handled by entity providers. + +[Implicit deletion](../features/software-catalog/life-of-an-entity.md#implicit-deletion) occurs when an entity provider issues a deletion of an entity. That entity, as well as the entire tree of entities processed out of it are considered for immediate deletion. + +However, you are also able to manually unregister an entity from the Catalog or perform a direct, [explicit deletion](../features/software-catalog/life-of-an-entity.md#explicit-deletion) of individual entities. + +## Unregistering an entity + +You can unregister an entity so it will not be displayed in the Catalog but still keep its `catalog-info.yaml` file in the repository. This provides the ability to register the entity with the Catalog again in the future. + +To unregister an entity: + +1. In the Catalog, select the entity you want to unregister. In this example, `mytutorial` is being unregistered. + +2. Select the three dots. + +3. Select `Unregister entity` in the dropdown menu. + +  + +4. Select `UNREGISTER LOCATION`. The entity is removed from the Catalog. + +  + +## Deleting an entity + +You can also delete an entity from the Catalog. However, this requires that you also delete the `catalog-info.yaml` entity definition file associated with the entity. + +To delete an entity: + +1. Delete the following entity definition files for the entity in the repository: + + - catalog-info.yaml + - index.js + - package.json + +2. In the Backstage App Catalog view, select the entity being deleted. In this example, `mytutorial` is being deleted. + + Since you have deleted the entity definition files, an error is displayed that states the `catalog-info.yaml` file cannot be found. + +  + +3. Select the three dots. +4. Select `Unregister entity` in the dropdown menu. + +  + +5. Select `ADVANCED OPTIONS`. + +  + +6. Select `DELETE ENTITY`. + +  + +A confirmation message that the entity has been successfully deleted is briefly displayed. The entity is no longer displayed in the Catalog. diff --git a/docs/getting-started/update-a-component.md b/docs/getting-started/update-a-component.md new file mode 100644 index 0000000000..ffe21bc8b3 --- /dev/null +++ b/docs/getting-started/update-a-component.md @@ -0,0 +1,33 @@ +--- +id: update-a-component +title: Update a Component +description: Update an existing component. +--- + +Audience: Developers + +## Overview + +Components in the Software Catalog are created using a software template. The template generates a `catalog-info.yaml` file in either GitHub or GitLab that defines the entity. To update the component, you must edit its corresponding `catalog-info.yaml` entity definition file. + +## Updating the component + +To update a component using the Backstage UI: + +1. Select the "Edit" icon associated with the component. In this example, the `tutorial` entity is selected. + +  + + The associated `catalog-info.yaml` file is displayed. + +  + +2. Make your changes to the YAML file. In this example, the name of the component is changed to `mytutorial`. + +  + +3. Select `Commit changes` to commit your changes to the appropriate branch and go through your normal PR review procedure. + +4. Once the updated `catalog-info.yaml` file has been merged into the branch associated with the component, then you will see the updated information in the Software Catalog. + +  diff --git a/docs/getting-started/view-what-you-own.md b/docs/getting-started/view-what-you-own.md new file mode 100644 index 0000000000..fc8b1feeae --- /dev/null +++ b/docs/getting-started/view-what-you-own.md @@ -0,0 +1,22 @@ +--- +id: view-what-you-own +title: Viewing what you own +description: View the entities that you own either directly or through a group +--- + +Audience: All + +You can own entities either directly or through a group that you're part of. + +To view the entities that you own: + +1. Select `Home` in the sidebar. +2. Select `User` in the `Kind` dropdown list. +3. Select your username in the `All Users` list. + +A page is displayed that shows the entities of which you have ownership, either directly, or through a group of which you are a member. You can toggle between showing: + +- `Direct Relations` - entities that you directly own +- `Aggregated Relations` - entities that you own through your group + + diff --git a/docs/getting-started/viewing-catalog.md b/docs/getting-started/viewing-catalog.md new file mode 100644 index 0000000000..acfa470cc2 --- /dev/null +++ b/docs/getting-started/viewing-catalog.md @@ -0,0 +1,85 @@ +--- +id: viewing-catalog +title: Viewing the Catalog +sidebar_label: Viewing the Catalog +description: Viewing the Catalog +--- + +Audience: All + +## Overview + +Initially, when you log into your standalone Backstage App, `Home` is selected in the sidebar, which displays the Catalog in the main panel. + +There are four main entities that you should become familiar with: + +- `Components` - Individual pieces of software that can be tracked in source control and can implement APIs for other components to consume. +- `Resources` - The physical or virtual infrastructure needed to operate a component. +- `Systems` - A collection of resources and components that cooperate to perform a function by exposing one or several public APIs. It hides the resources and private APIs between the components from the consumer. +- `Domains` - A collection of systems that share terminology, domain models, metrics, KPIs, business purpose, or documentation. + +The [Technical Overview](../overview/technical-overview.md#software-catalog-system-model) provides a description of all of the types of entities displayed in the Catalog. + +It should be noted that you can also [create your own kinds of entities](../features/software-catalog/extending-the-model.md#adding-a-new-kind), if you need to model something in your organization that does not map to one of the existing entity types. + +Initially, the Catalog displays registered entities matching the following filter settings: + +- `Kind` - Component +- `Type` - all +- `Owner` - Owned +- `Lifecycle` - list of [lifecycle](../features/software-catalog/descriptor-format.md#speclifecycle-required-1) values of entities in the Catalog +- `Processing Status` - normal +- `Namespace` - The ID of a [namespace](../features/software-catalog/descriptor-format.md#namespace-optional) to which the entity belongs + +You can change the initial setting for the [Owner](../features/software-catalog/catalog-customization.md#initially-selected-filter) and [Kind](../features/software-catalog/catalog-customization.md#initially-selected-kind) filters. + +## Informational columns for each entity + +For each kind of entity, a set of columns display information regarding the entity. For example, the default set of information for a `Component` is: + +- `Name` - the name of the component +- `System` - an optional field that references the system to which the component belongs +- `Owner` - the owner of the component +- `Type` - common types are as follows, but you can [create a new type](../features/software-catalog/extending-the-model.md#adding-a-new-type-of-an-existing-kind) to meet your organization's needs + - `service` - a backend service, typically exposing an API + - `website` - a website + - `library` - a software library, such as an npm module or a Java library +- `Lifecycle` + - `experimental` - an experiment or early, non-production component, signaling + that users may not prefer to consume it over other more established + components, or that there are low or no reliability guarantees + - `production` - an established, owned, maintained component + - `deprecated` - a component that is at the end of its lifecycle, and may + disappear at a later point in time +- `Description` - an optional field that describes the component. +- `Tags` - an optional field that can be used for searching +- `Actions` - see [Catalog Actions](#catalog-actions) + +You can modify the columns associated with each kind of entity, following the instructions in [Customize Columns](../features/software-catalog/catalog-customization.md#customize-columns). + +## Catalog Actions + +For each entity, there are a set of actions that are available. + + + +From left to right, the actions are: + +- View - View the `catalog-info.yaml` file that defines the entity. +- Edit - Edit the `catalog-info.yaml` file that defines the entity. See [Updating a Component](../getting-started/update-a-component.md) +- Star - Designate the entity as a favorite. You can [filter](../getting-started/filter-catalog.md) the catalog for starred entities. + +[Customize Actions](../features/software-catalog/catalog-customization.md#customize-actions) describes how you can modify the actions that are displayed. + +## Viewing entity details + +Selecting an entity in the main panel displays details of the entity. The type of details depends on the type of entity. For example, selecting a Component, such as `example-website`, displays the following details: + +- `About` - Metadata for the entity, such as description, owner, tags, and domain. +- `Relations` - see [Viewing entity relationships](../getting-started/viewing-entity-relationships.md) +- `Links` - any links associated with the entity +- `Has subcomponents` - An entity reference to another component of which the component is a part + +Selecting a System, such as `examples`, displays `About`, `Relations`, and `Links` similar to a Component, but it also includes `Has components`, `APIs` and `Has Resources`. + + diff --git a/docs/getting-started/viewing-entity-relationships.md b/docs/getting-started/viewing-entity-relationships.md new file mode 100644 index 0000000000..c791ab5bc7 --- /dev/null +++ b/docs/getting-started/viewing-entity-relationships.md @@ -0,0 +1,98 @@ +--- +id: viewing-entity-relationships +title: Viewing entity relationships +description: View the relationships between the entities in the Catalog +--- + +Audience: All + +Each of the entities in the Catalog has various relationships to each other. For example, the demo data includes an API that provides data to a website. `guests` is the owner of the API and the website, and anyone signed in as part of the `guests` group can maintain them. + +To see these relationships: + +1. Select the name of the component in the main panel, in this example, `example-website`. + +  + + A page is displayed that includes a `Relations` section. This section displays the selected entity and any other types of entities to which it is related. Each relationship is also designated, such as `hasPart/partOf` and `apiProvidedBy/providesApi`. [Well-known Relations between Catalog Entities](../features/software-catalog/well-known-relations.md) describes the most common relationships, but you can also [create your own relationships](../features/software-catalog/extending-the-model.md#adding-a-new-relation-type). + +2. Selecting any of the related entities allows you to drill down further through the system model. + +  + +## Filtering the relationships + +You can also view the relationships in the [Catalog Graph](../features/software-catalog/creating-the-catalog-graph.md). This view allows you to filter what entities and relationships to display. + +To display the Catalog Graph: + +1. Select the name of the component in the main panel, in this example, `example-website`. + + A page is displayed that includes a `Relations` section. + +2. Select `View graph` in the `Relations` section. + +  + + The `Catalog Graph` is displayed. + +  + +### Setting the filters + +The `Catalog Graph` automatically reflects any changes you make to the filter settings. You can set the following filters: + +- `MAX DEPTH` + + - `MAX DEPTH` = 1 + +  + + - `MAX DEPTH` = infinite + +  + +- `KINDS` - select what kinds of entities you want to view, default is all kinds +- `RELATIONS` - select which relationships you want to view, default is all relationships +- `Direction` - orientation in which you want to view the entity and its associated nodes + - Top to bottom + - Bottom to top + - Left to right + - Right to left +- `Curve` + + - `Curve` = Monotone + +  + + - `Curve` = Step Before + +  + +You can also toggle: + +- `Simplified` + - On = simple view + - Off = detailed view +- `Merge relations` + + - On = You see the relationship from the selected entity to the nodes and from the nodes to the selected entity. + - Off = You only see relations from the selected entity to its nodes. + + The following graphics illustrate the view of the nodes and relationships, based on the combination of the settings of `Simplified` and `Merge relations`. + + - `Simplified` = On and `Merge Relations` = On + +  + + - `Simplified` = On and `Merge Relations` = Off + +  + + - `Simplified` = Off and `Merge Relations` = On + +  + + - `Simplified` = Off and `Merge Relations` = Off + +  diff --git a/docs/landing-page/doc-landing-page.md b/docs/landing-page/doc-landing-page.md index 8697144bd8..98a0ad9fb9 100644 --- a/docs/landing-page/doc-landing-page.md +++ b/docs/landing-page/doc-landing-page.md @@ -33,13 +33,26 @@ description: Documentation landing page.