This GitHub repository contains the definition of the JSON schema for describing software architecture models based upon the C4 model, and is the data storage format used by the Structurizr tooling.
The JSON format is not designed to be authored manually - the Structurizr DSL is the recommended tool for creating a workspace.
In addition to the JSON schema, workspaces are also subject to the following rules, which are implemented by the Structurizr for Java library:
- Element and relationship IDs must be unique.
- View
key
andorder
properties must be unique across all views. - Software and people names must be unique.
- Container names must be unique within the context of a software system.
- Component names must be unique within the context of a container.
- Deployment node names must be unique with their parent context.
- Infrastructure node names must be unique with their parent context.
- All relationships from a source element to a destination element must have a unique description.