Files
archify-vscode-ext/vendor/archify/schemas/architecture.schema.json
T
root-at-skicandClaude Opus 5.5 22815a9940 Archify Diagram Viewer 0.1.0
VS Code extension that previews Archify diagrams from their JSON sources
(live, as you type) and opens rendered Archify HTML in a viewer tab.
Bundles the Archify 3.0.1 renderer and runs it on VS Code's Node runtime.
Adds validation diagnostics, JSON schema help, source-link navigation,
export saving, render-to-file and open-in-browser commands.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 12:44:15 +03:00

153 lines
5.9 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/tt-a1i/archify/schemas/architecture.schema.json",
"title": "Archify Architecture Diagram",
"type": "object",
"additionalProperties": false,
"required": ["schema_version", "diagram_type", "meta", "components"],
"properties": {
"schema_version": { "const": 1 },
"diagram_type": { "const": "architecture" },
"meta": {
"type": "object",
"additionalProperties": false,
"required": ["title", "output"],
"properties": {
"title": { "type": "string", "minLength": 1 },
"locale": { "$ref": "common.schema.json#/$defs/locale" },
"translations": { "$ref": "common.schema.json#/$defs/translations" },
"subtitle": { "type": "string" },
"output": { "$ref": "common.schema.json#/$defs/portableOutputPath" },
"animation": { "$ref": "common.schema.json#/$defs/animation" },
"visual_preset": { "$ref": "common.schema.json#/$defs/visualPreset" },
"quality_profile": { "$ref": "common.schema.json#/$defs/qualityProfile" },
"engineering_profile": { "enum": ["deployment-ownership"] },
"repository": { "$ref": "common.schema.json#/$defs/repository" },
"views": { "$ref": "common.schema.json#/$defs/guidedViews" },
"legend": {
"type": "object",
"additionalProperties": false,
"properties": {
"mode": { "$ref": "common.schema.json#/$defs/legendMode" },
"entries": {
"type": "object",
"additionalProperties": false,
"properties": {
"frontend": { "$ref": "common.schema.json#/$defs/legendEntry" },
"backend": { "$ref": "common.schema.json#/$defs/legendEntry" },
"database": { "$ref": "common.schema.json#/$defs/legendEntry" },
"cloud": { "$ref": "common.schema.json#/$defs/legendEntry" },
"security": { "$ref": "common.schema.json#/$defs/legendEntry" },
"messagebus": { "$ref": "common.schema.json#/$defs/legendEntry" },
"external": { "$ref": "common.schema.json#/$defs/legendEntry" }
}
}
}
},
"viewBox": {
"type": "array",
"prefixItems": [
{ "type": "number", "minimum": 320 },
{ "type": "number", "minimum": 240 }
],
"items": false,
"minItems": 2,
"maxItems": 2
}
}
},
"layout": {
"type": "object",
"additionalProperties": false,
"required": ["mode"],
"properties": {
"mode": { "enum": ["grid"] },
"origin": { "$ref": "common.schema.json#/$defs/point" },
"cols": { "type": "integer", "minimum": 1, "maximum": 12 },
"gapX": { "type": "number", "minimum": 0 },
"gapY": { "type": "number", "minimum": 0 },
"cellW": { "type": "number", "minimum": 40 },
"cellH": { "type": "number", "minimum": 24 }
}
},
"components": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "label"],
"properties": {
"id": { "$ref": "common.schema.json#/$defs/id" },
"type": { "$ref": "common.schema.json#/$defs/componentType" },
"label": { "type": "string", "minLength": 1 },
"sublabel": { "type": "string" },
"tag": { "type": "string" },
"icon": { "$ref": "common.schema.json#/$defs/nodeIcon" },
"brand": { "$ref": "common.schema.json#/$defs/brandMark" },
"sources": { "$ref": "common.schema.json#/$defs/sourceReferences" },
"row": { "type": "integer", "minimum": 0 },
"col": { "type": "integer", "minimum": 0 },
"pos": { "$ref": "common.schema.json#/$defs/point" },
"size": {
"type": "array",
"prefixItems": [
{ "type": "number", "exclusiveMinimum": 0 },
{ "type": "number", "exclusiveMinimum": 0 }
],
"items": false,
"minItems": 2,
"maxItems": 2
}
}
}
},
"boundaries": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["kind", "label", "wraps"],
"properties": {
"kind": { "enum": ["region", "security-group"] },
"label": { "type": "string", "minLength": 1 },
"wraps": {
"type": "array",
"minItems": 1,
"items": { "$ref": "common.schema.json#/$defs/id" }
},
"pad": { "type": "number", "minimum": 0 }
}
}
},
"connections": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["from", "to"],
"properties": {
"id": { "$ref": "common.schema.json#/$defs/id" },
"from": { "$ref": "common.schema.json#/$defs/id" },
"to": { "$ref": "common.schema.json#/$defs/id" },
"label": { "type": "string" },
"variant": { "$ref": "common.schema.json#/$defs/variant" },
"fromSide": { "$ref": "common.schema.json#/$defs/side" },
"toSide": { "$ref": "common.schema.json#/$defs/side" },
"route": { "enum": ["auto", "straight", "orthogonal-h", "orthogonal-v"] },
"via": {
"type": "array",
"items": { "$ref": "common.schema.json#/$defs/point" }
},
"labelAt": { "$ref": "common.schema.json#/$defs/point" },
"labelDx": { "type": "number" },
"labelDy": { "type": "number" },
"labelSegment": { "type": "integer", "minimum": 0 },
"width": { "$ref": "common.schema.json#/$defs/relationshipWidth" }
}
}
},
"cards": { "$ref": "common.schema.json#/$defs/cards" }
}
}