רישום נתוני משתמשים

בדף הזה מוסבר איך לרשום נתוני משתמשים באמצעות Consent Management API.

רכיבי הנתונים נרשמים ב-Consent Management API ומקושרים להסכמות באמצעות מיפויים של נתוני משתמשים. נתוני משתמשים אף פעם לא מאוחסנים ב-Consent Management API.

מיפויי נתוני המשתמש, שמיוצגים כמשאבי UserDataMappings, כוללים את הרכיבים הבאים:

  • מזהה משתמש שמזהה את המשתמש. המזהה הזה זהה למזהה שהאפליקציה סיפקה ל-Consent Management API כשנרשמה ההסכמה.
  • מזהה נתונים שמזהה נתוני משתמש שאוחסנו במקום אחר, למשל ב-Google Cloud או בשרת מקומי. מזהה הנתונים יכול להיות מזהה אטום, כתובת URL או כל מזהה אחר.
  • מאפייני משאב שמתארים את המאפיינים של נתוני המשתמשים באמצעות ערכי מאפייני משאב שהוגדרו במאגר ההסכמה באמצעות הגדרות מאפיינים. לדוגמה, הנתונים יכולים לכלול את attribute_definition_id data_identifiable עם הערך de-identified.

הדיאגרמה הבאה מציגה את זרימת הנתונים ליצירת מיפויי נתוני משתמשים:

מיפוי נתוני משתמשים

רישום של מיפויי נתוני משתמשים

כדי ליצור מיפוי של נתוני משתמשים, משתמשים ב-method‏ projects.locations.datasets.consentStores.userDataMappings.create. שולחים בקשת POST ומציינים בה את הפרטים הבאים:

  • השם של מאגר הסכמת ההורה
  • מזהה ייחודי ואטום userID שמייצג את המשתמש שאליו משויך רכיב הנתונים
  • מזהה של משאב נתוני המשתמש, כמו נתיב REST למשאב ייחודי
  • קבוצה של מאפייני RESOURCE שמתארים את רכיב הנתונים
  • טוקן גישה

curl

בדוגמה הבאה מוצגת בקשת POST באמצעות 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"

אם הבקשה מצליחה, השרת מחזיר תגובה שדומה לדוגמה הבאה בפורמט 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

בדוגמה הבאה מוצגת בקשת POST באמצעות 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

אם הבקשה מצליחה, השרת מחזיר תגובה שדומה לדוגמה הבאה בפורמט 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"
      ]
    }
  ]
}

הגדרת מזהי נתונים

השדה data_id של משאב מיפוי נתוני המשתמש מכיל מחרוזת שצוינה על ידי הלקוח ומתארת את הנתונים שאליהם מתייחס משאב מיפוי נתוני המשתמש. מותר להשתמש בכל מחרוזת, כמו מזהה אטום או URI.

מזהי הנתונים יכולים להיות מפורטים ככל שנדרש באפליקציה שלכם. אם אפשר לתאר את הנתונים שאתם רושמים ברמת הטבלה או ברמת הקטגוריה, צריך להגדיר את data_id כנתיב REST למשאב הזה. אם הנתונים שאתם רושמים דורשים רמת פירוט גבוהה יותר, אולי כדאי לציין שורות או תאים ספציפיים. אם האפליקציה שלכם משתמשת במשאבים מושגיים, כמו פעולות מותרות או סוגי נתונים, אתם צריכים להגדיר את data_id באמצעות מוסכמה שתומכת בתרחישי השימוש האלה.

דוגמאות לdata_id שמתאר נתונים שמאוחסנים בשירותים שונים וברמות פירוט שונות כוללות, בין היתר, את הדוגמאות הבאות:

אובייקט Google Cloud Storage

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

אובייקט Amazon S3

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

טבלה ב-BigQuery

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

שורה ב-BigQuery (אין נתיב REST לשורה ב-BigQuery, ולכן נדרש מזהה משלכם – בהמשך מופיעה גישה אפשרית)

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

תא ב-BigQuery (אין נתיב REST לתא ב-BigQuery, ולכן נדרש מזהה משלכם – בהמשך מופיעה גישה אפשרית)

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

משאב FHIR

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

ייצוג מושגי

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