gchq / event-logging-schema

Event Logging is an XML Schema for describing the auditable events generated by computer systems, hardware devices and access control systems
Apache License 2.0
25 stars 6 forks source link

gh-44 Add Approve and Reject elements and ApproveRejectComplexType #45

Closed at055612 closed 5 years ago

at055612 commented 6 years ago

Addresses #44

burnalting commented 6 years ago

As per my issue comment, could we not extend the object that an Authorise activity does to cover this scenario and the Reason in ApproveRejectComplexType be covered by the generic OutcomeComplexType?

burnalting commented 5 years ago

I still prefer my suggested modifications to the Authorise element by adding Accept, Approve, Reject,Other to the Action and (Add|Remove)Groups would become (Add|Remove) but happy to bow to the herd.

stroomdev66 commented 5 years ago

Shouldn't it be Accept/Reject and not Approve/Reject?

stroomdev66 commented 5 years ago

In response to @burnalting, isn't the purpose of this change to accept/reject stuff in a more general sense, e.g. terms and conditions as well as authorise changes etc? The Authorise action is purely about changing user permissions by adding/removing them from groups etc so I feel like it is better to have separate actions to describe this more general approval concept. Although in hindsight I do feel that the name Authorise as an action is misleading and should perhaps have been Permissions or ChangePermissions. It may be better to have Approval as a top level action and then Accept/Reject as inner action types, e.g. <Action>Accept</Action> rather than creating two new top level actions, i.e. the purpose is for some sort of Approval to be granted but the user may have chosen to accept or reject that approval. I feel this might be more consistent with the other event detail elements in the schema.

burnalting commented 5 years ago

OK. Happy with the concept. We improve the Authorise documentation to emphasise its utility with respect to permissions or access attributes. We add an Approval high level action to meet the concept of managing a contract.

at055612 commented 5 years ago

I have changed the schema, replacing Approve/Reject with Approval. I have also beefed Approval up a bit with more child elements so you can record the person who requested the approval.

Regarding @stroomdev66's comment about approve vs accept. They have different meanings. User A (in their position of authority) may approve the action of user B, e.g. approving their document. User B may accept something presented to them, e.g. accepting a system use banner. I have therefore created action values of Approve, Accept, Reject and Other.

burnalting commented 5 years ago

So, how does one request an approval activity? We indicate the Requestors in the Approval action, but what of the request. What would it look like?

We need to update/advise in documentation the Request/Approval (N person) pair as well as the standalone, I accept the Licence agreement.

at055612 commented 5 years ago

There are potentially a number of use cases here:

  1. User accepting an acceptable use banner
  2. User A requesting that somebody approves their thing
  3. User B approving(or rejecting) the approval requested by user A for thing X

We could add an Action of Request Approval and add an Approvers element that has <xs:element name="Approver" type="evt:UserComplexType" minOccurs="1" maxOccurs="unbounded">. There is a risk that we are trying to shoehorn too much into one schema action.

burnalting commented 5 years ago

We may be, but if we are going to make a change along these lines, I want to ensure we cover off on the initiation.

at055612 commented 5 years ago

Added notion of a request for approval, the approvers and added examples in docs

burnalting commented 5 years ago

Looks good to me. It also covers off on 2 person integrity events which may be found in Cross Domain activities.