Venelx Docs

OTA updates

OTA updates are limited. Venelx hosts the release records, channels, staged rollout and rollback, and serves an update manifest. Your app must be set up to check that manifest and load the bundle itself, and there is no CLI, code-signing or asset hosting yet. Treat this as an early feature.

OTA (over-the-air) updates let you ship a new JavaScript bundle to an app that's already installed, without a store release. Open OTA in your project: https://app.venelx.com/project/<projectId>/ota.

Channels

Every project gets three channels automatically: Production (production), Staging (staging) and Beta (beta). Each channel points at one active release and has a rollout percentage.

Publish a release

On the OTA page, Publish bundle:

FieldMeaning
ChannelWhere the release goes.
VersionYour release version, for example 1.2.0.
Runtime versionOnly apps built with the same runtime version receive the update.
Bundle URLA URL where the bundle is already hosted.

Publishing makes the release the channel's active release. The page lists recent releases with their runtime version and rollout.

The API also accepts a bundle file upload, a message and a starting rollout percentage (POST /api/<projectId>/ota/publish, developer role).

Staged rollout

A channel's rollout is a percentage from 1 to 100 (set via PATCH /api/<projectId>/ota/channels/<slug>/rollout, admin role). Devices are placed into a stable bucket by their device id; only devices in the first N percent get the release. A device that checks in without a device id is treated as part of the rollout.

Rollback

Click Rollback on a channel (admin role). The active release is marked rolled back and the channel returns to the previous release; if there is none, the channel has no active update.

What the app calls

Your app checks for updates with:

text
GET https://api.venelx.com/api/ota/manifest?projectId=<projectId>&channel=production&runtimeVersion=<runtime>&deviceId=<id>

It returns the active release (id, runtime version, bundle URL and hash, version, message), or 204 No Content when there is nothing for that runtime version, channel or device bucket. This endpoint is public (no sign-in).