Skip to main content

Hub

The Hub API provides catalog content, such as Dynatrace Apps, Extensions, and Technologies, in the context of the current environment.

npm install @dynatrace-sdk/client-hub

appsClient

import { appsClient } from '@dynatrace-sdk/client-hub';

getAppDetails

appsClient.getAppDetails(config): Promise<Detail>

Provides detailed information about an app

Required scope: hub:catalog:read

Parameters

NameTypeDescription
config.addFieldsArray<"hubItemId" | "resourceContext" | "contentCount" | "manifest">A list of fields that are added to the default set of fields.
config.id*requiredstring

Returns

Return typeStatus codeDescription
Detail200Detailed information about an app

Throws

Error TypeError Message
ErrorResponseAn error occurred

Code example

import { appsClient } from "@dynatrace-sdk/client-hub";

const data = await appsClient.getAppDetails({ id: "..." });

getAppOverviewList

appsClient.getAppOverviewList(config): Promise<OverviewsList>

List overview information of all apps

Required scope: hub:catalog:read

Parameters

NameTypeDescription
config.addFieldsArray<"hubItemId" | "resourceContext" | "contentCount">A list of fields that are added to the default set of fields.
config.onlyCompatiblebooleanFilters apps and their releases to exclude incompatible instances. If true or missing the resulting releases will have compatibility of COMPATIBLE or UNKNOWN.

Returns

Return typeStatus codeDescription
OverviewsList200A list of overview information

Throws

Error TypeError Message
ErrorResponseAn error occurred

Code example

import { appsClient } from "@dynatrace-sdk/client-hub";

const data = await appsClient.getAppOverviewList();

getAppReleases

appsClient.getAppReleases(config): Promise<ReleasesList>

Provides a list of releases published for an app, including revoked releases

Required scope: hub:catalog:read

Parameters

NameType
config.addFieldsArray<"contentCount" | "manifest">
config.id*requiredstring

Returns

Return typeStatus codeDescription
ReleasesList200A list of releases

Throws

Error TypeError Message
ErrorResponseAn error occurred

Code example

import { appsClient } from "@dynatrace-sdk/client-hub";

const data = await appsClient.getAppReleases({ id: "..." });

categoriesClient

import { categoriesClient } from '@dynatrace-sdk/client-hub';

getCategories

categoriesClient.getCategories(config): Promise<Categories>

List Hub categories, including the IDs of the associated items and their content blocks if any

Required scope: hub:catalog:read

Returns

Return typeStatus codeDescription
Categories200The categories

Throws

Error TypeError Message
ErrorResponseAn error occurred

Code example

import { categoriesClient } from "@dynatrace-sdk/client-hub";

const data = await categoriesClient.getCategories();

extensionsClient

import { extensionsClient } from '@dynatrace-sdk/client-hub';

getExtensionDetails

extensionsClient.getExtensionDetails(config): Promise<Detail>

Provides detailed information about an extension

Required scope: hub:catalog:read

Parameters

NameTypeDescription
config.addFieldsArray<"hubItemId" | "extensionMetadata">A list of fields that are added to the default set of fields.
config.id*requiredstring

Returns

Return typeStatus codeDescription
Detail200Detailed information about an extension

Throws

Error TypeError Message
ErrorResponseAn error occurred

Code example

import { extensionsClient } from "@dynatrace-sdk/client-hub";

const data = await extensionsClient.getExtensionDetails({
id: "...",
});

getExtensionOverviewList

extensionsClient.getExtensionOverviewList(config): Promise<OverviewsList>

List overview information of all extensions

Required scope: hub:catalog:read

Parameters

NameTypeDescription
config.addFieldsArray<"hubItemId">A list of fields that are added to the default set of fields.
config.onlyCompatiblebooleanA flag to reduce the list to only include compatible extensions with their latest compatible version.

Returns

Return typeStatus codeDescription
OverviewsList200A list of overview information

Throws

Error TypeError Message
ErrorResponseAn error occurred

Code example

import { extensionsClient } from "@dynatrace-sdk/client-hub";

const data =
await extensionsClient.getExtensionOverviewList();

getExtensionReleases

extensionsClient.getExtensionReleases(config): Promise<ReleasesList>

Provides a list of releases published for an extension, including revoked releases

Required scope: hub:catalog:read

Parameters

NameTypeDescription
config.addFieldsArray<"extensionMetadata">A list of fields that are added to the default set of fields.
config.id*requiredstring

