App updates
10 routes. Paths are relative to https://api.intersink.com/v1.
- GET/updates/{channelId}/manifestExpo Updates protocol v1: the signed manifest or directive for this app (headers expo-platform, expo-runtime-version, expo-channel-name…)
- GET/updates/assets/{channelId}/{hash}One update asset: a redirect to a short-lived signed link
- GET/updates/channels/{channelId}The channel's updates with devices per update and this month's device count (?platform=&branch=&runtime_version=)
- POST/updates/channels/{channelId}Publish an update { platform, runtime_version, branch?, message?, launch_asset, assets[], extra?, rollout_percent? }
- PATCH/updates/channels/{channelId}/{id}Change the rollout: { rollout_percent } (0 pauses it)
- POST/updates/channels/{channelId}/{id}/republishRoll back: publish this older update again as the newest
- GET/updates/channels/{channelId}/certificateThe code-signing certificate the app embeds (updates.codeSigningCertificate)
- POST/updates/channels/{channelId}/embeddedSend apps back to their store build: { platform, runtime_version, branch? }
- POST/updates/channels/{channelId}/uploadsWhich files are missing: { files: [{ hash, size, contentType }] } → presigned PUTs
- GET/updates/cli.mjsThe publish CLI (node kodkila-updates.mjs publish …)
Expo Updates protocol v1: the signed manifest or directive for this app (headers expo-platform, expo-runtime-version, expo-channel-name…)
GET/updates/{channelId}/manifest
Public: no sign-in needed.
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
One update asset: a redirect to a short-lived signed link
GET/updates/assets/{channelId}/{hash}
Public: no sign-in needed.
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| hashrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
The channel's updates with devices per update and this month's device count (?platform=&branch=&runtime_version=)
GET/updates/channels/{channelId}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Publish an update { platform, runtime_version, branch?, message?, launch_asset, assets[], extra?, rollout_percent? }
POST/updates/channels/{channelId}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
201. The payload in data is not described in the spec yet.
Change the rollout: { rollout_percent } (0 pauses it)
PATCH/updates/channels/{channelId}/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Roll back: publish this older update again as the newest
POST/updates/channels/{channelId}/{id}/republish
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| idrequired | string, path |
Response
201. The payload in data is not described in the spec yet.
The code-signing certificate the app embeds (updates.codeSigningCertificate)
GET/updates/channels/{channelId}/certificate
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Send apps back to their store build: { platform, runtime_version, branch? }
POST/updates/channels/{channelId}/embedded
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
201. The payload in data is not described in the spec yet.
Which files are missing: { files: [{ hash, size, contentType }] } → presigned PUTs
POST/updates/channels/{channelId}/uploads
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
The publish CLI (node kodkila-updates.mjs publish …)
GET/updates/cli.mjs
Public: no sign-in needed.
Response
200. The payload in data is not described in the spec yet.