Repository navigation
v0.15.0
What's New
Ocean Brain 0.15.0 makes separately running integration apps easier to open, synchronize, and monitor. Existing integration connections and tokens continue to work.
Open an integration app inside Ocean Brain
An integration can now use launch: { "mode": "proxied" }. In Settings → Integrations, connect or edit the app, enter the private HTTP(S) origin reachable by the Ocean Brain server, grant its requested permissions, and enable it. Ocean Brain serves the app under /apps/:connectionId/ and keeps that private origin out of the manifest and management responses. Relative assets, requests, redirects, streams, and WebSocket upgrades use the same gateway. The app remains a separate process; Ocean Brain does not install or start it.
For an app running beside an npm installation on the same host, the private origin can be http://127.0.0.1:7778. With Docker Compose, put Ocean Brain and the app on a shared private network and use the app service name, such as http://integration-app:7778. The app must support the proxied app contract, including relative URLs and credentialed resources in the sandboxed page. Existing external and iframe launches remain available.
Embedded apps can also ask Ocean Brain to open a note and can keep meaningful app navigation in the browser's back and forward history through the iframe bridge.
Keep external note copies in sync
Integration backends with notes:read can use POST /api/integrations/v1/notes/catalog to page through note IDs and versions. GET /api/integrations/v1/events adds an optional live stream of note-change signals. Use catalog reconciliation at startup and after gaps; the stream has no durable replay. This supports external indexes, publishing, backups, and other apps without adding a persistent change log to Ocean Brain.
See setup and activity at a glance
The Integrations page now shows each connection's setup state, recent authenticated access, optional app-reported task status, and a next action. Permissions, credentials, and the On/Off access switch live in app settings. An app can send its latest running, succeeded, or failed report to POST /api/integrations/v1/status. A report is the app's claim about its work, not an independent health check. The built-in MCP card offers a research request to copy into a connected AI client; copying it does not execute a task.
Upgrade
Stop Ocean Brain and back up the database and uploaded images together before upgrading. Startup applies migration 0022, which adds nullable private proxy URL and latest status report fields. Existing connections and tokens are preserved. Existing apps do not need to adopt the new endpoints or change their manifests. MCP compatibility remains 0.14.0; this release does not change the MCP tool contract.
For npm, use the exact new package version with your existing authentication settings:
OCEAN_BRAIN_PASSWORD='choose-a-strong-password' \
OCEAN_BRAIN_SESSION_SECRET='paste-a-long-random-secret-here' \
npx -y ocean-brain@0.15.0 serve --host 127.0.0.1For Docker, pin the new image tag. Keep the existing /data and /assets mounts when recreating an installation. The docker run example below is for a new container; if one already exists, update and recreate it using your existing configuration after the backup:
docker pull baealex/ocean-brain:0.15.0
docker run -d \
--name ocean-brain \
--restart unless-stopped \
-e OCEAN_BRAIN_PASSWORD='choose-a-strong-password' \
-e OCEAN_BRAIN_SESSION_SECRET='paste-the-generated-session-secret-here' \
-v "$PWD/data:/data" \
-v "$PWD/assets:/assets" \
-p 127.0.0.1:6683:6683 \
baealex/ocean-brain:0.15.0In an existing Compose file, set the Ocean Brain service image to baealex/ocean-brain:0.15.0 and keep its existing volumes, authentication variables, and network settings. See the Docker guide and integration guide for setup details.
Included changes
- Add proxied integration app gateway
- Add integration note synchronization
- Add integration activity reports and simplify connection settings
- Consolidate unreleased integration migrations
- Bump version to 0.15.0
Full Changelog: v0.14.0...v0.15.0