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 dede-identified
.
O diagrama seguinte mostra o fluxo de dados para criar mapeamentos de dados dos utilizadores:
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'