Skip to main content

frontend-widget-api-reference

Widgets

List of implemented widgets:

BarChart

BarChart express quantities through a bar's length, using a common baseline. Bar charts series should contain a data property containing an array of values

Props

PropertyRequiredDescriptionType
datayesArray of grouped data entries for the bar chartarray
data[].labelnoLabel for the group/categorystring
data[].barsyesBars within the group, each representing a valuearray
data[].bars[].valueyesLabel or identifier for the barstring
data[].bars[].percentageyesHeight of the bar as a percentage (0–100)integer
data[].bars[].colornoColor of the barblue | darkBlue | orange | gray | red | green
Example
kind: BarChart
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: my-bar-chart
namespace: test-namespace
spec:
widgetData:
data:
- label: CPU usage
bars:
- value: "1982"
percentage: 75
color: blue
- value: "75"
percentage: 12
color: red
- label: RAM usage
bars:
- value: "72"
percentage: 12
color: orange
- label: Temperature
bars:
- value: "63"
percentage: 85
color: red

Button

Button represents an interactive component which, when clicked, triggers a specific business logic defined by its clickActionId

Props

PropertyRequiredDescriptionType
actionsyesthe actions of the widgetobject
actions.restnorest api call actions triggered by the widgetarray
actions.rest[].payloadKeynokey used to nest the payload in the request bodystring
actions.rest[].idyesunique identifier for the actionstring
actions.rest[].resourceRefIdyesthe identifier of the k8s custom resource that should be representedstring
actions.rest[].requireConfirmationnowhether user confirmation is required before triggering the actionboolean
actions.rest[].onSuccessNavigateTonourl to navigate to after successful executionstring
actions.rest[].onEventNavigateTonoconditional navigation triggered by a specific eventobject
actions.rest[].onEventNavigateTo.eventReasonyesidentifier of the awaited event reasonstring
actions.rest[].onEventNavigateTo.urlyesurl to navigate to when the event is receivedstring
actions.rest[].onEventNavigateTo.timeoutnothe timeout in seconds to wait for the eventinteger
actions.rest[].loadingnodefines the loading indicator behavior for the actionglobal | inline | none
actions.rest[].typenotype of action to executerest
actions.rest[].payloadnostatic payload sent with the requestobject
actions.rest[].payloadToOverridenolist of payload fields to override dynamicallyarray
actions.rest[].payloadToOverride[].nameyesname of the field to overridestring
actions.rest[].payloadToOverride[].valueyesvalue to use for overriding the fieldstring
actions.navigatenoclient-side navigation actionsarray
actions.navigate[].idyesunique identifier for the actionstring
actions.navigate[].typeyestype of navigation actionnavigate
actions.navigate[].nameyesname of the navigation actionstring
actions.navigate[].resourceRefIdyesthe identifier of the k8s custom resource that should be representedstring
actions.navigate[].requireConfirmationnowhether user confirmation is required before navigatingboolean
actions.navigate[].loadingnodefines the loading indicator behavior during navigationglobal | inline | none
actions.openDrawernoactions to open side drawer componentsarray
actions.openDrawer[].idyesunique identifier for the drawer actionstring
actions.openDrawer[].typeyestype of drawer actionopenDrawer
actions.openDrawer[].resourceRefIdyesthe identifier of the k8s custom resource that should be representedstring
actions.openDrawer[].requireConfirmationnowhether user confirmation is required before openingboolean
actions.openDrawer[].loadingnodefines the loading indicator behavior for the drawerglobal | inline | none
actions.openDrawer[].sizenodrawer size to be displayeddefault | large
actions.openDrawer[].titlenotitle shown in the drawer headerstring
actions.openModalnoactions to open modal dialog componentsarray
actions.openModal[].idyesunique identifier for the modal actionstring
actions.openModal[].typeyestype of modal actionopenModal
actions.openModal[].nameyesname of the modal actionstring
actions.openModal[].resourceRefIdyesthe identifier of the k8s custom resource that should be representedstring
actions.openModal[].requireConfirmationnowhether user confirmation is required before openingboolean
actions.openModal[].loadingnodefines the loading indicator behavior for the modalglobal | inline | none
actions.openModal[].titlenotitle shown in the modal headerstring
colornothe color of the buttondefault | primary | danger | blue | purple | cyan | green | magenta | pink | red | orange | yellow | volcano | geekblue | lime | gold
labelnothe label of the buttonstring
iconnothe icon of the button (font awesome icon name eg: fa-inbox)string
shapenothe shape of the buttondefault | circle | round
sizenothe size of the buttonsmall | middle | large
typenothe visual style of the buttondefault | text | link | primary | dashed
clickActionIdyesthe id of the action to be executed when the button is clickedstring
Example
kind: Button
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: button-delete-test-app
namespace: test-namespace
spec:
widgetData:
icon: fa-trash
type: default
shape: circle
clickActionId: delete
actions:
rest:
- id: delete
resourceRefId: delete
type: rest
requireConfirmation: true
resourcesRefs:
- id: delete
apiVersion: composition.krateo.io/v1-1-15
resource: testapps
name: hello-test-2
namespace: test-namespace
verb: DELETE

