Skip to content

Conversation

@briangow
Copy link
Collaborator

@briangow briangow commented Nov 3, 2025

These PRs should be merged before the one I'm opening here: #44 , #50 , #53, #56 , #57 . The PR being opened here was built on top of those PRs in an attempt to avoid lots of merge conflicts (especially with #56). This PR can be reviewed by checking 440e955.

This PR makes use of the obfuscation function introduced in #50. It replaces instances of FARM_FINGERPRINT(GENERATE_UUID()) which created 64 bit integers that could be negative and varied from build to build. The goals of this new approach are to:

  • make the build repeatable by using a deterministic source for the obf_id function
  • use positive IDs
  • where possible, limit the ID to 32 bits

The approach for identifying a deterministic source was to step through these options until a unique source was identified:

  1. Use a unique ID from MIMIC if available
  2. Use trace_id, which is generally unique
  3. In cases where trace_id was not unique, combine it with another variable to make the combination unique

The instances of FARM_FINGERPRINT(GENERATE_UUID()) which set load_row_id were not updated as this column falls outside of the official CDM table columns.

@briangow briangow changed the title Bg dev use obf Use obf_id to create IDs Nov 3, 2025
@briangow
Copy link
Collaborator Author

briangow commented Nov 4, 2025

Updated with 888cfef to add missing project and dataset references when calling obf_id_str.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants