Live migration trial report — 2026-07-19
FlagTGL was tested end to end against live Unleash, ConfigCat, and Flagsmith trial accounts on July 19, 2026. Each source contained the same representative feature model, and each provider was migrated into a separate FlagTGL organization.
Trial fixture
| Capability | Development / Test | Production | Targeting |
|---|---|---|---|
checkout_redesign | true | false by default | true for the source platform's pro-user segment |
checkout_theme | classic | midnight | Typed string variation |
max_cart_items | 10 | 25 | Typed numeric variation |
| Segment | pro-canada where supported | Same | plan == pro and country == CA; ConfigCat's live fixture uses its supported one-condition pro-users segment |
Provider-native concepts were preserved only when they have a coherent FlagTGL equivalent. Unleash variants became typed FlagTGL variations, ConfigCat settings and environments retained their keys and types, and Flagsmith remote-config values and segment overrides became FlagTGL variations and targeting rules. Provider analytics, users, API keys, audit history, and third-party add-ons were intentionally excluded.
Results
| Source | Preview | First migration | Idempotent replay | Runtime evaluation |
|---|---|---|---|---|
| Unleash | 1 project, 2 environments, 3 flags, 1 segment | Passed | 3 flags unchanged | Passed in development and production for matching and non-matching contexts |
| ConfigCat | 1 config, 2 environments, 3 flags, 1 segment | Passed | 3 flags unchanged | Passed in Test and Production for matching and non-matching contexts |
| Flagsmith | 1 project, 2 environments, 3 flags, 1 segment | Passed | 3 flags unchanged | Passed in Development and Production for matching and non-matching contexts |
The replay test is significant: running the same source migration again updates or leaves matching resources in place instead of duplicating them.
Issues found and corrected
- Updated Flagsmith discovery to use current project-scoped feature and segment APIs, environment feature states, and identity/segment override endpoints.
- Updated ConfigCat import for current V2 typed setting values, segment conditions, segment details, and deterministic environment ordering.
- Updated Unleash import to fetch full feature strategy details, normalize variant weights, map segment IDs to stable keys, and preserve disabled fallthrough behavior.
- Normalized portable segment rules to the evaluator's rule-group shape. This prevented a malformed migrated segment from matching every context.
- Added encrypted-at-rest storage for all migration credentials, including LaunchDarkly, using authenticated AES-GCM encryption.
Credentials and rerunning the trials
The live provider logins, API credentials, resource IDs, and local FlagTGL trial login are stored outside the repository in:
/Users/anshumanbiswas/.flagtgl/trials/2026-07-19-migration-trials.env
The file is mode 0600. Treat it as a secret, do not commit it, and rotate or delete the provider credentials when testing is complete. The Unleash trial token expires on August 18, 2026; other credentials should be reviewed in their provider consoles before reuse.
The disposable local target database used for this run was /tmp/flagtgl-migration-trials-20260719.db. Provider fixtures are live and can be migrated again into a fresh FlagTGL organization using the saved credentials.
The live portable result is also stored as the credential-free CI capture at backend/internal/api/testdata/portable-provider-live-capture.json. CI replays that capture through the authenticated migration endpoints and verifies every captured project, environment, generated target SDK credential, flag field, typed variation, environment state, targeting rule, rollout, segment, idempotent resync, and disconnect behavior. Focused provider HTTP fixtures separately verify authentication headers and current response parsing.
Use the documented replay, live, and capture test modes to recheck provider APIs or deliberately refresh the CI baseline when a provider changes.
This trial covers the representative fixture above, not every provider-specific feature. Review the capability matrix, the source-specific discrepancy section, and the production cutover checklist for customer migrations.