-
Notifications
You must be signed in to change notification settings - Fork 3
Description
With the implementation of the Privacy Preserved Stream Monitoring Service, stream events are written to a particular container. The container stores the stream events, which are then fetched with a GET request to do further stream reasoning.
To write a policy allowing the stream writer service to write stream events in a container the policy specified is,
ex:replayerPolicy a odrl:Agreement .
ex:replayerPolicy odrl:permission ex:replayerPermission .
ex:replayerPermission a odrl:Permission .
ex:replayerPermission odrl:action odrl:modify, odrl:read, odrl:create, odrl:append .
ex:replayerPermission odrl:target </pod/accelerometer-data/> .
ex:replayerPermission odrl:assignee <replayer#me> .
ex:replayerPermission odrl:assigner </pod/profile/card#me> .
Doing either POST
or PUT
requests will create resources which will be stored inside the /accelerometer-data/
container.
To read the stream events stored in these resources, with a GET request. Currently, a new policy check has to be done for each of the resources, even though the odrl:assignee
has the right to read the parent container i.e. the /accelerometer-data/
.
This creates extra policy check overheads, as well as uncertainty on how to specify the policies as then one has to write the policy for each of the files on the fly. Writing the policies can be cumbersome for each of the child resource created, as then the flow will be,
- Stream writer service writes to the pod with a POST request.
- Stream writer service updates the policies and appends the policy the exact child resource to be read by the service wishing to do a GET request (e.g. the monitoring service).
- The Authorization Service maintains a view to be updated with the latest policy being written.
- Monitoring Service does a GET request for the latest event, and the AS service evaluates the access for the exact child resource.
In a streaming scenario, with streams creating more than 4 events per second such flows can't be realized without adding additional latency which decreases the usability of the service.
Is there a way where one can specify the policy such that one can specify the policy on the container, and is allowed to read the child resources present inside the container as well?
Thanks!