Data syncing
🚨 7 breaking changes (+ 4 self-hosted only)
1 - Global CLI installation (#740)
The Nango CLI should now be installed globally by running npm install nango -g
(docs). Running CLI commands should no longer require npx
or npm
(e.g. nango generate
instead of npx nango generate
).
2 - Cloud-first developer experience (#760)
You no longer need to run Nango locally. In practice, you no longer have to run nango start
and nango dev
no longer runs Nango locally (simply watches and compiles your integrations files).
3 - Where to run CLI commands from (#760)
The Nango CLI commands should now be run from the ./nango-integrations
folder (instead of one level above), except for the init
command which creates the ./nango-integrations
folder. As a result, your CLI .env
file should be located inside the ./nango-integrations
folder (instead of one level above).
4 - Environment keys (#760)
With the introduction of environments (dev
and prod
), you will now have multiple secret and public keys (cf. docs). The name of the corresponding environment variables has been changes to:
NANGO_SECRET_KEY_PROD='<prod-secret-key>'
NANGO_SECRET_KEY_DEV='<dev-secret-key>'
5 - CLI commands (#760)
CLI commands have changed (run nango
to see the full list of commands), in particular:
sync:run|sr
has becomedryrun
(arguments have changed)deploy
takes an additional "environement" argument (dev
orprod
)- unnecessary commands have been removed
6 - NANGO_HOSTPORT
env var (#760)
By default the NANGO_HOSTPORT
CLI env variable is no longer required (unless if you are using OSS).
7 - Deletes previous Activity logs (#734) & sync runs info
Due to changes in the DB schema for Activity logs & sync runs (introduced by dev environments), the Activity logs & sync runs schema migration would cause too much down time. As a result, Activity logs & sync runs previous to the migration will be dropped. The information about syncs might be missing for the time between the release and your next sync run.
Self-hosted 1 - Required public key (#760)
The Frontend SDK Nango
constructor now requires a publicKey
in all cases. You can find your automatically-generated public key in the dashboard's Project Settings (docs).
Self-hosted 2 - Required private key (#760)
The Backend Node SDK Nango
constructor now requires a secretKey
in all cases. You can find your automatically-generated secret key in the dashboard's Project Settings (docs).
Self-hosted 3 - No Basic auth (#760)
The OSS version no longer uses Basic auth. Similarly to cloud, It uses Bearer headers for authentication. This is handled for you if you use the Backend Node SDK and CLI. Changes are required if you use the REST API (docs).
Self-hosted 4 - .env settings moved to the dashboard
The callback URL & HMAC settings were moved from the env variables to the Nango dashboard (in the Project Settings tab). They are specific to a given environment (dev
vs prod
).
Other features in this release
- Syncs tab + Syncs-related Activities (#712)
- Re-sync a connection in UI + API
- Perform dry runs of syncs with the CLI
- Return data in batches for large datasets in sync scripts
- Field mapping
- Model features (inheritance, nested ojects, array type)
- Webbooks when syncs complete
- Connection-specific auth params (#735)
- Logs in sync scripts
- Auto-update CLI
- Slack-specific user scopes
- Cloud-first DX (cf Quickstart) + simplified CLI
- Align OSS Project Settings on Cloud
- HMAC for cloud
- Dev environments
- Improved docs
- Auth with a link
- Fetch integrations creds from API (#685)
- Configurable websocket path for OSS (#677)
- New integrations: Netsuite, Gumroad, SurveyMonkey, Google Docs
- Pagination on the activity tab
- Import external OAuth creds in Nango with API
- Use the Proxy, even if the base URL is not configured
- Activity tab logs formatting & link to individual activity (#610)
- Listing running syncs on Connection page
- Deployment of syncs to cloud/nango with versioning
- Sync pause/start
- Custom buffer for refreshing tokens (#748)
- Use a link to trigger an OAuth flow (#603)
- Make the backend Node SDK compatible with NextJS, NestJS and Remix (#710)