A newer version of this documentation is available.

View Latest

Function: redactSharedData

      +

      Goal: Redact Sensitive Data prior to sharing.

      • This function redactSharedData will remove sensitive data and write "safe" redacted records.

      • Requires Eventing Storage (or metadata collection), a "source" collection, and a "destination" collection.

      • Will operate on all documents where doc.type === "master_profile".

      • Will create redacted documents in real-time of doc.type === "shared_profile".

      • The "destination" collection can be shared (or replicated via XCDR to a business partner) too the cloud (AWS, Azure or GCP).

      • redactSharedData

      • Input Data/Mutation

      • Output Data/Mutation

      // To run configure the settings for this Function, redactSharedData, as follows:
      //
      // Version 7.0+
      //   "Listen to Location"
      //     bulk.data.source
      //   "Eventing Storage"
      //     rr100.eventing.metadata
      //   Binding(s)
      //    1. "binding type", "alias name...", "bucket.scope.collection", "Access"
      //       "bucket alias", "aws_col",       "bulk.data.destination",   "read and write"
      //
      // Version 6.X
      //   "Source Bucket"
      //     source
      //   "MetaData Bucket"
      //     metadata
      //   Binding(s)
      //    1. "binding type", "alias name...", "bucket",     "Access"
      //       "bucket alias", "aws_col",       "destination", "read and write"
      
      function OnUpdate(doc, meta) {
          // only process our profile documents
          if (doc.type !== "master_profile") return;
          // aws_col is a bucket alias to the target bucket to replicate to AWS via
          // XCDR. Write the minimal (non-sensitive) profile doc to the bucket for AWS.
          aws_col["shared_profile::"+doc.id] = {
              "type": "shared_profile",
              "first_name": doc.first_name,
              "id": doc.id,
              "basic_profile": doc.basic_profile,
              "timezone": doc.timezone
          };
      }
      INPUT: KEY master_profile::80927079070
      
      {
        "type": "master_profile",
        "first_name": "Peter",
        "last_name": "Chang",
        "id": 80927079070,
        "basic_profile": {
          "partner_id": 80980221,
          "services": [
            {
              "music": true
            },
            {
              "games": true
            },
            {
              "video": false
            }
          ]
        },
        "sensitive_profile": {
          "ssn": "111-11-1111",
          "credit_card": {
            "number": "3333-333-3333-3333",
            "expires": "01/09",
            "ccv": "111"
          }
        },
        "address": {
          "home": {
            "street": "4032 Kenwood Drive",
            "city": "Boston",
            "zip": "02102"
          },
          "billing": {
            "street": "541 Bronx Street",
            "city": "Boston",
            "zip": "02102"
          }
        },
        "phone": {
          "home": "800-555-9201",
          "work": "877-123-8811",
          "cell": "878-234-8171"
        },
        "locale": "en_US",
        "timezone": -7,
        "gender": "M"
      }
      UPDATED/OUTPUT: KEY shared_profile::80927079070
      
      {
        "type": "shared_profile",
        "first_name": "Peter",
        "id": 80927079070,
        "basic_profile": {
          "partner_id": 80980221,
          "services": [
            {
              "music": true
            },
            {
              "games": true
            },
            {
              "video": false
            }
          ]
        },
        "timezone": -7
      }