This repo is now a set of tools I wrote to be able to use Auth0 as my authentication and authorization provider in an app I made which already had a users table in its db.
Since I still needed to keep my users table for some functionality, I implemented these tools to do bulk operations on my db and auth0's user store.
I know I could have chosen a different path for my app (I don't like the fact that I'm keeping users in two stores, feels wrong) but for now, I wrote these tools to help me achieve my urgent goals. And it worked!
This little and simple tool connects to PosgreSQL db, gets all users and generates a JSON file formatted according to Auth0 docs.
I needed this to bulk import all my users from legacy database to Auth0 without paying for a plan and making use of proper features like Custom Database Connections or the automatic lazy migration.
- Create
.envfile as stated below (only AUTH0... vars needed if you're only deleting). - Run
node delete-all-users.js.
- Clone repo.
npm i- Create
.envfile in project's root directory replacing with your information:PGHOST=ip.to.your.host PGUSER=username PGDATABASE=database-name PGPASSWORD=password PGPORT=port // The ones below are only needed to bulk delete all users. AUTH0_HOST=https://your.auth0.host.com AUTH0_TOKEN=bearer_token - Create sequelize models with this.
- You'll get a
.jsfile for each table and aninit-models.jswhich should be put indb/models/. We only need the table containing user data though.
- You'll get a
- The script comes with the structure I used. Modify
index.jsaccording to your user data and needs. You can uncomment theconsole.logs to check how's your data structured, or directly write it to the JSON file. - Run
node index.js - ???
- Profit
- Oh right, upload
users-for-auth0.jsonto the bulk import plugin in Auth0. - Done. You have migrated from your old rusty db users to an almighty corporate IDaaS production ready infrastructure.
This one puts your user id from legacy db to app_metadata field in Auth0 users.
- Configure code according to your user db.
- Run
node add-legacy-id-users.js
This one assigns roles in Auth0 users according to roles in my db.
- Modify code according to your user roles.
- Run
node add-roles-users.js
- Better explain how to adapt the tools to anyone's need. But if you need help just hit me up or open an issue.
- Add to this repo the actions and rules I wrote in Auth0 to consume this data.