changedOutput schema / oneOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "coverage": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "answered": {
- "description": "The radars that answered. On a failure their answers are withheld.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "failed": {
- "description": "The radars that could not be read.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "radars": {
- "description": "The radars this tool reads.",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "radars",
- "answered",
- "failed"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "What the answer covers; null where the answer says nothing about it."
- },
- "data": {
- "additionalProperties": false,
- "properties": {
- "exposed_databases": {
- "additionalProperties": false,
- "properties": {
- "distinct_hosts": {
- "type": "number"
- },
- "engines": {
- "type": "number"
- },
- "generated_at": {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- "last_run_at": {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- "pci_likely": {
- "type": "number"
- },
- "pii_likely": {
- "type": "number"
- },
- "top_countries": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "country": {
- "type": "string"
- },
- "hosts": {
- "type": "number"
- }
- },
- "required": [
- "country",
- "hosts"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "top_engines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "engine": {
- "type": "string"
- },
- "hosts": {
- "type": "number"
- }
- },
- "required": [
- "engine",
- "hosts"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "kev_exposure": {
- "additionalProperties": false,
- "properties": {
- "correlations": {
- "type": "number"
- },
- "distinct_hosts": {
- "type": "number"
- },
- "generated_at": {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- "kev_cves_exposed": {
- "type": "number"
- },
- "last_run_at": {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- "newest_kev": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "added_date": {
- "type": "string"
- },
- "cve_id": {
- "type": "string"
- },
- "cvss_v3_score": {
- "type": "number"
- },
- "epss_score": {
- "type": "number"
- },
- "exposed_hosts": {
- "type": "number"
- },
- "exposure_state": {
- "enum": [
- "exposed",
- "measured_zero",
- "not_assessed"
- ],
- "type": "string"
- },
- "ransomware": {
- "type": "boolean"
- },
- "severity": {
- "type": "string"
- },
- "vuln_name": {
- "type": "string"
- }
- },
- "required": [
- "cve_id",
- "exposure_state"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "ransomware_cves": {
- "type": "number"
- },
- "ransomware_hosts": {
- "type": "number"
- },
- "top_countries": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "country": {
- "type": "string"
- },
- "hosts": {
- "type": "number"
- }
- },
- "required": [
- "country",
- "hosts"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "top_cves": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "cve_id": {
- "type": "string"
- },
- "cvss_v3_score": {
- "type": "number"
- },
- "epss_score": {
- "type": "number"
- },
- "hosts": {
- "type": "number"
- },
- "ransomware": {
- "type": "boolean"
- },
- "severity": {
- "type": "string"
- }
- },
- "required": [
- "cve_id",
- "hosts"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "top_products": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "hosts": {
- "type": "number"
- },
- "product": {
- "type": "string"
- }
- },
- "required": [
- "product",
- "hosts"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "trend": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "new_exposures": {
- "type": "number"
- },
- "week": {
- "type": "string"
- }
- },
- "required": [
- "week",
- "new_exposures"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "leaked_credentials": {
- "additionalProperties": false,
- "properties": {
- "distinct_repos": {
- "type": "number"
- },
- "distinct_secrets": {
- "type": "number"
- },
- "generated_at": {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- "last_run_at": {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- "top_providers": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "count": {
- "type": "number"
- },
- "provider": {
- "type": "string"
- }
- },
- "required": [
- "provider",
- "count"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "top_types": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "count": {
- "type": "number"
- },
- "secret_type": {
- "type": "string"
- }
- },
- "required": [
- "secret_type",
- "count"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "total": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "mcp_servers": {
- "additionalProperties": false,
- "properties": {
- "counted_at": {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- "enabled": {
- "type": "boolean"
- },
- "era": {
- "additionalProperties": false,
- "properties": {
- "dual": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "legacy": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "modern": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "not_measured": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "unknown": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "legacy",
- "dual",
- "modern",
- "unknown",
- "not_measured"
- ],
- "type": "object"
- },
- "last_run_at": {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- "not_assessed": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "not_assessed_by_reason": {
- "additionalProperties": false,
- "properties": {
- "bare_challenge_no_prm": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "challenge_unadjudicated": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "cross_origin_pointer": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "identified_no_challenge": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "metadata_invalid": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "no_authorization_servers": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "no_http_answer": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "not_identified_as_mcp": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "pointer_invalid": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "pointer_unreachable": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "resource_mismatch": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "wellknown_unreachable": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "identified_no_challenge",
- "resource_mismatch",
- "cross_origin_pointer",
- "bare_challenge_no_prm",
- "pointer_unreachable",
- "pointer_invalid",
- "no_authorization_servers",
- "wellknown_unreachable",
- "metadata_invalid",
- "challenge_unadjudicated",
- "no_http_answer",
- "not_identified_as_mcp"
- ],
- "type": "object"
- },
- "own_controls_excluded": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "pending_readjudication": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "prm_via": {
- "additionalProperties": false,
- "properties": {
- "header": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "wellknown_path": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "wellknown_root": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "header",
- "wellknown_path",
- "wellknown_root"
- ],
- "type": "object"
- },
- "protected": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "total": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "transport": {
- "additionalProperties": false,
- "properties": {
- "legacy_sse": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "not_measured": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "streamable_http": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "unknown": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "streamable_http",
- "legacy_sse",
- "unknown",
- "not_measured"
- ],
- "type": "object"
- },
- "window": {
- "additionalProperties": false,
- "properties": {
- "from": {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- "to": {
- "description": "An RFC 3339 instant.",
- "type": "string"
- }
- },
- "required": [
- "from",
- "to"
- ],
- "type": "object"
- }
- },
- "required": [
- "total",
- "protected",
- "pending_readjudication",
- "not_assessed"
- ],
- "type": "object"
- },
- "shadow_ai": {
- "additionalProperties": false,
- "properties": {
- "authentication": {
- "additionalProperties": false,
- "properties": {
- "not_determined": {
- "type": "number"
- },
- "observed": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "confirmed_exposed": {
- "additionalProperties": false,
- "properties": {
- "by_category": {
- "additionalProperties": {
- "type": "number"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "last_24h": {
- "type": "number"
- },
- "total": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "observed": {
- "additionalProperties": false,
- "properties": {
- "by_category": {
- "additionalProperties": {
- "type": "number"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "last_24h": {
- "type": "number"
- },
- "last_observation": {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- "top_countries": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "count": {
- "type": "number"
- },
- "country": {
- "type": "string"
- }
- },
- "required": [
- "country",
- "count"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "top_issuers": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "count": {
- "type": "number"
- },
- "issuer": {
- "type": "string"
- }
- },
- "required": [
- "issuer",
- "count"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "top_products": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "count": {
- "type": "number"
- },
- "product": {
- "type": "string"
- }
- },
- "required": [
- "product",
- "count"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "total": {
- "type": "number"
- },
- "trend_30d": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "count": {
- "type": "number"
- },
- "date": {
- "type": "string"
- }
- },
- "required": [
- "date",
- "count"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- "poller": {
- "additionalProperties": false,
- "properties": {
- "last_run_at": {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- "running": {
- "type": "boolean"
- }
- },
- "required": [
- "running",
- "last_run_at"
- ],
- "type": "object"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "kev_exposure",
- "exposed_databases",
- "leaked_credentials",
- "shadow_ai",
- "mcp_servers"
- ],
- "type": "object"
- },
- "freshness": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "exposed_databases": {
- "additionalProperties": false,
- "properties": {
- "last_run_at": {
- "anyOf": [
- {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "last_run_at"
- ],
- "type": "object"
- },
- "kev_exposure": {
- "additionalProperties": false,
- "properties": {
- "last_run_at": {
- "anyOf": [
- {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "last_run_at"
- ],
- "type": "object"
- },
- "leaked_credentials": {
- "additionalProperties": false,
- "properties": {
- "last_run_at": {
- "anyOf": [
- {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "last_run_at"
- ],
- "type": "object"
- },
- "mcp_servers": {
- "additionalProperties": false,
- "properties": {
- "enabled": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "last_run_at": {
- "anyOf": [
- {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "last_run_at",
- "enabled"
- ],
- "type": "object"
- },
- "shadow_ai": {
- "additionalProperties": false,
- "properties": {
- "last_run_at": {
- "anyOf": [
- {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "running": {
- "type": [
- "boolean",
- "null"
- ]
- }
- },
- "required": [
- "last_run_at",
- "running"
- ],
- "type": "object"
- }
- },
- "required": [
- "kev_exposure",
- "exposed_databases",
- "leaked_credentials",
- "shadow_ai",
- "mcp_servers"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "The producing radar's last completed check (last_run_at), where the API serves one."
- },
- "measured_at": {
- "anyOf": [
- {
- "description": "An RFC 3339 instant.",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "When the underlying observation was made, as the API states it; null when the answer does not say or holds no observation."
- },
- "method": {
- "description": "How the numbers were produced.",
- "type": "string"
- },
- "notes": {
- "description": "Caveats, one sentence each.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "state": {
- "description": "measured: a measurement of what was asked; an exposure count is measured only with measured_at and method. not_assessed: the answer holds no dated measurement of what was asked, so no count in it is presented as one; it can still relay a count, as what the source holds on record, undated, and its notes (and exposure_state, where the result carries it) say what each count is.",
- "enum": [
- "measured",
- "not_assessed"
- ],
- "type": "string"
- }
- },
- "required": [
- "state",
- "measured_at",
- "method",
- "coverage",
- "freshness",
- "notes",
- "data"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "coverage": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "answered": {
- "description": "The radars that answered. On a failure their answers are withheld.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "failed": {
- "description": "The radars that could not be read.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "radars": {
- "description": "The radars this tool reads.",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "radars",
- "answered",
- "failed"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "error": {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "description": "What failed: the request (network, timeout), the answer (http, not_json, not_object, unexpected_shape), the input, or this server.",
- "enum": [
- "network",
- "timeout",
- "http",
- "not_json",
- "not_object",
- "invalid_input",
- "internal",
- "unexpected_shape",
- "radars"
- ],
- "type": "string"
- },
- "message": {
- "description": "The cause: the API's own message, or what went wrong.",
- "type": "string"
- },
- "path": {
- "description": "The API path requested, when a request was made.",
- "type": [
- "string",
- "null"
- ]
- },
- "radars": {
- "description": "Each radar that could not be read, and why.",
- "items": {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "enum": [
- "network",
- "timeout",
- "http",
- "not_json",
- "not_object",
- "unexpected_shape"
- ],
- "type": "string"
- },
- "message": {
- "type": "string"
- },
- "path": {
- "type": "string"
- },
- "radar": {
- "type": "string"
- },
- "status": {
- "anyOf": [
- {
- "maximum": 9007199254740991,
- "minimum": -9007199254740991,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "radar",
- "kind",
- "path",
- "status",
- "message"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "status": {
- "anyOf": [
- {
- "maximum": 9007199254740991,
- "minimum": -9007199254740991,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ],
- "description": "The HTTP status, when the API answered one."
- }
- },
- "required": [
- "kind",
- "path",
- "status",
- "message"
- ],
- "type": "object"
- },
- "freshness": {
- "type": "null"
- },
- "measured_at": {
- "type": "null"
- },
- "method": {
- "type": "null"
- },
- "notes": {
- "description": "Caveats, one sentence each.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "state": {
- "description": "failed: the lookup did not complete. invalid_input: the input was refused, so nothing was looked up. Neither is a finding.",
- "enum": [
- "failed",
- "invalid_input"
- ],
- "type": "string"
- }
- },
- "required": [
- "state",
- "measured_at",
- "method",
- "coverage",
- "freshness",
- "notes",
- "error"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "coverage": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "answered": {
+ "description": "The radars that answered. On a failure their answers are withheld.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "failed": {
+ "description": "The radars that could not be read.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "radars": {
+ "description": "The radars this tool reads.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "radars",
+ "answered",
+ "failed"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "What the answer covers; null where the answer says nothing about it."
+ },
+ "data": {
+ "additionalProperties": false,
+ "properties": {
+ "exposed_databases": {
+ "additionalProperties": false,
+ "properties": {
+ "distinct_hosts": {
+ "type": "number"
+ },
+ "engines": {
+ "type": "number"
+ },
+ "generated_at": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "last_run_at": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "pci_likely": {
+ "type": "number"
+ },
+ "pii_likely": {
+ "type": "number"
+ },
+ "top_countries": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "country": {
+ "type": "string"
+ },
+ "hosts": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "country",
+ "hosts"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "top_engines": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "engine": {
+ "type": "string"
+ },
+ "hosts": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "engine",
+ "hosts"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "window": {
+ "additionalProperties": false,
+ "properties": {
+ "from": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "to": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "from",
+ "to"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "kev_exposure": {
+ "additionalProperties": false,
+ "properties": {
+ "correlations": {
+ "type": "number"
+ },
+ "distinct_hosts": {
+ "type": "number"
+ },
+ "generated_at": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "kev_cves_exposed": {
+ "type": "number"
+ },
+ "last_run_at": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "newest_kev": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "added_date": {
+ "type": "string"
+ },
+ "cve_id": {
+ "type": "string"
+ },
+ "cvss_v3_score": {
+ "type": "number"
+ },
+ "epss_score": {
+ "type": "number"
+ },
+ "exposed_hosts": {
+ "type": "number"
+ },
+ "exposure_state": {
+ "enum": [
+ "exposed",
+ "measured_zero",
+ "not_assessed"
+ ],
+ "type": "string"
+ },
+ "ransomware": {
+ "type": "boolean"
+ },
+ "severity": {
+ "type": "string"
+ },
+ "vuln_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "cve_id",
+ "exposure_state"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "ransomware_cves": {
+ "type": "number"
+ },
+ "ransomware_hosts": {
+ "type": "number"
+ },
+ "top_countries": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "country": {
+ "type": "string"
+ },
+ "hosts": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "country",
+ "hosts"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "top_cves": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "cve_id": {
+ "type": "string"
+ },
+ "cvss_v3_score": {
+ "type": "number"
+ },
+ "epss_score": {
+ "type": "number"
+ },
+ "hosts": {
+ "type": "number"
+ },
+ "ransomware": {
+ "type": "boolean"
+ },
+ "severity": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "cve_id",
+ "hosts"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "top_products": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "hosts": {
+ "type": "number"
+ },
+ "product": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "product",
+ "hosts"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "trend": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "new_exposures": {
+ "type": "number"
+ },
+ "week": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "week",
+ "new_exposures"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "leaked_credentials": {
+ "additionalProperties": false,
+ "properties": {
+ "distinct_repos": {
+ "type": "number"
+ },
+ "distinct_secrets": {
+ "type": "number"
+ },
+ "generated_at": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "last_run_at": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "top_providers": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": "number"
+ },
+ "provider": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "provider",
+ "count"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "top_types": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": "number"
+ },
+ "secret_type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "secret_type",
+ "count"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "total": {
+ "type": "number"
+ },
+ "window": {
+ "additionalProperties": false,
+ "properties": {
+ "from": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "to": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "from",
+ "to"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "mcp_servers": {
+ "additionalProperties": false,
+ "properties": {
+ "counted_at": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "era": {
+ "additionalProperties": false,
+ "properties": {
+ "dual": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "legacy": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "modern": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "not_measured": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "unknown": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "legacy",
+ "dual",
+ "modern",
+ "unknown",
+ "not_measured"
+ ],
+ "type": "object"
+ },
+ "last_run_at": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "not_assessed": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "not_assessed_by_reason": {
+ "additionalProperties": false,
+ "properties": {
+ "bare_challenge_no_prm": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "challenge_unadjudicated": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "cross_origin_pointer": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "identified_no_challenge": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "metadata_invalid": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "no_authorization_servers": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "no_http_answer": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "not_identified_as_mcp": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "pointer_invalid": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "pointer_unreachable": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "resource_mismatch": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "wellknown_unreachable": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "identified_no_challenge",
+ "resource_mismatch",
+ "cross_origin_pointer",
+ "bare_challenge_no_prm",
+ "pointer_unreachable",
+ "pointer_invalid",
+ "no_authorization_servers",
+ "wellknown_unreachable",
+ "metadata_invalid",
+ "challenge_unadjudicated",
+ "no_http_answer",
+ "not_identified_as_mcp"
+ ],
+ "type": "object"
+ },
+ "own_controls_excluded": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "pending_readjudication": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "prm_via": {
+ "additionalProperties": false,
+ "properties": {
+ "header": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "wellknown_path": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "wellknown_root": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "header",
+ "wellknown_path",
+ "wellknown_root"
+ ],
+ "type": "object"
+ },
+ "protected": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "total": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "transport": {
+ "additionalProperties": false,
+ "properties": {
+ "legacy_sse": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "not_measured": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "streamable_http": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "unknown": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "streamable_http",
+ "legacy_sse",
+ "unknown",
+ "not_measured"
+ ],
+ "type": "object"
+ },
+ "window": {
+ "additionalProperties": false,
+ "properties": {
+ "from": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "to": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "from",
+ "to"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "total",
+ "protected",
+ "pending_readjudication",
+ "not_assessed"
+ ],
+ "type": "object"
+ },
+ "shadow_ai": {
+ "additionalProperties": false,
+ "properties": {
+ "authentication": {
+ "additionalProperties": false,
+ "properties": {
+ "not_determined": {
+ "type": "number"
+ },
+ "observed": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "confirmed_exposed": {
+ "additionalProperties": false,
+ "properties": {
+ "by_category": {
+ "additionalProperties": {
+ "type": "number"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "last_24h": {
+ "type": "number"
+ },
+ "total": {
+ "type": "number"
+ },
+ "window": {
+ "additionalProperties": false,
+ "properties": {
+ "from": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "to": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "from",
+ "to"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "observed": {
+ "additionalProperties": false,
+ "properties": {
+ "by_category": {
+ "additionalProperties": {
+ "type": "number"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "last_24h": {
+ "type": "number"
+ },
+ "last_observation": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "top_countries": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": "number"
+ },
+ "country": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "country",
+ "count"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "top_issuers": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": "number"
+ },
+ "issuer": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "issuer",
+ "count"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "top_products": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": "number"
+ },
+ "product": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "product",
+ "count"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "total": {
+ "type": "number"
+ },
+ "trend_30d": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "count": {
+ "type": "number"
+ },
+ "date": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "date",
+ "count"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "poller": {
+ "additionalProperties": false,
+ "properties": {
+ "last_run_at": {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ "running": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "running",
+ "last_run_at"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "kev_exposure",
+ "exposed_databases",
+ "leaked_credentials",
+ "shadow_ai",
+ "mcp_servers"
+ ],
+ "type": "object"
+ },
+ "freshness": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "exposed_databases": {
+ "additionalProperties": false,
+ "properties": {
+ "last_run_at": {
+ "anyOf": [
+ {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "last_run_at"
+ ],
+ "type": "object"
+ },
+ "kev_exposure": {
+ "additionalProperties": false,
+ "properties": {
+ "last_run_at": {
+ "anyOf": [
+ {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "last_run_at"
+ ],
+ "type": "object"
+ },
+ "leaked_credentials": {
+ "additionalProperties": false,
+ "properties": {
+ "last_run_at": {
+ "anyOf": [
+ {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "last_run_at"
+ ],
+ "type": "object"
+ },
+ "mcp_servers": {
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "last_run_at": {
+ "anyOf": [
+ {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "last_run_at",
+ "enabled"
+ ],
+ "type": "object"
+ },
+ "shadow_ai": {
+ "additionalProperties": false,
+ "properties": {
+ "last_run_at": {
+ "anyOf": [
+ {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "running": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "last_run_at",
+ "running"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kev_exposure",
+ "exposed_databases",
+ "leaked_credentials",
+ "shadow_ai",
+ "mcp_servers"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The producing radar's last completed check (last_run_at), where the API serves one."
+ },
+ "measured_at": {
+ "anyOf": [
+ {
+ "description": "An RFC 3339 instant.",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "When the underlying observation was made, as the API states it; null when the answer does not say or holds no observation."
+ },
+ "method": {
+ "description": "How the numbers were produced.",
+ "type": "string"
+ },
+ "notes": {
+ "description": "Caveats, one sentence each.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "state": {
+ "description": "measured: a measurement of what was asked; an exposure count is measured only with measured_at and method. not_assessed: the answer holds no dated measurement of what was asked, so no count in it is presented as one; it can still relay a count, as what the source holds on record, undated, and its notes (and exposure_state, where the result carries it) say what each count is.",
+ "enum": [
+ "measured",
+ "not_assessed"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "state",
+ "measured_at",
+ "method",
+ "coverage",
+ "freshness",
+ "notes",
+ "data"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "coverage": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "answered": {
+ "description": "The radars that answered. On a failure their answers are withheld.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "failed": {
+ "description": "The radars that could not be read.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "radars": {
+ "description": "The radars this tool reads.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "radars",
+ "answered",
+ "failed"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "error": {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "description": "What failed: the request (network, timeout), the answer (http, not_json, not_object, unexpected_shape), the input, or this server.",
+ "enum": [
+ "network",
+ "timeout",
+ "http",
+ "not_json",
+ "not_object",
+ "invalid_input",
+ "internal",
+ "unexpected_shape",
+ "radars"
+ ],
+ "type": "string"
+ },
+ "message": {
+ "description": "The cause: the API's own message, or what went wrong.",
+ "type": "string"
+ },
+ "path": {
+ "description": "The API path requested, when a request was made.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "radars": {
+ "description": "Each radar that could not be read, and why.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "enum": [
+ "network",
+ "timeout",
+ "http",
+ "not_json",
+ "not_object",
+ "unexpected_shape"
+ ],
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "radar": {
+ "type": "string"
+ },
+ "status": {
+ "anyOf": [
+ {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "radar",
+ "kind",
+ "path",
+ "status",
+ "message"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "status": {
+ "anyOf": [
+ {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The HTTP status, when the API answered one."
+ }
+ },
+ "required": [
+ "kind",
+ "path",
+ "status",
+ "message"
+ ],
+ "type": "object"
+ },
+ "freshness": {
+ "type": "null"
+ },
+ "measured_at": {
+ "type": "null"
+ },
+ "method": {
+ "type": "null"
+ },
+ "notes": {
+ "description": "Caveats, one sentence each.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "state": {
+ "description": "failed: the lookup did not complete. invalid_input: the input was refused, so nothing was looked up. Neither is a finding.",
+ "enum": [
+ "failed",
+ "invalid_input"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "state",
+ "measured_at",
+ "method",
+ "coverage",
+ "freshness",
+ "notes",
+ "error"
+ ],
+ "type": "object"
+ }
+]