You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(dynatrace): drill the documented JSON shapes, and require the tag selector
Two problems, one found in review and one worth more than it was given.
The tag operations could run without an entity selector. All three tag tools
declare `entitySelector` required, but the shared block field was only marked
required for List Entities, so the block let a workflow reach those tools with
an invalid configuration and let Dynatrace do the rejecting. My own structural
auditor missed it because it only checked that *some* visible subBlock existed
for a required param, not that the specific one was required — that check is
now precise, and it confirms these three were the only instances across all 47
operations.
The larger one: outputs were declaring `type: 'json'` for shapes the API
reference documents in full. Thirty-five of them. The top-level entities were
mapped properly, but nested payloads — a problem's evidence and impact
analysis, a vulnerability's risk assessment and global counts, an attack's
attacker, request, entry point and exploited vulnerability, a remediation
item's assessment and mute state, the synthetic execution and failure records,
the metric ingest error envelope, the DQL translation — were passed through as
anonymous blobs. A downstream block could not reference `attacker.sourceIp`
without knowing to guess it. All of those now carry their fields.
What stays opaque is now only what genuinely is, and each says why in its
description: a settings object's schema-defined value, an entity's
type-dependent property bag and relationship keys, caller-supplied synthetic
metadata, an audit log's JSON patch, the undocumented partial-success body of
log ingestion, and the handful of security-detail shapes the reference names
without expanding.
@@ -485,7 +496,7 @@ Push log events into Dynatrace. Accepts a single log event object or an array of
485
496
| --------- | ---- | ----------- |
486
497
|`accepted`| boolean | True when Dynatrace accepted every log event \(HTTP 204\)|
487
498
|`statusCode`| number | HTTP status Dynatrace returned. 204 is full success, 200 is partial success |
488
-
|`details`| json | Partial-success details, present only when some events were rejected |
499
+
|`details`| json | Partial-success body, present only when some events were rejected. The reference does not document its shape, so it is passed through as-is|
489
500
490
501
### Dynatrace List SLOs
491
502
@@ -613,7 +624,7 @@ Read the Dynatrace audit log — who changed which configuration, when, and whet
613
624
| ↳ `timestamp`| number | Change timestamp in UTC milliseconds |
614
625
| ↳ `success`| boolean | Whether the change succeeded |
615
626
| ↳ `message`| string | Description of the change |
616
-
| ↳ `patch`| json | JSON patch of the change |
627
+
| ↳ `patch`| json | JSON patch describing the change. Its shape follows whatever settings object was edited, so it is dynamic|
617
628
| ↳ `settingsSchemaId`| string | Settings schema ID \(dt.settings.schema_id\)|
618
629
| ↳ `settingsScopeId`| string | Settings scope ID \(dt.settings.scope_id\)|
0 commit comments