- Schema.org JSON-LD templates (product, event, local-business, faq) - Brand, UI, SEO, and decision guide rules - Working code snippets (vendor-card, schema-inject, deploy-webhook) - JSON schemas for project config validation - Client presets (slc-bride, default) - Self-update protocol with changelog tracking Made-with: Cursor
113 lines
3.1 KiB
JSON
113 lines
3.1 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "https://git.abundancepartners.app/abundance/ai-ops-templates/schemas/ai-cli.schema.json",
|
|
"title": "AI CLI Configuration",
|
|
"description": "Schema for per-project AI CLI configuration",
|
|
"type": "object",
|
|
"required": ["project", "infrastructure"],
|
|
"properties": {
|
|
"_meta": {
|
|
"type": "object",
|
|
"properties": {
|
|
"last_updated": { "type": "string", "format": "date-time" },
|
|
"version": { "type": "string" },
|
|
"updated_by": { "type": "string" },
|
|
"change_summary": { "type": "string" }
|
|
}
|
|
},
|
|
"project": {
|
|
"type": "string",
|
|
"description": "Project identifier matching the preset name"
|
|
},
|
|
"preset": {
|
|
"type": "string",
|
|
"description": "URL to the brand preset JSON file"
|
|
},
|
|
"brand": {
|
|
"type": "object",
|
|
"description": "Brand overrides (if different from preset)",
|
|
"properties": {
|
|
"colors": {
|
|
"type": "object",
|
|
"properties": {
|
|
"primary": { "type": "string" },
|
|
"secondary": { "type": "string" },
|
|
"background": { "type": "string" },
|
|
"foreground": { "type": "string" }
|
|
}
|
|
},
|
|
"fonts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"heading": { "type": "string" },
|
|
"body": { "type": "string" }
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"infrastructure": {
|
|
"type": "object",
|
|
"required": ["server"],
|
|
"properties": {
|
|
"server": {
|
|
"type": "string",
|
|
"description": "Server short name (e.g., slcbride, abundance)"
|
|
},
|
|
"server_ip": {
|
|
"type": "string",
|
|
"format": "ipv4"
|
|
},
|
|
"database": {
|
|
"type": "string",
|
|
"description": "Database identifier"
|
|
},
|
|
"coolify_app_id": {
|
|
"type": "string",
|
|
"description": "Coolify application UUID"
|
|
},
|
|
"coolify_url": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
}
|
|
},
|
|
"seo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"schema_templates": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["product", "event", "local-business", "faq"]
|
|
}
|
|
},
|
|
"internal_link_patterns": {
|
|
"type": "array",
|
|
"items": { "type": "string" }
|
|
},
|
|
"title_template": { "type": "string" },
|
|
"default_description": { "type": "string" }
|
|
}
|
|
},
|
|
"apis": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"base_url": { "type": "string", "format": "uri" },
|
|
"auth_type": { "type": "string", "enum": ["bearer", "api_key", "basic"] },
|
|
"env_key": { "type": "string" }
|
|
}
|
|
}
|
|
},
|
|
"features": {
|
|
"type": "object",
|
|
"additionalProperties": { "type": "boolean" }
|
|
},
|
|
"routes": {
|
|
"type": "object",
|
|
"additionalProperties": { "type": "string" }
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|