ScopedDCManager - スコープ付き

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:8分
  • ScopedDCManager API を使用すると、データをタイプ別にグループ化できます。

    この API を使用すると、次のことができます。
    • 既存の辞書エントリにデータ分類を割り当てます。
    • 特定の辞書エントリのデータ分類を検索します。
    • 特定の辞書エントリに関連付けられているすべてのデータ分類を削除します。
    • 現在のドメインで利用可能なすべてのデータ分類のリストを取得します。

    この API には、データ分類 [com.glide.data_classification] プラグインが必要です。

    詳細については、「 データ分類」を参照してください。

    ScopedDCManager - classify(文字列 dictEntries, 文字列 dataClasses)

    既存の辞書エントリに事前定義済みまたはユーザー定義のデータ分類を割り当てます。

    admin または data_classification_admin ロールが必要です。

    表 : 1. パラメーター
    名前 タイプ 説明
    dictEntries 文字列
    分類するレコードのSys_ids。文字列で囲まれたカンマ区切りリストとして入力します。

    テーブル:辞書 [sys_dictionary] テーブル

    dataClasses 文字列
    アサインするデータ分類のSys_ids。文字列で囲まれたカンマ区切りリストとして入力します。

    テーブル:データ分類 [data_classification]

    表 : 2. 返される内容
    タイプ 説明
    文字列 操作の結果を説明するメッセージ。

    この例では、社会保障番号を含むレコードを検索し、レコードを機密として分類します。

    var dcm = new global.ScopedDCManager();
    var confidentialClass = {};
    var ssnFields = [];
    var dataClasses = JSON.parse(dcm.getAllDataClasses());
    
    // Get the Confidential data class record
    dataClasses.forEach(function (dataClass) {
      if (dataClass.name == "Confidential")
        confidentialClass = dataClass;
    });
    
    // Find the fields that seem to be strong social security numbers
    var dictionaryGR = new GlideRecord("sys_dictionary");
    dictionaryGR.addQuery("element", "ssn").addOrCondition("element", "social_security_number");
    dictionaryGR.query();
    while (dictionaryGR.next())
      ssnFields.push(dictionaryGR.getUniqueValue());
    
    // Classify any found entries as confidential
    if (ssnFields.length > 0)
      dcm.classify(ssnFields.join(), confidentialClass.sys_id);
    
    出力:
    "Successfully stored the data classification configurations"

    ScopedDCManager - clearClassification(文字列 dictEntries)

    指定された辞書エントリのすべてのデータ分類を削除します。

    admin または data_classification_admin ロールが必要です。

    表 : 3. パラメーター
    名前 タイプ 説明
    dictEntries 文字列
    分類を削除するレコードのSys_ids。文字列で囲まれたカンマ区切りリストとして入力します。

    テーブル:辞書 [sys_dictionary]

    表 : 4. 返される内容
    タイプ 説明
    文字列 操作の結果を説明するメッセージ。

    この例は、辞書エントリのデータ分類を削除します。

    var dcm = new global.ScopedDCManager();
    gs.info(dcm.clearClassification("445de0a6dba30300efc57416bf9619b0"));
    

    出力:

    "Classifications removed for the specified dictionary entries"

    ScopedDCManager - getAllDataClasses()

    現在のドメインで利用可能なすべてのデータ分類のリストを返します。

    admin、data_classification_admin、または data_classification_auditor ロールが必要です。

    表 : 5. パラメーター
    名前 タイプ 説明
    なし
    表 : 6. 返される内容
    タイプ 説明
    <Array>

    要求の結果です。利用可能な各データ分類の sys_id と名前を返します。データ分類がない場合は、空のアレイを返します。

    データ分類は親子関係に整理できます。親データ分類がある場合は、それらが結果で識別されます。

    データタイプ:アレイ

    [
      {
        "parent": {Object},
        "sys_id": "String",
        "name": "String"
      }
    ]
    <Array>.parent 親データ分類のエントリです。

    データタイプ:オブジェクト

    "parent": {
      "sys_id": "String",
      "name": "String"
    }
    <Array>.parent.sys_id データ分類 [data_classification] テーブルからの親データ分類の sys_id です。

    データタイプ:文字列

    <Array>.parent.name 親データ分類の名前です。

    データタイプ:文字列

    <Array>.sys_id データ分類 [data_classification] テーブルからのデータ分類の sys_id です。

    データタイプ:文字列

    <Array>.name データ分類名。

    データタイプ:文字列

    この例は、利用可能なすべてのデータ分類のリストを取得します。

    var dcm = new global.ScopedDCManager();
    gs.info(dcm.getAllDataClasses());
    

    出力:

    [
      {
        "parent": {
          "sys_id": "a9670fc773fc1010ae8dd21efaf6a735",
          "name": "Confidential"
        },
        "sys_id": "348107b951d71010f877f3f178e7dd0d",
        "name": "Personally identifiable information"
      },
      {
        "sys_id": "a9670fc773fc1010ae8dd21efaf6a735",
        "name": "Confidential"
      },
      {
        "sys_id": "59b7070b73fc1010ae8dd21efaf6a764",
        "name": "Restricted"
      },
      {
        "sys_id": "11d60fc773fc1010ae8dd21efaf6a744",
        "name": "Internal"
      },
      {
        "sys_id": "f5b4cf4773fc1010ae8dd21efaf6a766",
        "name": "Public"
      }
    ]

    ScopedDCManager - getClassification(文字列 dictEntries)

    指定された辞書エントリのすべてのデータ分類を取得します。

    admin、data_classification_admin、または data_classification_auditor ロールが必要です。

    表 : 7. パラメーター
    名前 タイプ 説明
    dictEntries 文字列
    分類を取得するレコードのSys_ids。文字列で囲まれたカンマ区切りリストとして入力します。

    テーブル:辞書 [sys_dictionary]

    表 : 8. 返される内容
    タイプ 説明
    <Object>

    各辞書エントリの sys_id と関連データクラスのアレイを含む JSON オブジェクトです。関連するデータ分類がない場合は、操作の結果を記述するメッセージを返します。

    データ分類は親子関係に整理できます。親データ分類がある場合は、それらが結果で識別されます。

    データタイプ:オブジェクト

    {
      <sys_dictionary_sys_id>: [
        {
          "parent": {Object},
          "sys_id": "String",
          "name": "String"
        }
      ]
    }
    
    <Object>.parent 親データ分類のエントリです。

    データタイプ:オブジェクト

    "parent": {
      "sys_id": "String",
      "name": "String"
    }
    <Object>.parent.sys_id データ分類 [data_classification] テーブルからの親データ分類の sys_id です。

    データタイプ:文字列

    <Object>.parent.name 親データ分類の名前です。

    データタイプ:文字列

    <Object>.sys_id データ分類 [data_classification] テーブルからのデータ分類の sys_id です。

    データタイプ:文字列

    <Object>.name データ分類名。

    データタイプ:文字列

    この例は、辞書エントリのデータ分類を取得します。

    var dcm = new global.ScopedDCManager();
    gs.info(dcm.getClassification("445de0a6dba30300efc57416bf9619b0"));
    

    出力:

    {
      "445de0a6dba30300efc57416bf9619b0": [
        {
          "parent": {
            "sys_id": "a9670fc773fc1010ae8dd21efaf6a735",
            "name": "Confidential"
          },
          "sys_id": "348107b951d71010f877f3f178e7dd0d",
          "name": "Personally identifiable information"
        }
      ]
    }