ZuloOne
English
Sign in
Menu

Models and layers

Updated

A model is the unit of ownership and of transfer: a top-level folder with its own metadata, scripts, and menu. A layer is the model's role in the onion. Extensions only look down.

Note

The tenant compares MetaPackages.PackageVersion to modelVersion in model.json. Equal versions skip the model as a whole. See Bump the model version.

Layers#

layerId Layer Who puts models here
0 System The platform (Core). Not edited in the workspace.
1 Base Product application models
2 Solution Industry / partner solutions
3 Customization The implementation
4 User One stand's local changes

There is no model inheritance. Layers are a number (layerId), not a parent pointer on the model row.

A model's layer must be greater than or equal to each dependency's layer. Cycles are refused. A dependency on Core is not declared — the kernel is on every stand.

The SPA sends X-ZuloOne-Model. A record owned by another model is read-only in the designer. Compile, apply-file, the totals bench, and an integration test write rows of the owning model; that is not editing in the designer.

Core/ in the workspace is a downward sync. The export rewrites it. Change the kernel in the platform sources.

A sealed model (isSealed) is also only extended, never edited on the stand.

On a dev stand a new model is created enabled. Shipped to a tenant it arrives disabled; turning it on is a separate, validated action (dependencies, field conflicts, licence).

See also#

Where next#

Was this page helpful?