Skip to content

Researcher Directory (RDR export)

Joel Thibault edited this page Jun 20, 2024 · 4 revisions

The Researcher Directory flow (also known as the Workbench's RDR export) is a ~nightly job which exports and updated profiles or workspace information in the RDR, for downstream consumption in the public researcher directory: https://www.researchallofus.org/research-projects-directory/.

The export works by transforming our database models into Openapi RDR models, and sending them via the collocated APIs. Typically, only a diff from the prior export is sent.

Change management safety

Scope: any change to the profile or workspace model that impacts/should impact rdr.yaml

  • enum extension process: add new enum values on RDR side (example), wait for RDR release, make change on Workbench side
  • field addition: make the change on the Workbench side, notify the RDR team via #researcherdirectory
  • field removal: check with RDR and Research Hub that this field is not still actively used via #researcherdirectory, then remove the field
  • field rename: follow add process, then the remove process

Sample Payload

The RDR often wants us to send them a valid example JSON object which represents the changes we're making. This can be a real capture of an an API call or constructed for this purpose. One example is at the end of this doc: Data Model for the May 2022 Demographic Survey Update

Backfill

If changes to the RDR models have been made, as specified above, and these need to be backfilled for older workspaces, use the backfill CLI to trigger a resend of the data:

./project.rb backfill-workspaces-to-rdr

Gotchas

The RDR does not store operational users' workspaces. As a result, there is a large mismatch between the RW database and the RDR, which can lead to confusion in some situations.