Migrate from GX Cloud
Measured implements the same REST API that GX Core (the open-source Great Expectations Python library) uses to communicate with GX Cloud. Migrating your existing pipelines takes one environment variable change, no code changes required.
The one-liner
# Before
export GX_CLOUD_BASE_URL=https://api.greatexpectations.io
# After
export GX_CLOUD_BASE_URL=https://dq.your-company.com
That's it. Your GX Core Python code, YAML configs, and CI/CD pipelines continue to work exactly as before.
Step-by-step migration
1. Deploy Measured
Follow the Quickstart to get Measured running, or contact us to set up a managed SaaS instance. For self-hosted production deployments we recommend:
- Docker Compose or Kubernetes on your own infrastructure
- An external Postgres database (RDS, Cloud SQL, etc.) for state
- TLS termination via a reverse proxy (nginx, Caddy, etc.)
2. Create an API token
In Measured: Settings → API Tokens → New token
This replaces your GX Cloud token.
3. Update environment variables
| Variable | Old value | New value |
|---|---|---|
| GX_CLOUD_BASE_URL | https://api.greatexpectations.io | https://dq.your-company.com |
| GX_CLOUD_ACCESS_TOKEN | GX Cloud token | Measured token |
| GX_CLOUD_ORGANIZATION_ID | GX Cloud org ID | Measured org ID (from Settings) |
4. Migrate existing expectations
If you have existing expectations in GX Cloud, export them with GX Core:
import great_expectations as gx
context = gx.get_context(mode="cloud")
for suite_name in context.list_expectation_suite_names():
suite = context.get_expectation_suite(suite_name)
with open(f"{suite_name}.json", "w") as f:
import json
json.dump(suite.to_json_dict(), f, indent=2)
Then bring them into Measured, each becomes a set of rules on the matching data asset.
5. Migrate data sources
Measured does not have access to your GX Cloud datasource credentials. You'll need to re-enter connection strings in Measured:
- In Measured: Data Sources → Add data source
- Enter the same connection details as your GX Cloud datasources
Connection strings are stored encrypted in your own Postgres database, they never leave your network.
6. Verify
Run a checkpoint in Measured and compare results with your last GX Cloud run. They should match for the same data.
Compatibility notes
Measured supports all GX Core expectation types. If you're using any GX Enterprise-only expectations, check the Expectations reference for equivalents.
| GX Cloud feature | Measured equivalent | |---|---| | Expectation suites | Rules authored on data assets (GX Core compatible) | | Checkpoints | Rule groups, runnable, health-scored, can span multiple assets | | Data Docs | Results, dashboards & reports (with CSV / Excel / PDF export) | | Alerts | Alerts to any channel + a built-in incident lifecycle | | SSO | SSO/SAML on Enterprise | | – | New: AI rule generation, anomaly detection, Ask AI, and a native MCP server |
Rollback
To roll back to GX Cloud, just set GX_CLOUD_BASE_URL back to https://api.greatexpectations.io. Measured doesn't modify any data in your warehouses, only the results database.
Need help?
Reach out at hello@measured.cloud and our team will help you migrate.