-
Notifications
You must be signed in to change notification settings - Fork 1
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
Data for Sandboxes Only #66
Comments
If the sandbox field is filled in then does it not make more sense to assume that status should be 'private', rather than over-riding and publishing as public - or am I misunderstanding? |
Well first I've made clearer: When Status is:
It's not great having 2 fields and having combinations in which one of them is ignored, but I can't think of a better way. I think your suggesting: If the "In Private Sandboxes" field is empty, then status works as it did before. If the "In Private Sandboxes" field has contents and ...
Hmmmm |
I'd be tempted to leave the first one (cos honestly, that's easier :-P ) and instead put a Data Quality Report check in: If status=public but "In Private Sandboxes" has contents raise an flag saying this is ambiguous and we assume public. |
Actually, maybe a cleaner way that avoids any issues about how it works in different ways is to make them be more explicit. Add a 4th status, "SANDBOX".
This means to put data in sandbox takes an extra step and is more explicit. |
#66 This is only available to transactions table in projects so far. But it is a general purpose framework that could apply to any status field.
#66 This is only available to transactions table in projects so far. But it is a general purpose framework that could apply to any status field.
#66 This is only available to transactions table in projects so far. But it is a general purpose framework that could apply to any status field.
#66 This is only available to transactions table in projects so far. But it is a general purpose framework that could apply to any status field.
I've just realised the API needs to be simplified. It has to be: "sandboxes" key in API returns all data (public and sandbox). If it just returns only the sandbox data, there is a problem merging the data and we have just handed that problem to the client. That sucks. We should merge on server, and make client easy. (The problem is that you can't just replace the sandbox data over the original data; if a key is a list then the list must be merged) |
We want to have some data that is private (ie does NOT appear to general public) but does appear in Sandboxes (these sandboxes are password protected so only certain people can see them).
Spreadsheets
Have new fields at relevant places alongside existing status fields, labelled "In Private Sandboxes".
This is a string, and people can put in several Sandbox ID's comma separated or none
When Status is:
Essentially then, the "In Private Sandboxes" field ONLY does something if the status is Private - hence it's name "In Private Sandboxes".
Sandbox definition
We will have a new model / database table, "Sandbox". This will have fields
This can be set via Django admin for now, but later options can be added to the GoLab admin interface so GoLab staff can make them themselves.
An API Key is set in the app config.
API
When getting project data from API (eg https://golab-indigo-data-store.herokuapp.com/app/api1/project/INDIGO-POJ-0XXX ) a Header or Get can be set; this is the API key.
Normally the response has
Now it will also have
The Plump website, will want public data and several sandboxes, so this will allow them to do that with one request.
Internal data
Internally, to support this the Project model will have a new field data_sandboxes, a JSON field. This will be
This field will be calculated at existing update_data stage.
This should be data in that sandbox ONLY; not public data too. This makes it easy to:
Web UI
This will make it easy to show in the admin UI of the app:
The first one should be done but the second one might not be done straight away
CSV, spreadsheets, etc
To start with, no sandbox data will appear in these. There are several issues to sort here:
The text was updated successfully, but these errors were encountered: