Interfaces [Beta]

Beta

Interfaces are in the beta phase of development as we continue to add features; existing features are relatively stable and can be integrated into workflows. Review the current levels of support for interfaces across the Palantir platform for more details.

An interface is an Ontology type that describes the shape of an object type and its capabilities. Interfaces allow for consistent modeling of and interaction with object types that share a common shape. For example, a Facility interface may include Facility Name and Location properties. Facility could be implemented by object types such as Airport, Manufacturing Plant, or Maintenance Hangar, which could each contain additional type-specific properties.

An example of a `Facility` interface.

By using the Facility interface, workflows can interact with Airport, Manufacturing Plant, and Maintenance Hangar object types, either in aggregate or independently, without needing to know specific details about those object types. Additionally, if new object types that implement the Facility interface are introduced, the workflow will be immediately compatible with the new object types without additional refactors.

Interface features

An interface is composed of shared properties, link type constraints, and metadata about the interface. An interface can be implemented by multiple object types.

Much like interfaces in programming languages, you can extend an interface to create a child interface that inherits the properties of the original interface, then add new, more specific properties to the child interface. Object types can then implement the interface to indicate that they conform to the interface definition. Object types can implement multiple interfaces, for use in different workflows. Interfaces can also extend multiple other interfaces, including interfaces that themselves extend other interfaces, resulting in properties that are inherited through layers of interfaces.

Differences between interfaces and object types

There are both functional and stylistic differences between interfaces and object types within the Ontology.

Object types are concrete; they have schemas defined by shared or local properties, are backed by datasets containing property values, and can be instantiated as objects.

By contrast, interfaces are abstract; they have schemas defined by only shared properties, are not backed by datasets, and cannot be instantiated directly, they must be instantiated as a specific object type.

Stylistically, interfaces are visually distinguished from object types in the platform by having dashed lines around their icons.

Example interface icon

Interface permissions

Interfaces are permissioned through Ontology roles.

Current levels of support

As support for interface Ontology types expands, availability will vary across the Palantir platform.

Interfaces are currently supported in the following applications and services:

Interfaces are partially supported in the following applications and services:

  • Actions: Define actions to create, modify, or delete objects implementing an interface. Actions cannot reference interface link type constraints directly, but they can reference the concrete link types used to implement the interface link type.
  • Object Set Service: Search and sort objects by interfaces. Support for aggregating by interfaces is in development. Support for interface link types is in development.
  • Ontology SDK: Use interfaces as an API layer for interacting with implementing object types. Support varies by language; TypeScript is currently supported and support for Java and Python is in development. Interface link types and aggregations are not yet supported in any language.

Interfaces are under active development, but not yet supported in the following:

Get started with interfaces

To add interfaces to your Ontology, you can create new interfaces or extend existing ones. Once you have an interface, you can then implement that interface with an object type of the appropriate shape or edit it to better fit your Organization as your Ontology evolves.