What is a .dragon1 File?
Open File Format
A .dragon1 File is a JSON structured file containing architecture data. Anyone can use it in an open file format to store and exchange its architecture data.
Any correct .dragon1 File can be viewed with the Dragon1 Viewer application. By default, the viewer uses Dragon1 SVG Icons.
Other modeling languages can be specified and show their icons. For instance, BPMN icons, UML icons, IBM icons, Cisco icons, or AWS cloud icons.
An example .dragon1 File.
Specification
A .dragon1 File can contain different parts. None of these parts are mandatory.
These parts are:
- Part 1: Visualization definitions
- Part 2: Model definitions
- Part 3: View definitions
- Part 4: Entity class definitions (with or without Change definitions)
- Part 5: Relationship definitions
- Part 6: Scenario (Animation) definitions
- Part 7: Folder and page definitions
The viewer will visualize any data in the .dragon1 File if the definitions are correct.
Minimum .dragon1 File
The following JSON placed in a .dragon1 file and uploaded in the viewer on Dragon1 will generate a visualization.
[{ "class": "Visualization","id": "100",
"name": "Dragon1 Charts & Maps Demo",
"title": "Digital Transformation with Smart and Fast Decisions",
"subtitle": "Dragon1 Charts & Maps Demo",
"team": "The Archi Team",
"logo": "https://www.dragon1.com/images/dragon1-logo-example.png",
"template": "Front_Page",
"keyword":"INNOVATION",
"date":"14 November 2019",
"backgroundimage":
"https://www.dragon1.com/images/renewable-energy.jpg",
"backgroundcolor": "darkgreen",
"backgroundopacity": "0.7",
"animatedlink": {"linkname":"Process Application Landscape",
"linkurl":"https://www.dragon1.com/demo/process-application-landscape"},
"layout": "NONE",
"relationships":"hidden",
"pageformat":"A0"
}]
Optionally, you can specify one or more modelids or viewids in the visualization:
..."models": [{"modelid":"1"},{"modelid":"2"},... ],
"views": [{"viewid":"1"},{"viewid":"2"},... ],
...
Download an example frontpage.dragon1 file.
Templates and Layouts
With Dragon1 Charts & Maps, you can focus on getting the correct data and then choose a template and layout to generate your data. Below you see how you specify them:
..."template": "Process_Application_Landscape",
"layout": "L3_C4_C2_C3",
...
The templates have many configuration options to tailor to your likeness. At the bottom of this page is a list of available Templates and Layouts.
Showing Entities on the Dragon1 Architecture Canvas
[{ "class": "Visualization","id": "108",
"name": "Process Application Landscape",
"title": "Process Application Landscape",
"team": "The Archi Team",
"pagesize":"A4",
"logo": "https://www.dragon1.com/images/dragon1-logo-example.png",
"icons": "Dragon1",
"template": "Process_Application_Landscape",
"layout": "C5_L01_L03_L02_L04_L01",
"blocks": { "label1": "Architecture Concepts", "label2": "Business Processes", "label3": "Applications" }
},
{ "class": "Application",
"type": "Business",
"name": "MyCRM (Sales)",
"id": "02",
"domain": "02",
"vendor": "Microsoft",
"platform": "Win32",
"criticality": "Mission Critical",
"startdate": "01 mar 2010",
"enddate": "01 jun 2018",
"contractenddate": "01 11 2019",
"annualcost": "40.000 USD",
"link": "https://www.dragon1.com/images/customer-journey-map-1.png"
}]
Download an example entity-on-canvas.dragon1 file.
Note: if no View and Model are specified in the file, all data will be used for the visualization. If an entity has no model specified or no group, the entity will not be visible in a visualization.
An Atlas with Folders and Pages
It is optional to work with a folder structure. A folder can hold pages. a page is a link to a visualization, meta model, model, view, or entity.
You can add folders and page links:
[{ "class": "Atlas", "id":"0", "name": "EA Design Book" },
{ "class": "Folder", "id":"0", "name": "Strategy" },
{ "class": "Folder", "id":"1", "name": "Architecture"},
{ "class": "Folder", "id": "2", "name": "Transformation" },
{ "class": "Page", "id": "0", "name": "Stakeholders", "folderid": "0", "visualizationid":"1" },
{ "class": "Page", "id":"1", "name": "Business Model", "folderid":"0", "visualizationid":"2"},
{ "class": "Page", "id":"2", "name": "Application Landscape",
"folderid":"1", "visualizationid":"3"},
{ "class": "Page", "id":"3", "name": "Enterprise Model",
"folderid":"1", "modelid":"1"},
{ "class": "Page", "id":"4", "name": "Enterprise Architecture Meta Model",
"folderid":"1", "metamodelid":"1"},
{ "class": "Page", "id":"5", "name": "Financial View",
"folderid":"1", "viewid":"1"},
{ "class": "Page", "id":"6", "name": "Stakeholder 1",
"folderid":"1", "entityclass":"stakeholder", "entityid":"1"}]
Specifying Models
You can specify models:
...
{ "class": "Model",
"id": "01",
"name": "Enterprise Model",
"owner": "Mrs. Vanderbilt"
},
...
If you want to visualize a model directly, you could specify a layout and template to override the default layout and template.
Specifying Views
You can specify views:
...{ "class": "View",
"id": "01",
"name": "Financial View",
"owner": "Mrs. Vanderbilt",
"modelid": "1",
},
...
If you want to visualize a model directly, you could specify a layout and template to override the default layout and template.
Specifying Relationships
You can specify relationships:
...
{ "class": "Relationship",
"id": "00",
"modelid": "01",
"sourceclass": "Stakeholder",
"sourceid": "04",
"targetclass": "Process",
"targetid": "03",
"type": "Association",
"text": "is owner of",
"attribute": "owner"
},
...
About Layouts
In any visualization, you can specify a layout like this:
"layout": "C5_L01_L03_L02_L04_L01",
...
This layout specification would generate 5 columns from left to right where column 1 has 1 layer, column 2 has 3 layers, column 3 has 2 layers, column 4 has 4 layers, and column 5 has 1 layer.
The example screenshot of a Business Capability Heat Map below has specified the following layout: "layout": "L04_C01_C04_C03_C01"
Business Capability Heat Map.
Download the example file: business-capability-heat-map.dragon1 here.
If you start the layout string with L, Dragon1 will generate a layered layout. If you start with C, Dragon1 will generate a column-based layout. You can specify up to 12 layers and 12 columns.
You can also specify a border for the layout:
"layoutborder":"LTRB". This will generate left, top right, and bottom an extra bar.
You can specify a name for every generated group of the layout like this: "group1":"finance", "group2":"IT". You can also use your data like "groups":"function.name". If you have a list of functions, the names of these functions are used for the group names.
Edit Templates
A template consists of a group at a certain position, and every group has one or more default entity classes assigned.
You can change the visual properties of a group, like size, position, and color. You can assign one or more different entity classes to the group.
In the visualization JSON data object, you add this line:
"group1":{"entityclass":"product"},
Instead of the entities of the default entity class, the entities of the product entity class are shown.
List of Templates
- HTML_CSS
- Front_Page
- Basic_Page
- Application_Landscape
- Architecture_Framework
- Process_Application_Landscape
- Strategy_Map
- Stakeholder_Onion_Diagram
- Enterprise_Blueprint
- Business_Blueprint
- Technology_Roadmap
- Principles_Diagram
- Customer_Journey_Map
- Capabilities_Map
- Concepts_Map
- Applications_Map
- Servers_Map
- Projects_Map
- Functions_Capability_Map
- Use_Case_Diagram
List of Entity Classes
You can use one of the following entity classes:
- Stakeholder
- Person
- Actor
- Goal
- Objective
- Outcome
- Target
- Requirement
- Constraint
- Meaning
- Framework
- Architecture
- Concept
- Element
- Component
- Principle
- Pattern
- Plateau
- Gap
- Project
- Deliverable
- System
- Unknown
- Service
- Process
- Value
- Event
- Trigger
- Resource
- Value
- Stream
- Path
- Plan
- Interaction
- Collaboration
- Function
- Activity
- Competence
- Capability
- Enterprise
- Business
- Application
- Platform
- Database
- Protocol
- Network
- Software
- Device
- Node
- Server
- Interface
- Connection
- Zone
- Environment
- Network
- Client
- Domain
- Standard
- Scenario
- Driver
- Mission
- Vision
- Strategy
- Assessment
- Change
- Motivation
- Issue
- Artifact
- Decision
- Data
- Contract
- Organization
- Case
- Object
- Information
- Document
- Reference
- Group
- Location
- Visualization
- View
- Model
- Metamodel
- Relationship
- Cabinet
- Dossier
- Folder
- Page
List of Attributes
Every entity class can have its user-defined attributes. The mandatory attributes (per entity class) are:
- id
- name
- class
- type
Optional attributes are:
- image
- name
- owner
- startdate
- enddate
Optional Visualization attributes
- listmax. This determines how long the lists of items in the border of a layout can be.
Demo
Go to the Templates, Charts & Maps demo page at www.dragon1.com/demo.
Next, download a .dragon1 file (it has a JSON internal structure).
Next, open Notepad and the .dragon1 file, or you can generate a JSON file from a software system in your company and rename it to .dragon1.
Use the blue button to upload your .dragon1 file on the demo page and see the result directly. Or you upload the file in the new Viewer
This new Dragon1 technology supports you in having to focus only on the quality data and have more time to spend with stakeholders exploring and collecting data (entities and their attributes).