- Introduced AGENTS.md, README.md, TASKS.md, and implementation_plan.md for Vexer, detailing mission, responsibilities, key components, and operational notes. - Established similar documentation structure for Vulnerability Explorer and Zastava modules, including their respective workflows, integrations, and observability notes. - Created risk scoring profiles documentation outlining the core workflow, factor model, governance, and deliverables. - Ensured all modules adhere to the Aggregation-Only Contract and maintain determinism and provenance in outputs.
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
| {
 | |
|   "$id": "https://stella-ops.org/schemas/notify/notify-channel@1.json",
 | |
|   "$schema": "http://json-schema.org/draft-07/schema#",
 | |
|   "title": "Notify Channel",
 | |
|   "type": "object",
 | |
|   "required": [
 | |
|     "schemaVersion",
 | |
|     "channelId",
 | |
|     "tenantId",
 | |
|     "name",
 | |
|     "type",
 | |
|     "config",
 | |
|     "enabled",
 | |
|     "createdAt",
 | |
|     "updatedAt"
 | |
|   ],
 | |
|   "properties": {
 | |
|     "schemaVersion": {"type": "string", "const": "notify.channel@1"},
 | |
|     "channelId": {"type": "string"},
 | |
|     "tenantId": {"type": "string"},
 | |
|     "name": {"type": "string"},
 | |
|     "type": {
 | |
|       "type": "string",
 | |
|       "enum": ["slack", "teams", "email", "webhook", "custom"]
 | |
|     },
 | |
|     "displayName": {"type": "string"},
 | |
|     "description": {"type": "string"},
 | |
|     "config": {"$ref": "#/$defs/channelConfig"},
 | |
|     "enabled": {"type": "boolean"},
 | |
|     "labels": {"$ref": "#/$defs/stringMap"},
 | |
|     "metadata": {"$ref": "#/$defs/stringMap"},
 | |
|     "createdBy": {"type": "string"},
 | |
|     "createdAt": {"type": "string", "format": "date-time"},
 | |
|     "updatedBy": {"type": "string"},
 | |
|     "updatedAt": {"type": "string", "format": "date-time"}
 | |
|   },
 | |
|   "additionalProperties": false,
 | |
|   "$defs": {
 | |
|     "channelConfig": {
 | |
|       "type": "object",
 | |
|       "required": ["secretRef"],
 | |
|       "properties": {
 | |
|         "secretRef": {"type": "string"},
 | |
|         "target": {"type": "string"},
 | |
|         "endpoint": {"type": "string", "format": "uri"},
 | |
|         "properties": {"$ref": "#/$defs/stringMap"},
 | |
|         "limits": {"$ref": "#/$defs/channelLimits"}
 | |
|       },
 | |
|       "additionalProperties": false
 | |
|     },
 | |
|     "channelLimits": {
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "concurrency": {"type": "integer", "minimum": 1},
 | |
|         "requestsPerMinute": {"type": "integer", "minimum": 1},
 | |
|         "timeout": {
 | |
|           "type": "string",
 | |
|           "pattern": "^P(T.*)?$",
 | |
|           "description": "ISO 8601 duration"
 | |
|         },
 | |
|         "maxBatchSize": {"type": "integer", "minimum": 1}
 | |
|       },
 | |
|       "additionalProperties": false
 | |
|     },
 | |
|     "stringMap": {
 | |
|       "type": "object",
 | |
|       "patternProperties": {
 | |
|         ".*": {"type": "string"}
 | |
|       },
 | |
|       "additionalProperties": false
 | |
|     }
 | |
|   }
 | |
| }
 |