UNPKG

@roadiehq/backstage-plugin-argo-cd

Version:
307 lines (300 loc) 11 kB
import * as _backstage_core_components from '@backstage/core-components'; import * as _backstage_catalog_model from '@backstage/catalog-model'; import { Entity } from '@backstage/catalog-model'; import * as react_jsx_runtime from 'react/jsx-runtime'; import * as _backstage_core_plugin_api from '@backstage/core-plugin-api'; import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; import * as t from 'io-ts'; import { Type } from 'io-ts'; declare const argocdPlugin: _backstage_core_plugin_api.BackstagePlugin<{ entityContent: _backstage_core_plugin_api.RouteRef<undefined>; }, {}, {}>; declare const EntityArgoCDContent: () => react_jsx_runtime.JSX.Element; declare const EntityArgoCDOverviewCard: (props: { entity?: _backstage_catalog_model.Entity; extraColumns?: _backstage_core_components.TableColumn[]; title?: string; subtitle?: string; }) => react_jsx_runtime.JSX.Element; declare const EntityArgoCDHistoryCard: () => react_jsx_runtime.JSX.Element; declare const argoCDAppDeployRevisionDetails: t.TypeC<{ author: t.UnionC<[t.StringC, t.UndefinedC]>; date: t.UnionC<[t.StringC, t.UndefinedC]>; message: t.UnionC<[t.StringC, t.UndefinedC]>; }>; declare const argoCDAppDetails: t.TypeC<{ metadata: t.TypeC<{ name: t.StringC; namespace: t.StringC; instance: t.UnionC<[t.TypeC<{ name: t.UnionC<[t.StringC, t.UndefinedC]>; url: t.UnionC<[t.StringC, t.UndefinedC]>; }>, t.UndefinedC]>; }>; status: t.TypeC<{ sync: t.TypeC<{ status: t.StringC; }>; health: t.TypeC<{ status: t.StringC; }>; operationState: t.UnionC<[t.TypeC<{ startedAt: t.StringC; finishedAt: t.UnionC<[t.StringC, t.UndefinedC]>; }>, t.UndefinedC]>; history: t.UnionC<[t.ArrayC<t.TypeC<{ id: t.UnionC<[t.NumberC, t.UndefinedC]>; revision: t.UnionC<[t.TypeC<{ revisionID: t.UnionC<[t.NumberC, t.UndefinedC]>; author: t.UnionC<[t.NumberC, t.UndefinedC]>; date: t.UnionC<[t.StringC, t.UndefinedC]>; message: t.UnionC<[t.StringC, t.UndefinedC]>; }>, t.UndefinedC, t.StringC]>; deployStartedAt: t.UnionC<[t.StringC, t.UndefinedC]>; deployedAt: t.UnionC<[t.StringC, t.UndefinedC]>; }>>, t.UndefinedC]>; }>; }>; type ArgoCDAppDetails = t.TypeOf<typeof argoCDAppDetails>; type ArgoCDAppDeployRevisionDetails = t.TypeOf<typeof argoCDAppDeployRevisionDetails>; declare const argoCDAppList: t.TypeC<{ items: t.UnionC<[t.ArrayC<t.TypeC<{ metadata: t.TypeC<{ name: t.StringC; namespace: t.StringC; instance: t.UnionC<[t.TypeC<{ name: t.UnionC<[t.StringC, t.UndefinedC]>; url: t.UnionC<[t.StringC, t.UndefinedC]>; }>, t.UndefinedC]>; }>; status: t.TypeC<{ sync: t.TypeC<{ status: t.StringC; }>; health: t.TypeC<{ status: t.StringC; }>; operationState: t.UnionC<[t.TypeC<{ startedAt: t.StringC; finishedAt: t.UnionC<[t.StringC, t.UndefinedC]>; }>, t.UndefinedC]>; history: t.UnionC<[t.ArrayC<t.TypeC<{ id: t.UnionC<[t.NumberC, t.UndefinedC]>; revision: t.UnionC<[t.TypeC<{ revisionID: t.UnionC<[t.NumberC, t.UndefinedC]>; author: t.UnionC<[t.NumberC, t.UndefinedC]>; date: t.UnionC<[t.StringC, t.UndefinedC]>; message: t.UnionC<[t.StringC, t.UndefinedC]>; }>, t.UndefinedC, t.StringC]>; deployStartedAt: t.UnionC<[t.StringC, t.UndefinedC]>; deployedAt: t.UnionC<[t.StringC, t.UndefinedC]>; }>>, t.UndefinedC]>; }>; }>>, t.NullC]>; }>; type ArgoCDAppList = t.TypeOf<typeof argoCDAppList>; declare const argoCDServiceList: t.ArrayC<t.TypeC<{ name: t.StringC; url: t.StringC; appName: t.UnionC<[t.ArrayC<t.StringC>, t.UndefinedC]>; }>>; type ArgoCDServiceList = t.TypeOf<typeof argoCDServiceList>; interface ArgoCDApi { listApps(options: { url: string; appSelector?: string; appNamespace?: string; projectName?: string; }): Promise<ArgoCDAppList>; getRevisionDetails(options: { url: string; app: string; appNamespace?: string; revisionID: string; instanceName?: string; }): Promise<ArgoCDAppDeployRevisionDetails>; getAppDetails(options: { url: string; appName: string; appNamespace?: string; instance?: string; }): Promise<ArgoCDAppDetails>; getAppListDetails(options: { url: string; appSelector: string; appNamespace?: string; instance?: string; }): Promise<ArgoCDAppList>; serviceLocatorUrl(options: { appName?: string; appSelector?: string; appNamespace?: string; }): Promise<ArgoCDServiceList | Error>; } declare const argoCDApiRef: _backstage_core_plugin_api.ApiRef<ArgoCDApi>; type Options = { discoveryApi: DiscoveryApi; backendBaseUrl: string; searchInstances: boolean; identityApi: IdentityApi; proxyPath?: string; useNamespacedApps: boolean; }; declare class ArgoCDApiClient implements ArgoCDApi { private readonly discoveryApi; private readonly backendBaseUrl; private readonly searchInstances; private readonly identityApi; private readonly useNamespacedApps; constructor(options: Options); getBaseUrl(): Promise<string>; getQueryParams(params: { [p: string]: string | undefined; }): string; fetchDecode<A, O, I>(url: string, typeCodec: Type<A, O, I>): Promise<A>; listApps(options: { url: string; appSelector?: string; appNamespace?: string; projectName?: string; }): Promise<{ items: { metadata: { name: string; namespace: string; instance: { name: string | undefined; url: string | undefined; } | undefined; }; status: { sync: { status: string; }; health: { status: string; }; operationState: { startedAt: string; finishedAt: string | undefined; } | undefined; history: { id: number | undefined; revision: string | { revisionID: number | undefined; author: number | undefined; date: string | undefined; message: string | undefined; } | undefined; deployStartedAt: string | undefined; deployedAt: string | undefined; }[] | undefined; }; }[] | null; }>; getRevisionDetails(options: { url: string; app: string; appNamespace?: string; revisionID: string; instanceName?: string; }): Promise<{ author: string | undefined; date: string | undefined; message: string | undefined; }>; getAppDetails(options: { url: string; appName: string; appNamespace?: string; instance?: string; }): Promise<{ metadata: { name: string; namespace: string; instance: { name: string | undefined; url: string | undefined; } | undefined; }; status: { sync: { status: string; }; health: { status: string; }; operationState: { startedAt: string; finishedAt: string | undefined; } | undefined; history: { id: number | undefined; revision: string | { revisionID: number | undefined; author: number | undefined; date: string | undefined; message: string | undefined; } | undefined; deployStartedAt: string | undefined; deployedAt: string | undefined; }[] | undefined; }; }>; getAppListDetails(options: { url: string; appSelector: string; appNamespace?: string; instance?: string; }): Promise<{ items: { metadata: { name: string; namespace: string; instance: { name: string | undefined; url: string | undefined; } | undefined; }; status: { sync: { status: string; }; health: { status: string; }; operationState: { startedAt: string; finishedAt: string | undefined; } | undefined; history: { id: number | undefined; revision: string | { revisionID: number | undefined; author: number | undefined; date: string | undefined; message: string | undefined; } | undefined; deployStartedAt: string | undefined; deployedAt: string | undefined; }[] | undefined; }; }[] | null; }>; serviceLocatorUrl(options: { appName?: string; appSelector?: string; appNamespace?: string; }): Promise<{ name: string; url: string; appName: string[] | undefined; }[]>; } declare const isArgocdAvailable: (entity: Entity) => boolean; declare const ARGOCD_ANNOTATION_APP_NAME = "argocd/app-name"; declare const ARGOCD_ANNOTATION_APP_SELECTOR = "argocd/app-selector"; declare const ARGOCD_ANNOTATION_APP_NAMESPACE = "argocd/app-namespace"; declare const ARGOCD_ANNOTATION_PROJECT_NAME = "argocd/project-name"; declare const ARGOCD_ANNOTATION_PROXY_URL = "argocd/proxy-url"; export { ARGOCD_ANNOTATION_APP_NAME, ARGOCD_ANNOTATION_APP_NAMESPACE, ARGOCD_ANNOTATION_APP_SELECTOR, ARGOCD_ANNOTATION_PROJECT_NAME, ARGOCD_ANNOTATION_PROXY_URL, type ArgoCDApi, ArgoCDApiClient, EntityArgoCDContent, EntityArgoCDHistoryCard, EntityArgoCDOverviewCard, type Options, argoCDApiRef, argocdPlugin, isArgocdAvailable, argocdPlugin as plugin };