BasicsThe metadata model is at the heart of what Sweagle does. It brings structure and insights, drives validation and enables automation. A node-based hierarchical data model Sweagle adopts a node based data model to which metadata items are attached. Nodes are grouped into a dimension, identified by its "root node". Every dimension is basically a tree structure with parent and child nodes. Metadata items Metadata items are the "content" of nodes and are typically defined in the format of a metadata key and a corresponding metadata value. The most simple example to think about metadata items are a typical "Key:Value" string like it is used in many system.property files and XML attributes. Metadata item value types Metadata items can be: local defined (at the node directly) or inherited from its parent.encrypted in case of sensitive data such as passwords and API keyswith or without a valuerequired or optional Metadata item values with tokens In order to reduce the maintenance of metadata values, it is common to define the value for metadata items by using "tokens". A token is basically a placeholder to point to the value of another metadata key in either the same dimension or a different dimension. As such it is possible to just group all the values that needs to be set in only a few metadata items and "re-use" those across the values for many other metadata items. An example is that the development team define a metadata item to define the syntax of a complete DB connection string, and then the environment administrators can set a different DB_connection_prefix value for each environment where the application will run. The complete DB connection string can be accessed like this: FullDB_connection: @@DB_connection_prefix@@_application1 "Inherited" nodes Sweagle supports the concept of "inheritance" between parent to child nodes in a given tree structure. This allows the child node to be based upon the parent node and automatically get all metadata items from the parent node. Sweagle supports "single inheritance" only, meaning that a child node can only inherit from its single parent node along the tree structure. Sweagle supports a "multi-level" inheritance along the tree structure. This allows to have inheritance for n-levels along the data tree. "Included" nodes Sweagle supports the concept of "linking" (including) a node into another node. This allows to define a node at 1 location (primary) and reuse that node at various places in the data model. A change done to the "primary" node is always immediately applicable to any place where the node has been included. When a node (source) is included in another node (destination), all the "source node" metadata items and child nodes are available under the "destination node". Sweagle does not actually copy this data, it only creates a link. An included node is a kind of symbolic link to the source node.Source and destination node can be in the same or different trees - no limitation.Only nodes can be included in other places. Individual metadata items cannot. Metadata set A metadata set is a node in the data model that is "flagged" to be a point at which the metadata can be consumed through the API. Snapshot model and flow Sweagle automates the creation of "full snapshots" for every metadata set whenever its structure or metadata changes over time. A snapshot of a metadata set contains the full tree structure from that node and downwards in the tree. The full structure and all metadata of included nodes is part of the metadata set as well. Every snapshot has a validity range (from to) and a status. Every metadata set has always 1 "valid" snapshot at any given moment in time - this is the default snapshot that is returned whenever a 3th party tool requests metadata through the API. Lifecycle management Sweagle stores all approved changes to metadata items automatically under version control at the lowest level of granularity. If a change happens on the metadata item (for example change name from component1 to componentA), then a new version of the metadata item will be stored with its new value, and the previous value will become superseded. Such change will also automatically be visible from any parent node in the tree structure up to the root node level. All changes are tracked in Sweagle with time based control and validity range, so the platform can "replay" the exact tree structure of any node across any moment in time providing a full audit trail and "timeline view". Historical, current, and future metadata information anytime & anywhere It is also possible to define changes in the data model which will become valid in the future. This allows to prepare a set of changes for the future, without changing the current valid metadata.