surface record schema
RAGE Surface (optional). Required: resource_id.
Properties
| property | type | required | notes |
|---|---|---|---|
kind |
const |
required |
must be "surface".
|
resource_id |
string |
required | the node_id this surface is on |
category |
string |
optional | surface class, e.g. public_endpoint, metadata, config_field, bootstrap_script |
emits_hint |
string |
optional | the edge/credential type a successful probe would yield |
evidence |
any |
optional | |
location |
string |
optional | |
severity |
enum |
optional |
one of low medium high critical .
|
surface_id |
string |
optional |
Additional properties are allowed - RAGE is forward-compatible; unknown fields are ignored.
Raw schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://rage.fail/schemas/0.1/surface.schema.json",
"title": "RAGE Surface (optional)",
"description": "An attack surface: a place on a resource where an attacker could gain a foothold or extract a credential (a probe target). Optional extension kind \u2014 consumers that don't understand it skip it.",
"type": "object",
"required": [
"kind",
"resource_id"
],
"additionalProperties": true,
"properties": {
"kind": {
"const": "surface"
},
"surface_id": {
"type": "string"
},
"resource_id": {
"type": "string",
"description": "the node_id this surface is on"
},
"category": {
"type": "string",
"description": "surface class, e.g. public_endpoint, metadata, config_field, bootstrap_script"
},
"emits_hint": {
"type": "string",
"description": "the edge/credential type a successful probe would yield"
},
"severity": {
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"location": {
"type": "string"
},
"evidence": {}
}
}