Infrastructure Description Format Reference
Common Properties
Every entry has to have these properties
Property | Default | Description |
---|---|---|
id | required | A unique ID for this entry - used by other entries to reference this one as e.g. a connection target. The ID specified here will be applied as a component or area id within the generated diagram, allowing for further interaction with the generated component through the API. |
type | required | The type for this entry. Can be "component", "group" or "connection" |
Component
Specifies a single component / Arcentry object
Property | Default | Description |
---|---|---|
componentType | required | A component id, e.g. "database.postgres", "security.aws-amazon-cognito" or "generic.server". |
groups | [] | A list of group ids this component is a child of. |
connections | [] | A list of component or group ids this component is connected to. |
label | null | A label to be displayed underneath this component. |
opacity | 1 | A value that determines the opacity of a component from 0 (fully transparent) to 1(fully opaque) |
rotation | 0 | The rotation of the component in radians (multiples of PI). E.g. 0, 1.5707963, 3.1415926, 4.712388 |
positionType | auto | How the component should be positioned. If omitted or set to "auto" Arcentry will position the component for you. If set to "relative" the component position can be specified relative to another component, if set to "absolute" the absolute position can be specified. Any positionType other than "auto" requires positionX and positionY to be set. If set to "relative", "positionRelativeTo" is required. |
positionRelativeTo | required | The ID of a component this component should be positioned relative to. Required if "positionType" is set to "relative". |
positionX | required | The absolute X coordinate of this component if "positionType": "absolute" or the relative X offset to the target component if "positionType": "relative". |
positionY | required | The absolute Y coordinate of this component if "positionType": "absolute" or the relative Y offset to the target component if "positionType": "relative". |
positionPointX | required | This property defines the horizontal point on a group's border a component is positioned relative to. It is only required if "positionType" is "relative" and "positionRelativeTo" points to a group. Possible values are "left", "middle" or "right". |
positionPointY | required | This property defines the vertical point on a group's border a component is positioned relative to. It is only required if "positionType" is "relative" and "positionRelativeTo" points to a group. Possible values are "top", "middle" or "bottom". |
positionPointY | required | The absolute Y coordinate of this component if "positionType": "absolute" or the relative Y offset to the target component if "positionType": "relative". |
meta-* | N/A | A meta-data entry, e.g. meta-instance-id or meta-machine-size. Any entry starting with meta- will be added to the component's meta-data. For JSON based config it is also possible to specify meta-data as map, e.g. "meta": {"some-key": "some-value"} |
showMetaData | false | If true, meta-data will be plotted onto the diagram, subject to the property settings below. Alternatively, showOnCanvas can be used to specify a subset of meta-data to be displayed on the diagram. |
showOnCanvas | all | A comma-separated list of meta-data keys to be displayed on the diagram underneath the component. If your component has e.g. meta-cpu, meta-ram and meta-storage-size, but you only wish to display cpu and ram, specify "showOnCanvas": "cpu, ram" |
showInTooltip | all | A comma-separated list of meta-data keys to be displayed in the context-menu/tooltip on embedded diagrams or in presentation-mode. If your component has e.g. meta-cpu, meta-ram and meta-storage-size, but you only wish to display cpu and ram, specify "showInTooltip": "cpu, ram" |
showMetaDataKeys | true | If true, the keys (e.g. cpu, ram, machine size etc) are displayed as small, grey labels above the meta-data values. |
metaDataFontSize | 0.25 | The font-size for the meta-data values displayed on the diagram. Keys will be displayed at half that font-size. |
metaDataTextAlign | "center" | Text align for meta-data displayed on the diagram. Can be "left", "center" or "right". |
Generic / Customizable Components
In addition to the general component properties documented above, generic components can be styled using additional properties. Components supporting these properties can be recognized by ids starting with generic., e.g. generic.database or generic.server.
Property | Default | Description |
---|---|---|
backgroundColor | #FFFFFF | Background color for the component in hex-notation, e.g. "#FF0000". |
primaryColor | #CCCCCC | Accent color for the component in hex-notation, e.g. "#FF0000". |
secondaryColor | #CCCCCC | A small number of components supports accents in a secondary color in hex-notation, e.g. "#FF0000". |
icon | null | The name of an icon to be displayed on the component, e.g. "chart-bar", or "cloud". Please note: when using an image, set icon to null and specify an "imagePath" instead. |
iconColor | #333333 | The color for the icon, only applicable if "icon": true. |
imagePath | null | Path to an image that was previously uploaded to Arcentry. If imagePath is specified, make sure that icon is set to null. "icon": true. |
imageSize | 1 | Determines the size of the icon or image relative to the size of the component. Goes from 1 (full sized) to 0.001 (pretty much invisibly tiny). |
Group
Groups can be styled in terms of appearance, style and label.
Property | Default | Description |
---|---|---|
label | null | A label to be displayed for the group. |
labelStyle | "block" | Labels can either be displayed as "block" - large labels with a colorful background that extrude at the bottom of the group or "inline" - smaller, more flexible text that's displayed on or near the group's border. |
lineColor | automatic | The color for lines and block label backgrounds. If no color is specified, Arcentry will select a constant color by hashing the root group's ID. |
lineWidth | 0.05 | The width of the line surrounding the group. |
lineDash | solid | The style of the line, can be "solid", "dashed" or "dotted". |
fillColor | #FFFFFF | The fill color for the main area of the group. |
areaType | 0 | Determines whether to display a wall around the group to indicate a security zone. Use 0 for no wall or 1 for a wall. |
wallHeight | 2 | If areaType is set to 1, this value determines the height of the wall. |
wallColor | #CCCCCC | If areaType is set to 1, this value determines the color of the wall. |
labelFontColor | #FFFFFF (block) / #333333 (inline) | The font color for the label. |
labelFontSize | 0.5 (block) / 0.2 (inline) | The font size for the label. |
labelAlign | right | Only applicable if labelStyle is inline. Possible values are "left", "center" or "right". |
labelPosition | bottom | Only applicable if labelStyle is inline. Possible values are "top" or "bottom". |
labelPlacementOnLine | on | Only applicable if labelStyle is inline. Determines where the label is placed in relation to the line. Possible values are "above", "on" or "below". |
labelBold | true | Toggle bold on or off. |
labelItalic | false | Toggle italic on or off. |
labelFont | Arcentry Font | The font family for the label. The specified font needs to be installed on the target system. |
labelOutlineColor | #FFFFFF | Color for the outline surrounding the label text. |
labelOutlineWidth | 0.075 | The width of the outline surrounding the label text. |
Connection
Arcentry allows to specify additional settings for connections. Similar to groups, the connections themselves are specified using the connections property of components and groups.
Property | Default | Description |
---|---|---|
from | required | The ID of the component or group the connection originates from. |
to | required | The ID of the component or group the connection points to. |
arrowStart | false | Whether an arrow should point at the start element. |
arrowEnd | false | Whether an arrow should point at the target element. |
lineWidth | 0.5 | The width of the line indicating the connection. |
lineColor | #E61898 | The color of the line indicating the connection. |
lineDash | solid | The style of the line, can be "solid", "dashed" or "dotted". |
component | null | The ID of an optional component to be displayed at the center of the longest segment of the connection - e.g. "database.postgres", "security.aws-amazon-cognito" or "generic.server". |
label | null | If component is specified, this adds a label to the component. |