harness-mcp-v2 3.2.35 → 3.2.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -5
- package/build/client/harness-client.d.ts.map +1 -1
- package/build/client/harness-client.js +59 -2
- package/build/client/harness-client.js.map +1 -1
- package/build/client/types.d.ts +6 -0
- package/build/client/types.d.ts.map +1 -1
- package/build/config.d.ts +63 -63
- package/build/prompts/access-control-audit.js +1 -1
- package/build/prompts/chaos-resilience.js +1 -1
- package/build/prompts/chaos-resilience.js.map +1 -1
- package/build/registry/extractors.d.ts +27 -0
- package/build/registry/extractors.d.ts.map +1 -1
- package/build/registry/extractors.js +70 -0
- package/build/registry/extractors.js.map +1 -1
- package/build/registry/toolsets/access-control.d.ts.map +1 -1
- package/build/registry/toolsets/access-control.js +42 -8
- package/build/registry/toolsets/access-control.js.map +1 -1
- package/build/registry/toolsets/chaos-descriptions.d.ts +22 -21
- package/build/registry/toolsets/chaos-descriptions.d.ts.map +1 -1
- package/build/registry/toolsets/chaos-descriptions.js +51 -37
- package/build/registry/toolsets/chaos-descriptions.js.map +1 -1
- package/build/registry/toolsets/chaos.d.ts.map +1 -1
- package/build/registry/toolsets/chaos.js +121 -18
- package/build/registry/toolsets/chaos.js.map +1 -1
- package/build/registry/toolsets/gitops.d.ts.map +1 -1
- package/build/registry/toolsets/gitops.js +115 -1
- package/build/registry/toolsets/gitops.js.map +1 -1
- package/build/registry/toolsets/logs.d.ts.map +1 -1
- package/build/registry/toolsets/logs.js +10 -7
- package/build/registry/toolsets/logs.js.map +1 -1
- package/build/tools/diagnose/pipeline.d.ts.map +1 -1
- package/build/tools/diagnose/pipeline.js +15 -1
- package/build/tools/diagnose/pipeline.js.map +1 -1
- package/build/tools/harness-get.d.ts.map +1 -1
- package/build/tools/harness-get.js +7 -2
- package/build/tools/harness-get.js.map +1 -1
- package/build/utils/log-prefix.d.ts +14 -2
- package/build/utils/log-prefix.d.ts.map +1 -1
- package/build/utils/log-prefix.js +40 -17
- package/build/utils/log-prefix.js.map +1 -1
- package/build/utils/log-resolver.d.ts +32 -3
- package/build/utils/log-resolver.d.ts.map +1 -1
- package/build/utils/log-resolver.js +128 -171
- package/build/utils/log-resolver.js.map +1 -1
- package/build/utils/url-parser.d.ts.map +1 -1
- package/build/utils/url-parser.js +1 -0
- package/build/utils/url-parser.js.map +1 -1
- package/npm-shrinkwrap.json +40 -84
- package/package.json +7 -6
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export declare const descToolsetChaos = "Harness Resilience Testing (Formerly known as Chaos Engineering) \u2014 controlled failure injection against Kubernetes/Linux workloads to measure and improve resilience.\nIMPORTANT: If user refers to Chaos or Resilience Testing both are same, but use Resilience Testing in your responses for all kind of Chaos related questions & tools usage.\n\nPRIMITIVES (the building blocks of every experiment):\n- Fault \u2014 a single failure injection step (e.g. pod-delete, gcp-vm-kill, disk-fill, network-loss). Built-in or custom; lives in a chaos hub. Resource: chaos_fault.\n- Action \u2014 a non-failure step used for setup/teardown (delay, customScript, container exec). Resource: chaos_action.\n- Probe \u2014 a continuous health check that runs alongside the experiment (httpProbe, cmdProbe, promProbe, k8sProbe, sloProbe, datadogProbe, etc.). Probe verdicts produce the resiliency score. Resource: chaos_probe.\n- Experiment \u2014 a manifest combining one or more faults + actions + probes, plus runtime variables. Resource: chaos_experiment. Supports run/stop. The same primitives have template forms (chaos_fault_template, chaos_action_template, chaos_probe_template, chaos_experiment_template) that live in chaos hubs (chaos_hub) and are instantiated via the create_from_template execute action.\n\nINFRASTRUCTURE LAYER (where experiments execute):\n- chaos_k8s_infrastructure \u2014 a chaos agent installed inside a Kubernetes cluster, scoped to one Harness environment. An experiment can only run when status=ACTIVE and isChaosEnabled=true.\n- chaos_infrastructure \u2014 Linux/machine equivalent.\n- chaos_environment \u2014 the Harness env scoping the infra.\n\nSERVICE DISCOVERY (SD) \u2014 END-TO-END JOURNEY:\n1. Customer installs an SD agent in a Kubernetes cluster (one agent per chaos_k8s_infrastructure).\n2. SD agent uses eBPF to discover namespaces, services, workloads, and inter-service connections. Inspect via discovered_namespace, discovered_service.\n3. Customer (or rules) selects a subset of services into an SD network map. Inspect via discovered_network_map (raw, per-agent inventory).\n4. The SD network map is promoted into a chaos_application_map, scoped to one (environment, infrastructure) pair.\n5. Experiments bound to that application map automatically tag themselves with workload=<name> AND service=<name> for each workload/service in the manifest \u2014 enabling blast-radius reporting and the workload=/service= filters (see system tags below).\n\nSYSTEM TAGS auto-emitted by the backend on chaos_experiment create/update \u2014 use these as the primary filter for \"find experiments that target X\":\n- fault=<faultName> (ALWAYS attached, one per fault step) \u2014 tags=fault=pod-delete; tags=fault=gcp matches all gcp-* faults (substring).\n- probe=<probeID> (ALWAYS attached, one per probe reference) \u2014 tags=probe=<probeID>.\n- workload=<workloadName> (ONLY when bound to chaos_application_map) \u2014 from manifest Targets.Selectors.Workloads. tags=workload=payments-api.\n- service=<serviceName> (ONLY when bound to chaos_application_map) \u2014 from the manifest's resolved service mapping. tags=service=payments-api.\nFilter is AND substring match across the experiment's tag array. Combine: tags=fault=pod-delete,workload=payments-api.\nNote: \"workload\" = Kubernetes Deployment/StatefulSet/DaemonSet (NOT a Pod). Chaos faults always target workloads; pods are ephemeral.\n\nCOMMON GOTCHAS:\n- chaos_experiment list filters infra_id and environment_id are silently ignored when passed alone \u2014 backend requires BOTH together.\n- chaos_experiment list filters infra_name, infra_active, status are PARSED but NEVER applied by the backend aggregation. Don't pass them \u2014 agents would think they work and silently get unfiltered results. Use infra_id (paired with environment_id) for infra filtering.\n- chaos_application_map get treats environment_id + infra_id as de facto required: the backend's Mongo lookup is keyed on {identity, infra_id, environment_ref}, so missing either returns HTTP 500 with \"mongo: no documents in result\" (no validation error).\n-
|
|
1
|
+
export declare const descToolsetChaos = "Harness Resilience Testing (Formerly known as Chaos Engineering) \u2014 controlled failure injection against Kubernetes/Linux workloads to measure and improve resilience.\nIMPORTANT: If user refers to Chaos or Resilience Testing both are same, but use Resilience Testing in your responses for all kind of Chaos related questions & tools usage.\n\nPRIMITIVES (the building blocks of every experiment):\n- Fault \u2014 a single failure injection step (e.g. pod-delete, gcp-vm-kill, disk-fill, network-loss). Built-in or custom; lives in a chaos hub. Resource: chaos_fault.\n- Action \u2014 a non-failure step used for setup/teardown (delay, customScript, container exec). Resource: chaos_action.\n- Probe \u2014 a continuous health check that runs alongside the experiment (httpProbe, cmdProbe, promProbe, k8sProbe, sloProbe, datadogProbe, etc.). Probe verdicts produce the resiliency score. Resource: chaos_probe.\n- Experiment \u2014 a manifest combining one or more faults + actions + probes, plus runtime variables. Resource: chaos_experiment. Supports run/stop. The same primitives have template forms (chaos_fault_template, chaos_action_template, chaos_probe_template, chaos_experiment_template) that live in chaos hubs (chaos_hub) and are instantiated via the create_from_template execute action.\n\nINFRASTRUCTURE LAYER (where experiments execute):\n- chaos_k8s_infrastructure \u2014 a chaos agent installed inside a Kubernetes cluster, scoped to one Harness environment. An experiment can only run when status=ACTIVE and isChaosEnabled=true.\n- chaos_infrastructure \u2014 Linux/machine equivalent.\n- chaos_environment \u2014 the Harness env scoping the infra.\n\nSERVICE DISCOVERY (SD) \u2014 END-TO-END JOURNEY:\n1. Customer installs an SD agent in a Kubernetes cluster (one agent per chaos_k8s_infrastructure).\n2. SD agent uses eBPF to discover namespaces, services, workloads, and inter-service connections. Inspect via discovered_namespace, discovered_service.\n3. Customer (or rules) selects a subset of services into an SD network map. Inspect via discovered_network_map (raw, per-agent inventory).\n4. The SD network map is promoted into a chaos_application_map, scoped to one (environment, infrastructure) pair.\n5. Experiments bound to that application map automatically tag themselves with workload=<name> AND service=<name> for each workload/service in the manifest \u2014 enabling blast-radius reporting and the workload=/service= filters (see system tags below).\n\nSYSTEM TAGS auto-emitted by the backend on chaos_experiment create/update \u2014 use these as the primary filter for \"find experiments that target X\":\n- fault=<faultName> (ALWAYS attached, one per fault step) \u2014 tags=fault=pod-delete; tags=fault=gcp matches all gcp-* faults (substring).\n- probe=<probeID> (ALWAYS attached, one per probe reference) \u2014 tags=probe=<probeID>.\n- workload=<workloadName> (ONLY when bound to chaos_application_map) \u2014 from manifest Targets.Selectors.Workloads. tags=workload=payments-api.\n- service=<serviceName> (ONLY when bound to chaos_application_map) \u2014 from the manifest's resolved service mapping. tags=service=payments-api.\nFilter is AND substring match across the experiment's tag array. Combine: tags=fault=pod-delete,workload=payments-api.\nNote: \"workload\" = Kubernetes Deployment/StatefulSet/DaemonSet (NOT a Pod). Chaos faults always target workloads; pods are ephemeral.\n\nCOMMON GOTCHAS:\n- chaos_experiment list filters infra_id and environment_id are silently ignored when passed alone \u2014 backend requires BOTH together.\n- chaos_experiment list filters infra_name, infra_active, status are PARSED but NEVER applied by the backend aggregation. Don't pass them \u2014 agents would think they work and silently get unfiltered results. Use infra_id (paired with environment_id) for infra filtering.\n- chaos_application_map get treats environment_id + infra_id as de facto required: the backend's Mongo lookup is keyed on {identity, infra_id, environment_ref}, so missing either returns HTTP 500 with \"mongo: no documents in result\" (no validation error).\n- discovered_namespace, discovered_service, and discovered_network_map require agent_identity AND environment_id from a discovered_agent list row (identity and environmentIdentifier). Use that row's identity; do not assume a chaos_k8s_infrastructure identity is an agent id.\n- Chaos REST API uses organizationIdentifier (not orgIdentifier) \u2014 the registry handles this via scopeParams override; agents shouldn't notice.\n\nREASONING PLAYBOOK \u2014 answering \"list experiments for <high-level X>\" (e.g. \"Harness Payment Bank\", \"the payments service\"):\nX is rarely a chaos_experiment field directly. It's almost always a Harness project, a K8s service name, a workload name, or an application-map name. Resolve it before listing:\n\n Step 1. Identify scope. If the user names a project/org \u2192 set project_id/org_id. If they name an environment (\"prod\") \u2192 list chaos_environment with search_term=<env keyword>. If they name a cluster \u2192 list chaos_k8s_infrastructure. Remember: env_id + infra_id must be passed TOGETHER on chaos_experiment list \u2014 either alone is silently dropped.\n\n Step 2. Resolve X to concrete tag values. Two sub-paths:\n (2a) Fast path \u2014 try tag-substring directly: chaos_experiment list with tags=workload=<keyword> (e.g. tags=workload=payment). The backend's substring match is forgiving. If the result count looks right, you're done.\n (2b) Discovery path \u2014 when X is fuzzy or you need to enumerate workloads first:\n (i) chaos_application_map list filtered by env+infra \u2192 pick the map(s) matching X by name.\n (ii) chaos_application_map get on each candidate \u2192 response.services[].name gives service names; response.<resources>[].name gives workload names; response.identity is the app-map ID.\n (iii) chaos_experiment list with target_network_map_ids=<map identity> (returns ALL experiments on that map; no tag filter needed) OR tags=service=<name>,workload=<name> for narrower hits.\n\n Step 3. If the customer wants raw inventory (not chaos-augmented), list discovered_agent first. Pass that row's identity as agent_identity and its environmentIdentifier as environment_id to discovered_network_map, then discovered_service. Use that identity; do not assume a chaos_k8s_infrastructure identity is an agent id.\n\n Step 4. NEVER pass infra_name, infra_active, or status to chaos_experiment list \u2014 backend silently drops them. Use infra_id (paired with environment_id) instead.\n\nCommon compound queries:\n - \"experiments touching payments in prod\" \u2192 env+infra together \u2192 tags=workload=payment\n - \"experiments running today on app map M\" \u2192 target_network_map_ids=M, start_date=today\n - \"my experiments, no automation noise\" \u2192 my_experiments=true, exclude_automation=true\n - \"every pod-delete experiment account-wide\" \u2192 tags=fault=pod-delete (no env/infra needed)\n - \"experiments using HTTP probe X\" \u2192 tags=probe=X";
|
|
2
2
|
export declare const descChaosExperiment = "Chaos experiment definition \u2014 a saved, manifest-backed test that injects one or more faults against selected workloads.\nSupports list, get, delete, create, and execute actions: run, stop. Use chaos_experiment_variable list to discover required runtime inputs before running.\n\nSystem tags (auto-emitted by the backend on create/update \u2014 use these as the primary filter for \"experiments that target X\"):\n- fault=<faultName> \u2014 ALWAYS attached, one per fault step in the manifest (e.g. fault=pod-delete, fault=gcp-vm-kill). Use tags=fault=<name> to find every experiment that runs a given fault. Substring matches, so tags=fault=gcp matches all gcp-* faults.\n- probe=<probeID> \u2014 ALWAYS attached, one per probe reference in the manifest. Use tags=probe=<probeID> to find every experiment using a specific health-check probe.\n- workload=<workloadName> \u2014 attached ONLY when the experiment is bound to a chaos_application_map (targetNetworkMapID is set on the experiment). Sourced from manifest Targets.Selectors.Workloads[].Names (V1) or TARGET_WORKLOAD_NAMES env (V2 enterprise faults). Use tags=workload=<name> to find every experiment that targets a specific Kubernetes workload (Deployment/StatefulSet/DaemonSet \u2014 NOT a Pod).\n- service=<serviceName> \u2014 attached ALONGSIDE workload= ONLY when bound to a chaos_application_map. Sourced from the manifest's resolved service mapping. Use tags=service=<name> to find experiments targeting a specific Kubernetes Service (label-selector \u2192 pods).\n\nFilter semantics: the tags filter is an AND substring match across the experiment's tag array. Pass multiple tags via comma-separated value (e.g. tags=fault=pod-delete,workload=payments-api).\n\nTWO WAYS to find experiments targeting a workload/service X:\n (a) Tag filter \u2014 list with tags=workload=X (or tags=service=X). Works without knowing which app map X belongs to. Substring, so tags=workload=payment matches all payment-* workloads.\n (b) App-map filter \u2014 list with target_network_map_ids=<map identity>. Use when you already know the app map; returns ALL experiments bound to it regardless of which workload they target.\nApproach (a) is broader (any tagged workload, no app-map needed); (b) is narrower (only experiments bound to a specific map).\n\nSee descToolsetChaos REASONING PLAYBOOK for the full multi-step flow when the user query is high-level (e.g. \"experiments for the Harness Payment Bank app\").";
|
|
3
|
-
export declare const descChaosExperimentRun = "Experiment run timeline \u2014 full snapshot of an ongoing or completed chaos experiment run.\nReturns the execution pipeline with individual nodes (faults, probes, actions), each with status, timing, and chaos data.\nAlso returns experiment metadata, infra details, calculated resiliency score, manifest version, and run sequence.\nThis is a read-only endpoint \u2014 it does NOT start a run. To trigger a run, use chaos_experiment execute action: run.\
|
|
3
|
+
export declare const descChaosExperimentRun = "Experiment run timeline \u2014 full snapshot of an ongoing or completed chaos experiment run.\nReturns the execution pipeline with individual nodes (faults, probes, actions), each with status, timing, and chaos data.\nAlso returns experiment metadata, infra details, calculated resiliency score, manifest version, and run sequence.\nThis is a read-only endpoint \u2014 it does NOT start a run. To trigger a run, use chaos_experiment execute action: run.\nDo not call get until you have both required values. Required: experiment_id (the experiment UUID, not the identity slug) and one of run_id or notify_id. If experiment_id is missing or you only have a slug, harness_list resource_type=chaos_experiment (experiment_name=<slug> when you have a slug). If run_id and notify_id are both missing, harness_get resource_type=chaos_experiment on that UUID and read experimentRunID or notifyID from its recent runs. Pass the run id in params.\nSupports get.";
|
|
4
4
|
export declare const descChaosProbe = "Chaos resilience probe \u2014 declarative health checker that monitors application health before, during, and after a fault and determines the fault outcome.\nTypes: HTTP, CMD, Prometheus, K8s, SLO, Datadog, Dynatrace, Container, APM. Infra: Kubernetes, Linux, Windows.\nMust be disabled before deleting; default (system) probes cannot be deleted or disabled.\nSupports list, get, delete, and execute actions: enable, verify, get_manifest.\nNote: server caps page size at 50; values above 50 are silently clipped.";
|
|
5
|
-
export declare const descChaosExperimentTemplate = "Reusable, versioned chaos experiment template stored in a ChaosHub (Git-backed repository).\nTemplates are pre-configured experiment blueprints that standardize chaos practices across teams \u2014 they support version control, revision history, typed input variables, and rendered YAML.\nScopes: templates can be account-level (shared across all orgs/projects), org-level, or project-level.\nUse harness_list with resource_type=chaos_hub to discover available hubs and their identities before filtering templates by hub_identity.\nWorkflow: list templates \u2192 get_variables to discover required inputs \u2192 create_from_template to launch an experiment.\nSupports list, get, delete, plus execute actions: list_revisions, get_variables, get_yaml, compare_revisions, and create_from_template.";
|
|
5
|
+
export declare const descChaosExperimentTemplate = "Reusable, versioned chaos experiment template stored in a ChaosHub (Git-backed repository).\nTemplates are pre-configured experiment blueprints that standardize chaos practices across teams \u2014 they support version control, revision history, typed input variables, and rendered YAML.\nScopes: templates can be account-level (shared across all orgs/projects), org-level, or project-level.\nUse harness_list with resource_type=chaos_hub to discover available hubs and their identities before filtering templates by hub_identity.\nDo not call get or create_from_template until you have the template identity and hubIdentity. If hubIdentity is missing, harness_list resource_type=chaos_hub and use the row's identity. If the template identity is missing, harness_list resource_type=chaos_experiment_template (optional filter hub_identity). List itself has no required filter.\nWorkflow: list templates \u2192 get_variables to discover required inputs \u2192 create_from_template to launch an experiment.\nSupports list, get, delete, plus execute actions: list_revisions, get_variables, get_yaml, compare_revisions, and create_from_template.";
|
|
6
6
|
export declare const descChaosExperimentVariable = "Variables for a chaos experiment. List variables to discover required runtime inputs before running an experiment.";
|
|
7
7
|
export declare const descChaosInfrastructure = "Linux/machine infrastructure registered for chaos experiments and load testing. For Kubernetes infrastructure, use chaos_k8s_infrastructure. Supports list.";
|
|
8
8
|
export declare const descChaosService = "Chaos Service (Service Management) \u2014 a logical service onboarded into Harness Chaos Engineering with an associated Service Discovery agent and probe associations. Runtime services also carry an environment and infrastructure. A CodeRepository service is onboarded from a custom_service and does not require resilience-test infrastructure. Distinct from harness_service (CD service) and from chaos_loadtest. Supports list, get, create, update, and delete.";
|
|
@@ -51,7 +51,7 @@ export declare const descChaosServiceProbesUpdate = "Required \u2014 full replac
|
|
|
51
51
|
export declare const descUpdateChaosService = "Update an existing chaos service, identified by the path 'identity' (identity is not renameable \u2014 do not put it in the body). This is a FULL REPLACE of the mutable fields (name, description, tags, external_service_id, agent_id, environment_id, infrastructure_id), not a partial patch: description and tags are overwritten with exactly what you send, including being cleared to empty if you omit them \u2014 there is no \"leave unchanged\" behavior for these two fields. To preserve the current description/tags, fetch the service first (harness_get) and re-supply its current values. Probes is a REQUIRED desired-state array: it is reconciled atomically with the field update, and any probe present on the service but not in the array is removed. To keep the current probes, harness_get first and resupply the 'probes' array unchanged; pass [] to intentionally detach every probe. For a CodeRepository service with no mapped discovered service, omit environment_id and infrastructure_id. To attach a runtime discovered service for experiment recommendation, pass linked_discovered_service { agent_id, environment_id, external_id } from a discovered_service the user picked; environment_id is that agent's environment and must not be empty. Also send that service's infrastructure the same way a chaos service is created for it: environment_id = agent.environmentIdentifier, infrastructure_id = agent.identity (bare), infrastructure_type = KubernetesV2. The chaos service agent_id stays custom-discovery-agent. Ask the user for the discovered service and probes before this update. Returns the full ChaosServiceResponse on 200.";
|
|
52
52
|
export declare const descBodyChaosServiceUpdate = "Chaos service update body. Required: name, external_service_id, agent_id, and probes (a full desired-state array \u2014 see below). environment_id and infrastructure_id are required for every service type except CodeRepository. Omit both when updating a code-repository service that has no mapped discovered service. When linked_discovered_service is set, also send environment_id, infrastructure_id, and infrastructure_type for that discovered service (Kubernetes discovery agent: environment = agent environment, infrastructure_id = agent identity, infrastructure_type = KubernetesV2). Optional: description, tags, infrastructure_type, linked_discovered_service. Omitting description or tags CLEARS them server-side (full replace, no partial patch); re-supply the current value from a prior harness_get if you want it preserved. probes is required precisely because it is a full replace: supply the complete desired set (harness_get first to keep existing ones), or [] to detach all probes. linked_discovered_service attaches a runtime discovered service to a CodeRepository chaos service. Do NOT include 'identity' \u2014 pass it at the top level so it goes on the URL.";
|
|
53
53
|
export declare const descChaosLoadtest = "Load test (Resilience Testing) instance. Supports list, get, create, delete; run/stop via execute actions.\nLocust is supported on Linux VM and Kubernetes (script + image modes). K6 is genuinely Kubernetes-only at the backend. JMeter is restricted to Kubernetes by MCP for parity with the Harness UI (the backend itself does not enforce this for JMeter) \u2014 Linux VM supports Locust only; MCP rejects K6/JMeter with a Linux target_type at create time. JMeter accepts script/script_image scalars like Locust/K6 (plus properties/env_vars/thresholds/worker_count); 'tool_config' remains available as an advanced escape hatch (e.g. .zip bundles).\nTo create one, follow the prerequisite chain declared in relatedResources: (1) pick a load-runner infra via chaos_infrastructure (Linux VM) or chaos_enabled_infrastructure (Kubernetes), then (2) list chaos_service with infrastructure_ids='<environment_id>/<infra_id>' and pick one \u2014 or create a chaos_service if the list is empty \u2014 feeding its identity into service_references. When picking a Kubernetes infra, remember to set target_type='kubernetes' explicitly; it is not derived from the infra you chose.\n\nResponse / read schema (what list/get returns \u2014 agents NEVER need to construct these on create; MCP builds them automatically):\n- toolConfig.<tool> (canonical, per loadTestManager LocustSpec / K6Spec / JMeterSpec):\n mode: \"script\" | \"image\"\n script: { content? (base64), image?, entrypoint?, loadArgs?, imagePullSecret? }\n tunables: { targetUrl?, targetUsers?, spawnRate? (Locust), rampUpTimeSec? (Locust), durationSeconds? (Locust/K6), workerCount?, hostUrl? (K6), iterations? (K6), rpsLimit? (K6) }\n envVars?: [{key, value, secret?}] (K6/JMeter)\n variables?: template.VariableList (currently always empty; custom variables are a deferred feature)\n properties?: [{key, value, sendToEngines?}] (JMeter)\n thresholds?: [{metric, stat?, operator, value, abortOnFail?}] (JMeter)\n- yaml: base64-encoded LoadTest manifest. Decoded shape:\n kind: LoadTest\n apiVersion: v1alpha1\n metadata:\n name: <name>\n description?: <string>\n tags?: [<string>]\n serviceReferences?: [<chaosService identity>]\n spec:\n identity: <slug>\n toolType: Locust | K6 | JMeter\n infraType: kubernetes | linux # derived from targetType\n targetType: kubernetes | machine-chaos-linux | linux-chaos\n cleanupPolicy: delete | retain\n infraId: <id>\n envId: <id>\n toolConfig: { <tool>: { mode, script, tunables, ... } }\n- Derived convenience scalars (read-side projection of toolConfig.<tool> by MCP, matching the create-side scalars):\n target_url, users, duration_sec, ramp_up_sec, worker_count, spawn_rate, host_url, iterations, rps_limit,\n script_image, script_entrypoint, load_args, image_pull_secret.";
|
|
54
|
-
export declare const descChaosK8sInfrastructure = "Kubernetes chaos infrastructure (chaos server) available for running experiments.\
|
|
54
|
+
export declare const descChaosK8sInfrastructure = "Kubernetes chaos infrastructure (chaos server) available for running experiments.\nDo not list until you have environment_id. If it is missing, harness_list resource_type=chaos_environment and use the row's identifier. Do not get until you also have identity and environmentID from a chaos_k8s_infrastructure list row.\nGet passes the row's identity as resource_id. That is the path value for GET /rest/v2/infrastructure/{identity}. infraID can differ from identity; do not pass infraID as resource_id. Also pass that row's environmentID as params.environment_id.\ncheck_health is the legacy V1 probe. Pass infraID as infra_id. resource_id (identity) is used only when infra_id is omitted. When both are set, infra_id is the path segment.\nFor create_from_template, infra_ref is environmentID/infraID.\nIMPORTANT: Only infrastructures with status=ACTIVE AND isChaosEnabled=true can be used to create chaos experiments. Always check both fields before selecting an infrastructure.\nSupports list, get, create, plus check_health execute action.\nSupports filtering by status (ACTIVE, INACTIVE, PENDING), search, and optional inclusion of legacy V1 infrastructures.\nTo list ONLY infrastructures that are ready to run experiments (chaos-enabled AND ACTIVE) with correct totals/pagination, use chaos_enabled_infrastructure instead.";
|
|
55
55
|
export declare const descCreateK8sInfra = "Register a new Kubernetes chaos infrastructure (chaos server) in the given Harness project.\n\nThis registers the chaos agent/delegate metadata in Harness and returns an access token plus Helm/manifest instructions for installing the chaos server in your cluster.\n\nGUIDED workflow \u2014 resolve each step before calling harness_create:\n\nSTEP 1 \u2014 Select environment (REQUIRED):\n harness_list resource_type=chaos_environment (or resource_type=environment). Ask the user to pick one.\n Capture environment_id = chosen environment identifier.\n\nSTEP 2 \u2014 Select backing CD infrastructure (REQUIRED for standard onboarding):\n harness_list resource_type=infrastructure with environment_id=<env from Step 1>.\n Ask the user which Kubernetes infrastructure definition to attach. Capture infra_id = infrastructure identifier.\n The backend validates this Harness CD infra exists in the selected environment.\n\nSTEP 3 \u2014 Configure chaos server metadata (REQUIRED):\n Ask for name and identity (slug). identity must be unique in scope; infra_id defaults to identity when omitted.\n Defaults (override only if user asks): infra_namespace=hce, service_account=litmus, infra_scope=CLUSTER, infra_type=KUBERNETES.\n\nSTEP 4 \u2014 Create:\n harness_create(resource_type='chaos_k8s_infrastructure', org_id, project_id, body={ identity, name, environment_id, infra_id?, k8s_connector_id?, infra_namespace?, service_account?, infra_scope?, infra_type?, description?, tags?, ai_enabled? })\n\nReturns identity, name, token (for agent install), and uniqueId. After create, apply the returned manifest/Helm chart in the target cluster and wait for status=ACTIVE + isChaosEnabled=true before running experiments.";
|
|
56
56
|
export declare const descBodyK8sInfraCreate = "Chaos K8s infrastructure (chaos server) registration body. Required: identity, name, environment_id. infra_id defaults to identity when omitted.";
|
|
57
57
|
export declare const descK8sInfraIdentityCreate = "Unique slug for the chaos infrastructure. Also used as infraID when infra_id is omitted. Must be unique within the project scope.";
|
|
@@ -78,7 +78,7 @@ export declare const descChaosHubFault = "Faults available in ChaosHubs.\nReturn
|
|
|
78
78
|
export declare const descChaosEnvironment = "Harness environment available for chaos experiments.\nReturns identifier, name, type (Production/PreProduction), and timestamps.\nUse the environment identifier with chaos_k8s_infrastructure list to find available infrastructure within that environment.\nSupports search by name and sort by lastModifiedAt or name.";
|
|
79
79
|
export declare const descListExperiments = "List chaos experiments with optional filtering.\nSupports filtering by experiment name, status, infrastructure (ID, name, active state), tags, environment, date range, and bulk experiment IDs.\nDefault page size is 15, max 50.";
|
|
80
80
|
export declare const descGetExperiment = "Get chaos experiment details including revisions and recent run details. The backend for this endpoint REQUIRES the internal UUID (experimentID, e.g. \"ef9199b6-0248-4c0b-9d63-9176bf2b7123\") \u2014 the human-readable identity slug from a UI URL will not work here. If you only have the slug, first call harness_list with resource_type=chaos_experiment and experiment_name=<slug> to obtain the experimentID.";
|
|
81
|
-
export declare const descGetExperimentRun = "Get the full timeline of a chaos experiment run. This is a read-only endpoint \u2014 it does NOT trigger a run.\nReturns the execution pipeline: individual fault/probe/action nodes with status, timing, chaos data, and error details.\nAlso returns experiment name, infraID, resiliency score, run phase, manifest version, and template details.\
|
|
81
|
+
export declare const descGetExperimentRun = "Get the full timeline of a chaos experiment run. This is a read-only endpoint \u2014 it does NOT trigger a run.\nDo not call until you have both required values. Required: experiment_id (resource_id) = the experiment UUID, not the identity slug, and one of run_id or notify_id in params. If experiment_id is missing or you only have a slug, harness_list resource_type=chaos_experiment with experiment_name=<slug> and do not call this yet. If run_id and notify_id are both missing, harness_get resource_type=chaos_experiment on that UUID and read experimentRunID or notifyID from its recent runs.\nReturns the execution pipeline: individual fault/probe/action nodes with status, timing, chaos data, and error details.\nAlso returns experiment name, infraID, resiliency score, run phase, manifest version, and template details.\nTo start a new run, use chaos_experiment execute action: run instead.";
|
|
82
82
|
export declare const descListProbes = "List chaos probes with optional filtering.\nSupports filtering by name, tags, date range, probe IDs, infrastructure type, probe entity type, and sorting.\nDefault page size is 50, max 50.";
|
|
83
83
|
export declare const descGetProbe = "Get chaos probe details by ID.\nReturns probe type, infrastructure type, enabled/verified status, tags, run properties, probe properties, recent runs, and reference count.";
|
|
84
84
|
export declare const descSearchProbes = "Search probes by name (case-insensitive).";
|
|
@@ -90,8 +90,8 @@ export declare const descProbeIdField = "Unique probe identifier. Lowercase alph
|
|
|
90
90
|
export declare const descProbeNameField = "Human-readable probe name. Defaults to probe_id when omitted.";
|
|
91
91
|
export declare const descProbePropertiesField = "Type-specific probe configuration. Provide exactly one inner key matching the value of \"type\" (e.g. for type=dynatraceProbe set probe_properties.dynatraceProbe). promProbe and apmProbe are DIFFERENT \u2014 promProbe queries a Prometheus URL directly; apmProbe.type=Prometheus uses a managed Harness Prometheus connector. httpProbe, cmdProbe, promProbe, k8sProbe, datadogProbe, dynatraceProbe, and apmProbe (Prometheus sub-type only) are fully documented in this schema; other type shapes (sloProbe, containerProbe, and the remaining apmProbe sub-types \u2014 AppDynamics/SplunkObservability/Dynatrace/NewRelic/GcpCloudMonitoring/Datadog/SplunkEnterprise) are accepted as camelCase passthrough per the Harness API.";
|
|
92
92
|
export declare const descRunPropertiesField = "Probe execution cadence and retry behavior. All fields optional with server-side defaults: timeout (e.g. \"10s\"), interval (e.g. \"2s\"), attempt (retry count), pollingInterval, initialDelay, stopOnFailure (boolean), verbosity (\"info\" | \"debug\").";
|
|
93
|
-
export declare const descListExperimentTemplates = "List chaos experiment templates from chaos hubs.\
|
|
94
|
-
export declare const descGetExperimentTemplate = "Get
|
|
93
|
+
export declare const descListExperimentTemplates = "List chaos experiment templates from chaos hubs.\nEach row has identity and hubIdentity. On the next get or launch, pass identity as resource_id and that row's hubIdentity as params.hub_identity.\nhub_identity is optional on this list. tags is a comma-separated string. Optional filters: infrastructure=KubernetesV2, infrastructure_type=Kubernetes.\nSupports filtering by hub, infrastructure, tags, search, sort, and cross-scope inclusion.";
|
|
94
|
+
export declare const descGetExperimentTemplate = "Get one chaos experiment template.\nDo not call until you have both required values. Required: resource_id = identity, and params.hub_identity = hubIdentity. If either is missing, harness_list resource_type=chaos_experiment_template and do not call get yet. If you have no hub to filter that list, harness_list resource_type=chaos_hub first and use the hub row's identity as hub_identity.\nReturns name, identity, description, tags, kind, apiVersion, revision, isDefault, and spec.\nOptional: revision. Omit it for the latest revision.";
|
|
95
95
|
export declare const descDeleteExperimentTemplate = "Delete a chaos experiment template by identity.\nRequires hub_identity to identify which chaos hub owns the template.\nReturns a success confirmation on completion.";
|
|
96
96
|
export declare const descListExperimentVariables = "List variables for a chaos experiment (experiment-level and task-level). is_identity is auto-detected from the shape of experiment_id when omitted: a UUID (e.g. \"ef9199b6-0248-4c0b-9d63-9176bf2b7123\") defaults to is_identity=false; a human-readable slug (e.g. \"exp-without-runtime\") defaults to is_identity=true. Pass is_identity explicitly to override.";
|
|
97
97
|
export declare const descListLinuxInfra = "List chaos Linux infrastructures (load runners)";
|
|
@@ -101,15 +101,15 @@ export declare const descLoadtestFieldTaxonomy = " (a) Script file / Custom ima
|
|
|
101
101
|
export declare const descCreateLoadtest = "Creates a Locust load test (Resilience Testing) on a Linux VM or Kubernetes load-runner infrastructure.\nIMPORTANT: You MUST NOT auto-select, assume, or pre-fill any value on behalf of the user.\nAt every step below, present the options / ask for the value and wait for explicit user confirmation before proceeding.\nDo NOT assume org/project/infrastructure/script/URL based on previous activity \u2014 the user may choose differently each time.\nLocust (Python), K6 (JavaScript), and JMeter (Java) are supported. K6 and JMeter are Kubernetes-only; Linux VM supports Locust only. All three tools support \"Upload script\" and \"Using Custom Image\" via scalar inputs (script, script_image, script_entrypoint, load_args, image_pull_secret) plus tool-specific extras (properties/thresholds for JMeter; env_vars for K6/JMeter). The 'tool_config' body field remains available as an advanced escape hatch (e.g. JMeter .zip bundles pre-base64'd into tool_config.jmeter.script.content). For K6, \"Define test via UI\" is deferred.\nRequired workflow -- follow in order, pausing for user input after each step.\nCOMMON STEPS (identical for Locust, K6, and JMeter):\nEach step below shows the slice of the canonical stored LoadTest YAML that its inputs populate (what the user sees in the Harness UI YAML view). You NEVER hand-write this YAML -- MCP synthesizes it from the scalars/objects you pass to harness_create; the slices exist only so you can reason about which of your inputs affects which YAML path and echo an accurate preview back to the user.\nTwo paths of the stored YAML are set from top-level body fields rather than the MCP-built manifest itself and are merged by the backend: metadata.serviceReferences (from body.service_references) and spec.cleanupPolicy (from body.cleanup_policy). All other YAML paths below correspond 1:1 to what MCP writes into body.yaml.\n\nStep 1 -- Name / description / tags:\n Ask for a name (any non-empty string) -> name. identity is auto-derived from name by stripping non-alphanumerics unless the user supplies one (letters / numbers / underscores).\n description and tags are optional -- ask, but do not require them.\n YAML populated after this step:\n kind: LoadTest\n apiVersion: v1alpha1\n metadata:\n name: <name>\n description: <description> # omitted when empty\n tags: # omitted when empty\n - <tag>\n spec:\n identity: <identity> # auto-derived slug from name unless user supplies one\n\nStep 2 -- Execution environment target type:\n Ask \"Linux VM\" (target_type=machine-chaos-linux) or \"Kubernetes\" (target_type=kubernetes). Wait for the user to choose.\n Linux VM supports Locust only. Kubernetes supports Locust, K6, or JMeter.\n YAML populated after this step (delta only):\n spec:\n targetType: kubernetes | machine-chaos-linux\n infraType: kubernetes | linux # derived from targetType, not user-supplied\n\nStep 3 -- Load-runner infrastructure (see chaos_loadtest.relatedResources for canonical guidance):\n Linux VM -> harness_list resource_type=chaos_infrastructure (loadEnabled + ACTIVE only).\n Kubernetes -> harness_list resource_type=chaos_enabled_infrastructure (already ACTIVE + chaos-enabled).\n From the chosen row: environmentID -> environment_id, infraID -> infra_id. Do NOT choose an infra yourself.\n If NO eligible infra is returned (empty list, or every row fails the eligibility filter above), STOP and tell the user no eligible load-runner infra exists in the current scope. Ask them to (a) switch org/project scope, (b) pick a different target type at Step 2 (Linux VM <-> Kubernetes), or (c) exit/stop. Do NOT fall back to an ineligible infra and do NOT proceed to Step 4 -- a load test cannot be created without an eligible infra.\n YAML populated after this step (delta only):\n spec:\n infraId: <infraID from the chosen infra row>\n envId: <environmentID from the chosen infra row>\n\nStep 4 -- Resilience Testing Services (chaos_service):\n Call harness_list resource_type=chaos_service with infrastructure_ids='<environment_id>/<infra_id>'. Show the list to the user.\n The user may (a) pick one or more identities from the list, OR (b) onboard a brand-new service via chaos_service's create flow -- offer BOTH options regardless of whether the list is empty. Pass the chosen identity/identities as service_references.\n YAML populated after this step (delta only):\n metadata:\n serviceReferences: # merged in by backend from the top-level service_references body field\n - <chaos_service identity>\n - ...\n Passed on the wire as body.service_references (snake_case scalar), NOT as part of the yaml manifest MCP builds -- the backend writes it into the stored YAML at metadata.serviceReferences.\n\nStep 5 -- Tool type:\n Linux VM: Locust only. Kubernetes: ask Locust / K6 / JMeter.\n Pass tool_type='Locust' | 'K6' | 'JMeter'. K6 and JMeter with a non-Kubernetes target_type will be rejected by MCP.\n YAML populated after this step (delta only):\n spec:\n toolType: Locust | K6 | JMeter\n cleanupPolicy: delete # default; see Step 7a to override or add spec.resources (Step 7b)\n toolConfig:\n <lowercase(toolType)>: # e.g. locust / k6 / jmeter\n mode: script | image # tool_config detail filled in Step 6\n script:\n content: \"\" # base64 on the wire, decoded plain-text in the YAML view; filled in Step 6\n tunables: # filled in Step 8 (load configuration)\n targetUsers: <int>\n durationSeconds: <int>\n rampUpTimeSec: <int>\n workerCount: <int> # Kubernetes only\n Notes:\n - All three tools (Locust / K6 / JMeter) populate toolConfig.<tool> from Step-6 scalars -- no hand-built tool_config needed for standard flows. JMeter's tool_config remains available only as an advanced escape hatch (e.g. pre-base64'd .zip bundles).\n - JMeter has no target_url / users / duration / ramp_up scalar surface -- load shape is baked into the uploaded plan (script mode) or the container image (custom image mode). Server defaults 100/600/30 for missing tunables on save.\n\nStep 6 -- Tool-specific configuration (branch on tool_type from Step 5):\nEvery tool type supports two authoring modes:\n (a) Upload script (script_source='inline', mode='script') -- paste the raw script; MCP base64-encodes it into toolConfig.<tool>.script.content.\n (b) Using Custom Image (script_source='image', mode='image') -- point at a prebuilt container image; no script is uploaded.\nMode lives at toolConfig.<tool>.mode; script_source on the wire body mirrors it ('inline' <-> 'script', 'image' <-> 'image').\nFields marked (*) in a branch below are MANDATORY for that branch -- the UI (and MCP validation) reject creation with any '*' field empty. Unmarked fields are OPTIONAL.\nFixed vs runtime input: fields noted \"(fixed|<+input>)\" below accept EITHER a concrete value NOW, OR the literal string '<+input>' meaning \"prompt for this value at run time\". Pass the placeholder verbatim -- MCP forwards it as-is into the tunables and into the base64 YAML manifest.\nShared field taxonomy -- each branch below references these by letter instead of restating them:\n (a) Script file / Custom image -> script | script_image (+script_entrypoint, load_args, image_pull_secret) -> toolConfig.<tool>.script.{content|image|entrypoint|loadArgs|imagePullSecret}. ALL tools; script_image is the only mandatory field in Custom Image mode; script_entrypoint, load_args and image_pull_secret are optional (image_pull_secret only for Private registries; the backend falls back to a tool-specific default entrypoint when omitted).\n (b) Host / Target URL -> target_url (fixed|<+input>) -> toolConfig.<tool>.tunables.targetUrl. LOCUST + K6 ONLY (not exposed for JMeter -- see JMeter step notes), optional. K6 additionally derives tunables.hostUrl from the URL's origin (feeds the script as __ENV.HOST_URL); leave blank if the script/locustfile declares its own host.\n (c) Users -> users (fixed|<+input>) -> toolConfig.<tool>.tunables.targetUsers. LOCUST + K6 ONLY (not exposed for JMeter -- see JMeter step notes).\n (d) Duration (seconds) -> duration_sec (fixed|<+input>) -> toolConfig.<tool>.tunables.durationSeconds. LOCUST + K6 ONLY (not exposed for JMeter -- see JMeter step notes).\n (e) Ramp Up Duration (seconds) -> ramp_up_sec (fixed|<+input>) -> toolConfig.<tool>.tunables.rampUpTimeSec. LOCUST ONLY (no Ramp Up field in the K6 UI form or for JMeter). Must not exceed Duration when both are fixed values.\n (f) Iterations (cap) -> iterations (fixed|<+input>) -> toolConfig.k6.tunables.iterations. K6 ONLY. Duration takes precedence when both are set.\n (g) RPS Limit -> rps_limit (fixed|<+input>) -> toolConfig.k6.tunables.rpsLimit. K6 ONLY. Global cap, split evenly across replicas; always applies (unlike (c)/(d)/(f), which k6 ignores once the script declares its own scenarios/stages).\n (h) Worker Count / Replicas -> worker_count (fixed|<+input>) -> toolConfig.<tool>.tunables.workerCount. LOCUST + K6 + JMETER, Kubernetes only (VM always runs a single worker/pod -- skip entirely for target_type='machine-chaos-linux'). Locust: Users are DISTRIBUTED across workers, not multiplied. K6: <=1 = single pod; higher values fan out to multiple runner pods via --execution-segment. JMeter: workers MULTIPLY load -- each injector runs the FULL uploaded plan unchanged; thread counts inside the file are NOT sliced across workers.\n (i) Environment Variables -> env_vars -> toolConfig.<tool>.envVars[]. K6 + JMETER. Structured array; each entry is a literal {key, value}, a runtime {key, value: \"<+input>\"}, or a secret reference {key, secret_id, secret_scope?}. See the env_vars field's own description (descLoadtestEnvVars) for the full validator, reserved-name list, and secret_scope discovery flow (harness_list resource_type=secret type=SecretText) -- not repeated here. K6 additionally rejects HOST_URL/K6_VUS/K6_DURATION/K6_ITERATIONS/K6_STAGES/K6_RPS (tool-specific reserved names on top of the shared list).\n (j) Property Overrides -> properties -> toolConfig.jmeter.properties[]. JMETER ONLY. Array of {key, value, send_to_engines?}; injects/overrides JMeter properties at run time without editing the uploaded plan -- reference as ${__P(NAME)} inside the plan. send_to_engines (-G) controls whether the property also reaches remote workers in Distributed Execution; omit for controller-only properties.\n (k) Thresholds -> thresholds -> toolConfig.jmeter.thresholds[]. JMETER ONLY. Array of {metric, stat?, operator, value, abort_on_fail?}; pass/fail criteria evaluated against the run's .jtl results AFTER the test (the uploaded plan's own Assertions still apply per-request during the run). metric one of response_time_ms|error_rate_pct|throughput_rps|latency_ms; operator one of < <= > >= == !=; stat (e.g. p95/p99/avg/median/max) is REQUIRED when metric is response_time_ms or latency_ms.\n\nStep 6.LocustScript -- Locust + Upload Python script (mode='script'):\n\n Ask, in order: (*)(a) Script file, (b) Host URL, (*)(c) Users, (*)(d) Duration, (*)(e) Ramp Up, (h) Worker Count [Kubernetes only].\n YAML populated after this step (delta only):\n spec:\n toolConfig:\n locust:\n mode: script\n script:\n content: | # plain text in YAML view; base64 on wire\n <the Python locust script>\n tunables: # omit keys the user left blank\n targetUrl: http://www.example.com\n targetUsers: 100\n durationSeconds: 600\n rampUpTimeSec: 120\n workerCount: 1 # Kubernetes only\n\nStep 6.LocustImage -- Locust + Using Custom Image (mode='image'):\n Kubernetes only (script_source=image, or inferred when script_image is set). VM is always inline.\n Ask, in order:\n (b) Host URL -> target_url (optional; Locust --host; leave blank if the locustfile sets host in code)\n (a) Load Test Image* -> script_image (required; container image, e.g. my-registry/my-load-test:latest)\n (a) Entrypoint -> script_entrypoint (optional; path inside the image, e.g. /scripts/locustfile.py; passed to locust -f; backend falls back to a default when omitted)\n (a) Load args -> load_args (optional; semicolon-separated k=v pairs, e.g. \"tags=smoke,fast;headless=true\" -- NOT bare CLI flags)\n (a) Image Registry Type -> Public: omit image_pull_secret\n Private: image_pull_secret (name of the Kubernetes image-pull secret)\n (c) Users* -> users\n (d) Duration* -> duration_sec\n (e) Ramp Up* -> ramp_up_sec\n (h) Worker Count -> worker_count (K8s; 0/omit = standalone)\n YAML populated after this step (delta only):\n spec:\n toolConfig:\n locust:\n mode: image\n script:\n image: my-registry/my-load-test:latest\n entrypoint: /scripts/locustfile.py\n loadArgs: tags=smoke # omit when blank\n imagePullSecret: my-pull-secret # omit when Public\n tunables: # omit keys the user left blank\n targetUrl: https://www.google.com\n targetUsers: 100\n durationSeconds: 600\n rampUpTimeSec: 120\n workerCount: 1\n\nStep 6.K6Script -- K6 + Upload K6 script (mode='script'):\n Kubernetes-only: MCP rejects K6 with target_type='machine-chaos-linux' at create time.\n Ask, in order: (*)(a) Script file [MANDATORY: script MUST contain 'export default function ...' -- reject before calling MCP if missing, matching Harness UI validateScriptContent], (b) Host URL, (c) Users, (d) Duration, (f) Iterations, (g) RPS Limit, (i) Environment Variables, (h) Replicas.\n Load-profile semantics reminder: (c)/(d)/(f) are ignored by k6 once the script declares its own scenarios/stages -- leave them blank for scripted scenarios. (g) RPS Limit always applies.\n YAML populated after this step (delta only):\n spec:\n toolConfig:\n k6:\n mode: script\n script:\n content: | # plain text in YAML view; base64 on wire\n <the K6 JavaScript source>\n tunables: # omit keys the user left blank\n targetUrl: https://www.examplek6.com\n targetUsers: <+input>\n durationSeconds: <+input>\n iterations: <+input>\n workerCount: 1\n rpsLimit: 100\n envVars: # omit entirely when no env vars are set\n - { key: env_var_1, value: some_val_1, secret: false }\n - { key: env_var_2, value: <+input>, secret: false }\n - { key: somekey, value: secrets.getValue(\"account.gcp-ca-cert\"), secret: true } # scope prefix per env_vars docs: account./org./none for project\n\nStep 6.K6Image -- K6 + Using Custom Image (mode='image'):\n Kubernetes only (script_source=image, or inferred when script_image is set).\n Ask, in order:\n (b) Host URL -> target_url (optional; MCP derives toolConfig.k6.tunables.hostUrl from its origin)\n (a) Load Test Image* -> script_image (required; container image, e.g. my-registry/my-load-test:latest)\n (a) Entrypoint -> script_entrypoint (optional; path inside the image, e.g. /script.js; backend falls back to a default when omitted)\n (a) Load args -> load_args (optional; semicolon-separated k=v pairs, e.g. \"tags=smoke,fast;headless=true\" -- NOT bare CLI flags)\n (a) Image Registry Type -> Public: omit image_pull_secret\n Private: image_pull_secret (name of the Kubernetes image-pull secret)\n (h) Worker Count -> worker_count (K8s; 0/omit = standalone)\n (g) RPS Limit -> rps_limit (optional; toolConfig.k6.tunables.rpsLimit when > 0)\n (i) Environment Variables -> env_vars (see Step 4c)\n Note: Users/Duration/Iterations tunables are meaningless for image mode -- the bundled script controls its own scenarios/stages. Do not ask for them here.\n YAML populated after this step (delta only):\n spec:\n toolConfig:\n k6:\n mode: image\n script:\n image: my-registry/my-load-test:latest # or <+input>\n entrypoint: /script.js # or <+input>\n loadArgs: tags=smoke # omit when blank\n imagePullSecret: my-pull-secret # omit when Public\n tunables:\n workerCount: 1\n rpsLimit: 100 # omit when rps_limit is unset\n envVars: # omit entirely when no env vars are set\n - { key: someKey, value: someValue, secret: false }\n\nStep 6.JMeterScript -- JMeter + Upload JMX / XML / ZIP (mode='script'):\n Kubernetes-only: MCP rejects JMeter with target_type='machine-chaos-linux' at create time.\n Ask, in order: (*)(a) Test Plan file [.jmx/.xml -- raw plan text, verbatim; do NOT parse, modify, or pre-encode. A .zip bundle (plan + CSV data/dependencies) is also accepted but must be supplied pre-base64'd via tool_config.jmeter.script.content instead of the scalar 'script' field], (j) Property Overrides, (i) Environment Variables, (k) Thresholds, (h) Workers.\n Notes: (b)/(c)/(d)/(e)/(f)/(g) do not apply to JMeter -- thread count, ramp-up, and duration live inside the uploaded plan's ThreadGroup elements, not as separate MCP inputs. If the user wants to change load shape, tell them to edit the .jmx and re-upload (or use tool_config.jmeter.tunables.{targetUsers,durationSeconds,rampUpTimeSec} as an advanced override -- backend-accepted but not exposed as a scalar here since the Harness UI does not expose it either).\n YAML populated after this step (delta only):\n spec:\n toolConfig:\n jmeter:\n mode: script\n script:\n content: | # plain text in YAML view; base64 on wire\n <the .jmx/.xml plan>\n tunables:\n workerCount: 1 # Kubernetes only\n properties: # omit entirely when no property overrides are set\n - { key: someProperty, value: someValue, sendToEngines: true }\n envVars: # omit entirely when no env vars are set\n - { key: secretKeyAtProject, value: secrets.getValue(\"datat-api\"), secret: true }\n - { key: fixedKey, value: fixedValue }\n - { key: RuntimeKey, value: <+input> }\n thresholds: # omit entirely when no thresholds are set\n - { metric: response_time_ms, stat: p95, operator: <, value: 5000, abortOnFail: false }\n\nStep 6.JMeterImage -- JMeter + Using Custom Image (mode='image'):\n Kubernetes-only (script_source=image, or inferred when script_image is set). Custom Image does NOT slice load -- each worker runs the full command independently, so total load ~= plan threads * injectors. Users/Duration/Ramp-up are baked into the image's plan and are NOT asked here (server defaults 100/600/30 when omitted; do not surface them).\n Ask, in order:\n (a) Load Test Image* -> script_image (required; cluster-reachable container image, e.g. my-registry/jmeter:5.6; may be '<+input>')\n (a) Entrypoint -> script_entrypoint (optional; path to the .jmx/.xml test plan inside the image, e.g. /test/plan.jmx; may be '<+input>'; backend falls back to a default plan-file name when omitted)\n (a) Load args -> load_args (optional; JMeter GNU-style long options as semicolon-separated key=value pairs OR bare flags, e.g. \"proxyHost=10.0.0.1;forceDeleteResultFile\". Each becomes --key=value. Do NOT put JMeter properties (jmeter.save.saveservice.* or ${__P(...)} vars) here -- those go in Property Overrides / -J / -G. Keys must be non-empty, contain no whitespace, and must NOT start with '-')\n (a) Image Registry Type -> Public: omit image_pull_secret\n Private: image_pull_secret (name of the Kubernetes image-pull secret)\n (j) Property Overrides -> properties (optional; array of {key, value, send_to_engines?}. send_to_engines=true adds -G so the property reaches remote workers in Distributed Execution)\n (i) Environment Variables -> env_vars (optional; fixed / '<+input>' runtime / secret via {secret_id, secret_scope?}. See descLoadtestEnvVars for the full reserved-name list and secret discovery flow)\n (k) Thresholds -> thresholds (optional; array of {metric, stat?, operator, value, abort_on_fail?}. metric one of response_time_ms|error_rate_pct|throughput_rps|latency_ms; operator one of < <= > >= == !=; stat REQUIRED for response_time_ms / latency_ms. value is a number -- runtime '<+input>' is NOT supported for thresholds)\n (h) Workers -> worker_count (optional; number of load injectors. Each injector runs the FULL plan unchanged -- workers MULTIPLY load. 0/omit = single standalone injector)\n YAML populated after this step (delta only):\n spec:\n toolConfig:\n jmeter:\n mode: image\n script:\n image: my-registry/jmeter:5.6 # or <+input>\n entrypoint: /test/plan.jmx # or <+input>\n loadArgs: proxyHost=10.0.0.1 # omit when blank\n imagePullSecret: my-pull-secret # omit when Public\n tunables:\n workerCount: 1 # omit when 0/unset\n properties: # omit entirely when no property overrides are set\n - { key: threads1, value: \"100\", sendToEngines: true }\n - { key: someProperty, value: \"200\", sendToEngines: false }\n envVars: # omit entirely when no env vars are set\n - { key: somekey, value: secrets.getValue(\"datat-api\"), secret: true }\n - { key: runtime, value: <+input> }\n - { key: fixed, value: somefixed }\n thresholds: # omit entirely when no thresholds are set\n - { metric: response_time_ms, stat: p95, operator: <, value: 5000, abortOnFail: false }\n - { metric: error_rate_pct, stat: avg, operator: <=, value: 50, abortOnFail: true }\n - { metric: throughput_rps, stat: p99, operator: '>', value: 5000, abortOnFail: false }\n\nStep 7 -- Advanced Options (all tool types; identical for Locust/K6/JMeter):\n\nStep 7a -- Cleanup Policy:\n Ask whether to keep the default -> cleanup_policy='delete' (removes run pods/configmaps/secrets after each execution), or retain them for debugging -> cleanup_policy='retain'. Maps to spec.cleanupPolicy. Mirrors the UI's Advanced Options \"Clean-up Load Resources\" toggle (ON = delete, OFF = retain).\n\nStep 7b -- Resource Requirements (Kubernetes only; OFF by default -- skip unless the user opts in):\n If the user wants to set CPU/memory limits and requests, ask for any of: limits.cpu, limits.memory, requests.cpu, requests.memory (all optional individually). Pass resources={ limits?: {cpu?, memory?}, requests?: {cpu?, memory?} }. cpu is cores/millicores (e.g. \"100m\", \"0.5\", \"2\"); memory is a whole-byte quantity (e.g. \"128Mi\", \"1Gi\", \"134217728\"). Per resource, requests must not exceed limits. Maps to spec.resources. If the user declines, omit 'resources' entirely.\n YAML populated after Step 7 (delta only):\n spec:\n cleanupPolicy: retain # 'delete' when omitted/unset\n resources: # omitted entirely when the user declines Step 7b\n limits:\n cpu: \"0.5\"\n memory: 1Gi\n requests:\n cpu: 100m\n memory: 128Mi\nOnly after the user confirms all of the above (across Steps 1-7) should you call harness_create resource_type=chaos_loadtest. The full input-field reference lives on each field's own description (bodySchema.fields) -- do NOT restate it here.\nReturns the created load test, including the full toolConfig echo (script/tunables/options/envVars as stored), serviceReferences, cleanupPolicy, resources, the base64 canonical yaml, createdAt/updatedAt, and an openInHarness deep link.";
|
|
102
102
|
export declare const descDeleteLoadtest = "Delete a load test instance";
|
|
103
103
|
export declare const descUpdateLoadtest = "Update fields on an existing load test (PUT -- partial by field, full-replace within a field). Omit a field entirely to leave it unchanged.\n\n- name / description / tags / environment_id / infra_id / target_type / max_duration_sec: simple scalar replace when supplied.\n- service_references / variables: replace the ENTIRE list when non-null (a non-null service_references must still be non-empty); there is no per-item merge.\n- cleanup_policy / resources: identical top-level spec fields to create -- see their own field descriptions (descLoadtestCleanupPolicy / descLoadtestResources). Not repeated here.\n- Editing the script, image, tunables, properties, thresholds, or env vars (toolConfig.<tool>) requires resupplying the FULL desired sub-object -- the backend overwrites toolConfig.<tool> wholesale on any non-null write (no per-field merge server-side, except variables and JMeter's masked-.zip workspace preservation). You have two ways to do this:\n 1. Scalar fields (recommended, mirrors create): supply 'tool_type' (Locust/K6/JMeter -- required, NOT itself sent to the API since tool_type is immutable after creation; used only so MCP picks the right builder) plus any of the same scalar fields create accepts (target_url, script_source, script, script_image, script_entrypoint, load_args, image_pull_secret, users, spawn_rate, duration_sec, ramp_up_sec, worker_count, host_url, rps_limit, iterations, env_vars, properties, thresholds). MCP rebuilds the complete toolConfig.<tool> object from these exactly as it does on create -- you must resupply every scalar that should remain set, not just the ones changing. Field-to-path mapping:\n\n (a) Script file / Custom image -> script | script_image (+script_entrypoint, load_args, image_pull_secret) -> toolConfig.<tool>.script.{content|image|entrypoint|loadArgs|imagePullSecret}. ALL tools; script_image is the only mandatory field in Custom Image mode; script_entrypoint, load_args and image_pull_secret are optional (image_pull_secret only for Private registries; the backend falls back to a tool-specific default entrypoint when omitted).\n (b) Host / Target URL -> target_url (fixed|<+input>) -> toolConfig.<tool>.tunables.targetUrl. LOCUST + K6 ONLY (not exposed for JMeter -- see JMeter step notes), optional. K6 additionally derives tunables.hostUrl from the URL's origin (feeds the script as __ENV.HOST_URL); leave blank if the script/locustfile declares its own host.\n (c) Users -> users (fixed|<+input>) -> toolConfig.<tool>.tunables.targetUsers. LOCUST + K6 ONLY (not exposed for JMeter -- see JMeter step notes).\n (d) Duration (seconds) -> duration_sec (fixed|<+input>) -> toolConfig.<tool>.tunables.durationSeconds. LOCUST + K6 ONLY (not exposed for JMeter -- see JMeter step notes).\n (e) Ramp Up Duration (seconds) -> ramp_up_sec (fixed|<+input>) -> toolConfig.<tool>.tunables.rampUpTimeSec. LOCUST ONLY (no Ramp Up field in the K6 UI form or for JMeter). Must not exceed Duration when both are fixed values.\n (f) Iterations (cap) -> iterations (fixed|<+input>) -> toolConfig.k6.tunables.iterations. K6 ONLY. Duration takes precedence when both are set.\n (g) RPS Limit -> rps_limit (fixed|<+input>) -> toolConfig.k6.tunables.rpsLimit. K6 ONLY. Global cap, split evenly across replicas; always applies (unlike (c)/(d)/(f), which k6 ignores once the script declares its own scenarios/stages).\n (h) Worker Count / Replicas -> worker_count (fixed|<+input>) -> toolConfig.<tool>.tunables.workerCount. LOCUST + K6 + JMETER, Kubernetes only (VM always runs a single worker/pod -- skip entirely for target_type='machine-chaos-linux'). Locust: Users are DISTRIBUTED across workers, not multiplied. K6: <=1 = single pod; higher values fan out to multiple runner pods via --execution-segment. JMeter: workers MULTIPLY load -- each injector runs the FULL uploaded plan unchanged; thread counts inside the file are NOT sliced across workers.\n (i) Environment Variables -> env_vars -> toolConfig.<tool>.envVars[]. K6 + JMETER. Structured array; each entry is a literal {key, value}, a runtime {key, value: \"<+input>\"}, or a secret reference {key, secret_id, secret_scope?}. See the env_vars field's own description (descLoadtestEnvVars) for the full validator, reserved-name list, and secret_scope discovery flow (harness_list resource_type=secret type=SecretText) -- not repeated here. K6 additionally rejects HOST_URL/K6_VUS/K6_DURATION/K6_ITERATIONS/K6_STAGES/K6_RPS (tool-specific reserved names on top of the shared list).\n (j) Property Overrides -> properties -> toolConfig.jmeter.properties[]. JMETER ONLY. Array of {key, value, send_to_engines?}; injects/overrides JMeter properties at run time without editing the uploaded plan -- reference as ${__P(NAME)} inside the plan. send_to_engines (-G) controls whether the property also reaches remote workers in Distributed Execution; omit for controller-only properties.\n (k) Thresholds -> thresholds -> toolConfig.jmeter.thresholds[]. JMETER ONLY. Array of {metric, stat?, operator, value, abort_on_fail?}; pass/fail criteria evaluated against the run's .jtl results AFTER the test (the uploaded plan's own Assertions still apply per-request during the run). metric one of response_time_ms|error_rate_pct|throughput_rps|latency_ms; operator one of < <= > >= == !=; stat (e.g. p95/p99/avg/median/max) is REQUIRED when metric is response_time_ms or latency_ms.\n 2. 'tool_config' escape hatch: hand-construct the object yourself (e.g. to preserve a JMeter .zip workspace or other advanced shape not covered by scalars). Pass 'tool_type' alongside it so MCP wraps/unwraps consistently with create; omitting 'tool_type' falls back to legacy behavior where 'tool_config' is sent to the API completely as-is (must already be the full `{ <tool>: {...} }` wire shape).\n- No 'yaml' manifest is sent on update (unlike create) -- the typed JSON fields above (cleanupPolicy, resources, toolConfig) are authoritative since the backend falls back to them whenever no yaml body is supplied.\n\nReturns the updated load test (same shape as harness_get resource_type=chaos_loadtest).";
|
|
104
|
-
export declare const descListK8sInfra = "List Kubernetes chaos infrastructures
|
|
105
|
-
export declare const descGetK8sInfra = "Get Kubernetes chaos infrastructure
|
|
106
|
-
export declare const descChaosEnabledInfrastructure = "Kubernetes chaos infrastructures that are READY to run experiments \u2014 i.e. chaos-enabled AND status=ACTIVE. Every result has isChaosEnabled=true and status=ACTIVE, so no post-filtering is needed.\nBacked by a dedicated endpoint (POST /rest/v2/infrastructures/chaos-enabled) that queries the chaos infrastructure store directly, so pagination and total counts reflect ONLY ready-to-use infra (correct totals).\nReturns infrastructure details including identity, infraID, name, environmentID, status, infraType, infraScope, and isChaosEnabled.
|
|
107
|
-
export declare const descListChaosEnabledInfra = "List Kubernetes chaos infrastructures that are ready to run experiments (chaos-enabled AND status=ACTIVE).\
|
|
104
|
+
export declare const descListK8sInfra = "List Kubernetes chaos infrastructures in one environment.\nDo not call until you have the required filter. Required: filters.environment_id. OpenAPI marks environmentIdentifier optional, but k8s-ifs ListInfra always calls harness.ListInfraURL. An empty environment returns \"missing envID\", wrapped as HTTP 500 \"failed to generate list harness infrastructure url, missing envID\". If environment_id is missing, harness_list resource_type=chaos_environment and use the row's identifier. This list is not a project-wide inventory. Infrastructures that can run an experiment, with no environment, are chaos_enabled_infrastructure.\nEach row includes identity, environmentID, and infraID. The get path value is the row's identity. infraID can differ from identity. For get, pass identity as resource_id and environmentID as params.environment_id. For create_from_template, infra_ref is environmentID/infraID.\nIMPORTANT: Only infrastructures with status=ACTIVE AND isChaosEnabled=true can be used to create chaos experiments.\nSupports filtering by status (ACTIVE, INACTIVE, PENDING) and optional inclusion of legacy V1 infrastructures.";
|
|
105
|
+
export declare const descGetK8sInfra = "Get one Kubernetes chaos infrastructure.\nDo not call until you have both required values. Required: resource_id = the row's identity. That is the path value for GET /rest/v2/infrastructure/{identity}. infraID can differ from identity; do not pass infraID as resource_id. Also required: params.environment_id = environmentID. This get reads a v2 record; a legacy row from include_legacy_infra is not returned here. If either value is missing, harness_list resource_type=chaos_k8s_infrastructure. That list requires filters.environment_id because an empty environment returns HTTP 500 \"failed to generate list harness infrastructure url, missing envID\". Get the environment from harness_list resource_type=chaos_environment.";
|
|
106
|
+
export declare const descChaosEnabledInfrastructure = "Kubernetes chaos infrastructures that are READY to run experiments \u2014 i.e. chaos-enabled AND status=ACTIVE. Every result has isChaosEnabled=true and status=ACTIVE, so no post-filtering is needed.\nBacked by a dedicated endpoint (POST /rest/v2/infrastructures/chaos-enabled) that queries the chaos infrastructure store directly, so pagination and total counts reflect ONLY ready-to-use infra (correct totals).\nReturns infrastructure details including identity, infraID, name, environmentID, status, infraType, infraScope, and isChaosEnabled. For create_from_template, infra_ref is environmentID/infraID, not infraID alone.\nUse chaos_environment list first to get an environmentId, then pass it here to scope to that environment.\nWHEN TO USE THIS vs chaos_k8s_infrastructure:\n- Use chaos_enabled_infrastructure when the goal is to PICK an infrastructure to run a chaos experiment, or to count/list ONLY infra that can actually run experiments (correct totals).\n- Use chaos_k8s_infrastructure for one environment, including infrastructures that are not ready to run an experiment. filters.environment_id is required there: an empty environment returns HTTP 500 \"failed to generate list harness infrastructure url, missing envID\". That list also has get and check_health. It is not a project-wide inventory. A list with no environment is chaos_enabled_infrastructure.\nSupports list only. Filter by environment_id, infra_type (KubernetesV2/All query the V2 chaos store; Kubernetes returns legacy V1), infra_scope, is_ai_enabled, and search. There is no status filter because results are always ACTIVE.";
|
|
107
|
+
export declare const descListChaosEnabledInfra = "List Kubernetes chaos infrastructures that are ready to run experiments (chaos-enabled AND status=ACTIVE).\nchaos_k8s_infrastructure lists one environment and requires filters.environment_id. This list returns only ready-to-use infra, and environment_id is optional.\nReturns identity, infraID, name, description, tags, environmentID, status (always ACTIVE), infraType, infraScope, and isChaosEnabled. For create_from_template, infra_ref is environmentID/infraID.\nFilter by environment_id, infra_type, infra_scope, is_ai_enabled, and search.";
|
|
108
108
|
export declare const descChaosEnabledInfraType = "Filter by Kubernetes infrastructure type. 'KubernetesV2' and 'All' query the V2 chaos store; 'Kubernetes' returns legacy V1 infrastructures instead. Omit to return all chaos-enabled V2 infrastructures.";
|
|
109
109
|
export declare const descInfraScope = "Filter by infrastructure scope: 'NAMESPACE' (chaos limited to a single namespace) or 'CLUSTER' (cluster-wide chaos).";
|
|
110
110
|
export declare const descInfraAiEnabled = "When true, return only AI-enabled chaos infrastructures; when false, only non-AI-enabled ones.";
|
|
111
|
-
export declare const descListHubs = "List ChaosHubs (Git-connected repositories containing fault, experiment, probe, and action templates).\
|
|
112
|
-
export declare const descGetHub = "Get a ChaosHub by its identity.\nReturns full hub details including repository URL, branch, connector info, template counts, sync status, and metadata.";
|
|
111
|
+
export declare const descListHubs = "List ChaosHubs (Git-connected repositories containing fault, experiment, probe, and action templates).\nEach row's identity is the hub_identity later template calls need. Do not pass the hub name.\nThe list defaults to the current project. If it is empty, call again with filters.include_all_scope=true. Account and org hubs are hidden otherwise.\nSupports search, pagination, and cross-scope inclusion.";
|
|
112
|
+
export declare const descGetHub = "Get a ChaosHub by its identity.\nresource_id is the identity from chaos_hub list, not the display name.\nReturns full hub details including repository URL, branch, connector info, template counts, sync status, and metadata.";
|
|
113
113
|
export declare const descCreateHub = "Create a new ChaosHub in the given Harness scope (account, org, project).\nThe hub record stores a Git repo and connector reference that provides chaos fault, experiment, probe, and action templates.\nconnectorRef, repoName, and repoBranch are optional at creation but must be configured (via harness_update) before template operations can be performed on the hub.\nThe hub identity cannot be 'enterprise-chaoshub' as that is reserved for the default hub.\nThe target Git repository should contain experiments/ and faults/ directories for template storage.\nReturns the created hub details including identity, name, repository info, connector configuration, and template counts.";
|
|
114
114
|
export declare const descUpdateHub = "Update the editable fields of a ChaosHub (name, description, tags) by its identity.\nIMPORTANT: The API uses a replace-all model \u2014 all fields are fully replaced, not merged.\nOmitted or empty values will overwrite and clear existing data.\nTo preserve existing description or tags when changing only some fields, fetch the current hub via harness_get first and pass through the values you want to keep.\nReturns the updated hub details including identity, name, repository info, and template counts.";
|
|
115
115
|
export declare const descDeleteHub = "Delete a ChaosHub by its identity.\nThe hub must have no fault templates, action templates, or probe templates \u2014 remove them before deleting.\nAt least one hub must remain after deletion. The default Enterprise ChaosHub cannot be deleted.\nReturns a success message on completion.";
|
|
@@ -209,14 +209,15 @@ export declare const descHeatmapSearch = "Free-text search to filter services sh
|
|
|
209
209
|
export declare const descRunExperiment = "Trigger a new chaos experiment run. This is an action \u2014 it starts execution.\nReturns notifyId, experimentRunId, experimentId, and experimentName.\n\nStep 0 \u2014 Inspect the action contract FIRST:\n Call harness_describe with resource_type=chaos_experiment and look at the run execute action. It lists every accepted input field (inputset_identity, runtime_inputs, experiment_variables, tasks, is_identity) with type and description. Do NOT skip this step \u2014 it is the source of truth for what the action accepts, and is how you discover knobs like is_identity (controls slug vs UUID lookup for experiment_id).\n\nIMPORTANT: You MUST follow this workflow before triggering a run. Do NOT skip steps or auto-fill values.\n\nStep 1 \u2014 Discover runtime variables:\n Call harness_list resource_type=chaos_experiment_variable with resource_id=<experiment_id> to list the experiment's runtime inputs.\n If no variables are returned, the experiment needs no overrides \u2014 skip to Step 4.\n If variables exist, show them to the user (name, type, default value) and proceed to Step 2.\n\nStep 2 \u2014 Check for saved input sets:\n Call harness_list resource_type=chaos_input_set with experiment_id=<experiment_id>.\n If input sets exist, present them to the user as reusable presets (show identity, name, description).\n If none exist, skip to Step 3.\n\nStep 3 \u2014 User chooses how to provide runtime values (one of four paths):\n\n (a) Use a saved input set as-is:\n User selects an input set from Step 2.\n Pass inputset_identity=<selected identity> in the request body. Do NOT pass runtime_inputs.\n The backend fetches the stored values and applies them.\n\n (b) Use a saved input set as a starting point, then modify some values:\n Fetch the selected input set via harness_get resource_type=chaos_input_set (with experiment_id and inputset_id).\n Parse its spec field \u2014 format: { experiment: [{name, value}], tasks: { taskName: [{name, value}] } }.\n Show the values to the user and let them change the ones they want to override.\n Send the MERGED result as experiment_variables/tasks (or runtime_inputs) in the request body.\n Do NOT pass inputset_identity \u2014 the backend ignores it when runtime_inputs is present.\n\n (c) Provide all values manually:\n User supplies values for each variable from Step 1.\n Pass them via experiment_variables and/or tasks (or runtime_inputs). Do NOT pass inputset_identity.\n\n (d) No overrides needed:\n User confirms they want to run with defaults. Send an empty body {}.\n\nPRIORITY RULE: runtime_inputs (or experiment_variables/tasks) and inputset_identity are MUTUALLY EXCLUSIVE.\nIf runtime_inputs is present in the body, inputset_identity is silently ignored by the backend \u2014 there is no merge.\nNever pass both. If the user wants to start from an input set but change some values, use path (b) above.\n\nStep 4 \u2014 Trigger the run:\n Call harness_execute resource_type=chaos_experiment action=run with the experiment_id and chosen body.\n\nStep 5 \u2014 Poll for results:\n Use chaos_experiment_run get with the returned experimentRunId to check status and resiliency score.\n Poll periodically until phase is Completed, Completed_With_Error, Stopped, or Error.";
|
|
210
210
|
export declare const descEnableProbe = "Enable or disable a chaos probe. Pass is_enabled=true to enable, false to disable.\nUse is_bulk_update=true to enable/disable across all experiments that reference this probe.\nDefault (system) probes cannot be enabled or disabled.";
|
|
211
211
|
export declare const descVerifyProbe = "Mark a chaos probe as verified or unverified. Verified probes are trusted and validated for use in experiments.\nPass verify=true to verify, false to unverify. Default (system) probes cannot be verified or unverified.";
|
|
212
|
-
export declare const descCreateFromTemplate = "Creates and launches a new chaos experiment from an existing experiment template.\n\nIMPORTANT: You MUST NOT auto-select, assume, or pre-fill any value on behalf of the user.\nAt every step below, you MUST display the available options and wait for explicit user confirmation before proceeding.\nNOTE: based on your previous user activies still don't assume their org/project/hub/template etc, they might would want to chose a different everytime. \n\nRequired workflow \u2014 follow in order, pausing for user input after each step:\n\nStep 1 \u2014 Select a hub:\n If the user has already specified a hub_identity, confirm before proceeding.\n Otherwise call harness_list resource_type=chaos_hub, show the list, and wait for them to pick one.\n\nStep 2 \u2014 Select an experiment template:\n If the user has already specified a template_id, confirm before proceeding.\n Otherwise call harness_list resource_type=chaos_experiment_template filtered by hub_identity from Step 1,\n show the list, and wait for them to pick one. Note the template's infraType.\n\nStep 2.5 \u2014 Discover template inputs (optional but recommended):\n Call harness_execute resource_type=chaos_experiment_template action=get_variables to surface required runtime inputs.\n\nStep 3 \u2014 Select an environment:\n Call harness_list resource_type=chaos_environment. Show the full list and wait for the user to pick one.\n Do NOT choose an environment yourself even if only one exists.\n\nStep 4 \u2014 Select an infrastructure:\n Call harness_list resource_type=chaos_k8s_infrastructure
|
|
213
|
-
export declare const descListRevisions = "List revision history for a template.\nReturns all revisions with their identifiers, timestamps, and change descriptions. Use to track template evolution or find a specific revision for comparison.\nPass via params (NOT body): template_id (path \u2014 template identity, required), hub_identity (query \u2014
|
|
212
|
+
export declare const descCreateFromTemplate = "Creates and launches a new chaos experiment from an existing experiment template.\n\nDo not call until you have every required field. Required: template_id, params.hub_identity, name, identity, and infra_ref as environmentID/infraID (or infra_id plus environment_id). If template_id or hub_identity is missing, harness_list resource_type=chaos_experiment_template (hub_identity comes from harness_list resource_type=chaos_hub). If environment_id is missing, harness_list resource_type=chaos_environment. If infra_id or infra_ref is missing, harness_list resource_type=chaos_k8s_infrastructure with that environment_id. name and identity come from the user. Do not call this action until all of these are set.\n\nIMPORTANT: You MUST NOT auto-select, assume, or pre-fill any value on behalf of the user.\nAt every step below, you MUST display the available options and wait for explicit user confirmation before proceeding.\nNOTE: based on your previous user activies still don't assume their org/project/hub/template etc, they might would want to chose a different everytime. \n\nRequired workflow \u2014 follow in order, pausing for user input after each step:\n\nStep 1 \u2014 Select a hub:\n If the user has already specified a hub_identity, confirm before proceeding.\n Otherwise call harness_list resource_type=chaos_hub, show the list, and wait for them to pick one.\n\nStep 2 \u2014 Select an experiment template:\n If the user has already specified a template_id, confirm before proceeding.\n Otherwise call harness_list resource_type=chaos_experiment_template filtered by hub_identity from Step 1,\n show the list, and wait for them to pick one. Note the template's infraType.\n\nStep 2.5 \u2014 Discover template inputs (optional but recommended):\n Call harness_execute resource_type=chaos_experiment_template action=get_variables to surface required runtime inputs.\n\nStep 3 \u2014 Select an environment:\n Call harness_list resource_type=chaos_environment. Show the full list and wait for the user to pick one.\n Do NOT choose an environment yourself even if only one exists.\n\nStep 4 \u2014 Select an infrastructure:\n Call harness_list resource_type=chaos_k8s_infrastructure with filters: { environment_id: \"<environmentId from Step 3>\" }.\n environment_id is required on that list. Optionally filter by infraType from Step 2. Show the list and wait for the user to pick one.\n Only infrastructures where status=ACTIVE AND isChaosEnabled=true are valid.\n If the user picks one that is inactive or has isChaosEnabled=false, tell them it cannot be used and ask them to choose again.\n Do NOT choose an infrastructure yourself.\n\nStep 5 \u2014 Collect experiment details:\n Ask the user for a name and identity for the new experiment.\n Do NOT generate or assume a name without asking.\n Both must match ^[a-z][a-z0-9-]*[a-z0-9]$.\n\nOnly after all five steps are confirmed by the user should you call harness_execute action=create_from_template.\nThe infraId is automatically prefixed with environmentId if needed (pass infra_id + environment_id separately).\nUse import_type to control linking: 'LOCAL' (copy into project, default) or 'REFERENCE' (keep live link to hub).\nReturns the created experiment details including id, identity, name, infraType, infraId, and manifest.\n\nINPUT FIELDS (pass via body or top-level params):\n template_id (string, required): Template identity to launch from (path param).\n hub_identity (string, required): ChaosHub identity from the template list row's hubIdentity. Pass it as params.hub_identity.\n revision (string): Template revision (e.g. \"v1\"). Omit for default revision.\n account_id (string): Harness account identifier. Filled from the configured account when omitted. Pass it only to override that account.\n org_id (string): Organization identifier. If provided, must match query param scope.\n project_id (string): Project identifier. If provided, must match query param scope.\n name (string, required): Display name for the new experiment.\n identity (string, required): Unique identity for the new experiment (not the template).\n infra_ref (string, required): Infrastructure ref as \"environmentId/infraId\". Or pass infra_id + environment_id separately.\n infra_id (string): Infrastructure ID. Combined with environment_id into environmentID/infraID. A bare infra_id is rejected.\n environment_id (string): Environment ID \u2014 required with infra_id when infra_ref is not already environmentID/infraID.\n import_type (string, required): \"LOCAL\" (copy, default) or \"REFERENCE\" (linked to hub template).\n description (string): Experiment description.\n tags (string[]): Experiment tags.\n\nERRORS:\n 400: Missing required fields (account_id, identity, infra_ref, import_type) or scope identifier mismatch between query params and body.\n 401: Unauthorized \u2014 invalid user or insufficient permissions.\n 500: Internal server error.\n\nNOTES:\n - The \"identity\" field is for the NEW experiment being created, not the template (template is identified by template_id).\n - Scope query params and the body account, org, and project are filled from the configured scope when omitted. Pass hub_identity as params.hub_identity. Pass infra_ref as environmentID/infraID, or pass infra_id and environment_id and they are joined.\n \n Note: If user wants to create an experiment from scratch (without using a template), use the create_experiment action on chaos_experiment. \n ";
|
|
213
|
+
export declare const descListRevisions = "List revision history for a template.\nReturns all revisions with their identifiers, timestamps, and change descriptions. Use to track template evolution or find a specific revision for comparison.\nPass via params (NOT body): template_id (path \u2014 template identity, required), hub_identity (query \u2014 optional; pass it when the list row has hubIdentity).";
|
|
214
|
+
export declare const descListExperimentTemplateRevisions = "List revision history for an experiment template.\nReturns all revisions with their identifiers, timestamps, and change descriptions. Use to track template evolution or find a specific revision for comparison.\nPass via params (NOT body): template_id (path \u2014 template identity, required), hub_identity (query \u2014 optional; pass it when the list row has hubIdentity).";
|
|
214
215
|
export declare const descGetVariables = "Get the input variables defined in a template.\nReturns variable definitions including names, types, default values, and descriptions. Use before create_from_template to discover required inputs.\nPass via params (NOT body): template_id (path \u2014 template identity, required), hub_identity (query \u2014 hub the template belongs to, required), revision (query \u2014 specific version, optional; omit for default/latest).";
|
|
215
216
|
export declare const descGetYaml = "Get the full YAML representation of a template.\nReturns the rendered YAML for inspection or export.\nPass via params (NOT body): template_id (path \u2014 template identity, required), hub_identity (query \u2014 hub the template belongs to, required), revision (query \u2014 specific version, optional; omit for default/latest).";
|
|
216
217
|
export declare const descCompareRevisions = "Compare two revisions of a template.\nReturns a diff showing what changed between revision1 and revision2. Use list_revisions to discover available revisions.\nPass via params (NOT body): template_id (path \u2014 template identity, required), hub_identity (query \u2014 hub the template belongs to, required), revision1 (query \u2014 required), revision2 (query \u2014 required).";
|
|
217
218
|
export declare const descRunLoadtest = "Run a load test instance";
|
|
218
219
|
export declare const descStopLoadtest = "Stop a running load test";
|
|
219
|
-
export declare const descCheckK8sHealth = "Check
|
|
220
|
+
export declare const descCheckK8sHealth = "Check connectivity of a legacy (V1) Kubernetes chaos infrastructure. Published route (operationId testLegacyKubernetesChaosInfraConnection): GET /chaos/manager/api/rest/kubernetes/infra/{id}/health. Pass infraID as infra_id. infraID can differ from identity. resource_id (identity) is used only when infra_id is omitted. When both are set, infra_id is the path segment. For a current infrastructure record, use chaos_k8s_infrastructure get.";
|
|
220
221
|
export declare const descEnableGuardRule = "Enable or disable a ChaosGuard rule.\nWhen enabled, the rule actively enforces its governance conditions on chaos experiments.\nWhen disabled, the rule is inactive and does not affect experiment execution.\nReturns a success message on completion.";
|
|
221
222
|
export declare const descGetProbeTemplateVariables = "Get the runtime input variables for a chaos probe template.\nReturns variables grouped into: variables, probeProperties, and probeRunProperty.\nEach variable includes name, value, path, category, type, description, required flag, and allowed values.\nIMPORTANT: When fetching templates from the Enterprise ChaosHub (hub_identity = \"enterprise-chaoshub\"), you MUST omit the hub_identity parameter entirely (do not pass it, or pass it as empty string). The backend resolves Enterprise ChaosHub templates automatically when hub_identity is absent. Passing \"enterprise-chaoshub\" explicitly will return an error. This applies only to the Enterprise ChaosHub; for custom user-created hubs, hub_identity must be provided.\nIf a GET request for a template unexpectedly returns \"no documents in result\" and you provided hub_identity, retry the same request without hub_identity.";
|
|
222
223
|
export declare const descListActionTemplateRevisions = "List all revisions of a chaos action template by its identity.\nReturns a paginated list of revisions with identity, name, type, revision, isDefault, and audit info.\nSupports pagination and search.";
|
|
@@ -231,7 +232,7 @@ export declare const descRuntimeInputs = "Runtime input variables: { experiment:
|
|
|
231
232
|
export declare const descInfraType = "Filter by infrastructure type (e.g. Kubernetes, KubernetesV2, Linux, Windows, CloudFoundry, Container)";
|
|
232
233
|
export declare const descExperimentName = "Experiment name";
|
|
233
234
|
export declare const descExperimentIdentity = "Experiment identity (auto-generated from name if omitted)";
|
|
234
|
-
export declare const descInfraRef = "Infrastructure reference
|
|
235
|
+
export declare const descInfraRef = "Infrastructure reference as environmentID/infraID. A bare infra id is rejected. Use chaos_environment list for the environment, then chaos_k8s_infrastructure or chaos_enabled_infrastructure for environmentID and infraID.";
|
|
235
236
|
export declare const descExperimentId = "Chaos experiment identifier. Accepts either the internal UUID (default, with is_identity=false) or the human-readable identity slug (set is_identity=true). Use harness_list with resource_type=chaos_experiment to find experiment IDs.";
|
|
236
237
|
export declare const descInfraStatus = "Filter by infra status: Active (default) or All";
|
|
237
238
|
export declare const descLoadtestName = "Display name for the load test. Any non-empty string (e.g. \"My Load Test\", \"locust-1\"). The slug-safe identifier rule applies to 'identity' (auto-derived from name) \u2014 not to name.";
|
|
@@ -419,17 +420,17 @@ export declare const descSDAgentListEnvironmentId = "Optional narrowing filter \
|
|
|
419
420
|
export declare const descSDFetchAll = "When true, fetch every result and ignore page/limit (the API returns the full unpaginated list). Useful for small/medium clusters; avoid on very large clusters.";
|
|
420
421
|
export declare const descSDAgentDiagnostic = "404 from SD endpoints almost always means agent_identity or environment_id is wrong \u2014 both are required for AgentAccessCheck to resolve the agent. Both can be confirmed from the SD UI URL or via discovered_agent list.";
|
|
421
422
|
export declare const descDiscoveredAgent = "Service Discovery agent \u2014 one SD deployment running inside a customer's Kubernetes cluster, bound to a single Harness environment. Its 'identity' field is the value other resources take as 'agent_identity' (discovered_namespace / discovered_service / discovered_network_map) and as 'agent_id' (chaos_service create/update). Soft-deleted agents are hidden from list results. The token field is never returned.";
|
|
422
|
-
export declare const descListDiscoveredAgents = "List Service Discovery agents in the given account/org/project scope.
|
|
423
|
+
export declare const descListDiscoveredAgents = "List Service Discovery agents in the given account/org/project scope. Call this before discovered_namespace, discovered_service, or discovered_network_map. Use the row's identity as agent_identity and its environmentIdentifier as environment_id. Use that identity; do not assume a chaos_k8s_infrastructure identity is an agent id. Optional environment_id narrows to one environment; omit to list agents across all environments in scope. Optional search does a case-insensitive regex match on the agent name. Supports page/limit pagination or all=true to fetch everything (all=true also skips per-agent installation/service/network-map count enrichment, so responses are lighter).";
|
|
423
424
|
export declare const descDiscoveredAgentSearch = "Case-insensitive substring match against the SD agent name field.";
|
|
424
425
|
export declare const descDiscoveredNamespace = "Read-only snapshot of a Kubernetes Namespace recorded by a Service Discovery agent \u2014 includes the namespace name, UID, resource version, labels, annotations, owner references, and the full corev1.NamespaceSpec/Status from the cluster's last sync. Use namespaces as the scope boundary when listing discovered_service or future discovered_workload/discovered_connection resources for the same agent.";
|
|
425
|
-
export declare const descListDiscoveredNamespaces = "List Kubernetes namespaces snapshotted by a Service Discovery agent
|
|
426
|
+
export declare const descListDiscoveredNamespaces = "List Kubernetes namespaces snapshotted by a Service Discovery agent.\nDo not call until agent_identity and environment_id are set. If either is missing, harness_list resource_type=discovered_agent and use that row's identity and environmentIdentifier. Use that identity; do not assume a chaos_k8s_infrastructure identity is an agent id.\nReturns live namespaces only. Optional name filter is an exact case-sensitive match. Supports page/limit pagination or all=true to fetch everything.";
|
|
426
427
|
export declare const descSDNamespaceNameFilter = "Filter namespaces by name \u2014 EXACT case-sensitive equality match against the Kubernetes namespace name (the SD backend wraps this in a Mongo equality filter, not a regex). For partial/fuzzy lookup, list all namespaces (use 'all=true') and filter client-side. Note: this differs from discovered_service's 'search' param, which IS case-insensitive substring.";
|
|
427
428
|
export declare const descDiscoveredService = "Read-only snapshot of a logical 'service' discovered by an SD agent. NOT limited to Kubernetes Services \u2014 the same resource type covers K8s Services / Workloads / Nodes, AWS load balancers (ALB/NLB/CLB), EC2 instances, Lambda functions, RDS, Linux/Windows VMs, Linux/Windows VM processes, and a generic 'Other' catch-all. The 'type' field discriminates which 'spec.*' block is populated. For Kubernetes services, 'spec.kubernetes' carries the K8s Service (cluster IPs, ports, type, external name) plus backing workloads (Deployment/StatefulSet/DaemonSet/Job/CronJob/RC) and pod replicas with phase, plus an optional cross-link to a Harness CD service.";
|
|
428
|
-
export declare const descListDiscoveredServices = "List logical services discovered by an SD agent \u2014 covers Kubernetes Services/Workloads, AWS resources (ALB/NLB/CLB, EC2, Lambda, RDS), VMs, and VM processes
|
|
429
|
+
export declare const descListDiscoveredServices = "List logical services discovered by an SD agent \u2014 covers Kubernetes Services/Workloads, AWS resources (ALB/NLB/CLB, EC2, Lambda, RDS), VMs, and VM processes.\nDo not call until agent_identity and environment_id are set. If either is missing, harness_list resource_type=discovered_agent and use that row's identity and environmentIdentifier. Use that identity; do not assume a chaos_k8s_infrastructure identity is an agent id.\nOptional namespace filter applies an equality match on spec.kubernetes.namespace (useful for K8s-typed records). Optional search applies a case-insensitive regex on the service name. To inspect L4 network edges between services, use the future discovered_connection / discovered_service_connection resources.\n\nIMPORTANT \u2014 pass compact: false on this call. The actionable payload lives inside spec.kubernetes.* (backing workloads with kind/uid, pod replicas with phase, service ports, cluster IPs, GKE NEG annotations) which the default compact mode strips because spec is not in the generic whitelist. The compacted view will silently drop these fields without indicating they exist.";
|
|
429
430
|
export declare const descSDNamespaceFilter = "Filter discovered services by Kubernetes namespace (exact match on spec.kubernetes.namespace). Only meaningful for records with a Kubernetes-typed spec; non-K8s records (Lambda, EC2, VMs) won't match.";
|
|
430
431
|
export declare const descSDSearchFilter = "Case-insensitive substring search on the discovered service's name field.";
|
|
431
432
|
export declare const descDiscoveredNetworkMap = "Service-discovery network map \u2014 the raw, per-agent inventory of services + connections discovered by an SD agent inside a single Kubernetes cluster.\n\nThis is step 3 of the chaos onboarding journey (see chaos_application_map for the full lifecycle):\n SD agent installed \u2192 discovers namespaces/services/workloads \u2192 user selects subset into an SD network map (this resource) \u2192 promoted into a chaos_application_map \u2192 experiments can target workloads inside it.\n\nUse this resource to inspect what an SD agent has discovered BEFORE it is grouped/promoted into a chaos_application_map (e.g. to debug \"why is my service missing from the application map?\").\n\nReturns name, identity, description, tags, environmentIdentifier, agentID, rules, resources (NetworkMapEntity[] \u2014 services in the map, each with kubernetes namespace + kind + hasWorkload metadata), and connections (eBPF-derived).";
|
|
432
|
-
export declare const descListDiscoveredNetworkMaps = "List service-discovery network maps for a specific SD agent and environment.\
|
|
433
|
+
export declare const descListDiscoveredNetworkMaps = "List service-discovery network maps for a specific SD agent and environment.\nDo not call until agent_identity and environment_id are set. If either is missing, harness_list resource_type=discovered_agent and use that row's identity and environmentIdentifier. Use that identity; do not assume a chaos_k8s_infrastructure identity is an agent id.\nSupports search (name substring) and the all toggle (default false \u2192 server returns paginated chunk; true \u2192 server returns full list and skips the user-name enrichment loop).";
|
|
433
434
|
export declare const descSDNetworkMapSearch = "Case-insensitive substring match on network-map name. Optional.";
|
|
434
435
|
export declare const descExperimentIdUUID = "Experiment UUID (v4). Optional for create \u2014 the server auto-generates a UUID when omitted; only pass an id if you need to control it explicitly. For update, pass the exact id from harness_get to avoid creating a duplicate.";
|
|
435
436
|
//# sourceMappingURL=chaos-descriptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chaos-descriptions.d.ts","sourceRoot":"","sources":["../../../src/registry/toolsets/chaos-descriptions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chaos-descriptions.d.ts","sourceRoot":"","sources":["../../../src/registry/toolsets/chaos-descriptions.ts"],"names":[],"mappings":"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"}
|