diff --git a/docs/internal-developer-portal/adoption/adoption-playbook.md b/docs/internal-developer-portal/adoption/adoption-playbook.md index d7c7a142cce..696eee1b125 100644 --- a/docs/internal-developer-portal/adoption/adoption-playbook.md +++ b/docs/internal-developer-portal/adoption/adoption-playbook.md @@ -226,7 +226,7 @@ This is a step-by-step guide for Platform Engineers to onboard IDP. Your mileage - *Docs and Tutorials for Reference:* [List of curated plugins supported in the Internal Developer Portal](https://developer.harness.io/docs/category/available-plugins) 8. **Your First Scorecard** 1. Create a “Catalog Readiness” Scorecard which can help you ensure that the Catalog entries are fully updated and all annotations required by the Plugins are set - - *Docs and Tutorials for Reference:* [Getting Started with Scorecards](https://developer.harness.io/docs/internal-developer-portal/get-started/scorecard-quickstart) + - *Docs and Tutorials for Reference:* [Getting Started with Scorecards](https://developer.harness.io/docs/internal-developer-portal/scorecards/scorecard-quickstart) 9. **Invite your early users ✉️** 1. Send invites to 10-20 users that you have identified as early adopters. Collect feedback 10. **Setup Metadata Ingestion** diff --git a/docs/internal-developer-portal/catalog/catalog-discovery/harness-cd.md b/docs/internal-developer-portal/catalog/catalog-discovery/harness-cd.md index 48f08feebb8..266d7e63a2b 100644 --- a/docs/internal-developer-portal/catalog/catalog-discovery/harness-cd.md +++ b/docs/internal-developer-portal/catalog/catalog-discovery/harness-cd.md @@ -39,10 +39,13 @@ After enabling the integration, configure what to sync: * **Entity fields populated (read-only in IDP):** The following fields are fetched from the CD service and remain synced: - * `name` - * `identifier` - * `description` - * `tags` +| **Harness CD Field** | **IDP Entity Field** | **Editable in IDP** | +|---------------------|---------------------|---------------------| +| Service Name | `metadata.name` | ❌ No (synced from CD) | +| Service Identifier | `metadata.identifier` | ❌ No (synced from CD) | +| Service Description | `metadata.description` | ❌ No (synced from CD) | +| Service Tags | `metadata.tags` | ❌ No (synced from CD) | +| Additional Metadata | Custom fields | ✅ Yes (IDP-specific) | These fields **cannot be edited in IDP**. Update them in Harness CD. @@ -52,7 +55,6 @@ After enabling the integration, configure what to sync: * **RBAC:** You can view and sync services from the same projects and organizations you have access to in Harness CD. - --- #### Configure the sync scope diff --git a/docs/internal-developer-portal/get-started/catalog-2o.md b/docs/internal-developer-portal/get-started/catalog-2o.md index 8c7617b2218..cdd4b4a282d 100644 --- a/docs/internal-developer-portal/get-started/catalog-2o.md +++ b/docs/internal-developer-portal/get-started/catalog-2o.md @@ -1,307 +1,22 @@ --- -title: Get Started with Catalog -sidebar_position: 3 -sidebar_label: Get Started with Catalog +title: Set up Software Catalog +sidebar_position: 2 +sidebar_label: Set up Software Catalog redirect_from: /docs/internal-developer-portal/get-started/register-a-new-software-component --- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import DocImage from '@site/src/components/DocImage'; - - - - - -:::tip For IDP 2.0 Customers -If you're using Harness IDP 2.0, please ensure you have reviewed the [IDP 2.0 Overview guide](/docs/internal-developer-portal/idp-2o-overview/2-0-overview-and-upgrade-path) and are familiar with the key steps for [upgrading to IDP 2.0](/docs/internal-developer-portal/idp-2o-overview/migrating-idp-2o). To enable IDP 2.0, you must raise a support ticket to activate the `IDP_2_0` feature flag for your account. -::: - - -The **Software Catalog** is a centralized registry of all your software assets — including components, services, websites, libraries, data pipelines, and more. Think of it as a curated directory of your **entities**, helping you efficiently track ownership, metadata, and dependencies across your software ecosystem. - -This guide walks you through the key changes introduced in IDP 2.0 and explains how to navigate the Catalog by creating and managing entities. - -## What’s New in IDP 2.0? - -Harness IDP 2.0 introduces a major upgrade to the Software Catalog. Built on a Harness-native data model, it is designed to support enterprise-scale needs with robust access control. Key improvements include: - -* **Harness-native Platform Hierarchy:** Entities now support Account, Org, and Project scopes with fine-grained RBAC controls. -* **No YAML Required:** Entities can be created and managed entirely via the UI—no manual YAML editing or GitOps needed. -* **Revamped UI:** A modern interface featuring updated Catalog tables, advanced filtering, smooth navigation, and inline entity creation. - -## Prerequisites (IDP 2.0) - -Before using the Software Catalog in IDP 2.0, ensure: -* You have reviewed the **[IDP 2.0 Overview](/docs/internal-developer-portal/idp-2o-overview/2-0-overview-and-upgrade-path)** and **[Upgrading to IDP 2.0](/docs/internal-developer-portal/idp-2o-overview/migrating-idp-2o)** guide. -* **IDP 2.0** is enabled behind the `IDP_2_0` Feature Flag. Contact [Harness Support](https://support.harness.io) to enable it on your account. -* You are familiar with the **[Catalog Data Model](/docs/internal-developer-portal/catalog/data-model)** and **[Catalog YAML](/docs/internal-developer-portal/catalog/catalog-yaml)** structure. - -## Create an Entity (IDP 2.0) - -In IDP 2.0, entity creation is simplified with full UI support and optional YAML-based creation. Entities are now “inline,” which means their entire lifecycle can be managed through the UI or API, without Git integration. - -There are two ways to add and create a new entity in your catalog: -- **Create an entity via the Harness IDP UI**: -Use the **Harness UI** to create entities directly—no YAML required. This method offers a streamlined, code-free experience for adding entities. -- **Create an entity using your catalog YAML**: -You can still create entities using your **existing catalog YAML** files. Harness will automatically convert **legacy Backstage YAML** into the new Harness Catalog Entity Model and register the corresponding entity. - - - -Let’s walk through both methods using a **Component** entity as an example: - - - - -To create a **Component** via the UI: - -1. Navigate to the Harness IDP portal and click **“Create”** in the sidebar. -2. Select **Component** from the available options. -3. You’ll enter the **Visual View**, where you can fill out entity details interactively. -> Ensure your `identifier` follows [naming rules](https://developer.harness.io/docs/platform/references/entity-identifier-reference/#identifier-naming-rules). Invalid identifiers may lead to entity registration errors. - - -:::note -To set the owner identity, type a few characters in the Owner field to search and select a user or group from the dropdown; if no match appears, set yourself as the owner or enter any string and click `Add as a new owner`. - - -::: -4. Specify the **Entity Scope** (Account, Org, or Project). For this example, choose **Account scope**. [Read more about Catalog RBAC](/docs/internal-developer-portal/rbac/catalog-rbac). - - -5. **Link to Source Code Repository** - Configure the source code repository associated with this component. This link enables several key capabilities, such as: - - * Automatically configuring plugins like **Scorecards**, **TechDocs**, and **STO** - * Displaying the **View Source** option in the UI - - - This field is **optional**, but strongly recommended if your component is tied to a Git-based workflow or needs source-aware plugins. - For more details about source code repository configuration options including mono repositories and supported providers, see [Working with YAML in Harness IDP UI](/docs/internal-developer-portal/catalog/manage-catalog#harness-idp-ui). - - > Harness IDP also auto-generates the legacy `backstage.io/source-location` annotation for backwards compatibility. -6. You now have two options for managing your Component configuration: - * **Inline (default):** Manage the Component YAML directly within Harness. - * **Remote:** Choose to store your Component YAML in a Git repository for version control, collaboration, and change tracking. - You can either use a **Harness Code Repository** or connect to a **Third-party Git provider** like GitHub or GitLab by selecting a Git connector, repository, branch, and YAML path. - - > The Git Experience is ideal for teams who prefer to manage Components as code, with full version control and Git-native workflows. The changes are reflected in both YAML and execution views, via a [webhook](/docs/internal-developer-portal/git-experience/gitx-journey#workflow-execution-visibility-and-webhook-requirement) which is automatically configured on the Git connector. Learn more in the [Git Experience Journey documentation](/docs/internal-developer-portal/git-experience/gitx-journey). -7. Click **“Review YAML”** to view the synchronized YAML. Changes in the Visual View reflect live in the YAML View. - -:::info - **Note:** **YAML validation** is performed to ensure compatibility with the **Harness-native Catalog YAML** model. Any errors will be shown in the Validation logs. - - - ::: - -8. If applicable, configure a plugin by referring to its documentation and adding the necessary **annotations** in the Catalog YAML. - - - -9. Once completed, click **“Create Component”** to finalize and register the entity. - - - -> ⚠️ **Note:** Ensure your `identifier` follows [naming rules](https://developer.harness.io/docs/platform/references/entity-identifier-reference/#identifier-naming-rules). Invalid identifiers may lead to entity registration errors. - - - - - -To create a Component using Catalog YAML: - -1. Navigate to **Create** in the sidebar, and select **Component**. -2. In the **Visual View**, switch to **YAML View** via the toggle at the top. - -3. Provide the YAML directly for the entity which you want to create in IDP. -
-Example YAML -```yaml -apiVersion: harness.io/v1 -kind: component -name: artist-web -identifier: artistweb -type: service -owner: user:account/shibam.dhar@harness.io -spec: - lifecycle: production -metadata: - tags: - - java - description: place to be for artists -``` -
- -> You can even paste your existing Backstage YAML if available. Harness will auto-convert it into the native format. - - -> ⚠️ **Note:** Ensure your `identifier` follows [naming rules](https://developer.harness.io/docs/platform/references/entity-identifier-reference/#identifier-naming-rules). Invalid identifiers may lead to entity registration errors. - -:::note -You can always set the owner identity using your email ID, a group name, or any custom string that fits. Just type the value directly in the owner field. If it’s a group name it will auto resolve to the group ID or it will assign an arbitrary string. - -::: - -4. Define the **scope** of the entity in two ways: either switch to the Visual View and select the desired scope, or specify the **[projectIdentifier](/docs/internal-developer-portal/catalog/catalog-yaml#projectidentifier)** or **[orgIdentifier](/docs/internal-developer-portal/catalog/catalog-yaml#orgidentifier)** directly in the YAML to set the project or organization scope. - - -5. Define **Link to Source Code Repository** to configure the source code repository associated with this component. This link enables several key capabilities, such as automatically configuring plugins and displaying the **View Source** option in the UI. - This field is **optional**, but strongly recommended if your component is tied to a Git-based workflow or needs source-aware plugins. - - - In YAML, this is represented as: - - ```yaml - spec: - sourceCode: - provider: Github - connectorRef: account.ShibamDhar - repoName: Services_Entity - monoRepo: false - ``` - - For more details about source code repository configuration options including mono repositories and supported providers, see [Working with YAML in Harness IDP YAML](/docs/internal-developer-portal/catalog/manage-catalog#catalog-yaml). - - > Harness IDP also auto-generates the legacy `backstage.io/source-location` annotation for backwards compatibility. -7. You have two options for managing your Component configuration: - * **Inline (default):** Manage the Component YAML directly within Harness. - * **Remote:** Choose to store your Component YAML in a Git repository for version control, collaboration, and change tracking. - You can either use a **Harness Code Repository** or connect to a **Third-party Git provider** like GitHub or GitLab by selecting a Git connector, repository, branch, and YAML path. - - > The Git Experience is ideal for teams who prefer to manage Components as code, with full version control and Git-native workflows. The changes are reflected in both YAML and execution views, via a [webhook](/docs/internal-developer-portal/git-experience/gitx-journey#workflow-execution-visibility-and-webhook-requirement) which is automatically configured on the Git connector. Learn more in the [Git Experience Journey documentation](/docs/internal-developer-portal/git-experience/gitx-journey). -8. Add any plugin configurations by including the relevant **annotations**. -9. Click **“Create Component”** to complete the process and register your entity. - - -
-
- - -## Delete an Entity (IDP 2.0) - -You can remove any entity from the Catalog using the steps below: - -1. Open the Software Catalog and locate the entity to delete. -2. Click the three-dot menu on the entity card or details view. -3. Select **Delete** from the dropdown. The entity will be permanently removed. - - - -## Next Steps (IDP 2.0) - -Now that you've learned how to create, populate, and delete Catalog entities, here’s what to explore next: - -1. Deep dive into the **[Catalog Data Model](/docs/internal-developer-portal/catalog/data-model)** to understand entity types and relationships. -2. Learn the structure of **[Catalog YAML](/docs/internal-developer-portal/catalog/catalog-yaml)** and how to author compliant definitions. -4. Customize and manage a **[custom Catalog UI](/docs/internal-developer-portal/catalog/catalog-ui)** for tailored workflows. -5. Learn how to **[configure RBAC](/docs/internal-developer-portal/rbac/catalog-rbac)** for Catalog entities. - -
- - -In Harness IDP, software components represent entities within your organization's ecosystem, such as services, libraries, APIs, or other resources. These components are defined in a `catalog-info.yaml` file, which describes their metadata, ownership, relationships, and lifecycle. - -Let's start by adding your software components to IDP. To do this, create a `catalog-info.yaml` file in your Git repository and register its URL to add the component to your catalog. - - - -## Create a new catalog-info.yaml (IDP 1.0) - -1. To add a software component, you need to create a `catalog-info.yam` file in its repository. In the case of a mono-repo, this file should be created at the root of the repository. While the file can technically reside anywhere (e.g., `.harness/catalog-info.yaml`), placing it in a standard location ensures consistency. You can use the following YAML code as a template: - -```YAML -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - name: my-new-service - description: Description of my new service - tags: - - java - links: - - url: https://admin.example-org.com - title: Admin Dashboard - icon: dashboard - type: admin-dashboard -spec: - type: service - lifecycle: production - owner: team-a - system: project-x -``` - -Following are the key fields that you must update: - -- `metadata.name`. This should be a unique name for your component. Usually, it is the name of the service. -- `metadata.description` - A description for your new component. -- `spec.type` - The new software component could be a `service`, `library`, `website`, or any other type. -- `spec.owner` - The user group identifier of the team that owns the component. - -2. Once the file is created in your Git repo, copy the full URL to the file. For example, `https://github.com/harness-community/idp-samples/blob/main/catalog-info.yaml`. - -## Register the software component (IDP 1.0) - -1. Next, navigate to your Harness IDP module, and from the left navigation menu, select **Register**. - - - - - - -2. Enter the URL to your new `catalog-info.yaml`. - - - - - - -2. Copy the URL for `catalog-info.yaml` and paste it on the field to Register the component. - - - - - - -3. Select **Import**. - - - -The new component will be available in your catalog. - - - - -## Delete/Unregister Software Components (IDP 1.0) - -1. Navigate to the Catalog page and select Component under Kind. Here, we will deregister the software component registered above. - - - -2. Select the component name you want to Unregister from the list -3. Now on the component overview page, click on the 3 dots on top right corner and select **Unregister Entity**. - - - -4. Now on the Dialog box select **Unregister Location**. - - - -5. This will delete the software component. - -## Troubleshooting (IDP 1.0) - -#### Failed to register - -If, after registering an entity, you're unable to find the same in your catalog, check the Devtools Plugin for Unprocessed Entities. If it's under the **Pending** tab, wait a few minutes for registration to complete. If it's under the **Failed** tab. Try re-registering the entity. - - - -#### Missing required fields/Invalid YAML schema. - -In case of a `InputError`, check for `missingProperty` details and add the required property to your `catalog-info.yaml`. - - - -
- - +import DynamicMarkdownSelector from '@site/src/components/DynamicMarkdownSelector/DynamicMarkdownSelector'; + + diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/auto-discovery.md b/docs/internal-developer-portal/get-started/content/catalog-2o/auto-discovery.md new file mode 100644 index 00000000000..ad8367dd046 --- /dev/null +++ b/docs/internal-developer-portal/get-started/content/catalog-2o/auto-discovery.md @@ -0,0 +1,109 @@ +import DocImage from '@site/src/components/DocImage'; +import DocVideo from '@site/src/components/DocVideo'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## Auto-Discover Entities Using Harness CD + +Harness IDP can automatically discover and import your Harness CD services into the Software Catalog. This feature allows you to quickly populate your catalog with existing services without any manual configuration. + +### What is Auto-Discovery? + +Auto-Discovery integration enables: +- **Automatic scanning** of your Harness account for all CD services across the selected scope (Account, Organization, or Project level) +- **Automatic conversion** of each CD service into a **Component** entity with the **Service** type in Harness IDP +- **Metadata mapping** from service configuration to IDP entity properties +- **Uni-directional sync** from CD service to IDP entity (changes in IDP don't affect the CD service) + +For detailed information about the integration, go to [Auto-Discovery using Harness CD](/docs/internal-developer-portal/catalog/catalog-discovery/harness-cd.md). + +--- + +### Prerequisites + +Before you begin, ensure: +- The feature flag **`IDP_CATALOG_CD_AUTO_DISCOVERY`** is enabled on your account. Contact [Harness Support](mailto:support@harness.io) to enable it. +- **Harness CD** is enabled for your account (must be the **same account** you use for Harness IDP). +- You have appropriate RBAC permissions to view CD services in Harness CD. + +--- + +### Configure Auto-Discovery Integration + + + + + + + + + +#### Step 1: Enable the Harness CD Auto-Discovery Integration + +1. In Harness IDP, navigate to **Configure** → **Integrations**. +2. Locate the **Harness CD services** integration card. +3. Click **Enable** to activate the integration. + +--- + +#### Step 2: Configure and Sync Harness CD Services + +After enabling the integration, configure what services to sync to your IDP Catalog. When you enable auto-discovery, each CD service is converted into an IDP entity with some specific characteristics. Go to [Sync Harness CD Services](/docs/internal-developer-portal/catalog/catalog-discovery/harness-cd#2-sync-harness-cd-services-to-the-idp-catalog) to learn more about this entity mapping. + +1. On the **Harness CD services** integration card, click **Edit**. + +2. Choose your sync scope: + + **Option A: All Scopes** + - Syncs services across the entire account (all organizations and projects). + + **Option B: Particular Organizations & Projects** + - Syncs only from selected organizations and/or projects + - Use the dropdown to select specific scopes + +3. Click **Save Changes** to begin syncing. + +That's it! Your CD services will now appear in the IDP Catalog. + + + + +--- + +### View and Manage CD Services in the IDP Catalog + +Once the sync is complete, you can view and manage your auto-discovered services. + + + + + + + + + +#### Viewing Synced Services: + +1. Navigate to the **Catalog** in Harness IDP +2. Search for any CD service by name or identifier +3. Click on an entity to view all synced data from the CD service + +--- + +#### Auto-Configured Features: + +Auto-discovered entities come with built-in features: + +**1. CI/CD Plugin:** +- The **CI/CD** plugin is automatically configured for each entity +- View deployment history, pipelines, and execution details directly in IDP + +**2. Quick Navigation:** +- Use the **Open in Harness CD** button on the entity overview page +- Navigate directly to the service in Harness CD for detailed management + + + + + diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/catalog-2o-idp-1.md b/docs/internal-developer-portal/get-started/content/catalog-2o/catalog-2o-idp-1.md new file mode 100644 index 00000000000..aefb517fdda --- /dev/null +++ b/docs/internal-developer-portal/get-started/content/catalog-2o/catalog-2o-idp-1.md @@ -0,0 +1,105 @@ +import DocImage from '@site/src/components/DocImage'; +import DocVideo from '@site/src/components/DocVideo'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +The **Software Catalog** is a centralized registry of all your software assets — including components, services, websites, libraries, data pipelines, and more. Think of it as a curated directory of your **entities**, helping you efficiently track ownership, metadata, and dependencies across your software ecosystem. + +Let's start by adding your software components to IDP. To do this, create a `catalog-info.yaml` file in your Git repository and register its URL to add the component to your catalog. + + + +## Create a new catalog-info.yaml (IDP 1.0) + +1. To add a software component, you need to create a `catalog-info.yaml` file in its repository. In the case of a mono-repo, this file should be created at the root of the repository. While the file can technically reside anywhere (e.g., `.harness/catalog-info.yaml`), placing it in a standard location ensures consistency. You can use the following YAML code as a template: + +```YAML +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: my-new-service + description: Description of my new service + tags: + - java + links: + - url: https://admin.example-org.com + title: Admin Dashboard + icon: dashboard + type: admin-dashboard +spec: + type: service + lifecycle: production + owner: team-a + system: project-x +``` + +Following are the key fields that you must update: + +- `metadata.name`. This should be a unique name for your component. Usually, it is the name of the service. +- `metadata.description` - A description for your new component. +- `spec.type` - The new software component could be a `service`, `library`, `website`, or any other type. +- `spec.owner` - The user group identifier of the team that owns the component. + +2. Once the file is created in your Git repo, copy the full URL to the file. For example, `https://github.com/harness-community/idp-samples/blob/main/catalog-info.yaml`. + +## Register the software component (IDP 1.0) + +1. Next, navigate to your Harness IDP module, and from the left navigation menu, select **Register**. + + + + + + +2. Enter the URL to your new `catalog-info.yaml`. + + + + + + +2. Copy the URL for `catalog-info.yaml` and paste it on the field to Register the component. + + + + + + +3. Select **Import**. + + + +The new component will be available in your catalog. + + + +## Delete/Unregister Software Components (IDP 1.0) + +1. Navigate to the Catalog page and select Component under Kind. Here, we will deregister the software component registered above. + + + +2. Select the component name you want to Unregister from the list +3. Now on the component overview page, click on the 3 dots on top right corner and select **Unregister Entity**. + + + +4. Now on the Dialog box select **Unregister Location**. + + + +5. This will delete the software component. + +## Troubleshooting (IDP 1.0) + +#### Failed to register + +If, after registering an entity, you're unable to find the same in your catalog, check the Devtools Plugin for Unprocessed Entities. If it's under the **Pending** tab, wait a few minutes for registration to complete. If it's under the **Failed** tab. Try re-registering the entity. + + + +#### Missing required fields/Invalid YAML schema. + +In case of a `InputError`, check for `missingProperty` details and add the required property to your `catalog-info.yaml`. + + diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/catalog-2o-idp-2.md b/docs/internal-developer-portal/get-started/content/catalog-2o/catalog-2o-idp-2.md new file mode 100644 index 00000000000..abe766516e1 --- /dev/null +++ b/docs/internal-developer-portal/get-started/content/catalog-2o/catalog-2o-idp-2.md @@ -0,0 +1,55 @@ +import DocImage from '@site/src/components/DocImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import DynamicMarkdownSelector from '@site/src/components/DynamicMarkdownSelector/DynamicMarkdownSelector'; + +:::tip For IDP 2.0 Customers +If you're using Harness IDP 2.0, please ensure you have reviewed the [IDP 2.0 Overview guide](/docs/internal-developer-portal/idp-2o-overview/2-0-overview-and-upgrade-path) and are familiar with the key steps for [upgrading to IDP 2.0](/docs/internal-developer-portal/idp-2o-overview/migrating-idp-2o). To enable IDP 2.0, you must raise a support ticket to activate the `IDP_2_0` feature flag for your account. +::: + +The **Software Catalog** is a centralized registry of all your software assets — including components, services, websites, libraries, data pipelines, and more. Think of it as a curated directory of your **entities**, helping you efficiently track ownership, metadata, and dependencies across your software ecosystem. + +This guide walks you through the detailed steps to setup Catalog in IDP 2.0 and explains how to navigate the Catalog by creating and managing entities. + +--- + +## Prerequisites + +Before using the Software Catalog in IDP 2.0, ensure: +* You have reviewed the **[IDP 2.0 Overview](/docs/internal-developer-portal/idp-2o-overview/2-0-overview-and-upgrade-path)** and **[Upgrading to IDP 2.0](/docs/internal-developer-portal/idp-2o-overview/migrating-idp-2o)** guide. +* **IDP 2.0** is enabled behind the `IDP_2_0` Feature Flag. Contact [Harness Support](https://support.harness.io) to enable it on your account. +* You are familiar with the **[Catalog Data Model](/docs/internal-developer-portal/catalog/data-model)** and **[Catalog YAML](/docs/internal-developer-portal/catalog/catalog-yaml)** structure. + +--- + +## Populate your Catalog + +Once you have enabled the IDP module, there are three ways to populate your Software Catalog in IDP 2.0: + + + + + + +## Next steps + +Now that you've created your first entity, explore these next steps: +* [Create Workflows](/docs/internal-developer-portal/get-started/workflows-2o.md) to automate common development tasks. +* [Configure Plugins](/docs/internal-developer-portal/plugins/overview) to enhance your entities with additional capabilities. +* [Set up Scorecards](/docs/internal-developer-portal/scorecards/scorecard-quickstart) to track entity quality and compliance. +* [Enable TechDocs](/docs/internal-developer-portal/techdocs/enable-docs) to publish documentation alongside your entities. \ No newline at end of file diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/create-entity-manually.md b/docs/internal-developer-portal/get-started/content/catalog-2o/create-entity-manually.md new file mode 100644 index 00000000000..fff0db25089 --- /dev/null +++ b/docs/internal-developer-portal/get-started/content/catalog-2o/create-entity-manually.md @@ -0,0 +1,152 @@ +import DocImage from '@site/src/components/DocImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import DocVideo from '@site/src/components/DocVideo'; + +## Create Entities Manually + +In IDP 2.0, entity creation is simplified with full UI support and optional YAML-based creation. Entities are now "inline," which means their entire lifecycle can be managed through the UI or API, without Git integration. + +You can create entities directly via the **Harness IDP UI**—no YAML required for a streamlined, code-free experience. Alternatively, you can use your **existing catalog YAML** files, and Harness will automatically convert **legacy Backstage YAML** into the new Harness Catalog Entity Model. + + + + + + + + + +Let's walk through creating a **Component** entity using both the Visual View and YAML View methods. + +#### Method 1: Visual View + +##### Step 1: Navigate to Create + +1. Navigate to the Harness IDP portal and click **"Create"** in the sidebar. +2. Select **Component** from the available options. +3. You'll enter the **Visual View**, where you can fill out entity details interactively. + +:::note +Ensure your `identifier` follows [naming rules](https://developer.harness.io/docs/platform/references/entity-identifier-reference/#identifier-naming-rules). Invalid identifiers may lead to entity registration errors. The **identifier** is a unique key for your entity and cannot be changed after creation. +::: + +--- + +##### Step 2: Configure Entity Details + +1. **Specify the Entity Scope** (Account, Org, or Project). For this example, choose **Account scope**. [Read more about Catalog RBAC](/docs/internal-developer-portal/rbac/catalog-rbac). + +2. **Link to Source Code Repository** + Configure the source code repository associated with this component. This link enables several key capabilities: + + * Automatically configuring plugins like **Scorecards**, **TechDocs**, and **STO** + * Displaying the **View Source** option in the UI + * Enabling advanced features like **CI/CD integration** and **security scanning** + + > Harness IDP also auto-generates the legacy `backstage.io/source-location` annotation for backwards compatibility. + +--- + +##### Step 3: Choose Management Option + +You have two options for managing your Component configuration: +* **Inline (default):** Manage the Component YAML directly within Harness. +* **Git-based:** Store the Component YAML in your Git repository and sync it with Harness. + +--- + +##### Step 4: Configure Plugins (Optional) + +If applicable, configure a plugin by referring to its documentation and adding the necessary **annotations** in the Catalog YAML. + +--- + +##### Step 5: Save the Entity + +Click **Save** to create your entity. + +:::info +**YAML validation** is performed to ensure compatibility with the **Harness-native Catalog YAML** model. Any errors will be shown in the Validation logs. +::: + +--- + +#### Method 2: YAML View + +##### Step 1: Navigate to Create + +1. Navigate to the Harness IDP portal and click **"Create"** in the sidebar. +2. Select **Component** from the available options. +3. Switch to the **YAML View** by clicking the toggle. + +--- +##### Step 2: Paste Your YAML + +Paste your **Catalog YAML** in the editor. You can use the following template: + +```yaml +apiVersion: harness.io/v1 +kind: component +name: artist-lookup-api +identifier: artistlookupapi +type: service +owner: team-a +scope: account +projectIdentifier: myproject +orgIdentifier: myorg +spec: + lifecycle: production + sourceCode: + provider: github + repoName: myorg/artist-lookup-api + connectorRef: github_connector + branch: main +metadata: + tags: + - java + - api + description: "Artist lookup API service" +``` + +> You can even paste your existing Backstage YAML if available. Harness will auto-convert it into the native format. + + + +--- + +##### Step 3: Save the Entity + +Click **Save** to create your entity. + + + + +--- + +
+Example Component YAML Template + +```yaml +apiVersion: harness.io/v1 +kind: component +name: artist-lookup-api +identifier: artistlookupapi +type: service +owner: +scope: +projectIdentifier: +orgIdentifier: +spec: + lifecycle: production + sourceCode: + provider: + repoName: + connectorRef: + branch: + monoRepo: +metadata: + tags: [] + description: "" +``` +
diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/import-from-git.md b/docs/internal-developer-portal/get-started/content/catalog-2o/import-from-git.md new file mode 100644 index 00000000000..5d47bcf42e8 --- /dev/null +++ b/docs/internal-developer-portal/get-started/content/catalog-2o/import-from-git.md @@ -0,0 +1,83 @@ +import DocImage from '@site/src/components/DocImage'; +import DocVideo from '@site/src/components/DocVideo'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Import Entities from Git + +In Harness IDP, you can create new entities by importing their YAML definitions stored in Git repositories directly into Harness IDP. This feature allows teams to reuse pre-defined configurations, onboard services faster, and migrate from existing repositories. + +--- + +### Prerequisites + +Before you begin, ensure: +- You have a Git connector configured in Harness IDP (Harness Code Repository, GitHub, GitLab, Bitbucket, or Azure Repos) to import your entity YAMLs. Go to [Configure Git Connector](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo) to learn more. +- **API Access is enabled** for your Git connector (required for Harness Git Experience). For connection types where API access is not enabled by default, you must enable it from the Git connector settings. Refer to [enable API access](https://developer.harness.io/docs/platform/connectors/code-repositories/ref-source-repo-provider/git-hub-connector-settings-reference#enable-api-access). + +![](./static/enable-api-access-copy.png) + +--- + +### Import an Entity from Git + +To use the Import from Git feature in IDP 2.0, **Backstage YAML is not supported directly**. Since IDP 2.0 uses a new data model, existing YAMLs from IDP 1.0 (Backstage-native) must be converted. To learn more about converting IDP 1.0 YAMLs to IDP 2.0 YAMLs, go to [Converting IDP 1.0 YAMLs](/docs/internal-developer-portal/catalog/catalog-yaml.md#converting-existing-entity-yamls-idp-20). + +To learn more about entity scope rules, connector constraints, and advanced import options, go to [Import Entity in Harness IDP](/docs/internal-developer-portal/catalog/import-entity). + + + + + + + + + +#### Step 1: Navigate to Import + +1. Go to **Harness IDP** → **Create** +2. At the bottom of the page, find the option to create a new entity by importing YAML from Git. +3. Click on **Import from Git** + +#### Step 2: Select Entity Scope + +1. Select the **Entity Scope** (Account, Organization, or Project level) +2. The scope you select determines where your entity will be created. + +:::warning Important +Make sure your imported YAML includes the appropriate scope identifiers (`projectIdentifier` and `orgIdentifier`) — otherwise, it will result in an error. +::: + +#### Step 3: Choose Git Provider + +Select your Git provider type: + +**Option A: Harness Code Repository** + +If using Harness Code Repository, provide the following details: +- **Repository**: Git repository where your entity YAML is stored +- **Git Branch**: Branch of your repository where your entity YAML is stored +- **YAML Path**: Path to your YAML file + +**Option B: Third-Party Provider** + +If using a third-party Git provider (GitHub, GitLab, Bitbucket, Azure Repos), provide: +- **Git Connector**: Git connector configured in your Harness IDP +- **Repository**: Git repository where your entity YAML is stored +- **Git Branch**: Branch of your repository where your entity YAML is stored +- **YAML Path**: Path to your YAML file + +#### Step 4: Import the Entity + +1. Review the details you've entered. +2. Click **Import** +3. The entity will be created in your IDP directly from the YAML file stored in Git + + + + + + + + + diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/add-variable.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/add-variable.png new file mode 100644 index 00000000000..e0ed3595eb6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/add-variable.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/admin.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/admin.png new file mode 100644 index 00000000000..24756a2553c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/admin.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/all-sel.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/all-sel.png new file mode 100644 index 00000000000..83eeb7fe97a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/all-sel.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/api-access.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/api-access.png new file mode 100644 index 00000000000..459865cbcb9 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/api-access.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/assign-role.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/assign-role.png new file mode 100644 index 00000000000..3a80894fa72 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/assign-role.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/att-3-for-21398290667.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/att-3-for-21398290667.png new file mode 100644 index 00000000000..47c6f50e815 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/att-3-for-21398290667.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/att-4-for-21398290667.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/att-4-for-21398290667.png new file mode 100644 index 00000000000..538c68174bb Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/att-4-for-21398290667.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/att-5-for-21398290667.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/att-5-for-21398290667.png new file mode 100644 index 00000000000..3b6b55d66fb Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/att-5-for-21398290667.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/bitbucket-connector.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/bitbucket-connector.png new file mode 100644 index 00000000000..ca5c26a6e70 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/bitbucket-connector.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-dashboard.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-dashboard.png new file mode 100644 index 00000000000..491611663df Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-dashboard.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-navigation.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-navigation.png new file mode 100644 index 00000000000..4d5257bb256 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-navigation.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-readiness-0.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-readiness-0.png new file mode 100644 index 00000000000..53a4f1a214d Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-readiness-0.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-readiness-applied.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-readiness-applied.png new file mode 100644 index 00000000000..fd86e0a4c50 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-readiness-applied.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-readiness.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-readiness.png new file mode 100644 index 00000000000..70054a1a094 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-readiness.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-screenshot-copy.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-screenshot-copy.png new file mode 100644 index 00000000000..37e407de81f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-screenshot-copy.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-screenshot.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-screenshot.png new file mode 100644 index 00000000000..bb69c7a2b97 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog.png new file mode 100644 index 00000000000..fc09e33170e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/conclusion-system.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/conclusion-system.png new file mode 100644 index 00000000000..662c338960c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/conclusion-system.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/connection-successful.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/connection-successful.png new file mode 100644 index 00000000000..f6117b87fdc Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/connection-successful.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/connector-final-setup.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/connector-final-setup.png new file mode 100644 index 00000000000..fcc2e1ebb47 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/connector-final-setup.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/connector.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/connector.png new file mode 100644 index 00000000000..ee3725da3a5 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/connector.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/copy-repo-path.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/copy-repo-path.png new file mode 100644 index 00000000000..58523255790 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/copy-repo-path.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-entity-1.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-entity-1.png new file mode 100644 index 00000000000..1db4d47884f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-entity-1.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-entity-2.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-entity-2.png new file mode 100644 index 00000000000..cb0ebaf2d91 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-entity-2.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-page-sidebar.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-page-sidebar.png new file mode 100644 index 00000000000..36f7fc4a793 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-page-sidebar.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-page.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-page.png new file mode 100644 index 00000000000..9d1378bda98 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-page.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-repo-run.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-repo-run.png new file mode 100644 index 00000000000..93d0607fb17 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-repo-run.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-repo.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-repo.png new file mode 100644 index 00000000000..829c867dc43 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/create-repo.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/custom-check-jira.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/custom-check-jira.png new file mode 100644 index 00000000000..15fc46be275 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/custom-check-jira.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/default-check-catalog-readiness.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/default-check-catalog-readiness.png new file mode 100644 index 00000000000..493f9c0b067 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/default-check-catalog-readiness.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/delete-entity.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/delete-entity.png new file mode 100644 index 00000000000..633d6856ee7 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/delete-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/delete-workflow.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/delete-workflow.png new file mode 100644 index 00000000000..43d2fb192dd Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/delete-workflow.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/devtools.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/devtools.png new file mode 100644 index 00000000000..eae400420c1 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/devtools.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/docs-empty.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/docs-empty.png new file mode 100644 index 00000000000..40778f53fc4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/docs-empty.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/docs-rendered.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/docs-rendered.png new file mode 100644 index 00000000000..eceba894078 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/docs-rendered.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/docs-screenshot.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/docs-screenshot.png new file mode 100644 index 00000000000..c9544f82c1a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/docs-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/edit-button-catalog.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/edit-button-catalog.png new file mode 100644 index 00000000000..b6cb5e91dc5 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/edit-button-catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/edit-icon.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/edit-icon.png new file mode 100644 index 00000000000..fe1360aa4ae Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/edit-icon.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/edit-scorecard.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/edit-scorecard.png new file mode 100644 index 00000000000..57bd23922b1 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/edit-scorecard.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/edit-view-source.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/edit-view-source.png new file mode 100644 index 00000000000..f463f4c5fba Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/edit-view-source.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/enable-api-access-copy.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/enable-api-access-copy.png new file mode 100644 index 00000000000..43dd37e581c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/enable-api-access-copy.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/enable-api-access.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/enable-api-access.png new file mode 100644 index 00000000000..26a23883a9e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/enable-api-access.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/execute-workflows-1.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/execute-workflows-1.png new file mode 100644 index 00000000000..a732dd72767 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/execute-workflows-1.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/execute-workflows-2.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/execute-workflows-2.png new file mode 100644 index 00000000000..a11d1e3d995 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/execute-workflows-2.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/execution-cr.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/execution-cr.png new file mode 100644 index 00000000000..1e02d17f35b Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/execution-cr.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/fill-template-fields.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/fill-template-fields.png new file mode 100644 index 00000000000..2d3d9f5d631 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/fill-template-fields.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/fill-template.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/fill-template.png new file mode 100644 index 00000000000..42dae44ab50 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/fill-template.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/final-plugin-page.gif b/docs/internal-developer-portal/get-started/content/catalog-2o/static/final-plugin-page.gif new file mode 100644 index 00000000000..d9b687ecc8b Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/final-plugin-page.gif differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/finished-state.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/finished-state.png new file mode 100644 index 00000000000..2d7e6150188 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/finished-state.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/first-step.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/first-step.png new file mode 100644 index 00000000000..0c749e9bce6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/first-step.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/flows.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/flows.png new file mode 100644 index 00000000000..be6fd7d2b10 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/flows.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/get-started-admin.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/get-started-admin.png new file mode 100644 index 00000000000..da03bfe668b Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/get-started-admin.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/get-started-flow.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/get-started-flow.png new file mode 100644 index 00000000000..d49145d2af7 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/get-started-flow.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/git-component.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/git-component.png new file mode 100644 index 00000000000..29e7f71be84 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/git-component.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/git-workflow.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/git-workflow.png new file mode 100644 index 00000000000..f68465271e0 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/git-workflow.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/go-to-scorecards.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/go-to-scorecards.png new file mode 100644 index 00000000000..69c1b01ae22 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/go-to-scorecards.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/idp-roles.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/idp-roles.png new file mode 100644 index 00000000000..c3359da4f50 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/idp-roles.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/imported-entity.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/imported-entity.png new file mode 100644 index 00000000000..f5ffabb6cef Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/imported-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/ind-sel.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/ind-sel.png new file mode 100644 index 00000000000..3dfd197e83f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/ind-sel.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/infra-harness-cloud.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/infra-harness-cloud.png new file mode 100644 index 00000000000..bc7305b2c86 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/infra-harness-cloud.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/intro-system.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/intro-system.png new file mode 100644 index 00000000000..24b00c1e5a5 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/intro-system.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/invalid-schema.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/invalid-schema.png new file mode 100644 index 00000000000..8c0d0e00e57 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/invalid-schema.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/jira-custom-check.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/jira-custom-check.png new file mode 100644 index 00000000000..56b41094cfd Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/jira-custom-check.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/layout-page.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/layout-page.png new file mode 100644 index 00000000000..dbf423c8115 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/layout-page.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/layout-snippet.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/layout-snippet.png new file mode 100644 index 00000000000..e93b421641e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/layout-snippet.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/link-card.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/link-card.png new file mode 100644 index 00000000000..153002d1470 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/link-card.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/name-pipeline.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/name-pipeline.png new file mode 100644 index 00000000000..9321de7a826 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/name-pipeline.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/navigate-componenet-new.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/navigate-componenet-new.png new file mode 100644 index 00000000000..92abc912751 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/navigate-componenet-new.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/navigate-pipeline.gif b/docs/internal-developer-portal/get-started/content/catalog-2o/static/navigate-pipeline.gif new file mode 100644 index 00000000000..1fd52f48a8f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/navigate-pipeline.gif differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/navigate-variable.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/navigate-variable.png new file mode 100644 index 00000000000..a72b25449bd Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/navigate-variable.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/new-app-onboarding-with-idp-stage.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/new-app-onboarding-with-idp-stage.png new file mode 100644 index 00000000000..f06f2442436 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/new-app-onboarding-with-idp-stage.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/new-git-integration-hce-enabled.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/new-git-integration-hce-enabled.png new file mode 100644 index 00000000000..be26966a1e0 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/new-git-integration-hce-enabled.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/new-nav.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/new-nav.png new file mode 100644 index 00000000000..98439db1a00 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/new-nav.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/old-nav-copy.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/old-nav-copy.png new file mode 100644 index 00000000000..82b4d180ae9 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/old-nav-copy.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/old-nav.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/old-nav.png new file mode 100644 index 00000000000..82b4d180ae9 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/old-nav.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/onboarding-completed.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/onboarding-completed.png new file mode 100644 index 00000000000..10d667cea5c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/onboarding-completed.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/openapi-json.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/openapi-json.png new file mode 100644 index 00000000000..a49048f4db6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/openapi-json.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/option1.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/option1.png new file mode 100644 index 00000000000..b7cd7666892 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/option1.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/option2.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/option2.png new file mode 100644 index 00000000000..a04e3435b00 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/option2.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/pipelines-screenshot.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/pipelines-screenshot.png new file mode 100644 index 00000000000..1d858f6f291 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/pipelines-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/plugins-dashboard.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/plugins-dashboard.png new file mode 100644 index 00000000000..84d14013f4d Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/plugins-dashboard.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/plugins-entity.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/plugins-entity.png new file mode 100644 index 00000000000..b6153fc204f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/plugins-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/plugins-screenshot.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/plugins-screenshot.png new file mode 100644 index 00000000000..75d274d3c54 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/plugins-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/preview-catalog.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/preview-catalog.png new file mode 100644 index 00000000000..56c5004a1ff Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/preview-catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/readiness-applied-0.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/readiness-applied-0.png new file mode 100644 index 00000000000..fc7b83ead65 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/readiness-applied-0.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/refresh-button.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/refresh-button.png new file mode 100644 index 00000000000..454b50bf432 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/refresh-button.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/refresh-component.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/refresh-component.png new file mode 100644 index 00000000000..df8f0bf4633 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/refresh-component.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/register-software-component-hcr.gif b/docs/internal-developer-portal/get-started/content/catalog-2o/static/register-software-component-hcr.gif new file mode 100644 index 00000000000..e4f15444927 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/register-software-component-hcr.gif differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/register-url.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/register-url.png new file mode 100644 index 00000000000..054f7baa9ab Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/register-url.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/replace-vanity-url-register.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/replace-vanity-url-register.png new file mode 100644 index 00000000000..40b42ccfce6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/replace-vanity-url-register.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/replace-vanity-url.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/replace-vanity-url.png new file mode 100644 index 00000000000..4af8bf86ff4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/replace-vanity-url.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/repo-path-code-repo.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/repo-path-code-repo.png new file mode 100644 index 00000000000..c57e827f634 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/repo-path-code-repo.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/role-explain.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/role-explain.png new file mode 100644 index 00000000000..e458490c87f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/role-explain.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/run-flows.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/run-flows.png new file mode 100644 index 00000000000..233fe1803d1 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/run-flows.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/sample-flow.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/sample-flow.png new file mode 100644 index 00000000000..c7aad4c9be6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/sample-flow.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/scope-entity.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/scope-entity.png new file mode 100644 index 00000000000..258bcca0700 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/scope-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards-aggregate.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards-aggregate.png new file mode 100644 index 00000000000..2634e72b2e4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards-aggregate.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards-checks.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards-checks.png new file mode 100644 index 00000000000..398bfd9f8a2 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards-checks.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards-dashboard.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards-dashboard.png new file mode 100644 index 00000000000..767d3ba29b4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards-dashboard.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards-details.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards-details.png new file mode 100644 index 00000000000..52fc7d6bde6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards-details.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards.png new file mode 100644 index 00000000000..dcb3bf66e1a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/scorecards.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/search-screenshot.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/search-screenshot.png new file mode 100644 index 00000000000..91962e21db9 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/search-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-all.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-all.png new file mode 100644 index 00000000000..87c8d4e5b0c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-all.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-git-provider.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-git-provider.png new file mode 100644 index 00000000000..e50daa387ee Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-git-provider.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-harness-services.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-harness-services.png new file mode 100644 index 00000000000..d1e5748df53 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-harness-services.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-individual.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-individual.png new file mode 100644 index 00000000000..c7c33429246 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-individual.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-onboarding-path.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-onboarding-path.png new file mode 100644 index 00000000000..df2d4fa6126 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-onboarding-path.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-path.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-path.png new file mode 100644 index 00000000000..828e874b0e8 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-path.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-stage-idp.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-stage-idp.png new file mode 100644 index 00000000000..5897429b66d Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/select-stage-idp.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/set-up-connector.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/set-up-connector.png new file mode 100644 index 00000000000..da79d7d2338 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/set-up-connector.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/software-catalog.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/software-catalog.png new file mode 100644 index 00000000000..96ffaf0e7ba Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/software-catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/source-code-link-ui.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/source-code-link-ui.png new file mode 100644 index 00000000000..0d99550f61a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/source-code-link-ui.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/spotify-api.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/spotify-api.png new file mode 100644 index 00000000000..5eb58fe79f7 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/spotify-api.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/success-daily-utility.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/success-daily-utility.png new file mode 100644 index 00000000000..32d534eef41 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/success-daily-utility.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/success.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/success.png new file mode 100644 index 00000000000..6e3e0c5bddb Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/success.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/swagger-api.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/swagger-api.png new file mode 100644 index 00000000000..f5890aa5d66 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/swagger-api.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/techdocs-ref.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/techdocs-ref.png new file mode 100644 index 00000000000..9dbe0933b21 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/techdocs-ref.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/template-name.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/template-name.png new file mode 100644 index 00000000000..71fd76b1132 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/template-name.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/the-adoption-flywheel.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/the-adoption-flywheel.png new file mode 100644 index 00000000000..83914ec0920 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/the-adoption-flywheel.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/the-adoption-timeline.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/the-adoption-timeline.png new file mode 100644 index 00000000000..17d3c284398 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/the-adoption-timeline.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/unregister-entity.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/unregister-entity.png new file mode 100644 index 00000000000..e42092148f7 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/unregister-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/unregister-location.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/unregister-location.png new file mode 100644 index 00000000000..475af6e007a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/unregister-location.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/url-allow-list.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/url-allow-list.png new file mode 100644 index 00000000000..3eb3541f680 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/url-allow-list.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/url-on-register-page.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/url-on-register-page.png new file mode 100644 index 00000000000..5abc23c0bb2 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/url-on-register-page.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/user-group.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/user-group.png new file mode 100644 index 00000000000..2c46caf0007 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/user-group.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/validate-permission.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/validate-permission.png new file mode 100644 index 00000000000..630af6b5133 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/validate-permission.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/visibility-first-vs-automation.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/visibility-first-vs-automation.png new file mode 100644 index 00000000000..752a98f1710 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/visibility-first-vs-automation.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflow-1.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflow-1.png new file mode 100644 index 00000000000..2a9b20c21a4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflow-1.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflow-scope.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflow-scope.png new file mode 100644 index 00000000000..2c05b78cd56 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflow-scope.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflow-yaml-conversion.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflow-yaml-conversion.png new file mode 100644 index 00000000000..a167d8e1b0d Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflow-yaml-conversion.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflow-yaml.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflow-yaml.png new file mode 100644 index 00000000000..2a0ee794b38 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflow-yaml.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflowquickstart.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflowquickstart.png new file mode 100644 index 00000000000..7f17135ebae Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflowquickstart.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflows-dashboard.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflows-dashboard.png new file mode 100644 index 00000000000..8363ae29783 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflows-dashboard.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflowsv2.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflowsv2.png new file mode 100644 index 00000000000..71dda5552f5 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/workflowsv2.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/write-catalog.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/write-catalog.png new file mode 100644 index 00000000000..fa4acc9069e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/write-catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-conversion.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-conversion.png new file mode 100644 index 00000000000..22ab10b7488 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-conversion.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-validation.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-validation.png new file mode 100644 index 00000000000..8ac660ecb7c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-validation.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-view-workflows.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-view-workflows.png new file mode 100644 index 00000000000..6f6a445073a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-view-workflows.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-view.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-view.png new file mode 100644 index 00000000000..a3675f67408 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-view.png differ diff --git a/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-way.png b/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-way.png new file mode 100644 index 00000000000..4df1313438e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/catalog-2o/static/yaml-way.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/setup-git-integration-idp-1.md b/docs/internal-developer-portal/get-started/content/setup-git-integration/setup-git-integration-idp-1.md new file mode 100644 index 00000000000..2102689af01 --- /dev/null +++ b/docs/internal-developer-portal/get-started/content/setup-git-integration/setup-git-integration-idp-1.md @@ -0,0 +1,171 @@ +## Enabling IDP 1.0 + +Harness IDP is currently available to a limited set of customers. To get started, send an email to idp-interest@harness.io for a demo and a Harness specialist will get you going. + +Once Harness IDP is enabled in your account, an account administrator can onboard your services and configure the required plugins. + +If the module is enabled, and you are an account administrator, go to [Setting up IDP](./setup-git-integration.md). + +## Pre-requisites + +- IDP must be provisioned for the given account. +- Only users with the **Harness Account Admin** role or assigned **IDP Admin** role can configure IDP. Here's the detailed [documentation on how to assign roles](https://developer.harness.io/docs/platform/role-based-access-control/add-user-groups/#assign-roles-and-resource-groups) + +![](./static/assign-role.png) + +![](./static/idp-roles.png) + +## Getting Started + +1. You land on the IDP module by navigating from the sidebar after logging into your Harness account. We strongly recommend users to follow the onboarding guide selecting the **Get Started**, for a seamless onboarding resulting in a catalog with software components. + +![](./static/option1.png) +![](./static/option2.png) + +2. Now that you're on the onboarding wizard, let's get started with setting up Git connectors to onboard the software components. + +## Connector Setup + +The software components in IDP are defined using YAML files, which are typically stored in your git repositories hence configuring a connector for these git providers is essential to fetch and manage these YAML files. + +The following set of git providers are supported: + +- [Harness Code Repository](https://www.harness.io/products/code-repository) +- GitHub ([Cloud](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-github) & [Enterprise](https://docs.github.com/en/enterprise-server@3.14/admin/overview/about-github-enterprise-server)) +- [GitLab](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-gitlab) (Cloud & Self Hosted) +- [Bitbucket](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-bitbucket) + +> **Note:** Multiple Connectors with different hostname can be used for a single Git Provider at once. While setting up connector, both Account & Repo type for URL is supported. Connection through Harness platform and delegate is supported. + +### Setting up Git Connectors + +1. Select **Harness Code Repository** if enabled, or choose your preferred **Git Provider** from the available options. + +![](./static/select-git-provider.png) + +2. From the dropdown under **Select Connector** either select an already present connector or create **+New Connector**. +3. Configure the Connector as per the [documentation](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo). +4. Select **Apply Selected** to use the connector. +5. After the connection test runs, select Finish to save the connector. + +![](./static/set-up-connector.png) + +### Connector Configuration by Provider + +**Bitbucket:** +- Select **Bitbucket** icon followed by **Create or Select a Connector**. +- Configure the Connector as per the [documentation](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-bitbucket). + +![](./static/bitbucket-connector.png) + +**GitHub:** +- Select **GitHub** icon followed by **Create or Select a Connector**. +- Configure the Connector as per the [documentation](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-github). + +**GitLab:** +- Select **GitLab** icon followed by **Create or Select a Connector**. +- Configure the Connector as per the [documentation](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-gitlab). + +## Onboarding Path + +After setting up the connector, you'll be presented with two onboarding paths: + +![](./static/select-onboarding-path.png) + +### Import Harness Services + +- This option imports all the services from your Harness account into IDP. This includes all the services from all the projects in your account. +- The services are imported as **Component** entities in IDP. The metadata for these entities is derived from the service configuration in Harness. +- The entities are created with the following metadata: + - **Name**: Service name from Harness + - **Description**: Service description from Harness (if available) + - **Owner**: Team or user who owns the service in Harness + - **Type**: Service type (e.g., backend, frontend, etc.) + - **Lifecycle**: Service lifecycle stage (e.g., production, staging, etc.) +- Once imported, you can view and manage these entities in the IDP catalog. + +![](./static/select-path.png) + +**For Harness Code Repository:** +- **Repo Path** - Go to the Code Repository and under files select **Clone** and copy the repository path. + +![](./static/copy-repo-path.png) + +Validate the permission and the `catalog-info.yaml` files would be created in your directory in Code repository. + +![](./static/repo-path-code-repo.png) + +**For Other Git Providers:** +- **Connector** - Select the connector of the git provider you want to use. +- **Repo** - Enter the full path to your repo. Example: + +``` +https://github.com/user-name/onboarding-test.git +https://github.com/user-name/onboarding-test +``` + +- The provided repo URL should belong to the same organization/project for which the connector has been setup. +- **In connector** - The account path is `https://github.com/user-name`. So the repo URL in IDP onboarding flow should be `https://github.com/{USER_NAME}/{SOME_REPO}`. It cannot be `https://github.com/{SOMETHING_ELSE}/{SOME_REPO}` - this will not work. +- Path - Defaults to harness-services. Can be changed as well. + +![](./static/write-catalog.png) + +### Start with Sample Service + +- User will be shown a demo service metadata in the form of the `catalog-info.yaml`. + +![](./static/preview-catalog.png) + +- This will be added to the git provider with the same configuration options as above. + +**For Harness Code Repository:** +- **Connector** - The connector is selected by default. +- **Directory Path** - Give a path for the directory in which you want to write the `catalog-info.yaml` files. + +![](./static/select-path.png) + +- **Repo Path** - Go to the Code Repository and under files select **Clone** and copy the repository path. + +> **Note:** Once you copy the repository path replace the `git.eu.harness.io` with `accounts.eu.harness.io`. + +![](./static/replace-vanity-url.png) + +![](./static/copy-repo-path.png) + +Validate the permission and the catalog-info.yaml files would be created in your directory in Code repository. + +![](./static/repo-path-code-repo.png) + +**For Other Git Providers:** +- Same configuration as described in the Import Harness Services section. +- Provided repo should exist with a valid default HEAD branch. Ideally this will be case when the repo is initialized with README file. +- Branch - Can be new branch / some existing branch. In both cases, the commit will be done on top of the base HEAD branch. + +## Create and Register Entities + +- Once the required details are entered and submitted for importing, we will push the generated entity YAML files to the repo and path provided. +- You will see two commits - one during the sync process and another asynchronously, which will consist of remaining entities pushed in an asynchronous manner. +- The time frame for asynchronous operation (second commit) will depend on the repo size and number of revisions the provided repo has. +- In the background, the catalog are also imported into IDP along with their associated configs. + +![](./static/onboarding-completed.png) + +## Catalog + +- User can navigate to the IDP homepage to get started. Catalog will start showing up software components once the asynchronous operation is completed. +- Since during the onboarding flow Harness will not be able to discover the complete metadata of the entity, the **owner** field will be set to **Unknown**. +- As part of the IDP provisioning, Harness users and groups are imported to IDP. With this in place, customers can start editing the catalog info YAML definition to update the owner for each entity. + +![](./static/catalog.png) + +- Post onboarding, users can import any number of entities into Harness IDP using the [register component flow](https://developer.harness.io/docs/internal-developer-portal/catalog/register-software-component). This flow expects you to provide the complete URL where the entity definition is stored. + +## Onboard Services Post Getting Started + +- You can add new services to the IDP after the initial onboarding flow. Simply navigate to **Admin**, select **Get Started**, and you'll find the Onboard Service Wizard available for use. + +![](./static/get-started-admin.png) + +## Recommendations + +If you're using GitHub connector, you can go with App based authentication which provides higher number of API requests in an hour window for your catalog to be in sync with the latest updates without resulting in rate limit error. Read more about [GitHub Apps](https://docs.github.com/en/apps/creating-github-apps/setting-up-a-github-app/rate-limits-for-github-apps) diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/setup-git-integration-idp-2.md b/docs/internal-developer-portal/get-started/content/setup-git-integration/setup-git-integration-idp-2.md new file mode 100644 index 00000000000..b89452ee533 --- /dev/null +++ b/docs/internal-developer-portal/get-started/content/setup-git-integration/setup-git-integration-idp-2.md @@ -0,0 +1,143 @@ +## Prerequisites +Ensure your team is ready for IDP 2.0 onboarding by reviewing the [breaking changes](/docs/internal-developer-portal/idp-2o-overview/2-0-overview-and-upgrade-path.md) list and understanding the key [essentials of upgrading to IDP 2.0](/docs/internal-developer-portal/idp-2o-overview/migrating-idp-2o.md). + +> ⚠️ Rollback is not straightforward, so it's critical to thoroughly understand the scope and impact of these changes. + +## Enabling IDP 2.0 + +Once you're confident about upgrading: + +* **Submit a Support Ticket**: + Raise a ticket with [Harness Support](https://support.harness.io) to enable the `IDP_2_0` feature flag on your account. + +* **Join an Upgrade Call (Early Access Customers)**: + Our team will schedule a call with you to walk through the upgrade process and enable the feature flag. + +* **Enable in a Test Environment First (Recommended)**: + If you have a **test or staging environment**, enable IDP 2.0 there first. This allows your team to safely explore the new experience before enabling it in production. + +## Pre-requisites + +- IDP must be provisioned for the given account. +- Only users with the **Harness Account Admin** role or assigned **IDP Admin** role can configure IDP. Here's the detailed [documentation on how to assign roles](https://developer.harness.io/docs/platform/role-based-access-control/add-user-groups/#assign-roles-and-resource-groups) + +![](./static/assign-role.png) + +![](./static/idp-roles.png) + +## Getting Started + +1. You land on the IDP module by navigating from the sidebar after logging into your Harness account. We strongly recommend users to follow the onboarding guide selecting the **Get Started**, for a seamless onboarding resulting in a catalog with software components. + +![](./static/option1.png) +![](./static/option2.png) + +2. Now that you're on the onboarding wizard, let's get started with setting up Git connectors to onboard the software components. + +## Connector Setup + +The software components in IDP are defined using YAML files, which are typically stored in your git repositories hence configuring a connector for these git providers is essential to fetch and manage these YAML files. + +The following set of git providers are supported: + +- [Harness Code Repository](https://www.harness.io/products/code-repository) +- GitHub ([Cloud](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-github) & [Enterprise](https://docs.github.com/en/enterprise-server@3.14/admin/overview/about-github-enterprise-server)) +- [GitLab](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-gitlab) (Cloud & Self Hosted) +- [Bitbucket](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-bitbucket) + +### Setting up Git Connectors + +1. Select **Harness Code Repository** if enabled, or choose your preferred **Git Provider** from the available options. + +![](./static/select-git-provider.png) + +2. From the dropdown under **Select Connector** either select an already present connector or create **+New Connector**. +3. Configure the Connector as per the [documentation](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo). +4. Select **Apply Selected** to use the connector. +5. After the connection test runs, select Finish to save the connector. + +![](./static/set-up-connector.png) + +## Onboarding Path + +After setting up the connector, you'll be presented with two onboarding paths: + +![](./static/select-onboarding-path.png) + +### Import Harness Services + +- This option imports all the services from your Harness account into IDP. This includes all the services from all the projects in your account. +- The services are imported as **Component** entities in IDP. The metadata for these entities is derived from the service configuration in Harness. +- The entities are created with metadata including Name, Description, Owner, Type, and Lifecycle stage. +- Once imported, you can view and manage these entities in the IDP catalog. + +![](./static/select-path.png) + +**For Harness Code Repository:** +- **Repo Path** - Go to the Code Repository and under files select **Clone** and copy the repository path. + +![](./static/copy-repo-path.png) + +**For Other Git Providers:** +- **Connector** - Select the connector of the git provider you want to use. +- **Repo** - Enter the full path to your repo. Example: `https://github.com/user-name/onboarding-test.git` +- The provided repo URL should belong to the same organization/project for which the connector has been setup. +- Path - Defaults to harness-services. Can be changed as well. + +![](./static/write-catalog.png) + +### Start with Sample Service + +- User will be shown a demo service metadata in the form of the `catalog-info.yaml`. + +![](./static/preview-catalog.png) + +- This will be added to the git provider with the same configuration options as above. + +**For Harness Code Repository:** +- **Connector** - The connector is selected by default. +- **Directory Path** - Give a path for the directory in which you want to write the `catalog-info.yaml` files. + +![](./static/select-path.png) + +- **Repo Path** - Go to the Code Repository and under files select **Clone** and copy the repository path. + +> **Note:** Once you copy the repository path replace the `git.eu.harness.io` with `accounts.eu.harness.io`. + +![](./static/replace-vanity-url.png) + +![](./static/copy-repo-path.png) + +**For Other Git Providers:** +- Same configuration as described in the Import Harness Services section. +- Provided repo should exist with a valid default HEAD branch. +- Branch - Can be new branch / some existing branch. In both cases, the commit will be done on top of the base HEAD branch. + +## Create and Register Entities + +- Once the required details are entered and submitted for importing, we will push the generated entity YAML files to the repo and path provided. +- You will see two commits - one during the sync process and another asynchronously, which will consist of remaining entities pushed in an asynchronous manner. +- The time frame for asynchronous operation (second commit) will depend on the repo size and number of revisions the provided repo has. +- In the background, the catalog are also imported into IDP along with their associated configs. + +![](./static/onboarding-completed.png) + +## Catalog + +- User can navigate to the IDP homepage to get started. Catalog will start showing up software components once the asynchronous operation is completed. +- Since during the onboarding flow Harness will not be able to discover the complete metadata of the entity, the **owner** field will be set to **Unknown**. +- As part of the IDP provisioning, Harness users and groups are imported to IDP. With this in place, customers can start editing the catalog info YAML definition to update the owner for each entity. + +![](./static/catalog.png) + +- Post onboarding, users can import any number of entities into Harness IDP using the [register component flow](https://developer.harness.io/docs/internal-developer-portal/catalog/register-software-component). This flow expects you to provide the complete URL where the entity definition is stored. + +## Onboard Services Post Getting Started + +- You can add new services to the IDP after the initial onboarding flow. Simply navigate to **Admin**, select **Get Started**, and you'll find the Onboard Service Wizard available for use. + +![](./static/get-started-admin.png) + +## Recommendations + +If you're using GitHub connector, you can go with App based authentication which provides higher number of API requests in an hour window for your catalog to be in sync with the latest updates without resulting in rate limit error. Read more about [GitHub Apps](https://docs.github.com/en/apps/creating-github-apps/setting-up-a-github-app/rate-limits-for-github-apps) diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/add-variable.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/add-variable.png new file mode 100644 index 00000000000..e0ed3595eb6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/add-variable.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/admin.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/admin.png new file mode 100644 index 00000000000..24756a2553c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/admin.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/all-sel.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/all-sel.png new file mode 100644 index 00000000000..83eeb7fe97a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/all-sel.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/api-access.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/api-access.png new file mode 100644 index 00000000000..459865cbcb9 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/api-access.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/assign-role.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/assign-role.png new file mode 100644 index 00000000000..3a80894fa72 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/assign-role.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/att-3-for-21398290667.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/att-3-for-21398290667.png new file mode 100644 index 00000000000..47c6f50e815 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/att-3-for-21398290667.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/att-4-for-21398290667.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/att-4-for-21398290667.png new file mode 100644 index 00000000000..538c68174bb Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/att-4-for-21398290667.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/att-5-for-21398290667.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/att-5-for-21398290667.png new file mode 100644 index 00000000000..3b6b55d66fb Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/att-5-for-21398290667.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/bitbucket-connector.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/bitbucket-connector.png new file mode 100644 index 00000000000..ca5c26a6e70 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/bitbucket-connector.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-dashboard.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-dashboard.png new file mode 100644 index 00000000000..491611663df Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-dashboard.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-navigation.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-navigation.png new file mode 100644 index 00000000000..4d5257bb256 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-navigation.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-readiness-0.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-readiness-0.png new file mode 100644 index 00000000000..53a4f1a214d Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-readiness-0.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-readiness-applied.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-readiness-applied.png new file mode 100644 index 00000000000..fd86e0a4c50 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-readiness-applied.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-readiness.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-readiness.png new file mode 100644 index 00000000000..70054a1a094 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-readiness.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-screenshot-copy.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-screenshot-copy.png new file mode 100644 index 00000000000..37e407de81f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-screenshot-copy.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-screenshot.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-screenshot.png new file mode 100644 index 00000000000..bb69c7a2b97 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog.png new file mode 100644 index 00000000000..fc09e33170e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/conclusion-system.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/conclusion-system.png new file mode 100644 index 00000000000..662c338960c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/conclusion-system.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/connection-successful.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/connection-successful.png new file mode 100644 index 00000000000..f6117b87fdc Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/connection-successful.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/connector-final-setup.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/connector-final-setup.png new file mode 100644 index 00000000000..fcc2e1ebb47 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/connector-final-setup.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/connector.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/connector.png new file mode 100644 index 00000000000..ee3725da3a5 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/connector.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/copy-repo-path.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/copy-repo-path.png new file mode 100644 index 00000000000..58523255790 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/copy-repo-path.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-entity-1.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-entity-1.png new file mode 100644 index 00000000000..1db4d47884f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-entity-1.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-entity-2.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-entity-2.png new file mode 100644 index 00000000000..cb0ebaf2d91 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-entity-2.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-page-sidebar.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-page-sidebar.png new file mode 100644 index 00000000000..36f7fc4a793 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-page-sidebar.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-page.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-page.png new file mode 100644 index 00000000000..9d1378bda98 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-page.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-repo-run.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-repo-run.png new file mode 100644 index 00000000000..93d0607fb17 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-repo-run.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-repo.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-repo.png new file mode 100644 index 00000000000..829c867dc43 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/create-repo.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/custom-check-jira.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/custom-check-jira.png new file mode 100644 index 00000000000..15fc46be275 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/custom-check-jira.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/default-check-catalog-readiness.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/default-check-catalog-readiness.png new file mode 100644 index 00000000000..493f9c0b067 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/default-check-catalog-readiness.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/delete-entity.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/delete-entity.png new file mode 100644 index 00000000000..633d6856ee7 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/delete-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/delete-workflow.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/delete-workflow.png new file mode 100644 index 00000000000..43d2fb192dd Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/delete-workflow.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/devtools.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/devtools.png new file mode 100644 index 00000000000..eae400420c1 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/devtools.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/docs-empty.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/docs-empty.png new file mode 100644 index 00000000000..40778f53fc4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/docs-empty.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/docs-rendered.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/docs-rendered.png new file mode 100644 index 00000000000..eceba894078 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/docs-rendered.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/docs-screenshot.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/docs-screenshot.png new file mode 100644 index 00000000000..c9544f82c1a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/docs-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/edit-button-catalog.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/edit-button-catalog.png new file mode 100644 index 00000000000..b6cb5e91dc5 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/edit-button-catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/edit-icon.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/edit-icon.png new file mode 100644 index 00000000000..fe1360aa4ae Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/edit-icon.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/edit-scorecard.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/edit-scorecard.png new file mode 100644 index 00000000000..57bd23922b1 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/edit-scorecard.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/edit-view-source.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/edit-view-source.png new file mode 100644 index 00000000000..f463f4c5fba Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/edit-view-source.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/enable-api-access.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/enable-api-access.png new file mode 100644 index 00000000000..26a23883a9e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/enable-api-access.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/execute-workflows-1.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/execute-workflows-1.png new file mode 100644 index 00000000000..a732dd72767 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/execute-workflows-1.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/execute-workflows-2.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/execute-workflows-2.png new file mode 100644 index 00000000000..a11d1e3d995 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/execute-workflows-2.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/execution-cr.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/execution-cr.png new file mode 100644 index 00000000000..1e02d17f35b Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/execution-cr.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/fill-template-fields.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/fill-template-fields.png new file mode 100644 index 00000000000..2d3d9f5d631 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/fill-template-fields.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/fill-template.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/fill-template.png new file mode 100644 index 00000000000..42dae44ab50 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/fill-template.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/final-plugin-page.gif b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/final-plugin-page.gif new file mode 100644 index 00000000000..d9b687ecc8b Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/final-plugin-page.gif differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/finished-state.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/finished-state.png new file mode 100644 index 00000000000..2d7e6150188 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/finished-state.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/first-step.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/first-step.png new file mode 100644 index 00000000000..0c749e9bce6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/first-step.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/flows.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/flows.png new file mode 100644 index 00000000000..be6fd7d2b10 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/flows.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/get-started-admin.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/get-started-admin.png new file mode 100644 index 00000000000..da03bfe668b Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/get-started-admin.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/get-started-flow.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/get-started-flow.png new file mode 100644 index 00000000000..d49145d2af7 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/get-started-flow.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/git-component.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/git-component.png new file mode 100644 index 00000000000..29e7f71be84 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/git-component.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/git-workflow.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/git-workflow.png new file mode 100644 index 00000000000..f68465271e0 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/git-workflow.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/go-to-scorecards.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/go-to-scorecards.png new file mode 100644 index 00000000000..69c1b01ae22 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/go-to-scorecards.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/idp-roles.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/idp-roles.png new file mode 100644 index 00000000000..c3359da4f50 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/idp-roles.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/imported-entity.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/imported-entity.png new file mode 100644 index 00000000000..f5ffabb6cef Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/imported-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/ind-sel.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/ind-sel.png new file mode 100644 index 00000000000..3dfd197e83f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/ind-sel.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/infra-harness-cloud.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/infra-harness-cloud.png new file mode 100644 index 00000000000..bc7305b2c86 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/infra-harness-cloud.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/intro-system.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/intro-system.png new file mode 100644 index 00000000000..24b00c1e5a5 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/intro-system.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/invalid-schema.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/invalid-schema.png new file mode 100644 index 00000000000..8c0d0e00e57 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/invalid-schema.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/jira-custom-check.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/jira-custom-check.png new file mode 100644 index 00000000000..56b41094cfd Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/jira-custom-check.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/layout-page.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/layout-page.png new file mode 100644 index 00000000000..dbf423c8115 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/layout-page.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/layout-snippet.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/layout-snippet.png new file mode 100644 index 00000000000..e93b421641e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/layout-snippet.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/link-card.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/link-card.png new file mode 100644 index 00000000000..153002d1470 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/link-card.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/name-pipeline.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/name-pipeline.png new file mode 100644 index 00000000000..9321de7a826 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/name-pipeline.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/navigate-componenet-new.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/navigate-componenet-new.png new file mode 100644 index 00000000000..92abc912751 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/navigate-componenet-new.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/navigate-pipeline.gif b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/navigate-pipeline.gif new file mode 100644 index 00000000000..1fd52f48a8f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/navigate-pipeline.gif differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/navigate-variable.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/navigate-variable.png new file mode 100644 index 00000000000..a72b25449bd Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/navigate-variable.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/new-app-onboarding-with-idp-stage.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/new-app-onboarding-with-idp-stage.png new file mode 100644 index 00000000000..f06f2442436 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/new-app-onboarding-with-idp-stage.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/new-git-integration-hce-enabled.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/new-git-integration-hce-enabled.png new file mode 100644 index 00000000000..be26966a1e0 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/new-git-integration-hce-enabled.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/new-nav.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/new-nav.png new file mode 100644 index 00000000000..98439db1a00 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/new-nav.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/old-nav-copy.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/old-nav-copy.png new file mode 100644 index 00000000000..82b4d180ae9 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/old-nav-copy.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/old-nav.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/old-nav.png new file mode 100644 index 00000000000..82b4d180ae9 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/old-nav.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/onboarding-completed.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/onboarding-completed.png new file mode 100644 index 00000000000..10d667cea5c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/onboarding-completed.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/openapi-json.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/openapi-json.png new file mode 100644 index 00000000000..a49048f4db6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/openapi-json.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/option1.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/option1.png new file mode 100644 index 00000000000..b7cd7666892 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/option1.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/option2.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/option2.png new file mode 100644 index 00000000000..a04e3435b00 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/option2.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/pipelines-screenshot.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/pipelines-screenshot.png new file mode 100644 index 00000000000..1d858f6f291 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/pipelines-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/plugins-dashboard.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/plugins-dashboard.png new file mode 100644 index 00000000000..84d14013f4d Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/plugins-dashboard.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/plugins-entity.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/plugins-entity.png new file mode 100644 index 00000000000..b6153fc204f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/plugins-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/plugins-screenshot.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/plugins-screenshot.png new file mode 100644 index 00000000000..75d274d3c54 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/plugins-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/preview-catalog.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/preview-catalog.png new file mode 100644 index 00000000000..56c5004a1ff Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/preview-catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/readiness-applied-0.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/readiness-applied-0.png new file mode 100644 index 00000000000..fc7b83ead65 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/readiness-applied-0.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/refresh-button.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/refresh-button.png new file mode 100644 index 00000000000..454b50bf432 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/refresh-button.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/refresh-component.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/refresh-component.png new file mode 100644 index 00000000000..df8f0bf4633 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/refresh-component.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/register-software-component-hcr.gif b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/register-software-component-hcr.gif new file mode 100644 index 00000000000..e4f15444927 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/register-software-component-hcr.gif differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/register-url.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/register-url.png new file mode 100644 index 00000000000..054f7baa9ab Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/register-url.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/replace-vanity-url-register.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/replace-vanity-url-register.png new file mode 100644 index 00000000000..40b42ccfce6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/replace-vanity-url-register.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/replace-vanity-url.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/replace-vanity-url.png new file mode 100644 index 00000000000..4af8bf86ff4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/replace-vanity-url.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/repo-path-code-repo.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/repo-path-code-repo.png new file mode 100644 index 00000000000..c57e827f634 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/repo-path-code-repo.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/role-explain.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/role-explain.png new file mode 100644 index 00000000000..e458490c87f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/role-explain.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/run-flows.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/run-flows.png new file mode 100644 index 00000000000..233fe1803d1 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/run-flows.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/sample-flow.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/sample-flow.png new file mode 100644 index 00000000000..c7aad4c9be6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/sample-flow.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scope-entity.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scope-entity.png new file mode 100644 index 00000000000..258bcca0700 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scope-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards-aggregate.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards-aggregate.png new file mode 100644 index 00000000000..2634e72b2e4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards-aggregate.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards-checks.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards-checks.png new file mode 100644 index 00000000000..398bfd9f8a2 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards-checks.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards-dashboard.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards-dashboard.png new file mode 100644 index 00000000000..767d3ba29b4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards-dashboard.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards-details.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards-details.png new file mode 100644 index 00000000000..52fc7d6bde6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards-details.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards.png new file mode 100644 index 00000000000..dcb3bf66e1a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/scorecards.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/search-screenshot.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/search-screenshot.png new file mode 100644 index 00000000000..91962e21db9 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/search-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-all.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-all.png new file mode 100644 index 00000000000..87c8d4e5b0c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-all.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-git-provider.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-git-provider.png new file mode 100644 index 00000000000..e50daa387ee Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-git-provider.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-harness-services.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-harness-services.png new file mode 100644 index 00000000000..d1e5748df53 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-harness-services.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-individual.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-individual.png new file mode 100644 index 00000000000..c7c33429246 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-individual.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-onboarding-path.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-onboarding-path.png new file mode 100644 index 00000000000..df2d4fa6126 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-onboarding-path.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-path.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-path.png new file mode 100644 index 00000000000..828e874b0e8 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-path.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-stage-idp.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-stage-idp.png new file mode 100644 index 00000000000..5897429b66d Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/select-stage-idp.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/set-up-connector.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/set-up-connector.png new file mode 100644 index 00000000000..da79d7d2338 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/set-up-connector.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/software-catalog.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/software-catalog.png new file mode 100644 index 00000000000..96ffaf0e7ba Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/software-catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/source-code-link-ui.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/source-code-link-ui.png new file mode 100644 index 00000000000..0d99550f61a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/source-code-link-ui.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/spotify-api.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/spotify-api.png new file mode 100644 index 00000000000..5eb58fe79f7 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/spotify-api.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/success-daily-utility.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/success-daily-utility.png new file mode 100644 index 00000000000..32d534eef41 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/success-daily-utility.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/success.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/success.png new file mode 100644 index 00000000000..6e3e0c5bddb Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/success.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/swagger-api.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/swagger-api.png new file mode 100644 index 00000000000..f5890aa5d66 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/swagger-api.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/techdocs-ref.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/techdocs-ref.png new file mode 100644 index 00000000000..9dbe0933b21 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/techdocs-ref.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/template-name.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/template-name.png new file mode 100644 index 00000000000..71fd76b1132 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/template-name.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/the-adoption-flywheel.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/the-adoption-flywheel.png new file mode 100644 index 00000000000..83914ec0920 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/the-adoption-flywheel.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/the-adoption-timeline.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/the-adoption-timeline.png new file mode 100644 index 00000000000..17d3c284398 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/the-adoption-timeline.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/unregister-entity.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/unregister-entity.png new file mode 100644 index 00000000000..e42092148f7 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/unregister-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/url-allow-list.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/url-allow-list.png new file mode 100644 index 00000000000..3eb3541f680 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/url-allow-list.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/url-on-register-page.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/url-on-register-page.png new file mode 100644 index 00000000000..5abc23c0bb2 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/url-on-register-page.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/user-group.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/user-group.png new file mode 100644 index 00000000000..2c46caf0007 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/user-group.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/validate-permission.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/validate-permission.png new file mode 100644 index 00000000000..630af6b5133 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/validate-permission.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/visibility-first-vs-automation.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/visibility-first-vs-automation.png new file mode 100644 index 00000000000..752a98f1710 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/visibility-first-vs-automation.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflow-1.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflow-1.png new file mode 100644 index 00000000000..2a9b20c21a4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflow-1.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflow-scope.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflow-scope.png new file mode 100644 index 00000000000..2c05b78cd56 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflow-scope.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflow-yaml-conversion.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflow-yaml-conversion.png new file mode 100644 index 00000000000..a167d8e1b0d Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflow-yaml-conversion.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflow-yaml.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflow-yaml.png new file mode 100644 index 00000000000..2a0ee794b38 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflow-yaml.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflowquickstart.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflowquickstart.png new file mode 100644 index 00000000000..7f17135ebae Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflowquickstart.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflows-dashboard.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflows-dashboard.png new file mode 100644 index 00000000000..8363ae29783 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflows-dashboard.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflowsv2.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflowsv2.png new file mode 100644 index 00000000000..71dda5552f5 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/workflowsv2.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/write-catalog.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/write-catalog.png new file mode 100644 index 00000000000..fa4acc9069e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/write-catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-conversion.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-conversion.png new file mode 100644 index 00000000000..22ab10b7488 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-conversion.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-validation.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-validation.png new file mode 100644 index 00000000000..8ac660ecb7c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-validation.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-view-workflows.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-view-workflows.png new file mode 100644 index 00000000000..6f6a445073a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-view-workflows.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-view.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-view.png new file mode 100644 index 00000000000..a3675f67408 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-view.png differ diff --git a/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-way.png b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-way.png new file mode 100644 index 00000000000..4df1313438e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/setup-git-integration/static/yaml-way.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/add-variable.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/add-variable.png new file mode 100644 index 00000000000..e0ed3595eb6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/add-variable.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/admin.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/admin.png new file mode 100644 index 00000000000..24756a2553c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/admin.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/all-sel.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/all-sel.png new file mode 100644 index 00000000000..83eeb7fe97a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/all-sel.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/api-access.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/api-access.png new file mode 100644 index 00000000000..459865cbcb9 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/api-access.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/assign-role.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/assign-role.png new file mode 100644 index 00000000000..3a80894fa72 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/assign-role.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/att-3-for-21398290667.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/att-3-for-21398290667.png new file mode 100644 index 00000000000..47c6f50e815 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/att-3-for-21398290667.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/att-4-for-21398290667.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/att-4-for-21398290667.png new file mode 100644 index 00000000000..538c68174bb Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/att-4-for-21398290667.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/att-5-for-21398290667.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/att-5-for-21398290667.png new file mode 100644 index 00000000000..3b6b55d66fb Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/att-5-for-21398290667.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/bitbucket-connector.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/bitbucket-connector.png new file mode 100644 index 00000000000..ca5c26a6e70 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/bitbucket-connector.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-dashboard.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-dashboard.png new file mode 100644 index 00000000000..491611663df Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-dashboard.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-navigation.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-navigation.png new file mode 100644 index 00000000000..4d5257bb256 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-navigation.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-readiness-0.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-readiness-0.png new file mode 100644 index 00000000000..53a4f1a214d Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-readiness-0.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-readiness-applied.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-readiness-applied.png new file mode 100644 index 00000000000..fd86e0a4c50 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-readiness-applied.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-readiness.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-readiness.png new file mode 100644 index 00000000000..70054a1a094 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-readiness.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-screenshot-copy.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-screenshot-copy.png new file mode 100644 index 00000000000..37e407de81f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-screenshot-copy.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-screenshot.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-screenshot.png new file mode 100644 index 00000000000..bb69c7a2b97 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog.png new file mode 100644 index 00000000000..fc09e33170e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/conclusion-system.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/conclusion-system.png new file mode 100644 index 00000000000..662c338960c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/conclusion-system.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/connection-successful.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/connection-successful.png new file mode 100644 index 00000000000..f6117b87fdc Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/connection-successful.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/connector-final-setup.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/connector-final-setup.png new file mode 100644 index 00000000000..fcc2e1ebb47 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/connector-final-setup.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/connector.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/connector.png new file mode 100644 index 00000000000..ee3725da3a5 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/connector.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/copy-repo-path.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/copy-repo-path.png new file mode 100644 index 00000000000..58523255790 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/copy-repo-path.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-entity-1.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-entity-1.png new file mode 100644 index 00000000000..1db4d47884f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-entity-1.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-entity-2.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-entity-2.png new file mode 100644 index 00000000000..cb0ebaf2d91 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-entity-2.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-page-sidebar.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-page-sidebar.png new file mode 100644 index 00000000000..36f7fc4a793 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-page-sidebar.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-page.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-page.png new file mode 100644 index 00000000000..9d1378bda98 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-page.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-repo-run.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-repo-run.png new file mode 100644 index 00000000000..93d0607fb17 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-repo-run.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-repo.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-repo.png new file mode 100644 index 00000000000..829c867dc43 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/create-repo.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/custom-check-jira.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/custom-check-jira.png new file mode 100644 index 00000000000..15fc46be275 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/custom-check-jira.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/default-check-catalog-readiness.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/default-check-catalog-readiness.png new file mode 100644 index 00000000000..493f9c0b067 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/default-check-catalog-readiness.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/delete-entity.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/delete-entity.png new file mode 100644 index 00000000000..633d6856ee7 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/delete-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/delete-workflow.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/delete-workflow.png new file mode 100644 index 00000000000..43d2fb192dd Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/delete-workflow.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/devtools.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/devtools.png new file mode 100644 index 00000000000..eae400420c1 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/devtools.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/docs-empty.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/docs-empty.png new file mode 100644 index 00000000000..40778f53fc4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/docs-empty.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/docs-rendered.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/docs-rendered.png new file mode 100644 index 00000000000..eceba894078 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/docs-rendered.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/docs-screenshot.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/docs-screenshot.png new file mode 100644 index 00000000000..c9544f82c1a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/docs-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/edit-button-catalog.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/edit-button-catalog.png new file mode 100644 index 00000000000..b6cb5e91dc5 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/edit-button-catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/edit-icon.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/edit-icon.png new file mode 100644 index 00000000000..fe1360aa4ae Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/edit-icon.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/edit-scorecard.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/edit-scorecard.png new file mode 100644 index 00000000000..57bd23922b1 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/edit-scorecard.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/edit-view-source.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/edit-view-source.png new file mode 100644 index 00000000000..f463f4c5fba Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/edit-view-source.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/enable-api-access.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/enable-api-access.png new file mode 100644 index 00000000000..26a23883a9e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/enable-api-access.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/execute-workflows-1.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/execute-workflows-1.png new file mode 100644 index 00000000000..a732dd72767 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/execute-workflows-1.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/execute-workflows-2.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/execute-workflows-2.png new file mode 100644 index 00000000000..a11d1e3d995 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/execute-workflows-2.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/execution-cr.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/execution-cr.png new file mode 100644 index 00000000000..1e02d17f35b Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/execution-cr.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/fill-template-fields.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/fill-template-fields.png new file mode 100644 index 00000000000..2d3d9f5d631 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/fill-template-fields.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/fill-template.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/fill-template.png new file mode 100644 index 00000000000..42dae44ab50 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/fill-template.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/final-plugin-page.gif b/docs/internal-developer-portal/get-started/content/workflows-2o/static/final-plugin-page.gif new file mode 100644 index 00000000000..d9b687ecc8b Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/final-plugin-page.gif differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/finished-state.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/finished-state.png new file mode 100644 index 00000000000..2d7e6150188 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/finished-state.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/first-step.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/first-step.png new file mode 100644 index 00000000000..0c749e9bce6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/first-step.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/flows.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/flows.png new file mode 100644 index 00000000000..be6fd7d2b10 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/flows.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/get-started-admin.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/get-started-admin.png new file mode 100644 index 00000000000..da03bfe668b Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/get-started-admin.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/get-started-flow.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/get-started-flow.png new file mode 100644 index 00000000000..d49145d2af7 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/get-started-flow.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/git-component.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/git-component.png new file mode 100644 index 00000000000..29e7f71be84 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/git-component.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/git-workflow.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/git-workflow.png new file mode 100644 index 00000000000..f68465271e0 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/git-workflow.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/go-to-scorecards.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/go-to-scorecards.png new file mode 100644 index 00000000000..69c1b01ae22 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/go-to-scorecards.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/idp-roles.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/idp-roles.png new file mode 100644 index 00000000000..c3359da4f50 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/idp-roles.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/imported-entity.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/imported-entity.png new file mode 100644 index 00000000000..f5ffabb6cef Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/imported-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/ind-sel.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/ind-sel.png new file mode 100644 index 00000000000..3dfd197e83f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/ind-sel.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/infra-harness-cloud.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/infra-harness-cloud.png new file mode 100644 index 00000000000..bc7305b2c86 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/infra-harness-cloud.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/intro-system.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/intro-system.png new file mode 100644 index 00000000000..24b00c1e5a5 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/intro-system.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/invalid-schema.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/invalid-schema.png new file mode 100644 index 00000000000..8c0d0e00e57 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/invalid-schema.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/jira-custom-check.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/jira-custom-check.png new file mode 100644 index 00000000000..56b41094cfd Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/jira-custom-check.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/launch-template.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/launch-template.png new file mode 100644 index 00000000000..f2e9e0fb427 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/launch-template.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/layout-page.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/layout-page.png new file mode 100644 index 00000000000..dbf423c8115 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/layout-page.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/layout-snippet.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/layout-snippet.png new file mode 100644 index 00000000000..e93b421641e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/layout-snippet.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/link-card.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/link-card.png new file mode 100644 index 00000000000..153002d1470 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/link-card.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/name-pipeline.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/name-pipeline.png new file mode 100644 index 00000000000..9321de7a826 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/name-pipeline.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/navigate-componenet-new.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/navigate-componenet-new.png new file mode 100644 index 00000000000..92abc912751 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/navigate-componenet-new.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/navigate-pipeline.gif b/docs/internal-developer-portal/get-started/content/workflows-2o/static/navigate-pipeline.gif new file mode 100644 index 00000000000..1fd52f48a8f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/navigate-pipeline.gif differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/navigate-variable.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/navigate-variable.png new file mode 100644 index 00000000000..a72b25449bd Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/navigate-variable.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/new-app-onboarding-with-idp-stage.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/new-app-onboarding-with-idp-stage.png new file mode 100644 index 00000000000..f06f2442436 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/new-app-onboarding-with-idp-stage.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/new-git-integration-hce-enabled.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/new-git-integration-hce-enabled.png new file mode 100644 index 00000000000..be26966a1e0 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/new-git-integration-hce-enabled.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/new-nav.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/new-nav.png new file mode 100644 index 00000000000..98439db1a00 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/new-nav.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/old-nav-copy.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/old-nav-copy.png new file mode 100644 index 00000000000..82b4d180ae9 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/old-nav-copy.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/old-nav.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/old-nav.png new file mode 100644 index 00000000000..82b4d180ae9 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/old-nav.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/onboarding-completed.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/onboarding-completed.png new file mode 100644 index 00000000000..10d667cea5c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/onboarding-completed.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/openapi-json.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/openapi-json.png new file mode 100644 index 00000000000..a49048f4db6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/openapi-json.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/option1.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/option1.png new file mode 100644 index 00000000000..b7cd7666892 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/option1.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/option2.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/option2.png new file mode 100644 index 00000000000..a04e3435b00 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/option2.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/pipelines-screenshot.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/pipelines-screenshot.png new file mode 100644 index 00000000000..1d858f6f291 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/pipelines-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/plugins-dashboard.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/plugins-dashboard.png new file mode 100644 index 00000000000..84d14013f4d Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/plugins-dashboard.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/plugins-entity.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/plugins-entity.png new file mode 100644 index 00000000000..b6153fc204f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/plugins-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/plugins-screenshot.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/plugins-screenshot.png new file mode 100644 index 00000000000..75d274d3c54 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/plugins-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/preview-catalog.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/preview-catalog.png new file mode 100644 index 00000000000..56c5004a1ff Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/preview-catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/readiness-applied-0.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/readiness-applied-0.png new file mode 100644 index 00000000000..fc7b83ead65 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/readiness-applied-0.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/refresh-button.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/refresh-button.png new file mode 100644 index 00000000000..454b50bf432 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/refresh-button.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/refresh-component.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/refresh-component.png new file mode 100644 index 00000000000..df8f0bf4633 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/refresh-component.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/register-software-component-hcr.gif b/docs/internal-developer-portal/get-started/content/workflows-2o/static/register-software-component-hcr.gif new file mode 100644 index 00000000000..e4f15444927 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/register-software-component-hcr.gif differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/register-url.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/register-url.png new file mode 100644 index 00000000000..054f7baa9ab Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/register-url.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/replace-vanity-url-register.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/replace-vanity-url-register.png new file mode 100644 index 00000000000..40b42ccfce6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/replace-vanity-url-register.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/replace-vanity-url.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/replace-vanity-url.png new file mode 100644 index 00000000000..4af8bf86ff4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/replace-vanity-url.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/repo-path-code-repo.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/repo-path-code-repo.png new file mode 100644 index 00000000000..c57e827f634 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/repo-path-code-repo.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/role-explain.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/role-explain.png new file mode 100644 index 00000000000..e458490c87f Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/role-explain.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/run-flows.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/run-flows.png new file mode 100644 index 00000000000..233fe1803d1 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/run-flows.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/sample-flow.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/sample-flow.png new file mode 100644 index 00000000000..c7aad4c9be6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/sample-flow.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/scope-entity.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/scope-entity.png new file mode 100644 index 00000000000..258bcca0700 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/scope-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards-aggregate.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards-aggregate.png new file mode 100644 index 00000000000..2634e72b2e4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards-aggregate.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards-checks.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards-checks.png new file mode 100644 index 00000000000..398bfd9f8a2 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards-checks.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards-dashboard.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards-dashboard.png new file mode 100644 index 00000000000..767d3ba29b4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards-dashboard.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards-details.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards-details.png new file mode 100644 index 00000000000..52fc7d6bde6 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards-details.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards.png new file mode 100644 index 00000000000..dcb3bf66e1a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/scorecards.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/search-screenshot.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/search-screenshot.png new file mode 100644 index 00000000000..91962e21db9 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/search-screenshot.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-all.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-all.png new file mode 100644 index 00000000000..87c8d4e5b0c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-all.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-git-provider.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-git-provider.png new file mode 100644 index 00000000000..e50daa387ee Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-git-provider.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-harness-services.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-harness-services.png new file mode 100644 index 00000000000..d1e5748df53 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-harness-services.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-individual.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-individual.png new file mode 100644 index 00000000000..c7c33429246 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-individual.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-onboarding-path.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-onboarding-path.png new file mode 100644 index 00000000000..df2d4fa6126 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-onboarding-path.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-path.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-path.png new file mode 100644 index 00000000000..828e874b0e8 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-path.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-stage-idp.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-stage-idp.png new file mode 100644 index 00000000000..5897429b66d Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/select-stage-idp.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/set-up-connector.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/set-up-connector.png new file mode 100644 index 00000000000..da79d7d2338 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/set-up-connector.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/software-catalog.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/software-catalog.png new file mode 100644 index 00000000000..96ffaf0e7ba Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/software-catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/source-code-link-ui.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/source-code-link-ui.png new file mode 100644 index 00000000000..0d99550f61a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/source-code-link-ui.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/spotify-api.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/spotify-api.png new file mode 100644 index 00000000000..5eb58fe79f7 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/spotify-api.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/success-daily-utility.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/success-daily-utility.png new file mode 100644 index 00000000000..32d534eef41 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/success-daily-utility.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/success.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/success.png new file mode 100644 index 00000000000..6e3e0c5bddb Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/success.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/swagger-api.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/swagger-api.png new file mode 100644 index 00000000000..f5890aa5d66 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/swagger-api.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/techdocs-ref.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/techdocs-ref.png new file mode 100644 index 00000000000..9dbe0933b21 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/techdocs-ref.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/template-name.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/template-name.png new file mode 100644 index 00000000000..71fd76b1132 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/template-name.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/the-adoption-flywheel.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/the-adoption-flywheel.png new file mode 100644 index 00000000000..83914ec0920 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/the-adoption-flywheel.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/the-adoption-timeline.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/the-adoption-timeline.png new file mode 100644 index 00000000000..17d3c284398 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/the-adoption-timeline.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/unregister-entity.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/unregister-entity.png new file mode 100644 index 00000000000..e42092148f7 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/unregister-entity.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/url-allow-list.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/url-allow-list.png new file mode 100644 index 00000000000..3eb3541f680 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/url-allow-list.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/url-on-register-page.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/url-on-register-page.png new file mode 100644 index 00000000000..5abc23c0bb2 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/url-on-register-page.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/user-group.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/user-group.png new file mode 100644 index 00000000000..2c46caf0007 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/user-group.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/validate-permission.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/validate-permission.png new file mode 100644 index 00000000000..630af6b5133 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/validate-permission.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/visibility-first-vs-automation.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/visibility-first-vs-automation.png new file mode 100644 index 00000000000..752a98f1710 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/visibility-first-vs-automation.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflow-1.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflow-1.png new file mode 100644 index 00000000000..2a9b20c21a4 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflow-1.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflow-scope.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflow-scope.png new file mode 100644 index 00000000000..2c05b78cd56 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflow-scope.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflow-yaml-conversion.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflow-yaml-conversion.png new file mode 100644 index 00000000000..a167d8e1b0d Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflow-yaml-conversion.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflow-yaml.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflow-yaml.png new file mode 100644 index 00000000000..2a0ee794b38 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflow-yaml.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflowquickstart.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflowquickstart.png new file mode 100644 index 00000000000..7f17135ebae Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflowquickstart.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflows-dashboard.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflows-dashboard.png new file mode 100644 index 00000000000..8363ae29783 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflows-dashboard.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflowsv2.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflowsv2.png new file mode 100644 index 00000000000..71dda5552f5 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/workflowsv2.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/write-catalog.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/write-catalog.png new file mode 100644 index 00000000000..fa4acc9069e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/write-catalog.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-conversion.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-conversion.png new file mode 100644 index 00000000000..22ab10b7488 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-conversion.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-validation.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-validation.png new file mode 100644 index 00000000000..8ac660ecb7c Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-validation.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-view-workflows.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-view-workflows.png new file mode 100644 index 00000000000..6f6a445073a Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-view-workflows.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-view.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-view.png new file mode 100644 index 00000000000..a3675f67408 Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-view.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-way.png b/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-way.png new file mode 100644 index 00000000000..4df1313438e Binary files /dev/null and b/docs/internal-developer-portal/get-started/content/workflows-2o/static/yaml-way.png differ diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/workflows-2o-idp-1.md b/docs/internal-developer-portal/get-started/content/workflows-2o/workflows-2o-idp-1.md new file mode 100644 index 00000000000..c4d9cdce9f6 --- /dev/null +++ b/docs/internal-developer-portal/get-started/content/workflows-2o/workflows-2o-idp-1.md @@ -0,0 +1,212 @@ +**Service and Infrastructure onboarding** in today's world is slow, manual and tedious. Developers often spend days—or even weeks—setting up new software and completing Day-2 operations. This inefficiency arises from either waiting for ticket resolutions (TicketOps) or manually handling repetitive tasks, which results in a poor developer experience and decreased productivity. + +Harness IDP addresses these challenges with **Self-Service Workflows**. + +Workflows enable developer self-service by automating manual tasks and processes. Using Workflows, platform engineering teams can: +- Automate new service onboarding. +- Simplify Day 2 operations for developers. +- Provide developers with **golden paths** to production that include guardrails and best practices. + +This quickstart tutorial will guide you through setting up a Workflow in IDP to automate GitHub repository onboarding for users. While this tutorial uses GitHub as the git provider, the same steps can be applied to other git providers as well. + +:::info +This tutorial is designed for **IDP 1.0**. If you're using **IDP 2.0**, please refer to the IDP 2.0 documentation for updated workflows and processes. +::: + +## Prerequisites (IDP 1.0) + +Before you begin, ensure you have the following: + +1. **GitHub Account**: You need a GitHub account and organization where repositories will be created. +2. **Harness Account**: Access to Harness with IDP enabled. +3. **GitHub Personal Access Token**: A token with repository creation permissions. +4. **Basic understanding** of Harness Pipelines and IDP concepts. + +## Tutorial: Create a GitHub Repository Workflow + +### Step 1: Add Connector + +1. In your **Harness Account** go to **Connectors** under **Project Setup**. + +2. **Create a Connector** for your **GitHub Account** where you want to create the new repository. + +3. Now Create a **Personal Access Token** for your **GitHub Account** by following the steps mentioned in the [Documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic) and use it to authenticate the connector. + +### Step 2: Create Variables + +1. Now once the connector is tested successfully, navigate to **Pipeline** and start with **Create a Pipeline**. + +![](./static/navigate-pipeline.gif) + +2. Now start with **Create a Pipeline**. + +![](./static/navigate-pipeline.gif) + +3. Add a **Name**, select the type as **Inline** and **Continue**. + +![](static/name-pipeline.png) + +4. **Add Stage** and **Select Stage Type** as **Developer Portal**. + +![](static/select-stage-idp.png) + +5. Select the infrastructure as **Harness Cloud**. + +![](static/infra-harness-cloud.png) + +6. Now under **Execution** add the **Create Repo** step. + +7. Add a **Name** and **Timeout** for the step. + +8. Select **GitHub** as **Git Provider**. + +9. Add the **Connector** you created [above](#add-connector). + +10. Now under **Organization** and **Repository Name** add the variables you created as **Expressions** (`<+pipeline.variables.github_org>` and `<+pipeline.variables.github_repo>`). + +11. Add a **Repository Description**, **Apply Changes**. + +![](static/create-repo.png) + +12. **Save** the pipeline. + +13. Now create **Pipeline Variables** by navigating to the right side nav **Variables**. + +![](static/navigate-variable.png) + +14. Now **Add Variable** for both `github_org` and `github_repo` and set them as **Runtime Inputs**. + +![](static/add-variable.png) + +15. **Save** the Pipeline and copy the **Pipeline URL**. + +### Step 3: Create the Workflow YAML + +The following is the example Workflow with [Workflows Action](https://developer.harness.io/docs/internal-developer-portal/flows/custom-actions#1-triggerharness-custom-pipeline) to create a new repository. + +```YAML +apiVersion: scaffolder.backstage.io/v1beta3 +kind: Template +# some metadata about the template itself +metadata: + name: Workflows-Quickstart + title: Create a New GitHub Repository + description: Creates a new GitHub Repository +spec: + owner: service.owner + type: service + # these are the steps which are rendered in the frontend with the form input + parameters: + - title: Fill in the repo details + required: + - github_org_name + - github_repo_name + - github_username + properties: + github_org_name: + title: GitHub Organization + type: string + description: Name the org where you want to add the new repository + github_repo_name: + title: Repository Location + type: string + description: Name the new repository that you want to create + github_username: + title: GitHub Username + type: string + description: Add Your GitHub Username + token: + title: Harness Token + type: string + ui:widget: password + ui:field: HarnessAuthToken + # here's the steps that are executed in series in the scaffolder backend + steps: + - id: trigger + name: Onboarding a New GitHub Repository + action: trigger:harness-custom-pipeline + input: + url: "URL_of_the_Harness_Pipeline_Created_Above" + inputset: + github_org: ${{ parameters.github_org_name }} + github_repo: ${{ parameters.github_repo_name }} + github_username: ${{parameters.github_username}} + apikey: ${{ parameters.token }} + # The final step is to register our new component in the catalog. + + output: + links: + - title: Pipeline Details + url: ${{ steps.trigger.output.PipelineUrl }} + +``` + +In the above Workflow we have used the [Harness Trigger Workflow Action](https://developer.harness.io/docs/internal-developer-portal/flows/custom-actions#1-triggerharness-custom-pipeline), which takes the **exact variable name** `github_org` and `github_repo` you created for your pipeline as input and a **token** as `apikey` + +:::warning +The **token** property used to fetch the **Harness Auth Token** is hidden on the Review Step using ``ui:widget: password``. However, for this to function correctly in a **multi-page workflow**, the token property must be included under the **first page**. + +```YAML {12} +parameters: + - title: + properties: + property-1: + title: title-1 + type: string + property-2: + title: title-2 + token: + title: Harness Token + type: string + ui:widget: password + ui:field: HarnessAuthToken + - title: + properties: + property-1: + title: title-1 + type: string + property-2: + title: title-2 + - title: +``` +::: + +11. Copy the above Workflow file in your git provider, replace the value of `input.url` under `steps` with the Harness pipeline URL you created and save it as `workflow.yaml`. + +## Register Workflow in IDP (IDP 1.0) + +12. In the left navigation, select **Workflows**, and then select **Register New Workflow**. + +![](static/create-page-sidebar.png) +![](static/create-page.png) + +13. Enter the URL to your new `workflow.yaml`. +![](static/url-on-register-page.png) + +14. Select **Import**. + +![](static/finished-state.png) + +15. Now click on the Workflow name + +![](static/workflowquickstart.png) + +## Use Workflows to Create a Repo (IDP 1.0) + +16. Once you're on the entity page for Workflow, **Launch the Workflow**. + +![](static/launch-template.png) + +17. Now fill the fields as: + - Repository Location: Add a name for the repository you wanted to create. + - GitHub Organization: Add the org where you want to add your new repository, usually GitHub URL are of the format `https://github.com/org_name/repo_name/` + +![](static/fill-template-fields.png) + +18. Now Trigger the flow, it will create a new GitHub repo. + +![](static/create-repo-run.png) + +## Delete the Workflow (IDP 1.0) + +If you want to unregister or delete the Workflow follow the steps mentioned [here](https://developer.harness.io/docs/internal-developer-portal/flows/service-onboarding-pipelines#deleteunregister-template). diff --git a/docs/internal-developer-portal/get-started/content/workflows-2o/workflows-2o-idp-2.md b/docs/internal-developer-portal/get-started/content/workflows-2o/workflows-2o-idp-2.md new file mode 100644 index 00000000000..dcad1586f9a --- /dev/null +++ b/docs/internal-developer-portal/get-started/content/workflows-2o/workflows-2o-idp-2.md @@ -0,0 +1,396 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +:::tip For IDP 2.0 Customers +If you're using Harness IDP 2.0, please ensure you have reviewed the [IDP 2.0 Overview guide](/docs/internal-developer-portal/idp-2o-overview/2-0-overview-and-upgrade-path.md) and are familiar with the key steps for [upgrading to IDP 2.0](/docs/internal-developer-portal/idp-2o-overview/migrating-idp-2o.md). To enable IDP 2.0, you must raise a support ticket to activate the `IDP_2_0` feature flag for your account. +::: + +**Service and Infrastructure onboarding** in today's world is slow, manual and tedious. Developers often spend days—or even weeks—setting up new software and completing Day-2 operations. This inefficiency arises from either waiting for ticket resolutions (TicketOps) or manually handling repetitive tasks, which results in a poor developer experience and decreased productivity. + +Harness IDP addresses these challenges with **Self-Service Workflows**. + +Workflows enable developer self-service by automating manual tasks and processes. Using Workflows, platform engineering teams can: +- Automate new service onboarding. +- Simplify Day 2 operations for developers. +- Provide developers with **golden paths** to production that include guardrails and best practices. + +This guide will take you through the journey of creating, configuring and executing a starter sample Workflow. + +--- + +## Prerequisites + +Before getting started with **Workflows** in IDP 2.0, ensure you have the following prerequisites: +* You have reviewed the **[IDP 2.0 Overview](/docs/internal-developer-portal/idp-2o-overview/2-0-overview-and-upgrade-path.md)** and **[Upgrading to IDP 2.0](/docs/internal-developer-portal/idp-2o-overview/migrating-idp-2o.md)** guide. +* **IDP 2.0** is enabled behind the `IDP_2_0` Feature Flag. Contact **[Harness Support](https://support.harness.io)** to enable it on your account. +* You should have a clear understanding of **[Managing Workflows](/docs/internal-developer-portal/flows/manage-workflow-2o.md)** and **[Workflow YAML](/docs/internal-developer-portal/flows/worflowyaml.md)** to effectively configure and use the components of a Workflow. +* It's recommended to have a **Harness Pipeline** in place, which acts as the orchestrator for Self-Service Workflows. + Learn more about **[setting up Harness IDP Pipelines here](/docs/internal-developer-portal/flows/harness-pipeline.md)**. + +--- + +## Create a Workflow + +In this guide, you'll create a **"Hello World" Workflow** that: +- **Input**: Collects developer information through a simple form +- **Process**: Triggers a **Harness Pipeline** to process the information +- **Output**: Generates a personalized welcome message + +This example showcases the fundamental workflow pattern: **Input → Process → Output** that can be applied to any automation use case. + +--- + +### Step 1: Understanding Workflow Components + +Before creating your workflow, it's important to understand the key components that make up a Self-Service Workflow. A Workflow is defined through a **YAML configuration file** that contains all the Workflow's metadata and logic. Go to [Workflow YAML](/docs/internal-developer-portal/flows/worflowyaml.md) to learn more. + +
+Example Workflow YAML + +```yaml +apiVersion: scaffolder.backstage.io/v1beta3 +kind: Template +metadata: + name: hello-world-workflow + title: Hello World Workflow + description: A simple workflow to demonstrate self-service automation + tags: + - getting-started + - demo +spec: + owner: platform-team + type: service + + # Frontend: Input form configuration + parameters: + - title: Developer Information + description: Tell us about yourself + type: object + required: + - developer_name + - team_name + properties: + developer_name: + title: Your Name + type: string + description: Enter your full name + team_name: + title: Your Team + type: string + description: Which team do you belong to? + favorite_language: + title: Favorite Programming Language + type: string + enum: + - JavaScript + - Python + - Java + - Go + - Other + default: JavaScript + token: + title: Harness Token + type: string + ui:widget: password + ui:field: HarnessAuthToken + + # Backend: Automation steps + steps: + - id: trigger + name: Trigger Welcome Pipeline + action: trigger:harness-custom-pipeline + input: + url: "YOUR_PIPELINE_URL_HERE" + inputset: + developer_name: ${{ parameters.developer_name }} + team_name: ${{ parameters.team_name }} + favorite_language: ${{ parameters.favorite_language }} + apikey: ${{ parameters.token }} + + # Outputs: User feedback and results + output: + links: + - title: View Pipeline Execution + url: ${{ steps.trigger.output.PipelineUrl }} + text: + - title: Success! + content: | + Welcome! Your workflow completed successfully. + + This demonstrates how Self-Service Workflows can: + - Collect input from developers + - Process that input automatically + - Provide immediate feedback +``` + +
+ +This YAML has **three main components** that work together to facilitate Workflow automation: + +#### **1. Workflow Frontend (Parameters)** +The **Workflow Frontend** serves as the entry point where users fill in necessary details to execute the Workflow. This component configures the **input fields** required for the Workflow. This includes form fields, validation rules, and user interface elements that collect information from users. + +**In our example**: We'll create a form to collect developer information with validation and default values. The `spec.parameters` field defines the input form structure, with each parameter representing a form page or section. + +Go to [Workflow Frontend](/docs/internal-developer-portal/flows/worflowyaml#workflow-frontend) to learn more. + + +
+Example: Workflow Frontend YAML + +```yaml +spec: + parameters: + - title: Developer Information + description: Tell us about yourself + type: object + required: + - developer_name + - team_name + properties: + developer_name: + title: Your Name + type: string + description: Enter your full name + team_name: + title: Your Team + type: string + description: Which team do you belong to? + favorite_language: + title: Favorite Programming Language + type: string + enum: + - JavaScript + - Python + - Java + - Go + - Other + default: JavaScript +``` +
+ +#### **2. Workflow Backend (Steps)** +The **Workflow Backend** is the "brain" of your Workflow - it takes user inputs from the frontend and performs the desired automation tasks. This component configures the **actions** to be triggered and the **orchestration pipelines** to be executed. This includes the core execution units that define the Workflow logic. + +**In our example**: We'll trigger a Harness Pipeline that processes the developer information and generates a welcome message. The `steps` field defines the automation actions, with each step having an `id`, `name`, `action`, and `input` configuration. + +Go to [Workflow Backend](/docs/internal-developer-portal/flows/worflowyaml#workflow-backend) to learn more. + +
+Example: Workflow Backend YAML + +```yaml +steps: + - id: trigger-pipeline + name: Trigger Welcome Pipeline + action: trigger:harness-custom-pipeline + input: + url: "YOUR_PIPELINE_URL_HERE" + inputset: + developer_name: ${{ parameters.developer_name }} + team_name: ${{ parameters.team_name }} + favorite_language: ${{ parameters.favorite_language }} + apikey: ${{ parameters.token }} +``` +
+ +#### **3. Workflow Outputs** +**Workflow Outputs** configure **output variables** to be used after backend execution. This includes links to created resources, status messages, and feedback for users. + +**In our example**: We'll display a success message and provide a link to view the pipeline execution. The `output` field defines what users see after completion, with `links` for navigation and `text` for messages. + +Go to [Workflow Outputs](/docs/internal-developer-portal/flows/worflowyaml#workflow-outputs) to learn more. + +
+Example: Workflow Outputs YAML + +```yaml +output: + links: + - title: View Pipeline Execution + url: ${{ steps.trigger.output.PipelineUrl }} + text: + - title: Success! + content: | + Welcome! Your workflow completed successfully. + + This demonstrates how Self-Service Workflows can: + - Collect input from developers + - Process that input automatically + - Provide immediate feedback +``` +
+ +#### **Workflow Metadata** +**Workflow Metadata** provides **information** about the Workflow itself, including name, description, tags, and ownership details for catalog discovery. + +**In our example**: We'll define basic metadata to make our workflow discoverable and understandable. The `metadata` section contains the workflow's identity, while the `spec` section defines ownership and type. + +Go to [Workflow YAML Structure](/docs/internal-developer-portal/flows/worflowyaml) to learn more. + +:::info +**Note:** When creating Workflows through the Harness IDP UI, this metadata can be automatically generated based on the information you provide in the creation form. +::: + +
+Example: Workflow Metadata YAML + +```yaml +apiVersion: scaffolder.backstage.io/v1beta3 +kind: Template +metadata: + name: hello-world-workflow + title: Hello World Workflow + description: A simple workflow to demonstrate self-service automation + tags: + - getting-started + - demo +spec: + owner: platform-team + type: service +``` +
+ +### Step 2: Create the supporting Harness IDP Pipeline + +Harness IDP Workflows can trigger Harness Pipelines to perform the actual automation. This is used to handle the backend orchestration of the Workflow. First, create a simple pipeline that will process your workflow inputs. + +
+Example Pipeline YAML + +```yaml +pipeline: + name: hello-world-pipeline + identifier: helloworldpipeline + projectIdentifier: + orgIdentifier: + tags: {} + stages: + - stage: + name: idp-hello-world + identifier: idphelloworld + type: IDP + spec: + execution: + steps: + - step: + type: Run + name: Hello-World + identifier: HelloWorld + spec: + connectorRef: account.harnessImage + image: node:18 + shell: Sh + command: |- + echo "Welcome to Harness IDP, <+pipeline.variables.developer_name>!" + echo "Team: <+pipeline.variables.team_name>" + echo "Favorite Language: <+pipeline.variables.favorite_language>" + echo "Workflow completed successfully!" + platform: + os: Linux + arch: Arm64 + runtime: + type: Cloud + spec: {} + tags: {} + variables: + - name: developer_name + type: String + required: true + value: <+input> + - name: team_name + type: String + required: true + value: <+input> + - name: favorite_language + type: String + required: true + value: <+input> + +``` +
+ + + + + + + + + +1. Navigate to **Pipelines** in your Harness IDP project. +2. Click **Create a Pipeline**. +3. Add a **Developer Portal Stage** with a **Run** step. This step will execute the given shell script that will generate the welcome message. + +```yaml +echo "Welcome to Harness IDP, <+pipeline.variables.developer_name>!" +echo "Team: <+pipeline.variables.team_name>" +echo "Favorite Language: <+pipeline.variables.favorite_language>" +echo "Workflow completed successfully!" +``` + +4. Configure the pipeline with these **variables**: + - `developer_name` (String, Runtime Input) + - `team_name` (String, Runtime Input) + - `favorite_language` (String, Runtime Input) + +5. **Save** the pipeline and copy its **execution URL**. This URL will be used in the Workflow YAML to trigger the pipeline. + + + + +--- + +### Step 3: Create the Workflow + +Now create the workflow that will collect user inputs and trigger your pipeline. + + + + + + + + + +1. Navigate to **IDP** and click **Create** in the sidebar. +2. Select **Workflow** from the entity types. +3. **Fill in basic details**: + - **Name**: `Hello World Workflow` + - **Description**: `A simple workflow to demonstrate self-service automation` + - **Tags**: `getting-started`, `demo` + +4. **Define the scope**: Choose Account, Org, or Project level scope access. + +5. **Review the YAML**: Switch to the YAML view and paste your Workflow YAML here. Replace `YOUR_PIPELINE_URL_HERE` with your actual pipeline URL. + +6. **Save** the Workflow and navigate to the Catalog to find your "Hello World Workflow". + + + + +--- + +### Step 4: Execute your Workflow + +Once created, execute your workflow to ensure it works correctly. + +1. **Navigate to the Catalog** and find your "Hello World Workflow". +2. **Click on the workflow** to open its details page. +3. **Click Launch** to start the workflow execution. +4. **Fill out the form** with your information: + - Enter your name + - Specify your team + - Select your favorite programming language +5. **Submit the form** and watch the pipeline execute. +6. **View the results** in the pipeline execution logs. + +--- + +## Next Steps + +Now that you've learned how to create and manage a Workflow, here's what to explore next: +1. Deep dive into the [Workflow YAML](/docs/internal-developer-portal/flows/worflowyaml.md) +2. Learn how to configure [Inputs](/docs/internal-developer-portal/flows/flows-input.md), [Actions](/docs/internal-developer-portal/flows/custom-actions.md) and [Outputs](/docs/internal-developer-portal/flows/outputs.md) in a Workflow. +3. Explore how to [setup a Harness IDP Pipeline](/docs/internal-developer-portal/flows/harness-pipeline.md). +4. Learn how to [configure RBAC](/docs/internal-developer-portal/rbac/workflow-rbac.md) for Workflows. diff --git a/docs/internal-developer-portal/get-started/enable-docs.md b/docs/internal-developer-portal/get-started/enable-docs.md deleted file mode 100644 index 060800325a5..00000000000 --- a/docs/internal-developer-portal/get-started/enable-docs.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: Enable Documentation for your Component -description: Learn how you can enable the TechDocs plugin to show your Markdown docs on the Docs tab of the catalog page. -sidebar_position: 6 -sidebar_label: Enable Documentation for your Component ---- - -## Introduction - -Now that you have [added your software components](/docs/internal-developer-portal/get-started/catalog-2o.md) to the catalog, [enabled plugins](/docs/internal-developer-portal/get-started/enable-a-new-plugin) and [created a scorecard](/docs/internal-developer-portal/get-started/scorecard-quickstart) it's time to include documentation. By default, the **Docs** tab in the catalog does not display documentation for new components. This tutorial will show you how to quickly publish Markdown documentation to the **Docs** tab. - -![](static/docs-empty.png) - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -:::info - -Docs in Harness IDP is powered by [TechDocs Backstage Plugin](https://backstage.io/docs/features/techdocs/) and which currently is using MkDocs to generate the documentation from source, so the files have to be in Markdown format with a `mkdocs.yml` file present in the path provided. - -::: - -There are two ways to add documentation for your component in Backstage TechDocs: - -1. By adding the documentation in the same directory as the software component's source code. (Docs Available in the Root of Source Folder) -2. By adding the documentation in a separate `docs` directory, distinct from the software component's source code directory. (Docs Available in Some Other Location) - - - - -### Docs Available in the Root of Source Folder \{#docs-available-in-the-root-of-source-folder} - -To add documentation: - -1. Create a `docs` directory next to where you have `catalog-info.yaml`. - -The directory tree must look something like this: - -```sh -├── catalog-info.yaml -└── docs - └── index.md -``` - -2. Inside the `docs` directory, create an `index.md` file with the following content. - -``` -# Welcome! - -This is a basic example of documentation. It is intended to showcase some of the -features that TechDocs provides out of the box. - -## Basic Markdown - -Headings: - -# h1 - -## h2 - -### h3 - -#### h4 - -##### h5 - -###### h6 - -Here is a bulleted list: - -- Item one -- Item two -- Item Three - -Check out the [Markdown Guide](https://www.markdownguide.org/) to learn more about how to -simply create documentation. - -You can also learn more about how to configure and set up this documentation in Backstage, -[read the TechDocs Overview](https://backstage.io/docs/features/techdocs/). - -## Table example - -While this documentation isn't comprehensive, in the future it should cover the following -topics outlined in this example table: - -| Topic | Description | -| ------- | ------------------------------------------------------------ | -| Topic 1 | An introductory topic to help you learn about the component. | -| Topic 2 | A more detailed topic that explains more information. | -| Topic 3 | A final topic that provides conclusions and lessons learned. | - -## Learn more about MkDocs - -TechDocs uses MkDocs as the static site generator. Visit https://www.mkdocs.org for more information about MkDocs. -``` - -3. Edit the `catalog-info.yaml` and add the TechDocs annotation. - -4. In the `metadata.annotations` field, add `backstage.io/techdocs-ref: dir:.`. - -![](static/techdocs-ref.png) - - -When you see`dir:.`, you can translate it to mean: - -- That the documentation source code lives in the same location as the `catalog-info.yaml` file. -- That, in particular, the `docs` folder is a sibling of `catalog-info.yaml` (meaning, it is in the same directory) - - - - -### Docs Available in Some Other Location \{#docs-available-in-some-other-location} - -In situations where your TechDocs source content is managed and stored in a location completely separate from your `catalog-info.yaml`, you can instead specify a URL location reference, the exact value of which will vary based on the source code hosting provider. Notice that instead of the `dir:` prefix, the `url:` prefix is used instead. Make sure the specified path contains the `mkdocs.yml` file. For example: - -- Harness Code Repository: - - Repository at account scope: `url:https://app.harness.io/ng/account/account_id/module/code/repos/repo_name` - - Repository at organization scope: `url:https://app.harness.io/ng/account/account_id/module/code/orgs/org_id/repos/repo_name` - - Repository at project scope: `url:https://app.harness.io/ng/account/account_id/module/code/orgs/org_id/projects/project_id/repos/repo_name` -- GitHub: `url:https://githubhost.com/org/repo/tree/` -- GitLab: `url:https://gitlabhost.com/org/repo/tree/` -- Bitbucket: `url:https://bitbuckethost.com/project/repo/src/` -- Azure: `url:https://azurehost.com/organization/project/_git/repository` - -Note, just as it's possible to specify a subdirectory with the `dir:` prefix, you can also provide a path to a non-root directory inside the repository which contains the `mkdocs.yml` file and `docs/` directory. - -e.g. `url:https://github.com/backstage/backstage/tree/master/plugins/techdocs-backend/examples/documented-component` - - -3. Edit the `catalog-info.yaml` and add the TechDocs annotation. - -4. In the `metadata.annotations` field, add `backstage.io/techdocs-ref: url:https://github.com/my-org/my-service/tree/master`. - -```YAML -metadata: - annotations: - backstage.io/techdocs-ref: url:https://github.com/backstage/backstage/tree/master/plugins/techdocs-backend/examples/documented-component -``` - - - - - -5. Select the refresh button on the catalog component page. - -![](static/refresh-button.png) - -6. Navigate to the **Docs** tab to review the documentation, which should become available shortly. - -![](static/docs-rendered.png) \ No newline at end of file diff --git a/docs/internal-developer-portal/get-started/enabling-module.md b/docs/internal-developer-portal/get-started/enabling-module.md deleted file mode 100644 index 968f4a9e08f..00000000000 --- a/docs/internal-developer-portal/get-started/enabling-module.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Enable the module -description: Enable the Harness Internal Developer Portal in your account. -sidebar_position: 1 -redirect_from: - - /docs/internal-developer-portal/getting-started/enabling-module ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - - -## Prerequisites -Ensure your team is ready for IDP 2.0 onboarding by reviewing the [breaking changes](/docs/internal-developer-portal/idp-2o-overview/2-0-overview-and-upgrade-path.md) list and understanding the key [essentials of upgrading to IDP 2.0](/docs/internal-developer-portal/idp-2o-overview/migrating-idp-2o.md). - - > ⚠️ Rollback is not straightforward, so it's critical to thoroughly understand the scope and impact of these changes. - - -## Enabling IDP 2.0 - -Once you’re confident about upgrading: - -* **Submit a Support Ticket**: - Raise a ticket with [Harness Support](https://support.harness.io) to enable the `IDP_2_0` feature flag on your account. - -* **Join an Upgrade Call (Early Access Customers)**: - Our team will schedule a call with you to walk through the upgrade process and enable the feature flag. - -* **Enable in a Test Environment First (Recommended)**: - If you have a **test or staging environment**, enable IDP 2.0 there first. This allows your team to safely explore the new experience before enabling it in production. - - - - -## Enabling IDP 1.0 - -Harness IDP is currently available to a limited set of customers. To get started, send an email to idp-interest@harness.io for a demo and a Harness specialist will get you going. - -Once Harness IDP is enabled in your account, an account administrator can onboard your services and configure the required plugins. - -If the module is enabled, and you are an account administrator, go to [Setting up IDP](./setup-git-integration.md). - - - diff --git a/docs/internal-developer-portal/get-started/get-started.md b/docs/internal-developer-portal/get-started/get-started.md deleted file mode 100644 index d65acb59335..00000000000 --- a/docs/internal-developer-portal/get-started/get-started.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Get started with IDP -sidebar_position: 1 -sidebar_label: Get Started with IDP ---- - -Welcome to the Internal Developer Portal (IDP)! This **Get Started with IDP** section will guide you through the key steps to get started with the IDP and make the most of its capabilities. - -:::tip For IDP 2.0 Customers -If you're using Harness IDP 2.0, please ensure you have reviewed the [IDP 2.0 Overview guide](/docs/internal-developer-portal/idp-2o-overview/2-0-overview-and-upgrade-path.md) and are familiar with the key steps for [upgrading to IDP 2.0](/docs/internal-developer-portal/idp-2o-overview/migrating-idp-2o.md). To enable IDP 2.0, you must raise a support ticket to activate the `IDP_2_0` feature flag for your account. -::: - - - -#### 1. [Enable the Module](./enabling-module) -The first step to getting started with the IDP is enabling the module in your Harness Account. Currently, this module is enabled on request. - -#### 2. [Configure IDP](./setup-git-integration) -Once the module is enabled, the next step is to configure the IDP. This includes setting up Git integrations by the platform admins. - -#### 3. [Get Started with Catalog](./catalog-2o.md) -The IDP's catalog serves as a centralized repository for all your software components. Learn how to add a new component to the catalog, ensuring that it is properly discoverable, and managed within the portal. - -#### 4. [Enable a Plugin](./enable-a-new-plugin) -Enhance the functionality of the catalog by enabling plugins. These plugins provide additional features and integrations with third party tools like PagerDuty etc. Learn how to configure plugins. - -#### 5. [Get Started with Scorecards](./scorecard-quickstart) -Now that software components are registered and plugins are enabled. Learn how to set up and use scorecards to ensure your organization's standards are tracked and maintained. - -#### 6. [Enable Documentation for Your Component](./enable-docs) -Learn how to enable and manage documentation for your components directly within the IDP. - -#### 7. [Get Started with Workflows](./workflows-2o.md) -Workflows can be used to automate and manage processes within your organization. Learn how to create, configure, and execute workflows. - -#### 8. [Configure RBAC](./rbac.md) -Configure RBAC to control who can view and access your IDP resources. Harness IDP 2.0 introduces scope-aware permissions aligned with Harness Projects, Organizations and Accounts. diff --git a/docs/internal-developer-portal/get-started/setup-git-integration.md b/docs/internal-developer-portal/get-started/setup-git-integration.md index 4be9d08be2b..83c5081027d 100644 --- a/docs/internal-developer-portal/get-started/setup-git-integration.md +++ b/docs/internal-developer-portal/get-started/setup-git-integration.md @@ -1,354 +1,172 @@ --- -title: Configure IDP -description: After enabling the Internal Developer Portal module, follow these steps to set it up in your account. -sidebar_position: 2 +title: Configure Git Integrations +description: Configure Git connector integrations to begin using Harness IDP. +sidebar_position: 1 redirect_from: - /docs/internal-developer-portal/getting-started/setting-up-idp - /docs/internal-developer-portal/get-started/onboarding-guide + - /docs/internal-developer-portal/get-started/enabling-module + - /docs/internal-developer-portal/get-started/get-started + - /docs/internal-developer-portal/getting-started/enabling-module --- -## Introduction -This document outlines the steps a Harness Account Admin can follow to set up the IDP module, including configuring Git integration.. Presently, the module needs to be enabled on request. [Read more](./enabling-module.md). - -## Pre-requisites - -- IDP must be provisioned for the given account. - -- Only users with the **Harness Account Admin** role or assigned **IDP Admin** role (with permissions shown below) can configure IDP. Here's the detailed [documentation on how to assign roles](https://developer.harness.io/docs/platform/role-based-access-control/add-user-groups/#assign-roles-and-resource-groups) - -![](static/assign-role.png) - -![](static/idp-roles.png) - -## Getting Started - -1. You land on the IDP module by navigating from the sidebar after logging into your Harness account. We strongly recommend users to follow the onboarding guide selecting the **Get Started**, for a seamless onboarding resulting in a catalog with software components. - -![](static/option1.png) -![](static/option2.png) - -2. Now that you're on the onboarding wizard, let's get started with setting up Git connectors to onboard the software components. - -## Connector Setup - -The software components in IDP are defined using YAML files, which are typically stored in your git repositories hence configuring a connector for these git providers is essential to fetch and manage these YAML files. - -The following set of git providers are supported: - - - [Harness Code Repository](https://www.harness.io/products/code-repository) - - GitHub ([Cloud](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-github) & [Enterprise](https://docs.github.com/en/enterprise-server@3.14/admin/overview/about-github-enterprise-server)) - - [GitLab](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-gitlab) (Cloud & Self Hosted) - - [Bitbucket](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-bitbucket) - - [Azure Repos](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-a-azure-repo) - -:::warning - -#### Limitations - -- Only HTTP mode is supported for all the git providers. SSH connection type is not supported. - - In IDP, API calls to git providers are used to fetch YAML data, retrieve the last commit SHA, and detect new changes. Since SSH authentication is only suitable for cloning repositories and cannot be used for these API calls, the primary git connector for IDP's git integration must support API requests, making HTTP the only supported option. - -::: - -:::info - -- **Multiple Connectors with different hostname can be used for a single Git Provider at once**. -- While setting up connector, both Account & Repo type for URL is supported. -- Connection through Harness platform and delegate is supported. -- You can provide the repository URL to verify repository read permission with the given host and credentials before saving the Git integration. - -::: - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +This guide will walk you through the first steps of onboarding to Harness IDP, including enabling the module, configuring Git connectors, populating your catalog, and importing Harness entities. - - - -### Harness Code Repository \{#harness-code-repository} - -1. In case you are already using Harness Code Repository, a default connector with only **Read Permission** would be available for the code repo set-up under the same account as that of IDP. Note this connector is uneditable and managed by Harness. - -![](static/new-git-integration-hce-enabled.png) - -2. You can as well create a new connector for other git-providers under the **+New Integration**. If you already have a connector available which you want to use in IDP to save your `catalog-info.yaml`, then select the connector under **Select Git Connector**, use a URL to validate and save the connector. If you don't have your connector configured already follow the steps mentioned below. - -![](static/set-up-connector.png) +--- - - +## Prerequisites -1. Select the **Git Provider** you want to configure from the available options. +### 1. Enable the Harness IDP Module -![](static/select-git-provider.png) + + -2. If you already have a connector available which you want to use in IDP to save your `catalog-info.yaml`, then select the connector under **Select Git Connector**, use a URL to validate and save the connector. If you don't have your connector configured already follow the steps mentioned below. +Ensure your team is ready for IDP 2.0 onboarding by reviewing the [breaking changes](/docs/internal-developer-portal/idp-2o-overview/2-0-overview-and-upgrade-path.md) list and understanding the key [essentials of upgrading to IDP 2.0](/docs/internal-developer-portal/idp-2o-overview/migrating-idp-2o.md). -![](static/set-up-connector.png) +> ⚠️ Rollback is not straightforward, so it's critical to thoroughly understand the scope and impact of these changes. - - +Once you're confident about upgrading: +* **Submit a Support Ticket**: + Raise a ticket with [Harness Support](https://support.harness.io) to enable the `IDP_2_0` feature flag on your account. - - +* **Join an Upgrade Call (Early Access Customers)**: + Our team will schedule a call with you to walk through the upgrade process and enable the feature flag. -- **We do not allow the creation of new connectors for Harness Code Repository.** +* **Enable in a Test Environment First (Recommended)**: + If you have a **test or staging environment**, enable IDP 2.0 there first. This allows your team to safely explore the new experience before enabling it in production. - + -### Azure Repository \{#azure-repository} +Harness IDP is currently available to a limited set of customers. To get started, send an email to idp-interest@harness.io for a demo and a Harness specialist will get you going. -- Select **Azure Repo** icon followed by **Create or Select a Connector**. -- From the dropdown under **Select Azure Repo Connector** and either select an already present connector or create **+New Connector**. -- [Connect to Azure Repos](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-a-azure-repo). You can also add multiple organizations as different connectors and use them together. -- After the connection test runs, select Finish to save the connector. +Once Harness IDP is enabled in your account, an account administrator can onboard your services and configure the required plugins. - - -### Bitbucket \{#bitbucket} + -- Select **Bitbucket** icon followed by **Create or Select a Connector**. -- From the dropdown under **Select Bitbucket Connector** and either select an already present connector or create **+New Connector**. -- Configure the [Bitbucket connector settings](https://developer.harness.io/docs/platform/connectors/code-repositories/ref-source-repo-provider/bitbucket-connector-settings-reference). +### 2. Provision the IDP Admin Role -:::info +- **Harness IDP** must be provisioned for the given account. +- Only users with the **Harness Account Admin** role or assigned **IDP Admin** role can configure IDP. Go to [Assign Roles and Resource Groups](https://developer.harness.io/docs/platform/role-based-access-control/add-user-groups/#assign-roles-and-resource-groups) to assign roles. -Same secret can't be configured for both **Password & Personal Access token** as backstage makes use of API token to fetch data.Create a secret with token and configure in the Personal Access token field. [Reference for creating token](https://confluence.atlassian.com/bitbucketserver/personal-access-tokens-939515499.html) +![](./static/rbac-config.png) -![](./static/bitbucket-connector.png) +--- -For **Bitbucket Cloud** the url needs to have **src** instead of **blob**. For e.g. `https://bitbucket.org/org-name/repo-name/src/branch/harness-services/Organization/default.yaml` +## Get Started with Harness IDP +You land on the IDP module by navigating from the sidebar after logging into your Harness account. We strongly recommend users to follow the onboarding guide by selecting **Get Started**, for a seamless onboarding resulting in a catalog with software components. -::: + -- After the connection test runs, select **Finish** to save the connector. +Now that you're on the onboarding wizard, let's get started with setting up Git connectors to onboard the software components. - - +### Step 1: Setup Git Connectors -### GitHub \{#github} +The software components in IDP are defined using YAML files, which are typically stored in your Git repositories. Configuring a connector for these Git providers is essential to fetch and manage these YAML files. -- Select **GitHub** icon followed by **Create or Select a Connector**. -- From the dropdown under **Select GitHub Connector** either select an already present connector or create **+New Connector**. -- Configure the [GitHub connector settings](https://developer.harness.io/docs/platform/connectors/code-repositories/ref-source-repo-provider/git-hub-connector-settings-reference). You can configure connectors for both `github.com` and `GitHub Enterprise` and use them at once to fetch `catalog-info.yaml` from both the sources at same time. -- After the connection test runs, select **Finish** to save the connector. +The following Git providers are supported: -:::caution Important -Please note that using the **Client ID** instead of the **App ID** is not supported when configuring Git integrations with the **GitHub App connector**. +- [Harness Code Repository](https://www.harness.io/products/code-repository) +- GitHub ([Cloud](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-github) & [Enterprise](https://docs.github.com/en/enterprise-server@3.14/admin/overview/about-github-enterprise-server)) +- [GitLab](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-gitlab) (Cloud & Self Hosted) +- [Bitbucket](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-bitbucket) -Backstage only supports GitHub App connectors that are configured using the **App ID**. -::: +> **Note:** Multiple Connectors with different hostnames can be used for a single Git Provider at once. While setting up the connector, both Account & Repo type URLs are supported. Connection through Harness platform and delegate is supported. -:::warning -While using GitHub App, you need a **private key for your GitHub app** to configure your Harness GitHub connector, follow the instructions mentioned [here](https://developer.harness.io/docs/platform/connectors/code-repositories/git-hub-app-support/#generate-a-private-key) **to convert the key file to the necessary format for the Harness GitHub connector** -::: + + -More instructions on [using GitHub app in GitHub connector](https://developer.harness.io/docs/platform/connectors/code-repositories/git-hub-app-support). + - + -### GitLab \{#gitlab} +#### Setting up Git Connectors -- Select **GitLab** icon followed by **Create or Select a Connector**. -- From the dropdown under **Select GitLab Connector** either select an already present connector or create **+New Connector**. -- Configure the [GitLab connector settings](https://developer.harness.io/docs/platform/connectors/code-repositories/ref-source-repo-provider/git-lab-connector-settings-reference). You can configure connectors for both `gitlab.com` and `GitLab on-prem` and use them at once to fetch `catalog-info.yaml` from both the sources at same time. -- After the connection test runs, select **Finish** to save the connector. +1. Select **Harness Code Repository** if enabled, or choose your preferred **Git Provider** from the available options. +2. From the dropdown under **Select Connector**, either select an already present connector or create **+New Connector**. +3. Configure the Connector as per the [documentation](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo). +4. Select **Apply Selected** to use the connector. +5. After the connection test runs, select **Finish** to save the connector. -:::info - -The scope is tied to URL format `https://gitprovider.com/org-name`, so all the Git Providers must provide the URL until at least the org name. Further, it can be scoped down to the repository or project level as well. - -::: - -- Once the connectors are created, you can see all the git providers configured for IDP. - -![](static/connector-final-setup.png) - -:::warning - -Make sure to enable API access while configuring the connector for the IDP catalog setup. - -![](./static/enable-api-access.png) - -:::: - -## Onboard Services - -Users will now have option to onboard existing Harness services into IDP, or start with a sample service. - -![](static/select-onboarding-path.png) - - - - -### Import Harness Services - -- User will be shown the list of services in their account. It will be defined in terms of IDP entity i.e Harness organization is a domain, Harness project is a system and Harness service is a component in the IDP world. This list includes services at all scopes. - -- User can choose all the services / individual services / no services - -| Onboarding Option | Description | -|-------------------|-----------------------------------------------------------| -| All | Import all Harness services into IDP. | -| Individual | Select specific Harness services to import. | -| No | Start with a sample entity for testing and initial setup. | - -![](static/select-harness-services.png) - -- User gets a view on how the entity definition looks like - -![](static/preview-catalog.png) - -- Now add the details on where the entities will be created in git: - - - - -- **Connector** - The connector is selected by default. - -- **Directory Path** - Give a path for the directory in which you want to write the `catalog-info.yaml` files. - -![](static/select-path.png) - -- **Repo Path** - Go to the Code Repository and under files select **Clone** and copy the repository path. - - -![](static/copy-repo-path.png) - -Validate the permission and the `catalog-info.yaml` files would be created in your directory in Code repository. - -![](static/repo-path-code-repo.png) - - - - - -- **Connector** - Select the connector of the git provider you want to use. - -- **Repo** - Enter the full path to your repo. Example - -``` -https://github.com/user-name/onboarding-test.git -https://github.com/user-name/onboarding-test -``` - -- The provided repo in the repo URL should belong to the same organization / project for which the connector has been setup. Ex - - -**In connector** - The account path is `https://github.com/user-name`. So the repo URL in IDP onboarding flow should be `https://github.com/{USER_NAME}/{SOME_REPO}`. It cannot be `https://github.com/{SOMETHING_ELSE}/{SOME_REPO}` - this will not work. - -- Provided repo should exist with a valid default HEAD branch. Ideally this will be case when the repo is initialized with README file - -- Branch - Can be new branch / some existing branch. In both the cases, the commit will be done on top of the base HEAD branch. +--- -- Path - Defaults to harness-services. Can be changed as well. +### Step 2: Populate Your Catalog -![](static/write-catalog.png) +After setting up the connector, you'll be presented with two onboarding paths to populate your catalog with entities. - - + + + - - -### Start with Sample Service - -- User will be shown a demo service metadata in the form of the `catalog-info.yaml`. + -![](static/preview-catalog.png) +#### Start with Sample Service -- Now this will be added to the git provider: - - - +You will be shown a demo service metadata in the form of the `catalog-info.yaml`. This will be added to the Git provider with the configuration options below. +**For Harness Code Repository:** - **Connector** - The connector is selected by default. - - **Directory Path** - Give a path for the directory in which you want to write the `catalog-info.yaml` files. -![](static/select-path.png) - -- **Repo Path** - Go to the Code Repository and under files select **Clone** and copy the repository path. - -:::info - -Once you copy the repository path replace the `git.eu.harness.io` with `accounts.eu.harness.io`. - -![](static/replace-vanity-url.png) - -::: - -![](static/copy-repo-path.png) - -Validate the permission and the catalog-info.yaml files would be created in your directory in Code repository. - -![](static/repo-path-code-repo.png) - - - - - -- **Connector** - Select the connector of the git provider you want to use. - -- **Repo** - Enter the full path to your repo. Example - -``` -https://github.com/user-name/onboarding-test.git -https://github.com/user-name/onboarding-test -``` - -- The provided repo in the repo URL should belong to the same organization / project for which the connector has been setup. Ex - - -**In connector** - The account path is `https://github.com/user-name`. So the repo URL in IDP onboarding flow should be `https://github.com/{USER_NAME}/{SOME_REPO}`. It cannot be `https://github.com/{SOMETHING_ELSE}/{SOME_REPO}` - this will not work. - -- Provided repo should exist with a valid default HEAD branch. Ideally this will be case when the repo is initialized with README file - -- Branch - Can be new branch / some existing branch. In both the cases, the commit will be done on top of the base HEAD branch. - -- Path - Defaults to harness-services. Can be changed as well. - -![](static/write-catalog.png) +**For Other Git Providers:** +- **Connector** - Select the connector of the Git provider you want to use. +- **Repo** - Enter the full path to your repo. Example: `https://github.com/user-name/onboarding-test.git` + - The provided repo URL should belong to the same organization/project for which the connector has been setup. +- **Path** - Defaults to `harness-services`. Can be changed as well. - - +--- -## Create and Register Entities +### Step 3: Import Harness Entities -- Once the required details are entered and submitted for importing, we will push the generated entity YAML files to the repo and path provided. You will be seeing two commits - one during the sync process and another asynchronously, which will consist of remaining entities will be pushed in an asynchronous manner. The time frame for asynchronous operation(second commit) will depend on the repo size is and number of revisions the provided repo has. +Import existing Harness services into your IDP catalog to quickly populate it with your current infrastructure. -- In the background, the catalog are also imported into IDP along with their associated configs. +#### Import Harness Services -![](static/onboarding-completed.png) +This option imports all the services from your Harness account into IDP: -## Catalog +- Imports all services from all projects in your account +- Services are imported as **Component** entities in IDP +- Metadata is derived from the service configuration in Harness +- Entities are created with metadata including Name, Description, Owner, Type, and Lifecycle stage +- Once imported, you can view and manage these entities in the IDP catalog -- User can navigate to the IDP homepage to get started. Catalog will start showing up software components once the asynchronous operation is completed. +![](./content/setup-git-integration/static/select-path.png) -- Since during the onboarding flow Harness will not be able to discover the complete metadata of the entity, the **owner** field will be set to **Unknown**. As part of the IDP provisioning, Harness users and groups are imported to IDP. With this in place, customers can start editing the catalog info YAML definition to update the owner for each of the entity. +**For Harness Code Repository:** +- **Repo Path** - Go to the Code Repository and under files select **Clone** and copy the repository path. -![](static/catalog.png) +**For Other Git Providers:** +- **Connector** - Select the connector of the Git provider you want to use. +- **Repo** - Enter the full path to your repo. Example: `https://github.com/user-name/onboarding-test.git` + - The provided repo URL should belong to the same organization/project for which the connector has been setup. +- **Path** - Defaults to `harness-services`. Can be changed as well. -- Post onboarding, users can import any number of entities into Harness IDP using the [register component flow](https://developer.harness.io/docs/internal-developer-portal/catalog/register-software-component). This flow expects you to provide the complete URL where the entity definition is stored. +--- -## Onboard Services Post Getting Started +### Step 4: Complete the Setup -- You can add new services to the IDP after the initial onboarding flow. Simply navigate to **Admin**, select **Get Started**, and you’ll find the Onboard Service Wizard available for use. +Once you've configured your Git connector and chosen your onboarding path, select **Complete Setup** to finish the initial configuration. Your catalog will now be populated with the entities you've imported or created. -![](./static/get-started-admin.png) +--- -**Recommendations** +## Next Steps -If you're using GitHub connector, you can go with App based authentication which provides higher number of API requests in an hour window for your catalog to be in sync with the latest updates without resulting in rate limit error. Read more about [GitHub Apps](https://docs.github.com/en/apps/creating-github-apps/setting-up-a-github-app/rate-limits-for-github-apps) +Now that you've completed the initial setup: +- [Create and manage catalog entities](/docs/internal-developer-portal/get-started/catalog-2o.md) +- [Set up workflows for self-service](/docs/internal-developer-portal/get-started/workflows-2o.md) +- [Enable plugins to extend IDP functionality](/docs/internal-developer-portal/plugins/enable-a-new-plugin) diff --git a/docs/internal-developer-portal/get-started/static/rbac-config.png b/docs/internal-developer-portal/get-started/static/rbac-config.png new file mode 100644 index 00000000000..54accf78d1e Binary files /dev/null and b/docs/internal-developer-portal/get-started/static/rbac-config.png differ diff --git a/docs/internal-developer-portal/get-started/workflows-2o.md b/docs/internal-developer-portal/get-started/workflows-2o.md index 51f6cb8c7ac..fbf99d77d1a 100644 --- a/docs/internal-developer-portal/get-started/workflows-2o.md +++ b/docs/internal-developer-portal/get-started/workflows-2o.md @@ -1,351 +1,22 @@ --- -title: Get Started with Workflows -sidebar_position: 8 -sidebar_label: Get Started with Workflows +title: Create Self-Service Workflows +sidebar_position: 3 +sidebar_label: Create Self-Service Workflows redirect_from: /docs/internal-developer-portal/get-started/workflow-quickstart.md --- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -:::tip For IDP 2.0 Customers -If you're using Harness IDP 2.0, please ensure you have reviewed the [IDP 2.0 Overview guide](/docs/internal-developer-portal/idp-2o-overview/2-0-overview-and-upgrade-path.md) and are familiar with the key steps for [upgrading to IDP 2.0](/docs/internal-developer-portal/idp-2o-overview/migrating-idp-2o.md). To enable IDP 2.0, you must raise a support ticket to activate the `IDP_2_0` feature flag for your account. -::: - -**Service and Infrastructure onboarding** in today’s world is slow, manual and tedious. Developers often spend days—or even weeks—setting up new software and completing Day-2 operations. This inefficiency arises from either waiting for ticket resolutions (TicketOps) or manually handling repetitive tasks, which results in a poor developer experience and decreased productivity. - -Harness IDP addresses these challenges with **Self-Service Workflows**. - -Workflows enable developer self-service by automating manual tasks and processes. Using Workflows, platform engineering teams can: -- Automate new service onboarding. -- Simplify Day 2 operations for developers. -- Provide developers with **golden paths** to production that include guardrails and best practices. - -This guide will take you through the journey of creating, configuring and executing a Workflow. - -## What's new for Workflows in IDP 2.0? -Harness IDP 2.0 represents a major evolution of the Internal Developer Portal, built on a Harness-native data model designed for enterprise-scale environments and robust access control. Here's what’s changing in IDP 2.0 for **Workflows**: - -- **Harness-native Platform Hierarchy:** Workflows now support Account, Org, and Project scopes, with built-in, fine-grained RBAC. - -- **No YAML Required:** Create and modify Workflows directly within the UI—no need to manage YAML files or deal with Git operations - -## Prerequisites (IDP 2.0) -Before getting started with **Workflows** in IDP 2.0, ensure you have the following prerequisites: -* You have reviewed the **[IDP 2.0 Overview](/docs/internal-developer-portal/idp-2o-overview/2-0-overview-and-upgrade-path.md)** and **[Upgrading to IDP 2.0](/docs/internal-developer-portal/idp-2o-overview/migrating-idp-2o.md)** guide. -* **IDP 2.0** is enabled behind the `IDP_2_0` Feature Flag. Contact **[Harness Support](https://support.harness.io)** to enable it on your account. -* You should have a clear understanding of **[Managing Workflows](/docs/internal-developer-portal/flows/manage-workflow-2o.md)** and **[Workflow YAML](/docs/internal-developer-portal/flows/worflowyaml.md)** to effectively configure and use the components of a Workflow. -* It's recommended to have a **Harness Pipeline** in place, which acts as the orchestrator for Self-Service Workflows. - Learn more about **[setting up Harness IDP Pipelines here](/docs/internal-developer-portal/flows/harness-pipeline.md)**. - -## Create a Workflow (IDP 2.0) -In IDP 2.0, you can create **Workflows** directly from the Harness IDP UI —eliminating the need to manually manage YAML files. With this release, "inline workflows" are fully supported, allowing you to manage the entire workflow lifecycle through the UI or APIs—no Git operations required. Learn more about **[Self Service Workflows](/docs/internal-developer-portal/flows/overview.md)** here. - -There are two ways for you to add and create a new Workflow in your IDP: -- **Create a Workflow via the Harness IDP UI**: Use the Harness UI to create Workflows directly—no YAML required. This method offers a streamlined, code-free experience for adding entities. -- **Create a Workflow using your Workflow YAML**: You can still create Workflows using your existing Workflow YAML files. Harness will automatically convert legacy Backstage YAML into the new Harness-native Data Model and register the corresponding Workflow. - -Let's try creating a **Workflow** using both the methods: - - - - To create a new **Workflow**, navigate to the Harness IDP portal and click on **“Create”** from the side-bar menu. Choose **Workflow** from the panel, and follow these steps: - 1. You’ll be redirected to the **"Visual View"**, where you can input basic Workflow details and begin the creation process. - 2. Enter the required Workflow information. The **Visual view** is synced in real-time with the **YAML view** for full transparency. - ![](./static/workflow-1.png) - 3. Define the **Workflow scope** — choose whether the Workflow should reside at the Account, Project, or Organization level. For this use-case, let's select the Account scope. Read more about [Workflow RBAC](/docs/internal-developer-portal/rbac/workflow-rbac.md). - ![](./static/workflow-scope.png) - 4. Click on **“Review YAML”** to view the auto-generated YAML. Since there's a live sync between the Visual and YAML views, changes in one will reflect in the other. - 5. You can configure your Workflow by editing the YAML directly—add inputs, backend actions, and outputs as needed. This allows you to fully customize the Workflow behavior. Learn more about the [components of a Workflow](/docs/internal-developer-portal/flows/worflowyaml.md#components-of-workflow-yaml) and its [YAML structure](/docs/internal-developer-portal/flows/worflowyaml.md#workflow-yaml-definition) here. - ![](./static/workflow-yaml.png) - - :::info - **Note:** **YAML validation** is performed to ensure compatibility with the **Harness-native Data Model**. Any errors will be shown in the Validation logs. - ::: - 6. Once everything is set, click **“Create Workflow”** to finalize and create the Workflow. - - - To create a new entity using the Workflow YAML, navigate to the Harness IDP portal and click **“Create”** from the side-bar menu. Choose **Workflow** from the panel. - - :::info - If you have a **legacy Backstage YAML**, you can still use it to create a **Workflow**. Harness will automatically convert it into the **Harness-native Data Model** format. - ::: - -1. You’ll be redirected to the **Visual View**. You can switch to the **YAML View** using the toggle at the top of the screen. This allows you to directly edit the Workflow's YAML definition. -![](./static/yaml-view-workflows.png) -2. If you’re using a **legacy Backstage YAML**, paste it into the YAML view. Harness will convert it into the **Harness-native format** automatically. You can then proceed to finalize and create the Workflow. Since the Visual and YAML views are **live-synced**, changes made in one view will reflect in the other. -![](./static/workflow-yaml-conversion.png) -3. Define the **scope** of the Workflow in two ways: either switch to the Visual View and select the desired scope, or specify the **[projectIdentifier](/docs/internal-developer-portal/catalog/catalog-yaml.md#projectidentifier)** or **[orgIdentifier](/docs/internal-developer-portal/catalog/catalog-yaml.md#orgidentifier)** directly in the YAML to set the project or organization scope. -![](./static/workflow-scope.png) -4. You can configure your Workflow by editing the YAML directly—add inputs, backend actions, and outputs as needed. This allows you to fully customize the Workflow behavior. Learn more about the [components of a Workflow](/docs/internal-developer-portal/flows/worflowyaml.md#components-of-workflow-yaml) and its [YAML structure](/docs/internal-developer-portal/flows/worflowyaml.md#workflow-yaml-definition) here. -![](./static/workflow-yaml.png) - -:::info -Note: **YAML validation** is automatically performed to ensure compatibility with the **Harness-native Catalog YAML model**. Any validation errors will be displayed in the Validation Logs. -::: - -5. Once all details are complete, click **“Create Workflow”** to finalize and register your Workflow in the catalog. - - - -## Execute Workflows (IDP 2.0) - -Once you've created a Workflow in IDP 2.0, you can **execute** it from the Workflow details page. There are two ways to access the Workflow: - -1. **From the Catalog**: - * Navigate to the Catalog and locate the relevant Workflow. - * Click on the Workflow to open its details page. - * Click **Launch** to execute the Workflow. - -![](./static/execute-workflows-1.png) - -2. **From the Workflows Page**: - * Go to the **Workflows** section from the main navigation. - * Find and select the desired Workflow. - * Click **Launch** to execute it. - -![](./static/execute-workflows-2.png) - -## Delete a Workflow (IDP 2.0) -To delete a Workflow: -* Go to the **Workflows** page. -* Locate the Workflow you want to remove. -* Click the **three-dot menu** (•••) in the top-right corner of the Workflow card. -* Select **Delete Workflow** from the dropdown. - -![](./static/delete-workflow.png) - - -## Next Steps (IDP 2.0) -Now that you've learned how to create and manage a Workflow, here's what to explore next: -1. Deep dive into the [Workflow YAML](/docs/internal-developer-portal/flows/worflowyaml.md) -2. Learn how to configure [Inputs](/docs/internal-developer-portal/flows/flows-input.md), [Actions](/docs/internal-developer-portal/flows/custom-actions.md) and [Outputs](/docs/internal-developer-portal/flows/outputs.md) in a Workflow. -3. Explore how to [setup a Harness IDP Pipeline](/docs/internal-developer-portal/flows/harness-pipeline.md). -4. Learn how to [configure RBAC](/docs/internal-developer-portal/rbac/workflow-rbac.md) for Workflows. - - - - -This quickstart tutorial will guide you through setting up a Workflow in IDP to automate GitHub repository onboarding for users. While this tutorial uses GitHub as the git provider, the same steps can be applied to other git providers as well. - -:::info - -We now have a [new Workflows homepage](/docs/internal-developer-portal/layout-and-appearance/workflows-page-customization) which is behind a Feature Flag `IDP_ENABLE_WORKFLOWSV2`. To enable the feature flag, please contact [Harness Support](mailto:support@harness.io) - -::: - -## Prerequisites (IDP 1.0) - -### Add Connector - -A connector with Git credentials that has appropriate write permissions is required to create a repository in your GitHub organization. - -1. Go to **Admin -> Git Integrations**. -2. Add a **New Git Integration** with type as **GitHub**. -3. Now Select the GitHub **Connector** and **Save Changes**, [follow the steps to add a new connector](https://developer.harness.io/docs/internal-developer-portal/get-started/setup-git-integration#connector-setup) - -:::info - -Make sure the Connector URL used here is pointed towards the org where you want to create the new repo and the token used have write permission for the repo also **Enable the API** while creating connector. - -::: - -### Create Harness Pipeline with IDP Stage (IDP 1.0) - -A Harness Pipeline serves as an orchestrator for IDP Workflows. - -1. Go to **Admin -> Select Project**. -2. Now start with **Create a Pipeline**. - -![](./static/navigate-pipeline.gif) - -3. Add a **Name**, select the type as **Inline** and **Continue**. - -![](static/name-pipeline.png) - -4. **Add Stage** and **Select Stage Type** as **Developer Portal**. - -![](static/select-stage-idp.png) - -5. Select the infrastructure as **Harness Cloud**. - -![](static/infra-harness-cloud.png) - -6. Now let's create some variables that we will use in further steps. Navigate to the **Variables tab** in the right corner of the Pipeline Studio, and add the following **Custom Variables** (stick to the exact naming convention for variables as provided, as these will be used as a reference to input values into the pipeline). The variables are of **Type** `String`, and their **Values** are set to `Runtime Input`. - - `github_org` - - `github_repo` - - `github_username` - -![](./static/navigate-variable.png) - -Add another variable `github_token` as **Type** `Secret` and add the GitHub PAT for **Values**. - -Apply the changes - -![](static/add_variable.png) - - -7. Now **Continue** to **Execution** and **Add Step**, under Git Repository Setup select **Create Repo**. - -![](static/execution-cr.png) - -8. Under **Step Parameters**, select the **Repository Type** as **Public** if the connector you have created use a token generated by your GitHub admin, else you might not have access to the **private** repo created. - -9. Add the **Connector** you created [above](#add-connector). - -10. Now under **Organization** and **Repository Name** add the variables you created as **Expressions** (`<+pipeline.variables.github_org>` and `<+pipeline.variables.github_repo>`). - -11. Add a **Repository Description**, **Apply Changes**. - -![](static/create-repo.png) - -12. Now add a **Run** Step to add your username as an admin to the repo created, with the following curl command, make sure to add a [container registry and image](https://developer.harness.io/docs/continuous-delivery/x-platform-cd-features/cd-steps/containerized-steps/run-step/#container-registry-and-image), under optional configuration. **Container Registry** is a Harness Docker Registry Connector used to specify the image on which Harness will run commands, such as images from Docker Hub. - -```sh -curl -L \ - -X PUT \ - -H "Accept: application/vnd.github+json" \ - -H "Authorization: Bearer <+pipeline.variables.github_token>" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - https://api.github.com/repos/<+pipeline.variables.github_org>/<+pipeline.variables.github_repo>/collaborators/<+pipeline.variables.github_username> \ - -d '{"permission":"admin"}' -``` - - -## Create Workflow (IDP 1.0) - -The Workflow is defined in a YAML file named `workflow.yaml`. The [syntax](https://developer.harness.io/docs/internal-developer-portal/flows/service-onboarding-pipelines#how-to-write-idp-templates) of the template definition is owned by [backstage.io](https://backstage.io/docs/features/software-templates/writing-templates) while the workflow runs on a Harness pipeline of your choice. - -The following is the example Workflow with [Workflows Action](https://developer.harness.io/docs/internal-developer-portal/flows/custom-actions#1-triggerharness-custom-pipeline) to create a new repository. - -```YAML -apiVersion: scaffolder.backstage.io/v1beta3 -kind: Template -# some metadata about the template itself -metadata: - name: Workflows-Quickstart - title: Create a New GitHub Repository - description: Creates a new GitHub Repository -spec: - owner: service.owner - type: service - # these are the steps which are rendered in the frontend with the form input - parameters: - - title: Fill in the repo details - required: - - github_org_name - - github_repo_name - - github_username - properties: - github_org_name: - title: GitHub Organization - type: string - description: Name the org where you want to add the new repository - github_repo_name: - title: Repository Location - type: string - description: Name the new repository that you want to create - github_username: - title: GitHub Username - type: string - description: Add Your GitHub Username - token: - title: Harness Token - type: string - ui:widget: password - ui:field: HarnessAuthToken - # here's the steps that are executed in series in the scaffolder backend - steps: - - id: trigger - name: Onboarding a New GitHub Repository - action: trigger:harness-custom-pipeline - input: - url: "URL_of_the_Harness_Pipeline_Created_Above" - inputset: - github_org: ${{ parameters.github_org_name }} - github_repo: ${{ parameters.github_repo_name }} - github_username: ${{parameters.github_username}} - apikey: ${{ parameters.token }} - # The final step is to register our new component in the catalog. - - output: - links: - - title: Pipeline Details - url: ${{ steps.trigger.output.PipelineUrl }} - -``` - -In the above Workflow we have used the [Harness Trigger Workflow Action](https://developer.harness.io/docs/internal-developer-portal/flows/custom-actions#1-triggerharness-custom-pipeline), which takes the **exact variable name** `github_org` and `github_repo` you created for your pipeline as input and a **token** as `apikey` - -:::warning -The **token** property used to fetch the **Harness Auth Token** is hidden on the Review Step using ``ui:widget: password``. However, for this to function correctly in a **multi-page workflow**, the token property must be included under the **first page**. - -```YAML {12} -parameters: - - title: - properties: - property-1: - title: title-1 - type: string - property-2: - title: title-2 - token: - title: Harness Token - type: string - ui:widget: password - ui:field: HarnessAuthToken - - title: - properties: - property-1: - title: title-1 - type: string - property-2: - title: title-2 - - title: -``` -::: - -11. Copy the above Workflow file in your git provider, replace the value of `input.url` under `steps` with the Harness pipeline URL you created and save it as `workflow.yaml`. - -## Register Workflow in IDP (IDP 1.0) - -12. In the left navigation, select **Workflows**, and then select **Register New Workflow**. - -![](static/create-page-sidebar.png) -![](static/create-page.png) - -13. Enter the URL to your new `workflow.yaml`. -![](static/url-on-register-page.png) - -14. Select **Import**. - -![](static/finished-state.png) - -15. Now click on the Workflow name - -![](static/workflowquickstart.png) - -## Use Workflows to Create a Repo (IDP 1.0) - -16. Once you're on the entity page for Workflow, **Launch the Workflow**. - -![](static/Launch-template.png) - -17. Now fill the fields as: - - Repository Location: Add a name for the repository you wanted to create. - - GitHub Organization: Add the org where you want to add your new repository, usually GitHub URL are of the format `https://github.com/org_name/repo_name/` - -![](static/fill-template-fields.png) - -18. Now Trigger the flow, it will create a new GitHub repo. - -![](static/create-repo-run.png) - -## Delete the Workflow (IDP 1.0) - -If you want to unregister or delete the Workflow follow the steps mentioned [here](https://developer.harness.io/docs/internal-developer-portal/flows/service-onboarding-pipelines#deleteunregister-template). - - - \ No newline at end of file +import DynamicMarkdownSelector from '@site/src/components/DynamicMarkdownSelector/DynamicMarkdownSelector'; + + \ No newline at end of file diff --git a/docs/internal-developer-portal/overview.md b/docs/internal-developer-portal/overview.md index a5c5c33e49f..ee4fbdb67b5 100644 --- a/docs/internal-developer-portal/overview.md +++ b/docs/internal-developer-portal/overview.md @@ -1,66 +1,155 @@ --- title: Overview description: A home for developers to create, manage, and explore software. -sidebar_position: 2 -sidebar_label: Harness IDP Overview +sidebar_position: 1 +sidebar_label: Overview redirect_from: - /docs/internal-developer-portal/get-started/overview - /docs/internal-developer-portal/getting-started/overview - /docs/internal-developer-portal/key-concepts --- -# Harness IDP Overview +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; -Harness IDP enables you to create new software components quickly while adhering to your company’s best practices. It enables you to manage the software you own by presenting a developer-centric view of all relevant information such as service health, deployments, and alerts. It also enables you to explore the internal software ecosystem of the company, discover technical documentation, APIs, and services, all of which enable better collaboration. +**Harness Internal Developer Portal (IDP) is a unified platform that empowers developers to build, discover, and manage software while platform engineers automate standards and governance.** -Fully integrated into the Harness platform, IDP reduces the maintenance overhead and investment required from platform engineering teams and is enterprise ready. +Harness IDP enables you to: - +- *Create* new software components quickly while adhering to your company's best practices. +- *Manage* the software you own with a developer-centric view of service health, deployments, and alerts. +- *Explore* your organization's entire software ecosystem to discover technical documentation, APIs, and services. + +Fully integrated with the Harness platform, Harness IDP boosts **developer productivity** and satisfaction while reducing **maintenance overhead** for platform engineering teams, enabling your organization to ship faster with higher quality. + +--- + +## What is Harness IDP? + +An Internal Developer Portal (IDP) is a centralized platform that brings together all the tools, services, and knowledge developers need to build and ship software efficiently. It serves as the **single source of truth** for your organization's software ecosystem. + +To read more about the Harness IDP core product pillars, go to [Product Pillars](/docs/internal-developer-portal/overview.md#product-pillars). + +Here's a quick overview of **how Harness IDP works**: +![](./static/harnessidpoverview.png) + +Here's how Harness IDP boosts developer productivity and reduce overhead toil for platform engineers: + +- **For Platform Engineers:** Automate developer workflows with built-in standards and guardrails. Build *golden paths* that free your team from repetitive tasks, enforce best practices across all services, and scale your platform; all while maintaining control and governance. +- **For Developers:** Get productive faster with *self-service access* to everything you need. Create new services in minutes using pre-approved templates, discover any API or documentation instantly, and access all your tools from one unified interface; no more context switching or waiting on tickets. +--- + +## Product Pillars + +Harness IDP is built on some core pillars that work together to deliver a complete and productive developer experience. Here's how each pillar helps you: + + + + +#### Your Single Source of Truth for All Software Assets + +The Software Catalog provides a **centralized registry** of all your services, APIs, libraries, and infrastructure components. Track ownership, dependencies, and metadata in **one searchable location**. + +**Key Capabilities:** +- Discover any service or API instantly with powerful Catalog search. +- Visualize service dependencies and relationships, with all the context in one place. +- Track service ownership and contact information. +- Auto-import and populate Catalog from Git and Harness CD. -## Demo +[Learn more about Software Catalog →](/docs/internal-developer-portal/catalog/software-catalog) -Here is a short 4-minute demo of the Harness Internal Developer Portal (IDP) module and all its features. +![](./static/software-catalog-overview.png) - + -For a live and in-depth demo, please [reach out](https://www.harness.io/demo/internal-developer-portal?utm_source=harness_io&utm_medium=cta&utm_campaign=idp&utm_content=hero) to us. + -# Key features +#### Automate Service Onboarding and Day-2 operations -## Workflows +Self-Service Workflows eliminate repetitive tasks by providing developers with **golden path templates** for common operations. Platform engineers build the workflows once, and developers use them repeatedly. -![](./static/workflowsv2.png) +**Key Capabilities:** +- Create new services from pre-approved templates. +- Provision infrastructure and cloud resources automatically. +- Configure CI/CD pipelines without manual setup. +- Execute day-to-day operations with a simple form. -![](static/new%20app%20onboarding%20with%20idp%20stage.png) +[Learn more about Workflows →](/docs/internal-developer-portal/flows/overview) -As a platform engineer, you can orchestrate the onboarding of services by creating pipelines in the Harness Pipeline Studio. On the other hand, as a developer, you can create a new backend service, API, or website by submitting a few details as configured by your platform engineering. Developers focus on what they do best, which is writing features, while Platform engineers focus on creating software templates, automating processes, and enforcing standards. +![](./static/workflows-overview.png) -## Software catalog + -![](static/catalog-screenshot.png) + -The software catalog is a centralized registry for all your software (services, websites, libraries, data pipelines, and so on), and it helps you track their ownership, metadata, and dependencies. The catalog is built from metadata YAML files, each of which is stored with its code and owned by a team. +#### Measure and enforce Software Quality standards -## Scorecards +Scorecards help you **define, track, and improve Software Quality** across your organization. Set standards for security, reliability, documentation, and DevOps maturity, then measure compliance automatically. Get **automated visibility** into which services meet your standards and which need improvement. -![](static/scorecards%20details.png) +**Key Capabilities:** +- Define quality checks and maturity standards. +- Measure compliance across all services. +- Track improvement over time with trends. +- Enforce production readiness gates. -Scorecards play a pivotal role in ensuring software components are developed and utilized while adhering to organizational and industry standards. They provide a quantifiable measure of software maturity and adherence to best practices, thereby aiding developers in enhancing quality and assisting teams in making informed decisions regarding software adoption. +[Learn more about Scorecards →](/docs/internal-developer-portal/scorecards/scorecard) -## Extensibility through plugins +![](./static/trends-scorecard-2.png) -![](static/plugins-screenshot.png) + -Harness IDP includes curated plugins. You can choose the plugins you need based on the tools that you use. The plugins enable you to customize a software component on the basis of its type, and to present all information relevant to developers in a single view. Harness IDP’s plugin library is based on the hundreds of open-source Backstage plugins available in the marketplace. + -## Technical documentation +#### Enrich your Software Catalog with contextual metadata -![](static/docs-screenshot.png) +Plugins display additional **metadata** about software components and entities **directly in the catalog**, showing information like CI/CD pipelines, alerts, incidents, and more; all without leaving the portal. + +**Key Capabilities:** +- View CI/CD pipeline status, deployment history, and build information about software components directly in the Catalog. +- Monitor alerts, incidents, and service health in real-time. +- Upload and use custom plugins tailored to your internal tools. +- Continuously expanding plugin library with new integrations. + +[Learn more about Plugins →](/docs/internal-developer-portal/plugins/overview) + + + + + +#### Documentation that lives with your Code + +TechDocs enables a docs-as-code approach where documentation lives alongside your source code in Git. Write docs in **Markdown**, commit them alongside your source code, and publish automatically. Your team can discover and access documentation instantly through the **Docs tab** in the Catalog, no more outdated wikis or scattered knowledge. + +**Key Capabilities:** +- Write documentation in Markdown alongside your code. +- Support for MkDocs plugins including Material theme, diagrams, and code documentation. +- Search across all documentation. +- Version docs alongside code for consistency. + +[Learn more about TechDocs →](/docs/internal-developer-portal/techdocs/enable-docs) + + + + +--- + +## Video Overview + +Watch this video to learn more about Harness IDP: + + + +--- -The ability to use the docs-like-code approach enables developers to deliver documentation alongside their software component. As a developer, you write your documentation in Markdown and commit it with your code. Other developers can then find your documentation with little effort. The docs-like-code approach ensures that documentation does not get outdated, and the Docs tab in the software catalog makes it discoverable and accessible by a single click. +## Get Started -## Search +Ready to get started with Harness IDP? Follow these simple steps: -![](static/search-screenshot.png) +1. [Enable Harness IDP](/docs/internal-developer-portal/get-started/setup-git-integration#prerequisites) +2. [Setup Git Integrations](/docs/internal-developer-portal/get-started/setup-git-integration) +3. [Populate Your Catalog](/docs/internal-developer-portal/get-started/catalog-2o) +4. [Create Your First Workflow](/docs/internal-developer-portal/get-started/workflows-2o) +5. [Configure Plugins](/docs/internal-developer-portal/plugins/overview) +6. [Define Quality Scorecards](/docs/internal-developer-portal/scorecards/scorecard) -As a developer, you can use the search functionality in Harness IDP to explore your entire software ecosystem and find the services, APIs, libraries, metadata, and documentation you need. When you know who owns the resource you need, you no longer have to rely on rumor-driven development. +--- \ No newline at end of file diff --git a/docs/internal-developer-portal/get-started/enable-a-new-plugin.md b/docs/internal-developer-portal/plugins/enable-a-new-plugin.md similarity index 95% rename from docs/internal-developer-portal/get-started/enable-a-new-plugin.md rename to docs/internal-developer-portal/plugins/enable-a-new-plugin.md index dd0244907f1..f06987a509d 100644 --- a/docs/internal-developer-portal/get-started/enable-a-new-plugin.md +++ b/docs/internal-developer-portal/plugins/enable-a-new-plugin.md @@ -1,9 +1,10 @@ --- title: Enable a Plugin description: Learn how to enable a plugin in Harness IDP and use it in your software catalog. -sidebar_position: 4 +sidebar_position: 2 redirect_from: - /docs/internal-developer-portal/getting-started/enable-a-new-plugin + - /docs/internal-developer-portal/get-started/enable-a-new-plugin --- ## Introduction @@ -16,7 +17,7 @@ Now that you have [populated your Catalog with Software Components](/docs/intern Before you enable a new plugin, ensure that the following prerequisites are met: -- [Harness IDP is provisioned and accessible](/docs/internal-developer-portal/get-started/enabling-module). +- [Harness IDP is provisioned and accessible](https://www.harness.io/demo/internal-developer-portal). - [Catalog is populated with Software Components](/docs/internal-developer-portal/get-started/catalog-2o.md) ## Plugin types @@ -52,9 +53,9 @@ All administrative configurations, such as plugins, layouts, connectors, configu The **Plugin details** page is displayed. The page provides information such as the plugin's name, details, layout, and configurations. It also includes an option to add a plugin secret. The plugin's layout section is read-only and displays the exported cards, tabs, or pages provided by the plugin. -![](static/att_5_for_21398290667.png) +![](static/att-5-for-21398290667.png) -![](static/att_3_for_21398290667.png) +![](static/att-3-for-21398290667.png) 4. (Optional) If you want to customize the plugin's configuration, in the **Configurations** section, edit the default configuration YAML. diff --git a/docs/internal-developer-portal/plugins/static/att-3-for-21398290667.png b/docs/internal-developer-portal/plugins/static/att-3-for-21398290667.png new file mode 100644 index 00000000000..47c6f50e815 Binary files /dev/null and b/docs/internal-developer-portal/plugins/static/att-3-for-21398290667.png differ diff --git a/docs/internal-developer-portal/plugins/static/att-5-for-21398290667.png b/docs/internal-developer-portal/plugins/static/att-5-for-21398290667.png new file mode 100644 index 00000000000..3b6b55d66fb Binary files /dev/null and b/docs/internal-developer-portal/plugins/static/att-5-for-21398290667.png differ diff --git a/docs/internal-developer-portal/plugins/static/final-plugin-page.gif b/docs/internal-developer-portal/plugins/static/final-plugin-page.gif new file mode 100644 index 00000000000..d9b687ecc8b Binary files /dev/null and b/docs/internal-developer-portal/plugins/static/final-plugin-page.gif differ diff --git a/docs/internal-developer-portal/plugins/static/layout-snippet.png b/docs/internal-developer-portal/plugins/static/layout-snippet.png new file mode 100644 index 00000000000..e93b421641e Binary files /dev/null and b/docs/internal-developer-portal/plugins/static/layout-snippet.png differ diff --git a/docs/internal-developer-portal/plugins/static/plugins-screenshot.png b/docs/internal-developer-portal/plugins/static/plugins-screenshot.png new file mode 100644 index 00000000000..75d274d3c54 Binary files /dev/null and b/docs/internal-developer-portal/plugins/static/plugins-screenshot.png differ diff --git a/docs/internal-developer-portal/plugins/static/refresh-component.png b/docs/internal-developer-portal/plugins/static/refresh-component.png new file mode 100644 index 00000000000..df8f0bf4633 Binary files /dev/null and b/docs/internal-developer-portal/plugins/static/refresh-component.png differ diff --git a/docs/internal-developer-portal/get-started/rbac.md b/docs/internal-developer-portal/rbac/rbac.md similarity index 99% rename from docs/internal-developer-portal/get-started/rbac.md rename to docs/internal-developer-portal/rbac/rbac.md index f07c32eb646..187bd39d531 100644 --- a/docs/internal-developer-portal/get-started/rbac.md +++ b/docs/internal-developer-portal/rbac/rbac.md @@ -1,7 +1,9 @@ --- title: Get Started with RBAC -sidebar_position: 9 +sidebar_position: 1 sidebar_label: Get Started with RBAC +redirect_from: + - /docs/internal-developer-portal/get-started/rbac --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; diff --git a/docs/internal-developer-portal/get-started/scorecard-quickstart.md b/docs/internal-developer-portal/scorecards/scorecard-quickstart.md similarity index 91% rename from docs/internal-developer-portal/get-started/scorecard-quickstart.md rename to docs/internal-developer-portal/scorecards/scorecard-quickstart.md index 26e499dbaab..fc72b6a85aa 100644 --- a/docs/internal-developer-portal/get-started/scorecard-quickstart.md +++ b/docs/internal-developer-portal/scorecards/scorecard-quickstart.md @@ -1,15 +1,16 @@ --- title: Get Started with Scorecards description: Learn how to create Scorecards to assess and track the readiness of your software components in the catalog. -sidebar_position: 5 +sidebar_position: 2 redirect_from: - /docs/internal-developer-portal/scorecards/scorecard-quickstart + - /docs/internal-developer-portal/get-started/scorecard-quickstart sidebar_label: Get Started with Scorecards --- ## Introduction -With your [catalog populated with software components](/docs/internal-developer-portal/get-started/catalog-2o.md) and [plugins enabled](/docs/internal-developer-portal/get-started/enable-a-new-plugin), it's time to create a scorecard. Using the [catalog datasource](https://developer.harness.io/docs/internal-developer-portal/scorecards/checks-datasources#catalog), you can monitor the existence of essential root fields and integrations defined through annotations in the catalog-info.yaml metadata. Tracking this information within the catalog helps to enforce organizational engineering standards. +With your [catalog populated with software components](/docs/internal-developer-portal/get-started/catalog-2o.md) and [plugins enabled](/docs/internal-developer-portal/plugins/enable-a-new-plugin), it's time to create a scorecard. Using the [catalog datasource](https://developer.harness.io/docs/internal-developer-portal/scorecards/checks-datasources#catalog), you can monitor the existence of essential root fields and integrations defined through annotations in the catalog-info.yaml metadata. Tracking this information within the catalog helps to enforce organizational engineering standards. ## Create a catalog readiness Scorecard diff --git a/docs/internal-developer-portal/scorecards/scorecard.md b/docs/internal-developer-portal/scorecards/scorecard.md index 6ead99d55a8..2457de9140b 100644 --- a/docs/internal-developer-portal/scorecards/scorecard.md +++ b/docs/internal-developer-portal/scorecards/scorecard.md @@ -1,7 +1,7 @@ --- title: Scorecards Overview description: Measure software maturity and enforce best practices -sidebar_position: 3 +sidebar_position: 1 sidebar_label: Overview redirect_from: - /docs/internal-developer-portal/features/scorecard diff --git a/docs/internal-developer-portal/scorecards/static/catalog-readiness-0.png b/docs/internal-developer-portal/scorecards/static/catalog-readiness-0.png new file mode 100644 index 00000000000..53a4f1a214d Binary files /dev/null and b/docs/internal-developer-portal/scorecards/static/catalog-readiness-0.png differ diff --git a/docs/internal-developer-portal/scorecards/static/edit-scorecard.png b/docs/internal-developer-portal/scorecards/static/edit-scorecard.png new file mode 100644 index 00000000000..57bd23922b1 Binary files /dev/null and b/docs/internal-developer-portal/scorecards/static/edit-scorecard.png differ diff --git a/docs/internal-developer-portal/scorecards/static/jira-custom-check.png b/docs/internal-developer-portal/scorecards/static/jira-custom-check.png index 77ef900f9af..56b41094cfd 100644 Binary files a/docs/internal-developer-portal/scorecards/static/jira-custom-check.png and b/docs/internal-developer-portal/scorecards/static/jira-custom-check.png differ diff --git a/docs/internal-developer-portal/scorecards/static/readiness-applied-0.png b/docs/internal-developer-portal/scorecards/static/readiness-applied-0.png new file mode 100644 index 00000000000..fc7b83ead65 Binary files /dev/null and b/docs/internal-developer-portal/scorecards/static/readiness-applied-0.png differ diff --git a/docs/internal-developer-portal/scorecards/static/scorecards-aggregate.png b/docs/internal-developer-portal/scorecards/static/scorecards-aggregate.png new file mode 100644 index 00000000000..2634e72b2e4 Binary files /dev/null and b/docs/internal-developer-portal/scorecards/static/scorecards-aggregate.png differ diff --git a/docs/internal-developer-portal/static/harness-idp-overview-2.jpg b/docs/internal-developer-portal/static/harness-idp-overview-2.jpg new file mode 100644 index 00000000000..f734bd3c09e Binary files /dev/null and b/docs/internal-developer-portal/static/harness-idp-overview-2.jpg differ diff --git a/docs/internal-developer-portal/static/harness-idp-overview.jpg b/docs/internal-developer-portal/static/harness-idp-overview.jpg new file mode 100644 index 00000000000..64200da74fc Binary files /dev/null and b/docs/internal-developer-portal/static/harness-idp-overview.jpg differ diff --git a/docs/internal-developer-portal/static/harness-idp-overview.png b/docs/internal-developer-portal/static/harness-idp-overview.png new file mode 100644 index 00000000000..a9463c0f246 Binary files /dev/null and b/docs/internal-developer-portal/static/harness-idp-overview.png differ diff --git a/docs/internal-developer-portal/static/harnessidpoverview.png b/docs/internal-developer-portal/static/harnessidpoverview.png new file mode 100644 index 00000000000..1b3a1a9e3d6 Binary files /dev/null and b/docs/internal-developer-portal/static/harnessidpoverview.png differ diff --git a/docs/internal-developer-portal/static/software-catalog-overview.png b/docs/internal-developer-portal/static/software-catalog-overview.png new file mode 100644 index 00000000000..5f920468899 Binary files /dev/null and b/docs/internal-developer-portal/static/software-catalog-overview.png differ diff --git a/docs/internal-developer-portal/static/trends-scorecard-2.png b/docs/internal-developer-portal/static/trends-scorecard-2.png new file mode 100644 index 00000000000..da7c1876592 Binary files /dev/null and b/docs/internal-developer-portal/static/trends-scorecard-2.png differ diff --git a/docs/internal-developer-portal/static/workflows-overview.png b/docs/internal-developer-portal/static/workflows-overview.png new file mode 100644 index 00000000000..ffec0ba1dfc Binary files /dev/null and b/docs/internal-developer-portal/static/workflows-overview.png differ diff --git a/docs/internal-developer-portal/techdocs/enable-docs.md b/docs/internal-developer-portal/techdocs/enable-docs.md index 43b8dfad988..e23bb8f0bad 100644 --- a/docs/internal-developer-portal/techdocs/enable-docs.md +++ b/docs/internal-developer-portal/techdocs/enable-docs.md @@ -1,16 +1,18 @@ --- -title: Enable documentation for your Component -description: Learn how you can enable the TechDocs plugin to show your Markdown docs on the **Docs** tab of the catalog page. +title: Enable Documentation for your Component +description: Learn how you can enable the TechDocs plugin to show your Markdown docs on the Docs tab of the catalog page. sidebar_position: 1 +sidebar_label: Enable Documentation for your Component +redirect_from: +- /docs/internal-developer-portal/get-started/enable-docs --- - +## Introduction -By default, the **Docs** tab in your catalog does not include documentation for a new software component. However, you can quickly publish Markdown documentation to the **Docs** tab. +Now that you have [added your software components](/docs/internal-developer-portal/get-started/catalog-2o.md) to the catalog, [enabled plugins](/docs/internal-developer-portal/plugins/enable-a-new-plugin) and [created a scorecard](/docs/internal-developer-portal/scorecards/scorecard-quickstart) it's time to include documentation. By default, the **Docs** tab in the catalog does not display documentation for new components. This tutorial will show you how to quickly publish Markdown documentation to the **Docs** tab. ![](static/docs-empty.png) - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -20,6 +22,11 @@ Docs in Harness IDP is powered by [TechDocs Backstage Plugin](https://backstage. ::: +There are two ways to add documentation for your component in Backstage TechDocs: + +1. By adding the documentation in the same directory as the software component's source code. (Docs Available in the Root of Source Folder) +2. By adding the documentation in a separate `docs` directory, distinct from the software component's source code directory. (Docs Available in Some Other Location) + @@ -27,16 +34,17 @@ Docs in Harness IDP is powered by [TechDocs Backstage Plugin](https://backstage. To add documentation: -1. Create a `docs` directory next to where you have `catalog-info.yaml`. The directory tree would look something like this: +1. Create a `docs` directory next to where you have `catalog-info.yaml`. + +The directory tree must look something like this: ```sh ├── catalog-info.yaml -├── mkdocs.yml └── docs └── index.md ``` -2. Inside the `docs` directory, create a `index.md` file with the following contents. +2. Inside the `docs` directory, create an `index.md` file with the following content. ``` # Welcome! @@ -87,25 +95,10 @@ topics outlined in this example table: TechDocs uses MkDocs as the static site generator. Visit https://www.mkdocs.org for more information about MkDocs. ``` -3. Now add an `mkdocs.yaml` next to where you have the `catalog-info.yaml`, `mkdocs.yml` file is a sibling of `catalog-info.yaml` - -Here's the content for `mkdocs.yaml`: - -```YAML -site_name: 'Example Documentation' -repo_url: https://github.com/your_org/your_repo -edit_uri: url to your index.md - -nav: - - Home: index.md - -plugins: - - techdocs-core -``` -4. Edit the `catalog-info.yaml` and add the TechDocs annotation. +3. Edit the `catalog-info.yaml` and add the TechDocs annotation. -5. In the `metadata.annotations` field, add `backstage.io/techdocs-ref: dir:.`. +4. In the `metadata.annotations` field, add `backstage.io/techdocs-ref: dir:.`. ![](static/techdocs-ref.png) @@ -113,32 +106,7 @@ plugins: When you see`dir:.`, you can translate it to mean: - That the documentation source code lives in the same location as the `catalog-info.yaml` file. -- That, in particular, the `mkdocs.yml` file is a sibling of `catalog-info.yaml` (meaning, it is in the same directory) -- And that all of the source content of the documentation would be available if one were to download the directory containing those two files (as well as all sub-directories). - -The directory tree of the entity would look something like this: - -```sh -├── catalog-info.yaml -├── mkdocs.yml -└── docs - └── index.md -``` - -If, for example, you wanted to keep a lean root directory, you could place your `mkdocs.yml` file in a subdirectory and update the `backstage.io/techdocs-ref` annotation value accordingly, e.g. to `dir:./sub-folder:` - -```sh -├── catalog-info.yaml -└── sub-folder - ├── mkdocs.yml - └── docs - └── index.md -``` -:::warning - - Please note `dir:../.` does not work in the above use case due to security reasons. - -::: +- That, in particular, the `docs` folder is a sibling of `catalog-info.yaml` (meaning, it is in the same directory) @@ -151,15 +119,6 @@ In situations where your TechDocs source content is managed and stored in a loca - Repository at account scope: `url:https://app.harness.io/ng/account/account_id/module/code/repos/repo_name` - Repository at organization scope: `url:https://app.harness.io/ng/account/account_id/module/code/orgs/org_id/repos/repo_name` - Repository at project scope: `url:https://app.harness.io/ng/account/account_id/module/code/orgs/org_id/projects/project_id/repos/repo_name` - -:::info - -If your account uses a vanity hostname in the URL, such as `company_name.harness.io`, make sure you update it to the hostname used for the HCR integration (e.g., `app.harness.io`, `app3.harness.io`, etc.) when adding the URL to the annotation. To verify the correct hostname, navigate to **Admin** -> **Git Integrations**. - -![](./static/check-host-name.png) - -::: - - GitHub: `url:https://githubhost.com/org/repo/tree/` - GitLab: `url:https://gitlabhost.com/org/repo/tree/` - Bitbucket: `url:https://bitbuckethost.com/project/repo/src/` @@ -180,7 +139,6 @@ metadata: backstage.io/techdocs-ref: url:https://github.com/backstage/backstage/tree/master/plugins/techdocs-backend/examples/documented-component ``` - @@ -191,5 +149,4 @@ metadata: 6. Navigate to the **Docs** tab to review the documentation, which should become available shortly. -![](static/docs-rendered.png) - +![](static/docs-rendered.png) \ No newline at end of file diff --git a/docs/internal-developer-portal/whats-supported.md b/docs/internal-developer-portal/whats-supported.md index b418f721cf9..414a6773c7a 100644 --- a/docs/internal-developer-portal/whats-supported.md +++ b/docs/internal-developer-portal/whats-supported.md @@ -5,89 +5,131 @@ sidebar_label: What's Supported sidebar_position: 1 --- -Harness Internal Developer Portal integrates with a number of third-party providers to provide a single pane of glass for developers. +Harness Internal Developer Portal integrates with a number of third-party providers to provide a single pane of glass for developers. This page outlines all the supported integrations, providers, and features available in Harness IDP. -## Plugins for IDP +--- -Harness IDP supports a number of plugins to integrate the software catalog with third-party providers: +## 1. Git Providers -* [Available Plugins](/docs/category/available-plugins) - Our curated collection including: - * [Harness Native Plugins](/docs/category/harness-modules) - Official plugins that integrate seamlessly with other Harness modules like CI/CD, Feature Flags, Chaos Engineering, STO and more - * Third-party and community plugins from the Backstage ecosystem +Harness IDP supports the following Git providers for storing and managing catalog entity YAML definitions and Workflow YAML definitions: -These are carefully selected from the broader [Backstage plugin marketplace](https://backstage.io/plugins). +| **Git Provider** | **Support Type** | **Documentation** | +|------------------|------------------|-------------------| +| **Harness Code Repository** | Default | [Learn more](https://developer.harness.io/docs/code-repository/get-started/overview/) | +| **GitHub** | Cloud & Enterprise | [Cloud](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-github) \| [Enterprise](https://docs.github.com/en/enterprise-server@3.14/admin/overview/about-github-enterprise-server) | +| **GitLab** | Cloud & Self-Hosted | [Learn more](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-gitlab) | +| **Bitbucket** | Cloud & Server | [Learn more](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-bitbucket) | +| **Azure Repos** | Cloud | [Learn more](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-a-azure-repo) | -Any URLs behind any firewall or private URLs used in plugins should be accessed through [Harness Delegate](https://developer.harness.io/docs/platform/delegates/delegate-concepts/delegate-overview/). +:::warning Authentication Type -## Git providers that IDP supports +Backstage doesn't support SSH auth type for integrations. **Only HTTP connection is supported** for all Git provider-based connectors in IDP. -Any software component can be registered in the catalog by using a YAML file stored in the following Git providers: +API calls in IDP are used to fetch YAML data, last commit SHA, and detect any new changes. SSH authentication cannot be used for making these API calls; it is only used for cloning repositories. Therefore, the main Git connector for IDP Git integration must support API requests, hence HTTP is the only supported method. -* [Harness Code Repository (Default)](https://developer.harness.io/docs/code-repository/get-started/overview/) -* GitHub ([Cloud](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-github) & [Enterprise](https://docs.github.com/en/enterprise-server@3.14/admin/overview/about-github-enterprise-server)) -* [GitLab](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-gitlab) (Cloud & Self Hosted) -* [Bitbucket](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-code-repo#connect-to-bitbucket) -* [Azure Repos](https://developer.harness.io/docs/platform/connectors/code-repositories/connect-to-a-azure-repo) +::: -We support multiple connectors with different hostname for a single git provider to fetch `catalog-info.yaml` at once. E.g., Users can use connectors for both `github.com` and `github enterprise` and fetch entity YAML at the same time. +--- -:::warning +## 2. CI/CD Providers -Backstage doesn't support SSH auth type for integrations, hence only HTTP connection is supported for all the git provider based connectors in IDP. +Harness IDP is **CI/CD agnostic** and integrates with various CI/CD tools: -API calls in IDP are used to fetch YAML data, last commit SHA, and detect any new changes. SSH authentication cannot be used for making these API calls; it is only used for cloning repositories. Therefore, the main Git connector for IDP Git integration must support API requests, hence HTTP is only supported +| **CI/CD Provider** | **Support** | **Notes** | +|-------------------|-------------|-----------| +| **Harness CI/CD** | Fully Supported | Recommended for the best out-of-the-box experience | +| **GitLab CI/CD** | Supported | Works seamlessly with IDP workflows | +| **GitHub Actions** | Supported | Compatible with IDP orchestration | +| **CircleCI** | Supported | Can be integrated with IDP workflows | +| **Jenkins** | Supported | Compatible through pipeline triggers | +| **Other CI/CD Tools** | Supported | Any CI/CD tool that can be triggered via API/webhook | -::: +:::info Secret Management -## CI/CD providers that IDP supports +Harness IDP requires some secrets to be set for plugins and external integrations in the Catalog to work. We support all types of [secret managers](https://developer.harness.io/docs/category/secrets-management) for secure credential storage. -Harness IDP is agnostic to your CI/CD provider and works with tools such as GitLab, CircleCI, and GitHub Actions. You can use Harness CI/CD for a better out-of-the-box experience, but it's not required. +::: For information about what's supported for other Harness modules and the Harness Platform overall, refer to [Supported platforms and technologies](/docs/platform/platform-whats-supported.md). -:::info +--- +## 3. Harness IDP Plugins + +Harness IDP supports a curated collection of plugins to integrate the software catalog with third-party providers and extend functionality: -Harness IDP requires some secrets to be set for plugins and external integrations in Catalog to work. In these cases, we support all kind of [secret managers](https://developer.harness.io/docs/category/secrets-management). +| **Plugin Type** | **Description** | **Documentation** | +|----------------|-----------------|-------------------| +| **Harness Native Plugins** | Official plugins that integrate seamlessly with other Harness modules (CI/CD, Feature Flags, Chaos Engineering, STO, etc.) | [View Harness Plugins](/docs/category/harness-modules) | +| **Backstage Community Plugins** | Third-party and community plugins from the Backstage ecosystem | [View Available Plugins](/docs/category/available-plugins) | +| **Custom Plugins** | Build your own frontend plugins for specific use cases | [Build Custom Plugins](https://developer.harness.io/docs/internal-developer-portal/plugins/custom-plugins/overview) | -::: +--- -## Workflow Actions to Trigger Harness Pipeline +## 4. IDP Entities for Git Experience -### [trigger:harness-custom-pipeline](https://developer.harness.io/docs/internal-developer-portal/flows/custom-actions#1-triggerharness-custom-pipeline) +Harness IDP Git Experience allows you to store and version control your IDP configurations in Git repositories. The following table shows which IDP entities support Git Experience: + +| **IDP Entity** | **Git Experience Support** | **Notes** | +|----------------|---------------------------|-----------| +| **Catalog Entities** | Supported | Component, API, Resource, and other catalog entities can be stored as YAML files in Git | +| **Workflows** | Supported | Workflow definitions can be stored and tracked in Git repositories | +| **Scorecards** | Not Supported | Scorecards don't currently support Git Experience | +| **Plugins** | Not Supported | Plugin configurations don't currently support Git Experience | +| **Layouts** | Not Supported | Layout configurations don't currently support Git Experience | + +--- -- This action currently supports [IDP Stage](https://developer.harness.io/docs/internal-developer-portal/flows/idp-stage) along with the [Deploy Stage](https://developer.harness.io/docs/platform/pipelines/add-a-stage#add-a-stage), [Custom Stage](https://developer.harness.io/docs/platform/pipelines/add-a-stage/#add-a-custom-stage)(**Available with Harness CD License or Free Tier usage**), Pipelines using [Pipeline Templates](https://developer.harness.io/docs/platform/templates/create-pipeline-template/) and [codebase disabled](/docs/continuous-integration/use-ci/codebase-configuration/create-and-configure-a-codebase.md#disable-clone-codebase-for-specific-stages) **Build Stage(Only Available with Harness CI License)** with [Run step](https://developer.harness.io/docs/continuous-integration/use-ci/run-step-settings). -- All input, except for [pipeline expressions](https://developer.harness.io/docs/platform/variables-and-expressions/harness-variables/#pipeline-expressions), must be [fixed values](https://developer.harness.io/docs/platform/variables-and-expressions/runtime-inputs/#fixed-values). +## 5. Harness IDP Workflow Actions -### [trigger:trigger-pipeline-with-webhook](https://developer.harness.io/docs/internal-developer-portal/flows/custom-actions#2-triggertrigger-pipeline-with-webhook) +Harness IDP Workflows use custom actions to trigger and orchestrate Harness Pipelines. The following workflow actions are supported: -- This action supports all types of pipeline with a webhook based trigger. It triggers a pipeline execution based on the input-set identifier and a webhook name. +#### 5.1. trigger:harness-custom-pipeline -:::info +This action allows you to trigger Harness Pipelines directly from IDP workflows. -Workflows in IDP use Harness Pipelines as Orchestrator, so any secret requirement in workflows for eg., write action in git providers, can be added by using the [third-party secret managers](https://developer.harness.io/docs/platform/secrets/secrets-management/harness-secret-manager-overview#using-third-party-secret-managers) enabled through [Delegates](https://developer.harness.io/docs/platform/secrets/secrets-management/harness-secret-manager-overview#harness-secret-management-process-overview). +**Supported Pipeline Types:** +- [IDP Stage](https://developer.harness.io/docs/internal-developer-portal/flows/idp-stage) +- [Deploy Stage](https://developer.harness.io/docs/platform/pipelines/add-a-stage#add-a-stage) +- [Custom Stage](https://developer.harness.io/docs/platform/pipelines/add-a-stage/#add-a-custom-stage) (Available with Harness CD License or Free Tier) +- Pipelines using [Pipeline Templates](https://developer.harness.io/docs/platform/templates/create-pipeline-template/) +- [Codebase-disabled Build Stage](/docs/continuous-integration/use-ci/codebase-configuration/create-and-configure-a-codebase.md#disable-clone-codebase-for-specific-stages) with [Run step](https://developer.harness.io/docs/continuous-integration/use-ci/run-step-settings) (Available with Harness CI License) -You can use Harness Secret Manager as well for the above described function. +**Requirements:** +- All inputs, except for [pipeline expressions](https://developer.harness.io/docs/platform/variables-and-expressions/harness-variables/#pipeline-expressions), must be [fixed values](https://developer.harness.io/docs/platform/variables-and-expressions/runtime-inputs/#fixed-values). + +[View Documentation](https://developer.harness.io/docs/internal-developer-portal/flows/custom-actions#1-triggerharness-custom-pipeline) + +#### 5.2. trigger:trigger-pipeline-with-webhook + +This action triggers pipeline execution using webhook-based triggers. + +**Features:** +- Supports all types of pipelines with webhook-based triggers +- Triggers pipeline execution based on input-set identifier and webhook name + +[View Documentation](https://developer.harness.io/docs/internal-developer-portal/flows/custom-actions#2-triggertrigger-pipeline-with-webhook) + +:::info Secret Management for Workflows + +Workflows in IDP use Harness Pipelines as orchestrators. Any secret requirements in workflows (e.g., write actions in Git providers) can be managed using: +- [Third-party secret managers](https://developer.harness.io/docs/platform/secrets/secrets-management/harness-secret-manager-overview#using-third-party-secret-managers) enabled through [Delegates](https://developer.harness.io/docs/platform/secrets/secrets-management/harness-secret-manager-overview#harness-secret-management-process-overview) +- Harness Secret Manager ::: -## Supported IDP Entities in Git Experience -Harness IDP Git Experience supports the following Harness IDP entities for this feature: - -| **IDP Entity** | **Git Experience Support** | **Notes** | -| ------- | -------- | -------- | -| **Catalog Entities** | Supports Git Experience | IDP Catalog Entities like Component, API, Resource - all support Harness IDP Git Experience i.e. you can store Catalog entity YAMLs in Git. | -| **Workflows** | Supports Git Experience | Workflows support Harness IDP Git Experience i.e. you can store and track Workflow YAMLs in Git. | -| **Scorecards** | Not Supported | At present, scorecards don't support Git Experience. | -| **Plugins** | Not Supported | At present, plugin configurations don't support Git Experience. | -| **Layouts** | Not Supported | At present, layouts don't support Git Experience. | - -## Miscellaneous - -| **What do we Support?** | **Links** | -|----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Custom Plugins | We support only [Frontend Backstage Plugins](https://developer.harness.io/docs/internal-developer-portal/plugins/build-a-frontend-plugin) as [Custom Plugins](https://developer.harness.io/docs/internal-developer-portal/plugins/custom-plugins/overview) | -| Scorecard Data Sources | These are the list of available Scorecard [Data Sources](https://developer.harness.io/docs/internal-developer-portal/scorecards/checks-datasources) | -| Backstage Plugins | [Available Backstage Plugins](https://developer.harness.io/docs/category/available-plugins) | -| Custom Theming And Branding | Not supported. | -| Developer Homepage Customisation | You can customize the Homepage for a personalized experience. | -| API support to update entities | We support [Ingestion APIs](https://developer.harness.io/docs/internal-developer-portal/catalog/custom-catalog-properties) to update entities in the catalog. | +--- + +## 6. Miscellaneous + +Additional features and capabilities supported in Harness IDP: + +| **Feature** | **Support Status** | **Details** | +|------------|-------------------|-------------| +| **Custom Plugins** | Supported | We support only [Frontend Backstage Plugins](https://developer.harness.io/docs/internal-developer-portal/plugins/build-a-frontend-plugin) as [Custom Plugins](https://developer.harness.io/docs/internal-developer-portal/plugins/custom-plugins/overview) | +| **Scorecard Data Sources** | Supported | Multiple data sources available for scorecards. [View all data sources](https://developer.harness.io/docs/internal-developer-portal/scorecards/checks-datasources) | +| **Backstage Plugins** | Supported | Curated collection of Backstage plugins. [View available plugins](/docs/category/available-plugins) | +| **Custom Theming and Branding** | Not Supported | Custom theming is not currently available | +| **Developer Homepage Customization** | Supported | You can customize the Homepage for a personalized developer experience | +| **API Support for Entity Updates** | Supported | [Ingestion APIs](https://developer.harness.io/docs/internal-developer-portal/catalog/custom-catalog-properties) available to programmatically update catalog entities | +| **Harness Delegate** | Supported | Required for accessing private URLs and resources behind firewalls | +| **Secret Managers** | Supported | All types of [secret managers](https://developer.harness.io/docs/category/secrets-management) are supported | diff --git a/sidebars.ts b/sidebars.ts index 4aef83be8fa..d4d227145f2 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -3448,17 +3448,8 @@ const sidebars: SidebarsConfig = { value: ' New to IDP? ', className: 'horizontal-bar', }, - 'internal-developer-portal/whats-supported', 'internal-developer-portal/overview', - { - type: 'category', - label: 'Harness IDP 2.0 Overview', - link: { - type: 'generated-index', - }, - collapsed: true, - items: [{ type: 'autogenerated', dirName: 'internal-developer-portal/idp-2o-overview' }], - }, + 'internal-developer-portal/whats-supported', { type: 'category', label: 'Get Started', @@ -3468,7 +3459,6 @@ const sidebars: SidebarsConfig = { collapsed: true, items: [{ type: 'autogenerated', dirName: 'internal-developer-portal/get-started' }], }, - 'internal-developer-portal/harness-vs-backstage', { type: 'html', value: ' Use IDP ', @@ -3621,6 +3611,16 @@ const sidebars: SidebarsConfig = { collapsed: true, items: [{ type: 'autogenerated', dirName: 'internal-developer-portal/kb-idp' }], }, + { + type: 'category', + label: 'Harness IDP 2.0 Handbook', + link: { + type: 'generated-index', + }, + collapsed: true, + items: [{ type: 'autogenerated', dirName: 'internal-developer-portal/idp-2o-overview' }], + }, + 'internal-developer-portal/harness-vs-backstage', { type: 'category', label: 'IDP Tutorials', diff --git a/src/components/Docs/data/internalDeveloperPortal.ts b/src/components/Docs/data/internalDeveloperPortal.ts index 02333a2cd11..65cce511cd4 100644 --- a/src/components/Docs/data/internalDeveloperPortal.ts +++ b/src/components/Docs/data/internalDeveloperPortal.ts @@ -22,7 +22,7 @@ export const docsCards: CardSections = [ title: "Get started with IDP", module: MODULES.idp, description: "Learn how to configure your IDP and start onboarding.", - link: "/docs/internal-developer-portal/get-started/", + link: "/docs/internal-developer-portal/get-started/setup-git-integration", }, ], }, diff --git a/src/components/Docs/data/platformData.ts b/src/components/Docs/data/platformData.ts index 91a131bda0e..d270aaf16bf 100644 --- a/src/components/Docs/data/platformData.ts +++ b/src/components/Docs/data/platformData.ts @@ -100,7 +100,7 @@ export const docsCards: CardSections = [ title: "IDP", module: MODULES.idp, description: "Internal Developer Portal onboarding guide", - link: "/docs/internal-developer-portal/get-started", + link: "/docs/internal-developer-portal/get-started/setup-git-integration", }, { title: "AASP",