Schema
Schema are top-level asset families : Devices, Applications, Laptops, Projects, Customers, Books, Facilities, Cooking Receipes, Invoices, etc.
Create a simple Schema
To manage laptops (for example), you can use a simple Schema:
- classname: _schema
keyname: laptop
displayname: User Laptops Go to the import tool from the left sidebar, and paste this YAML snippet. Clic on import. You can now access the laptop
objects from the menu.
You can also use the CLI command :
$ cavaliba load laptop.yamlTo create a first laptop object in the new Schema, either use the Web UI (edit), or import the following YAML snippet:
- classname: laptop
keyname: pc0001
displayname: Billy's laptop Builtin Fields
All Schema share a small number of builtin fields.
-
keyname - primary key - unique name of the Schema ; no special chars ; must be unique. Some options exists to hide/auto-generate keyname if a user friendly value is not needed.
-
displayname - a short label for humans to read
-
is_enabled - true/false ; disabled objects are not available to regular users.
-
_options - dictionary of Schema options. See below
Schema _options
-
page - string, page name in the Web UI displaying the list of available DataClasses
-
order - int, display order in the Web UI
-
icon - string, name of a FontAwsome Icon to display in UI
-
handle_method - method to create a unique HTML friendly primary key for instances
-
permissions… - a set of permissions to control authorizations on instances
Schema Fields
Each DataClass Schema can have zero or more custom fields. These fields can be single-valued or multi-valued. They have a type from one of the available field types below.
Field name must be a valid slug string (unique, no special chararcter) within the DataClass schema.
Available field types:
- string
- int
- float
- date
- datetime
- time
- boolean
- ipv4
- text
- enumerate (static lists)
- schema (other DataClass)
- user group
- user
YAML Example
This simple example create a DataClass to manage user Laptops.
# Asset = User Laptops
- classname: _schema
keyname: laptop
displayname: User Laptops
is_enabled: yes
icon: fa-laptop
order: 200
page: Data
handle_method: md5
serial:
displayname: serial_number
page: General
order: 100
dataformat: string
name:
displayname: hostname
page: General
order: 110
dataformat: string
os:
displayname: Operating System
page: General
order: 120
dataformat: enumerate
dataformat_ext: enumerate_os
site:
displayname: Site
dataformat: schema
dataformat_ext: site
order: 130
page: General
cardinal_min: 0
cardinal_max: 1
owner:
displayname: User
dataformat: user
order: 140
page: General
cardinal_min: 0
cardinal_max: 0
purchase_date:
displayname: Purchase date
dataformat: date
waranty_end_date:
displayname: Waranty end date
dataformat: date
bitlocker:
displayname: Bitlocker
page: Security
order: 500
dataformat: booleanYAML Reference
- classname: _schema
_action: create/delete/update/enable/disable
keyname: string
displayname: string
is_enabled: boolean
handle_method: [keyname|uuid|external|md5]
icon: icon_name
order: int
page: string
p_admin: PERMISSION_NAME
p_read: PERMISSION_NAME
p_create: PERMISSION_NAME
p_update: PERMISSION_NAME
p_delete: PERMISSION_NAME
p_import: PERMISSION_NAME
p_export: PERMISSION_NAME
field_name:
_action: create/delete/update/enable/disable
displayname: string
dataformat: fieldtype
dataformat_ext: extended_fieldtype
cardinal_min: int
cardinal_max: int
default : string
(...)