Properties
Contents
Property anatomy
Examples of what a property might look like:
mytext = "a string"
mynumber = 1
Some characters are illegal in a property key. Here’s a list of illegal characters:
-
_
is system reserved prefix -
.
is the path separator. -
[
and]
are array index indicators.
Properties may also be nested, making the key a path. Elements in the path are separated by .
(dot).
Here’s an example of properties with arrays and nested properties.
first-name = "Thomas"
cities = ["Oslo", "San Francisco"]
city.location = geoPoint('37.785146,-122.39758')
person.age = 39
person.birth-date = localDate("1975-17-10")
In the example above, the property person
is of the ValueType Set
. Sets are special in the way that they don’t hold actual values, but rather act as containers for other properties.
System Properties
In order to separate system defined properties from user defined properties, _
(underscore) has been reserved as a starting character for the system properties.
The repository contains several standard metadata properties such as _id
, _name
, and _timestamp
. The full list of
Core properties
System Property | Value Type | Indexing | Comment |
---|---|---|---|
_id |
String |
string |
Holds the unique id of the node, typically a UUID |
_name |
String |
string |
Holds the name of the node. Must be unique within its scope (nodes with same parent) |
_parentPath |
String |
string |
Reference to parent node path |
_path |
String |
path, string |
Dynamic property resolved from parent path + node name |
_childOrder |
String |
string |
Default ordering of children when using getChildren() |
_manualOrderValue |
Long |
number, string |
Numeric order value used for the builtin manual ordering |
Versioning properties
_state |
String |
string |
Used for keeping state of a node in a branch |
_ts |
datetime, string |
The last time this node was modified |
|
_versionKey |
string |
For every change to a node, a unique versionKey is generated |
Indexing properties
System Property | Value Type | Indexing | Comment |
---|---|---|---|
_nodeType |
string |
string |
Used to create collections of nodes in a repository |
_indexConfig |
string |
Not indexed |
Node specific index configuration |
_allText |
String |
string, analyzed, ngram |
Aggregates text across other string properties in the node |
_references |
Reference |
string |
Aggregates all reference properties in the node |
Access control properties
Permissions set on a node are indexed differently from what the domain object looks like. The index structure is is flattened, and enables an effective way to query nodes based on access control.
System Property | Value Type | Indexing | Comment |
---|---|---|---|
_permissions_read |
String |
Principals with read access |
|
_permissions_create |
String |
Principals with create access (create children of node) |
|
_permissions_delete |
String |
Principals with delete access |
|
_permissions_modify |
String |
Principals with modify access |
|
_permissions_publish |
String |
Principals with publish access |
|
_permissions_readpermissions |
String |
Principals with access to read node permissions |
|
_permissions_writepermissions |
String |
Principals with access to write node permissions |