Octave API overview

Overview

Octave is the all-in-one edge-to-cloud solution for connecting your industrial assets through global cellular networks. Octave makes it easy to securely extract, orchestrate, and act on data from your assets at the edge to the cloud. If you are new to Octave, start with our Developer Hub at docs.octave.dev.

👍

Tip

Before continuing, ensure you have a solid understanding of Octave's High-Level Data Flow.

4291

Octave functional diagram
(click to enlarge)

This documentation describes the Octave APIs enabling you to orchestrate your data within Octave services (Edge and Cloud) as well as integrate Octave services with your own infrastructure for device management.

APIDescription
Edge JavaScript APIAllows you to orchestrate your data at the Octave edge in an Edge Action
Cloud JavaScript APIAllows you to orchestrate data in the Octave Cloud via a Cloud Action, Cloud Connector, or Task.
Octave REST APIAllows you to interact with Octave and your data from your external infrastructure.

Objects and Associated APIs

The following tables summarize the common objects/entities within Octave's architecture and their associated Octave REST API endpoint(s):

Administration

ObjectDescriptionAPI Functions Supported
CompanyThe base level of organization in Octave. A private namespace within Octave, containing its own set of Devices, Streams, Actions, and Connectors. One or many identities can have access to a Company.REST API
Group
Share
Device
FileAllows you to upgrade the software for the asset(s) connected to an Octave edge device over the air.REST API
File
TokenUnique, constrained, and managed security access for applications.
IdentityThe users who have access to an Octave deployment.REST API
Group
Share

Data Orchestration

ObjectDescriptionAPI Functions Supported
Cloud ActionTransforms Events and routes them between Streams. Transformations are done via optional JavaScript.REST API
Cloud Action

Cloud JavaScript API
HTTP.get()
HTTP.post()
HTTP.put()
HTTP.delete()
Cloud ConnectorPushes Event data from specific Streams (e.g., from assets connected to Octave Edge Devices) to external cloud systems and also to synchronize Devices with your Cloud platform.REST API
Cloud Connector
EventRepresents a single entity of data within Octave. It contains a schema-less map of elements. An Event resides within a Stream.REST API
Event
Stream

Cloud JavaScript API
Event.find()
Event.findOne()
Event.findHash()
Event.multiFind()
Event.aggregate()
Event.get()
ObservationA collection of "routes" from Resources to other Resources or the Cloud.REST API
Device
Edge Action

Edge JavaScript API
Observation.getMax()
Observation.getMin()
Observation.getMean()
Observation.getBuffer()
StreamEvery Event belongs to a Stream, which is uniquely identified by its Path. Streams have a fixed capacity, such that old Events will automatically be removed from the Stream.REST API
Stream
Event

Cloud JavaScript API
Stream.find()
Stream.get()
TaskExecutes JavaScript periodically (e.g., to pull data from external systems and "inject" it into Octave as Events).

Device Management

ObjectDescriptionAPI Functions Supported
Blueprint Captures a specific Device configuration as a template, which can be assigned quickly to multiple Devices, ensuring they all share the same configuration and behavior.REST API
Blueprint
Device Represents a physical device. It contains attributes that the user will set to configure the physical device, and to assign application code which it will execute (in the form of Edge Actions).REST API
Device

Cloud JavaScript API
Device.getName()
Device.get()
Device.find()
Device.update()
Firmware A firmware version that's available for Octave edge devices.REST API
Firmware
Operation Tracks a group of long-running, asynchronous jobs. An Operation might represent the provisioning of new Devices, application of Blueprints, or File Transfers.REST API
Operation
Resource Defines a device's service, sensor, or actuator that make up a solution. Resources are organized as a tree (hierarchy) on a device,REST API
Device
Blueprint

Edge JavaScript API
Resource.readValue()
Resource.read()