Datadog/synthetics
Datadog Synthetics — synthetic monitoring tests, results, and locations
2026.10.21.1
Changed: Secrets Datadog returns are now stored in a vault, not in plaintext
resource data. The stored resource holds a vault.get reference in place of
each value:
patch_global_variable:value.value, the global variable's valueget_test_file_download_url:url, a presigned download URLget_test_file_multipart_presigned_urls:multipart_presigned_urls_params, the presigned upload URLs
Changed: Because the model now declares sensitive output, swamp refuses to
run any of its methods, reads included, until a vault exists. Without one a
method fails with "no vault is configured"; create one with
swamp vault create local_encryption datadog.
Changed: The json_patch argument of patch_global_variable is marked
sensitive, so swamp masks its values in output. A patch that sets /value/value
carries the variable's secret.
Changed: The README now shows how to store the API key and application key
in a datadog vault and wire them with ${{ vault.get("datadog", "API_KEY") }}
and ${{ vault.get("datadog", "APP_KEY") }}, and lists the fields stored in a
vault. The previous example passed DD_API_KEY and DD_APP_KEY as literal
global arguments, which swamp rejects for sensitive arguments. The apiKey and
appKey descriptions now say the same.
Upgrade note: Anything that reads value.value, url or
multipart_presigned_urls_params from data written by this version gets a vault
reference instead of the plaintext value. Data stored by earlier versions is
unchanged.
Global Arguments
| Argument | Type | Description |
|---|---|---|
| apiKey | string | Datadog API key (DD-API-KEY). Wire it with ${{ vault.get("datadog", "API_KEY") }}; never pass the literal value. |
| appKey | string | Datadog application key (DD-APPLICATION-KEY). Wire it with ${{ vault.get("datadog", "APP_KEY") }}; never pass the literal value. |
| site? | enum | Datadog site |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the API multistep test. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the subtest. |
| Argument | Type | Description |
|---|---|---|
| filter_test_ids? | string | Comma-separated list of Synthetics test public IDs to filter downtimes by. |
| filter_active? | string | If set to `true`, return only downtimes that are currently active. |
| Argument | Type | Description |
|---|---|---|
| description? | string | An optional description of the downtime. |
| isEnabled | boolean | Whether the downtime is enabled. |
| name | string | The name of the downtime. |
| tags? | unknown | |
| testIds | unknown | |
| timeSlots | unknown |
| Argument | Type | Description |
|---|---|---|
| downtime_id | string | The ID of the downtime to retrieve. |
| Argument | Type | Description |
|---|---|---|
| downtime_id | string | The ID of the downtime to update. |
| description? | string | An optional description of the downtime. |
| isEnabled | boolean | Whether the downtime is enabled. |
| name | string | The name of the downtime. |
| tags? | unknown | |
| testIds | unknown | |
| timeSlots | unknown |
| Argument | Type | Description |
|---|---|---|
| downtime_id | string | The ID of the downtime to delete. |
| Argument | Type | Description |
|---|---|---|
| downtime_id | string | The ID of the downtime. |
| test_id | string | The public ID of the Synthetics test to associate with the downtime. |
| Argument | Type | Description |
|---|---|---|
| downtime_id | string | The ID of the downtime. |
| test_id | string | The public ID of the Synthetics test to disassociate from the downtime. |
| Argument | Type | Description |
|---|---|---|
| on_demand_concurrency_cap? | number | Value of the on-demand concurrency cap. |
| Argument | Type | Description |
|---|---|---|
| message? | string | Notification message associated with the suite. |
| monitor_id? | number | The associated monitor ID. |
| name | string | Name of the suite. |
| options | unknown | |
| public_id? | string | The public ID for the test. |
| tags? | array | Array of tags attached to the suite. |
| tests | array | Array of Synthetic tests included in the suite. |
| type | unknown |
| Argument | Type | Description |
|---|---|---|
| force_delete_dependencies? | boolean | Whether to force deletion of suites that have dependent resources. |
| public_ids | array | List of public IDs of the Synthetic test suites to delete. |
| Argument | Type | Description |
|---|---|---|
| query? | string | The search query. |
| sort? | string | The sort order for the results (e.g., `name,asc` or `name,desc`). |
| facets_only? | boolean | If true, return only facets instead of full test details. |
| start? | number | The offset from which to start returning results. |
| count? | number | The maximum number of results to return. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the suite to get details from. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the suite to edit. |
| message? | string | Notification message associated with the suite. |
| monitor_id? | number | The associated monitor ID. |
| name | string | Name of the suite. |
| options | unknown | |
| tags? | array | Array of tags attached to the suite. |
| tests | array | Array of Synthetic tests included in the suite. |
| type | unknown |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Synthetic test suite to patch. |
| json_patch? | array | JSON Patch operations following RFC 6902. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Synthetic browser test for which to search results. |
| from_ts? | number | Timestamp in milliseconds from which to start querying results. |
| to_ts? | number | Timestamp in milliseconds up to which to query results. |
| status? | string | Filter results by status. |
| runType? | string | Filter results by run type. |
| probe_dc? | string | Locations for which to query results. |
| device_id? | string | Device IDs for which to query results. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Synthetic browser test to which the target result belongs. |
| result_id | string | The ID of the result to get. |
| event_id? | string | The event ID used to look up the result in the event store. |
| timestamp? | number | Timestamp in seconds to look up the result. |
| Argument | Type | Description |
|---|---|---|
| force_delete_dependencies? | boolean | Whether to force deletion of tests that have dependent resources. |
| public_ids | array | List of public IDs of the Synthetic tests to delete. |
| Argument | Type | Description |
|---|---|---|
| id | string | The UUID of the fast test to retrieve the result for. |
| Argument | Type | Description |
|---|---|---|
| config | unknown | |
| locations | array | Array of locations used to run the test. Network Path tests can be run from m... |
| message | string | Notification message associated with the test. |
| monitor_id? | number | The associated monitor ID. |
| name | string | Name of the test. |
| options | unknown | |
| public_id? | string | The public ID for the test. |
| status? | unknown | |
| subtype? | unknown | |
| tags? | array | Array of tags attached to the test. |
| type | unknown |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Network Path test to get details from. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Network Path test to edit. |
| config | unknown | |
| locations | array | Array of locations used to run the test. Network Path tests can be run from m... |
| message | string | Notification message associated with the test. |
| monitor_id? | number | The associated monitor ID. |
| name | string | Name of the test. |
| options | unknown | |
| status? | unknown | |
| subtype? | unknown | |
| tags? | array | Array of tags attached to the test. |
| type | unknown |
| Argument | Type | Description |
|---|---|---|
| result_ids? | string | A JSON-encoded array of result IDs to poll for. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Synthetic test. |
| bucketKey | string | The bucket key referencing the file to download. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Synthetic test. |
| bucketKeyPrefix | unknown | |
| parts | array | Array of part descriptors for the multipart upload. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Synthetic test. |
| key | string | The full storage path of the file whose upload should be aborted. |
| uploadId | string | The upload ID of the multipart upload to abort. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Synthetic test. |
| key | string | The full storage path for the uploaded file. |
| parts | array | Array of completed parts with their ETags. |
| uploadId | string | The upload ID returned when the multipart upload was initiated. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Synthetic test. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Synthetic test for which to search results. |
| from_ts? | number | Timestamp in milliseconds from which to start querying results. |
| to_ts? | number | Timestamp in milliseconds up to which to query results. |
| status? | string | Filter results by status. |
| runType? | string | Filter results by run type. |
| probe_dc? | string | Locations for which to query results. |
| device_id? | string | Device IDs for which to query results. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Synthetic test to which the target result belongs. |
| result_id | string | The ID of the result to get. |
| event_id? | string | The event ID used to look up the result in the event store. |
| timestamp? | number | Timestamp in seconds to look up the result. |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Synthetic test. |
| last_version_number? | number | The version number of the last item from the previous page. Omit to get the f... |
| Argument | Type | Description |
|---|---|---|
| public_id | string | The public ID of the Synthetic test. |
| version_number | string | The version number to retrieve. |
| include_change_metadata? | boolean | If `true`, include change metadata in the response. |
| only_check_existence? | boolean | If `true`, only check whether the version exists without returning its full p... |
| Argument | Type | Description |
|---|---|---|
| variable_id | string | The ID of the global variable. |
| json_patch? | array | JSON Patch operations following RFC 6902. Can carry a secret: put it in a vault.get expression, never a literal value. |
Resources
2026.10.15.1
Changed: Generated tests now include one execution test per method, so every method is covered. Nothing behavioral changed in the model code, schemas or resources.
2026.10.14.1
Fixed: Methods that write a singleton resource failed on current swamp with
Data name 'latest' is reserved for internal use.
Changed: Singleton get and action methods now write their data under
on_demand_concurrency_cap-current, search_suites-current instead of
latest. Anything that read data.latest("<model>", "latest") or queried
name == "latest" must use the new name.
Upgrade note: Data previously stored under latest is not migrated; re-run
the method to populate the new name. No attribute schemas changed.
Added: The manifest now declares license: Apache-2.0 (SPDX). The registry quality rubric scores a declared license separately from the bundled LICENSE.md.
2026.09.18.1
Upgrade note: Normalized npm:zod dependency version to 4.6.5 across the
repo. No behavioral changes in this extension.
2026.09.15.1
Changed: Bump zod 4.4.3 → 4.6.5
2026.09.08.1
Added: Initial code-generated release of @webframp/datadog/synthetics with 35 methods covering the Datadog synthetics API surface.
2026.09.08.1
Added: Initial code-generated release of @webframp/datadog/synthetics with 35 methods covering the Datadog synthetics API surface.
2026.08.28.2
Hardened codegen: instance names sanitized against path traversal; string schema patterns emit regex validation; output schemas passthrough unknown fields.
updated labels
2026.08.28.1
Changed: Normalized the extension license to Apache-2.0 and corrected the copyright holder to "Sean Escriva". Extensions that previously shipped an MIT LICENSE.md are now Apache-2.0, consistent with the repository root and every other extension. No code or behavioral changes.
Upgrade note: License text only. No API, schema, or runtime behavior changed.
2026.08.26.2
Fixed: Restored inline npm:zod@4.4.3 import specifiers so the registry
quality scorer can resolve dependencies and score the extension. An earlier
release used a bare "zod" import-map specifier, which published but scored as
unscored.
Changed: Retained explicit compilerOptions.strict in deno.json. No
behavioral or schema changes.
2026.08.26.2
Fixed: Restored inline npm:zod@4.4.3 import specifiers so the registry
quality scorer can resolve dependencies and score the extension. An earlier
release used a bare "zod" import-map specifier, which published but scored as
unscored.
Changed: Retained explicit compilerOptions.strict in deno.json. No
behavioral or schema changes.
2026.08.25.1
Changed: Updated labels for improved extension discoverability. Added cross-cutting category labels (security, observability, finops, infrastructure, networking, compliance, devops, ai, incident-response) where applicable.
updated labels
2026.08.24.1
Added: Output metadata attributes for observability.
durationMs: Method execution duration in milliseconds.collectedBy: Extension name that produced the data.fetchedAt: ISO 8601 timestamp when data was fetched (added to resources that previously lacked it).
2026.08.21.2
Changed: Error messages and input validation are more specific.
- API errors now name the HTTP method and path that was attempted (e.g.
Datadog API HTTP 404: GET /api/v2/synthetics/tests/browser/abc-123/results) instead of just the raw status code and response body. - A network-level failure (DNS error, connection reset, timeout) reaching the
Datadog API now raises
Datadog API request failed: <METHOD> <path>: <reason>instead of an unlabeled fetch error. create_synthetics_suiteandedit_synthetics_suitenow reject an emptytestsarray before making a request.get_test_file_multipart_presigned_urlsandcomplete_test_file_multipart_uploadnow reject an emptypartsarray before making a request, instead of letting Datadog return an opaque validation error for a multipart upload with no parts.
No changes to request/response shapes or existing successful-path behavior.
2026.08.21.1
Changed: Tightened Zod schemas as part of a repo-wide schema audit.
- Added
.min(1)toapiKeyandappKeyin the global arguments schema — both are sent directly as request headers, and an empty value would never be accepted by the Datadog API. - Added
.min(1)to the requiredpublic_id,downtime_id,test_id, andresult_idpath-parameter arguments across all methods thatencodeURIComponentthem directly into a request URL — an empty value would always produce a malformed path and a guaranteed API error.
No behavioral changes — these are validation tightenings only; every value these methods already accept from the Datadog API continues to validate.
2026.07.20.11
Added: Initial code-generated release of @webframp/datadog/synthetics with 35 methods covering the Datadog synthetics API surface.
2026.08.21.1
Changed: Tightened Zod schemas as part of a repo-wide schema audit.
- Added
.min(1)toapiKeyandappKeyin the global arguments schema — both are sent directly as request headers, and an empty value would never be accepted by the Datadog API. - Added
.min(1)to the requiredpublic_id,downtime_id,test_id, andresult_idpath-parameter arguments across all methods thatencodeURIComponentthem directly into a request URL — an empty value would always produce a malformed path and a guaranteed API error.
No behavioral changes — these are validation tightenings only; every value these methods already accept from the Datadog API continues to validate.
2026.07.20.11
Added: Initial code-generated release of @webframp/datadog/synthetics with 35 methods covering the Datadog synthetics API surface.
2026.07.20.11
Added: Initial code-generated release of @webframp/datadog/synthetics with 35 methods covering the Datadog synthetics API surface.
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License2/2earned
- Verified public repository2/2earned