-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build and Accept Backend AC Strings #4295
Conversation
…his to IABTCF_AddtlConsent in TC mobile data. Have the accept all and reject all fides strings be concatenations of tc and ac strings where applicable. - Adds ac_string to the TCModel which is an internal construct because it makes sense to build that at the same time we build this model.
- When passing in a fides string, separately split off a TC string and an AC string.
Passing run #4779 ↗︎
Details:
Review all test suite changes for PR #4295 ↗︎ |
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #4295 +/- ##
==========================================
+ Coverage 87.76% 87.81% +0.05%
==========================================
Files 331 333 +2
Lines 20946 21058 +112
Branches 2718 2740 +22
==========================================
+ Hits 18383 18493 +110
- Misses 2096 2097 +1
- Partials 467 468 +1
☔ View full report in Codecov by Sentry. |
…tring is in an unexpected format, not just the TC string. Update adding an `ac_vendor_consents` section to the TCModel to mirror what is added for the different sections to build the TC string, instead of adding the AC string to that model directly.
…t. Update doc strings for clarity.
@NevilleS matched this against the original AC, realized I overlooked EDIT: Yes, we need separate AC mode setting |
Ah! I need to make this change, it's allowed in my implementation:
EDIT: Done! |
…first core TC string portion is required for a complete signal
- Allow AC strings in the format "1~" - Build reject-all strings in the format "1~" instead of None - Accept all strings where there are no AC systems are in the format "1~"
…ides string supplied.
…ns with other legal bases beyond Consent have been defined. This is technically possible but unlikely, but we don't want these to show up in the Experience. Specifically, Google doesn't allow AC vendors to claim legint as their basis. Update base privacy declarations filter for Experience to look for 3 things: 1) Privacy Declarations with valid TCF Data Use AND Consent legal basis (will pick up AC systems that match this criteria if applicable) 2) Privacy Declarations with valid TCF Data Use AND Legitimate Interests legal basis AND NOT AC Systems. 3) AC Systems without Privacy Declarations This also fixes a potential legitimate bug where AC Systems with a TCF purpose with a Legitimate Interests Legal Basis defined could technically show up under the Purpose Consents section. This also means, AC Systems with Privacy Declarations with any other legal basis don't show up, or Privacy Declarations specifically defined with non TCF purposes only don't show up.
- Throws error if attempting to save preferences against AC string unless AC mode enabled - New: Restrict AC systems from experience altogether unless AC mode enabled - New: Throws error if attempting to save preferences against with a TC string or against TCF preferences directly unless TC mode enabled (previously, ignored, but saved nothing) - Only build contents for IABTCF_AddtlConsent if AC mode enabled - Only include AC string in accept all and reject all strings if AC mode enabled
…ta format we get an error.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks great @pattisdr, great work! really just some nits, but i think the functionality is just about good to go from my POV and it's also an easy-to-follow implementation!
🙏 Thanks so much for your review here @adamsachs, it's my bigger one and unblocks several other pieces. I'll get this updated and ready to go! |
- Add validation to enforce that TCF mode must be enabled for AC mode to work - Split fides_string pieces into their own separate file - Remove TCF enabled check when building experience meta
Closes https://github.com/ethyca/fidesplus/issues/1162
Description Of Changes
Add proper AC string support from the backend, both in saving privacy preferences from a string, and in returning meta information when building developer-friendly privacy experiences. Behavior nuances documented here.
❗ IMPORTANT: This adds a new AC Enabled setting! This must be set to True for AC functionality to work.
Code Changes
Saving Privacy Preferences:
<tc_string>,<ac_string>
.Retrieving Privacy Experiences
General
ac_vendor_consents
section to support building an AC string too.Steps to Confirm
Note these instructions do not require you to be running the dictionary
tcf_enabled
ANDac_enabled
to True in your toml file or use an env varGET Experiences with AC String
include_meta=true
query parammeta
section of the response. Theaccept_all_fides_string
concatenates the TC string and the AC string. The TC string still goes under theIABTCF_TCString
section and theIABTCF_AddtlConsent
is now populated with the AC String. Reject all string looks like this:1~
. This is also what the accept-all string looks like if there are no AC systems.PATCH Preferences with AC strings
System
gacp.100
was pulled off of the AC string and saved as a Vendor Consent. gvl.8 was saved per previous releases.Pre-Merge Checklist
CHANGELOG.md