Contents
4.1.1 Stateful Operation Service Proxy
4.1.3 Stateless Operation Service Proxy
5.6 Update user data (Attributes)
5.13 Anonymize Users information (RGPD)
6 Auxiliary Services to get data
6.3 Get User Custom Attribute List History ID
1 Document Change Management
| Release | Date | Author | Comments |
| 1.0 | 06/2020 | RF | First release |
| 1.1 | 12/2020 | RF | Add the services of Create/Search/Search AtAdd start page option on Update user |
| 1.2 | 09/2022 | RF | Add the service to Create Generic Resource |
| 1.3 | 02/2023 | RF | Add the service Change Owning StructureAdd the service Change Owning Entity |
| 1.3.1 | 06/2023 | RF | Usage of the User Custom Attribute List History |
| 1.4 | 07/2023 | RF | Add services to add/update/delete the User Custom Attribute List History |
| 1.5 | 05/2024 | RF | Add service to anonymize the User informationAllow clear the e-mail and Skype ID on UpdateUserData |
| 1.6 | 03/2026 | RF | Update document to Bruno software |
2 Introduction
Several REST web services are provided allowing tenants and customers to interact with Triskell virtually from any environment/platform. This document describes how to manage the update of the user parameters and data.
|
Usually, Web services are designed to manage small set of data.
If you are not sure they will cover your requirements, please contact us at: support@triskellsoftware.com.
|
In this document there are some examples about how to send information to Triskell using Bruno plug-in, from Bruno Software. You can get Bruno for free here. Then you just need to import the attached file "TriskellAPI.yml" and the file “NextRelease-environment.json”. The last file is used to set environment variables, so it can be easily tested on different environments.
It's very important to test your code on the Nextrelease environment before delivering it on the production environment (https://nextrelease.triskellsoftware.com/triskell/). In this document examples given are using Localhost as testing environment.
|
Some internal id's can be different between testing and production environments. Please review the hardcoded id's before delivering it on production environment.
|
3 Authentication
From the authentication point of view, there are two kinds of web services on Triskell: stateful and stateless.
Most of the REST services provided are Stateful, which means that interacting with them requires a login first.
On the other hand, Stateless services will do one user authentication on every call.
Stateless services are intended to be used by clients not capable of managing a session cookie to maintain a dialog with the server.
| In this document, only Stateless services will be denoted, most of the services being Stateful by default. |
Two services are provided to log in and log out of Triskell.
Stateless services must provide their authentication parameters as HTTP Headers on every service call.
3.1 Login Service
The login service must be invoked before any other stateful Triskell web service call. It receives a user identifier and a password as URL parameters.
| URL | https:// SERVER /triskell/service/rest/login/user/{userId}/passwd/{pass} |
| HTTP Method | GET |
| URL Parameters |
{ userId }: String containing user identifier as ‘user@tenant.com’ URI encoded { pass }: String containing a Base64 encoded MD5 hash of the password |
Note: the user used to make the login need have the right privileges/roles in the Triskell to use/change the data. Otherwise, it will not be possible to use/change the data and will return an error of missing privileges.
| When login is successful it returns a HTTP response code ‘200 – OK’An authentication failure will return HTTP response code ‘401 – UNAUTHORIZED’ |
Example:
3.2 Logout Service
Logout service provided for closing the session at the server.
| URL | URL: https:// SERVER /triskell/service/rest/logout |
| HTTP Method | GET |
Example:
| Don't forget to close your session when finishing your REST conversation |
4 Service Proxies
Service Proxies are a simple way of executing remote procedure calls Operation services.
Requests and responses are exchanged as JSON objects with the clients, to enhance easiness and interoperability.
The proxy input object DataRequest, is compound of the following properties:
- Id: numerical identifier
- Params: A simple JSON object containing only primitive type properties.
- Objects: Array of JSON objects of any type.
These properties must be present in the object being it used or not.
Example of DataRequest:
|
{ 'id': 1, 'params': { "param_1":"A", "param_2":2 } , 'objects': [ {"NAME":"OBJECT_1"}, {"NAME":"OBJECT_2"} ] } |
The proxy output object Result, is compound of the following properties:
- success: Boolean indicating successfulness of the request.
- message: Error description.
- resultType: Numerical identifier, error severity (1-OK, 2–Warning, 3-Error)
- data: a String or a JSON object
- id: a numerical identifier
- authash: session identifier
- executime: service execution time in nanoseconds
- i18NParams and i18NMessageId: used on internationalized error message
Example of DataResult:
|
{ "authash":"dd06d7c94cd9a73f62b45c5b54247bce", "executime":10997027, "success":true, "message":null, "resultType":1, "data":"Hello world !!!", "id":0, "i18NParams":[], "i18NMessageId":"" } |
4.1 Operation Service Proxy
This is a Web Service to execute operations on a Triskell OperationService.
An OperationService groups related functionalities allowing to access then by his Operation Name.
OperationServiceProxy has two implementations, stateful and stateless.
4.1.1 Stateful Operation Service Proxy
Any stateful service requires a Login to be done before submitting any request to it.
4.1.2 WS Operation execute
Execute a service operation call. DataRequest is sent attached to the body of the HTTP request.
| URL | URL: https:// SERVER /triskell/service/rest/proxy/operation/execute/{serviceName}/{operationName} |
| HTTP Method | POST |
| Content-Type Header | application/json |
| URL Parameters |
{serviceName}: String containing the name of the service to be called {operationName}: String containing the operation name |
4.1.3 Stateless Operation Service Proxy
This web service does not require doing a previous Login on Triskell, a user authentication is done on every request.
4.1.4 WS Operation execute
Execute a service operation call. DataRequest is sent as a URL parameter.
| URL | https:// SERVER /triskell/service/rest/proxy/operation/execute/{serviceName}/{operationName}/{payload} |
| HTTP Method | GET |
| Content-Type Header |
X-Account-Name Header: Optional, username@tenantdomain X-API-Key Header: Optional |
| URL Parameters |
{serviceName} : String containing the name of the service to be called {operationName} : String containing the operation name {payload} : JSON DataRequest Object encoded in Base64 |
5 User Services
In this section, we describe the main operations available to handle the users via Rest Services in Triskell using the existing Stateful services for the most basic use of case. In this document, we are using examples from a standard configuration at test.com.
5.1 Create user
This web service allows us to create a new user in Triskell.
This service is already explained in another document that handles the service calls to do the creation of the user.
Please refer to the document “Triskell-REST API.docx”, that can be found here.
5.2 User Search
This web service searches for a user in Triskell.
This service is already explained on another document that handles the service calls to do the search of the user.
Please refer to the document “Triskell-REST API.docx”, that can be found here.
5.3 User Search At
This web service searches for a user in Triskell with were clause.
This service is already explained on another document that handles the service calls to do the search of the user.
Please refer to the document “Triskell-REST API.docx”, that can be found here.
5.4 Update user data
To use this call, the user logged in does not need to have the Configurator role in Triskell, also we need to get some information from your instance to make it work properly.
What information do we need to edit a User parameters/data?
- User to edit the parameters: "Mary Doeeee"
- Parameters available to be updated:
- Name
- Skype ID
- Login
- Password
- Active
- Timesheet user
- Can book time on non-working days
- Allow NPA’s
- Min Value
- Max Value
- Default Value
- Primary management entity
- Default Start Page
We need to extract all this information from Triskell. Some information can be taken directly from your Triskell instance using the UI and, in some cases, we need to make a request using an operational service to get data from a stored selector report.
This is a request example:
This is the example content request:
|
{ "id": 0, "params": { "user_id": "234",
"name": "Mary Doe", "email": "", "skype_id": "mary.doe1999", "active": true, "login": "USR2", "password": "2829fc16ad8ca5a79da932f910afad1c", "default_startpage": "18",
"timesheetUser": true, "canenteronnonworkingdays": false, "allownpas": true, "minValue": "1.5", "maxValue": "8", "defaultValue": "NULL",
"userstartdate": "2024.01.01", "userenddate": "2024.12.31" }, "objects": null } |
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this in account when developing your interfaces. |
To see if the User parameters/data was edited you can check on Triskell.
5.4.1 Fields description
5.4.1.1 Mandatory fields
- user_id: unique user identifier (Integer). In the previous example is the User "Mary Doe". Can be extracted from the UI on the configuration environment:
5.4.1.2 Optional fields
- name: the new name for the User.
- email: the new e-mail for the User. If an empty value is sent, the current e-mail will be deleted.
- skype_id: the new Skype ID for the User. If an empty value is sent, the current Skype ID will be deleted.
- active: Boolean value (true/false).
- login: the new login for the User.
- password: the new password in HEX encoded MD5 hash format, for the User.
- timesheetUser: Boolean value (true/false).
- canenteronnonworkingdays: Boolean value (true/false).
- allownpas: Boolean value (true/false).
- minValue: Big Decimal value with decimal separator “.” and no thousands separator.
- To clear this value, send “NULL”.
- maxValue: Big Decimal value with decimal separator “.” and no thousands separator.
- To clear this value, send “NULL”.
- defaultValue: Big Decimal value with decimal separator “.” and no thousands separator.
- To clear this value, send “NULL”.
- default_startpage: unique default start page identifier (Integer). Have fixed and dynamic values.
- Fixed:
- 12 - Application Home Page
- 13 - Management Structures Page
- 14 - Portfolios Page
- 15 - Portfolio Items Page
- 16 - Custom Components Page
- 17 - Management Entities Page
- 18 - Timesheet Page
- 19 - Calendar Page
- 20 - Reports Page
- Dynamic:
- The unique Object identifier (Integer) in negative. The Objects available to be in the default start page are the ones with the option “Show Opt in Main Menu” with value YES on is definition (Ex: Project = -81, Support = -88)
- Fixed:
NOTE: If the value of the default_startpage is dynamic, and the user do not have any role to access to that Object, it will be loaded the Application Home Page instead.
5.5 Update user data (PME)
To use this call, the user logged in does not need to have the Configurator role in Triskell, also we need to get some information from your instance to make it work properly.
What information do we need to edit a User PME?
- User to edit the parameters: "Mary Doe"
- From date: "01/01/2020"
- Primary Management Entity: BNPC
We need to extract all this information from Triskell. Some information can be taken directly from your Triskell instance using the UI and, in some cases, we need to make a request using an operational service to get data from a stored selector report.
This is a request example:
This is the example content request:
|
{ "id": 0, "params": { "user_id": "231",
"pme_id": "1032", "pme_date": "2020.06.01" } , "objects": null } |
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this in account when developing your interfaces. |
To see if the User PME was edited you can check on Triskell.
5.5.1 Fields description
5.5.1.1 Mandatory fields
- user_id: unique user identifier (Integer). In the previous example is the User "Mary Doe". Can be extracted from the UI on the configuration environment:
5.5.1.2 Optional fields
- pme_id: unique data_object identifier (Integer). In the previous example is "BISST". It requires making a request to Triskell to get it.
- pme_date: unique Date in the day format (String). In previous example is "2020.06.01". The Date must be in the ISO format to work (YYYY.MM.DD), without hours, minutes, and seconds.
5.6 Update user data (Attributes)
To use this call, the user logged in does not need to have the Configurator role in Triskell, also we need to get some information from your instance to make it work properly.
What information do we need to edit a User Attributes?
- User to edit the parameters: "Mary Doe"
- Attribute to update: "Res. Type"
- Value for the Attribute: “4.Programmer”
We need to extract all this information from Triskell. Some information can be taken directly from your Triskell instance using the UI and, in some cases, we need to make a request using an operational service to get data from a stored selector report.
This is a request example:
This is the example content request:
|
{ "id": 0, "params": { "user_id": "231",
"attr_340": "0", "attr_347": ["2","3"], "attr_348": "1", "attr_349": "987654321" } , "objects": null } |
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this in account when developing your interfaces. |
To see if the User Attributes were edited you can check on Triskell.
NOTE: if the Custom Attribute changed by the Rest call is marked with the option “List History”, the change made on the attribute it is only done on the value of the custom attribute, not on the dates. The value is changed on the entry of the history where the current day (the date of the Rest call) is.
5.6.1 Fields description
5.6.1.1 Mandatory fields
- user_id: unique user identifier (Integer). In the previous example is the User "Mary Doe". Can be extracted from the UI on the configuration environment:
5.6.1.2 Optional fields
- attr_XXX: unique sequence value identifier (Integer) for the list attributes, or other value for other attribute type. In the previous example are the values of the attributes “Contract Type”, “Res. Type”, “Skills” and “Phone”. An example “Java, DB Services” for the “Skills” or “987654321” for the “Phone”. The value of the XXX is the Attribute ID of the “Contract Type”, “Res. Type”, “Skills” or the “Phone”. All these values can be extracted from the UI on the configuration environment:
For the sequence of the list attribute values itself, they can be sent in an array, to make possible the entry of all values at once. The values can be extracted from the UI on the configuration environment:
5.7 Create Generic Resource
To use this call, the user logged in does not need to have the Configurator role in Triskell, also we need to get some information from your instance to make it work properly.
What information do we need to create a Generic Resource?
- The name of the Generic Resource: "GR 2"
- Resource Type for the resource: "Item Generic Resource"
- Owning Structure for the resource: “1.IT Group”
- Calendar for the resource: “Company Calendar”
- The amount of Default Hours: 8
We need to extract some of this information from Triskell. Some information can be taken directly from your Triskell instance using the UI and, in some cases, we need to make a request using an operational service to get data from a stored selector report.
This is a request example:
This is the example content request:
|
{ "id": 0, "params": { "dataobjectid": "1064", "ownstructureid": "73", "calendarid": "2", "resourcetype": "Item Generic Resource",
"name": "PRJ 001 - Rest Generic 01", "active": true, "defaultvaluetsuser": "8" }, "objects": null } |
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this in account when developing your interfaces. |
To see if the Generic Resource was created, you can check on Triskell.
NOTE: on the creation of Generic Resources, the default Custom Attribute values are applied.
5.7.1 Fields description
5.7.1.1 Mandatory fields
- dataobjecid: unique data object identifier (Integer). In the previous example is the Data Object “PRJ 001”. It requires making a request to Triskell to get it.
- ownstructureid: unique object identifier (Integer). In the previous example is the Object “1.IT Group”. Can be extracted from the UI on the configuration environment:
- calendarid: unique calendar identifier (Integer). In the previous example is the Calendar “Company Calendar”. Can be extracted from the UI on the configuration environment:
- name: unique Generic Resource identifier (String) on the Data Object. On the same Data Object, it can only exist one Generic Resource with the same name, but on different Data Objects it can have the same name.
5.7.1.2 Optional fields
- resourcetype: unique resource type identifier (String). In the previous example is the Resource Type “Item Generic Resource”. If not provided, the value set will be Material. The possible values for the field are:
- Item Generic Resource
- Entity Generic Resource
- Material
- defaultvaluetsuser: the value of the amount to the default hours of the Generic Resource (Decimal). In the previous example, it is "8". Like a decimal number, it can have decimal places, like “4.5”. If not provided, the value it will be NULL.
- active: value to set if the Generic Resource is active or not (Boolean). In previous example, it is "true". If not provided, the value set will be FALSE.
5.8 Change Owning Structure
To use this call, the user logged in needs to have the Configurator role in Triskell, also we need to get some information from your instance to make it work properly.
What information do we need to change the Owning Structure?
- The user: "009.To the Rest changes"
- Owning Structure for the user: “2.Business Unit”
We need to extract some of this information from Triskell. Some information can be taken directly from your Triskell instance using the UI and, in some cases, we need to make a request using an operational service to get data from a stored selector report.
This is a request example:
This is the example content request:
|
{ "id": 0, "params": { "user_id": "340", "ownstructureid": "123" } , "objects": null } |
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this in account when developing your interfaces. |
To see if the user Owning Structure has changed, you can check on Triskell.
NOTE: It is only possible to change the Owning Structure if the user does not have any PME on the current Owning Structure.
5.8.1 Fields description
5.8.1.1 Mandatory fields
- user_id: unique user identifier (Integer). In the previous example is the user “009.To the Rest changes”. Can be extracted from the UI on the configuration environment:
- ownstructureid: unique object identifier (Integer). In the previous example is the Object “2.Business Unit”. Can be extracted from the UI on the configuration environment:
5.8.1.2 Optional fields
N/A
5.9 Change Owning Entity
To use this call, the user logged in needs to have the Configurator role in Triskell, also we need to get some information from your instance to make it work properly.
What information do we need to change the Owning Entity?
- The user: "009.To the Rest changes"
- Owning Entity for the user: “IT Dept”
We need to extract some of this information from Triskell. Some information can be taken directly from your Triskell instance using the UI and, in some cases, we need to make a request using an operational service to get data from a stored selector report.
This is a request example:
This is the example content request:
|
{ "id": 0, "params": { "user_id": "340", "ownerdobjid": "1839" } , "objects": null } |
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this in account when developing your interfaces. |
To see if the user Owning Entity has changed, you can check on Triskell.
NOTE: The Entity chosen must be in the instance of the Owning Structure of the user.
5.9.1 Fields description
5.9.1.1 Mandatory fields
- user_id: unique user identifier (Integer). In the previous example is the user “009.To the Rest changes”. Can be extracted from the UI on the configuration environment:
- ownerdobjid: unique data object identifier (Integer). In the previous example is the Data Object “IT Dept”. It requires making a request to Triskell to get it (it can be used as the example to get the data object as described on this document, the difference is the passed values).
5.9.1.2 Optional fields
N/A
5.10 Add User List History
To use this call, the user logged in needs to have the Configurator role in Triskell, also we need to get some information from your instance to make it work properly. Also, the Custom Attribute in case needs0020to have the option List History enabled on the Users Attribute.
What information do we need to add one User List History?
- The user: "Jane Doe"
- Custom Attribute: “Res. Type”
- From Date: “01/01/2023”
- Custom Attribute Value: “1.Executive”
We need to extract some of this information from Triskell. Some information can be taken directly from your Triskell instance using the UI and, in some cases, we need to make a request using an operational service to get data from a stored selector report.
This is a request example:
NOTE: the id of the created line is returned on the “id” field of the service answer. It can be stored to be used forward on the update or delete services call.
This is the example content request:
|
{ "id": 0, "params": { "user_id": "232", "attr_id": "340", "fromDate": "2023.01.01", "value_id": "1" }, "objects": null }
|
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this in account when developing your interfaces. |
To see if the User List History was added, you can check on Triskell.
5.10.1 Fields description
5.10.1.1 Mandatory fields
- user_id: unique user identifier (Integer). In the previous example is the user “Jane Doe”. Can be extracted from the UI on the configuration environment:
- attr_id: unique custom attribute identifier (Integer). In the previous example is the Custom Attribute “Res. Type”. Can be extracted from the UI on the configuration environment:
- fromDate: unique Date in the day format (String). In previous example is "2023.01.01". The Date must be in the ISO format to work (YYYY.MM.DD), without hours, minutes, and seconds.
- value_id: unique sequence identifier inside the Custom Attribute indicated on the attr_id. In the previous example is “1.Executive”. Can be extracted from the UI on the configuration environment:
5.10.1.2 Optional fields
N/A
5.11 Update User List History
To use this call, the user logged in needs to have the Configurator role in Triskell, also we need to get some information from your instance to make it work properly. Also, the Custom Attribute in case needs to have the option List History enabled on the Users Attribute.
What information do we need to update one User List History?
- The user: "Jane Doe"
- Custom Attribute: “Res. Type”
- User Custom Attribute List History: “01/01/2023 – 1.Executive”
- From Date: “01/06/2023”
We need to extract some of this information from Triskell. Some information can be taken directly from your Triskell instance using the UI and, in some cases, we need to make a request using an operational service to get data from a stored selector report.
This is a request example:
This is the example content request:
|
{ "id": 0, "params": { "user_id": "232", "attr_id": "340", "userList_id": "129", "fromDate": "2023.06.01" }, "objects": null } |
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this into account when developing your interfaces. |
To see if the User List History was updated, you can check on Triskell.
5.11.1 Fields description
5.11.1.1 Mandatory fields
- user_id: unique user identifier (Integer). In the previous example is the user “Jane Doe”. Can be extracted from the UI on the configuration environment:
- attr_id: unique custom attribute identifier (Integer). In the previous example is the Custom Attribute “Res. Type”. Can be extracted from the UI on the configuration environment:
- userList_id: unique user custom attribute list history identifier (Integer). In the previous example is the line “01/01/2023 – 1.Executive”. It requires making a request to Triskell to get it.
- fromDate: unique Date in the day format (String). In the previous example is "2023.06.01". The Date must be in the ISO format to work (YYYY.MM.DD), without hours, minutes, and seconds.
5.11.1.2 Optional fields
N/A
5.12 Delete User List History
To use this call, the user logged in needs to have the Configurator role in Triskell, also we need to get some information from your instance to make it work properly. Also, the Custom Attribute in case needs to have the option List History enabled on the Users Attribute.
What information do we need to delete one User List History?
- The user: "Jane Doe"
- Custom Attribute: “Res. Type”
- User Custom Attribute List History: “01/06/2023 – 1.Executive”
We need to extract some of this information from Triskell. Some information can be taken directly from your Triskell instance using the UI and, in some cases, we need to make a request using an operational service to get data from a stored selector report.
This is a request example:
This is the example content request:
|
{ "id": 0, "params": { "user_id": "232", "attr_id": "340", "userList_id": "129" }, "objects": null }
|
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this into account when developing your interfaces. |
To see if the User List History was deleted, you can check on Triskell.
5.12.1 Fields description
5.12.1.1 Mandatory fields
- user_id: unique user identifier (Integer). In the previous example is the user “Jane Doe”. Can be extracted from the UI on the configuration environment:
- attr_id: unique custom attribute identifier (Integer). In the previous example is the Custom Attribute “Res. Type”. Can be extracted from the UI on the configuration environment:
- userList_id: unique user custom attribute list history identifier (Integer). In the previous example is the line “01/06/2023 – 1.Executive”. It requires making a request to Triskell to get it.
5.12.1.2 Optional fields
N/A
5.13 Anonymize Users information (RGPD)
To use this call, the user logged in needs to have the Configurator role in Triskell, also we need to get some information from your instance to make it work properly. To the User can be anonymize, the user must be disable (inactive), otherwise nothing will be done about anonymization.
Please note that this change, the anonymize of the user does not have a rollback, it is irreversible.
What information do we need to anonymize one User?
- The user: "The User to Anonymize"
- New name (optional): “_x98K76h98”
This service also anonymizes the text custom attributes that are marked as RGPD on the User configuration.
We need to extract some of this information from Triskell. Some information can be taken directly from your Triskell instance using the UI and, in some cases, we need to make a request using an operational service to get data from a stored selector report.
This is a request example:
This is the example content request:
|
{ "id": 0, "params": { "userId": "235", "name": "_x98K76h98" }, "objects": null } |
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this into account when developing your interfaces. |
To see if the User was anonymized, you can check on Triskell.
5.13.1 Fields description
5.13.1.1 Mandatory fields
- userId: unique user identifier (Integer). In the previous example is the user “The User to Anonymize”. Can be extracted from the UI on the configuration environment:
5.13.1.2 Optional fields
- name: The new anonymized name to set on the User (String). It must start with the “_” (underscore). If not provided a new anonymized name will be created by the service and set it to the user.
6 Auxiliary Services to get data
In this section it will be explained how to extract data required to call main services.
6.1 Get PME
In this section we describe how to get the data_object identifier from Triskell, identifier that to be used as a pme_id. Triskell allows extract data from your instance using reports. You need a stored selector to build your report.
First, we need to get the object used for the “Primary Management Entity”:
This report requires one parameter to get the data object id.
dataobject_name (Text):
Create the stored selector using the parameter:
Then you can test the query to check that you get the id properly:
This is the result of this example:
This is the query for the example above:
|
SELECT dataobject_id FROM tenant_vw_team WHERE dataobject_name = ##dataobject_name## |
Once you create and test your stored selector, you need to create the associated report:
Now we have all id's needed and report to get period id dynamically from our API rest.
This is the example content request:
|
{ "id": 0, "params": { "REPORTID": "13", "valuesByParams": "3#BISST" } , "objects": null } |
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this into account when developing your interfaces. |
6.2 Get Data Object
In this section we describe how to get the data_object identifier from Triskell, identifier that to be used as a dataobjectid. Triskell allows extract data from your instance using reports. You need a stored selector to build your report.
First, we need to get the object used on the data object we want to get the Id:
This report requires two parameters to get the data object id.
object_id (Integer):
dataobject_name (Text):
Create the stored selector using the parameter:
Then you can test the query to check that you get the id properly:
This is the result of this example:
This is the query for the example above:
|
SELECT dataobject_id FROM tenant_vw_dataobjects WHERE object_id = ##object_id## AND dataobject_name = ##dataobject_name## |
Once you create and test your stored selector, you need to create the associated report:
Now we have all id's needed and report to get period id dynamically from our API rest.
This is the example content request:
|
{ "id": 0, "params": { "REPORTID": "16", "valuesByParams": "3#PRJ 001##5#82" }, "objects": null } |
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this into account when developing your interfaces. |
6.3 Get User Custom Attribute List History ID
In this section we describe how to get the user custom attribute list history identifier from Triskell, identifier that to be used as a userList_id. Triskell allows extract data from your instance using reports. You need a stored selector to build your report.
First, we need to get the user_id of the desired user:
Then we also need to get the attr_id of the desired custom attribute:
This report requires two parameters to get the user custom attribute list history id.
attrID (Integer):
userID (Integer):
Create the stored selector using the parameters:
Then you can test the query to check that you get the id properly:
This is the result of this example:
This is the query for the example above:
|
SELECT userattrlisthistory_id FROM tenant_vw_users_attr_list_history WHERE attr_id = ##attrID## AND user_id = ##userID## |
Once you create and test your stored selector, you need to create the associated report:
Now we have all id's needed and report to get period id dynamically from our API rest.
This is the example content request:
|
{ "id": 0, "params": { "REPORTID": "14", "valuesByParams": "6#340##5#232" } , "objects": null } |
| Customer can make more than one request on the same REST conversation depending on your functional needs. This feature should not be used to load big data volumes because. During the REST conversation Triskell users can get blocked processing the request, so we suggest using it with common sense in terms of data volume and scheduling. Triskell will limit the number of requests by day in the future to avoid collapsing the server, so please take this into account when developing your interfaces. |
Comments
0 comments
Please sign in to leave a comment.