{ "$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"} } }