Column

Column is a layout component that arranges its children in a vertical stack, aligning them one above the other with spacing between them

Props

PropertyRequiredDescriptionType
itemsyesthe items of the columnarray
items[].resourceRefIdyesthe identifier of the k8s Custom Resource that should be represented, usually a widgetstring
sizenothe number of cells that the column will occupy, from 0 (not displayed) to 24 (occupies all space)integer
Example
kind: Column
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: test-column
namespace: test-namespace
spec:
widgetData:
items:
- resourceRefId: table-of-pods
- resourceRefId: pie-chart-inside-column
resourcesRefs:
- id: table-of-pods
apiVersion: widgets.templates.krateo.io/v1beta1
name: table-of-pods
namespace: test-namespace
resource: tables
verb: GET
- id: pie-chart-inside-column
apiVersion: widgets.templates.krateo.io/v1beta1
name: pie-chart-inside-column
namespace: test-namespace
resource: piecharts
verb: GET

DataGrid

Props

PropertyRequiredDescriptionType
prefixnoit's the filters prefix to get right valuesstring
asGridnoto show children as list or gridboolean
gridnoThe grid type of list. You can set grid to something like {gutter: 16, column: 4} or specify the integer for columns based on their size, e.g. sm, md, etc. to make it responsive.object
grid.gutternoThe spacing between gridinteger
grid.columnnoThe column of gridinteger
grid.xsno<576px column of gridinteger
grid.smno≥576px column of gridinteger
grid.mdno≥768px column of gridinteger
grid.lgno≥992px column of gridinteger
grid.xlno≥1200px column of gridinteger
grid.xxlno≥1600px column of gridinteger
itemsyesarray
items[].resourceRefIdyesstring

EventList

EventList renders data coming from a Kubernetes cluster or Server Sent Events associated to a specific endpoint and topic

Props

