ForgetMe gRPC API

The ForgetMe gRPC API contains an RPC method for requesting the removal of data in event logs.

Proto file structure

The ForgetMe API is defined in the forget.proto file and RPC files containing status and error messages. See gRPC setup to download the files.

└── nuance
    ├── fabric
    │   └── forget     
    │       └── v1   
    │           └── forget.proto  
    └── rpc 
        ├── error_details.proto   
        ├── status_code.proto     
        └── status.proto

ForgetMe

The ForgetMe service offers one RPC method for requesting data removal.

Method Request and response Description
Forget

ForgetRequest

ForgetResponse

Starts a forget request and returns a response (unary).

ForgetRequest

Input message that requests the removal of event logs based on a user ID or session ID.

Field Type Description
forget_id string Mandatory. A user or session ID from a Mix runtime request. See ForgetMe essentials.
forget_type ForgetType The type of forget_id: USER (default) or SESSION.
client_data map<string,string> Optional. Client-supplied key,value pairs (up to 20) to inject into the logs.
ForgetRequest (
    forget_id = 'eric@aardvark.com`,
    forget_type = USER
    client_data = {'app_os':'Centos','company':'Aardvark'},
)

ForgetType

Input field specifying whether forget_id represents a user or session ID in a request to a Mix runtime service.

Name Number Description
USER 0 A user ID from a request to a Mix service. Default.
SESSION 1 A session ID from a request to to a Mix service.

ForgetResponse

Output message in response to a forget request.

Field Type Description
nuance.rpc.Status Status Success means the forget request is accepted.

This is a successful response:

2023-02-08 10:47:52,523 INFO : Received response: status {
  status_code: OK
  status_sub_code: 200
  status_details {
    message: "Forgetme request is accepted, traceId: a083752c-2792-45a5-97ef-91da55b5fa3a"
  }
}

See ForgetMe payload for a sample event log, and ForgetMe essentials.

The ForgetMe service does not check that the forget_id represents a valid user or session ID. It simply writes an event log.

This request was unsuccessful as the app ID was not found or did not have the correct permissions:

2023-02-08 10:54:27,073 INFO : Received response: status {
  status_code: NOT_FOUND
  status_sub_code: 11
  status_details {
    message: "Internal error, TraceId: 4e6a3d49-c3ab-4a28-a507-94cc1ffd62ec"
  }
}

Scalar value types

The data types in the proto files are mapped to equivalent types in the generated client stub files.

Scalar data types
Proto Notes C++ Java Python
double double double float
float float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers. If your field is likely to have negative values, use sint32 instead. int32 int int
int64 Uses variable-length encoding. Inefficient for encoding negative numbers. If your field is likely to have negative values, use sint64 instead. int64 long int/long
uint32 Uses variable-length encoding. uint32 int int/long
uint64 Uses variable-length encoding. uint64 long int/long
sint32 Uses variable-length encoding. Signed int value. These encode negative numbers more efficiently than regular int32s. int32 int int
sint64 Uses variable-length encoding. Signed int value. These encode negative numbers more efficiently than regular int64s. int64 long int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long
sfixed32 Always four bytes. int32 int int
sfixed64 Always eight bytes. int64 long int/long
bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode
bytes May contain any arbitrary sequence of bytes. string ByteString str