diff --git a/content/en/software_catalog/service_definitions/_index.md b/content/en/software_catalog/service_definitions/_index.md index a58e3b51c4349..ef605c40db326 100644 --- a/content/en/software_catalog/service_definitions/_index.md +++ b/content/en/software_catalog/service_definitions/_index.md @@ -32,6 +32,9 @@ further_reading: Software Catalog uses definition schemas to store and display relevant metadata about your services. The schemas have built-in validation rules to ensure that only valid values are accepted. You can view warnings in the **Definition** tab on the Software Catalog side panel for any selected services. +{{< callout url="https://forms.gle/fwzarcSww6By7tn39" d_target="#signupModal" btn_hidden="false" header="Opt in to the Preview for the latest version of Software Catalog." >}} +{{< /callout >}} + ## Supported versions Datadog supports four versions of the definition schema: diff --git a/content/en/software_catalog/service_definitions/v3-0.md b/content/en/software_catalog/service_definitions/v3-0.md index 0ba2fd4d322ee..c26a920b4c92c 100644 --- a/content/en/software_catalog/service_definitions/v3-0.md +++ b/content/en/software_catalog/service_definitions/v3-0.md @@ -34,7 +34,16 @@ Schema v3.0 introduces several new features and enhancements to provide more fle - **Inheritance of system metadata**: Components within a system automatically inherit the system's metadata. It's no longer necessary to declare metadata for all related components one-by-one as in v2.1 and v2.2. -- **Precise code location**: You can add the mapping of your code location for your service. The `codeLocations` section in v3.0 specifies the locations of the code with the repository that contains the code and its associated `paths`. The `paths` attribute is a list of [globs][4] that should match paths in the repository. +- **Precise code location**: Add the mapping of your code location for your service. The `codeLocations` section in v3.0 specifies the locations of the code with the repository that contains the code and its associated `paths`. The `paths` attribute is a list of [globs][4] that should match paths in the repository. + +- **(In Preview) Custom entities**: Define custom entity types beyond Service, System, Datastore, Queue, and API. Scope scorecards and actions to specific entity types. + +- **(In Preview) Integrations**: Integrate with third-party tools to dynamically source information related to your components (for example, GitHub pull requests, PagerDuty incidents, and GitLab pipelines). Report on and write scorecard rules against any third-party source. + +- **(In Preview) Group by product or domain**: Organize components by product, enabling multiple layers of hierarchical grouping. + +{{< callout url="https://forms.gle/fwzarcSww6By7tn39" d_target="#signupModal" btn_hidden="false" header="Opt in to the Preview for the latest version of Software Catalog." >}} +{{< /callout >}} ## Metadata Schema v3.0 @@ -112,6 +121,44 @@ datadog: - fp2 {{< /code-block >}} +### Example YAML for `kind:custom.library` +{{< code-block lang="yaml" filename="entity.datadog.yaml" collapsible="true" >}} +apiVersion: v3 +kind: custom.library +metadata: + name: my-library + displayName: My Library + tags: + - tag:value + links: + - name: shopping-cart runbook + type: runbook + url: https://runbook/shopping-cart + - name: shopping-cart architecture + provider: gdoc + url: https://google.drive/shopping-cart-architecture + type: doc + - name: shopping-cart Wiki + provider: wiki + url: https://wiki/shopping-cart + type: doc + - name: shopping-cart source code + provider: github + url: http://github/shopping-cart + type: repo + contacts: + - name: Support Email + type: email + contact: team@shopping.com + - name: Support Slack + type: slack + contact: https://www.slack.com/archives/shopping-cart + owner: myteam + additionalOwners: + - name: opsTeam + type: operator +{{< /code-block >}} + ### Specify common components that are part of multiple systems If a single component is part of multiple systems, you must specify that component in the YAML for each system. For example, if the datastore `orders-postgres` is a component of both a postgres fleet and a web application, specify two YAMLs: