Skip to content

Technical

Configuration

The configuration is stored in Lime data. If no configuration is found, GDPR will not run.

Endpoints

Most endpoints can be authorized either using a Lime sessionId/API-key or a token.

Token

GET, POST, DELETE

/v2/token/<string:limetype_name>/<int:idrecord>/

Gets, creates or updates Token. The user issuing the token must have access to everything configured for the Limetype. Example:

/v2/token/person/1003/

Warning

/token/<string:limetype_name>/<int:idrecord>/ is deprecated. Make sure the LBS apps are updated!

Object

GET, PUT, DELETE

/<string:limetype_name>/<int:idrecord>/
or
/<string:token>/

Returns or updates object. JSON payload for update should be exactly the same format as the JSON from GET. Example:

/person/1003/
or
/ABC1234888123/

Expired objects

GET

/<string:limetype_name>/expired/

Returns a JSON containing the ids of the objects whose expireddate is before now. Example:

/person/expired/

The response may be used as the payload for bulk anonymization. Example:

```json
{
    "person": [
        1034,
        1984
    ]
}
```

Excel

GET

/<string:limetype_name>/<int:idrecord>/excel/
or
/<string:token>/excel/

Returns object as Excel. Example:

/person/1003/excel/
or
/ABC1234888123/excel/

JSON

GET

/<string:limetype_name>/<int:idrecord>/json/
or
/<string:token>/json/

Returns object as simpler formatted JSON, containg only key-values and no Lime meta-data. Example:

/person/1003/json/
or
/ABC1234888123/json/

Anonymize

PUT

/<string:limetype_name>/<int:idrecord>/anonymize/
or
/<string:token>/anonymize/

Anonymizes object. Response will be the anonynomized data as JSON. Example:

/person/1003/anonymize/
or
/ABC1234888123/anonymize/

AnonymizeRequest

POST

/<string:limetype_name>/<int:idrecord>/anonymizerequest/
or
/<string:token>/anonymizerequest/

Requests anonymization by setting the expireddate field to today + expiredays in config. Example:

/person/1003/anonymizerequest/
or
/ABC1234888123/anonymizerequest/

DELETE

/<string:limetype_name>/<int:idrecord>/anonymizerequest/

Deletes request to be anonymized by setting the expireddate field to null.

/person/1003/anonymizerequest/

Only one Consent is allowed to exist for each Consenttype, therefore Consents work a bit different.

Consent has no GET. The object's Consents and available Consenttypes are always included with GET to the "Object" endpoint.

From version 1.0.0 of GDPR, the consent endpoints only supports tokens.

POST

/<string:token>/<string:consent_relation_name>/

/ABC1234888123/consent/

The JSON payload must contain the id of the Consenttype

```json
    {
        "consenttype_id": 1001
    }
```

PUT

/<string:token>/<string:consent_relation_name>/<int:consent_id>/

/ABC1234888123/consent/1300/

The URL must contain the id of the Consent The payload only supports approved true/false. Deleting a consent is the same as supplying approved=false.

```json
    {
        "approved": true
    }
```

Config

Generates a configuration is based on labels for the most commonly used limetypes and properties such as the person limetype and firstname property.

GET

/config/generate/

Translation

Gets all translations for GDPR, used by the portal. Overrides in the config are applied to these.

GET

/translation/

Events

gdpr.object.updated

Published when an object is updated

gdpr.object.deleted

Published when an object is deleted

gdpr.object.anonymized

Published when an object is anonymized

gdpr.object.anonymize_requested

Published when an object has requested for anonymization

gdpr.object.anonymize_request_deleted

Published when a request for anonymization has been deleted

gdpr.token.created

Published when a token is issued

gdpr.token.deleted

Published when a token is deleted

Consent events

Since version 1.x of GDPR, the consent events are Published by the consent add-on.