ViewSet.getViews()
now includes all views.ViewSet.getViewWithKey()
is now public.
- Breaking change: Renamed
com.structurizr.view.View
tocom.structurizr.view.ModelView
. - Added support for "image views".
- Added a
Window
shape. ThemeUtils.toJson()
now includes the workspace branding logo and font in the resulting theme.
- Fixes #196 (Named colours are case-sensitive).
- Fixes #191 (Layout of relationships is reset when changing the description).
- Adds support for using (CSS/HTML) named colors instead of hex color codes (#192).
- Fixes case-sensitivity inconsistencies related to element names and relationship descriptions (#183).
- Adds support for setting deployment node instances to positive integers or a range (e.g. 0..1, 0..N, 0.., 1..N, 1.., 5..10, etc).
- Upgraded dependencies.
- Adds name-value properties to views.
- Adds support for element style stroke widths.
- Updates some transitive dependencies.
- Adds support for element icons being specified as filenames (rather than full URLs) in themes.
- Adds some additional functionality for getting and finding element/relationship styles.
- Adds documentation section filenames into the model.
- Adds support for custom elements on dynamic views.
- Enables
structurizr-core
to be used as a transitive dependency by consumers ofstructurizr-client
.
- Adds a helper method (
AbstractImpliedRelationshipsStrategy.createImpliedRelationship
) to create implied relationships, which can then be used by custom implementations. - Provides a way to add specific relationships to dynamic views.
- Adds support for name/value properties on element and relationship styles.
- Adds support for sorting views by the order in which they are created.
- Renamed
Decision.Link.type
toDecision.Link.description
.
- Breaking API changes to how documentation and decisions are managed.
- Moved documentation importers/templates to structurizr-documentation.
- Moved examples to structurizr-examples
- Removal of deprecated
Model.addImplicitRelationships()
method.
- Fixes #167 (ImpliedRelationship Strategy replication of URL and perspectives).
- Makes the
Decision.setContent()
method public, to allow pre-processing of content before workspace upload/rendering.
- Makes the
Section.setContent()
method public, to allow pre-processing of content before workspace upload/rendering.
- Adds support for different relationship line styles (solid, dashed, dotted).
- Adds the ability to indicate that individual views should not merge layout from remotes.
- Adds name/value properties to the view set configuration.
- Promotes a couple of methods to be public; no functional changes.
- Adds the implied relationships functionality for custom elements.
- "addDefaultElements" will now also add any connected custom elements.
- Adds support for relationships from deployment nodes to infrastructure nodes.
- Adds support for software system/container instances in multiple deployment groups.
- Added validation logic to reject unsupported image data URIs.
- Fixes #166 (ContainerInstance/SoftwareSystemInstance and auto-generation of deployment diagram).
- Provides a way to store view dimensions.
- Bug fixes to prevent parents and children to both be added to container/component views.
- Added an
addTheme
method onConfiguration
. - Removed the
addDefaultStyles
method onStyles
.
- Adds a
Diamond
shape.
- Adds a
findTerminology
method on theTerminology
class. Styles.findElementStyle
better mirrors how the Structurizr web renderer deals with element styling.
- Adds support for adding individual infrastructure nodes, software system instances, and container instances to a deployment view.
- Adds support for removing software system instances from deployment views.
- Improved support for themes (e.g. when exporting to PlantUML), which now works the same as described at Structurizr - Themes.
- Adds support for "deployment groups", providing a way to scope how software system/container instance relationships are replicated when added to deployment nodes. breaking change
- Adds support for custom elements and custom views (experimental).
- Bug fixes and improved workspace validation.
- Bug fixes.
- Bug fixes.
- Removes the dynamic view restrictions related to adding containers/components outside the scoped software system/container.
- Adds an "externalBoundariesVisible" property to DynamicView, so that external software system/container boundaries can be shown/hidden.
- Enhanced the rules relating to whether elements can be added to a view or not.
- Enhanced the logic to merge layout information of elements on views.
- When adding a relationship to a dynamic view, the first relationship between the source and destination would be chosen, even if there are multiple relationships with different technologies. This release adds a way to indicate which relationship (based upon technology) should be chosen.
- Suppress description warnings for software system instances.
- Resolves an issue with the AutomaticDocumentationTemplate, where images were being included as documentation content.
- Added a "recursive" option to the AutomaticDocumentationTemplate, so that sub-directories can optionally be scanned too.
- Changed the way that internal canonical element names are generated, to improve layout merging for deployment views.
- getParent() of SoftwareSystemInstance and ContainerInstance now returns the parent deployment node.
- Refactoring and bug fixes.
- Fixes #151: linked relationship tags were not being taken into account when finding relationship styling.
- Fixes #153: Allow relationships in DynamicView to go both ways without two relationships between Elements in Model.
- Adds support for software system instances on deployment views (#150: how do I provide tech details for an external system to show in Deployment View?)
- The interaction style on relationships no longer defaults to Synchronous.
- Adds support for software system instances on deployment views.
- Implied relationships now also copy the interaction style and tags.
- Fixes a serialisation problem with themes and styles.
- Remove default stroke styling.
- Adds a way to load styles from external themes.
- Bug fixes.
- Adds an "addDefaultElements()" method to the static/deployment views.
- Adds an "addDefaultStyles()" method to Styles.
- Adds a "createDefaultViews()" method to Views.
- Fixes a bug where all deployment nodes would be added to a deployment view, even if that view had an environment set.
- Adds support for removing deployment nodes, infrastructure nodes, and container instances from deployment views.
- Fixes a bug where deployment node instances could set to a non-positive integer.
- Adds the ability to add container instances and infrastructure nodes to the same animation step on a deployment view.
- Adds the ability to override the Structurizr client agent string.
- Fixes a bug that defaults the relationship interaction style to Synchronous, when it's specifically set to null.
- Added a "Component" element shape.
- Added a "Dotted" element border style.
- Components from any container can now be added to a component view.
- Added an externalContainersBoundariesVisible property to ComponentView, to set whether container boundaries should be visible for "external" components (those outside the container in scope).
- Improved the support for creating implied relationships.
- Added the ability to customize the symbols used when rendering metadata.
- Adds support for infrastructure nodes.
- Adds support for multiple themes.
- Adds support for curved relationship routing.
- Added an externalSoftwareSystemBoundariesVisible property to ContainerView, to set whether software system boundaries should be visible for "external" containers (those outside the software system in scope).
- Added a 16:10 ratio paper size.
- Split View.setAutomaticLayout(boolean) to enableAutomaticLayout() and disableAutomaticLayout() (breaking change).
- Added A1 and A0 paper sizes.
- Adds support for themes.
- Adds support for tags on deployment nodes.
- Adds support for animations on deployment views.
- Adds support for URLs on relationships.
- Fixes a deserialization issue with component views.
- Added support for element stroke colours.
- The automatic layout algorithm can now be configured on individual views.
- The structurizr-annotations library can now be more easily used with OSGi applications.
- Fixes a bug with the PlantUML and WebSequenceDiagram writers, where relationships were sorted incorrectly (alphabetically, rather than numerically).
- Fixes a bug that allows relationships to be created between parents and children.
- The way layout information is copied between different versions of a view is now configurable by setting a custom LayoutMergeStrategy on a per view basis.
- Added the ability to lock and unlock workspaces, to prevent concurrent updates.
- Fixes an issue with Java 11 and SSL handshaking.
- The terminology for relationships can now be customised.
- Added support for icons on element styles.
- Top-level deployment nodes can now be given an environment property, to represent which deployment environment they belong to (e.g. "Development", "Live", etc).
- Relationships can no longer be created between container instances (breaking change).
- When adding elements to views, you can now optionally specify whether relationships to/from that element are added.
- Provided a way to customize the sort order when displaying the list of views.
- Added the ability to specify users who should have read-write or read-only workspace access, via the
workspace.getConfiguration().addUser(username, role)
method.
- Added name-value properties to relationships.
- Added the ability to define animations on the static structure diagrams.
- Removed support for colours in the corporate branding feature (breaking change).
- The PlantUML writer can now export sequence diagrams.
- HTTP-based health check interval and timeout can be specified via the factory method now (breaking change). Also added some documentation and an example.
- Added an
endParallelSequence(boolean)
method to theDynamicView
class, which allows sequence numbering to continue. - Fixed a bug where the software system associated with a SystemContextView could be removed from the view.
- Added support for architecture decision records.
- Component finders are no longer idempotent, and an exception will be thrown if the same component is discovered more than once (breaking change).
- Removed the "groups" property of documentation sections (breaking change).
- Added some new shapes: web browser, mobile device (portrait and landscape), and robot.
- Addition of @NonNull annotations (JSR 305: Annotations for Software Defect Detection).
- Added the ability to enable/disable the enterprise boundary on system landscape and system context views.
- Added the ability to customise the terminology used when rendering views.
- Added the ability to hide element metadata and/or descriptions.
- The Spring component finder now supports the @Endpoint annotation.
- Bug fixes and performance enhancements.