PropertyRequiredDescriptionType
eventsyeslist of events received from a k8s cluster or server sent eventarray
events[].iconnoname of the icon associated with the event (font awesome icon name eg: fa-inbox)string
events[].reasonyesreason or cause of the eventstring
events[].messageyesdescriptive message of the eventstring
events[].typeyestype of the event, e.g., normal or warningNormal | Warning
events[].countnonumber of times the event has occurredinteger
events[].actionnoaction associated with the event, if anystring
events[].reportingComponentnocomponent that reported the eventstring
events[].reportingInstancenoinstance of the component that reported the eventstring
events[].firstTimestampnotimestamp of the first occurrence of the eventstring
events[].lastTimestampnotimestamp of the last occurrence of the eventstring
events[].eventTimenospecific timestamp of the eventstring
events[].metadatayesmetadata of the event such as name, namespace, and uidobject
events[].metadata.nameyesunique name of the eventstring
events[].metadata.namespaceyesnamespace the event belongs tostring
events[].metadata.uidyesunique identifier of the eventstring
events[].metadata.creationTimestampyescreation date and time of the eventstring
events[].involvedObjectyesobject involved in the event with key detailsobject
events[].involvedObject.apiVersionnoapi version of the involved objectstring
events[].involvedObject.kindyesresource type involvedstring
events[].involvedObject.nameyesname of the involved objectstring
events[].involvedObject.namespaceyesnamespace of the involved objectstring
events[].involvedObject.uidyesunique identifier of the involved objectstring
events[].sourceyesinformation about the source generating the eventobject
events[].source.componentnocomponent source of the eventstring
events[].source.hostnohost where the event originatedstring
sseEndpointnoendpoint url for server sent events connectionstring
sseTopicnosubscription topic for server sent eventsstring
Example
kind: EventList
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: my-event-list
namespace: test-namespace
spec:
widgetData:
events:
- icon: "fa-exclamation-circle"
reason: "FailedScheduling"
message: "0/1 nodes are available: 1 Insufficient memory."
type: "Warning"
count: 3
firstTimestamp: "2024-04-20T12:34:56Z"
lastTimestamp: "2024-04-20T12:45:00Z"
metadata:
name: "my-pod.17d90d9c8ab2b1e1"
namespace: "default"
uid: "d1234567-89ab-4def-8123-abcdef012345"
creationTimestamp: "2024-04-20T12:34:56Z"
involvedObject:
apiVersion: "v1"
kind: "Pod"
name: "my-pod"
namespace: "default"
uid: "abcd-1234"
source:
component: "scheduler"
- icon: "fa-rocket"
reason: "Started"
message: "Started container nginx"
type: "Normal"
metadata:
name: "nginx-pod.17d90d9c8ab2b1e2"
namespace: "default"
uid: "f1234567-89ab-4def-8123-abcdef012346"
creationTimestamp: "2024-04-21T08:20:00Z"
involvedObject:
apiVersion: "v1"
kind: "Pod"
name: "nginx-pod"
namespace: "default"
uid: "defg-5678"
source:
component: "kubelet"
host: "worker-node-1"
sseEndpoint: "/events/stream"
sseTopic: "k8s-event"

Filters

Props

PropertyRequiredDescriptionType
prefixyesthe prefix to share filters values to other widgetsstring
fieldsyesit defines the filters as fields of a Formarray
fields[].labelyesthe label of the fieldstring
fields[].nameyesthe name of the filter field, it must to be identical to the widget prop name to filter or data in datasetarray
fields[].descriptionnotext to show as tooltipstring
fields[].typeyesit's the filter field type, to render input, select, radio buttons, date picker or daterange pickerstring | boolean | number | date | daterange
fields[].optionsnothey're the options for select or radio, the type must be 'string'array

FlowChart

FlowChart represents a Kubernetes composition as a directed graph. Each node represents a resource, and edges indicate parent-child relationships

Props

