Skip to content
This repository has been archived by the owner on Nov 3, 2022. It is now read-only.

98 enhanced model #872

Draft
wants to merge 54 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
731cca1
[#98] GraphNode as basic model
Jan 25, 2022
784f4df
[#98] GraphNode as basic model
Feb 5, 2022
f6ad29b
[#98] fixes
Feb 22, 2022
2edd71d
dynamic search documentation
Feb 22, 2022
df00a1e
changed hints
Feb 23, 2022
bec92ac
fixes
Feb 23, 2022
fe51fda
hints
Feb 26, 2022
a471d50
updated docs
Feb 26, 2022
c7cc887
fix merge
Feb 26, 2022
6609363
cleanup
Feb 26, 2022
02aa459
refactored Resolver to interface
Feb 28, 2022
965e2b4
FlexSearch
Mar 3, 2022
7f87967
Item sorting
Mar 5, 2022
7afc9a9
fix systematic layout error
Mar 5, 2022
bf1ec7e
cleanup
Mar 6, 2022
51baa0b
gui fixes
Mar 6, 2022
d7942cd
refactored api model
Mar 6, 2022
82343f5
fixed test
Mar 6, 2022
5b998ee
fixed test
Mar 6, 2022
41ec635
configurable default unit/context identifiers
Mar 6, 2022
ea9708b
version bump
Mar 6, 2022
1c9bb00
parts in ItemDescription
Mar 6, 2022
b237547
cleanup
Mar 11, 2022
0368635
improved group status view
Mar 11, 2022
0112a21
fix map relation click
Mar 11, 2022
235dbfc
[#762] processes wip
Mar 15, 2022
37e7c01
[#762] processes adds relations
Mar 16, 2022
9027649
[#762] changed the Renderer api
Mar 16, 2022
7311f68
[#762] extracted map data provisioning from rendering
Mar 18, 2022
ecfccb4
[#762] process api model
Mar 19, 2022
f5fd04f
[#762] process description
Mar 19, 2022
d674467
[#762] process factory attaches newly created relations
Mar 21, 2022
23104f3
[#762] process branch contains uris
Mar 22, 2022
638b791
[#762] cleanup
Mar 23, 2022
d284b71
[#762] cleanup
Mar 23, 2022
2080c5f
[#762] fix relation rendering
Mar 23, 2022
f9737aa
[#762] cleanup
Mar 23, 2022
10a28de
[#762] handle on svg relations
Mar 27, 2022
5318e87
[#762] cleanup
Mar 28, 2022
1ee35ad
[#762] cleanup
Mar 28, 2022
0516aeb
relation label cleanup
Mar 29, 2022
45a1011
unit, context as search fields
Apr 1, 2022
7c36d9a
cleanup, svg relation end fixes
Apr 2, 2022
fb0a978
cleanup, pet clinic example process
Apr 3, 2022
9bf68eb
cleanup
Apr 3, 2022
020379f
color fix
Apr 3, 2022
1c6a5c1
second example process
Apr 6, 2022
487f7bb
rendering process separately
Apr 7, 2022
0227cec
cleanup
Apr 7, 2022
491fa4d
process in frontend (wip)
Apr 14, 2022
231ad8d
cleanup
Apr 14, 2022
9249f72
Merge branch 'develop' into 98_enhanced_model
Apr 14, 2022
419e153
cleanup
Apr 14, 2022
15d24fb
cleanup
Apr 14, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
17 changes: 17 additions & 0 deletions docs/source/inc_searchFields.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
* ``identifier`` The local identifier of the component without parent identifier
* ``address`` address/url of an item
* ``capability`` capability
* ``component`` class of the component (item, group, relation...)
* ``context`` parent context
* ``description`` description of the component
* ``framework`` frameworks of an item
* ``group`` parent group
* ``layer`` domain layer or technical layer
* ``lifecycle`` network(s) of the component
* ``name`` name of the component
* ``network`` network(s) of the component
* ``owner`` owner of the component
* ``tag`` assigned tag(s)
* ``type`` type of the component
* ``unit`` parent unit
* ``parent`` identifier of the parent component
1 change: 1 addition & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ sources, like files and web APIs (e.g. monitoring items) or allows pushing infor
input
model
assessment
searching
magic
output
troubleshooting
Expand Down
9 changes: 5 additions & 4 deletions docs/source/magic.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Often lots of items can be read from input data sources, but no information on l
that, you can describe groups and use the ``contains`` field:

* To pick items by their identifier, add single strings which are treated as identifiers.
* Furthermore you can use SQL-like WHERE conditions to assign items to groups. In the following example ``identifier LIKE 'DB1%'`` is the query which would match both items.
* Furthermore you can use Lucene search terms conditions to assign items to groups. In the following example ``identifier:DB1*`` is the query which would match both items. See :ref:`Searching`

.. code-block:: yaml
:linenos:
Expand All @@ -29,7 +29,7 @@ that, you can describe groups and use the ``contains`` field:
team: Admins
contains:
- DB1
- "identifier LIKE 'DB1%'"
- "identifier:DB1*"


Using Templates to dynamically assign data
Expand All @@ -43,6 +43,8 @@ if the target value is null.
Multiple templates can be assigned to items too. In this case the first assigned value "wins" and
will not be overwritten by templates applied later.

Template matching also supports Lucene search terms (see :ref:`Searching`).

.. code-block:: yaml
:linenos:

Expand All @@ -64,8 +66,6 @@ will not be overwritten by templates applied later.
endOfLife:
tags: [eol]

For CQ queries read https://github.com/npgall/cqengine#string-based-queries-sql-and-cqn-dialects.


Using Labels to assign data
---------------------------
Expand All @@ -90,6 +90,7 @@ Labels can be set using docker-compose files too. However, docker labels do not

Remember to escape URLs with double quotes.


Relations between landscape items
---------------------------------

Expand Down
35 changes: 35 additions & 0 deletions docs/source/model.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ infrastructure. Both landscapes could have items in common (like a database, loa
.. include:: ./schema/Models/Branding.rst
.. include:: ./schema/Models/GroupDescription.rst
.. include:: ./schema/Models/ItemDescription.rst
.. include:: ./schema/Models/ProcessDescription.rst
.. include:: ./schema/Models/InterfaceDescription.rst
.. include:: ./schema/Models/Link.rst

Expand Down Expand Up @@ -88,6 +89,40 @@ Groups can have the following attributes:
infrastructure:
team: Admins

Processes
---------
Groups can have the following attributes:

* ``identifier``: A unique identifier in the landscape. Provided automatically via the dictionary key, so do not set it.
* ``contains`` Array of references to other items (identifiers and CQN queries).
* ``owner`` Owning party (e.g. marketing).
* ``description`` A short description.
* ``team`` Technical owner.
* ``contact`` Support/notification contact (email). May be addressed in case of errors.
* ``color`` A hex color code for rendering.
* ``links`` A map/dictionary of URLs to more information.

**Process configuration**

.. code-block:: yaml
:linenos:

processes:
ingestion:
description: Data gathering
owner: Joe Armstrong
team: Team Content
contact: [email protected]
color: "#345345"
links:
wiki: http://wiki.acme.org/ingestion_process
branches:
- items:
- foo/baz
- foo/bar
- anothergroup/anotheritem



Item Identification and Referencing
------------------------------------
Expand Down
8 changes: 0 additions & 8 deletions docs/source/output.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
Output
======


Searching
---------

Nivio indexes all landscape items in an in-memory search engine called Lucene. You can build sophisticated queries on
various item fields (see :ref:`Model and Syntax`). For further information see https://www.lucenetutorial.com/lucene-query-syntax.html


Modifying Item Appearance
-------------------------

Expand Down
2 changes: 1 addition & 1 deletion docs/source/schema/.openapi-generator/FILES
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
Models/Branding.rst
Models/GroupDescription.rst
Models/InterfaceDescription.rst
Models/ItemDescription.rst
Models/KPIConfig.rst
Models/LandscapeConfig.rst
Models/LandscapeDescription.rst
Models/LayoutConfig.rst
Models/Link.rst
Models/PartDescription.rst
README.rst
86 changes: 86 additions & 0 deletions docs/source/schema/Models/ContextDescription.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
ContextDescription
---------------

Description of contexts (optional, can also be given in sources).


.. list-table::
:header-rows: 1

* - Name
- Type
- Description
- Remarks
- Example

* - color
- String
- The HTML (hexcode only!) color used to draw the group and its items. If no color is given, one is computed.
- optional, defaults to null
- 05ffaa
* - contact
- String
- A contact method, preferably email.
- optional, defaults to null
- null
* - contains
- List
- A list of item identifiers or SQL-like queries to easily assign items to this group.
- optional, defaults to null
- identifier LIKE 'DB1'
* - description
- String
- A brief description.
- optional, defaults to null
- null
* - fullyQualifiedIdentifier
- URI<URI>
-
- optional, defaults to null
- null
* - identifier
- String
- A unique identifier for the group (also used as name). Descriptions are merged based on the identifier.
- **required**, defaults to null
- shipping
* - labels
- Map
-
- optional, defaults to null
- null
* - links
- Map<Link>
- Key-value pairs of related links. Some keys like &#39;github&#39; cause that the endpoint data is parsed and added to to corresponding landscape component.
- optional, defaults to null
- github: https://github.com/dedica-team/nivio
* - name
- String
- A human-readable name
- **required**, defaults to null
- null
* - owner
- String
- The business owner of the group.
- optional, defaults to null
- null
* - parentIdentifier
- String
-
- optional, defaults to null
- null
* - tags
- List
-
- optional, defaults to null
- null
* - type
- String
- The type of the component. A string describing its nature. If no icon is set, the type determines the displayed icon.
- optional, defaults to null
- null
* - unit
- String
- The parent identifier
- optional, defaults to null
- shipping

28 changes: 24 additions & 4 deletions docs/source/schema/Models/GroupDescription.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,18 @@ A group of items. Could be used as bounded context, for instance.
- A list of item identifiers or SQL-like queries to easily assign items to this group.
- optional, defaults to null
- identifier LIKE 'DB1'
* - context
- String
-
- optional, defaults to null
- null
* - description
- String
- A brief description.
- optional, defaults to null
- null
* - environment
- String
* - fullyQualifiedIdentifier
- URI<URI>
-
- optional, defaults to null
- null
Expand All @@ -55,12 +60,27 @@ A group of items. Could be used as bounded context, for instance.
- github: https://github.com/dedica-team/nivio
* - name
- String
-
- optional, defaults to null
- A human-readable name
- **required**, defaults to null
- null
* - owner
- String
- The business owner of the group.
- optional, defaults to null
- null
* - parentIdentifier
- String
-
- optional, defaults to null
- null
* - tags
- List
-
- optional, defaults to null
- null
* - type
- String
- The type of the component. A string describing its nature. If no icon is set, the type determines the displayed icon.
- optional, defaults to null
- null

58 changes: 39 additions & 19 deletions docs/source/schema/Models/ItemDescription.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ItemDescription
---------------

List of configuration sources. Handled in the given order, latter extend/overwrite earlier values like items etc.



.. list-table::
Expand All @@ -13,21 +13,31 @@ List of configuration sources. Handled in the given order, latter extend/overwri
- Remarks
- Example

* - \_links
- Map<Link>
- Key-value pairs of related links. Some keys like &#39;github&#39; cause that the endpoint data is parsed and added to to corresponding landscape component.
- optional, defaults to null
- github: https://github.com/dedica-team/nivio
* - address
- String
- The technical address of the item (should be an URI). Taken into account when matching relation endpoints.
- optional, defaults to null
- null
* - color
- String
- Overrides the group color. Use an HTML hex color code without the leading hash.
- The HTML (hexcode only!) color used to draw the group and its items. If no color is given, one is computed.
- optional, defaults to null
- 4400FF
- 05ffaa
* - contact
- String
- The primary way to contact a responsible person or team. Preferably use an email address.
- A contact method, preferably email.
- optional, defaults to null
- null
* - contains
- List
- A list of item identifiers or SQL-like queries to easily assign items to this group.
- optional, defaults to null
- [email protected]
- identifier LIKE 'DB1'
* - description
- String
- A brief description.
Expand All @@ -38,21 +48,21 @@ List of configuration sources. Handled in the given order, latter extend/overwri
- The parts used to create the item. Usually refers to technical frameworks.
- optional, defaults to null
- java: 8
* - fullyQualifiedIdentifier
- URI<URI>
-
- **required**, defaults to null
- null
* - group
- String
- The identifier of the group this item belongs in. Every item requires to be member of a group internally, so if nothing is given, the value is set to its layer.
- optional, defaults to null
- shipping
* - icon
- String
- An icon name or URL to set the displayed map icon. The default icon set is https://materialdesignicons.com/ and all names can be used (aliases do not work).
- optional, defaults to null
- null
* - identifier
- String
- Immutable unique identifier (maybe use an URN). Primary means to identify items in searches.
- A unique identifier for the group (also used as name). Descriptions are merged based on the identifier.
- **required**, defaults to null
- null
- shipping
* - interfaces
- Set<InterfaceDescription>
- A collection of low level interfaces. Can be used to describe HTTP API endpoints for instance.
Expand Down Expand Up @@ -80,14 +90,24 @@ List of configuration sources. Handled in the given order, latter extend/overwri
- github: https://github.com/dedica-team/nivio
* - name
- String
- A human readable name/title. The name is considered when items are searched.
- optional, defaults to null
- my beautiful service
- A human-readable name
- **required**, defaults to null
- null
* - owner
- String
- The business owner of the item. Preferably use an email address.
- The business owner of the group.
- optional, defaults to null
- [email protected]
- null
* - parentIdentifier
- String
-
- optional, defaults to null
- null
* - parts
- Set<PartDescription>
- Subcomponents
- optional, defaults to null
- null
* - providedBy
- List
- A collection of identifiers which are providers for this item (i.e. hard dependencies that are required). This is a convenience field to build relations.
Expand All @@ -110,7 +130,7 @@ List of configuration sources. Handled in the given order, latter extend/overwri
- null
* - type
- String
- The type of the item. A string describing its nature. If no icon is set, the type determines the displayed icon.
- The type of the component. A string describing its nature. If no icon is set, the type determines the displayed icon.
- optional, defaults to null
- service|database|volume
- null

Loading