Table permissions#10
Conversation
the table description payload does not contain any notion of table ownership or permissions; this defines 3 headers that can be used to set and get minimum permissions without encumbering the table description document format(s) these headers are entirely optional and would only be applicable if a service wants to expose and allow modification of permissions via the API
|
If headers prove to a good/acceptable way to get and set permissions, this may also be a suitable approach to manage other optional attributes. |
brianmajor
left a comment
There was a problem hiding this comment.
Our other (minimal) use of headers, though not part of any spec at the moment, is for communicating your authentication status. If I call a service with my credentials I see
x-vo-authenticated: bmajor
Should we strive for a convention where IVOA headers start with x-vo-?
I think this is a good idea, but we should use If someone outside our community notices these odd headers being sent to their service they might try to use a search engine to find out where they are coming from. Putting |
Possible solution using HTTP headers to convey minimal permission related information.
For issue #8 this is option 3.
As optional headers, any service can ignore request headers they do not support and only include response headers they do support.
This adds 3 optional headers that can be included in:
PUT /tables/{name} -- set permissions during create table op
POST /tables/{name} -- set permissions on an existing table
GET /tables/{name} -- headers will describe the current permissions
The 3 headers are: x-vosi-anon-read, x-vosi-group-read, x-vosi-group-write.
In addition, a 4th header specifies the owner of the table: x-vosi-owner and is only used in output from the service (GET requests).
Detail to be described in the standard document: a lack of x-vosi-owner header can be interpretted as "this is a normal table"... maybe we also specify that a missing x-anon-read header means the same thing as true: this is a normal table anyone can query?
pros:
cons: