dt-app
Version:
The Dynatrace App Toolkit is a tool you can use from your command line to create, develop, and deploy apps on your Dynatrace environment.
67 lines (66 loc) • 2.21 kB
TypeScript
import type { ActionManifest, CSPAppDirectives, DocumentsManifest, DocumentTypesManifest, FunctionManifest, OAuthScope, SettingsManifest } from '../utils/config/cli-options';
import type { IntentsDeclarations } from './intents';
import type { UiCommands } from './ui-commands';
export type DynatracePlatformDependency = {
name: string;
version: string;
};
export type DynatraceDependency = DynatracePlatformDependency & {
packageJsonDep?: string;
path?: string;
};
export type AppIcon = {
/** Path to the custom app icon relative to the app bundle root */
name: 'icon.svg' | 'icon.png';
/** Whether the app icon has been automatically generated */
generated: boolean;
};
/** Interface defining the manifest structure. */
export interface DynatraceApplicationManifest {
/** App id */
id: string;
/** App name */
name: string;
/** App description */
description: string;
/** App version */
version: string;
/** Metadata of all Dynatrace packages that contain a dynatrace-metadata.json */
dependencies?: DynatracePlatformDependency[];
/** Hide in App Launcher */
hidden?: boolean;
/** Intent capabilities */
intents?: IntentsDeclarations;
/** Action capabilities */
actions?: ActionManifest[];
/** App widget settings */
settings?: SettingsManifest;
/** Function capabilities */
functions?: Record<string, FunctionManifest>;
/** App documents */
documents?: DocumentsManifest;
/** App document types */
'document-types'?: DocumentTypesManifest;
/** Page tokens */
pageTokens?: Record<string, string>;
/** App icon options */
icon: AppIcon;
/**
* Represents a custom set of directives for the app
* The value holds the actual directive.
* For every directive there needs to be a comment provided that explains why this directive is necessary.
*/
csp?: CSPAppDirectives;
/**
* The list of authentication scopes your app needs.
*/
scopes: OAuthScope[];
/**
* The "SemVer" version of the app bundle.
*/
'app-bundle-version'?: string;
/**
* App ui Commands.
*/
uiCommands?: UiCommands;
}