adobe / adobe/xdm

Data classification annotations in XDM

Open
#560 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
266
Forks
380
Avg merge
5d 8h
Merged PRs (30d)
9

Description

## What are the schemas that are affected by the issue

A standalone schema descriptor to add data classification annotations.
This descriptor can be applied to all XDM schemas to indicate data classification levels:
- restricted
- confidential
- internal
- public

The classification levels can be applied to properties in a XDM schema definition, for example:

"xdm:confidential": [
"repo:name",
"repo:path"
]

In addition to `xdm:confidential`, `xdm:restricted` and `xdm:internal` are possible.

This is a full example of the Asset schema:

```
{
"meta:license": [
"Copyright 2018 Adobe Systems Incorporated. All rights reserved.",
"This work is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license",
"you may not use this file except in compliance with the License. You may obtain a copy",
"of the License at https://creativecommons.org/licenses/by/4.0/"
],
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "http://ns.adobe.com/adobecloud/core/1.0/asset",
"type": "object",
"title": "Asset",
"meta:extends": [
"http://ns.adobe.com/adobecloud/core/1.0#/definitions/common-properties",
"http://ns.adobe.com/adobecloud/core/1.0#/definitions/date-properties",
"https://ns.adobe.com/xdm/external/hal/resource#/definitions/hal"
],
"meta:extensible": true,
"description":
"An asset in Adobe Cloud Platform. It is not neccessarily a Digital Asset in the sense of Digital Asset Management, but a piece of content or data that can be represented in the form of a file.",
"definitions": {
"asset": {
"properties": {
"repo:id": {
"type": "string",
"meta:immutable": true,
"meta:usereditable": false,
"description":
"A unique identifier given to every addressable asset in a given repository.",
"examples": ["urn:aaid:sc:US:6dc33479-13ca-4b19-b25d-c805eff8a69e"]
},
"repo:etag": {
"meta:usereditable": false,
"type": "string",
"title": "ETag",
"description":
"An ETag is an HTTP response header returned by an HTTP/1.1 compliant web server used to determine change in content of a resource at a given URL. "
},
"repo:version": {
"type": "string",
"meta:immutable": true,
"meta:usereditable": false,
"description":
"The version ID of the piece of content. It will be generated both on explicit and implicit save or upload."
},
"tiff:imageWidth": {
"title": "Width",
"description": "Width in pixels",
"type": "integer",
"meta:usereditable": false,
"minimum": 0,
"example": 768
},
"tiff:imageLength": {
"title": "Length",
"description":
"Height in pixels. To maintain continuity with the XMP and TIFF standards, the height of an image or video is specified in the property `imageLength`. The duration of the video (also commonly called length) is specified in the property `extent`",
"type": "integer",
"meta:usereditable": false,
"minimum": 0,
"example": 1024
},
"repo:size": {
"meta:usereditable": false,
"type": "integer",
"title": "Size",
"description": "Size of the asset in bytes."
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/asset"
},
{
"$ref":
"http://ns.adobe.com/adobecloud/core/1.0#/definitions/common-properties"
},
{
"$ref":
"http://ns.adobe.com/adobecloud/core/1.0#/definitions/date-properties"
},
{
"$ref": "https://ns.adobe.com/xdm/external/hal/resource#/definitions/hal"
}
],
"required": [
"repo:name",
"repo:path",
"dc:format",
"repo:createdDate",
"repo:lastModifiedDate",
"repo:id",
"repo:etag",
"repo:version",
"repo:size"
],
"meta:status": "experimental",
"xdm:confidential": [
"repo:name",
"repo:path"
]
}
```

The example above marks the fields `repo:name` and `repo:path` as confidential.

## What are examples of products that are impacted by the issue

ACP

Contributor guide

Open the contributing guide

Research direction

The issue describes a standalone XDM schema descriptor and shows an Asset schema example with xdm:confidential annotations. Start by locating the XDM schema definitions and existing descriptors; confirm how classification levels are represented and applied to properties. Done means supporting restricted, confidential, internal, and public classifications with the documented example behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
json
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.