Comments (6)
I like the idea of an "opt-out" migration: most users are going to prefer that if we rename categories/uses/etc., we just automatically update them to the new ones. That's not even a breaking change, it's just basically a cosmetic update. This'll work for users that are fully server-side.
For users that leverage the CLI and the YAMLs, I think also supporting a push/pull script to effectively "codemod" them up to date would be perfect 👌. We could also in theory support the ability to track "deprecated" keys that are no longer supported, but we could detect them being used and throw a warning, that'd be 🤌
Let's get these new uses merged in, and then support an "auto-migration" on the server-side immediately and then carve out a path for the "code mod"? That sounds good
from fideslang.
@mfbrown which consent epic was this required for? Let's just put it in that epic.
from fideslang.
I'm going to be breaking this down into smaller issues
from fideslang.
@mfbrown For the migration script, are there any hard restrictions here?
i.e. we have multiple ways to pet this puppy:
-
Add a data migration that runs automatically like all of our other database migrations. This is very opaque and somewhat intrusive as the user can't really choose when/how this happens nor compare changes. This feels potentially dangerous to me, as people may actually want to keep using the current taxonomy. We would be intrusively changing data under their noses in a way that isn't easy to revert. I don't really like this plan even though the nice part is that it happens automatically. Good for some users, bad for others potentially.
-
write a python script that leverages existing functionality (such as
pull
, etc) to pull everything from the server, make the changes in the local manifest files, and then give them the option to update the server. After this we'd then need to still delete the old default taxonomy from the server? or at least set old values to no longer be considered part of the default taxonomy. -
Maybe something else I haven't thought of
These are two very different paradigms, and we'll probably need a bit of both to get exactly what you're asking for here. Since this is a non-breaking change technically, we can push this out and update fides core
to 1.4, and then follow-up with a migration strategy. The long we wait to get this into Fides core the more people will be on the old Taxonomy, so I'd rather get it out earlier so we can also give ourselves some breathing room on implementing the Migration strategy and don't feel the need to rush it
NOTE: Since this won't be the last time we make these kinds of adjustments to the default taxonomy, as part of this I'd actually like to plan out a larger strategy/method to continually go about these migrations. Hence my ask for additional time here, I think we should set ourselves up for future success by doing things right in the present 🙂
from fideslang.
cc @NevilleS for the migration discussion
from fideslang.
@NevilleS good idea
I think this time around doing the auto-migration path is perfectly fine, but given the time/resources I'd love to plan out a more standard migration path(s) for when we update the taxonomy in the future
from fideslang.
Related Issues (20)
- Consider updating type annotation of `meta` attribute to be more permissive HOT 2
- Duplicate records in .fides/db_dataset.yml HOT 4
- [Backend] Add Optional PrivacyDeclaration.cookies field HOT 1
- Taxonomy visualizer image not showing HOT 2
- Unpin to pydantic < 1.10.0 HOT 4
- Consolidate build/tool configuration into `pyproject.toml` HOT 1
- Build default taxonomy from CSV HOT 2
- The `meta` field validation is too loose HOT 1
- [Epic] Add the ability to gracefully deprecate parts of the default taxonomy HOT 2
- An update to the key finder function appears to have broken something when trying to upgrade in `Fides` HOT 1
- issues with mypy typing when importing `fideslang` HOT 5
- Deprecate legal_basis , legitimate_interest, and legitimate_interest_impact_assessment in taxonomy HOT 4
- Update fideslang data uses to support GVL HOT 1
- Update fideslang data categories to support GVL HOT 2
- Deprecate Similar Fields on Collection and Field
- Overhaul docs for Fideslang 2.0
- Update to Pydantic 2.X
- Deprecate Registries HOT 1
- Add some missing TCF-related fields to `System` model HOT 1
- add `flexible_legal_basis_for_processing` field HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fideslang.