V2 Violations endpoints
These endpoints are deprecated. Please use V3 Policy Management endpoints instead.
Overview
The Violations endpoints enable you to get violations on messages, signals, and streams. Use these endpoints to retrieve Effective Filtering v1 and Effective Filtering v2 violations.
Message Violations: A Block or warning that happens when sending messages with terms that match the violation policy. EFv2 provides DLP enforcement on the content (except mentions) of IMs, MIMs, chat rooms, wall posts, shared signals, posts on behalf of, shared wall posts, shared articles, blasts, forwards and replies.
Signal Violations: A Block or warning that happens when creating or updating signals with terms that match the violation policy. For signals, only the signal name is analyzed. Note that if a signal created before enabling DLP contains violations, DLP will block the signal when trying to “push signal”.
Stream Violations: A Block or warning that happens when creating or updating rooms with terms that match the violation policy. For streams, the DLP analyses the name and description of internal and external rooms.
When EFv2 is enabled, Symphony may block or warn the user from sending a message, creating or updating rooms or signals if any of the terms used by the user match the terms in a policy. Any message that matches a term from a policy will be recorded.
If the message action is block, the user cannot send the message, create or update the room or signal.
If the message action is warn, the user can ignore the warning (and send the content) or edit the content
Messages and signals are encrypted end-to-end. To decrypt messages, you must be a “ceservice” user with the Service Account role of “Expression Filter Policy Management.”
With EFv2, the admin can create policies to parse the content of:
Messages: violations for these can be retrieved via the https://{{agent.url}}/agent/v1/dlp/violations/message/?startTime=1504234983000&endTime=1504237983000&limit=100&next= API
Room names and description - aka streams: violations for these can be retrieved via the https://{{agent.url}}/agent/v1/dlp/violations/stream/?startTime=1504234983000&endTime=1504237983000&limit=100&next= API
Name and rules of signals - violations for these can be retrieved via the https://{{agent.url}}/agent/v1/dlp/violations/signal/?startTime=1504234983000&endTime=1504237983000&limit=100&next= API
The parameters and behaviors are the same for all three APIs.
Key Parameters
Time range of violations
Number violations in each request
Next offset for next chunk. Value is null for first request
Key Headers
Session token and Key Manager Tokens of the ceservice user
Curl Examples
Viewing EFv1 violations
Violations triggered by EFv1 can be retrieved using the same violations APIs as for EFv2 violations. The JSON response structure will be exactly same as V2, except that the version will be V1.
User experience of V1:
The JSON Response for this scenario is shown below. Note that "version": "V1" indicates this violation event is for the v1 policy
Viewing EFv2 violations
The response from the server is controlled by the “limit” parameter. “nextOffset” is the starting point of the violation records.
When nextOffset is null, there are no records for that startTime, endTime, and content type. (If enforceExpressionFiltering is true in the request, that means client is v2 compatible)
The violation response contains a list of:
Matched policies
Matched term(s)
Policy action: block or warn Violations resulting from DLP will have version V2
Case 1: A term is blocked, and the user needs to edit the message.
JSON-snippet:
In this scenario, the user has been blocked and the message was not sent. Flag: ignoreDLPwarning wouldn't make difference because user MUST change the content in order to send the message.
The UI for this scenario is shown below:
The corresponding JSON for this violation in this scenario (BLOCK):
Case 2: The user is warned about a term and edits the content of their message.
JSON-snippet:
In this scenario, the user has been warned and the message was not sent.
The UI for this scenario is shown below:
The corresponding JSON for this violation in this scenario (WARN):
If the user decided to edit the message, that edited message is treated as a brand new message: there is no further violation event assuming the content in this new message does not trigger any policies
Case 3: The user is warned, accepts the warning, and sends the message as-is
JSON-snippet:
In this scenario, the system will generate 2 violation events. If a user chooses to send a message that flagged a warning, it will generate two violations back-to-back. The two events can be correlated based on the timestamp in the records.
The first time the user sends the message, a warning message will appear, similar to case 2. If the user continues to send the message without editing the flagged term, 'ignoreDLPwarning=true' flag is added to the message.
By choosing to ignore the warning, the message is flagged again, and 'ACCEPTED_WARNING' flag is added to the message.
The corresponding UI is shown below
The corresponding JSON for this violation in this scenario:
Viewing violations triggered by legacy clients
Legacy Clients are older clients that do not have functionality to display the Warn or Block UI of EFv2. There will be no warning or block message preventing them from sending messages that violate any policies.
DLP parsing is still done and the violations will be recorded, but the users will not be aware of this violation
JSON-snippet:
Violation API FAQ
What am I not always seeing violations? ** Make sure you have a “ceservice” role and have the correct privileges to call this API. ** If Symproxies are unavailable, the default behavior is to continue, even in violation of a policy.
🚧 Required PermissionsCalling these endpoints requires a
ceservice
account. For more information, see the Symphony Administration Guide.See Bot Permissions for a list of roles and associated privileges.
Last updated