PropertyRequiredDescriptionType
datanolist of kubernetes resources and their relationships to render as nodes in the flow chartarray
data[].createdAtyestimestamp indicating when the resource was createdstring
data[].healthnohealth status of the resourceobject
data[].health.messagenooptional description of the health statestring
data[].health.reasonnoreason explaining the current health statusstring
data[].health.statusnoshort status keyword (e.g. healthy, degraded)string
data[].health.typenotype or category of health checkstring
data[].kindyeskubernetes resource type (e.g. Deployment, Service)string
data[].nameyesname of the resourcestring
data[].namespaceyesnamespace in which the resource is definedstring
data[].parentRefsnolist of parent resources used to define graph relationshipsarray
data[].parentRefs[].createdAtnotimestamp indicating when the parent resource was createdstring
data[].parentRefs[].healthnohealth status of the parent resourceobject
data[].parentRefs[].health.messagenooptional description of the health statestring
data[].parentRefs[].health.reasonnoreason explaining the current health statusstring
data[].parentRefs[].health.statusnoshort status keywordstring
data[].parentRefs[].health.typenotype or category of health checkstring
data[].parentRefs[].kindnoresource type of the parentstring
data[].parentRefs[].namenoname of the parent resourcestring
data[].parentRefs[].namespacenonamespace of the parent resourcestring
data[].parentRefs[].parentRefsnonested parent references for recursive relationshipsarray
data[].parentRefs[].resourceVersionnointernal version string of the parent resourcestring
data[].parentRefs[].uidnounique identifier of the parent resourcestring
data[].parentRefs[].versionnoapi version of the parent resourcestring
data[].resourceVersionyesinternal version string of the resourcestring
data[].uidyesunique identifier of the resourcestring
data[].versionyesapi version of the resourcestring
Example
kind: FlowChart
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: my-flow-chart
namespace: test-namespace
spec:
widgetData:
data: [
{
"createdAt": "2025-05-29T14:35:56Z",
"health": {
"message": "Kind: Application - Name: hello-test-2 - Namespace: test-namespace - Message: Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unknown desc = failed to list refs: authentication required: Repository not found.",
"reason": "False",
"status": "Degraded",
"type": "CompositionStatus"
},
"kind": "CompositionReference",
"name": "hello-test-2",
"namespace": "fireworksapp-system",
"parentRefs": [
{}
],
"resourceVersion": "39743",
"uid": "a691a7b2-3170-4929-b3cf-a38b10e2d0a2",
"version": "resourcetrees.krateo.io/v1"
},
{
"createdAt": "2025-05-29T14:35:56Z",
"health": {},
"kind": "ConfigMap",
"name": "hello-test-2-fireworks-app-replace-values",
"namespace": "fireworksapp-system",
"parentRefs": [
{
"createdAt": "2025-05-29T14:35:56Z",
"health": {
"message": "Kind: Application - Name: hello-test-2 - Namespace: test-namespace - Message: Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unknown desc = failed to list refs: authentication required: Repository not found.",
"reason": "False",
"status": "Degraded",
"type": "CompositionStatus"
},
"kind": "CompositionReference",
"name": "hello-test-2",
"namespace": "fireworksapp-system",
"parentRefs": [
{}
],
"resourceVersion": "39743",
"uid": "a691a7b2-3170-4929-b3cf-a38b10e2d0a2",
"version": "resourcetrees.krateo.io/v1"
}
],
"resourceVersion": "27039",
"uid": "4ac6e09f-3ccf-4d65-ad3a-d4c1e1438bbf",
"version": "v1"
}
]

Form

name of the k8s Custom Resource

Props

