UNPKG

@openshift-console/dynamic-plugin-sdk

Version:

Provides core APIs, types and utilities used by dynamic plugins at runtime.

1,177 lines (780 loc) 59.9 kB
# OpenShift Console Extension Types 1. [console.action/filter](#consoleactionfilter) 2. [console.action/group](#consoleactiongroup) 3. [console.action/provider](#consoleactionprovider) 4. [console.action/resource-provider](#consoleactionresource-provider) 5. [console.alert-action](#consolealert-action) 6. [console.catalog/item-filter](#consolecatalogitem-filter) 7. [console.catalog/item-metadata](#consolecatalogitem-metadata) 8. [console.catalog/item-provider](#consolecatalogitem-provider) 9. [console.catalog/item-type](#consolecatalogitem-type) 10. [console.catalog/item-type-metadata](#consolecatalogitem-type-metadata) 11. [console.cluster-overview/inventory-item](#consolecluster-overviewinventory-item) 12. [console.cluster-overview/multiline-utilization-item](#consolecluster-overviewmultiline-utilization-item) 13. [console.cluster-overview/utilization-item](#consolecluster-overviewutilization-item) 14. [console.context-provider](#consolecontext-provider) 15. [console.create-project-modal](#consolecreate-project-modal) 16. [console.dashboards/card](#consoledashboardscard) 17. [console.dashboards/custom/overview/detail/item](#consoledashboardscustomoverviewdetailitem) 18. [console.dashboards/overview/activity/resource](#consoledashboardsoverviewactivityresource) 19. [console.dashboards/overview/health/operator](#consoledashboardsoverviewhealthoperator) 20. [console.dashboards/overview/health/prometheus](#consoledashboardsoverviewhealthprometheus) 21. [console.dashboards/overview/health/resource](#consoledashboardsoverviewhealthresource) 22. [console.dashboards/overview/health/url](#consoledashboardsoverviewhealthurl) 23. [console.dashboards/overview/inventory/item](#consoledashboardsoverviewinventoryitem) 24. [console.dashboards/overview/inventory/item/group](#consoledashboardsoverviewinventoryitemgroup) 25. [console.dashboards/overview/inventory/item/replacement](#consoledashboardsoverviewinventoryitemreplacement) 26. [console.dashboards/overview/prometheus/activity/resource](#consoledashboardsoverviewprometheusactivityresource) 27. [console.dashboards/project/overview/item](#consoledashboardsprojectoverviewitem) 28. [console.dashboards/tab](#consoledashboardstab) 29. [console.file-upload](#consolefile-upload) 30. [console.flag](#consoleflag) 31. [console.flag/hookProvider](#consoleflaghookProvider) 32. [console.flag/model](#consoleflagmodel) 33. [console.global-config](#consoleglobal-config) 34. [console.model-metadata](#consolemodel-metadata) 35. [console.navigation/href](#consolenavigationhref) 36. [console.navigation/resource-cluster](#consolenavigationresource-cluster) 37. [console.navigation/resource-ns](#consolenavigationresource-ns) 38. [console.navigation/section](#consolenavigationsection) 39. [console.navigation/separator](#consolenavigationseparator) 40. [console.page/resource/details](#consolepageresourcedetails) 41. [console.page/resource/list](#consolepageresourcelist) 42. [console.page/route](#consolepageroute) 43. [console.page/route/standalone](#consolepageroutestandalone) 44. [console.perspective](#consoleperspective) 45. [console.project-overview/inventory-item](#consoleproject-overviewinventory-item) 46. [console.project-overview/utilization-item](#consoleproject-overviewutilization-item) 47. [console.pvc/alert](#consolepvcalert) 48. [console.pvc/create-prop](#consolepvccreate-prop) 49. [console.pvc/delete](#consolepvcdelete) 50. [console.pvc/status](#consolepvcstatus) 51. [console.redux-reducer](#consoleredux-reducer) 52. [console.resource/create](#consoleresourcecreate) 53. [console.resource/details-item](#consoleresourcedetails-item) 54. [console.storage-class/provisioner](#consolestorage-classprovisioner) 55. [console.storage-provider](#consolestorage-provider) 56. [console.tab](#consoletab) 57. [console.tab/horizontalNav](#consoletabhorizontalNav) 58. [console.telemetry/listener](#consoletelemetrylistener) 59. [console.topology/adapter/build](#consoletopologyadapterbuild) 60. [console.topology/adapter/network](#consoletopologyadapternetwork) 61. [console.topology/adapter/pod](#consoletopologyadapterpod) 62. [console.topology/component/factory](#consoletopologycomponentfactory) 63. [console.topology/create/connector](#consoletopologycreateconnector) 64. [console.topology/data/factory](#consoletopologydatafactory) 65. [console.topology/decorator/provider](#consoletopologydecoratorprovider) 66. [console.topology/details/resource-alert](#consoletopologydetailsresource-alert) 67. [console.topology/details/resource-link](#consoletopologydetailsresource-link) 68. [console.topology/details/tab](#consoletopologydetailstab) 69. [console.topology/details/tab-section](#consoletopologydetailstab-section) 70. [console.topology/display/filters](#consoletopologydisplayfilters) 71. [console.topology/relationship/provider](#consoletopologyrelationshipprovider) 72. [console.user-preference/group](#consoleuser-preferencegroup) 73. [console.user-preference/item](#consoleuser-preferenceitem) 74. [console.yaml-template](#consoleyaml-template) 75. [dev-console.add/action](#dev-consoleaddaction) 76. [dev-console.add/action-group](#dev-consoleaddaction-group) 77. [dev-console.import/environment](#dev-consoleimportenvironment) 78. [DEPRECATED] [console.dashboards/overview/detail/item](#consoledashboardsoverviewdetailitem) 79. [DEPRECATED] [console.page/resource/tab](#consolepageresourcetab) --- ## `console.action/filter` ### Summary ActionFilter can be used to filter an action ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `contextId` | `string` | no | The context ID helps to narrow the scope of contributed actions to a particular area of the application. Ex - topology, helm | | `filter` | `CodeRef<(scope: any, action: Action) => boolean>` | no | A function which will filter actions based on some conditions.<br/>scope: The scope in which actions should be provided for.<br/>Note: hook may be required if we want to remove the ModifyCount action from a deployment with HPA | --- ## `console.action/group` ### Summary ActionGroup contributes an action group that can also be a submenu ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | ID used to identify the action section. | | `label` | `string` | yes | The label to display in the UI.<br/>Required for submenus. | | `submenu` | `boolean` | yes | Whether this group should be displayed as submenu | | `insertBefore` | `string \| string[]` | yes | Insert this item before the item referenced here.<br/>For arrays, the first one found in order is used. | | `insertAfter` | `string \| string[]` | yes | Insert this item after the item referenced here.<br/>For arrays, the first one found in order is used.<br/>insertBefore takes precedence. | --- ## `console.action/provider` ### Summary ActionProvider contributes a hook that returns list of actions for specific context ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `contextId` | `string` | no | The context ID helps to narrow the scope of contributed actions to a particular area of the application. Ex - topology, helm | | `provider` | `CodeRef<ExtensionHook<Action[]>>` | no | A react hook which returns actions for the given scope.<br/>If contextId = `resource` then the scope will always be a K8s resource object | --- ## `console.action/resource-provider` ### Summary ResourceActionProvider contributes a hook that returns list of actions for specific resource model ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `model` | `ExtensionK8sKindVersionModel` | no | The model for which this provider provides actions for. | | `provider` | `CodeRef<ExtensionHook<Action[]>>` | no | A react hook which returns actions for the given resource model | --- ## `console.alert-action` ### Summary This extension can be used to trigger a specific action when a specific Prometheus alert is observed by the Console based on its `rule.name` value. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `alert` | `string` | no | Alert name as defined by `alert.rule.name` property | | `text` | `string` | no | Action text | | `action` | `CodeRef<(alert: Alert, launchModal: LaunchModal) => void>` | no | Function to perform side effect | --- ## `console.catalog/item-filter` ### Summary This extension can be used for plugins to contribute a handler that can filter specific catalog items.<br/>For example, the plugin can contribute a filter that filters helm charts from specific provider. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `catalogId` | `string \| string[]` | no | The unique identifier for the catalog this provider contributes to. | | `type` | `string` | no | Type ID for the catalog item type. | | `filter` | `CodeRef<(item: CatalogItem) => boolean>` | no | Filters items of a specific type. Value is a function that takes CatalogItem[] and returns a subset based on the filter criteria. | --- ## `console.catalog/item-metadata` ### Summary This extension can be used to contribute a provider that adds extra metadata to specific catalog items. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `catalogId` | `string \| string[]` | no | The unique identifier for the catalog this provider contributes to. | | `type` | `string` | no | Type ID for the catalog item type. | | `provider` | `CodeRef<ExtensionHook<CatalogItemMetadataProviderFunction, CatalogExtensionHookOptions>>` | no | A hook which returns a function that will be used to provide metadata to catalog items of a specific type. | --- ## `console.catalog/item-provider` ### Summary This extension allows plugins to contribute a provider for a catalog item type. For example, a Helm Plugin can add a provider<br/>that fetches all the Helm Charts. This extension can also be used by other plugins to add more items to a specific catalog item type. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `catalogId` | `string \| string[]` | no | The unique identifier for the catalog this provider contributes to. | | `type` | `string` | no | Type ID for the catalog item type. | | `title` | `string` | no | Title for the catalog item provider | | `provider` | `CodeRef<ExtensionHook<CatalogItem<any>[], CatalogExtensionHookOptions>>` | no | Fetch items and normalize it for the catalog. Value is a react effect hook. | | `priority` | `number` | yes | Priority for this provider. Defaults to 0. Higher priority providers may override catalog<br/>items provided by other providers. | --- ## `console.catalog/item-type` ### Summary This extension allows plugins to contribute a new type of catalog item. For example, a Helm plugin can define<br/>a new catalog item type as HelmCharts that it wants to contribute to the Software Catalog. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `type` | `string` | no | Type for the catalog item. | | `title` | `string` | no | Title for the catalog item. | | `catalogDescription` | `string \| CodeRef<React.ReactNode>` | yes | Description for the type specific catalog. | | `typeDescription` | `string` | yes | Description for the catalog item type. | | `filters` | `CatalogItemAttribute[]` | yes | Custom filters specific to the catalog item. | | `groupings` | `CatalogItemAttribute[]` | yes | Custom groupings specific to the catalog item. | --- ## `console.catalog/item-type-metadata` ### Summary This extension allows plugins to contribute extra metadata like custom filters or groupings for any catalog item type.<br/>For example, a plugin can attach a custom filter for HelmCharts that can filter based on chart provider. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `type` | `string` | no | Type for the catalog item. | | `filters` | `CatalogItemAttribute[]` | yes | Custom filters specific to the catalog item. | | `groupings` | `CatalogItemAttribute[]` | yes | Custom groupings specific to the catalog item. | --- ## `console.cluster-overview/inventory-item` ### Summary Adds a new inventory item into cluster overview page. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `component` | `CodeRef<React.ComponentType<{}>>` | no | The component to be rendered. | --- ## `console.cluster-overview/multiline-utilization-item` ### Summary Adds a new cluster overview multiline utilization item. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `title` | `string` | no | The title of the utilization item. | | `getUtilizationQueries` | `CodeRef<GetMultilineQueries>` | no | Prometheus utilization query. | | `humanize` | `CodeRef<Humanize>` | no | Convert prometheus data to human readable form. | | `TopConsumerPopovers` | `CodeRef<React.ComponentType<TopConsumerPopoverProps>[]>` | yes | Shows Top consumer popover instead of plain value | --- ## `console.cluster-overview/utilization-item` ### Summary Adds a new cluster overview utilization item. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `title` | `string` | no | The title of the utilization item. | | `getUtilizationQuery` | `CodeRef<GetQuery>` | no | Prometheus utilization query. | | `humanize` | `CodeRef<Humanize>` | no | Convert prometheus data to human readable form. | | `getTotalQuery` | `CodeRef<GetQuery>` | yes | Prometheus total query. | | `getRequestQuery` | `CodeRef<GetQuery>` | yes | Prometheus request query. | | `getLimitQuery` | `CodeRef<GetQuery>` | yes | Prometheus limit query. | | `TopConsumerPopover` | `CodeRef<React.ComponentType<TopConsumerPopoverProps>>` | yes | Shows Top consumer popover instead of plain value | --- ## `console.context-provider` ### Summary Adds new React context provider to Console application root. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `provider` | `CodeRef<Provider<T>>` | no | Context Provider component. | | `useValueHook` | `CodeRef<() => T>` | no | Hook for the Context value. | --- ## `console.create-project-modal` ### Summary This extension can be used to pass a component that will be rendered in place of the standard create project modal. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `component` | `CodeRef<ModalComponent<CreateProjectModalProps>>` | no | A component to render in place of the create project modal | --- ## `console.dashboards/card` ### Summary Adds a new dashboard card. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `tab` | `string` | no | The id of the dashboard tab to which the card will be added. | | `position` | `'MAIN' \| 'LEFT' \| 'RIGHT'` | no | The grid position of the card on the dashboard. | | `component` | `CodeRef<React.ComponentType<{}>>` | no | Dashboard card component. | | `span` | `OverviewCardSpan` | yes | Card's vertical span in the column. Ignored for small screens, defaults to 12. | --- ## `console.dashboards/custom/overview/detail/item` ### Summary Adds an item to the Details card of Overview Dashboard ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `title` | `string` | no | Details card title | | `component` | `CodeRef<React.ComponentType<{}>>` | no | The value, rendered by the OverviewDetailItem component | | `valueClassName` | `string` | yes | Optional class name for the value | | `isLoading` | `CodeRef<() => boolean>` | yes | Function returning the loading state of the component | | `error` | `CodeRef<() => string>` | yes | Function returning errors to be displayed by the component | --- ## `console.dashboards/overview/activity/resource` ### Summary Adds an activity to the Activity Card of Overview Dashboard where the triggering of activity is based on watching a K8s resource. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `k8sResource` | `CodeRef<FirehoseResource & { isList: true; }>` | no | The utilization item to be replaced. | | `component` | `CodeRef<React.ComponentType<K8sActivityProps<T>>>` | no | The action component. | | `isActivity` | `CodeRef<(resource: T) => boolean>` | yes | Function which determines if the given resource represents the action. If not defined, every resource represents activity. | | `getTimestamp` | `CodeRef<(resource: T) => Date>` | yes | Timestamp for the given action, which will be used for ordering. | --- ## `console.dashboards/overview/health/operator` ### Summary Adds a health subsystem to the status card of Overview dashboard where the source of status is a K8s REST API. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `title` | `string` | no | Title of operators section in the popup. | | `resources` | `CodeRef<FirehoseResource[]>` | no | Kubernetes resources which will be fetched and passed to `healthHandler`. | | `getOperatorsWithStatuses` | `CodeRef<GetOperatorsWithStatuses<T>>` | yes | Resolves status for the operators. | | `operatorRowLoader` | `CodeRef<React.ComponentType<OperatorRowProps<T>>>` | yes | Loader for popup row component. | | `viewAllLink` | `string` | yes | Links to all resources page. If not provided then a list page of the first resource from resources prop is used. | --- ## `console.dashboards/overview/health/prometheus` ### Summary Adds a health subsystem to the status card of Overview dashboard where the source of status is Prometheus. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `title` | `string` | no | The display name of the subsystem. | | `queries` | `string[]` | no | The Prometheus queries | | `healthHandler` | `CodeRef<PrometheusHealthHandler>` | no | Resolve the subsystem's health. | | `additionalResource` | `CodeRef<FirehoseResource>` | yes | Additional resource which will be fetched and passed to `healthHandler`. | | `popupComponent` | `CodeRef<React.ComponentType<PrometheusHealthPopupProps>>` | yes | Loader for popup content. If defined, a health item will be represented as a link which opens popup with given content. | | `popupTitle` | `string` | yes | The title of the popover. | | `popupClassname` | `string` | yes | Optional classname for the popup top-level component. | | `popupKeepOnOutsideClick` | `boolean` | yes | If true, the popup will stay open when clicked outside of its boundary. Default: false | | `disallowedControlPlaneTopology` | `string[]` | yes | Control plane topology for which the subsystem should be hidden. | --- ## `console.dashboards/overview/health/resource` ### Summary Adds a health subsystem to the status card of Overview dashboard where the source of status is a K8s Resource. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `title` | `string` | no | The display name of the subsystem. | | `resources` | `CodeRef<WatchK8sResources<T>>` | no | Kubernetes resources which will be fetched and passed to `healthHandler`. | | `healthHandler` | `CodeRef<ResourceHealthHandler<T>>` | no | Resolve the subsystem's health. | | `popupComponent` | `CodeRef<WatchK8sResults<T>>` | yes | Loader for popup content. If defined, a health item will be represented as a link which opens popup with given content. | | `popupTitle` | `string` | yes | The title of the popover. | --- ## `console.dashboards/overview/health/url` ### Summary Adds a health subsystem to the status card of Overview dashboard where the source of status is a K8s REST API. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `title` | `string` | no | The display name of the subsystem. | | `url` | `string` | no | The URL to fetch data from. It will be prefixed with base k8s URL. | | `healthHandler` | `CodeRef<URLHealthHandler<T>>` | no | Resolve the subsystem's health. | | `additionalResource` | `CodeRef<FirehoseResource>` | yes | Additional resource which will be fetched and passed to `healthHandler`. | | `popupComponent` | `CodeRef<React.ComponentType<{ healthResult?: T; healthResultError?: any; k8sResult?: FirehoseResult<R>; }>>` | yes | Loader for popup content. If defined, a health item will be represented as a link which opens popup with given content. | | `popupTitle` | `string` | yes | The title of the popover. | --- ## `console.dashboards/overview/inventory/item` ### Summary Adds a resource tile to the overview inventory card. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `model` | `CodeRef<T>` | no | The model for `resource` which will be fetched. Used to get the model's `label` or `abbr`. | | `mapper` | `CodeRef<StatusGroupMapper<T, R>>` | yes | Function which maps various statuses to groups. | | `additionalResources` | `CodeRef<WatchK8sResources<R>>` | yes | Additional resources which will be fetched and passed to the `mapper` function. | --- ## `console.dashboards/overview/inventory/item/group` ### Summary Adds an inventory status group. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | The id of the status group. | | `icon` | `CodeRef<React.ReactElement<any, string \| React.JSXElementConstructor<any>>>` | no | React component representing the status group icon. | --- ## `console.dashboards/overview/inventory/item/replacement` ### Summary Replaces an overview inventory card. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `model` | `CodeRef<T>` | no | The model for `resource` which will be fetched. Used to get the model's `label` or `abbr`. | | `mapper` | `CodeRef<StatusGroupMapper<T, R>>` | yes | Function which maps various statuses to groups. | | `additionalResources` | `CodeRef<WatchK8sResources<R>>` | yes | Additional resources which will be fetched and passed to the `mapper` function. | --- ## `console.dashboards/overview/prometheus/activity/resource` ### Summary Adds an activity to the Activity Card of Prometheus Overview Dashboard where the triggering of activity is based on watching a K8s resource. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `queries` | `string[]` | no | Queries to watch | | `component` | `CodeRef<React.ComponentType<PrometheusActivityProps>>` | no | The action component. | | `isActivity` | `CodeRef<(results: PrometheusResponse[]) => boolean>` | yes | Function which determines if the given resource represents the action. If not defined, every resource represents activity. | --- ## `console.dashboards/project/overview/item` ### Summary Adds a resource tile to the project overview inventory card. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `model` | `CodeRef<T>` | no | The model for `resource` which will be fetched. Used to get the model's `label` or `abbr`. | | `mapper` | `CodeRef<StatusGroupMapper<T, R>>` | yes | Function which maps various statuses to groups. | | `additionalResources` | `CodeRef<WatchK8sResources<R>>` | yes | Additional resources which will be fetched and passed to the `mapper` function. | --- ## `console.dashboards/tab` ### Summary Adds a new dashboard tab, placed after the Overview tab. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | A unique tab identifier, used as tab link `href` and when adding cards to this tab. | | `navSection` | `'home' \| 'storage'` | no | NavSection to which the tab belongs to | | `title` | `string` | no | The title of the tab. | --- ## `console.file-upload` ### Summary This extension can be used to provide a handler for the file drop action on specific file extensions. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `fileExtensions` | `string[]` | no | Supported file extensions. | | `handler` | `CodeRef<FileUploadHandler>` | no | Function which handles the file drop action. | --- ## `console.flag` ### Summary Gives full control over Console feature flags. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `handler` | `CodeRef<FeatureFlagHandler>` | no | Used to set/unset arbitrary feature flags. | --- ## `console.flag/hookProvider` ### Summary Gives full control over Console feature flags with hook handlers. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `handler` | `CodeRef<FeatureFlagHandler>` | no | Used to set/unset arbitrary feature flags. | --- ## `console.flag/model` ### Summary Adds new Console feature flag driven by the presence of a CRD on the cluster. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `flag` | `string` | no | The name of the flag to set once the CRD is detected. | | `model` | `ExtensionK8sModel` | no | The model which refers to a `CustomResourceDefinition`. | --- ## `console.global-config` ### Summary This extension identifies a resource used to manage the configuration of the cluster.<br/>A link to the resource will be added to the Administration - Cluster Settings - Configuration page. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | Unique identifier for the cluster config resource instance. | | `name` | `string` | no | The name of the cluster config resource instance. | | `model` | `ExtensionK8sModel` | no | The model which refers to a cluster config resource. | | `namespace` | `string` | no | The namespace of the cluster config resource instance. | --- ## `console.model-metadata` ### Summary Customize the display of models by overriding values retrieved and generated through API discovery. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `model` | `ExtensionK8sGroupModel` | no | The model to customize. May specify only a group, or optional version and kind. | | `badge` | `ModelBadge` | yes | Whether to consider this model reference as tech preview or dev preview. | | `color` | `string` | yes | The color to associate to this model. | | `label` | `string` | yes | Override the label. Requires `kind` be provided. | | `labelPlural` | `string` | yes | Override the plural label. Requires `kind` be provided. | | `abbr` | `string` | yes | Customize the abbreviation. Defaults to All uppercase chars in the kind up to 4 characters long. Requires `kind` be provided. | --- ## `console.navigation/href` ### Summary This extension can be used to contribute a navigation item that points to a specific link in the UI. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | A unique identifier for this item. | | `name` | `string` | no | The name of this item. | | `href` | `string` | no | The link href value. | | `perspective` | `string` | yes | The perspective ID to which this item belongs to. If not specified, contributes to the default perspective. | | `section` | `string` | yes | Navigation section to which this item belongs to. If not specified, render this item as a top level link. | | `dataAttributes` | `{ [key: string]: string; }` | yes | Adds data attributes to the DOM. | | `startsWith` | `string[]` | yes | Mark this item as active when the URL starts with one of these paths. | | `insertBefore` | `string \| string[]` | yes | Insert this item before the item referenced here. For arrays, the first one found in order is used. | | `insertAfter` | `string \| string[]` | yes | Insert this item after the item referenced here. For arrays, the first one found in order is used. `insertBefore` takes precedence. | | `namespaced` | `boolean` | yes | if true, adds /ns/active-namespace to the end | | `prefixNamespaced` | `boolean` | yes | if true, adds /k8s/ns/active-namespace to the begining | --- ## `console.navigation/resource-cluster` ### Summary This extension can be used to contribute a navigation item that points to a cluster resource details page.<br/>The K8s model of that resource can be used to define the navigation item. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | A unique identifier for this item. | | `model` | `ExtensionK8sModel` | no | The model for which this nav item links to. | | `perspective` | `string` | yes | The perspective ID to which this item belongs to. If not specified, contributes to the default perspective. | | `section` | `string` | yes | Navigation section to which this item belongs to. If not specified, render this item as a top level link. | | `dataAttributes` | `{ [key: string]: string; }` | yes | Adds data attributes to the DOM. | | `startsWith` | `string[]` | yes | Mark this item as active when the URL starts with one of these paths. | | `insertBefore` | `string \| string[]` | yes | Insert this item before the item referenced here. For arrays, the first one found in order is used. | | `insertAfter` | `string \| string[]` | yes | Insert this item after the item referenced here. For arrays, the first one found in order is used. `insertBefore` takes precedence. | | `name` | `string` | yes | Overrides the default name. If not supplied the name of the link will equal the plural value of the model. | --- ## `console.navigation/resource-ns` ### Summary This extension can be used to contribute a navigation item that points to a namespaced resource details page.<br/>The K8s model of that resource can be used to define the navigation item. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | A unique identifier for this item. | | `model` | `ExtensionK8sModel` | no | The model for which this nav item links to. | | `perspective` | `string` | yes | The perspective ID to which this item belongs to. If not specified, contributes to the default perspective. | | `section` | `string` | yes | Navigation section to which this item belongs to. If not specified, render this item as a top level link. | | `dataAttributes` | `{ [key: string]: string; }` | yes | Adds data attributes to the DOM. | | `startsWith` | `string[]` | yes | Mark this item as active when the URL starts with one of these paths. | | `insertBefore` | `string \| string[]` | yes | Insert this item before the item referenced here. For arrays, the first one found in order is used. | | `insertAfter` | `string \| string[]` | yes | Insert this item after the item referenced here. For arrays, the first one found in order is used. `insertBefore` takes precedence. | | `name` | `string` | yes | Overrides the default name. If not supplied the name of the link will equal the plural value of the model. | --- ## `console.navigation/section` ### Summary This extension can be used to define a new section of navigation items in the navigation tab. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | A unique identifier for this item. | | `perspective` | `string` | yes | The perspective ID to which this item belongs to. If not specified, contributes to the default perspective. | | `dataAttributes` | `{ [key: string]: string; }` | yes | Adds data attributes to the DOM. | | `insertBefore` | `string \| string[]` | yes | Insert this item before the item referenced here. For arrays, the first one found in order is used. | | `insertAfter` | `string \| string[]` | yes | Insert this item after the item referenced here. For arrays, the first one found in order is used. `insertBefore` takes precedence. | | `name` | `string` | yes | Name of this section. If not supplied, only a separator will be shown above the section. | --- ## `console.navigation/separator` ### Summary This extension can be used to add a separator between navigation items in the navigation. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | A unique identifier for this item. | | `section` | `string` | yes | Navigation section to which this item belongs to. If not specified, render this item as a top level link. | | `perspective` | `string` | yes | The perspective ID to which this item belongs to. If not specified, contributes to the default perspective. | | `dataAttributes` | `{ [key: string]: string; }` | yes | Adds data attributes to the DOM. | | `insertBefore` | `string \| string[]` | yes | Insert this item before the item referenced here. For arrays, the first one found in order is used. | | `insertAfter` | `string \| string[]` | yes | Insert this item after the item referenced here. For arrays, the first one found in order is used. `insertBefore` takes precedence. | --- ## `console.page/resource/details` ### Summary Adds new resource details page to Console router. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `model` | `ExtensionK8sGroupKindModel` | no | The model for which this resource page links to. | | `component` | `CodeRef<React.ComponentType<{ namespace: string; model: ExtensionK8sModel; }>>` | no | The component to be rendered when the route matches. | --- ## `console.page/resource/list` ### Summary Adds new resource list page to Console router. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `model` | `ExtensionK8sGroupKindModel` | no | The model for which this resource page links to. | | `component` | `CodeRef<React.ComponentType<{ namespace: string; model: ExtensionK8sModel; }>>` | no | The component to be rendered when the route matches. | --- ## `console.page/route` ### Summary Adds new page to Console router.<br/><br/>Under the hood we use React Router.<br/>See https://v5.reactrouter.com/<br/><br/>Note: This extension should not be used for resource list and details page. For adding both list and details page for a resource use the<br/>[console.navigation/resource-ns](#consolenavigationresource-ns) extension, instead, which renders elementary fields. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `component` | `CodeRef<React.ComponentType<{}>>` | no | The component to be rendered when the route matches. | | `path` | `string \| string[]` | no | Valid URL path or array of paths that `path-to-regexp@^1.7.0` understands. | | `perspective` | `string` | yes | The perspective to which this page belongs to. If not specified, contributes to all perspectives. | | `exact` | `boolean` | yes | When true, will only match if the path matches the `location.pathname` exactly. | --- ## `console.page/route/standalone` ### Summary Adds new standalone page (rendered outside the common page layout) to Console router.<br/><br/>Under the hood we use React Router.<br/>See https://v5.reactrouter.com/ ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `path` | `string \| string[]` | no | Valid URL path or array of paths that `path-to-regexp@^1.7.0` understands. | | `component` | `CodeRef<React.ComponentType<{}>>` | no | The component to be rendered when the route matches. | | `exact` | `boolean` | yes | When true, will only match if the path matches the `location.pathname` exactly. | --- ## `console.perspective` ### Summary This extension contributes a new perspective to the console which enables customization of the navigation menu. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | The perspective identifier. | | `name` | `string` | no | The perspective display name. | | `icon` | `CodeRef<LazyComponent>` | no | The perspective display icon. | | `landingPageURL` | `CodeRef<(flags: { [key: string]: boolean; }, isFirstVisit: boolean) => string>` | no | The function to get perspective landing page URL. | | `importRedirectURL` | `CodeRef<(namespace: string) => string>` | no | The function to get a relative redirect URL for import flow. | | `default` | `boolean` | yes | Whether the perspective is the default. There can only be one default. | | `defaultPins` | `ExtensionK8sModel[]` | yes | Default pinned resources on the nav | | `usePerspectiveDetection` | `CodeRef<() => [boolean, boolean]>` | yes | The hook to detect default perspective | --- ## `console.project-overview/inventory-item` ### Summary Adds a new inventory item into project overview page. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `component` | `CodeRef<React.ComponentType<{ projectName: string; }>>` | no | The component to be rendered. | --- ## `console.project-overview/utilization-item` ### Summary Adds a new project overview utilization item. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `title` | `string` | no | The title of the utilization item. | | `getUtilizationQuery` | `CodeRef<GetProjectQuery>` | no | Prometheus utilization query. | | `humanize` | `CodeRef<Humanize>` | no | Convert prometheus data to human readable form. | | `getTotalQuery` | `CodeRef<GetProjectQuery>` | yes | Prometheus total query. | | `getRequestQuery` | `CodeRef<GetProjectQuery>` | yes | Prometheus request query. | | `getLimitQuery` | `CodeRef<GetProjectQuery>` | yes | Prometheus limit query. | | `TopConsumerPopover` | `CodeRef<React.ComponentType<TopConsumerPopoverProps>>` | yes | Shows Top consumer popover instead of plain value | --- ## `console.pvc/alert` ### Summary This extension can be used to contribute custom alerts on the PVC details page. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `alert` | `CodeRef<React.ComponentType<{ pvc: K8sResourceCommon; }>>` | no | The alert component. | --- ## `console.pvc/create-prop` ### Summary This extension can be used to specify additional properties that will be used when creating PVC resources on the PVC list page. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `label` | `string` | no | Label for the create prop action. | | `path` | `string` | no | Path for the create prop action. | --- ## `console.pvc/delete` ### Summary This extension allows hooking into deleting PVC resources. It can provide an alert with additional information and custom PVC delete logic. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `predicate` | `CodeRef<(pvc: K8sResourceCommon) => boolean>` | no | Predicate that tells whether to use the extension or not. | | `onPVCKill` | `CodeRef<(pvc: K8sResourceCommon) => Promise<void>>` | no | Method for the PVC delete operation. | | `alert` | `CodeRef<React.ComponentType<{ pvc: K8sResourceCommon; }>>` | no | Alert component to show additional information. | --- ## `console.pvc/status` ### Summary This extension can be used to contribute an additional status component for PVC resources on the cluster dashboard page. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `priority` | `number` | no | Priority for the status component. Bigger value means higher priority. | | `status` | `CodeRef<React.ComponentType<{ pvc: K8sResourceCommon; }>>` | no | The status component. | | `predicate` | `CodeRef<(pvc: K8sResourceCommon) => boolean>` | no | Predicate that tells whether to render the status component or not. | --- ## `console.redux-reducer` ### Summary Adds new reducer to Console Redux store which operates on `plugins.<scope>` substate. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `scope` | `string` | no | The key to represent the reducer-managed substate within the Redux state object. | | `reducer` | `CodeRef<Reducer>` | no | The reducer function, operating on the reducer-managed substate. | --- ## `console.resource/create` ### Summary This extension allows plugins to provide a custom component (ie wizard or form) for specific resources,<br/>which will be rendered, when users try to create a new resource instance. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `model` | `ExtensionK8sModel` | no | The model for which this create resource page will be rendered. | | `component` | `CodeRef<React.ComponentType<CreateResourceComponentProps>>` | no | The component to be rendered when the model matches | --- ## `console.resource/details-item` ### Summary Adds a new details item to the default resource summary on the details page. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `model` | `ExtensionK8sModel` | no | The subject resource's API group, version, and kind. | | `id` | `string` | no | A unique identifier. | | `column` | `DetailsItemColumn` | no | Determines if the item will appear in the 'left' or 'right' column of the resource summary on<br/>the details page. Default: 'right' | | `title` | `string` | no | The details item title. | | `description` | `string` | yes | An optional description that will appear in the title popover. | | `path` | `string` | yes | An optional, fully-qualified path to a resource property to used as the details item<br/>value. Only [primitive type](https://developer.mozilla.org/en-US/docs/Glossary/Primitive)<br/>values can be rendered directly. Use the component property to handle other data types. | | `component` | `CodeRef<React.ComponentType<DetailsItemComponentProps<K8sResourceCommon, any>>>` | yes | An optional React component that will render the details item value. | | `sortWeight` | `number` | yes | An optional sort weight, relative to all other details items in the same column. Represented<br/>by any valid [JavaScript<br/>Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type).<br/>Items in each column are sorted independently, lowest to highest. Items without sort weights<br/>are sorted after items with sort weights. | --- ## `console.storage-class/provisioner` ### Summary Adds a new storage class provisioner as an option during storage class creation. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `CSI` | `ProvisionerDetails` | yes | Container Storage Interface provisioner type | | `OTHERS` | `ProvisionerDetails` | yes | Other provisioner type | --- ## `console.storage-provider` ### Summary This extension can be used to contribute a new storage provider to select,<br/>when attaching storage and a provider specific component. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `name` | `string` | no | Displayed name of the provider. | | `Component` | `CodeRef<React.ComponentType<{}>>` | no | Provider specific component to render. | --- ## `console.tab` ### Summary Adds a tab to a horizontal nav matching the `contextId`. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `contextId` | `string` | no | Context ID assigned to the horizontal nav in which the tab will be injected.<br/>Possible values:<br/>- `dev-console-observe` | | `name` | `string` | no | The display label of the tab | | `href` | `string` | no | The href appended to the existing URL | | `component` | `CodeRef<React.ComponentType<PageComponentProps<K8sResourceCommon>>>` | no | Tab content component. | --- ## `console.tab/horizontalNav` ### Summary This extension can be used to add a tab on the resource details page. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `model` | `ExtensionK8sKindVersionModel` | no | The model for which this provider show tab. | | `page` | `{ name: string; href: string; }` | no | The page to be show in horizontal tab. It takes tab name as name and href of the tab | | `component` | `CodeRef<React.ComponentType<PageComponentProps<K8sResourceCommon>>>` | no | The component to be rendered when the route matches. | --- ## `console.telemetry/listener` ### Summary This component can be used to register a listener function receiving telemetry events.<br/>These events include user identification, page navigation, and other application specific events.<br/>The listener may use this data for reporting and analytics purposes. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `listener` | `CodeRef<TelemetryEventListener>` | no | Listen for telemetry events | --- ## `console.topology/adapter/build` ### Summary BuildAdapter contributes an adapter to adapt element to data that can be used by Build component ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `adapt` | `CodeRef<(element: GraphElement) => AdapterDataType<BuildConfigData> \| undefined>` | no | adapter to adapt element to data that can be used by Build component. | --- ## `console.topology/adapter/network` ### Summary NetworkAdpater contributes an adapter to adapt element to data that can be used by Networking component ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `adapt` | `CodeRef<(element: GraphElement) => NetworkAdapterType \| undefined>` | no | adapter to adapt element to data that can be used by Networking component. | --- ## `console.topology/adapter/pod` ### Summary PodAdapter contributes an adapter to adapt element to data that can be used by Pod component ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `adapt` | `CodeRef<(element: GraphElement) => AdapterDataType<PodsAdapterDataType> \| undefined>` | no | adapter to adapt element to data that can be used by Pod component. | --- ## `console.topology/component/factory` ### Summary Getter for a ViewComponentFactory ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `getFactory` | `CodeRef<ViewComponentFactory>` | no | Getter for a ViewComponentFactory | --- ## `console.topology/create/connector` ### Summary Getter for the create connector function ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `getCreateConnector` | `CodeRef<CreateConnectionGetter>` | no | Getter for the create connector function | --- ## `console.topology/data/factory` ### Summary Topology Data Model Factory Extension ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | Unique ID for the factory. | | `priority` | `number` | no | Priority for the factory | | `resources` | `WatchK8sResourcesGeneric` | yes | Resources to be fetched from useK8sWatchResources hook. | | `workloadKeys` | `string[]` | yes | Keys in resources containing workloads. | | `getDataModel` | `CodeRef<TopologyDataModelGetter>` | yes | Getter for the data model factory | | `isResourceDepicted` | `CodeRef<TopologyDataModelDepicted>` | yes | Getter for function to determine if a resource is depicted by this model factory | | `getDataModelReconciler` | `CodeRef<TopologyDataModelReconciler>` | yes | Getter for function to reconcile data model after all extensions' models have loaded | --- ## `console.topology/decorator/provider` ### Summary Topology Decorator Provider Extension ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | id for topology decorator specific to the extension | | `priority` | `number` | no | priority for topology decorator specific to the extension | | `quadrant` | `TopologyQuadrant` | no | quadrant for topology decorator specific to the extension | | `decorator` | `CodeRef<TopologyDecoratorGetter>` | no | decorator specific to the extension | --- ## `console.topology/details/resource-alert` ### Summary DetailsResourceAlert contributes an alert for specific topology context or graph element. ### Properties | Name | Value Type | Optional | Description | | ---- | ---------- | -------- | ----------- | | `id` | `string` | no | The ID of this alert. Used to save state if the alert sh