Migration Guide: Shorebird Cloud to Sovereign TkushPatch
For organizations governed by strict data sovereignty mandates, central bank compliance rules (international banking compliance, sovereignty, and GDPR), or on-premise operational constraints, migrating from the public Shorebird Cloud SaaS to TkushPatch requires zero modification of application business logic.
This guide provides the complete end-to-end migration procedure.
1. Feature Comparison: Shorebird Cloud vs. Sovereign TkushPatch
| Architectural Dimension | Shorebird Cloud (SaaS) | Sovereign TkushPatch |
|---|---|---|
| Server Hosting | Third-party public cloud (US / GCP) | Your private servers, bare-metal VPS, or private VPC |
| Private Signing Keys | Managed and held by Shorebird | Locked within your own cryptographic signing engine HSM |
| Governance & Four-Eyes | Unilateral single-dev publishing | Mandatory Maker-Checker dual control for prod |
| Country Geo-Fencing | No territorial filtering | ISO Country code whitelist (e.g. Cameroon, Ivory Coast) |
| Multi-Factor Auth (2FA) | Relies on public Google/GitHub logins | Hardened CSPRNG OTP 2FA + Enterprise SMTP relay |
| Cost Model | Metered per-patch and per-request billing | Predictable enterprise licensing, unlimited traffic |
2. Step-by-Step Migration Workflow
- Register Project: Create your application in the TkushPatch Web Console.
- Update
shorebird.yaml: Pointbase_urlto your private TkushPatch server. - Update Dependencies: Switch mobile packages to
tk_ota_push. - Verification: Build a base release and incremental patch to confirm sovereign delivery.
Step 1: Provisioning the Application on TkushPatch
- Authenticate into your TkushPatch web console (
https://console.tkushpatch.domain.com). - Click New Project (
CreateProjectModal). - Enter your application name and Store bundle identifier (e.g.,
com.enterprise.banking). - The system assigns a sovereign
app_id(e.g.,8f2c3d10-4e5a-4b91-a8d2-11e4f901c238) and generates isolated RSA signing keypairs inside cryptographic signing engine.
Step 2: Updating shorebird.yaml
In your Flutter project root, edit shorebird.yaml to point toward your sovereign cluster:
# Before (Shorebird Cloud)
# app_id: shorebird-cloud-id-12345
# After (Sovereign TkushPatch)
app_id: 8f2c3d10-4e5a-4b91-a8d2-11e4f901c238
base_url: https://api.tkushpatch.domain.com
[!IMPORTANT] The
base_urlkey instructs both the CLI and client runtime engine to interact exclusively with your self-hosted backend. No telemetry or requests will ever route to Shorebird servers.
Step 3: Swapping Dependencies in pubspec.yaml
Replace the Shorebird package with the tk_ota_push SDK:
dependencies:
flutter:
sdk: flutter
# Remove: shorebird_code_push: ^x.y.z
# Add:
tk_ota_push: ^1.2.0
Update your Dart file imports:
// Before
// import 'package:shorebird_code_push/shorebird_code_push.dart';
// After
import 'package:tk_ota_push/tk_ota_push.dart';
Step 4: Compiling the Store Transition Release
Because TkushPatch private keys differ cryptographically from Shorebird-managed keys, existing field devices require a transitional Store release containing your new sovereign public key:
# Compile native binary release
tk-ota-push release android --artifact=aab
- Submit this
app-release.aabto Google Play Console or Apple App Store. - Roll out the release to your user base.
- Once users install this baseline, their handsets automatically begin polling your TkushPatch server.
Step 5: Publishing and Certifying Your First Sovereign Patch
With the transition release published, deploy an initial patch to validate pipeline integrity:
tk-ota-push patch android --release-version=2.0.0+1 --track=staging
- Open the
/approvalsdashboard in your web console. - Review the quarantined patch and sign it with cryptographic signing engine.
- Confirm reception on a QA test device.
- Once QA certifies the update, promote it to
stablein 1 click.