Full versioning for Records and RecordTypes
- Dominant language
- Python
- Stars
- 1
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
One very cool part of Ashlar is that the schemas are all versioned under the hood, meaning that a developer using Ashlar can expose a full audit log of how a schema has changed over time and potentially allow an admin user to roll back to previous versions.
I wonder how much leverage we could get from implementing a similar versioning system for Records and RecordTypes. Records and RecordTypes are already append-only in that they use `active` and `archived` flags (respectively) to indicate whether or not they've been deleted, but to my knowledge we don't preserve previous versions when someone edits them.
Allowing full versioning would have some advantages:
- The history of the entire data model and record store could be auditable by an admin user
- Records could be migrated to new schemas while A) preserving old versions and B) preventing dupes from entering the database
Full versioning would also have some disadvantages:
- More complexity in the Ashlar data model
- A lot of work with unclear ROI -- we would need to know how badly admin users would want this feature
(This isn't a pressing issue -- just filing it here for future discussion. Feel free to tag at will!)
Contributor guide
No contributing guide indexed for this repository
Research direction
No files, tests, or entry points are named. Start by locating the implementations for Records and RecordTypes and documenting how their active and archived states are persisted; before coding, clarify the versioning model, migration behavior, deduplication rules, rollback scope, and acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100