Nesta página, descrevemos como registrar dados de usuário com a API Consent Management.
Os elementos de dados são registrados na API Consent Management e conectados a consentimentos usando mapeamentos de dados do usuário. Os dados do usuário nunca são armazenados na API Consent Management.
Os mapeamentos de dados do usuário, representados como recursos UserDataMappings
,
incluem os seguintes elementos:
- Um ID de usuário que identifica o usuário. Esse código corresponde ao ID fornecido pelo aplicativo durante a inscrição dessa API ao registrar o consentimento.
- Um ID de dados que identifica os dados do usuário armazenados em outro lugar, como no Google Cloud ou no local. O ID de dados pode ser um ID opaco, um URL ou qualquer outro identificador.
- Atributos de recurso, que descrevem as características dos dados do usuário usando
valores de atributo de recurso configurados para o armazenamento de consentimento usando definições de
atributo. Por exemplo, os dados podem incluir
attribute_definition_id
data_identifiable
com o valor dede-identified
.
O diagrama a seguir mostra o fluxo de dados para criar mapeamentos de dados do usuário:
Como registrar mapeamentos de dados do usuário
Para criar um mapeamento de dados do usuário,
use o método
projects.locations.datasets.consentStores.userDataMappings.create
. Faça uma solicitação POST
e especifique as seguintes informações na
solicitação:
- O nome do repositório de consentimentos dos responsáveis
- Um
userID
exclusivo e opaco que representa o usuário ao qual o elemento de dados está associado. - Um identificador do recurso de dados do usuário, como o caminho REST para um recurso exclusivo.
- Um conjunto de atributos
RESOURCE
que descreve o elemento de dados - Um token de acesso
curl
O exemplo a seguir mostra uma solicitação POST
usando 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/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/userDataMappings"
Se a solicitação for bem-sucedida, o servidor retornará uma resposta semelhante à seguinte amostra 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 a seguir mostra uma solicitação POST
usando o 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/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/userDataMappings" | Select-Object -Expand Content
Se a solicitação for bem-sucedida, o servidor retornará uma resposta semelhante à seguinte amostra 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 códigos de dados
O campo data_id
do recurso de mapeamento de dados do usuário contém uma string especificada pelo cliente que descreve os dados aos quais o recurso de mapeamento de dados do usuário se refere. Qualquer string é permitida, como um código opaco ou URI.
Os IDs de dados podem ser tão granulares quanto são necessários para seu aplicativo. Se os dados que você está registrando puderem ser descritos no nível da tabela ou do bucket, defina data_id
como o caminho REST para esse recurso.
Se os dados que você está registrando exigir mais granularidade, convém especificar linhas ou células específicas. Se o aplicativo usar recursos conceituais, como ações permitidas ou classes de dados, defina data_id
com uma convenção compatível com esses casos de uso.
Exemplos de um data_id
que descreve dados armazenados em serviços diferentes e em vários níveis de granularidade incluem, 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 há caminho REST para uma linha do BigQuery, portanto, seu próprio identificador é necessário - uma abordagem possível está abaixo)
'data_id' : 'bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID/myRows/ROW_ID'A célula do BigQuery não existe um caminho REST para uma célula do BigQuery. Portanto, seu próprio identificador é necessário. Veja uma abordagem possível 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 conceitual
'data_id' : 'wearables/fitness/step_count/daily_sum'