Derived properties [Beta]

Derived properties is in the beta phase and under active development. Some functionality may change before this feature becomes generally available, and it may not be available on all enrollments.

Overview

Derived properties are properties that are calculated at runtime based on the values of other properties or links on objects. This includes aggregating on or selecting properties of linked objects. Derived properties are then available for further operations, such as filtering, sorting, or aggregating within the same request. Derived properties use the security of all objects involved in the calculation, so they do not expose information a user would otherwise be unable to see.

Availability

Derived properties are available in the following workflows:

  • Ontology SDK: Derived properties can be used in the TypeScript OSDK with the withProperties operation, to be returned or used in additional filters, aggregations, or sorts. The TypeScript OSDK must be running the 2.2.0-beta.x version of the @osdk/client package or later. Review the API documentation in Developer Console for more details.

Known limitations

As a beta feature under active development, derived properties currently have some capability limitations. Many of these capabilities will become available over time as additional functionality is built. Current limitations are listed below:

  • OSv1 support: Queries may not contain both derived properties and any object types indexed in OSv1.
  • Structs and arrays: Structs and arrays may not be returned in queries that contain derived properties. You can use a $select operation in Ontology SDK to exclude struct and array properties.
  • Partially-supported property types: Some property types are returned as strings rather than their normal strongly-typed return types. These include Geohash, Geoshape, Media Reference, Attachment, Cipher, Time Series, Geotime Series References, and Marking types.
  • Interfaces: Queries with derived properties may not contain interfaces. Objects may implement interfaces if the interfaces are not explicitly referenced in the query.
  • Scenarios: Derived properties cannot be used with Scenarios.
  • Text search: Derived properties cannot be used in text search or keyword filters.
  • Recursive computation: Derived properties cannot reference other derived properties.
  • Sorting: Derived properties cannot be used to sort an object set.
  • Aggregations and filtering: These operations require computing the derived properties on all objects in the object set, and so the query may become slower at high data scale.