Overview
Item classification is the process of assigning a series of labels to an item from a predefined list of labels. Specific industries or regions have data privacy laws and data compliance regulations that require items to be classified in order to protect, and control access to, sensitive information. Though the specifics of each data protection law, regulation, or standard may vary, all require that data is classified, and all will perform audits to ensure that organizations are in compliance.
ArcGIS Enterprise administrators (either the default administrator, or an administrator assigned a custom role that includes the Organization website privilege) can define a set of labels that take into account the specific laws or regulations their item classifications need to include. This allows organization members to use those labels to set the level of sensitivity of the data an item has, specify who the information can be accessed by or shared with, and outline when information can be made publicly accessible.
Administrators define these sets of labels through a classification schema. A classification schema is a JSON object that contains a hierarchy of classification and dissemination properties. The schema is provided as a JSON file and assigned to the organization, after which all new items added to the organization, and any preexisting items, must be classified.
While classification schemas can be complex, organizations may benefit from creating an initial schema that focuses on a core number of classification labels that cover broad restriction categories. As time goes on, the schema can be updated to include more classification labels to account for any changes to regulation requirements, for internal classification purposes, or to accommodate any new regulations the organization needs to follow.
Defining a classification schema
A classification schema is made up of four sub-objects:
- Base properties: the schema's high-level properties.
- Classification Metadata: the primary classification label for organization items (e.g. Unclassified, In-confidence, Sensitive, etc.).
- Attributes: the various classification and dissemination information used to classify items.
- Layouts: the order in which the attributes are presented on the classification form.
Each area is defined in more detail below.
Base properties
A classification schema's base properties are the higher-level properties that define elements of the schema itself and how classification labels will be displayed during and after classification.
The sample code below demonstrates how the base properties have been set up for a specific schema. This sample does not show the full classification schema; the other tabs have code samples that demonstrate more of the schema's syntax.
{
"name": "academic-institution-classification-schema",
"version": "2.0",
"grammarVersion": "2.0",
"attributeCategories": [],
"bannerExpression": "function bannerExpression(schemaJsonString, valueJsonString, attributeId) {\n var valueJson = Dictionary(valueJsonString)\n var schemaJson = Dictionary(schemaJsonString)\n var selectionText = \"\"\n if (HasKey(valueJson, \"classification\")) {\n selectionText = selectionText + valueJson[\"classification\"]\n if (HasKey(valueJson, \"distribution\")) {\n selectionText = selectionText + \"//\" + valueJson[\"distribution\"]\n }\n if (HasKey(valueJson, \"reviewDate\") && valueJson[\"classification\"] != \"Unclassified\") {\n selectionText = selectionText + \"/\" + \"To be reviewed on\" + \" \" + valueJson[\"reviewDate\"]\n }\n }\n return selectionText;\n}\nbannerExpression(schemaJsonString, valueJsonString, attributeId)",
"selectionTextExpression": "function selectionTextExpression(schemaJsonString, valueJsonString, attributeId) {\n var valueJson = Dictionary(valueJsonString)\n var schemaJson = Dictionary(schemaJsonString)\n var selectionText = \"\"\n if (HasKey(valueJson, \"classification\")) {\n selectionText = selectionText + valueJson[\"classification\"]\n if (HasKey(valueJson, \"distribution\")) {\n selectionText = selectionText + \"//\" + valueJson[\"distribution\"]\n }\n if (HasKey(valueJson, \"reviewDate\") && valueJson[\"classification\"] != \"Unclassified\") {\n selectionText = selectionText + \"/\" + \"To be reviewed on\" + \" \" + valueJson[\"reviewDate\"]\n }\n }\n return selectionText;\n}\nselectionTextExpression(schemaJsonString, valueJsonString, attributeId)",
}
There are two properties (banner
and selection
) that accept Arcade expressions as an input. The code samples below provide a closer look at Arcade expression examples for each property.
function bannerExpression(schemaJsonString, valueJsonString, attributeId) {
var valueJson = Dictionary(valueJsonString);
var schemaJson = Dictionary(schemaJsonString);
var selectionText = "";
if (HasKey(valueJson, "classification")) {
selectionText = selectionText + valueJson["classification"];
if (HasKey(valueJson, "distribution")) {
selectionText = selectionText + "//" + valueJson["distribution"];
}
if (HasKey(valueJson, "reviewDate") && valueJson["classification"] != "Unclassified") {
selectionText = selectionText + "/" + "To be reviewed on" + " " + valueJson["reviewDate"];
The table below outlines the required and optional base properties for the classification schema.
Property | Required | Description |
---|---|---|
name | Specifies the name of the classification schema.
| |
version | Specifies the version number of the classification schema. The version can be updated each time the classification schema is modified, though the value that should be assigned to represent that update is up to the discretion of organization administrators.
| |
grammar | Specifies the grammar version the schema classification adheres to. This value must match the current grammar version, which is returned by the Classification resource.
| |
help | Sets the help text that is returned whenever a user hovers over the Information button on the classification form.
| |
help | Sets the URL of the schema help document that is opened when a user clicks on the Information button on the classification form. The help document will open up as a new tab. Help documentation is created, maintained, and hosted by the organization and is not provided by Esri.
| |
banner | Generates the banner text for an item using Arcade expressions. After an item has been classified, the classification marking is stored as a JSON object on the item, which includes the banner text, and is returned as part of the item's details. Note that not every classification value needs to be part of an item's banner. Specified or assigned values that are not included as part of the banner text are still retained. If this property is not included in the schema, or its value is set to an empty string, generic encoding logic for the
| |
selection | Generates the selection text using Arcade expressions. Selection text is displayed in the Current Selections portion of the classification form. If this property is not included in the schema, or its value is set to an empty string, generic encoding logic for the
| |
attribute | An array of attribute categories. Attributes assigned one of these categories for their
|