rpc_audit

Configures the auditing feature. By-default the system will audit all requests, but they use the request type. Sometimes this can lead to bad results, for example, if the request message contains sensitive data. In this case the audit block should be used to transform the audit message. The audit type should be set with audit<AuditType> { /* configuration * / }.

FieldsDescriptionDefault value

longRunningResponseTime

This setting is used to hint to other systems (e.g. alerting) that this request is expected to take a long time

false

retentionPeriod

Hints to other systems for how long they should keep this message

365 days

Additionally, the implement block can now use the ctx.audit: AuditData field.

FieldsDescriptionDefault value

retentionPeriod

How long should this message be saved before it can be deleted?

Defaults to using retentionPeriod from the audit block

requestToAudit

Transforms the audit message

None

securityPrincipalTokenToAudit

Allows the server to change the incoming token. This is only required if the token is not coming from a standard location.

ctx.securityPrincipalToken

Examples

Example: Setting the audit type

val listen = call<ListenRequest, ListenResponse, CommonErrorMessage>("listen") {
    audit<ListenRequest> {
        longRunningResponseTime = true
    }
} 

Example: Setting the audit message (Controller)

implement(MyCalls.listen) {
    ctx.audit.requestToAudit = TransformedRequest(42) // Mandatory
    ctx.audit.securityPrincipalTokenToAudit = principal.toSecurityToken() // Optional
    ctx.audit.retentionPeriod = Period.ofDays(10) // Optional
}

Last updated