Menu

Omphalos

Adam Tauno Williams

[Model]

Omphalos

Omphalos is a lossless dictionary representation of any object from the OpenGroupware model. Omphalos can be serialized to XML-RPC, JSON, Python Dict, YAML, or XML. Omphalos representation is used extensively both internally and by the zOGI API as exposed by XML-RPC and JSON-RPC.

Detail Level

Object requests and search requests specify a detail level. This detail level is an integer that is used with a bit mask in order to specify how much information about the object(s) you requested should be marshaled and returned to the client.

Level Description
0 None
1 Notations
2 Object Links
3 Participants
8 Company Values
16 Properties
32 Logs
64 Conflicts
128 Membership
256 Contacts
512 Enterprises
1024 Projects
2048 Comment
4096 Tasks
8192 Plugin Data
16384 Contents
32768 ACLs
65535 Everything

If a detail level of zero is specified then only the objects core attributes are returned. Specifying details not appropriate to the object returned is acceptable, that request will simply ignored for the object of the inappropriate types. This allows you to requests object of different types, such as tasks and appointments, in a single call to [getObjectsById] while still retrieving all the information you need.

For instance if you wanted both the properties and participants of an appointment you would request a detail level of 20 (16 + 4). You can also specify a detail level of 65535 as short hand for retrieving all the available information about the objects. But it is best to only retrieve the information you require in order to avoid placing unnecessary load on the groupware server.

The detail levels of Object Links(2), Properties (16), an Logs (32) apply to all first-class proper object types.

Special Keys

The Omphalos dictionary representing an object may have several keys whose start with the underscore character. These are special keys usually added to the dictionary as a result of the specified detail level. The contents of a special key is always a, possibly empty, array. Special keys are:

Key Description
_ACCESS This key contains an array of acl entities.
_COMPANYVALUES This key will contain an array of companyValue entity dictionaries. This is only relevant for Contact and Enterprise entities.
_CONTENTS
_CONFLICTS This key is an array of appointmentConflict entities and represents the conflicts that are present with the appointment.
_DEFAULTS This key is an array of a single defaults entity, it is only returned by a call to getLoginAccount.
_LOGS This key will contain an array of logEntry entity dictionaries. This represents the change history of the object. This should only be requested if desired as a long-lived object can have a significant amount of history.
_MEMBERSHIP
_NOTES Contains the notes for an Appointment or Project; in the case of a Task it contains taskNotations.
_OBJECTLINKS Contains the objectLinks related to the entity.
_PARTICIPANTS This key will contain an array of participant entity dictionaries.
_PLUGINDATA This key may contain an array of PluginData entities.
_ PROPERTIES This key will contain an array of objectProperty entity dictionaries.

Flags


Related

Wiki: Development
Wiki: Model
Wiki: zOGI

MongoDB Logo MongoDB