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/v1/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/v1/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" ] } ] }
Como configurar IDs 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 a que o recurso de mapeamento de dados do usuário
se refere. É permitida qualquer string, como um código opaco ou URI.
Os IDs de dados podem ser tão granulares quanto exigido pelo 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 exigirem mais granularidade,
especifique linhas ou células específicas. Se seu 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. Veja uma abordagem possível abaixo
'data_id' : 'bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID/myRows/ROW_ID'
Célula do BigQuery. Não há 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'