You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every version (or "record") of each entity is immutable. We need to think through and implement a way to expose this information over the API.
One thing we obviously have to think through is access control. My initial reflex is to apply the permissions from an entity's current record to all past records. However, we need to be careful about leaking metadata: prehaps having access to read basic information about a client shouldn't convey access to its change history – even if only basic information is exposed in those records. We also need to be careful about inferences made with this metadata: by having access to basic read information but NOT secrets, one may still be able to infer that a secret was changed when a new record exists but no basic information has changed. (As a counter to this, though, we do currently store new records when an update call is made but which doesn't in fact result in changes... so this partial metadata is insufficient for a strong inference in this regard.)
Another thing we need to consider is how the data is represented – either as states, or as diffs. We may be able to punt on this, and simply display metadata: timestamp, responsible authorization, previous record, next record.
The text was updated successfully, but these errors were encountered:
Access control issues will be addressed by #73. Initially, only record metadata and not content will be exposed. If/when we chose to return a record's content (in the form of either a diff or a snapshot) the existing rules for the entity will apply.
Every version (or "record") of each entity is immutable. We need to think through and implement a way to expose this information over the API.
One thing we obviously have to think through is access control. My initial reflex is to apply the permissions from an entity's current record to all past records. However, we need to be careful about leaking metadata: prehaps having access to read basic information about a client shouldn't convey access to its change history – even if only basic information is exposed in those records. We also need to be careful about inferences made with this metadata: by having access to basic read information but NOT secrets, one may still be able to infer that a secret was changed when a new record exists but no basic information has changed. (As a counter to this, though, we do currently store new records when an update call is made but which doesn't in fact result in changes... so this partial metadata is insufficient for a strong inference in this regard.)
Another thing we need to consider is how the data is represented – either as states, or as diffs. We may be able to punt on this, and simply display metadata: timestamp, responsible authorization, previous record, next record.
The text was updated successfully, but these errors were encountered: