-
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
API for messaging-related app config settings #2551
Conversation
This includes a ConfigProxy construct that allows for config property resolution, which is required now that we are allowing API overwrites of config properties set via "traditional" config means.
test failures look unrelated? some are just cancelled...? |
I agree, unrelated. I think they will resolve on a re-run. |
Codecov ReportBase: 86.23% // Head: 86.33% // Increases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## main #2551 +/- ##
==========================================
+ Coverage 86.23% 86.33% +0.09%
==========================================
Files 289 290 +1
Lines 15796 15921 +125
Branches 1986 1999 +13
==========================================
+ Hits 13622 13745 +123
- Misses 1786 1788 +2
Partials 388 388
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
Reviewing now for the purposes of thinking about extending this in fidesplus |
@adamsachs I'm totally just rubber ducking here so forgive the potentially dumb question, but did you try this using a
|
We would need to be careful here and think this through. If using either a multi-worker setup or auto-scaling with something like kubernetes each worker or pod would have it's own instance of |
Passing run #264 ↗︎
Details:
This comment has been generated by cypress-bot as a result of this project's GitHub integration settings. |
@pattisdr i think i've addressed all your comments in my most recent comments, if you could take another quick look to confirm things look good from your end that'd be great! otherwise, i think this is just about ready to go, i've gotten @ThomasLaPiana for
i'm not sure i'm totally following the suggestion - maybe we can sync up quickly offline tomorrow? i do want to try and get this PR across the line as it's holding up the system config work. for what it's worth, this was just meant as an initial iteration on the idea of a config proxy and providing a mechanism for mutable state in our config. i am expecting we'll need to refine some of this as we go, so unless we feel this is going down a path that will be hard to work from moving forward, then i think we should get this in place as a first iteration. |
01d9a79
to
adb29e3
Compare
the only cocdecov miss here is for some exception handling within |
Overall coverage stays the same, and that exception catches all exceptions not specific ones so I'd be ok with missing it. We can follow up later and look at main.py as a whole. |
Starting second pass shortly... |
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.
Thanks for this round of changes @adamsachs, looking good, just one small bug found -
src/fides/api/ctl/migrations/versions/c9ee230fa6da_add_config_set_column_to_application_.py
Show resolved
Hide resolved
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.
well done 🏆
Closes #2456
This enables the
PATCH /config
endpoint to support the following messaging-related config properties to be specified:in addition to the
property that was already supported via this API.
The application now leverages the values set for these messaging-related properties, too, using a new
ConfigProxy
construct.Any API-set values for these config properties will take precedence over the values set via "traditional" config mechanisms, i.e.
fides.toml
or ENV var.https://github.com/ethyca/fidesdocs/issues/56 has been created to track doc updates related to this and other functionality updates.
Code Changes
PATCH /config
endpoint to allow for updating messaging-related settings (i.e.notifications
settings andexecution.subject_identity_verification_required
setting)ConfigProxy
construct that allows for config property resolution, which is required now that we are allowing API overwrites of config properties set via "traditional" config means.ConfigProxy
only supports the config properties needed for storage and messaging use cases. Going forward, we may look to expand its use for more, or even all of our config properties. It will likely need refactors to support that.Steps to Confirm
nox -s dev -- ui
fides.toml
or via env varPre-Merge Checklist
CHANGELOG.md
-- Note --
I think I've got pretty good unit test coverage, and I've tested the functionality relatively thoroughly with a live app locally. But we could still used some improved end-to-end automated test coverage for the new functionality. What I am thinking is just leveraging some of our existing privacy request notification tests that use config property changes, but instead of updating the "traditional" config objects, have fixtures that update the API-set config objects instead.