Skip to content
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

Add "records" to the API #33

Open
mike-marcacci opened this issue Jun 1, 2019 · 1 comment
Open

Add "records" to the API #33

mike-marcacci opened this issue Jun 1, 2019 · 1 comment

Comments

@mike-marcacci
Copy link
Member

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.

@mike-marcacci
Copy link
Member Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant