Registar dados do utilizador

Esta página descreve como registar dados do utilizador com a API Consent Management.

Os elementos de dados são registados na API Consent Management e associados a consentimentos através de mapeamentos de dados do utilizador. Os dados do utilizador nunca são armazenados na API Consent Management.

Os mapeamentos de dados do utilizador, representados como recursos UserDataMappings, incluem os seguintes elementos:

  • Um ID do utilizador que identifica o utilizador. Este ID corresponde ao ID que a aplicação forneceu à API Consent Management quando registou o consentimento.
  • Um ID de dados que identifica dados do utilizador armazenados noutro local, como na Google Cloud ou no local. O ID de dados pode ser um ID opaco, um URL ou qualquer outro identificador.
  • Atributos de recursos, que descrevem as caraterísticas dos dados do utilizador através de valores de atributos de recursos configurados para o arquivo de consentimento através de definições de atributos. Por exemplo, os dados podem incluir o attribute_definition_id data_identifiable com o valor de de-identified.

O diagrama seguinte mostra o fluxo de dados para criar mapeamentos de dados dos utilizadores:

Mapeamentos de dados do utilizador

Registar mapeamentos de dados do utilizador

Para criar um mapeamento de dados do utilizador, use o método projects.locations.datasets.consentStores.userDataMappings.create. Faça um pedido POST e especifique as seguintes informações no pedido:

  • O nome da loja de consentimento parental
  • Um userID exclusivo e opaco que representa o utilizador ao qual o elemento de dados está associado
  • Um identificador para o recurso de dados do utilizador, como o caminho REST para um recurso único
  • Um conjunto de atributos RESOURCE que descrevem o elemento de dados
  • Uma chave de acesso

curl

O exemplo seguinte mostra um pedido POST com curl:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/consent+json; charset=utf-8" \
    --data "{
       'user_id': 'USER_ID',
       'data_id' : 'DATA_ID',
       'resource_attributes': [{
           'attribute_definition_id': 'data_identifiable',
           'values': ['de-identified']
      }]
    }" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/userDataMappings"

Se o pedido for bem-sucedido, o servidor devolve uma resposta semelhante ao exemplo seguinte no formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/userDataMappings/USER_DATA_MAPPING_ID",
  "dataId": "DATA_ID",
  "userId": "USER_ID",
  "resourceAttributes": [
    {
      "attributeDefinitionId": "data_identifiable",
      "values": [
        "de-identified"
      ]
    }
  ]
}

PowerShell

O exemplo seguinte mostra um pedido POST através do Windows PowerShell:

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/consent+json; charset=utf-8" `
  -Body "{
       'user_id': 'USER_ID',
       'data_id' : 'DATA_ID',
       'resource_attributes': [{
           'attribute_definition_id': 'data_identifiable',
           'values': ['de-identified']
      }]
    }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/userDataMappings" | Select-Object -Expand Content

Se o pedido for bem-sucedido, o servidor devolve uma resposta semelhante ao exemplo seguinte no formato JSON:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/userDataMappings/USER_DATA_MAPPING_ID",
  "dataId": "DATA_ID",
  "userId": "USER_ID",
  "resourceAttributes": [
    {
      "attributeDefinitionId": "data_identifiable",
      "values": [
        "de-identified"
      ]
    }
  ]
}

Configurar IDs de dados

O campo data_id do recurso de mapeamento de dados do utilizador contém uma string especificada pelo cliente que descreve os dados aos quais o recurso de mapeamento de dados do utilizador se refere. É permitida qualquer string, como um ID opaco ou um URI.

Os IDs de dados podem ser tão detalhados quanto o exigido pela sua aplicação. Se os dados que está a registar puderem ser descritos ao nível da tabela ou do contentor, defina data_id como o caminho REST para esse recurso. Se os dados que está a registar exigirem maior detalhe, pode especificar linhas ou células específicas. Se a sua aplicação usar recursos conceptuais, como ações permitidas ou classes de dados, deve definir data_id com uma convenção que suporte esses exemplos de utilização.

Seguem-se exemplos de uma data_id que descreve os dados armazenados em diferentes serviços e a vários níveis de detalhe, incluindo, entre outros:

Objeto do Google Cloud Storage

  'data_id' : 'gs://BUCKET_NAME/OBJECT_NAME'
  

Objeto do Amazon S3

  'data_id' : 'https://BUCKET_NAME.s3.REGION.amazonaws.com/OBJECT_NAME'
  

tabela do BigQuery

  'data_id' : 'bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID'
  

Linha do BigQuery (não existe um caminho REST para uma linha do BigQuery, pelo que o seu próprio identificador é necessário. Uma abordagem possível é apresentada abaixo)

  'data_id' : 'bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID/myRows/ROW_ID'
  

Célula do BigQuery (não existe um caminho REST para uma célula do BigQuery, pelo que o seu próprio identificador é necessário. Uma abordagem possível é apresentada abaixo)

  'data_id' : 'bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID/myRows/ROW_ID/myColumns/COLUMN_ID'
  

Recurso FHIR

  'data_id' : 'https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID'
  

Representação conceptual

  'data_id' : 'wearables/fitness/step_count/daily_sum'