Web dashboard
Web dashboard
After Install, the dashboard is served from your API domain (e.g. https://updates.example.com/). Sign in with GitHub, Bitbucket Cloud, or GitLab OAuth, the same identity model as the CLI's login.
On the local evaluation stack (cmpatch selfhost local-eval), open http://localhost:8080 and sign in as local-admin@example.com (prefilled, one click). Same UI; auth is local-only.
Use the dashboard to browse teams, apps, and deployments; publish releases without memorizing CLI flags; and manage rollouts, promotion, and rollback from the UI.
The dashboard complements the CLI; it does not replace it. Some workflows (CI, scripting, cmpatch doctor) are CLI-only. Publishing can start in either place.
Navigation
After sign-in you land in your team's workspace:
| Area | What you do there |
|---|---|
| Apps | Create and rename apps, set each app's framework (React Native or Capacitor), and toggle code-signing requirements |
| Deployments | Staging and Production channels per app; copy deployment keys and SDK URLs |
| Deployment detail | Release history (including release notes), New release, deployment-level rollback |
| Release detail | Per-release metrics, status, and lifecycle actions |
| Metrics | Drill from apps → deployments → deployment metrics |
| Members | Invite teammates and manage roles |
| API tokens | Create and revoke cm_pat_… tokens for CI |
| Status | Confirm this install is running and up to date |
- React Native
- Capacitor
On a deployment detail page, expand the SDK configuration panel to copy CodemagicPatchDeploymentKey, CodemagicPatchApiUrl, and CodemagicPatchDownloadBaseUrl together. Those match the values you embed in the app; see Native setup.
Set the framework to Capacitor when you create a Capacitor app. The framework determines which commands and guides the dashboard shows, and cmpatch-capacitor can only look up Capacitor apps by name.
On a deployment detail page, expand the SDK configuration panel to copy the deployment key, API URL, and download base URL. These correspond to deploymentKey, apiUrl, and downloadBaseUrl in capacitor.config.ts; see Native setup.
Publishing a release
On a deployment detail page, click New release. You can choose how to publish:
- React Native
- Capacitor
Via CLI (command builder)
Builds a ready-to-run cmpatch release-react command from form fields:
- Platform (iOS / Android)
- Rollout percentage
- Target binary version
- Release notes
- Mandatory flag
- Code-signing private key path (when required by the app)
Copy the command and run it from your React Native project root or paste it into a CI job. The dashboard does not run the build for you; it generates the exact invocation with your server URL, app, and deployment filled in.
Bundle upload
Upload a pre-built .cmpatch artifact (from cmpatch bundle) directly in the browser:
- Select or drop the
.cmpatchfile - Set rollout, target binary version, release notes, and mandatory if needed
- Submit; the server queues the release worker job
Use this when CI already produced the bundle, or you built offline and only need to publish.
Via CLI (command builder): generates a cmpatch-capacitor release create command from these fields:
- Bundle path: the built
webDir, or a ZIP of its contents (required) - Target binary version: the exact native app version (required)
- Rollout percentage
- Release notes
- Mandatory flag
- Code-signing private key path (when required by the app)
The command includes your server URL, app, and deployment. Run it after your web build, or add it to a CI job. The dashboard does not build the app.
Bundle upload is not available for Capacitor apps. The dashboard accepts .cmpatch artifacts, which only the React Native CLI produces.
Managing existing releases
From release detail or the deployment release table, open actions on a release:
| Action | Purpose |
|---|---|
| Edit metadata | Change release notes, target binary version, mandatory flag |
| Rollout | Adjust rollout percentage on an active release |
| Promote | Copy a release to another deployment (e.g. Staging → Production) |
| Disable / Enable | Stop or resume serving a release |
| Rollback | Revert the deployment to the previous release |
Deployment-level rollback is also available from the deployment header when you need to revert without picking a specific row.
- React Native
- Capacitor
These map to cmpatch release patch, release promote, release enable/release disable, and release rollback, see Production control.
These map to cmpatch-capacitor release patch, release promote, release enable/release disable, and release rollback, see Production control.
Do not change the target binary version of a release published with cmpatch-capacitor. The server would treat both versions as the same native build and deliver releases for one version to the other. To target another version, publish the bundle again. See Binary version compatibility.
Metrics
Each deployment page opens with adoption over time and in-range totals. Its Metrics button leads to the full breakdown for that deployment: update outcomes by failure reason and the active-version distribution. The command palette (⌘K / Ctrl+K) reaches the same pages by app or deployment name. The deployment detail and release pages also surface status (uploaded, processing, published, failed, disabled) and SDK-reported counters. For CLI equivalents, see Analytics and metrics.
API tokens
Under API tokens, create personal access tokens for CI and automation. Tokens use the cm_pat_… prefix and are shown once at creation. See Security and access.
Status
Open Status in the sidebar to confirm this Patch install is fully running and up to date. It shows database, storage, and disk health, and whether a newer server release is available.
When to use the dashboard vs CLI
| Prefer the dashboard | Prefer the CLI |
|---|---|
| Copy a release command with the right flags | Run releases from CI/CD |
Upload a .cmpatch without a terminal (React Native) | Script bulk or repeated operations |
| Promote, roll out, or roll back with confirmation dialogs | inspect --wait, JSON output, cmpatch doctor (React Native) |
| Browse release history and keys with the team | Air-gapped or SSH-only environments |
For the Staging → Production workflow, see Releasing updates.