32 lines
1.6 KiB
JSON
32 lines
1.6 KiB
JSON
|
|
{
|
||
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||
|
|
"$id": "whitehat-engagement/v1",
|
||
|
|
"type": "object",
|
||
|
|
"additionalProperties": true,
|
||
|
|
"required": [
|
||
|
|
"engagement_id", "authorization_id", "authorizer", "approved_at", "expires_at",
|
||
|
|
"target", "target_owner", "environment", "source", "routes", "fixture_ids",
|
||
|
|
"credential_lane", "credential_role", "credential_max_ttl_seconds", "techniques",
|
||
|
|
"prohibited_techniques", "rate_limit_per_minute", "max_concurrency", "window_start",
|
||
|
|
"window_end", "operator_contact", "abort_contact", "posture_claim", "attacker_model",
|
||
|
|
"finding_destination", "target_owner_acknowledged_at"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"engagement_id": {"type": "string", "minLength": 1},
|
||
|
|
"authorization_id": {"type": "string", "minLength": 1},
|
||
|
|
"approved_at": {"type": "string", "format": "date-time"},
|
||
|
|
"expires_at": {"type": "string", "format": "date-time"},
|
||
|
|
"window_start": {"type": "string", "format": "date-time"},
|
||
|
|
"window_end": {"type": "string", "format": "date-time"},
|
||
|
|
"target_owner_acknowledged_at": {"type": "string", "format": "date-time"},
|
||
|
|
"environment": {"enum": ["fixture", "build", "staging", "production"]},
|
||
|
|
"routes": {"type": "array", "minItems": 1, "items": {"type": "string"}},
|
||
|
|
"fixture_ids": {"type": "array", "minItems": 1, "items": {"type": "string"}},
|
||
|
|
"techniques": {"type": "array", "minItems": 1, "items": {"type": "string"}},
|
||
|
|
"max_concurrency": {"const": 1},
|
||
|
|
"rate_limit_per_minute": {"type": "integer", "minimum": 1, "maximum": 60},
|
||
|
|
"finding_destination": {"const": "risk-nexus"}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|