Returns

Return typeStatus codeDescription
ReleasesList200A list of releases

Throws

Error TypeError Message
ErrorResponseAn error occurred

Code example

import { extensionsClient } from "@dynatrace-sdk/client-hub";

const data = await extensionsClient.getExtensionReleases({
id: "...",
});

technologiesClient

import { technologiesClient } from '@dynatrace-sdk/client-hub';

getTechnologyDetails

technologiesClient.getTechnologyDetails(config): Promise<Detail>

Provides detailed information about a technology

Required scope: hub:catalog:read

Parameters

NameTypeDescription
config.addFieldsArray<"hubItemId">A list of fields that are added to the default set of fields.
config.id*requiredstring

Returns

Return typeStatus codeDescription
Detail200Detailed information about a technology

Throws

Error TypeError Message
ErrorResponseAn error occurred

Code example

import { technologiesClient } from "@dynatrace-sdk/client-hub";

const data = await technologiesClient.getTechnologyDetails({
id: "...",
});

getTechnologyOverviewList

technologiesClient.getTechnologyOverviewList(config): Promise<OverviewsList>

List overview information of all technologies

Required scope: hub:catalog:read

Parameters

NameTypeDescription
config.addFieldsArray<"hubItemId">A list of fields that are added to the default set of fields.
config.onlyCompatiblebooleanA flag to reduce the list to only include compatible technologies.

Returns

Return typeStatus codeDescription
OverviewsList200A list of overview information

Throws

Error TypeError Message
ErrorResponseAn error occurred

Code example

import { technologiesClient } from "@dynatrace-sdk/client-hub";

const data =
await technologiesClient.getTechnologyOverviewList();

Types

AssetCount

NameType
total*requirednumber

Author

NameType
name*requiredstring

Categories

NameType
categories*requiredArray<Category>

Category

An item category in the Hub

NameTypeDescription
id*requiredstringThe category's ID
itemIds*requiredArray<string>The IDs of the items associated with this category
page*requiredCategoryPage
subgroup*requiredstringGroups categories to related subpages

CategoryPage

NameTypeDescription
content*requiredArray<CategoryPageContent>
description*requiredstringThe customer facing description of this page
shortTitle*requiredstringA shorter version of the customer facing title of the page
title*requiredstringThe customer facing title of the page

CategoryPageContent

NameTypeDescription
blocksArray<CategoryPageContentBlock>The blocks of the items associated with this category
contentType*required"section" | "curated_content_block" | "content_block_group" | "browse_all_block"The type of content
description*requiredstringThe customer facing description of the content
itemIdsArray<string>The IDs of the items associated with this category
title*requiredstringThe customer facing title of the content

CategoryPageContentBlock

NameTypeDefault
descriptionstring""
href*requiredstring
hrefTextstring
image*requiredstring
title*requiredstring

ConstraintViolation

Contains information about a constraint violation caused by invalid input.

NameTypeDescription
message*requiredstringThe constraint violation description message
pathstringThe path of the parameter that caused the constraint violation

ContentCount

NameType
actionsAssetCount
documentsDocumentCount
settingsAssetCount

Dependency

NameTypeDescription
name*requiredstringThe name of the required dependency
version*requiredstringSemVer2 version of the required dependency

Detail

Meta data of the latest version of this item.

NameTypeDescription
authorAuthor
comingSoon*requiredboolean
contentCountContentCount
currentReleaseRelease
description*requiredstring
detailSections*requiredArray<DetailSection>
hasDetailSection*requiredbooleanWhether the details of this item contain one or more detail content sections.
hubItemIdstringThe Hub item id, aka. slug.
iconstring
id*requiredstringThe id is only unique within a specific type.
keywords*requiredArray<string>
linksArray<Link>
name*requiredstring
relatedItemsArray<Overview>
resourceContextResourceContext
type*required"APP" | "CLASSIC_APP" | "EXTENSION_2" | "TECHNOLOGY"
versionstringThe latest version of this item.

DetailSection

Can be either a Markdown or Gallery section. Only one of the respective properties is returned (markdown, or gallery).

NameType
galleryGallerySection
markdownMarkdownSection
sourceId*requiredstring

DocumentCount

NameType
total*requirednumber
typesDocumentCountTypes

DocumentCountTypes

type: Record<string, number | undefined>

Error