PropertyRequiredDescriptionType
actionsyesthe actions of the widgetobject
actions.restnorest api call actions triggered by the widgetarray
actions.rest[].payloadKeynokey used to nest the payload in the request bodystring
actions.rest[].idyesunique identifier for the actionstring
actions.rest[].resourceRefIdyesthe identifier of the k8s custom resource that should be representedstring
actions.rest[].requireConfirmationnowhether user confirmation is required before triggering the actionboolean
actions.rest[].onSuccessNavigateTonourl to navigate to after successful executionstring
actions.rest[].onEventNavigateTonoconditional navigation triggered by a specific eventobject
actions.rest[].onEventNavigateTo.eventReasonyesidentifier of the awaited event reasonstring
actions.rest[].onEventNavigateTo.urlyesurl to navigate to when the event is receivedstring
actions.rest[].onEventNavigateTo.timeoutnothe timeout in seconds to wait for the eventinteger
actions.rest[].loadingnodefines the loading indicator behavior for the actionglobal | inline | none
actions.rest[].typenotype of action to executerest
actions.rest[].payloadnostatic payload sent with the requestobject
actions.rest[].payloadToOverridenolist of payload fields to override dynamicallyarray
actions.rest[].payloadToOverride[].nameyesname of the field to overridestring
actions.rest[].payloadToOverride[].valueyesvalue to use for overriding the fieldstring
actions.navigatenoclient-side navigation actionsarray
actions.navigate[].idyesunique identifier for the actionstring
actions.navigate[].typeyestype of navigation actionnavigate
actions.navigate[].nameyesname of the navigation actionstring
actions.navigate[].resourceRefIdyesthe identifier of the k8s custom resource that should be representedstring
actions.navigate[].requireConfirmationnowhether user confirmation is required before navigatingboolean
actions.navigate[].loadingnodefines the loading indicator behavior during navigationglobal | inline | none
actions.openDrawernoactions to open side drawer componentsarray
actions.openDrawer[].idyesunique identifier for the drawer actionstring
actions.openDrawer[].typeyestype of drawer actionopenDrawer
actions.openDrawer[].resourceRefIdyesthe identifier of the k8s custom resource that should be representedstring
actions.openDrawer[].requireConfirmationnowhether user confirmation is required before openingboolean
actions.openDrawer[].loadingnodefines the loading indicator behavior for the drawerglobal | inline | none
actions.openDrawer[].sizenodrawer size to be displayeddefault | large
actions.openDrawer[].titlenotitle shown in the drawer headerstring
actions.openModalnoactions to open modal dialog componentsarray
actions.openModal[].idyesunique identifier for the modal actionstring
actions.openModal[].typeyestype of modal actionopenModal
actions.openModal[].nameyesname of the modal actionstring
actions.openModal[].resourceRefIdyesthe identifier of the k8s custom resource that should be representedstring
actions.openModal[].requireConfirmationnowhether user confirmation is required before openingboolean
actions.openModal[].loadingnodefines the loading indicator behavior for the modalglobal | inline | none
actions.openModal[].titlenotitle shown in the modal headerstring
schemanothe schema of the form as an objectobject
stringSchemanothe schema of the form as a stringstring
submitActionIdyesthe id of the action to be called when the form is submittedstring
fieldDescriptionnotooltip | inline
Example
kind: Form
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: form-example
namespace: test-namespace
spec:
widgetData:
submitActionId: firework-submit-action
stringSchema: |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Application Name",
"description": "The name of your fireworks app"
},
"image": {
"type": "string",
"title": "Container Image",
"description": "Full image path (e.g., ghcr.io/org/image:tag)"
},
"replicas": {
"type": "integer",
"title": "Number of Replicas",
"default": 1
},
"enableMetrics": {
"type": "boolean",
"title": "Enable Metrics",
"default": false
}
},
"required": ["name", "image"]
}
actions:
rest:
- id: firework-submit-action
resourceRefId: resource-ref-1
type: rest
payloadKey: spec
onSuccessNavigateTo: /compositions/${metadata.namespace}/${metadata.name}
payloadToOverride:
- name: metadata.name
value: ${ git.toRepo.name }
resourcesRefs:
- id: resource-ref-1
apiVersion: composition.krateo.io/v2-0-0
name: new-app
namespace: test-namespace
resource: fireworksapps
verb: POST

LineChart

LineChart displays a customizable line chart based on time series or numerical data. It supports multiple lines with colored coordinates and axis labels, typically used to visualize metrics from Kubernetes resources

Props

PropertyRequiredDescriptionType
prefixnoit's the filters prefix to get right valuesstring
linesyeslist of data series to be rendered as individual linesarray
lines[].namenolabel of the line displayed in the legendstring
lines[].colornocolor used to render the lineblue | darkBlue | orange | gray | red | green
lines[].coordsnodata points that define the linearray
lines[].coords[].xAxisyesvalue on the x axisstring
lines[].coords[].yAxisyesvalue on the y axisstring
xAxisNamenolabel for the x axisstring
yAxisNamenolabel for the y axisstring
Example
kind: LineChart
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: my-line-chart
namespace: test-namespace
spec:
widgetData:
lines:
- name: blue line
color: blue
coords:
- xAxis: 0
yAxis: 15
- xAxis: 1
yAxis: 52
- xAxis: 2
yAxis: 15
- xAxis: 3
yAxis: 52
- name: red line
color: red
coords:
- xAxis: 0
yAxis: 4
- xAxis: 1
yAxis: 8
- xAxis: 2
yAxis: 12
- xAxis: 3
yAxis: 2
xAxisName: time
yAxisName: cost

