mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-02 13:40:17 -05:00
9d12d98855
GitOrigin-RevId: 71258d5d7ca1b6700d70546f2c3be672f5524bef
40 lines
No EOL
1.7 KiB
Markdown
40 lines
No EOL
1.7 KiB
Markdown
# Sync User Entitlements
|
|
|
|
Entitlement information for insitutional (university) sso users is stored in
|
|
both the mongo users collection and the postgres v2_user_universities table.
|
|
The mongo users collection is authoratative but these need to be in sync for
|
|
everything to work properly.
|
|
|
|
This script takes exports from both mongo and postgres, finds mismatches, and
|
|
then corrects the data in postgres so that it matches mongo.
|
|
|
|
## Exporting users data from mongo
|
|
|
|
Follow the directions in `google-ops/README.md` for exporting data from mongo
|
|
and copying the files to your local machine.
|
|
|
|
Run the following user export command.
|
|
```
|
|
mongoexport --uri $READ_ONLY_MONGO_CONNECTION_STRING --collection users --fields '_id,email,emails,samlIdentifiers' --query '{"samlIdentifiers.providerId": {"$exists": 1}}' --out user-entitlements.json
|
|
```
|
|
|
|
**Note: this file contains PII and caution must be exercised to insure that it
|
|
is never transferred or stored insecurely and that it is deleted ASAP**
|
|
|
|
## Exporting data from postgres
|
|
|
|
Connect to postgres by running `heroku psql -a electric-leaf-4093`
|
|
|
|
Run the following v2_user_universities export comand.
|
|
```
|
|
\copy (select uu.user_id, uu.email, uu.cached_entitlement, ud.university_id from v2_user_universities uu LEFT JOIN university_domains ud ON uu.university_domain_id = ud.id) to 'cached-entitlements.csv' with csv;
|
|
```
|
|
|
|
**Note: this file contains PII and caution must be exercised to insure that it
|
|
is never transferred or stored insecurely and that it is deleted ASAP**
|
|
|
|
## Run sync
|
|
|
|
```
|
|
node scripts/sync-user-entitlements/sync-user-entitlements --user-entitlements user-entitlements.json --cached-entitlements cached-entitlements.csv --commit
|
|
``` |