-
Notifications
You must be signed in to change notification settings - Fork 373
Open
Labels
SpiceDBkind/feature requestSomething is missingSomething is missingkind/proposalSomething fundamentally needs to changeSomething fundamentally needs to change
Description
Problem Statement
Downstream SpiceDB consumers may not be the same groups of people maintaining the schema. It would be useful to have some tooling to help folks roll out phased migrations of the schema itself.
Solution Brainstorm
This is pure strawman, just getting something on paper:
definition document {
@deprecated(warn)
relation group: group
@deprecated(error)
relation folder: folder
}
In this example, writing document:foo#group@group:bar would result in a warning on write (i.e. document#group has been marked deprecated, please migrate away) but would still write the relationship to the datastore. Writing to document:foo#folder@folder:bar would result in a write error (document#foo has been disabled) and would not write to the datastore.
A relation can be phased out by:
- Marking it as
deprecated(warn) - Waiting for users to notice / migrate away
- Marking it as
deprecated(error)so that no new data can be written - Deleting all existing relationships for that relation
- Removing the relation from the schema
Thoughts?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
SpiceDBkind/feature requestSomething is missingSomething is missingkind/proposalSomething fundamentally needs to changeSomething fundamentally needs to change