NavMenu is a container for NavMenuItem widgets, which are used to setup navigation inside the application

Props

PropertyRequiredDescriptionType
itemsyeslist of navigation entries each pointing to a k8s custom resourcearray
items[].resourceRefIdyesthe identifier of the k8s custom resource that should be represented, usually a NavMenuItemstring
Example
kind: NavMenu
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: sidebar-nav-menu
namespace: test-namespace
spec:
widgetData:
items:
- resourceRefId: nav-menu-item-templates
resourcesRefs:
- id: nav-menu-item-templates
apiVersion: widgets.templates.krateo.io/v1beta1
name: nav-menu-item-templates
namespace: test-namespace
resource: navemenuitems
verb: GET

NavMenuItem represents a single item in the navigation menu and links to a specific resource and route in the application

Props

PropertyRequiredDescriptionType
labelyestext displayed as the menu item's labelstring
iconyesname of the icon to display alongside the label (font awesome icon name eg: fa-inbox)string
pathyesroute path to navigate to when the menu item is clickedstring
resourceRefIdyesthe identifier of the k8s custom resource that should be represented, usually a widgetstring
ordernoa weight to be used to sort the items in the menuinteger
Example
kind: NavMenuItem
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: nav-menu-item-templates
namespace: test-namespace
spec:
widgetData:
resourceRefId: templates-page
label: Templates
icon: fa-rectangle-list
path: /templates
order: 20

resourcesRefs:
- id: templates-page
apiVersion: widgets.templates.krateo.io/v1beta1
name: templates-page
namespace: test-namespace
resource: pages
verb: GET

Page

Page is a wrapper component, placed at the top of the component tree, that wraps and renders all nested components.

Props

PropertyRequiredDescriptionType
titlenotitle of the page shown in the browser tabstring
itemsyeslist of resources to be rendered within the routearray
items[].resourceRefIdyesthe identifier of the k8s custom resource that should be rendered, usually a widgetstring
Example
kind: Page
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: compositions-route
namespace: test-namespace
spec:
widgetData:
items:
- resourceRefId: composition-test-row
resourcesRefs:
- id: composition-test-row
apiVersion: widgets.templates.krateo.io/v1beta1
name: composition-test-row
namespace: test-namespace
resource: rows
verb: GET

Panel

Panel is a container to display information

Props

