Harness CE API Documentation
Harness Chaos Engineering empowers teams to deliver more resilient systems, helping organizations avoid downtime that can be costly, both financially and in lost reputation. It enables DevOps and SRE teams to purposely create failure scenarios (“chaos”) to identify potential resiliency and reliability issues in their deployments. These scenarios go beyond traditional unit, integration, and system tests, more closely representing what random failures in a production operating environment would look like.
Terms of Service
API Endpoints
# Production:
https://app.harness.io/gateway/chaos/manager/api/query
Headers
# Use your API key token for authorization
X-API-KEY: <YOUR_API_KEY_TOKEN_HERE>
# Or use your JWT token for authorization
Authorization: <YOUR_JWT_TOKEN_HERE>
Your First Chaos Experiment
NOTE: These steps assumes you already have an account in Harness, if not, please create a new project or ask your administrator to add you to an existing project in Harness.
Please follow the below guidelines to run your first Chaos experiment Pod Delete:
Sequence in which the APIs should be executed to run a sample chaos experiment such as Pod Delete (all the APIs to do so are present in folder "Run Pod Delete Chaos Experiment" under Harness CE Postman Collection).
Listed below are the required inputs and how to access (or generate) them. We will refer these variables in the API requests explained in this tutorial -
url
This is the Harness CE server URL serving the Chaos API requests. You can find this URL in the Chaos API doc(top right
). For instance, https://app.harness.io/gateway/chaos/manager/api/query is the Harness CE server URL for production environment. If you are using Chaos postman collection, this value will be pre-filled in 2 postman variables like below:
base_url - https://app.harness.io
chaos_url - $base_url/gateway/chaos/manager/api/query
account_id
This is your Harness account Id. Please use the account where you would like to run Chaos experiments.
You can retrieve your account Id by following the below steps:
- Go to
ACCOUNT SETTINGS
in Harness. - Click on
Overview
. - Copy the value of
Account Id
.
project_id
This is your Harness project Id. Please use the project where you would like to run Chaos experiments.
You can retrieve your project Id by following the below steps:
- Go to
Projects
in Harness. - Select the project where you would like to run the Chaos experiments or create a new project.
- Click on
Overview
. - Copy the value of
Id
. - Please make sure to copy the value of
Organization
as well, this will be the value of next required variableorg_id
.
org_id
This is your Harness organization Id. Please use the organization where you would like to run Chaos experiments.
You can retrieve your organization Id by following the below steps: See above step to retrieve project_id - you would have copied the value of org_id as well in that step, if not please follow the same steps again to retrieve organization Id
API-KEY-TOKEN
You can use an existing Harness API key token of the same Harness account selected in above steps or you can create a new one by following the below steps:
- Click on
MY PROFILE
in Harness. - Go to
My API Keys
section and click on+ API Key
button to create a new API Key. - Enter a
Name
for the API Key(optional Description/Tags) and click onSave
. - Under the newly created API Key, click on
+ Token
button to generate a new token for this API Key. - Enter the
Name
and select theExpiration
(time for which this token will be valid) and click onGenerate Token
. - Please make sure to copy the value of the token generated and store somewhere safe, you may not be able to copy this later.
Variables In Harness CE Postman Collection
In order to work with Harness CE Postman Collection, please fork it under your own Postman account and update the above-mentioned variables in order to work with Harness CE Postman Collection.
Authorization Header For API Request
An authorization header with API-KEY-TOKEN value retrieved above is required to work with Chaos APIs i.e., x-api-key: $API-KEY-TOKEN
APIs to be executed in given sequence:
RegisterInfra
Now, we can create/register a chaos infrastructure. Here, we will add a Kubernetes infrastructure so that we can inject Kubernetes resource faults.
Add a name to your chaos infrastructure and optionally a description and tags. After that, choose the mode of installation for Harness delegate. As a quick primer, Harness delegate is a remote agent for accessing your Kubernetes cluster resources and injecting faults into them as part of a chaos experiment. The Cluster Wide installation mode allows you to target resources across all the namespaces in your cluster while Namespace Mode installation restricts chaos injection to only the namespace in which the delegate will be installed. In this tutorial, the delegate will be installed in the hce namespace with Cluster Wide mode, but you can change it.
NOTE: Above values are pre-filled in Harness CE Postman Collection.
Please make sure to note down the value of field token
and infraID
from response, these values will be used in subsequent API calls.
Once above request is executed, retrieve the infrastructure manifest by forming URL as shown below: $chaos_server_url/file/$token.yaml
where $chaos_server_url
would be https://app.harness.io/gateway/chaos/manager/api/
and $token
is the token value retrieved in response of registerInfra
API call as shown in sample response above. An example URL to retrieve infrastructure manifest could look like https://app.harness.io/gateway/chaos/manager/api/file/token-abc.yaml
, copy and save the yaml in a machine where kubectl is installed and has access to your k8s cluster in some file named infra.yaml
.
Lastly, provided that you have access to your Kubernetes cluster via kubectl, deploy your chaos infrastructure by executing the below commands - kubectl apply -f infra.yaml
It will take a while for the delegate to setup in the k8s cluster. Meanwhile, if you want to check the status of your infra, please use the API GetInfraDetails
as explained below.
GetInfraDetails
Optional - If you want to get the details of your newly registered infra or to check if your infra is active or not before creating a Chaos workflow, you can use GetInfraDetails
API - It will return the details of a given infra based on infra ID input. Please make sure to check the value of field isActive
, it should be true
i.e., the infrastructure should be in active
state prior to moving forward.
NOTE: Above values are pre-filled in Harness CE Postman Collection.
ListPredefinedWorkflow
Optional - Required if and only if you want to run a different chaos experiment other than pod-delete, by default, pod delete experiment manifest is present in CreateChaosWorkFlow
API call) - This will list down all the available predefined workflows/experiments that can be run on your infra, please select one of them and copy the manifest from there and make necessary changes such as namespace, etc.
CreateChaosWorkFlow
Please make sure to deploy some sample target application under hce
namespace with label app=cartservice
prior to running this API. With our target application deployed, we can now create a chaos experiment. We will be targeting the pods of the deployed app with the Pod Delete fault. To create the chaos experiment, Add the experiment name and optionally a description and tags. Then, Add the target infrastructure id, which we created previously.
This will allow us to create our chaos experiment with a pod-delete fault configured to target the Online Boutique application.
NOTE: In order to run this API using Harness CE Postman Collection, you just need to update the value of variable infraID
retrieved during registerInfra
API call. The value for workflowManifest
field is pre-filled in the Harness CE postman collection, user does not need to update in case they want to target an application under hce
namespace with label app=cartservice
mentioned in this tutorial.
RunChaosExperiment
Once a workflow is created, you can now execute the experiment by providing the workflow id
from CreateChaosWorkFlow
API call. NOTE: Please note down the value of field notifyID
.
ListWorkflowRun
Optional - Required only if you want to check the details of the workflow currently running - details can be validated by UI as well if user prefers to do so) - It will list down all the workflow runs with the required details for those workflows, this API call can be used to validate if the workflow created by RunChaosExperiment
API call is running or not, completed, etc using the field phase
.
Let's go to Harness CE Postman Collection to see this in action.
Queries
getHubExperiment
Description
Get the Experiment list from a ChaosHub
Response
Returns a Chart!
Arguments
Name | Description |
---|---|
request - ExperimentRequest!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
query GetHubExperiment(
$request: ExperimentRequest!,
$identifiers: IdentifiersRequest!
) {
getHubExperiment(
request: $request,
identifiers: $identifiers
) {
apiVersion
kind
metadata {
name
version
annotations {
categories
vendor
createdAt
repository
support
chartDescription
}
}
spec {
displayName
categoryDescription
keywords
maturity
maintainers {
name
email
}
minKubeVersion
provider {
name
}
links {
name
url
}
faults {
name
displayName
description
}
experiments
chaosExpCRDLink
platforms
chaosType
}
packageInfo {
packageName
experiments {
name
CSV
desc
}
}
}
}
Variables
{
"request": ExperimentRequest,
"identifiers": IdentifiersRequest
}
Response
{
"data": {
"getHubExperiment": {
"apiVersion": "abc123",
"kind": "abc123",
"metadata": Metadata,
"spec": Spec,
"packageInfo": PackageInformation
}
}
}
getInfraDetails
Description
Returns infra details based on identifiers
Response
Returns an Infra!
Arguments
Name | Description |
---|---|
infraID - String!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
query GetInfraDetails(
$infraID: String!,
$identifiers: IdentifiersRequest!
) {
getInfraDetails(
infraID: $infraID,
identifiers: $identifiers
) {
infraID
name
description
tags
environmentID
platformName
isActive
isInfraConfirmed
isRemoved
updatedAt
createdAt
noOfSchedules
noOfWorkflows
token
infraNamespace
serviceAccount
infraScope
infraNsExists
infraSaExists
installationType
k8sConnectorID
lastWorkflowTimestamp
startTime
version
createdBy {
userID
username
email
}
updatedBy {
userID
username
email
}
}
}
Variables
{
"infraID": "abc123",
"identifiers": IdentifiersRequest
}
Response
{
"data": {
"getInfraDetails": {
"infraID": 4,
"name": "abc123",
"description": "xyz789",
"tags": ["xyz789"],
"environmentID": "abc123",
"platformName": "abc123",
"isActive": false,
"isInfraConfirmed": false,
"isRemoved": true,
"updatedAt": "abc123",
"createdAt": "abc123",
"noOfSchedules": 987,
"noOfWorkflows": 987,
"token": "xyz789",
"infraNamespace": "abc123",
"serviceAccount": "abc123",
"infraScope": "xyz789",
"infraNsExists": true,
"infraSaExists": true,
"installationType": "CONNECTOR",
"k8sConnectorID": "abc123",
"lastWorkflowTimestamp": "abc123",
"startTime": "xyz789",
"version": "abc123",
"createdBy": UserDetails,
"updatedBy": UserDetails
}
}
}
getInfraManifest
Description
Returns the manifest for a given infraID
Response
Returns a String!
Arguments
Name | Description |
---|---|
infraID - String!
|
|
upgrade - Boolean!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
query GetInfraManifest(
$infraID: String!,
$upgrade: Boolean!,
$identifiers: IdentifiersRequest!
) {
getInfraManifest(
infraID: $infraID,
upgrade: $upgrade,
identifiers: $identifiers
)
}
Variables
{
"infraID": "xyz789",
"upgrade": true,
"identifiers": IdentifiersRequest
}
Response
{"data": {"getInfraManifest": {}}}
getPredefinedExperimentYAML
Description
Returns the list of predefined experiments in a project
Response
Returns a String!
Arguments
Name | Description |
---|---|
request - ExperimentRequest!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
query GetPredefinedExperimentYAML(
$request: ExperimentRequest!,
$identifiers: IdentifiersRequest!
) {
getPredefinedExperimentYAML(
request: $request,
identifiers: $identifiers
)
}
Variables
{
"request": ExperimentRequest,
"identifiers": IdentifiersRequest
}
Response
{"data": {"getPredefinedExperimentYAML": {}}}
getPredefinedWorkflow
Description
Returns predefined experiment details of selected experiments
Response
Returns [PredefinedWorkflowList!]!
Arguments
Name | Description |
---|---|
hubID - String!
|
|
experimentName - [String!]!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
query GetPredefinedWorkflow(
$hubID: String!,
$experimentName: [String!]!,
$identifiers: IdentifiersRequest!
) {
getPredefinedWorkflow(
hubID: $hubID,
experimentName: $experimentName,
identifiers: $identifiers
) {
workflowName
workflowCSV
workflowManifest
}
}
Variables
{
"hubID": "abc123",
"experimentName": ["xyz789"],
"identifiers": IdentifiersRequest
}
Response
{
"data": {
"getPredefinedWorkflow": [
{
"workflowName": "abc123",
"workflowCSV": "abc123",
"workflowManifest": "xyz789"
}
]
}
}
getWorkflowManifestByID
Description
Returns a single workflow templates given a projectID and a templateID
Response
Returns a WorkflowTemplateResponse!
Arguments
Name | Description |
---|---|
templateID - String!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
query GetWorkflowManifestByID(
$templateID: String!,
$identifiers: IdentifiersRequest!
) {
getWorkflowManifestByID(
templateID: $templateID,
identifiers: $identifiers
) {
identifiers {
orgIdentifier
accountIdentifier
projectIdentifier
}
templateID
manifest
name
description
projectName
createdAt
isRemoved
isCustomWorkflow
tags
createdBy {
userID
username
email
}
updatedBy {
userID
username
email
}
updatedAt
}
}
Variables
{
"templateID": "abc123",
"identifiers": IdentifiersRequest
}
Response
{
"data": {
"getWorkflowManifestByID": {
"identifiers": Identifiers,
"templateID": 4,
"manifest": "xyz789",
"name": "xyz789",
"description": "xyz789",
"projectName": "abc123",
"createdAt": "abc123",
"isRemoved": true,
"isCustomWorkflow": false,
"tags": ["xyz789"],
"createdBy": UserDetails,
"updatedBy": UserDetails,
"updatedAt": "xyz789"
}
}
}
getYAMLData
Description
Get the YAML manifest of ChaosEngine/ChaosExperiment
Response
Returns a String!
Arguments
Name | Description |
---|---|
request - ExperimentRequest!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
query GetYAMLData(
$request: ExperimentRequest!,
$identifiers: IdentifiersRequest!
) {
getYAMLData(
request: $request,
identifiers: $identifiers
)
}
Variables
{
"request": ExperimentRequest,
"identifiers": IdentifiersRequest
}
Response
{"data": {"getYAMLData": {}}}
listChaosHub
Description
Get the status of all the connected ChaosHub
Response
Returns [ChaosHubStatus]!
Arguments
Name | Description |
---|---|
identifiers - IdentifiersRequest!
|
|
request - ListChaosHubRequest
|
Example
Query
query ListChaosHub(
$identifiers: IdentifiersRequest!,
$request: ListChaosHubRequest
) {
listChaosHub(
identifiers: $identifiers,
request: $request
) {
id
repoName
repoURL
repoBranch
connectorId
connectorScope
AuthType
isAvailable
totalExp
totalWorkflows
name
lastSyncedAt
isDefault
tags
createdBy {
userID
username
email
}
updatedBy {
userID
username
email
}
createdAt
updatedAt
description
}
}
Variables
{
"identifiers": IdentifiersRequest,
"request": ListChaosHubRequest
}
Response
{
"data": {
"listChaosHub": [
{
"id": "4",
"repoName": "abc123",
"repoURL": "xyz789",
"repoBranch": "xyz789",
"connectorId": "xyz789",
"connectorScope": "ACCOUNT",
"AuthType": "Ssh",
"isAvailable": true,
"totalExp": "abc123",
"totalWorkflows": "abc123",
"name": "abc123",
"lastSyncedAt": "xyz789",
"isDefault": false,
"tags": ["xyz789"],
"createdBy": UserDetails,
"updatedBy": UserDetails,
"createdAt": "xyz789",
"updatedAt": "xyz789",
"description": "abc123"
}
]
}
}
listChart
Description
List the Charts from a ChaosHub
Response
Returns [Chart!]!
Arguments
Name | Description |
---|---|
hubID - String!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
query ListChart(
$hubID: String!,
$identifiers: IdentifiersRequest!
) {
listChart(
hubID: $hubID,
identifiers: $identifiers
) {
apiVersion
kind
metadata {
name
version
annotations {
categories
vendor
createdAt
repository
support
chartDescription
}
}
spec {
displayName
categoryDescription
keywords
maturity
maintainers {
name
email
}
minKubeVersion
provider {
name
}
links {
name
url
}
faults {
name
displayName
description
}
experiments
chaosExpCRDLink
platforms
chaosType
}
packageInfo {
packageName
experiments {
name
CSV
desc
}
}
}
}
Variables
{
"hubID": "xyz789",
"identifiers": IdentifiersRequest
}
Response
{
"data": {
"listChart": [
{
"apiVersion": "xyz789",
"kind": "xyz789",
"metadata": Metadata,
"spec": Spec,
"packageInfo": PackageInformation
}
]
}
}
listInfras
Description
Returns infras with a particular infra type in the project
Response
Returns a ListInfraResponse!
Arguments
Name | Description |
---|---|
identifiers - IdentifiersRequest!
|
|
request - ListInfraRequest
|
Example
Query
query ListInfras(
$identifiers: IdentifiersRequest!,
$request: ListInfraRequest
) {
listInfras(
identifiers: $identifiers,
request: $request
) {
totalNoOfInfras
infras {
infraID
name
description
tags
environmentID
platformName
isActive
isInfraConfirmed
isRemoved
updatedAt
createdAt
noOfSchedules
noOfWorkflows
token
infraNamespace
serviceAccount
infraScope
infraNsExists
infraSaExists
installationType
k8sConnectorID
lastWorkflowTimestamp
startTime
version
createdBy {
userID
username
email
}
updatedBy {
userID
username
email
}
}
}
}
Variables
{
"identifiers": IdentifiersRequest,
"request": ListInfraRequest
}
Response
{
"data": {
"listInfras": {
"totalNoOfInfras": 987,
"infras": [Infra]
}
}
}
listPredefinedWorkflow
Description
Returns the list of predefined workflows in a project
Response
Returns [PredefinedWorkflowList!]!
Arguments
Name | Description |
---|---|
hubID - String!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
query ListPredefinedWorkflow(
$hubID: String!,
$identifiers: IdentifiersRequest!
) {
listPredefinedWorkflow(
hubID: $hubID,
identifiers: $identifiers
) {
workflowName
workflowCSV
workflowManifest
}
}
Variables
{
"hubID": "xyz789",
"identifiers": IdentifiersRequest
}
Response
{
"data": {
"listPredefinedWorkflow": [
{
"workflowName": "abc123",
"workflowCSV": "abc123",
"workflowManifest": "abc123"
}
]
}
}
listWorkflow
Description
Returns the list of workflows based on various filter parameters
Response
Returns a ListWorkflowResponse!
Arguments
Name | Description |
---|---|
identifiers - IdentifiersRequest!
|
|
request - ListWorkflowRequest!
|
Example
Query
query ListWorkflow(
$identifiers: IdentifiersRequest!,
$request: ListWorkflowRequest!
) {
listWorkflow(
identifiers: $identifiers,
request: $request
) {
totalNoOfWorkflows
workflows {
identifiers {
orgIdentifier
accountIdentifier
projectIdentifier
}
workflowID
workflowManifest
cronSyntax
name
description
weightages {
experimentName
weightage
}
isCustomWorkflow
updatedAt
createdAt
infra {
infraID
name
description
tags
environmentID
platformName
isActive
isInfraConfirmed
isRemoved
updatedAt
createdAt
noOfSchedules
noOfWorkflows
token
infraNamespace
serviceAccount
infraScope
infraNsExists
infraSaExists
installationType
k8sConnectorID
lastWorkflowTimestamp
startTime
version
createdBy {
userID
username
email
}
updatedBy {
userID
username
email
}
}
isRemoved
tags
createdBy {
userID
username
email
}
avgResiliencyScore
percentageChange
lastWfRunDetails {
identifiers {
orgIdentifier
accountIdentifier
projectIdentifier
}
workflowRunID
workflowID
weightages {
experimentName
weightage
}
updatedAt
createdAt
infra {
infraID
name
description
tags
environmentID
platformName
isActive
isInfraConfirmed
isRemoved
updatedAt
createdAt
noOfSchedules
noOfWorkflows
token
infraNamespace
serviceAccount
infraScope
infraNsExists
infraSaExists
installationType
k8sConnectorID
lastWorkflowTimestamp
startTime
version
createdBy {
userID
username
email
}
updatedBy {
userID
username
email
}
}
workflowName
phase
resiliencyScore
experimentsPassed
experimentsFailed
experimentsAwaited
experimentsStopped
experimentsNa
totalExperiments
executionData
isRemoved
updatedBy {
userID
username
email
}
createdBy {
userID
username
email
}
}
updatedBy {
userID
username
email
}
}
}
}
Variables
{
"identifiers": IdentifiersRequest,
"request": ListWorkflowRequest
}
Response
{
"data": {
"listWorkflow": {
"totalNoOfWorkflows": 987,
"workflows": [Workflow]
}
}
}
listWorkflowManifest
Description
Returns all the workflow templates for the projectID
Response
Returns [WorkflowTemplateResponse]!
Arguments
Name | Description |
---|---|
identifiers - IdentifiersRequest!
|
Example
Query
query ListWorkflowManifest($identifiers: IdentifiersRequest!) {
listWorkflowManifest(identifiers: $identifiers) {
identifiers {
orgIdentifier
accountIdentifier
projectIdentifier
}
templateID
manifest
name
description
projectName
createdAt
isRemoved
isCustomWorkflow
tags
createdBy {
userID
username
email
}
updatedBy {
userID
username
email
}
updatedAt
}
}
Variables
{"identifiers": IdentifiersRequest}
Response
{
"data": {
"listWorkflowManifest": [
{
"identifiers": Identifiers,
"templateID": "4",
"manifest": "abc123",
"name": "abc123",
"description": "abc123",
"projectName": "abc123",
"createdAt": "xyz789",
"isRemoved": false,
"isCustomWorkflow": true,
"tags": ["abc123"],
"createdBy": UserDetails,
"updatedBy": UserDetails,
"updatedAt": "xyz789"
}
]
}
}
listWorkflowRun
Description
Returns the list of workflow run based on various filter parameters
Response
Returns a ListWorkflowRunResponse!
Arguments
Name | Description |
---|---|
identifiers - IdentifiersRequest!
|
|
request - ListWorkflowRunRequest!
|
Example
Query
query ListWorkflowRun(
$identifiers: IdentifiersRequest!,
$request: ListWorkflowRunRequest!
) {
listWorkflowRun(
identifiers: $identifiers,
request: $request
) {
totalNoOfWorkflowRuns
workflowRuns {
identifiers {
orgIdentifier
accountIdentifier
projectIdentifier
}
workflowRunID
workflowID
weightages {
experimentName
weightage
}
updatedAt
createdAt
infra {
infraID
name
description
tags
environmentID
platformName
isActive
isInfraConfirmed
isRemoved
updatedAt
createdAt
noOfSchedules
noOfWorkflows
token
infraNamespace
serviceAccount
infraScope
infraNsExists
infraSaExists
installationType
k8sConnectorID
lastWorkflowTimestamp
startTime
version
createdBy {
userID
username
email
}
updatedBy {
userID
username
email
}
}
workflowName
phase
resiliencyScore
experimentsPassed
experimentsFailed
experimentsAwaited
experimentsStopped
experimentsNa
totalExperiments
executionData
isRemoved
updatedBy {
userID
username
email
}
createdBy {
userID
username
email
}
}
}
}
Variables
{
"identifiers": IdentifiersRequest,
"request": ListWorkflowRunRequest
}
Response
{
"data": {
"listWorkflowRun": {
"totalNoOfWorkflowRuns": 987,
"workflowRuns": [WorkflowRun]
}
}
}
Mutations
addChaosHub
Description
Add a ChaosHub (includes the git clone operation)
Response
Returns a ChaosHub!
Arguments
Name | Description |
---|---|
request - ChaosHubRequest!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
mutation AddChaosHub(
$request: ChaosHubRequest!,
$identifiers: IdentifiersRequest!
) {
addChaosHub(
request: $request,
identifiers: $identifiers
) {
id
identifiers {
orgIdentifier
accountIdentifier
projectIdentifier
}
repoName
repoURL
repoBranch
AuthType
connectorId
connectorScope
name
createdAt
updatedAt
lastSyncedAt
isDefault
tags
createdBy {
userID
username
email
}
updatedBy {
userID
username
email
}
description
}
}
Variables
{
"request": ChaosHubRequest,
"identifiers": IdentifiersRequest
}
Response
{
"data": {
"addChaosHub": {
"id": 4,
"identifiers": Identifiers,
"repoName": "abc123",
"repoURL": "abc123",
"repoBranch": "xyz789",
"AuthType": "Ssh",
"connectorId": "abc123",
"connectorScope": "ACCOUNT",
"name": "xyz789",
"createdAt": "xyz789",
"updatedAt": "abc123",
"lastSyncedAt": "xyz789",
"isDefault": false,
"tags": ["xyz789"],
"createdBy": UserDetails,
"updatedBy": UserDetails,
"description": "xyz789"
}
}
}
chaosWorkflowRun
Description
Creates a new workflow run and sends it to subscriber
Response
Returns a String!
Arguments
Name | Description |
---|---|
request - WorkflowRunRequest!
|
Example
Query
mutation ChaosWorkflowRun($request: WorkflowRunRequest!) {
chaosWorkflowRun(request: $request)
}
Variables
{"request": WorkflowRunRequest}
Response
{"data": {"chaosWorkflowRun": {}}}
confirmInfraRegistration
Description
Confirms the subscriber's registration with the control plane
Response
Returns a ConfirmInfraRegistrationResponse!
Arguments
Name | Description |
---|---|
request - InfraIdentity!
|
Example
Query
mutation ConfirmInfraRegistration($request: InfraIdentity!) {
confirmInfraRegistration(request: $request) {
isInfraConfirmed
newAccessKey
infraID
}
}
Variables
{"request": InfraIdentity}
Response
{
"data": {
"confirmInfraRegistration": {
"isInfraConfirmed": false,
"newAccessKey": "xyz789",
"infraID": "xyz789"
}
}
}
createChaosWorkFlow
Description
Creates a new workflow and applies its manifest
Response
Returns a ChaosWorkFlowResponse!
Arguments
Name | Description |
---|---|
request - ChaosWorkFlowRequest!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
mutation CreateChaosWorkFlow(
$request: ChaosWorkFlowRequest!,
$identifiers: IdentifiersRequest!
) {
createChaosWorkFlow(
request: $request,
identifiers: $identifiers
) {
workflowID
identifiers {
orgIdentifier
accountIdentifier
projectIdentifier
}
cronSyntax
workflowName
workflowDescription
isCustomWorkflow
tags
}
}
Variables
{
"request": ChaosWorkFlowRequest,
"identifiers": IdentifiersRequest
}
Response
{
"data": {
"createChaosWorkFlow": {
"workflowID": "abc123",
"identifiers": Identifiers,
"cronSyntax": "abc123",
"workflowName": "abc123",
"workflowDescription": "abc123",
"isCustomWorkflow": false,
"tags": ["abc123"]
}
}
}
createWorkflowTemplate
Description
Creates a workflow template manifest
Response
Returns a WorkflowTemplateResponse!
Arguments
Name | Description |
---|---|
request - TemplateInput
|
|
identifiers - IdentifiersRequest!
|
Example
Query
mutation CreateWorkflowTemplate(
$request: TemplateInput,
$identifiers: IdentifiersRequest!
) {
createWorkflowTemplate(
request: $request,
identifiers: $identifiers
) {
identifiers {
orgIdentifier
accountIdentifier
projectIdentifier
}
templateID
manifest
name
description
projectName
createdAt
isRemoved
isCustomWorkflow
tags
createdBy {
userID
username
email
}
updatedBy {
userID
username
email
}
updatedAt
}
}
Variables
{
"request": TemplateInput,
"identifiers": IdentifiersRequest
}
Response
{
"data": {
"createWorkflowTemplate": {
"identifiers": Identifiers,
"templateID": "4",
"manifest": "abc123",
"name": "xyz789",
"description": "abc123",
"projectName": "abc123",
"createdAt": "xyz789",
"isRemoved": true,
"isCustomWorkflow": true,
"tags": ["xyz789"],
"createdBy": UserDetails,
"updatedBy": UserDetails,
"updatedAt": "xyz789"
}
}
}
deleteChaosHub
Description
Delete the ChaosHub
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
id - ID!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
mutation DeleteChaosHub(
$id: ID!,
$identifiers: IdentifiersRequest!
) {
deleteChaosHub(
id: $id,
identifiers: $identifiers
)
}
Variables
{"id": 4, "identifiers": IdentifiersRequest}
Response
{"data": {"deleteChaosHub": {}}}
deleteChaosWorkflow
Description
Removes a workflow from infra
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
workflowID - String!
|
|
workflowRunID - String
|
|
identifiers - IdentifiersRequest!
|
Example
Query
mutation DeleteChaosWorkflow(
$workflowID: String!,
$workflowRunID: String,
$identifiers: IdentifiersRequest!
) {
deleteChaosWorkflow(
workflowID: $workflowID,
workflowRunID: $workflowRunID,
identifiers: $identifiers
)
}
Variables
{
"workflowID": "xyz789",
"workflowRunID": "abc123",
"identifiers": IdentifiersRequest
}
Response
{"data": {"deleteChaosWorkflow": {}}}
deleteInfras
Description
Disconnects an infra and deletes its configuration from the control plane
Response
Returns a String!
Arguments
Name | Description |
---|---|
identifiers - IdentifiersRequest!
|
|
infraIDs - [String]!
|
Example
Query
mutation DeleteInfras(
$identifiers: IdentifiersRequest!,
$infraIDs: [String]!
) {
deleteInfras(
identifiers: $identifiers,
infraIDs: $infraIDs
)
}
Variables
{
"identifiers": IdentifiersRequest,
"infraIDs": ["abc123"]
}
Response
{"data": {"deleteInfras": {}}}
deleteWorkflowTemplate
Description
Removes a workflow template manifest
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
templateID - String!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
mutation DeleteWorkflowTemplate(
$templateID: String!,
$identifiers: IdentifiersRequest!
) {
deleteWorkflowTemplate(
templateID: $templateID,
identifiers: $identifiers
)
}
Variables
{
"templateID": "abc123",
"identifiers": IdentifiersRequest
}
Response
{"data": {"deleteWorkflowTemplate": {}}}
getManifestWithInfraID
Description
Fetches manifest details
Response
Returns a String!
Arguments
Name | Description |
---|---|
identifiers - IdentifiersRequest!
|
|
infraID - String!
|
|
accessKey - String!
|
Example
Query
mutation GetManifestWithInfraID(
$identifiers: IdentifiersRequest!,
$infraID: String!,
$accessKey: String!
) {
getManifestWithInfraID(
identifiers: $identifiers,
infraID: $infraID,
accessKey: $accessKey
)
}
Variables
{
"identifiers": IdentifiersRequest,
"infraID": "abc123",
"accessKey": "abc123"
}
Response
{"data": {"getManifestWithInfraID": {}}}
pushWorkflowToChaosHub
Description
Push workflow to ChaosHub
Response
Returns a String!
Arguments
Name | Description |
---|---|
request - PushWorkflowToChaosHubInput!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
mutation PushWorkflowToChaosHub(
$request: PushWorkflowToChaosHubInput!,
$identifiers: IdentifiersRequest!
) {
pushWorkflowToChaosHub(
request: $request,
identifiers: $identifiers
)
}
Variables
{
"request": PushWorkflowToChaosHubInput,
"identifiers": IdentifiersRequest
}
Response
{"data": {"pushWorkflowToChaosHub": {}}}
registerInfra
Description
Connect a new infra for a user in a specified project
Response
Returns a RegisterInfraResponse!
Arguments
Name | Description |
---|---|
identifiers - IdentifiersRequest!
|
|
request - RegisterInfraRequest!
|
Example
Query
mutation RegisterInfra(
$identifiers: IdentifiersRequest!,
$request: RegisterInfraRequest!
) {
registerInfra(
identifiers: $identifiers,
request: $request
) {
token
infraID
name
manifest
}
}
Variables
{
"identifiers": IdentifiersRequest,
"request": RegisterInfraRequest
}
Response
{
"data": {
"registerInfra": {
"token": "xyz789",
"infraID": "xyz789",
"name": "xyz789",
"manifest": "abc123"
}
}
}
runChaosExperiment
Description
Run the chaos experiment (used by frontend)
Response
Returns a RunChaosExperimentResponse!
Arguments
Name | Description |
---|---|
workflowID - String!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
mutation RunChaosExperiment(
$workflowID: String!,
$identifiers: IdentifiersRequest!
) {
runChaosExperiment(
workflowID: $workflowID,
identifiers: $identifiers
) {
notifyID
}
}
Variables
{
"workflowID": "abc123",
"identifiers": IdentifiersRequest
}
Response
{
"data": {
"runChaosExperiment": {
"notifyID": "xyz789"
}
}
}
stopWorkflowRuns
Description
stopWorkflow will halt all the running runs of a particular workflow
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
identifiers - IdentifiersRequest!
|
|
workflowID - String!
|
|
workflowRunID - String
|
Example
Query
mutation StopWorkflowRuns(
$identifiers: IdentifiersRequest!,
$workflowID: String!,
$workflowRunID: String
) {
stopWorkflowRuns(
identifiers: $identifiers,
workflowID: $workflowID,
workflowRunID: $workflowRunID
)
}
Variables
{
"identifiers": IdentifiersRequest,
"workflowID": "abc123",
"workflowRunID": "xyz789"
}
Response
{"data": {"stopWorkflowRuns": {}}}
syncChaosHub
Description
Sync changes from the Git repository of a ChaosHub
Response
Returns a String!
Arguments
Name | Description |
---|---|
id - ID!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
mutation SyncChaosHub(
$id: ID!,
$identifiers: IdentifiersRequest!
) {
syncChaosHub(
id: $id,
identifiers: $identifiers
)
}
Variables
{
"id": "4",
"identifiers": IdentifiersRequest
}
Response
{"data": {"syncChaosHub": {}}}
updateChaosHub
Description
Update the configuration of a ChaosHub
Response
Returns a ChaosHub!
Arguments
Name | Description |
---|---|
id - ID!
|
|
request - ChaosHubRequest!
|
|
identifiers - IdentifiersRequest!
|
Example
Query
mutation UpdateChaosHub(
$id: ID!,
$request: ChaosHubRequest!,
$identifiers: IdentifiersRequest!
) {
updateChaosHub(
id: $id,
request: $request,
identifiers: $identifiers
) {
id
identifiers {
orgIdentifier
accountIdentifier
projectIdentifier
}
repoName
repoURL
repoBranch
AuthType
connectorId
connectorScope
name
createdAt
updatedAt
lastSyncedAt
isDefault
tags
createdBy {
userID
username
email
}
updatedBy {
userID
username
email
}
description
}
}
Variables
{
"id": 4,
"request": ChaosHubRequest,
"identifiers": IdentifiersRequest
}
Response
{
"data": {
"updateChaosHub": {
"id": 4,
"identifiers": Identifiers,
"repoName": "xyz789",
"repoURL": "abc123",
"repoBranch": "abc123",
"AuthType": "Ssh",
"connectorId": "xyz789",
"connectorScope": "ACCOUNT",
"name": "xyz789",
"createdAt": "abc123",
"updatedAt": "abc123",
"lastSyncedAt": "xyz789",
"isDefault": true,
"tags": ["abc123"],
"createdBy": UserDetails,
"updatedBy": UserDetails,
"description": "xyz789"
}
}
}
updateChaosWorkflow
Description
Updates the workflow
Response
Returns a ChaosWorkFlowResponse!
Arguments
Name | Description |
---|---|
request - ChaosWorkFlowRequest
|
|
identifiers - IdentifiersRequest!
|
Example
Query
mutation UpdateChaosWorkflow(
$request: ChaosWorkFlowRequest,
$identifiers: IdentifiersRequest!
) {
updateChaosWorkflow(
request: $request,
identifiers: $identifiers
) {
workflowID
identifiers {
orgIdentifier
accountIdentifier
projectIdentifier
}
cronSyntax
workflowName
workflowDescription
isCustomWorkflow
tags
}
}
Variables
{
"request": ChaosWorkFlowRequest,
"identifiers": IdentifiersRequest
}
Response
{
"data": {
"updateChaosWorkflow": {
"workflowID": "xyz789",
"identifiers": Identifiers,
"cronSyntax": "xyz789",
"workflowName": "xyz789",
"workflowDescription": "xyz789",
"isCustomWorkflow": false,
"tags": ["xyz789"]
}
}
}
Types
Annotation
Example
{
"categories": "xyz789",
"vendor": "abc123",
"createdAt": "abc123",
"repository": "abc123",
"support": "xyz789",
"chartDescription": "abc123"
}
Audit
Fields
Field Name | Description |
---|---|
updatedAt - String
|
|
createdAt - String
|
|
updatedBy - UserDetails
|
|
createdBy - UserDetails
|
Possible Types
Audit Types |
---|
Example
{
"updatedAt": "xyz789",
"createdAt": "abc123",
"updatedBy": UserDetails,
"createdBy": UserDetails
}
Boolean
Description
The Boolean
scalar type represents true
or false
.
Example
{}
ChaosHub
Fields
Field Name | Description |
---|---|
id - ID!
|
ID of the chaos hub |
identifiers - Identifiers!
|
Harness identifiers |
repoName - String
|
Name of the repository if connector is of Account type |
repoURL - String!
|
URL of the git repository |
repoBranch - String!
|
Branch of the git repository |
AuthType - ChaosHubAuthType!
|
AuthType |
connectorId - String!
|
Name of the GitConnectorId |
connectorScope - ConnectorScope!
|
Name of the ConnectorScope |
name - String!
|
Name of the chaos hub |
createdAt - String!
|
Timestamp when the chaos hub was created |
updatedAt - String!
|
Timestamp when the chaos hub was last updated |
lastSyncedAt - String!
|
Timestamp when the chaos hub was last synced |
isDefault - Boolean!
|
Default Hub Identifier |
tags - [String!]
|
Tags of the ChaosHub |
createdBy - UserDetails
|
User who created the ChaosHub |
updatedBy - UserDetails
|
User who has updated the ChaosHub |
description - String
|
Description of ChaosHub |
Example
{
"id": "4",
"identifiers": Identifiers,
"repoName": "xyz789",
"repoURL": "abc123",
"repoBranch": "abc123",
"AuthType": "Ssh",
"connectorId": "abc123",
"connectorScope": "ACCOUNT",
"name": "xyz789",
"createdAt": "xyz789",
"updatedAt": "abc123",
"lastSyncedAt": "xyz789",
"isDefault": false,
"tags": ["xyz789"],
"createdBy": UserDetails,
"updatedBy": UserDetails,
"description": "xyz789"
}
ChaosHubAuthType
Values
Enum Value | Description |
---|---|
|
|
|
Example
{}
ChaosHubFilterInput
ChaosHubRequest
Description
Defines the details required for creating a chaos hub
Fields
Input Field | Description |
---|---|
hubName - String!
|
Name of the chaos hub |
connectorId - String!
|
Name of the GitConnectorId |
connectorScope - ConnectorScope!
|
Name of the ConnectorScope |
repoName - String
|
Repo name of the git repository |
repoBranch - String!
|
Branch of the git repository |
tags - [String!]
|
Tags of the ChaosHub |
description - String
|
Description of ChaosHub |
Example
{}
ChaosHubStatus
Fields
Field Name | Description |
---|---|
id - ID!
|
ID of the hub |
repoName - String
|
Name of the repository if connector is of Account type |
repoURL - String!
|
URL of the git repository |
repoBranch - String!
|
Branch of the git repository |
connectorId - String!
|
Name of the GitConnectorId |
connectorScope - ConnectorScope!
|
Name of the ConnectorScope |
AuthType - ChaosHubAuthType!
|
AuthType |
isAvailable - Boolean!
|
Bool value indicating whether the hub is available or not. |
totalExp - String!
|
Total number of experiments in the hub |
totalWorkflows - String!
|
Total workflows |
name - String!
|
Name of the chaos hub |
lastSyncedAt - String!
|
Timestamp when the chaos hub was last synced |
isDefault - Boolean!
|
Default Hub Identifier |
tags - [String!]
|
Tags of the ChaosHub |
createdBy - UserDetails
|
User who created the ChaosHub |
updatedBy - UserDetails
|
User who has updated the ChaosHub |
createdAt - String!
|
Created at timestamp |
updatedAt - String!
|
Updated at timestamp |
description - String
|
Description of ChaosHub |
Example
{
"id": 4,
"repoName": "abc123",
"repoURL": "abc123",
"repoBranch": "xyz789",
"connectorId": "abc123",
"connectorScope": "ACCOUNT",
"AuthType": "Ssh",
"isAvailable": true,
"totalExp": "xyz789",
"totalWorkflows": "abc123",
"name": "abc123",
"lastSyncedAt": "xyz789",
"isDefault": false,
"tags": ["abc123"],
"createdBy": UserDetails,
"updatedBy": UserDetails,
"createdAt": "xyz789",
"updatedAt": "abc123",
"description": "abc123"
}
ChaosWorkFlowRequest
Description
Defines the details for a chaos workflow
Fields
Input Field | Description |
---|---|
workflowID - String
|
ID of the workflow |
runExperiment - Boolean
|
Boolean check indicating if the created scenario will be executed or not |
workflowManifest - String!
|
Manifest of the workflow |
cronSyntax - String!
|
Cron syntax of the workflow schedule |
workflowName - String!
|
Name of the workflow |
workflowDescription - String!
|
Description of the workflow |
weightages - [WeightagesInput!]!
|
Array containing weightage and name of each chaos experiment in the workflow |
isCustomWorkflow - Boolean!
|
Bool value indicating whether the workflow is a custom workflow or not |
infraID - ID!
|
ID of the target infra in which the workflow will run |
tags - [String!]
|
Tags of the infra |
Example
{}
ChaosWorkFlowResponse
Description
Defines the response received for querying the details of chaos workflow
Fields
Field Name | Description |
---|---|
workflowID - String!
|
ID of the workflow |
identifiers - Identifiers!
|
Harness Identifiers |
cronSyntax - String!
|
Cron syntax of the workflow schedule |
workflowName - String!
|
Name of the workflow |
workflowDescription - String!
|
Description of the workflow |
isCustomWorkflow - Boolean!
|
Bool value indicating whether the workflow is a custom workflow or not |
tags - [String!]
|
Tags of the infra |
Example
{
"workflowID": "xyz789",
"identifiers": Identifiers,
"cronSyntax": "abc123",
"workflowName": "xyz789",
"workflowDescription": "xyz789",
"isCustomWorkflow": true,
"tags": ["abc123"]
}
Chart
Fields
Field Name | Description |
---|---|
apiVersion - String!
|
|
kind - String!
|
|
metadata - Metadata!
|
|
spec - Spec!
|
|
packageInfo - PackageInformation!
|
Example
{
"apiVersion": "xyz789",
"kind": "xyz789",
"metadata": Metadata,
"spec": Spec,
"packageInfo": PackageInformation
}
ConfirmInfraRegistrationResponse
ConnectorScope
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
{}
DateRange
ExperimentInfoInput
ExperimentRequest
Experiments
FaultList
Float
Description
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
{}
ID
Description
The ID
scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
Example
{}
INFRA_SCOPE
Values
Enum Value | Description |
---|---|
|
|
|
Example
{}
Identifiers
Description
Defines the common identifiers for API operations
Example
{
"orgIdentifier": "xyz789",
"accountIdentifier": "xyz789",
"projectIdentifier": "xyz789"
}
IdentifiersRequest
Infra
Description
Defines the details for a infra
Fields
Field Name | Description |
---|---|
infraID - ID!
|
ID of the infra |
name - String!
|
Name of the infra |
description - String
|
Description of the infra |
tags - [String!]
|
Tags of the infra |
environmentID - String!
|
Environment ID for the infra |
platformName - String!
|
Infra Platform Name eg. GKE,AWS, Others |
isActive - Boolean!
|
Boolean value indicating if chaos infrastructure is active or not |
isInfraConfirmed - Boolean!
|
Boolean value indicating if chaos infrastructure is confirmed or not |
isRemoved - Boolean!
|
Boolean value indicating if chaos infrastructure is removed or not |
updatedAt - String!
|
Timestamp when the infra was last updated |
createdAt - String!
|
Timestamp when the infra was created |
noOfSchedules - Int
|
Number of schedules created in the infra |
noOfWorkflows - Int
|
Number of workflows run in the infra |
token - String!
|
Token used to verify and retrieve the infra manifest |
infraNamespace - String
|
Namespace where the infra is being installed |
serviceAccount - String
|
Name of service account used by infra |
infraScope - String!
|
Scope of the infra : ns or infra |
infraNsExists - Boolean
|
Bool value indicating whether infra ns used already exists on infra or not |
infraSaExists - Boolean
|
Bool value indicating whether service account used already exists on infra or not |
installationType - InstallationType!
|
InstallationType connector/manifest |
k8sConnectorID - String
|
K8sConnectorID |
lastWorkflowTimestamp - String
|
Timestamp of the last workflow run in the infra |
startTime - String!
|
Timestamp when the infra got connected |
version - String!
|
Version of the infra |
createdBy - UserDetails
|
User who created the infra |
updatedBy - UserDetails
|
User who has updated the infra |
Example
{
"infraID": "4",
"name": "xyz789",
"description": "abc123",
"tags": ["xyz789"],
"environmentID": "abc123",
"platformName": "abc123",
"isActive": true,
"isInfraConfirmed": true,
"isRemoved": false,
"updatedAt": "abc123",
"createdAt": "abc123",
"noOfSchedules": 123,
"noOfWorkflows": 123,
"token": "xyz789",
"infraNamespace": "xyz789",
"serviceAccount": "xyz789",
"infraScope": "xyz789",
"infraNsExists": false,
"infraSaExists": false,
"installationType": "CONNECTOR",
"k8sConnectorID": "xyz789",
"lastWorkflowTimestamp": "xyz789",
"startTime": "xyz789",
"version": "abc123",
"createdBy": UserDetails,
"updatedBy": UserDetails
}
InfraFilterInput
Description
Defines filter options for infras
Example
{}
InfraIdentity
InstallationType
Description
InstallationType defines the installation method used by the user
Values
Enum Value | Description |
---|---|
|
|
|
Example
{}
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
{}
Link
ListChaosHubRequest
Fields
Input Field | Description |
---|---|
chaosHubIDs - [ID!]
|
Array of ChaosHub IDs for which details will be fetched |
filter - ChaosHubFilterInput
|
Details for fetching filtered data |
Example
{}
ListInfraRequest
Description
Defines the details for a workflow
Fields
Input Field | Description |
---|---|
infraIDs - [ID!]
|
Array of infra IDs for which details will be fetched |
environmentIDs - [ID!]
|
Environment ID |
k8sConnectorIDs - [ID!]
|
Connector ID |
pagination - Pagination
|
Details for fetching paginated data |
filter - InfraFilterInput
|
Details for fetching filtered data |
Example
{}
ListInfraResponse
ListWorkflowRequest
Description
Defines the details for a workflow
Fields
Input Field | Description |
---|---|
workflowIDs - [ID]
|
Array of workflow IDs for which details will be fetched |
pagination - Pagination
|
Details for fetching paginated data |
sort - WorkflowSortInput
|
Details for fetching sorted data |
filter - WorkflowFilterInput
|
Details for fetching filtered data |
Example
{}
ListWorkflowResponse
Description
Defines the details for a workflow with total workflow count
Fields
Field Name | Description |
---|---|
totalNoOfWorkflows - Int!
|
Total number of workflows |
workflows - [Workflow]!
|
Details related to the workflows |
Example
{"totalNoOfWorkflows": 987, "workflows": [Workflow]}
ListWorkflowRunRequest
Description
Defines the details for workflow runs
Fields
Input Field | Description |
---|---|
workflowRunIDs - [ID]
|
Array of workflow run IDs for which details will be fetched |
notifyIDs - [ID]
|
Array of notify IDs for which details will be fetched |
workflowIDs - [ID]
|
Array of workflow IDs for which details will be fetched |
pagination - Pagination
|
Details for fetching paginated data |
sort - WorkflowRunSortInput
|
Details for fetching sorted data |
filter - WorkflowRunFilterInput
|
Details for fetching filtered data |
Example
{}
ListWorkflowRunResponse
Description
Defines the details of a workflow to sent as response
Fields
Field Name | Description |
---|---|
totalNoOfWorkflowRuns - Int!
|
Total number of workflow runs |
workflowRuns - [WorkflowRun]!
|
Defines details of workflow runs |
Example
{
"totalNoOfWorkflowRuns": 123,
"workflowRuns": [WorkflowRun]
}
Maintainer
Metadata
Fields
Field Name | Description |
---|---|
name - String!
|
|
version - String!
|
|
annotations - Annotation!
|
Example
{
"name": "xyz789",
"version": "abc123",
"annotations": Annotation
}
PackageInformation
Fields
Field Name | Description |
---|---|
packageName - String!
|
|
experiments - [Experiments!]!
|
Example
{
"packageName": "xyz789",
"experiments": [Experiments]
}
Pagination
PredefinedWorkflowList
Provider
Fields
Field Name | Description |
---|---|
name - String!
|
Example
{"name": "xyz789"}
PushWorkflowToChaosHubInput
Fields
Input Field | Description |
---|---|
id - String!
|
HubID for the selected ChaosHub |
manifest - String
|
Workflow Manifest to be pushed |
workflowID - String
|
WorkflowID to fetch the manifest |
scenarioName - String!
|
Scenario Name |
description - String!
|
Scenario Description |
tags - [String!]
|
Tags for the scenario |
experiments - [ExperimentInfoInput!]
|
Experiment info |
Example
{}
RegisterInfraRequest
Description
Defines the details for the new infra being connected
Fields
Input Field | Description |
---|---|
name - String!
|
Name of the infra |
environmentID - String!
|
Environment ID for the infra |
description - String
|
Description of the infra |
platformName - String!
|
Infra Platform Name eg. GKE,AWS, Others |
infraNamespace - String
|
Namespace where the infra is being installed |
serviceAccount - String
|
Name of service account used by infra |
infraScope - String!
|
Scope of the infra : ns or infra |
infraNsExists - Boolean
|
Bool value indicating whether infra ns used already exists on infra or not |
infraSaExists - Boolean
|
Bool value indicating whether service account used already exists on infra or not |
installationType - InstallationType!
|
InstallationType connector/manifest |
k8sConnectorID - String
|
K8sConnectorID |
skipSsl - Boolean
|
Bool value indicating whether infra will skip ssl checks or not |
nodeSelector - String
|
Node selectors used by infra |
tolerations - [Toleration]
|
Node tolerations used by infra |
tags - [String!]
|
Tags of the infra |
Example
{}
RegisterInfraResponse
Description
Response received for registering a new infra
Example
{
"token": "xyz789",
"infraID": "abc123",
"name": "abc123",
"manifest": "abc123"
}
ResourceDetails
Possible Types
ResourceDetails Types |
---|
Example
{
"name": "xyz789",
"description": "xyz789",
"tags": ["xyz789"]
}
RunChaosExperimentResponse
Fields
Field Name | Description |
---|---|
notifyID - String!
|
Example
{"notifyID": "abc123"}
ScenarioType
Values
Enum Value | Description |
---|---|
|
|
|
Example
{}
Spec
Fields
Field Name | Description |
---|---|
displayName - String!
|
|
categoryDescription - String!
|
|
keywords - [String!]!
|
|
maturity - String!
|
|
maintainers - [Maintainer!]!
|
|
minKubeVersion - String!
|
|
provider - Provider!
|
|
links - [Link!]!
|
|
faults - [FaultList!]
|
|
experiments - [String!]
|
|
chaosExpCRDLink - String!
|
|
platforms - [String!]!
|
|
chaosType - String
|
Example
{
"displayName": "xyz789",
"categoryDescription": "abc123",
"keywords": ["abc123"],
"maturity": "abc123",
"maintainers": [Maintainer],
"minKubeVersion": "abc123",
"provider": Provider,
"links": [Link],
"faults": [FaultList],
"experiments": ["abc123"],
"chaosExpCRDLink": "abc123",
"platforms": ["abc123"],
"chaosType": "xyz789"
}
String
Description
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
{}
TemplateInput
Description
Details for saving the template
Fields
Input Field | Description |
---|---|
manifest - String!
|
Workflow manifest in JSON escaped format |
templateName - String!
|
Name of the template |
templateDescription - String!
|
Description of the template |
isCustomWorkflow - Boolean!
|
Bool value indicating whether the workflow is a custom workflow or not |
tags - [String!]
|
Tags of the WorkflowTemplates |
Example
{}
Toleration
UserDetails
Weightages
WeightagesInput
Workflow
Description
Defines the details for a workflow
Fields
Field Name | Description |
---|---|
identifiers - Identifiers!
|
Harness identifiers |
workflowID - String!
|
ID of the workflow |
workflowManifest - String!
|
Manifest of the workflow |
cronSyntax - String!
|
Cron syntax of the workflow schedule |
name - String!
|
Name of the workflow |
description - String!
|
Description of the workflow |
weightages - [Weightages!]!
|
Array containing weightage and name of each chaos experiment in the workflow |
isCustomWorkflow - Boolean!
|
Bool value indicating whether the workflow is a custom workflow or not |
updatedAt - String!
|
Timestamp when the workflow was last updated |
createdAt - String!
|
Timestamp when the workflow was created |
infra - Infra
|
Target infra in which the workflow will run |
isRemoved - Boolean!
|
Bool value indicating if the workflow has removed |
tags - [String!]
|
Tags of the workflow |
createdBy - UserDetails
|
User who created the workflow |
avgResiliencyScore - Float!
|
Shows the average resiliency score of the workflow |
percentageChange - Float!
|
Shows percentage change in resiliency score |
lastWfRunDetails - WorkflowRun
|
Object containing details of latest workflow run |
updatedBy - UserDetails
|
Details of the user who updated the workflow |
Example
{
"identifiers": Identifiers,
"workflowID": "abc123",
"workflowManifest": "xyz789",
"cronSyntax": "abc123",
"name": "xyz789",
"description": "abc123",
"weightages": [Weightages],
"isCustomWorkflow": true,
"updatedAt": "xyz789",
"createdAt": "abc123",
"infra": Infra,
"isRemoved": true,
"tags": ["abc123"],
"createdBy": UserDetails,
"avgResiliencyScore": 987.65,
"percentageChange": 123.45,
"lastWfRunDetails": WorkflowRun,
"updatedBy": UserDetails
}
WorkflowFilterInput
Description
Defines filter options for workflows
Fields
Input Field | Description |
---|---|
workflowName - String
|
Name of the workflow |
infraName - String
|
Name of the infra in which the workflow is running |
infraID - String
|
ID of the agent in which the workflow is running |
infraActive - Boolean
|
Bool value indicating if Chaos Infrastructure is active |
scenarioType - ScenarioType
|
Scenario type of the workflow i.e. CRON or NON_CRON |
status - String
|
Status of the latest workflow run |
dateRange - DateRange
|
Date range for filtering purpose |
Example
{}
WorkflowRun
Description
Defines the details of a workflow run
Fields
Field Name | Description |
---|---|
identifiers - Identifiers!
|
Harness identifiers |
workflowRunID - ID!
|
ID of the workflow run which is to be queried |
workflowID - ID!
|
ID of the workflow |
weightages - [Weightages!]!
|
Array containing weightage and name of each chaos experiment in the workflow |
updatedAt - String!
|
Timestamp at which workflow run was last updated |
createdAt - String!
|
Timestamp at which workflow run was created |
infra - Infra!
|
Target infra in which the workflow will run |
workflowName - String!
|
Name of the workflow |
phase - String!
|
Phase of the workflow run |
resiliencyScore - Float
|
Resiliency score of the workflow |
experimentsPassed - Int
|
Number of experiments passed |
experimentsFailed - Int
|
Number of experiments failed |
experimentsAwaited - Int
|
Number of experiments awaited |
experimentsStopped - Int
|
Number of experiments stopped |
experimentsNa - Int
|
Number of experiments which are not available |
totalExperiments - Int
|
Total number of experiments |
executionData - String!
|
Stores all the workflow run details related to the nodes of DAG graph and chaos results of the experiments |
isRemoved - Boolean
|
Bool value indicating if the workflow run has removed |
updatedBy - UserDetails
|
User who has updated the workflow |
createdBy - UserDetails
|
User who has created the experiment run |
Example
{
"identifiers": Identifiers,
"workflowRunID": "4",
"workflowID": "4",
"weightages": [Weightages],
"updatedAt": "xyz789",
"createdAt": "abc123",
"infra": Infra,
"workflowName": "xyz789",
"phase": "abc123",
"resiliencyScore": 123.45,
"experimentsPassed": 987,
"experimentsFailed": 987,
"experimentsAwaited": 987,
"experimentsStopped": 123,
"experimentsNa": 123,
"totalExperiments": 987,
"executionData": "xyz789",
"isRemoved": false,
"updatedBy": UserDetails,
"createdBy": UserDetails
}
WorkflowRunFilterInput
Description
Defines input type for workflow run filter
Fields
Input Field | Description |
---|---|
workflowName - String
|
Name of the workflow |
infraID - String
|
Name of the infra infra |
workflowStatus - WorkflowRunStatus
|
Status of the workflow run |
dateRange - DateRange
|
Date range for filtering purpose |
Example
{}
WorkflowRunRequest
Description
Defines the details for a workflow run
Fields
Input Field | Description |
---|---|
workflowID - ID!
|
ID of the workflow |
workflowRunID - ID!
|
ID of the workflow run which is to be queried |
workflowName - String!
|
Name of the workflow |
executionData - String!
|
Stores all the workflow run details related to the nodes of DAG graph and chaos results of the experiments |
infraID - InfraIdentity!
|
ID of the infra infra in which the workflow is running |
revisionID - String!
|
ID of the revision which consists manifest details |
notifyID - String
|
Notify ID is used to retrun re-run validation of an experiment |
completed - Boolean!
|
Bool value indicating if the workflow run has completed |
isRemoved - Boolean
|
Bool value indicating if the workflow run has removed |
updatedBy - String!
|
User who has updated the workflow |
Example
{}
WorkflowRunSortInput
Description
Defines sorting options for workflow runs
Fields
Input Field | Description |
---|---|
field - WorkflowSortingField!
|
Field in which sorting will be done |
descending - Boolean
|
Bool value indicating whether the sorting will be done in descending order |
Example
{}
WorkflowRunStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
{}
WorkflowSortInput
Description
Defines sorting options for workflow
Fields
Input Field | Description |
---|---|
field - WorkflowSortingField!
|
Field in which sorting will be done |
descending - Boolean
|
Bool value indicating whether the sorting will be done in descending order |
Example
{}
WorkflowSortingField
Values
Enum Value | Description |
---|---|
|
|
|
Example
{}
WorkflowTemplateResponse
Description
Details for a workflow template
Fields
Field Name | Description |
---|---|
identifiers - Identifiers!
|
Harness identifiers |
templateID - ID!
|
ID of the template |
manifest - String!
|
Workflow manifest in JSON escaped string |
name - String!
|
Name of the template |
description - String!
|
Description of the template |
projectName - String!
|
Name of the project |
createdAt - String!
|
Time at which the manifest template was created |
isRemoved - Boolean!
|
Bool value indicating if the workflow template has removed |
isCustomWorkflow - Boolean!
|
Bool value indicating whether the workflow template is a custom or not |
tags - [String!]
|
Tags of the WorkflowTemplates |
createdBy - UserDetails
|
User who created the workflow template |
updatedBy - UserDetails
|
User who has updated the workflow template |
updatedAt - String
|
User who has updated the workflow template |
Example
{
"identifiers": Identifiers,
"templateID": 4,
"manifest": "xyz789",
"name": "abc123",
"description": "abc123",
"projectName": "xyz789",
"createdAt": "xyz789",
"isRemoved": false,
"isCustomWorkflow": false,
"tags": ["abc123"],
"createdBy": UserDetails,
"updatedBy": UserDetails,
"updatedAt": "abc123"
}