@PersonalData
STABLE This annotation can be used productively.
Introduction
The processing of personal data is key in business processes. SAP's products must enable our customers to operate their applications in compliance with data protection laws. One way of enabling is applying DPP-related annotations. Via those annotations the specific DPP-related behavior can be enabled by the consumers. The annotations are derived from existing personal data annotations in OData and OpenAPI.
Notational Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
Related Links
- OData personal data vocabulary: PersonalData
- OpenAPI: Extensions
Schema Definitions
- This is an extension vocabulary for CSN Interop Effective Document.
- The interface is available as JSON Schema: personal-data.schema.json.
Annotations Overview
| Annotation | Scope | Description |
|---|---|---|
| @PersonalData.entitySemantics | Entity | Primary meaning of the entities in the annotated entity set. Entities annotated with @PersonalData.entitySemantics are synonymous to @PersonalData.isPotentiallyPersonal. |
| @PersonalData.dataSubjectRole | Entity | Role of the data subjects in this set (e.g. employee, customer). Values are application-specific. |
| @PersonalData.dataSubjectRoleDescription | Entity | Language-dependent description of the role of the data subjects in this set (e.g. employee, customer). Values are application-specific. |
| @PersonalData.fieldSemantics | Type | Primary meaning of the personal data contained in the annotated property. Changes to values of annotated properties are tracked in the audit log. Use this annotation also on fields that are already marked as contact or address data. Properties annotated with fieldSemantics need not be additionally annotated with @PersonalData.isPotentiallyPersonal. |
| @PersonalData.isPotentiallyPersonal | Type | Property contains potentially personal data. Properties annotated with @PersonalData.fieldSemantics need not be additionally annotated with this annotation. Personal data describes any information which is related to an identified or identifiable natural person (data subject). An identifiable person is one who can be identified, directly or indirectly, in particular by a reference to an identifier such as a name, an identification number, location data, an online identifier, or to one or more factors specific to the physical, physiological, genetic, mental, economic, cultural, or social identity of that natural person. |
| @PersonalData.isPotentiallySensitive | Type | Property contains potentially sensitive personal data. Sensitive personal data is a category of personal data that needs special handling. The determination which personal data is sensitive may differ for different legal areas or industries. Examples of sensitive personal data: - Special categories of personal data, such as data revealing racial or ethnic origin, political opinions, religious or philosophical beliefs, trade union membership, genetic data, biometric data, data concerning health or sex life or sexual orientation. - Personal data subject to professional secrecy - Personal data relating to criminal or administrative offenses - Personal data concerning insurances and bank or credit card accounts |
@PersonalData.entitySemantics
Primary meaning of the entities in the annotated entity set. Entities annotated with @PersonalData.entitySemantics are synonymous to @PersonalData.isPotentiallyPersonal.
Scope: Entity
Extending: EntityDefinition
Type: Object(#)
| Property | Type | Description |
|---|---|---|
string | Provide the value in { "#": "<value>" } enum notation.Allowed Values:
|
Example Values:
{
"#": "DATA_SUBJECT"
}
@PersonalData.dataSubjectRole
Role of the data subjects in this set (e.g. employee, customer). Values are application-specific.
Scope: Entity
Extending: EntityDefinition
Type: string
@PersonalData.dataSubjectRoleDescription
Language-dependent description of the role of the data subjects in this set (e.g. employee, customer). Values are application-specific.
Scope: Entity
Extending: EntityDefinition
Type: string
@PersonalData.fieldSemantics
Primary meaning of the personal data contained in the annotated property. Changes to values of annotated properties are tracked in the audit log. Use this annotation also on fields that are already marked as contact or address data. Properties annotated with fieldSemantics need not be additionally annotated with @PersonalData.isPotentiallyPersonal.
Scope: Type
Extending: BooleanType, StringType, LargeStringType, IntegerType, Int16Type, Integer64Type, UInt8Type, DecimalType, DoubleType, DateType, TimeType, DateTimeType, TimestampType, UUIDType, BinaryType, LargeBinaryType, AssociationType, CompositionType, CustomType, TypeDefinition, BooleanTypeDefinition, StringTypeDefinition, LargeStringTypeDefinition, IntegerTypeDefinition, Int16TypeDefinition, Integer64TypeDefinition, UInt8TypeDefinition, DecimalTypeDefinition, DoubleTypeDefinition, DateTypeDefinition, TimeTypeDefinition, DateTimeTypeDefinition, TimestampTypeDefinition, UUIDTypeDefinition, BinaryTypeDefinition, LargeBinaryTypeDefinition, AssociationTypeDefinition, CompositionTypeDefinition
Type: Object(#)
| Property | Type | Description |
|---|---|---|
string | Provide the value in { "#": "<value>" } enum notation.Allowed Values:
|
Example Values:
{
"#": "DATA_SUBJECT_ID"
}
@PersonalData.isPotentiallyPersonal
Property contains potentially personal data. Properties annotated with @PersonalData.fieldSemantics need not be additionally annotated with this annotation. Personal data describes any information which is related to an identified or identifiable natural person (data subject). An identifiable person is one who can be identified, directly or indirectly, in particular by a reference to an identifier such as a name, an identification number, location data, an online identifier, or to one or more factors specific to the physical, physiological, genetic, mental, economic, cultural, or social identity of that natural person.
Scope: Type
Extending: BooleanType, StringType, LargeStringType, IntegerType, Int16Type, Integer64Type, UInt8Type, DecimalType, DoubleType, DateType, TimeType, DateTimeType, TimestampType, UUIDType, BinaryType, LargeBinaryType, AssociationType, CompositionType, CustomType, TypeDefinition, BooleanTypeDefinition, StringTypeDefinition, LargeStringTypeDefinition, IntegerTypeDefinition, Int16TypeDefinition, Integer64TypeDefinition, UInt8TypeDefinition, DecimalTypeDefinition, DoubleTypeDefinition, DateTypeDefinition, TimeTypeDefinition, DateTimeTypeDefinition, TimestampTypeDefinition, UUIDTypeDefinition, BinaryTypeDefinition, LargeBinaryTypeDefinition, AssociationTypeDefinition, CompositionTypeDefinition
Type: boolean
Default Value: true
@PersonalData.isPotentiallySensitive
Property contains potentially sensitive personal data. Sensitive personal data is a category of personal data that needs special handling. The determination which personal data is sensitive may differ for different legal areas or industries. Examples of sensitive personal data:
- Special categories of personal data, such as data revealing racial or ethnic origin, political opinions, religious or philosophical beliefs, trade union membership, genetic data, biometric data, data concerning health or sex life or sexual orientation.
- Personal data subject to professional secrecy
- Personal data relating to criminal or administrative offenses
- Personal data concerning insurances and bank or credit card accounts
Scope: Type
Extending: BooleanType, StringType, LargeStringType, IntegerType, Int16Type, Integer64Type, UInt8Type, DecimalType, DoubleType, DateType, TimeType, DateTimeType, TimestampType, UUIDType, BinaryType, LargeBinaryType, AssociationType, CompositionType, CustomType, TypeDefinition, BooleanTypeDefinition, StringTypeDefinition, LargeStringTypeDefinition, IntegerTypeDefinition, Int16TypeDefinition, Integer64TypeDefinition, UInt8TypeDefinition, DecimalTypeDefinition, DoubleTypeDefinition, DateTypeDefinition, TimeTypeDefinition, DateTimeTypeDefinition, TimestampTypeDefinition, UUIDTypeDefinition, BinaryTypeDefinition, LargeBinaryTypeDefinition, AssociationTypeDefinition, CompositionTypeDefinition
Type: boolean
Default Value: true