PropertyRequiredDescriptionType
actionsyesthe actions of the widgetobject
actions.restnorest api call actions triggered by the widgetarray
actions.rest[].payloadKeynokey used to nest the payload in the request bodystring
actions.rest[].idyesunique identifier for the actionstring
actions.rest[].resourceRefIdyesthe identifier of the k8s custom resource that should be representedstring
actions.rest[].requireConfirmationnowhether user confirmation is required before triggering the actionboolean
actions.rest[].onSuccessNavigateTonourl to navigate to after successful executionstring
actions.rest[].onEventNavigateTonoconditional navigation triggered by a specific eventobject
actions.rest[].onEventNavigateTo.eventReasonyesidentifier of the awaited event reasonstring
actions.rest[].onEventNavigateTo.urlyesurl to navigate to when the event is receivedstring
actions.rest[].onEventNavigateTo.timeoutnothe timeout in seconds to wait for the eventinteger
actions.rest[].loadingnodefines the loading indicator behavior for the actionglobal | inline | none
actions.rest[].typenotype of action to executerest
actions.rest[].payloadnostatic payload sent with the requestobject
actions.rest[].payloadToOverridenolist of payload fields to override dynamicallyarray
actions.rest[].payloadToOverride[].nameyesname of the field to overridestring
actions.rest[].payloadToOverride[].valueyesvalue to use for overriding the fieldstring
actions.navigatenoclient-side navigation actionsarray
actions.navigate[].idyesunique identifier for the actionstring
actions.navigate[].typeyestype of navigation actionnavigate
actions.navigate[].nameyesname of the navigation actionstring
actions.navigate[].resourceRefIdyesthe identifier of the k8s custom resource that should be representedstring
actions.navigate[].requireConfirmationnowhether user confirmation is required before navigatingboolean
actions.navigate[].loadingnodefines the loading indicator behavior during navigationglobal | inline | none
actions.openDrawernoactions to open side drawer componentsarray
actions.openDrawer[].idyesunique identifier for the drawer actionstring
actions.openDrawer[].typeyestype of drawer actionopenDrawer
actions.openDrawer[].resourceRefIdyesthe identifier of the k8s custom resource that should be representedstring
actions.openDrawer[].requireConfirmationnowhether user confirmation is required before openingboolean
actions.openDrawer[].loadingnodefines the loading indicator behavior for the drawerglobal | inline | none
actions.openDrawer[].sizenodrawer size to be displayeddefault | large
actions.openDrawer[].titlenotitle shown in the drawer headerstring
actions.openModalnoactions to open modal dialog componentsarray
actions.openModal[].idyesunique identifier for the modal actionstring
actions.openModal[].typeyestype of modal actionopenModal
actions.openModal[].nameyesname of the modal actionstring
actions.openModal[].resourceRefIdyesthe identifier of the k8s custom resource that should be representedstring
actions.openModal[].requireConfirmationnowhether user confirmation is required before openingboolean
actions.openModal[].loadingnodefines the loading indicator behavior for the modalglobal | inline | none
actions.openModal[].titlenotitle shown in the modal headerstring
clickActionIdnothe id of the action to be executed when the panel is clickedstring
footernofooter section of the panel containing additional itemsarray
footer[].resourceRefIdyesthe identifier of the k8s custom resource that should be represented, usually a widgetstring
tagsnolist of string tags to be displayed in the footerarray
headerLeftnooptional text to be displayed under the title, on the left side of the Panelstring
headerRightnooptional text to be displayed under the title, on the right side of the Panelstring
iconnoicon displayed in the panel headerobject
icon.nameyesname of the icon to display (font awesome icon name eg: fa-inbox)string
icon.colornocolor of the iconstring
itemsyeslist of resource references to display as main content in the panelarray
items[].resourceRefIdyesthe identifier of the k8s custom resource that should be represented, usually a widgetstring
titlenotext to be displayed as the panel titlestring
tooltipnooptional tooltip text shown on the top right side of the card to provide additional contextstring
Example
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: my-panel
namespace: test-namespace
spec:
widgetData:
actions: {}
title: My Panel
items:
- resourceRefId: my-pie-chart
- resourceRefId: my-table
tooltip: this is a tooltip!
footer:
items:
- resourceRefId: button-1
- resourceRefId: button-2
resourcesRefs:
- id: my-table
apiVersion: widgets.templates.krateo.io/v1beta1
name: my-table
namespace: test-namespace
resource: tables
verb: GET
- id: my-pie-chart
apiVersion: widgets.templates.krateo.io/v1beta1
name: my-pie-chart
namespace: test-namespace
resource: piecharts
verb: GET
- id: button-1
apiVersion: widgets.templates.krateo.io/v1beta1
name: button-1
namespace: test-namespace
resource: buttons
verb: GET
- id: button-2
apiVersion: widgets.templates.krateo.io/v1beta1
name: button-2
namespace: test-namespace
resource: buttons
verb: GET

Paragraph

Paragraph is a simple component used to display a block of text

Props

PropertyRequiredDescriptionType
textyesthe content of the paragraph to be displayedstring
Example
kind: Paragraph
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: my-paragraph
namespace: test-namespace
spec:
widgetData:
text: "This is a paragraph"

PieChart

PieChart is a visual component used to display categorical data as segments of a pie chart

Props

