- structurizr-export: Adds the
addSkinParam()method back to the PlantUML exporters.
- structurizr-client: Adds a
getWorkspaceAsJson()toWorkspaceApiClient. - structurizr-client: Adds branches and users information to the admin API response.
- structurizr-core: Fixes #449 (allow text/plain content types when loading themes).
- structurizr-autolayout: Adds support for custom padding view/viewset properties:
structurizr.groupPadding,structurizr.boundaryPadding, andstructurizr.deploymentNodePadding. - structurizr-core: Removes support for deprecated enterprise and location concepts.
- structurizr-core: Adds support for filtered deployment views (#409).
- structurizr-core: Image views can have separate images for light and dark color schemes.
- structurizr-component: Fixes #437 (Make ComponentFinder.run() not fail on empty Set).
- structurizr-dsl: Adds support for
iconPositionon element styles (options areTop,Bottom,Left). - structurizr-dsl: Adds support for defining element and relationship styles for light and dark color schemes.
- structurizr-dsl: Added
Bucket,Shell, andTerminalshapes. - structurizr-dsl: Adds an
instanceOfkeyword as an alternative forsoftwareSystemInstanceandcontainerInstance. - structurizr-dsl: Relationships to/from software system/container instances can be now defined by using the software system/container identifier.
- structurizr-dsl: Fixes #435 (Relationship archetype not applied to implicit-source relationships).
- structurizr-dsl: Adds a new operator (
-/>) for removing relationships between software system/container instances, with a view to redefining them via infrastructure nodes. - structurizr-dsl: Adds support for a
jumpproperty on relationship styles. - structurizr-dsl: PlantUML, Mermaid, and Kroki image views can now be defined by an inline source block.
- structurizr-dsl: Constants and variables are now inherited when extending a DSL workspace.
- structurizr-dsl: DSL source is only stored in the JSON workspace when the DSL is deemed as "portable" (i.e. no file references, plugins, scripts).
- structurizr-dsl: Deprecates
StructurizrDSLParser.setRestricted(boolean)in favour of finer-grained features. - structurizr-dsl: Identifiers are no longer stored as lower case in the JSON (the
structurizr.dsl.identifierproperty on elements and relationships). - structurizr-export: Removes support for deprecated enterprise and location concepts.
- structurizr-export: PlantUML exporters - replaces skinparams with styles.
- structurizr-export: PlantUML exporters - adds support for dark mode exports.
- structurizr-export: PlantUML exporters - adds order number to relationships in sequence diagrams.
- structurizr-export: StructurizrPlantUMLExporter - adds technology to sequence diagrams (#425)
- structurizr-import: Adds support for
plantuml.inline,mermaid.inline,kroki.inline, andimage.inlineproperties to inline the resulting PNG/SVG file into the workspace. - structurizr-inspection: Adds a way to disable inspections via a workspace property named
structurizr.inspection(falseto disable). - structurizr-inspection: Default inspector adds a summary of error/warning/info/ignore counts as workspace properties.
- structurizr-inspection: Fixes
model.deploymentnode.technology(it was checking the description property rather than technology). - structurizr-inspection: Fixes a bug preventing inspection severity to be specified via linked relationships.
- structurizr-client: Fixes #413 (Cannot push to main branch, when branch feature is activated).
- structurizr-dsl: Allows archetypes to be used via workspace extension.
- structurizr-dsl: Adds archetype support for custom elements.
- structurizr-dsl: Fixes #399 (Archetype tags sometimes missing).
- structurizr-dsl: Fixes #392 (SVG not supported in base 64 encoding not mentioned in documentation).
- structurizr-dsl: Adds support for setting the symbols surrounding element/relationship metadata used when rendering diagrams.
- structurizr-dsl: Fixes #408 (Animation steps cannot be added to deployment views via static structure element references).
- structurizr-dsl: Adds support for specifying view animation steps via element expressions.
- structurizr-dsl: Fixes #404 (deploymentGroup does not obey !identifiers hierarchical).
- structurizr-export: Adds support for rank and node separation to the StructurizrPlantUMLExporter.
- structurizr-dsl: Fixes #374 (!identifiers hierarchical isn't propagated when extending a workspace).
- structurizr-dsl: Adds the ability to use the
groupkeyword inside a component definition, to set the group name of that component. - structurizr-dsl: Adds the ability to use the
groupkeyword inside the component finder strategyforEachblock. - structurizr-dsl: Adds a reluctant version of
include *(include *?) for system context views that only adds relationships to/from the scoped software system. - structurizr-dsl: Adds a reluctant version of
include *(include *?) for container views that only adds relationships to/from the containers in the scoped software system. - structurizr-dsl: Adds a reluctant version of
include *(include *?) for component views that only adds relationships to/from the components in the scoped container. - structurizr-dsl: Removes deprecated
!refand!extendkeywords. - structurizr-dsl: Adds support for Java style
"""multi-line text blocks. - structurizr-dsl: Adds support for defining element and relationship archetypes.
- structurizr-core: Fixes #362 (Ordering of replicated relationships in deployment environment is non-deterministic).
- structurizr-dsl: Adds support for
element!=expressions. - structurizr-dsl:
!elementsand!relationshipsnow work inside deployment environment blocks. - structurizr-dsl:
descriptionandtechnologynow work inside!elementsblocks.
- structurizr-client: Workspace archive file now includes the branch name in the filename.
- structurizr-component: Adds
ImplementationWithPrefixSupportingTypesStrategy. - structurizr-component: Adds
ImplementationWithSuffixSupportingTypesStrategy. - structurizr-dsl: Adds
supportingTypes implementation-prefix <prefix>. - structurizr-dsl: Adds
supportingTypes implementation-suffix <suffix>. - structurizr-dsl: Fixes #346 (
// comment \joins lines). - structurizr-dsl: Anonymous identifiers for relationships (i.e. relationships not assigned to an identifier) are excluded from the model, and therefore also excluded from the serialised JSON.
- structurizr-dsl: Adds a way to configure whether the DSL source is retained via a workspace property named
structurizr.dsl.source-true(default) orfalse. - structurizr-dsl: Adds the ability to define a PlantUML/Mermaid image view that is an export of a workspace view.
- structurizr-dsl: Adds support for
url,properties, andperspectivesnested inside!elementsand!relationships. - structurizr-dsl: Fixes #347 (
->container->expression does not work as expected in deployment view). - structurizr-dsl: Adds support for
!elements group(#351).
- structurizr-client: Adds support to get/put workspace branches on the cloud service and on-premises installation.
- structurizr-core: Adds name-value properties to dynamic view relationship views (#316).
- structurizr-component: Initial rewrite of the original
structurizr-analysislibrary - provides a way to automatically find components in a Java codebase. - structurizr-dsl: Removes deprecated
!constantkeyword. - structurizr-dsl: Adds name-value properties to dynamic view relationship views.
- structurizr-dsl: Fixes #312 (!include doesn't work with files encoded as UTF-8 BOM).
- structurizr-dsl: Adds a way to explicitly specify the order of relationships in dynamic views.
- structurizr-dsl: Adds support for element technology expressions (e.g.
element.technology==Javaandelement.technology!=Java). - structurizr-dsl: Deprecates
!refand!extend. - structurizr-dsl: Adds an
!elementkeyword that can be used to find a single element by identifier or canonical name (replaces!refand!extend). - structurizr-dsl: Adds an
!elementskeyword that can be used to find a set of elements via an expression. - structurizr-dsl: Adds an
!relationshipkeyword that can be used to find a single relationship by identifier (replaces!refand!extend). - structurizr-dsl: Adds a
!relationshipskeyword that can be used to find a set of relationships via an expression. - structurizr-dsl: Adds a DSL wrapper around the
structurizr-componentcomponent finder (!components). - structurizr-dsl: Adds support for local theme files to be specified via
theme(#331). - structurizr-dsl: An exception is now thrown when trying to use disallowed features in restricted mode (e.g.
!docs,!include <file>, etc). - structurizr-export: Adds support for icons to the Ilograph exporter (#332).
- structurizr-export: Adds support for imports to the Ilograph exporter (#332).
- structurizr-export: Fixes #337 (Malformed subgraph name in Mermaid render).
- structurizr-dsl: Adds support for element/relationship property expressions (#297).
- structurizr-dsl: Adds a way to specify the implied relationships strategy via a fully qualified class name when using
!impliedRelationships. - structurizr-dsl: Adds the ability to include single files as documentation (#303).
- structurizr-core: Fixes #306 (Workspace.trim() is not correctly removing relationships when the destination of a relationship is removed from the workspace).
- structurizr-core: Fixes #298 (Unknown model item type on 'element').
- structurizr-core: Adds better backwards compatibility to deal with old workspaces and those created by third party tooling that are missing view
orderproperty on views. - structurizr-export: Fixes #263 (C4PlantUMLExporter not following C4-PlantUML best practices with c4plantuml.tags true).
- structurizr-core: Fixes problem with ordering of relationship view vertices.
- structurizr-core:
ViewSet.isEmpty()was missing a check for image views. - structurizr-core: Promotes
ModelView.copyLayoutInformationFrom()to be public, to allow individual view layout information to be merged. - structurizr-client: Fixes #257 (Serialization to JSON is not deterministic).
- structurizr-dsl: Fixes #252 (DSL parser does not seem to handle curly brackets balance).
- structurizr-dsl: Deprecates
!constant, adds!constand!var(see #253). - structurizr-export: Fixes #258 (Plantuml renderer: Group and system of same name yields puml code resulting in error).
- structurizr-core: Removes deprecated concepts - enterprise and software system/person location.
- structurizr-core: Adds
Workspace.trim()to trim a workspace of unused elements (i.e. those not associated with any views). - structurizr-core: Adds support for SVG image views (#249).
- structurizr-core: View keys will be automatically generated if not specified.
- structurizr-client: Removes
StructurizrClient(useWorkspaceApiClientinstead). - structurizr-client: Merges https://github.com/structurizr/java/pull/238 (fix: re-enable system properties for theme http client).
- structurizr-dsl: Removes
enterprisekeyword. - structurizr-dsl: Adds
!decisionsas a synonym for!adrs. - structurizr-dsl: Allows
!identifiersto be used insidemodel. - structurizr-dsl: Fixes #233 (Implied relationships not configured correctly when DSL workspace extends a JSON workspace).
- structurizr-import: Adds support for importing decisions managed by Log4brains.
- structurizr-import: Adds support for importing decisions in MADR format.
- structurizr-import: Fixes #251 (Importing docs fails on files without extension).
- structurizr-inspection: Initial version.