Data

DATA Introduction

Data objects in Cavaliba are best understood with the following concepts in mind.

Schema are top-level asset families : Devices, Applications, Laptops, Projects, Customers, Books, Facilities, Cooking Receipes, Invoices, etc.

Fields describes attributes for each Schema. Fields and Schema can be modified at any time during the life of the system: add or remove fields, change constraints.

FieldTypes - fields can be of a regular data types such as string, int, float, boolean, date, IP addresses, … They can have a more complex structure : other objects, enumetate (static) lists, users and groups, external and computed fields, etc. Fields can be single or multi-valued. Fields can be mandatory or optional.

Instances are individual objects. Each Instance belong to one Schema, and has values for some or all fields related to their Schema.

Schemas (and their Instances) have relationships : a geographical sites is located in a region or country. A virtual machine is hosted on a physical server, etc.

YAML - Schema, Fields, Instances can be provided as regular YAML (or JSON) files. They can be uploaded to Cavaliba from UI, API or CLI command, with appropriate permissions. You can also import CSV file.

pipelines are objects used to transform data at (bulk) import time. When uploading a CSV, rather than asking the provider to adapt to your exact schema, use a pipeline to deoinfe mapping and transformation. A large set of operators is available. In itself, a pipeline is a regular object, with a Schema and specific attributes. You can manage pipelines with the Web UI, CLI, YAML import files, etc.

dataviews are object used to select a subset of Schema fields to be presented to your users in the Web UI. It helps to provide several dataviews for complex Schema. Dataviews are also regular objects with a Schema and specific attributes.

enumerate is a special FieldType which uses predefined list of values. Think of enumerates as static lists. Enumerate are also regular objects with a Schema.

Once Schema are created (or loaded from provided demo schema), Cavaliba Data Management automatically provides :

  • a Responsive Web UI for humans : create, view, edit assets
  • a REST API for machines: same operations, single instance/field level, or massive bulk transfer
  • a CLI command to import/export in batch from/to external systems
  • a relationship framework, including inheritance / propagation of fields and objects between Instances
  • a Role/Permission model to handle authorization at Class/Instance/Field level
  • a Data storage at scale on standard relationnal databases (PostgreSQL, MariaDB, MySQL, …) with an Entity-Attribute-Value (EAV) dynamic datamodel.

See Permissions to