PropertyRequiredDescriptionType
titleyestitle displayed above the chartstring
descriptionnosupplementary text displayed below or near the titlestring
seriesnodata to be visualized in the pie chartobject
series.totalyessum of all data values, used to calculate segment sizesinteger
series.datayesindividual segments of the pie chartarray
series.data[].coloryescolor used to represent the segmentblue | darkBlue | orange | gray | red | green
series.data[].valueyesnumeric value for the segmentinteger
series.data[].labelyeslabel for the segmentstring
Example
kind: PieChart
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: my-pie-chart
namespace: test-namespace
spec:
widgetData:
title: Pie chart
description: This is a description
series:
total: 100
data:
- color: blue
value: 10
label: Blue
- color: darkBlue
value: 20
label: Dark Blue
- color: orange
value: 30
label: Orange

Route

Route is a configuration to map a path to show in the frontend URL to a resource, it doesn't render anything by itself

Props

PropertyRequiredDescriptionType
pathyesthe url path to that loads the resourcestring
resourceRefIdyesthe id matching the resource in the resourcesRefs array, must of kind pagestring

RoutesLoader

RoutesLoader loads the Route widgets it doesn't render anything by itself

Props

No props available.


Row

name of the k8s Custom Resource

Props

PropertyRequiredDescriptionType
itemsyesthe items of the rowarray
items[].resourceRefIdyesstring
items[].sizenothe number of cells that the item will occupy, from 0 (not displayed) to 24 (occupies all space)integer
Example
kind: Row
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: composition-test-row
namespace: test-namespace
spec:
widgetData:
items:
- resourceRefId: composition-test-panel
resourcesRefs:
- id: composition-test-panel
apiVersion: widgets.templates.krateo.io/v1beta1
name: composition-test-panel
namespace: test-namespace
resource: panels
verb: GET

Table

Table displays structured data with customizable columns and pagination

Props

PropertyRequiredDescriptionType
prefixnoit's the filters prefix to get right valuesstring
pageSizenonumber of rows displayed per pageinteger
datayesarray of objects representing the table's row dataarray
columnsyesconfiguration of the table's columnsarray
columns[].colornothe color of the value (or the icon) to be representedblue | darkBlue | orange | gray | red | green
columns[].kindnotype of data to be representedvalue | icon
columns[].titleyescolumn header labelstring
columns[].valueKeyyeskey used to extract the value from row datastring
Example
kind: Table
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: my-table
namespace: test-namespace
spec:
widgetData:
pageSize: 10
data:
- name: Alice
age: 30
icon: fa-rocket
- name: Bob
age: 45
icon: fa-exclamation-circle
columns:
- valueKey: name
title: Name
- valueKey: age
title: Age
- valueKey: icon
title: Icon
kind: icon
color: red

TabList

TabList display a set of tab items for navigation or content grouping

Props

PropertyRequiredDescriptionType
itemsyesthe items of the tab listarray
items[].labelnotext displayed on the tabstring
items[].resourceRefIdyesthe identifier of the k8s custom resource represented by the tab contentstring
Example
kind: TabList
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: my-tab-list
namespace: test-namespace
spec:
widgetData:
items:
- label: first tab
resourceRefId: first-column
- label: second tab
resourceRefId: second-column
resourcesRefs:
- id: first-column
apiVersion: widgets.templates.krateo.io/v1beta1
name: first-column
namespace: test-namespace
resource: columns
verb: GET
- id: second-column
apiVersion: widgets.templates.krateo.io/v1beta1
name: second-column
namespace: test-namespace
resource: columns
verb: GET

YamlViewer

YamlViewer receives a JSON string as input and renders its equivalent YAML representation for display.

Props

PropertyRequiredDescriptionType
jsonyesjson string to be converted and displayed as yamlstring
Example
kind: YamlViewer
apiVersion: widgets.templates.krateo.io/v1beta1
metadata:
name: my-yaml-viewer
namespace: test-namespace
spec:
widgetData:
json: '{"type":"object","additionalProperties":false,"properties":{"kind":{"type":"string","default":"YamlViewer"}}}'