Concepts

Notifications

The Oblien mobile app spins up agents in workspaces. Each workspace acts as a channel: an agent running inside a workspace can push a notification to your phone — when a build finishes, a task needs input, or a long run completes.

How it works

  1. You mint a send token scoped to a workspace (the channel)
  2. Code inside the workspace calls /notifications/send with that token
  3. Oblien resolves the channel to its subscribed devices and delivers the push

The Oblien app handles device subscription for you — you only ever work with the send token.

The send token

The token you use inside a workspace is an opaque, Oblien-controlled handle — never a device's push token:

  • The real device token never enters a workspace. A workspace can't read it, exfiltrate it, or message devices directly.
  • Revocable independently. Kill a workspace's token without affecting devices or other workspaces.
  • Per-workspace, with metadata. Each token belongs to one workspace (channel) and carries arbitrary metadata, e.g. a channel label.
  • Stored hashed. Only a sha256 hash is kept; the plaintext is shown once, at creation.

Send is authenticated by the token itself (Authorization: Bearer), not your account credentials — so it can run unattended inside a workspace. Minting and revoking tokens use your normal API credentials.

From the SDK

const client = new Oblien({ clientId, clientSecret });

// Mint a per-workspace send token (plaintext returned once — store it).
const { token } = await client.notifications.createToken({ workspace_id: 'ws_123', name: 'agent' });

// Inside the workspace, send to the channel with that token.
await client.notifications.send(token.token, { title: 'Build done', body: 'Agent finished' });

// Revoke when no longer needed.
await client.notifications.revokeToken(token.id);

API reference

See the Notifications API for the full REST endpoint reference.