The Elebase platform enables users to define the type(s) of content in their project, and the element(s) that pertain to each type. This promotes building unique profiles of the different kinds of information that will exist in a project.
Elebase treats the content types in a project as a kind of taxonomy in that it provides for identifying types as parents of other types, thereby effectively building a tree. But, unlike a proper tree on which an individual leaf (or type) exists on one branch exclusively, it is possible for an Elebase content type to be identified as a descendant of parents on different branches.
The /types endpoint includes, for each content type on which data is provided, both the parent type(s) of which the type in question is a descendant and those of which it is a parent, if any. It provides the type's depth on each of these branches, and the path (effectively a breadcrumb trail including the unique ID of each type) one would take to find it, beginning with the initial parent type on the primary branch, or trunk. This is of course useful for each individual type but not as elegant to parse if, for example, a UI intends to display a tree-like view of every type in a project. This endpoint provides for a better graph traversal of the types in a project by delivering its branches, as described by the known paths for each type, instead.
data provided by this endpoint is an indexed array of objects, each of which is effectively a branch of the project tree, beginning with the initial parent type on the primary branch, or trunk, and descending to include every type on the branch, in which each provides the fields below:
|id||string||The UUID of the type for which data is being provided.|
|name||string||The name of the type, provided in the endpoint transaction or fallback locale (if plural, this will be delivered in an object keyed by each).|
|ordinal||integer||The position of the type on this branch. If this value is 0, no position is explicitly defined yet for the type.|
|enabled||boolean||Indicates whether or not the type is enabled. This provides for an expression to filter the types to be publicly displayed.|
|types||array||The descendant type(s) of which this type is a parent, if any.|
|groups||object||If provided, the user group(s) identified with this type, being a one-dimensional indexed array in which each value is the UUID of an individual user group.|