Enums & Types Reference

June 10, 2026 · View on GitHub

All enumerations and canonical types used in DataSurface contracts and attributes.


CrudDto (Flags)

Field participation in DTO shapes and query capabilities. Combinable via bitwise OR.

FlagValueDescription
None0Not included in any shape
Read1Included in GET responses
Create2Accepted in POST body
Update4Accepted in PATCH body
Filter8Can use filter[field]=value
Sort16Can use sort=field

Common combinations:

PatternFlagsMeaning
Full lifecycleRead | Create | UpdateRead, create, and update
Read-onlyReadOnly in responses
QueryableRead | Filter | SortReadable and queryable
FullRead | Create | Update | Filter | SortEverything enabled

CrudOperation

CRUD operation identifiers used in authorization, hooks, overrides, and contracts.

ValueDescription
ListGET collection (paginated list)
GetGET single item by ID
CreatePOST new item
UpdatePATCH / PUT existing item
DeleteDELETE item

StorageBackend

Backend storage types for resources.

ValueDescription
EfCoreEntity Framework Core — static, compile-time entities
DynamicJsonJSON document storage — flexible, schema-free
DynamicEavEntity-Attribute-Value storage — sparse data
DynamicHybridHybrid — structured columns with JSON overflow

FieldType

Canonical field types mapping CLR types to contract representations.

ValueC# TypesJSON Type
Stringstring, char, TimeOnly, TimeSpan, byte[] (base64)string
Int32int, short, byte, sbyte, ushortinteger (format: int32)
Int64long, uint, ulonginteger (format: int64)
Decimaldecimal, double, floatnumber
Booleanboolboolean
DateTimeDateTime, DateTimeOffset, DateOnlystring (format: date-time)
GuidGuidstring (format: uuid)
JsonOther complex types (fallback)object
EnumEnum typesstring
StringArraystring[]array of string
IntArrayint[]array of integer
GuidArrayGuid[]array of string (format: uuid)
DecimalArraydecimal[]array of number

Nullable CLR types (int?, DateTime?, …) map to the same FieldType with the field marked nullable.


RelationKind

Relationship cardinality between resources.

ValueDescriptionExample
ManyToOneFK reference to a single entityPost.AuthorUser
OneToManyCollection of dependent entitiesUser.PostsPost[]
ManyToManyJunction table relationshipPost.TagsTag[]
OneToOne1:1 relationshipUser.ProfileProfile

RelationWriteMode

How relation writes are performed on create and update operations.

ValueDescriptionRequest Format
NoneNo write support(field not accepted)
ByIdWrite via FK field{"authorId": 5}
ByIdListWrite via ID array{"tagIds": [1, 2, 3]}
NestedDisabledNested objects explicitly rejectedReturns 400

ConcurrencyMode

Optimistic concurrency control mechanism.

ValueDescription
NoneNo concurrency control
RowVersionbyte[] row version token (EF Core concurrency token)
ETagHTTP ETag-based token