{"$defs":{"CapabilityDescriptor":{"additionalProperties":false,"properties":{"capability_id":{"title":"Capability Id","type":"string"},"command_ids":{"items":{"type":"string"},"title":"Command Ids","type":"array"},"input_kinds":{"items":{"type":"string"},"title":"Input Kinds","type":"array"},"status":{"enum":["preview","beta","stable"],"title":"Status","type":"string"},"summary":{"title":"Summary","type":"string"},"title":{"title":"Title","type":"string"}},"required":["capability_id","title","summary","status","command_ids","input_kinds"],"title":"CapabilityDescriptor","type":"object"},"CategoryDescriptor":{"additionalProperties":false,"properties":{"category_id":{"title":"Category Id","type":"string"},"label":{"title":"Label","type":"string"},"order":{"title":"Order","type":"integer"},"topics":{"items":{"$ref":"#/$defs/TopicDescriptor"},"title":"Topics","type":"array"}},"required":["category_id","label","order","topics"],"title":"CategoryDescriptor","type":"object"},"CommandDescriptor":{"additionalProperties":false,"properties":{"arguments":{"items":{"$ref":"#/$defs/ParameterDescriptor"},"title":"Arguments","type":"array"},"command_id":{"title":"Command Id","type":"string"},"options":{"items":{"$ref":"#/$defs/ParameterDescriptor"},"title":"Options","type":"array"},"path":{"items":{"type":"string"},"title":"Path","type":"array"},"summary":{"title":"Summary","type":"string"}},"required":["command_id","path","summary","options","arguments"],"title":"CommandDescriptor","type":"object"},"ExampleDescriptor":{"additionalProperties":false,"properties":{"fixture_id":{"minLength":1,"title":"Fixture Id","type":"string"},"flagged":{"minLength":1,"title":"Flagged","type":"string"},"language":{"enum":["json","text","toml","yaml"],"title":"Language","type":"string"},"passes":{"minLength":1,"title":"Passes","type":"string"}},"required":["fixture_id","language","flagged","passes"],"title":"ExampleDescriptor","type":"object"},"JSONScalar":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"JSONValue":{"anyOf":[{"$ref":"#/$defs/JSONScalar"},{"items":{"$ref":"#/$defs/JSONValue"},"type":"array"},{"additionalProperties":{"$ref":"#/$defs/JSONValue"},"type":"object"}]},"LifecycleDescriptor":{"additionalProperties":false,"properties":{"deprecated_in":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Deprecated In"},"introduced_in":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Introduced In"},"removal_not_before":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Removal Not Before"},"replacement_rule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Replacement Rule Id"},"status":{"enum":["experimental","beta","stable","deprecated"],"title":"Status","type":"string"}},"required":["status"],"title":"LifecycleDescriptor","type":"object"},"ParameterDescriptor":{"additionalProperties":false,"properties":{"choices":{"items":{"type":"string"},"title":"Choices","type":"array"},"default":{"$ref":"#/$defs/JSONValue"},"help":{"title":"Help","type":"string"},"names":{"items":{"type":"string"},"title":"Names","type":"array"},"repeatable":{"title":"Repeatable","type":"boolean"},"required":{"title":"Required","type":"boolean"},"value_type":{"title":"Value Type","type":"string"}},"required":["names","value_type","required","default","choices","help","repeatable"],"title":"ParameterDescriptor","type":"object"},"PolicyDescriptor":{"additionalProperties":false,"properties":{"bindings":{"items":{"$ref":"#/$defs/PolicyRuleBinding"},"title":"Bindings","type":"array"},"policy_id":{"title":"Policy Id","type":"string"},"policy_version":{"title":"Policy Version","type":"integer"},"title":{"title":"Title","type":"string"}},"required":["policy_id","policy_version","title","bindings"],"title":"PolicyDescriptor","type":"object"},"PolicyRuleBinding":{"additionalProperties":false,"properties":{"classification":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Classification"},"enforcement_maturity":{"enum":["advisory","enforced"],"title":"Enforcement Maturity","type":"string"},"evidence_level":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Evidence Level"},"precedence":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Precedence"},"rule_id":{"title":"Rule Id","type":"string"},"rule_version":{"title":"Rule Version","type":"integer"},"severity":{"enum":["warning","error"],"title":"Severity","type":"string"}},"required":["rule_id","rule_version","severity","enforcement_maturity"],"title":"PolicyRuleBinding","type":"object"},"ProductDescriptor":{"additionalProperties":false,"properties":{"distribution":{"title":"Distribution","type":"string"},"executables":{"items":{"type":"string"},"title":"Executables","type":"array"},"name":{"title":"Name","type":"string"},"product_id":{"const":"repo-lint","title":"Product Id","type":"string"},"repository_url":{"title":"Repository Url","type":"string"},"summary":{"title":"Summary","type":"string"},"title":{"title":"Title","type":"string"},"website_url":{"title":"Website Url","type":"string"}},"required":["product_id","name","title","summary","distribution","executables","repository_url","website_url"],"title":"ProductDescriptor","type":"object"},"ProvenanceDescriptor":{"additionalProperties":false,"properties":{"content_digest":{"title":"Content Digest","type":"string"},"distribution":{"title":"Distribution","type":"string"},"package_version":{"title":"Package Version","type":"string"},"policy_api_version":{"title":"Policy Api Version","type":"integer"},"repository_url":{"title":"Repository Url","type":"string"}},"required":["distribution","package_version","policy_api_version","repository_url","content_digest"],"title":"ProvenanceDescriptor","type":"object"},"RemediationDescriptor":{"additionalProperties":false,"properties":{"steps":{"items":{"minLength":1,"type":"string"},"minItems":1,"title":"Steps","type":"array"},"summary":{"minLength":1,"title":"Summary","type":"string"},"validation":{"items":{"minLength":1,"type":"string"},"minItems":1,"title":"Validation","type":"array"}},"required":["summary","steps","validation"],"title":"RemediationDescriptor","type":"object"},"RuleDescriptor":{"additionalProperties":false,"properties":{"category_id":{"title":"Category Id","type":"string"},"default_severity":{"enum":["warning","error"],"title":"Default Severity","type":"string"},"detects":{"minLength":1,"title":"Detects","type":"string"},"evidence_required":{"items":{"minLength":1,"type":"string"},"minItems":1,"title":"Evidence Required","type":"array"},"examples":{"items":{"$ref":"#/$defs/ExampleDescriptor"},"minItems":1,"title":"Examples","type":"array"},"false_positive_controls":{"items":{"type":"string"},"title":"False Positive Controls","type":"array"},"impact":{"minLength":1,"title":"Impact","type":"string"},"kind":{"const":"rule","default":"rule","title":"Kind","type":"string"},"lifecycle":{"$ref":"#/$defs/LifecycleDescriptor"},"non_goals":{"items":{"type":"string"},"title":"Non Goals","type":"array"},"references":{"items":{"pattern":"^https://","type":"string"},"title":"References","type":"array"},"remediation":{"$ref":"#/$defs/RemediationDescriptor"},"rule_id":{"pattern":"^[a-z0-9][a-z0-9-]*(/[a-z0-9][a-z0-9-]*){2,}$","title":"Rule Id","type":"string"},"rule_version":{"title":"Rule Version","type":"integer"},"source":{"$ref":"#/$defs/SourcePointer"},"summary":{"minLength":1,"title":"Summary","type":"string"},"tags":{"items":{"type":"string"},"title":"Tags","type":"array"},"title":{"maxLength":72,"minLength":1,"title":"Title","type":"string"},"topic_id":{"title":"Topic Id","type":"string"},"upstream":{"items":{"type":"string"},"title":"Upstream","type":"array"}},"required":["rule_id","rule_version","title","category_id","topic_id","tags","default_severity","lifecycle","summary","detects","impact","remediation","non_goals","evidence_required","upstream","references","examples","false_positive_controls","source"],"title":"RuleDescriptor","type":"object"},"SafetyDescriptor":{"additionalProperties":false,"properties":{"inspection_input":{"title":"Inspection Input","type":"string"},"mutation":{"title":"Mutation","type":"boolean"},"network_default":{"title":"Network Default","type":"boolean"},"network_mode":{"title":"Network Mode","type":"string"},"repository_code_execution":{"title":"Repository Code Execution","type":"boolean"}},"required":["mutation","repository_code_execution","network_default","network_mode","inspection_input"],"title":"SafetyDescriptor","type":"object"},"SchemaDescriptor":{"additionalProperties":false,"properties":{"cli_selector":{"title":"Cli Selector","type":"string"},"document":{"$ref":"#/$defs/JSONValue"},"media_type":{"const":"application/schema+json","title":"Media Type","type":"string"},"schema_id":{"title":"Schema Id","type":"string"},"schema_version":{"title":"Schema Version","type":"integer"},"title":{"title":"Title","type":"string"}},"required":["schema_id","title","schema_version","media_type","cli_selector","document"],"title":"SchemaDescriptor","type":"object"},"SourcePointer":{"additionalProperties":false,"properties":{"path":{"minLength":1,"pattern":"^(?!/|~)(?!.*(?:^|/)\\.\\.(?:/|$)).+$","title":"Path","type":"string"},"symbol":{"minLength":1,"title":"Symbol","type":"string"}},"required":["path","symbol"],"title":"SourcePointer","type":"object"},"TombstoneDescriptor":{"additionalProperties":false,"properties":{"removed_in":{"title":"Removed In","type":"string"},"replacement_rule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Replacement Rule Id"},"rule_id":{"title":"Rule Id","type":"string"}},"required":["rule_id","removed_in"],"title":"TombstoneDescriptor","type":"object"},"TopicDescriptor":{"additionalProperties":false,"properties":{"label":{"title":"Label","type":"string"},"order":{"title":"Order","type":"integer"},"topic_id":{"title":"Topic Id","type":"string"}},"required":["topic_id","label","order"],"title":"TopicDescriptor","type":"object"}},"$id":"https://repo-standards.sarj.ai/schema/catalog-v2.schema.json","additionalProperties":false,"properties":{"capabilities":{"items":{"$ref":"#/$defs/CapabilityDescriptor"},"title":"Capabilities","type":"array"},"catalog_version":{"title":"Catalog Version","type":"string"},"categories":{"items":{"$ref":"#/$defs/CategoryDescriptor"},"title":"Categories","type":"array"},"commands":{"items":{"$ref":"#/$defs/CommandDescriptor"},"title":"Commands","type":"array"},"kind":{"const":"repo-lint.catalog","default":"repo-lint.catalog","title":"Kind","type":"string"},"policies":{"items":{"$ref":"#/$defs/PolicyDescriptor"},"title":"Policies","type":"array"},"product":{"$ref":"#/$defs/ProductDescriptor"},"provenance":{"$ref":"#/$defs/ProvenanceDescriptor"},"rules":{"items":{"$ref":"#/$defs/RuleDescriptor"},"title":"Rules","type":"array"},"safety":{"$ref":"#/$defs/SafetyDescriptor"},"schema_version":{"const":2,"default":2,"title":"Schema Version","type":"integer"},"schemas":{"items":{"$ref":"#/$defs/SchemaDescriptor"},"title":"Schemas","type":"array"},"tombstones":{"default":[],"items":{"$ref":"#/$defs/TombstoneDescriptor"},"title":"Tombstones","type":"array"}},"required":["catalog_version","product","provenance","safety","capabilities","categories","policies","rules","commands","schemas"],"title":"Catalog","type":"object"}