Standard error response

NameTypeDescription
code*requirednumberThe error code (HTTP response)
detailsErrorDetailsOptional details of the error
message*requiredstringThe error code (HTTP response)

ErrorDetails

Optional details of the error

NameTypeDescription
constraintViolationsArray<ConstraintViolation>A list of constraint violations of input parameters (path, query, request body)

ErrorEnvelope

NameTypeDescription
error*requiredErrorStandard error response

ExtensionMetadata

NameType
extensionContentsany
featureSetsArray<string>
featureSetsDetailsRecord<string | any>

GalleryImage

NameTypeDescription
altstringDescriptive text of what the image expresses
captionstring
resolutionsGalleryImageResolutions
src*requiredstring
titlestring

GalleryImageResolutions

type: Record<string, string | undefined>

GallerySection

NameType
images*requiredArray<GalleryImage>
title*requiredstring
NameTypeDescription
appIdstring
pageTokenstring
targetstring
type*required"DOCUMENTATION" | "MARKETING" | "ACTIVATION" | "REPOSITORY"

Links can be of the following types:

  • DOCUMENTATION - Technical documentation
  • MARKETING - Promotion material
  • ACTIVATION - Location within the product to configure the item
  • REPOSITORY - Source code repository

Manifest

NameTypeDefault
actionsany
contentCountContentCount
cspany
dependencies*requiredArray<Dependency>
documentsany
hidden*requiredbooleanfalse
intentsany
pageTokensany
scopesany

MarkdownSection

NameType
markdown*requiredstring
title*requiredstring

Overview

Meta data of the latest version of this item.

NameTypeDescription
authorAuthor
comingSoon*requiredboolean
contentCountContentCount
description*requiredstring
hasDetailSection*requiredbooleanWhether the details of this item contain one or more detail content sections.
hubItemIdstringThe Hub item id, aka. slug.
iconstring
id*requiredstringThe id is only unique within a specific type.
keywords*requiredArray<string>
linksArray<Link>
name*requiredstring
resourceContextResourceContext
type*required"APP" | "CLASSIC_APP" | "EXTENSION_2" | "TECHNOLOGY"
versionstringThe latest version of this item.

OverviewsList

A list of item meta data. Per default contains only compatible items, but can be controlled using the onlyCompatible flag.

NameType
items*requiredArray<Overview>

Release

NameTypeDescription
compatible*required"COMPATIBLE" | "INCOMPATIBLE" | "UNKNOWN"
extensionMetadataExtensionMetadata
manifestManifest
publicationTime*requiredDate
releaseNotesstringMarkdown content describing this release.
revocationRevocationThe existence of this object marks a release as being revoked. It contains information on why this is the case.
version*requiredstringA semantic versioning 2.0 conform version.

ReleasesList

NameType
releases*requiredArray<Release>

ResourceContext

NameType
operationsArray<"install">

Revocation

The existence of this object marks a release as being revoked. It contains information on why this is the case.

NameType
descriptionstring
reason*required"SECURITY_ISSUE" | "FAULTY_RELEASE" | "DEPRECATED"
severity"LOW" | "MEDIUM" | "HIGH"

Enums

Compatibility

Enum keys

Compatible | Incompatible | Unknown

ItemType

Enum keys

App | ClassicApp | Extension_2 | Technology

LinkType

Links can be of the following types:

  • DOCUMENTATION - Technical documentation
  • MARKETING - Promotion material
  • ACTIVATION - Location within the product to configure the item
  • REPOSITORY - Source code repository

Enum keys

Activation | Documentation | Marketing | Repository

OptionalAppDetailField

Enum keys

ContentCount | HubItemId | Manifest | ResourceContext

OptionalAppOverviewField

Enum keys

ContentCount | HubItemId | ResourceContext

OptionalAppReleaseField

Enum keys

ContentCount | Manifest

OptionalExtensionDetailField

Enum keys

ExtensionMetadata | HubItemId

OptionalExtensionReleaseField

Enum keys

ExtensionMetadata

OptionalOverviewField

Enum keys

HubItemId

OptionalTechnologyDetailField

Enum keys

HubItemId

ResourceContextOperationsItem

Enum keys

Install

RevocationReason

Enum keys

Deprecated | FaultyRelease | SecurityIssue

RevocationSeverity

Enum keys

High | Low | Medium

Still have questions?
Find answers in the Dynatrace Community