Consent Model

Each consent record in ConsentGrid™ represents data subjects' consent to the acivity represented by a consent granule. Because of this, each consent record has one granule, a value associated with it. The value is true if the data subjects accept, and false if they reject.

Usually each consent record has one owner who is the data subject agreed or rejected the activity. However, it is possible to define multi-party consents with ConsentGrid™, and because of this, the model has owners field which is an array. Each owner may be associated with a role such as witness.

Consent records are versioned. Any updates performed on the consent (either by the data subject, administrator, or automatically by ConsentGrid&trade) creates a new version of the consent record while preserving the old version in an archive.

A typical consent record looks like the following:

{
  "id": "GBACYkGJhGo3Mo1HJiFo2HBkGItGhiMg2Fo4GY2GYtGQxHBjM0ZMplGhmMQTDA1MZiHMrGRmGhjGIyGQ4GE4GI0Gwxng2gIA",
  "uri": "https://consentgrid.io/v1/consents/GBACYkGJhGo3Mo1HJiFo2HBkGItGhiMg2Fo4GY2GYtGQxHBjM0ZMplGhmMQTDA1MZiHMrGRmGhjGIyGQ4GE4GI0Gwxng2gIA",
  "version": 2,
  "owners": [{
    "subject": {
      "id":"6d8fba22-0e20-4183-bc4a-82d59ec25b74",
      "type": "user"
    }
  ],
  "activeRange": {
    "from": "2019-11-10T23:00:00Z",
    "to": "2020-11-10T23:00:00Z",
  },
  "timestamp": "2019-11-10T23:00:00Z",
  "status": "active",
  "granule": "terms",
  "value": true,
  "scopes": [],
  "choices": {...},
  "policy": {
    "url": "https://.../policy.html",
    "version": "v2"
  },
  "form": {
    "name": "terms",
    "locale": "en",
    "version": 3
  }
}

policy object contains a reference to the terms related to this consent record. This is set by the caller application to the policy used to capture this consent. If the consent is created using an online form, form object gives the name, locale, and the version of the form used to capture consent.