v0.6.0
Please note that this content is under development and is not ready for implementation. This status message will be updated as content development progresses.
Overview
This guide covers the migration from UNTP (UN Transparency Protocol) version 0.5.0 to 0.6.0 across all supported data models within the Reference Implementation. The update introduces several structural changes and improvements to schema definitions, data validation patterns, and JSON-LD contexts.
Digital Identity Anchor (DIA)
Summary of Changes
The main change to the Digital Identity Anchor in UNTP 0.6.0 is the same change present for the other UNTP credentials: the credential issuer's otherIdentifier
field was changed in name and format. See the details below, together with the other smaller changes that are mostly version number updates.
Data Model Changes
1. JSON-LD Context Updates
Before (0.2.1):
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://vocabulary.uncefact.org/untp/dia/0.2.1/"
]
After (0.6.0):
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://test.uncefact.org/vocabulary/untp/dia/0.6.0/"
]
2. Issuer Identifier Structure Changes
The issuer identifier otherIdentifier
property has been replaced with a new issuerAlsoKnownAs
property.
Example data structure change:
Before (0.2.1):
{
"issuer": {
"type": ["CredentialIssuer"],
"id": "did:web:identifiers.example-company.com:12345",
"name": "Example Company Pty Ltd",
"otherIdentifier": [
{
"type": ["Identifier"],
"id": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"name": "Example Company Pty Ltd.",
"registeredId": "90664869327",
"idScheme": {
"type": ["IdentifierScheme"],
"id": "https://abr.business.gov.au/ABN/",
"name": "Australian Business Number (ABN)"
}
}
]
}
}
After (0.6.0):
{
"issuer": {
"type": ["CredentialIssuer"],
"id": "did:web:identifiers.example-company.com:12345",
"name": "Example Company Pty Ltd",
"issuerAlsoKnownAs": [
{
"id": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"name": "Example Company Pty Ltd.",
"registeredId": "90664869327"
}
]
}
}
3. RegisteredIdentity Structure Updates
Key Changes:
- Removed
Identifier
type inheritance fromRegisteredIdentity
Example: RegisteredIdentity type change
Before (0.2.1):
{
"credentialSubject": {
"type": ["RegisteredIdentity", "Identifier"],
"id": "did:web:samplecompany.com/123456789",
"name": "Sample business Ltd",
"registeredId": "123456789",
"idScheme": {
"type": ["IdentifierScheme"],
"id": "https://id.gs1.org/01/",
"name": "Global Trade Identification Number (GTIN)"
}
}
}
After (0.6.0):
{
"credentialSubject": {
"type": ["RegisteredIdentity"],
"id": "did:web:samplecompany.com/123456789",
"name": "Sample business Ltd",
"registeredId": "123456789",
"idScheme": {
"type": ["IdentifierScheme"],
"id": "https://id.gs1.org/01/",
"name": "Global Trade Identification Number (GTIN)"
}
}
}
Reference Implementation Updates
1. Schema URL Updates
Before (0.2.1):
"schema": {
"url": "https://jargon.sh/user/unece/DigitalIdentityAnchor/v/working/artefacts/jsonSchemas/DigitalIdentityAnchor.json"
}
After (0.6.0):
"schema": {
"url": "https://jargon.sh/user/unece/DigitalIdentityAnchor/v/0.6.0/artefacts/jsonSchemas/RegisteredIdentity.json?class=RegisteredIdentity"
}
2. Context Configuration in Services
Before (0.2.1):
"digitalIdentityAnchor": {
"context": ["https://test.uncefact.org/vocabulary/untp/dia/0.2.1/"]
}
After (0.6.0):
"digitalIdentityAnchor": {
"context": ["https://test.uncefact.org/vocabulary/untp/dia/0.6.0/"]
}
3. Form Data Structure Updates
If you're passing pre-populated data into the JsonForm component, update the data structure to conform to the new schema:
Before (0.2.1):
"data": {
"type": ["RegisteredIdentity", "Identifier"],
"id": "did:web:samplecompany.com/123456789",
"name": "Sample business Ltd",
"registeredId": "123456789",
"idScheme": {
"type": ["IdentifierScheme"],
"id": "https://id.gs1.org/01/",
"name": "Global Trade Identification Number (GTIN)"
}
}
After (0.6.0):
"data": {
"type": ["RegisteredIdentity"],
"id": "did:web:samplecompany.com/123456789",
"name": "Sample business Ltd",
"registeredId": "123456789",
"idScheme": {
"type": ["IdentifierScheme"],
"id": "https://id.gs1.org/01/",
"name": "Global Trade Identification Number (GTIN)"
}
}
4. Render Template Updates
Update the render template to use the new 0.6.0 compliant template. The updated template can be found at:
packages/mock-app/src/templates/v0.6.0/digital_identity_anchor/template.hbs
Example template configuration update:
Before (0.2.1):
"renderTemplate": [
{
"type": "WebRenderingTemplate2022",
"template": "{v0.2.1-template}..."
}
]
After (0.6.0):
"renderTemplate": [
{
"type": "WebRenderingTemplate2022",
"template": "{v0.6.0-template}..."
}
]
5. VCKit Issuer Structure Updates
Update the VCKit issuer configuration to use the new identifier structure:
Before (0.2.1):
"vckit": {
"vckitAPIUrl": "http://localhost:3332/v2",
"issuer": {
"type": ["CredentialIssuer"],
"id": "did:web:uncefact.github.io:project-vckit:test-and-development",
"name": "Example Company Pty Ltd",
"otherIdentifier": [
{
"type": ["Identifier"],
"id": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"name": "Example Company Pty Ltd.",
"registeredId": "90664869327",
"idScheme": {
"type": ["IdentifierScheme"],
"id": "https://abr.business.gov.au/ABN/",
"name": "Australian Business Number (ABN)"
}
}
]
},
"headers": {...}
}
After (0.6.0):
"vckit": {
"vckitAPIUrl": "http://localhost:3332/v2",
"issuer": {
"type": ["CredentialIssuer"],
"id": "did:web:uncefact.github.io:project-vckit:test-and-development",
"name": "Example Company Pty Ltd",
"issuerAlsoKnownAs": [
{
"id": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"name": "Example Company Pty Ltd.",
"registeredId": "90664869327"
}
]
},
"headers": {...}
}
Digital Facility Record (DFR)
Summary of Changes
The main changes for Digital Facility Records in UNTP 0.6.0 include:
- Enhanced validation patterns: The updated schema validations simplify the extension of UNTP credential types.
- Improved identifier structure: Simplified identifier scheme with better organisation and removal of nested
idScheme
references - Updated JSON-LD contexts: New vocabulary context path structure with improved semantic mappings and vocabulary organisation
- Schema refinements: Better property organisation, improved abstraction, and enhanced data model consistency
Data Model Changes
1. JSON-LD Context
Before (0.5.0):
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://vocabulary.uncefact.org/untp/dfr/0.5.0/"
]
After (0.6.0):
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://test.uncefact.org/vocabulary/untp/dfr/0.6.0/"
]
2. Credential Subject Structure
The credentialSubject
property has been restructured from a direct Facility
reference to a FacilityRecord
that contains the facility.
Example data structure change:
Before (0.5.0):
{
"credentialSubject": {
"type": ["Facility"],
"id": "https://id.gs1.org/414/1321202290648",
"name": "Greenacres battery factory",
"conformityClaim": [...]
}
}
After (0.6.0):
{
"credentialSubject": {
"type": ["FacilityRecord"],
"facility": {
"type": ["Facility"],
"id": "https://id.gs1.org/414/1321202290648",
"name": "Greenacres battery factory"
},
"conformityClaim": [...]
}
}
3. Issuer Identifier Structure
The issuer identifier otherIdentifier
property has been replaced with a new issuerAlsoKnownAs
property.
Example data structure change:
Before (0.5.0):
{
"issuer": {
"type": ["CredentialIssuer"],
"id": "did:web:identifiers.example-company.com:12345",
"name": "Example Company Pty Ltd",
"otherIdentifier": [
{
"type": ["Identifier"],
"id": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"name": "Example Company Pty Ltd.",
"registeredId": "90664869327",
"idScheme": {
"type": ["IdentifierScheme"],
"id": "https://abr.business.gov.au/ABN/",
"name": "Australian Business Number (ABN)"
}
}
]
}
}
After (0.6.0):
{
"issuer": {
"type": ["CredentialIssuer"],
"id": "did:web:identifiers.example-company.com:12345",
"name": "Example Company Pty Ltd",
"issuerAlsoKnownAs": [
{
"id": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"name": "Example Company Pty Ltd.",
"registeredId": "90664869327"
}
]
}
}
4. Facility Structure
Key Changes:
otherIdentifier
property replaced with newfacilityAlsoKnownAs
propertyoperatedByParty
structure simplified fromIdentifier
.
Example: facilityAlsoKnownAs structure change
Before (0.5.0):
{
"credentialSubject": {
"type": ["Facility"],
"otherIdentifier": [
{
"type": ["Identifier"],
"id": "https://id.gs1.org/414/1321202290648",
"name": "Greenacres battery factory",
"registeredId": "1321202290648",
"idScheme": {
"type": ["IdentifierScheme"],
"id": "https://id.gs1.org/414/",
"name": "Global Location Number"
}
}
]
}
}
After (0.6.0):
{
"credentialSubject": {
"type": ["FacilityRecord"],
"facility": {
"type": ["Facility"],
"facilityAlsoKnownAs": [
{
"id": "https://id.gs1.org/414/1321202290648",
"name": "Greenacres battery factory",
"registeredId": "1321202290648"
}
]
}
}
}
Example: operatedByParty structure change
Before (0.5.0):
{
"credentialSubject": {
"type": ["Facility"],
"operatedByParty": {
"type": ["Identifier"],
"id": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"name": "Example Company Pty Ltd.",
"registeredId": "90664869327",
"idScheme": {
"type": ["IdentifierScheme"],
"id": "https://abr.business.gov.au/ABN/",
"name": "Australian Business Number (ABN)"
}
}
}
}
After (0.6.0):
{
"credentialSubject": {
"type": ["FacilityRecord"],
"facility": {
"type": ["Facility"],
"operatedByParty": {
"id": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"name": "Example Company Pty Ltd.",
"registeredId": "90664869327"
}
}
}
}
Reference Implementation Updates
1. Schema URL Updates
Before (0.5.0):
"schema": {
"url": "https://jargon.sh/user/unece/DigitalFacilityRecord/v/working/artefacts/jsonSchemas/FacilityRecord.json"
}
After (0.6.0):
"schema": {
"url": "https://jargon.sh/user/unece/DigitalFacilityRecord/v/0.6.0/artefacts/jsonSchemas/FacilityRecord.json?class=FacilityRecord"
}
2. Context Configuration in Services
Before (0.5.0):
"digitalFacilityRecord": {
"context": ["https://test.uncefact.org/vocabulary/untp/dfr/0.5.0/"]
}
After (0.6.0):
"digitalFacilityRecord": {
"context": ["https://test.uncefact.org/vocabulary/untp/dfr/0.6.0/"]
}
3. Form Data Structure Updates
If you're passing pre-populated data into the JsonForm component, update the data structure to conform to the new FacilityRecord schema:
Before (0.5.0):
"data": {
"type": ["Facility"],
"id": "https://id.gs1.org/414/1321202290648",
"name": "Greenacres battery factory",
"operatedByParty": {
"type": ["Identifier"],
"id": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"name": "Example Company Pty Ltd.",
"registeredId": "90664869327",
"idScheme": {
"type": ["IdentifierScheme"],
"id": "https://abr.business.gov.au/ABN/",
"name": "Australian Business Number (ABN)"
}
},
"conformityClaim": [...]
}
After (0.6.0):
"data": {
"type": ["FacilityRecord"],
"facility": {
"type": ["Facility"],
"id": "https://id.gs1.org/414/1321202290648",
"name": "Greenacres battery factory",
"operatedByParty": {
"id": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"name": "Example Company Pty Ltd.",
"registeredId": "90664869327"
}
},
"conformityClaim": [...]
}
4. Render Template Updates
Update the render template to use the new 0.6.0 compliant template. The updated template can be found at:
packages/mock-app/src/templates/v0.6.0/digital_facility_record/template.hbs
Example template configuration update:
Before (0.5.0):
"renderTemplate": [
{
"type": "WebRenderingTemplate2022",
"template": "{v0.5.0-template}..."
}
]
After (0.6.0):
"renderTemplate": [
{
"type": "WebRenderingTemplate2022",
"template": "{v0.6.0-template}..."
}
]
5. VCkit Issuer Structure Updates
Update the VCkit issuer configuration to use the new identifier structure:
Before (0.5.0):
"vckit": {
"vckitAPIUrl": "http://localhost:3332/v2",
"issuer": {
"type": ["CredentialIssuer"],
"id": "did:web:uncefact.github.io:project-vckit:test-and-development",
"name": "Example Company Pty Ltd",
"otherIdentifier": [
{
"type": ["Identifier"],
"id": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"name": "Example Company Pty Ltd.",
"registeredId": "90664869327",
"idScheme": {
"type": ["IdentifierScheme"],
"id": "https://abr.business.gov.au/ABN/",
"name": "Australian Business Number (ABN)"
}
}
]
},
"headers": {...}
}
After (0.6.0):
"vckit": {
"vckitAPIUrl": "http://localhost:3332/v2",
"issuer": {
"type": ["CredentialIssuer"],
"id": "did:web:uncefact.github.io:project-vckit:test-and-development",
"name": "Example Company Pty Ltd",
"issuerAlsoKnownAs": [
{
"id": "https://abr.business.gov.au/ABN/View?abn=90664869327",
"name": "Example Company Pty Ltd.",
"registeredId": "90664869327"
}
]
},
"headers": {...}
}