Upload and publish an OtaKit bundle
upload_and_publish_bundleUpload a web bundle and publish it as an over-the-air update for Capacitor apps, with lane, compatibility, and idempotency controls.
Instructions
Run the existing combined local upload and release workflow with an explicit lane, compatibility decision, expected current release, complete release options, and idempotency key.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| appId | No | OtaKit app ID. Optional on a local connection whose project configures one; required otherwise. | |
| channel | Yes | Named channel, or null for the base channel | |
| encrypt | No | Require encryption with OTAKIT_ENCRYPTION_KEY and fail if it is not set; bundles are encrypted whenever that variable is set | |
| version | No | Bundle version; defaults to OTAKIT_VERSION, then a generated one | |
| strategy | No | zip uploads one archive; deltas uploads files separately so devices download only changed ones. Defaults to the project's updateStrategy, then zip | |
| autoRevert | No | Enable rollback-share based automatic revert for this release | |
| sourcePath | No | Built web assets directory in the project; defaults to Capacitor's webDir | |
| versionMode | No | strict requires version or OTAKIT_VERSION; auto (default) generates a version when neither is set | |
| forceImmediate | No | Make devices apply and reload on their next check | |
| idempotencyKey | Yes | Stable key reused only when retrying this exact mutation | |
| replaceRollout | No | Revert the lane's active rollout and publish this bundle in its place | |
| rolloutPercent | No | Share of devices (1-100, default 100) that receive this release; below 100 starts a gradual rollout on a lane that already has a release | |
| runtimeVersion | No | Native runtime lane, or null for the default runtime | |
| nodeModulesPath | No | node_modules holding those dependencies; defaults to the one beside package.json | |
| packageJsonPath | No | package.json that declares the app's native dependencies; defaults to the project root's | |
| autoRevertMinSample | No | With autoRevert: completed trials (applied plus rolled back) needed before the share is trusted (10-100000, default 50) | |
| autoRevertRatePercent | No | With autoRevert: share of completed update trials that rolled back, over 24 hours, that triggers the revert (1-95, default 20) | |
| compatibilityDecision | No | When the bundle's native dependencies differ from the lane's current release: block (default) refuses; proceed publishes anyway, only after confirming no store build is needed; skip does not compare | |
| expectedCurrentReleaseId | Yes | Release ID shown by prepare, or null when the lane had no release |