From 4f5c2090613a8be502d0a7651d3c967f0e60380c Mon Sep 17 00:00:00 2001 From: "ana.brumen" Date: Fri, 15 May 2026 10:48:43 +0200 Subject: [PATCH] Boarding Pass Certificate --- _generated/credential-types.json | 20 + _generated/credentials.json | 2 +- boarding-pass-certificate/README.md | 10 + boarding-pass-certificate/v1/README.md | 11 + boarding-pass-certificate/v1/edc/README.md | 9 + .../edc/input-fields-to-credential-map.json | 10 + boarding-pass-certificate/v1/edc/schema.json | 624 ++++++++++++++++++ .../v1/input-fields/README.md | 9 + .../v1/input-fields/example.json | 12 + .../v1/input-fields/schema.json | 58 ++ .../v1/input-fields/translations/en.json | 10 + .../v1/translations/en.json | 5 + .../v1/user-consent/user-consent-map.json | 10 + 13 files changed, 789 insertions(+), 1 deletion(-) create mode 100644 boarding-pass-certificate/README.md create mode 100644 boarding-pass-certificate/v1/README.md create mode 100644 boarding-pass-certificate/v1/edc/README.md create mode 100644 boarding-pass-certificate/v1/edc/input-fields-to-credential-map.json create mode 100644 boarding-pass-certificate/v1/edc/schema.json create mode 100644 boarding-pass-certificate/v1/input-fields/README.md create mode 100644 boarding-pass-certificate/v1/input-fields/example.json create mode 100644 boarding-pass-certificate/v1/input-fields/schema.json create mode 100644 boarding-pass-certificate/v1/input-fields/translations/en.json create mode 100644 boarding-pass-certificate/v1/translations/en.json create mode 100644 boarding-pass-certificate/v1/user-consent/user-consent-map.json diff --git a/_generated/credential-types.json b/_generated/credential-types.json index bde9508..713745a 100644 --- a/_generated/credential-types.json +++ b/_generated/credential-types.json @@ -13,6 +13,26 @@ } } }, + "boarding-pass-certificate": { + "v1": { + "schema": "/boarding-pass-certificate/v1/input-fields/schema.json", + "formats": { + "edc": { + "schema": "/boarding-pass-certificate/v1/edc/schema.json", + "map": { + "fullName": "/credentialSubject/fullName", + "flightNumber": "/credentialSubject/flightInformation/flightNumber", + "date": "/credentialSubject/flightInformation/date", + "boardingTime": "/credentialSubject/flightInformation/boardingTime", + "locationFrom": "/credentialSubject/flightInformation/locationFrom", + "locationTo": "/credentialSubject/flightInformation/locationTo", + "gateNumber": "/credentialSubject/flightInformation/gateNumber", + "seatNumber": "/credentialSubject/flightInformation/seatNumber" + } + } + } + } + }, "certificate-of-advanced-study": { "v1": { "schema": "/certificate-of-advanced-study/v1/input-fields/schema.json", diff --git a/_generated/credentials.json b/_generated/credentials.json index 2bb4a82..7cfbd71 100644 --- a/_generated/credentials.json +++ b/_generated/credentials.json @@ -1 +1 @@ -{"consent_groups":{"available_languages":["en"],"groups":{"identity-profile":{"label":{"en":"Identity Profile"},"description":{"en":"Core personal details that establish and verify an individual’s identity."},"icon":"_resources/user-consent/icons/user.svg"},"education-qualifications":{"label":{"en":"Education and Qualifications"},"description":{"en":"Information about your studies, completed learning activities and results."},"icon":"_resources/user-consent/icons/education.svg"},"auth-privileges":{"label":{"en":"Authorization & Privileges"},"description":{"en":"Active licenses, permissions, and approved operating rights associated with the individual."},"icon":"_resources/user-consent/icons/user-card.svg"},"credential-info":{"label":{"en":"Credential Information"},"description":{"en":"Information related to the issuance of official documents or credentials."},"icon":"_resources/user-consent/icons/credential.svg"},"age_info":{"label":{"en":"Age Qualification"},"description":{"en":"Age-related information presented in a privacy-conscious way."},"icon":"_resources/user-consent/icons/calendar.svg"}}},"credential_types":{"age-verification":{"v1":{"label":{"en":"Age verification"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"ageOver18":{"label":{"en":"Age over 18"},"group":"age_info"},"ageOver{{NN}}":{"label":{"en":"Age over {{NN}}"},"group":"age_info"}}}},"certificate-of-advanced-study":{"v1":{"label":{"en":"Certificate of Advanced Study"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"credentialTitle":{"label":{"en":"Credential title"},"group":"credential-info"},"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"placeOfBirth":{"label":{"en":"Country of birth"},"group":"identity-profile"},"fullAddress":{"label":{"en":"City of birth"},"group":"identity-profile"},"ectsPoints":{"label":{"en":"ECTS Points"},"group":"education-qualifications"},"qrCode":{"label":{"en":"QR Code"},"group":"credential-info"},"validUntil":{"label":{"en":"Valid until"},"group":"credential-info"}}}},"certificate-of-attendance":{"v1":{"label":{"en":"Certificate of Attendance"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"credentialTitle":{"label":{"en":"Credential title"},"group":"credential-info"},"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"achievementTitle":{"label":{"en":"Achievement title"},"group":"education-qualifications"},"achievementDescription":{"label":{"en":"Achievement description"},"group":"education-qualifications"},"country":{"label":{"en":"Country"},"group":"identity-profile"},"address":{"label":{"en":"Address"},"group":"identity-profile"},"location":{"label":{"en":"Location"},"group":"education-qualifications"},"url":{"label":{"en":"Website"},"group":"education-qualifications"},"startDate":{"label":{"en":"Start Date"},"group":"education-qualifications"},"endDate":{"label":{"en":"End Date"},"group":"education-qualifications"},"workload":{"label":{"en":"Duration in hours"},"group":"education-qualifications"},"awardingStatement":{"label":{"en":"Awarding statement"},"group":"education-qualifications"}}}},"certificate-of-participation-in-summer-school":{"v1":{"label":{"en":"Certificate of Participation in Summer School"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"credentialTitle":{"label":{"en":"Credential title"},"group":"credential-info"},"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"placeOfBirth":{"label":{"en":"Country of birth"},"group":"identity-profile"},"fullAddress":{"label":{"en":"City of birth"},"group":"identity-profile"},"studentNumber":{"label":{"en":"Student number"},"group":"identity-profile"},"academicYear":{"label":{"en":"Academic Year"},"group":"education-qualifications"},"programmeTitle":{"label":{"en":"Programme Title"},"group":"education-qualifications"},"workload":{"label":{"en":"Duration in hours"},"group":"education-qualifications"},"validUntil":{"label":{"en":"Valid until"},"group":"credential-info"}}}},"confirmation-of-enrolment":{"v1":{"label":{"en":"Confirmation of Enrolment"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"credentialTitle":{"label":{"en":"Credential title"},"group":"credential-info"},"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"placeOfBirth":{"label":{"en":"Country of birth"},"group":"identity-profile"},"fullAddress":{"label":{"en":"City of birth"},"group":"identity-profile"},"studentNumber":{"label":{"en":"Student number"},"group":"identity-profile"},"academicYear":{"label":{"en":"Academic Year"},"group":"education-qualifications"},"programmeTitle":{"label":{"en":"Programme Title"},"group":"education-qualifications"},"validUntil":{"label":{"en":"Valid until"},"group":"credential-info"}}}},"degree-certificate":{"v1":{"label":{"en":"Degree Certificate"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"placeOfBirth":{"label":{"en":"Country of birth"},"group":"identity-profile"},"fullAddress":{"label":{"en":"City of birth"},"group":"identity-profile"},"programmeTitle":{"label":{"en":"Programme Title"},"group":"education-qualifications"},"studentNumber":{"label":{"en":"Student number"},"group":"identity-profile"}}}},"matriculation":{"v1":{"label":{"en":"Matriculation"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"credentialTitle":{"label":{"en":"Credential title"},"group":"education-qualifications"},"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"personTitle":{"label":{"en":"Person title"},"group":"identity-profile"},"studentNumber":{"label":{"en":"Student number"},"group":"identity-profile"},"currentEcts":{"label":{"en":"Current ECTS"},"group":"education-qualifications"},"maxEcts":{"label":{"en":"Max ECTS"},"group":"education-qualifications"},"deadline":{"label":{"en":"Deadline"},"group":"education-qualifications"},"matriculationStart":{"label":{"en":"Matriculation Start"},"group":"education-qualifications"},"matriculationEnd":{"label":{"en":"Matriculation End"},"group":"education-qualifications"},"programmeTitle":{"label":{"en":"Programme Title"},"group":"education-qualifications"},"programmeStatus":{"label":{"en":"Status"},"group":"education-qualifications"},"validUntil":{"label":{"en":"Valid until"},"group":"credential-info"}}}},"microcredential":{"v1":{"label":{"en":"Microcredential"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"credentialTitle":{"label":{"en":"Credential title"},"group":"credential-info"},"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"achievementDescription":{"label":{"en":"Achievement description"},"group":"education-qualifications"},"dateIssued":{"label":{"en":"Date"},"group":"credential-info"},"gradeAchieved":{"label":{"en":"Grade achieved"},"group":"education-qualifications"},"verificationMethod":{"label":{"en":"Method"},"group":"education-qualifications"},"type":{"label":{"en":"Type"},"group":"education-qualifications"},"mode":{"label":{"en":"Mode"},"group":"education-qualifications"},"title":{"label":{"en":"Title"},"group":"education-qualifications"},"ectsPoints":{"label":{"en":"ECTS points"},"group":"education-qualifications"},"achievementTitle":{"label":{"en":"Achievement title"},"group":"education-qualifications"},"hoursOfLearning":{"label":{"en":"Hours of learning"},"group":"education-qualifications"},"nationalId":{"label":{"en":"National ID"},"group":"identity-profile"},"awardingStatement":{"label":{"en":"Awarding statement"},"group":"education-qualifications"}}}},"mobile-drivers-licence":{"v1":{"label":{"en":"Mobile driver's licence"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"familyName":{"label":{"en":"Family name"},"group":"identity-profile"},"givenName":{"label":{"en":"Given name"},"group":"identity-profile"},"birthDate":{"label":{"en":"Birth date"},"group":"identity-profile"},"issueDate":{"label":{"en":"Issue date"},"group":"credential-info"},"expiryDate":{"label":{"en":"Expiry date"},"group":"credential-info"},"issuingCountry":{"label":{"en":"Issuing country"},"group":"credential-info"},"issuingAuthority":{"label":{"en":"Issuing authority"},"group":"credential-info"},"documentNumber":{"label":{"en":"Document number"},"group":"credential-info"},"portrait":{"label":{"en":"Portrait"},"group":"identity-profile"},"drivingPrivileges":{"label":{"en":"Driving privileges"},"group":"auth-privileges"},"unDistinguishingSign":{"label":{"en":"Undistinguishing sign"},"group":"identity-profile"},"administrativeNumber":{"label":{"en":"Administrative number"},"group":"credential-info"},"sex":{"label":{"en":"Sex"},"group":"identity-profile"},"height":{"label":{"en":"Height"},"group":"identity-profile"},"weight":{"label":{"en":"Weight"},"group":"identity-profile"},"eyeColour":{"label":{"en":"Eye colour"},"group":"identity-profile"},"hairColour":{"label":{"en":"Hair colour"},"group":"identity-profile"},"birthPlace":{"label":{"en":"Place of birth"},"group":"identity-profile"},"residentAddress":{"label":{"en":"Resident address"},"group":"identity-profile"},"portraitCaptureDate":{"label":{"en":"Portrait capture date"},"group":"identity-profile"},"ageInYears":{"label":{"en":"Age in years"},"group":"age_info"},"ageBirthYear":{"label":{"en":"Age of birth year"},"group":"age_info"},"ageOver{{NN}}":{"label":{"en":"Age over {{NN}}"},"group":"age_info"},"issuingJurisdiction":{"label":{"en":"Issuing jurisdiction"},"group":"credential-info"},"nationality":{"label":{"en":"Nationality"},"group":"identity-profile"},"residentCity":{"label":{"en":"Resident city"},"group":"identity-profile"},"residentState":{"label":{"en":"Resident state"},"group":"identity-profile"},"residentPostalCode":{"label":{"en":"Resident postal code"},"group":"identity-profile"},"residentCountry":{"label":{"en":"Resident country"},"group":"identity-profile"},"biometricTemplate":{"label":{},"group":"identity-profile"},"familyNameNationalCharacter":{"label":{"en":"Family name in national character"},"group":"identity-profile"},"givenNameNationalCharacter":{"label":{"en":"Given name in national character"},"group":"identity-profile"},"signatureUsualMark":{"label":{"en":"Signature or usual mark"},"group":"identity-profile"}}}},"personal-id":{"v2":{"label":{"en":"Personal ID"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"vct":{"label":{"en":"Verifiable credential type"},"group":"credential-info"},"familyName":{"label":{"en":"Family name"},"group":"identity-profile"},"givenName":{"label":{"en":"Given name"},"group":"identity-profile"},"birthDate":{"label":{"en":"Date of birth"},"group":"identity-profile"},"birthPlace":{"label":{"en":"Place of birth"},"group":"identity-profile"},"nationality":{"label":{"en":"Nationalities"},"group":"identity-profile"},"residentAddress":{"label":{"en":"Resident address"},"group":"identity-profile"},"residentCountry":{"label":{"en":"Resident country"},"group":"identity-profile"},"residentState":{"label":{"en":"Resident state"},"group":"identity-profile"},"residentCity":{"label":{"en":"Resident city"},"group":"identity-profile"},"residentPostalCode":{"label":{"en":"Resident postal code"},"group":"identity-profile"},"residentStreet":{"label":{"en":"Resident street"},"group":"identity-profile"},"residentHouseNumber":{"label":{"en":"Resident house number"},"group":"identity-profile"},"familyNameBirth":{"label":{"en":"Family name at birth"},"group":"identity-profile"},"givenNameBirth":{"label":{"en":"Given name at birth"},"group":"identity-profile"},"emailAddress":{"label":{"en":"Email"},"group":"identity-profile"},"mobilePhoneNumber":{"label":{"en":"Phone number"},"group":"identity-profile"},"portrait":{"label":{"en":"Portrait"},"group":"identity-profile"},"expiryDate":{"label":{"en":"Expiry date"},"group":"credential-info"},"issuanceDate":{"label":{"en":"Issuance date"},"group":"credential-info"},"personalAdministrativeNumber":{"label":{"en":"Personal administrative number"},"group":"identity-profile"},"sex":{"label":{"en":"Sex"},"group":"identity-profile"},"issuingAuthority":{"label":{"en":"Issuing authority"},"group":"credential-info"},"issuingCountry":{"label":{"en":"Issuing country"},"group":"credential-info"},"documentNumber":{"label":{"en":"Document number"},"group":"credential-info"},"issuingJurisdiction":{"label":{"en":"Issuing jurisdiction"},"group":"credential-info"},"trustAnchor":{"label":{"en":"Trust anchor"},"group":"credential-info"}}}},"student-id":{"v1":{"label":{"en":"Student ID"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"identityNumber":{"label":{"en":"Identity Number"},"group":"identity-profile"},"studentDiscount":{"label":{"en":"Student Discount"},"group":"auth-privileges"},"studentId":{"label":{"en":"Student ID"},"group":"identity-profile"},"asvzAuthorization":{"label":{"en":"ASVZ Authorization"},"group":"auth-privileges"},"vsethMembership":{"label":{"en":"VSETH Membership"},"group":"auth-privileges"},"cardNumber":{"label":{"en":"Card Number"},"group":"auth-privileges"},"libraryCode":{"label":{"en":"Library Code"},"group":"auth-privileges"},"organisationalResponsibility":{"label":{"en":"Organisational Responsibility"},"group":"auth-privileges"},"professionalRole":{"label":{"en":"Professional Role"},"group":"auth-privileges"},"validUntil":{"label":{"en":"Valid until"},"group":"credential-info"}}}},"visa-certificate":{"v1":{"label":{"en":"Visa Certificate"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"durationOfStay":{"label":{"en":"Duration of stay"},"group":"credential-info"},"issuanceDate":{"label":{"en":"Issuance date"},"group":"credential-info"},"validUntil":{"label":{"en":"Valid until"},"group":"credential-info"},"visaNumber":{"label":{"en":"Visa number"},"group":"credential-info"},"passportNumber":{"label":{"en":"Passport number"},"group":"identity-profile"},"placeOfIssue":{"label":{"en":"Place of issue"},"group":"credential-info"},"nationality":{"label":{"en":"Nationality"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"typeOfVisa":{"label":{"en":"Type of visa"},"group":"credential-info"},"entryType":{"label":{"en":"Entry type"},"group":"credential-info"}}}}}} \ No newline at end of file +{"consent_groups":{"available_languages":["en"],"groups":{"identity-profile":{"label":{"en":"Identity Profile"},"description":{"en":"Core personal details that establish and verify an individual’s identity."},"icon":"_resources/user-consent/icons/user.svg"},"education-qualifications":{"label":{"en":"Education and Qualifications"},"description":{"en":"Information about your studies, completed learning activities and results."},"icon":"_resources/user-consent/icons/education.svg"},"auth-privileges":{"label":{"en":"Authorization & Privileges"},"description":{"en":"Active licenses, permissions, and approved operating rights associated with the individual."},"icon":"_resources/user-consent/icons/user-card.svg"},"credential-info":{"label":{"en":"Credential Information"},"description":{"en":"Information related to the issuance of official documents or credentials."},"icon":"_resources/user-consent/icons/credential.svg"},"age_info":{"label":{"en":"Age Qualification"},"description":{"en":"Age-related information presented in a privacy-conscious way."},"icon":"_resources/user-consent/icons/calendar.svg"}}},"credential_types":{"age-verification":{"v1":{"label":{"en":"Age verification"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"ageOver18":{"label":{"en":"Age over 18"},"group":"age_info"},"ageOver{{NN}}":{"label":{"en":"Age over {{NN}}"},"group":"age_info"}}}},"boarding-pass-certificate":{"v1":{"label":{"en":"Boarding Pass Certificate"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"flightNumber":{"label":{"en":"Flight number"},"group":"credential-info"},"date":{"label":{"en":"Date"},"group":"credential-info"},"boardingTime":{"label":{"en":"Boarding time"},"group":"credential-info"},"locationFrom":{"label":{"en":"Location from"},"group":"credential-info"},"locationTo":{"label":{"en":"Location to"},"group":"credential-info"},"gateNumber":{"label":{"en":"Gate number"},"group":"credential-info"},"seatNumber":{"label":{"en":"Seat number"},"group":"credential-info"}}}},"certificate-of-advanced-study":{"v1":{"label":{"en":"Certificate of Advanced Study"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"credentialTitle":{"label":{"en":"Credential title"},"group":"credential-info"},"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"placeOfBirth":{"label":{"en":"Country of birth"},"group":"identity-profile"},"fullAddress":{"label":{"en":"City of birth"},"group":"identity-profile"},"ectsPoints":{"label":{"en":"ECTS Points"},"group":"education-qualifications"},"qrCode":{"label":{"en":"QR Code"},"group":"credential-info"},"validUntil":{"label":{"en":"Valid until"},"group":"credential-info"}}}},"certificate-of-attendance":{"v1":{"label":{"en":"Certificate of Attendance"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"credentialTitle":{"label":{"en":"Credential title"},"group":"credential-info"},"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"achievementTitle":{"label":{"en":"Achievement title"},"group":"education-qualifications"},"achievementDescription":{"label":{"en":"Achievement description"},"group":"education-qualifications"},"country":{"label":{"en":"Country"},"group":"identity-profile"},"address":{"label":{"en":"Address"},"group":"identity-profile"},"location":{"label":{"en":"Location"},"group":"education-qualifications"},"url":{"label":{"en":"Website"},"group":"education-qualifications"},"startDate":{"label":{"en":"Start Date"},"group":"education-qualifications"},"endDate":{"label":{"en":"End Date"},"group":"education-qualifications"},"workload":{"label":{"en":"Duration in hours"},"group":"education-qualifications"},"awardingStatement":{"label":{"en":"Awarding statement"},"group":"education-qualifications"}}}},"certificate-of-participation-in-summer-school":{"v1":{"label":{"en":"Certificate of Participation in Summer School"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"credentialTitle":{"label":{"en":"Credential title"},"group":"credential-info"},"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"placeOfBirth":{"label":{"en":"Country of birth"},"group":"identity-profile"},"fullAddress":{"label":{"en":"City of birth"},"group":"identity-profile"},"studentNumber":{"label":{"en":"Student number"},"group":"identity-profile"},"academicYear":{"label":{"en":"Academic Year"},"group":"education-qualifications"},"programmeTitle":{"label":{"en":"Programme Title"},"group":"education-qualifications"},"workload":{"label":{"en":"Duration in hours"},"group":"education-qualifications"},"validUntil":{"label":{"en":"Valid until"},"group":"credential-info"}}}},"confirmation-of-enrolment":{"v1":{"label":{"en":"Confirmation of Enrolment"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"credentialTitle":{"label":{"en":"Credential title"},"group":"credential-info"},"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"placeOfBirth":{"label":{"en":"Country of birth"},"group":"identity-profile"},"fullAddress":{"label":{"en":"City of birth"},"group":"identity-profile"},"studentNumber":{"label":{"en":"Student number"},"group":"identity-profile"},"academicYear":{"label":{"en":"Academic Year"},"group":"education-qualifications"},"programmeTitle":{"label":{"en":"Programme Title"},"group":"education-qualifications"},"validUntil":{"label":{"en":"Valid until"},"group":"credential-info"}}}},"degree-certificate":{"v1":{"label":{"en":"Degree Certificate"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"placeOfBirth":{"label":{"en":"Country of birth"},"group":"identity-profile"},"fullAddress":{"label":{"en":"City of birth"},"group":"identity-profile"},"programmeTitle":{"label":{"en":"Programme Title"},"group":"education-qualifications"},"studentNumber":{"label":{"en":"Student number"},"group":"identity-profile"}}}},"matriculation":{"v1":{"label":{"en":"Matriculation"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"credentialTitle":{"label":{"en":"Credential title"},"group":"education-qualifications"},"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"personTitle":{"label":{"en":"Person title"},"group":"identity-profile"},"studentNumber":{"label":{"en":"Student number"},"group":"identity-profile"},"currentEcts":{"label":{"en":"Current ECTS"},"group":"education-qualifications"},"maxEcts":{"label":{"en":"Max ECTS"},"group":"education-qualifications"},"deadline":{"label":{"en":"Deadline"},"group":"education-qualifications"},"matriculationStart":{"label":{"en":"Matriculation Start"},"group":"education-qualifications"},"matriculationEnd":{"label":{"en":"Matriculation End"},"group":"education-qualifications"},"programmeTitle":{"label":{"en":"Programme Title"},"group":"education-qualifications"},"programmeStatus":{"label":{"en":"Status"},"group":"education-qualifications"},"validUntil":{"label":{"en":"Valid until"},"group":"credential-info"}}}},"microcredential":{"v1":{"label":{"en":"Microcredential"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"credentialTitle":{"label":{"en":"Credential title"},"group":"credential-info"},"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"achievementDescription":{"label":{"en":"Achievement description"},"group":"education-qualifications"},"dateIssued":{"label":{"en":"Date"},"group":"credential-info"},"gradeAchieved":{"label":{"en":"Grade achieved"},"group":"education-qualifications"},"verificationMethod":{"label":{"en":"Method"},"group":"education-qualifications"},"type":{"label":{"en":"Type"},"group":"education-qualifications"},"mode":{"label":{"en":"Mode"},"group":"education-qualifications"},"title":{"label":{"en":"Title"},"group":"education-qualifications"},"ectsPoints":{"label":{"en":"ECTS points"},"group":"education-qualifications"},"achievementTitle":{"label":{"en":"Achievement title"},"group":"education-qualifications"},"hoursOfLearning":{"label":{"en":"Hours of learning"},"group":"education-qualifications"},"nationalId":{"label":{"en":"National ID"},"group":"identity-profile"},"awardingStatement":{"label":{"en":"Awarding statement"},"group":"education-qualifications"}}}},"mobile-drivers-licence":{"v1":{"label":{"en":"Mobile driver's licence"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"familyName":{"label":{"en":"Family name"},"group":"identity-profile"},"givenName":{"label":{"en":"Given name"},"group":"identity-profile"},"birthDate":{"label":{"en":"Birth date"},"group":"identity-profile"},"issueDate":{"label":{"en":"Issue date"},"group":"credential-info"},"expiryDate":{"label":{"en":"Expiry date"},"group":"credential-info"},"issuingCountry":{"label":{"en":"Issuing country"},"group":"credential-info"},"issuingAuthority":{"label":{"en":"Issuing authority"},"group":"credential-info"},"documentNumber":{"label":{"en":"Document number"},"group":"credential-info"},"portrait":{"label":{"en":"Portrait"},"group":"identity-profile"},"drivingPrivileges":{"label":{"en":"Driving privileges"},"group":"auth-privileges"},"unDistinguishingSign":{"label":{"en":"Undistinguishing sign"},"group":"identity-profile"},"administrativeNumber":{"label":{"en":"Administrative number"},"group":"credential-info"},"sex":{"label":{"en":"Sex"},"group":"identity-profile"},"height":{"label":{"en":"Height"},"group":"identity-profile"},"weight":{"label":{"en":"Weight"},"group":"identity-profile"},"eyeColour":{"label":{"en":"Eye colour"},"group":"identity-profile"},"hairColour":{"label":{"en":"Hair colour"},"group":"identity-profile"},"birthPlace":{"label":{"en":"Place of birth"},"group":"identity-profile"},"residentAddress":{"label":{"en":"Resident address"},"group":"identity-profile"},"portraitCaptureDate":{"label":{"en":"Portrait capture date"},"group":"identity-profile"},"ageInYears":{"label":{"en":"Age in years"},"group":"age_info"},"ageBirthYear":{"label":{"en":"Age of birth year"},"group":"age_info"},"ageOver{{NN}}":{"label":{"en":"Age over {{NN}}"},"group":"age_info"},"issuingJurisdiction":{"label":{"en":"Issuing jurisdiction"},"group":"credential-info"},"nationality":{"label":{"en":"Nationality"},"group":"identity-profile"},"residentCity":{"label":{"en":"Resident city"},"group":"identity-profile"},"residentState":{"label":{"en":"Resident state"},"group":"identity-profile"},"residentPostalCode":{"label":{"en":"Resident postal code"},"group":"identity-profile"},"residentCountry":{"label":{"en":"Resident country"},"group":"identity-profile"},"biometricTemplate":{"label":{},"group":"identity-profile"},"familyNameNationalCharacter":{"label":{"en":"Family name in national character"},"group":"identity-profile"},"givenNameNationalCharacter":{"label":{"en":"Given name in national character"},"group":"identity-profile"},"signatureUsualMark":{"label":{"en":"Signature or usual mark"},"group":"identity-profile"}}}},"personal-id":{"v2":{"label":{"en":"Personal ID"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"vct":{"label":{"en":"Verifiable credential type"},"group":"credential-info"},"familyName":{"label":{"en":"Family name"},"group":"identity-profile"},"givenName":{"label":{"en":"Given name"},"group":"identity-profile"},"birthDate":{"label":{"en":"Date of birth"},"group":"identity-profile"},"birthPlace":{"label":{"en":"Place of birth"},"group":"identity-profile"},"nationality":{"label":{"en":"Nationalities"},"group":"identity-profile"},"residentAddress":{"label":{"en":"Resident address"},"group":"identity-profile"},"residentCountry":{"label":{"en":"Resident country"},"group":"identity-profile"},"residentState":{"label":{"en":"Resident state"},"group":"identity-profile"},"residentCity":{"label":{"en":"Resident city"},"group":"identity-profile"},"residentPostalCode":{"label":{"en":"Resident postal code"},"group":"identity-profile"},"residentStreet":{"label":{"en":"Resident street"},"group":"identity-profile"},"residentHouseNumber":{"label":{"en":"Resident house number"},"group":"identity-profile"},"familyNameBirth":{"label":{"en":"Family name at birth"},"group":"identity-profile"},"givenNameBirth":{"label":{"en":"Given name at birth"},"group":"identity-profile"},"emailAddress":{"label":{"en":"Email"},"group":"identity-profile"},"mobilePhoneNumber":{"label":{"en":"Phone number"},"group":"identity-profile"},"portrait":{"label":{"en":"Portrait"},"group":"identity-profile"},"expiryDate":{"label":{"en":"Expiry date"},"group":"credential-info"},"issuanceDate":{"label":{"en":"Issuance date"},"group":"credential-info"},"personalAdministrativeNumber":{"label":{"en":"Personal administrative number"},"group":"identity-profile"},"sex":{"label":{"en":"Sex"},"group":"identity-profile"},"issuingAuthority":{"label":{"en":"Issuing authority"},"group":"credential-info"},"issuingCountry":{"label":{"en":"Issuing country"},"group":"credential-info"},"documentNumber":{"label":{"en":"Document number"},"group":"credential-info"},"issuingJurisdiction":{"label":{"en":"Issuing jurisdiction"},"group":"credential-info"},"trustAnchor":{"label":{"en":"Trust anchor"},"group":"credential-info"}}}},"student-id":{"v1":{"label":{"en":"Student ID"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"identityNumber":{"label":{"en":"Identity Number"},"group":"identity-profile"},"studentDiscount":{"label":{"en":"Student Discount"},"group":"auth-privileges"},"studentId":{"label":{"en":"Student ID"},"group":"identity-profile"},"asvzAuthorization":{"label":{"en":"ASVZ Authorization"},"group":"auth-privileges"},"vsethMembership":{"label":{"en":"VSETH Membership"},"group":"auth-privileges"},"cardNumber":{"label":{"en":"Card Number"},"group":"auth-privileges"},"libraryCode":{"label":{"en":"Library Code"},"group":"auth-privileges"},"organisationalResponsibility":{"label":{"en":"Organisational Responsibility"},"group":"auth-privileges"},"professionalRole":{"label":{"en":"Professional Role"},"group":"auth-privileges"},"validUntil":{"label":{"en":"Valid until"},"group":"credential-info"}}}},"visa-certificate":{"v1":{"label":{"en":"Visa Certificate"},"available_languages":["en"],"version_metadata":{"changelogs:":""},"claims":{"fullName":{"label":{"en":"Full name"},"group":"identity-profile"},"durationOfStay":{"label":{"en":"Duration of stay"},"group":"credential-info"},"issuanceDate":{"label":{"en":"Issuance date"},"group":"credential-info"},"validUntil":{"label":{"en":"Valid until"},"group":"credential-info"},"visaNumber":{"label":{"en":"Visa number"},"group":"credential-info"},"passportNumber":{"label":{"en":"Passport number"},"group":"identity-profile"},"placeOfIssue":{"label":{"en":"Place of issue"},"group":"credential-info"},"nationality":{"label":{"en":"Nationality"},"group":"identity-profile"},"dateOfBirth":{"label":{"en":"Date of birth"},"group":"identity-profile"},"typeOfVisa":{"label":{"en":"Type of visa"},"group":"credential-info"},"entryType":{"label":{"en":"Entry type"},"group":"credential-info"}}}}}} \ No newline at end of file diff --git a/boarding-pass-certificate/README.md b/boarding-pass-certificate/README.md new file mode 100644 index 0000000..b5fff7e --- /dev/null +++ b/boarding-pass-certificate/README.md @@ -0,0 +1,10 @@ +# Boarding Pass Certificate + +This folder contains all technical assets related to the **Boarding Pass Certificate**. +It includes credential schemas, field definitions, mappings, and translation files used for credential generation and validation. + +## Available Versions + +Choose a version of the credential type to view its specification. Currently, the latest version is: + +- [`v1`](v1/) – the first version of the Boarding Pass Certificate. diff --git a/boarding-pass-certificate/v1/README.md b/boarding-pass-certificate/v1/README.md new file mode 100644 index 0000000..8c3d212 --- /dev/null +++ b/boarding-pass-certificate/v1/README.md @@ -0,0 +1,11 @@ +# Boarding Pass Certificate (v1) + +This folder defines the structure and resources for the v1 implementation of **Boarding Pass Certificate**. + +## Contents + +- [edc](edc) - European Digital Credentials (EDC) schemas, mappings, example credentials and signed files. +- [input-fields](input-fields) - Input field schema definitions, configuration examples and related translation files. +- [translations](translations) - Translated credential titles organised by language. +- [user-consent](user-consent) - Mapping between user consent groups and corresponding input fields. + \ No newline at end of file diff --git a/boarding-pass-certificate/v1/edc/README.md b/boarding-pass-certificate/v1/edc/README.md new file mode 100644 index 0000000..2cf9083 --- /dev/null +++ b/boarding-pass-certificate/v1/edc/README.md @@ -0,0 +1,9 @@ +# EDC + +This folder contains resources related to the **European Digital Credentials (EDC)** format, a serialization of the ELM ontology, used for Boarding Pass Certificate. + +## Contents + +- [schema](schema.json) - JSON Schema definition of the EDC Boarding Pass Certificate. +- [input-fields-to-credential-map](input-fields-to-credential-map.json) - Mapping between user-friendly input fields and the EDC Boarding Pass Certificate fields. + \ No newline at end of file diff --git a/boarding-pass-certificate/v1/edc/input-fields-to-credential-map.json b/boarding-pass-certificate/v1/edc/input-fields-to-credential-map.json new file mode 100644 index 0000000..681f577 --- /dev/null +++ b/boarding-pass-certificate/v1/edc/input-fields-to-credential-map.json @@ -0,0 +1,10 @@ +{ + "fullName": "/credentialSubject/fullName", + "flightNumber": "/credentialSubject/flightInformation/flightNumber", + "date": "/credentialSubject/flightInformation/date", + "boardingTime": "/credentialSubject/flightInformation/boardingTime", + "locationFrom": "/credentialSubject/flightInformation/locationFrom", + "locationTo": "/credentialSubject/flightInformation/locationTo", + "gateNumber" : "/credentialSubject/flightInformation/gateNumber", + "seatNumber": "/credentialSubject/flightInformation/seatNumber" +} \ No newline at end of file diff --git a/boarding-pass-certificate/v1/edc/schema.json b/boarding-pass-certificate/v1/edc/schema.json new file mode 100644 index 0000000..e213e31 --- /dev/null +++ b/boarding-pass-certificate/v1/edc/schema.json @@ -0,0 +1,624 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Schema Template", + "type": "object", + "properties": { + "@context": { + "type": "array", + "items": { + "type": "string" + }, + "const": [ + "https://www.w3.org/2018/credentials/v1", + "http://data.europa.eu/snb/model/context/edc-ap" + ], + "minItems": 2, + "maxItems": 2, + "uniqueItems": true + }, + "id": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "array", + "items": { + "type": "string" + }, + "const": [ + "VerifiableCredential", + "EuropeanDigitalCredential" + ], + "minItems": 2, + "maxItems": 2, + "uniqueItems": true + }, + "issuer": { + "$ref": "#/definitions/organisation" + }, + "issued": { + "type": "string", + "format": "date-time", + "description": "Date the certificate was issued." + }, + "issuanceDate": { + "type": "string", + "format": "date-time", + "description": "Date the certificate was issued." + }, + "validFrom": { + "type": "string", + "format": "date-time", + "description": "Date the certificate becomes valid." + }, + "validUntil": { + "type": "string", + "format": "date-time", + "description": "Date the certificate becomes expired." + }, + "expirationDate": { + "type": "string", + "format": "date-time" + }, + "credentialSubject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "const": "Person" + }, + "fullName": { + "$ref": "#/definitions/languageMap", + "description": "Full name of the credential subject in various languages." + }, + "flightInformation": { + "$ref": "#/definitions/flightInformation" + }, + "hasClaim": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string" + }, + "title": { + "$ref": "#/definitions/languageMap", + "description": "Title of the claim in various languages." + }, + "description": { + "$ref": "#/definitions/languageMap", + "description": "Description of the claim in various languages." + }, + "awardedBy": { + "type": "object", + "properties": { + "id": { + "type": "string", + "const": "urn:epass:awardingProcess:1", + "format": "uri", + "description": "A unique URI identifier for the awarding process." + }, + "type": { + "type": "string", + "const": "AwardingProcess", + "description": "The type of the awarding process." + }, + "awardingBody": { + "$ref": "#/definitions/organisation" + } + }, + "required": [ + "id", + "type", + "awardingBody" + ] + } + }, + "required": [ + "id", + "type", + "awardedBy" + ] + }, + "contactPoint": { + "$ref": "#/definitions/contactPoint", + "description": "Contact point details of the group." + } + }, + "required": [ + "id", + "type", + "hasClaim", + "contactPoint" + ] + }, + "displayParameter": { + "$ref": "#/definitions/displayParameter", + "description": "Object that holds credential display properties" + }, + "credentialSchema": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "ShaclValidator2017", + "JsonSchema" + ] + } + }, + "required": [ + "id", + "type" + ] + }, + "credentialProfiles": { + "$ref": "#/definitions/concept", + "description": "An object defining profiles applicable to the credential." + } + }, + "required": [ + "@context", + "id", + "type", + "credentialSchema", + "credentialSubject", + "credentialProfiles", + "issuer", + "validFrom" + ], + "additionalProperties": false, + "definitions": { + "displayParameter": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "A unique URI identifier for the display parameter." + }, + "type": { + "type": "string", + "enum": [ + "DisplayParameter" + ], + "description": "Defines the type of object." + }, + "title": { + "$ref": "#/definitions/languageMap", + "description": "Credential title to display on frontend" + }, + "individualDisplay": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "A unique URI identifier for the display parameter." + }, + "type": { + "type": "string", + "enum": [ + "IndividualDisplay" + ], + "description": "Defines the type of object." + }, + "displayDetail": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "A unique URI identifier for the display detail." + }, + "type": { + "type": "string", + "enum": [ + "DisplayDetail" + ], + "description": "Defines the type of object." + }, + "image": { + "$ref": "#/definitions/mediaObject", + "description": "Logo of the credential." + }, + "page": { + "type": "integer" + } + }, + "required": [ + "id", + "type", + "image" + ] + }, + "language": { + "$ref": "#/definitions/concept" + } + }, + "required": [ + "id", + "type", + "language", + "displayDetail" + ] + }, + "language": { + "$ref": "#/definitions/concept" + }, + "primaryLanguage": { + "$ref": "#/definitions/concept" + }, + "description": { + "$ref": "#/definitions/languageMap", + "description": "Description of the credential." + } + }, + "required": [ + "id", + "type", + "title", + "language" + ] + }, + "flightInformation": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "A unique URI identifier for the flightInformation parameter." + }, + "type": { + "type": "string", + "const": "FlightInformation", + "description": "Defines the type of object." + }, + "flightNumber": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "boardingTime": { + "type": "string" + }, + "locationFrom": { + "type": "string" + }, + "locationTo": { + "type": "string" + }, + "gate": { + "type": "string" + }, + "seatNumber": { + "type": "string" + } + }, + "required": [ + "id", + "type" + ] + }, + "concept": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "A unique URI identifier for the concept." + }, + "inScheme": { + "$ref": "#/definitions/conceptScheme" + }, + "notation": { + "type": "string", + "description": "Notation for the concept." + }, + "prefLabel": { + "$ref": "#/definitions/languageMap" + }, + "type": { + "type": "string", + "const": "Concept", + "enum": [ + "Concept" + ] + } + }, + "required": [ + "id", + "type", + "inScheme", + "prefLabel" + ] + }, + "conceptScheme": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "A unique URI identifier for the concept scheme." + }, + "type": { + "type": "string", + "const": "ConceptScheme", + "enum": [ + "ConceptScheme" + ] + } + }, + "required": [ + "id", + "type" + ] + }, + "languageMap": { + "type": "object", + "patternProperties": { + "^[a-z]{2}$": { + "type": "string", + "description": "A string value for a specific language code." + } + }, + "additionalProperties": false, + "description": "A mapping of language codes to string values." + }, + "contactPoint": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri", + "const": "urn:epass:contactPoint:1", + "description": "A unique URI identifier for the contact point." + }, + "type": { + "type": "string", + "const": "ContactPoint", + "description": "The type of the contact point." + }, + "emailAddress": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri", + "const": "mailto:", + "description": "A unique URI identifier for the email address." + }, + "type": { + "type": "string", + "const": "Mailbox", + "description": "The type of the email address." + } + }, + "required": [ + "id", + "type" + ], + "additionalProperties": false + } + }, + "required": [ + "id", + "type", + "emailAddress" + ], + "additionalProperties": false + }, + "organisation": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri", + "description": "A unique URI identifier for the organisation." + }, + "type": { + "type": "string", + "const": "Organisation", + "description": "The type of the organisation." + }, + "location": { + "$ref": "#/definitions/location", + "description": "Location details of the organisation." + }, + "logo": { + "$ref": "#/definitions/mediaObject", + "description": "Logo of the organisation." + }, + "legalName": { + "$ref": "#/definitions/languageMap", + "description": "Legal name of the organisation in various languages." + }, + "registration": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri", + "description": "A unique URI identifier for the legal identifier." + }, + "type": { + "type": "string", + "const": "LegalIdentifier", + "description": "The type of the legal identifier." + }, + "notation": { + "type": "string", + "description": "Notation or code for the legal identifier." + }, + "spatial": { + "$ref": "#/definitions/concept", + "description": "Spatial information related to the legal identifier." + } + }, + "required": [ + "id", + "type", + "spatial" + ] + }, + "homepage": { + "$ref": "#/definitions/webResource" + } + }, + "required": [ + "id", + "type", + "location", + "legalName" + ], + "additionalProperties": false + }, + "location": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri", + "description": "A unique URI identifier for the location." + }, + "type": { + "type": "string", + "const": "Location", + "description": "The type of the location." + }, + "address": { + "$ref": "#/definitions/address", + "description": "Address details of the location." + }, + "description": { + "$ref": "#/definitions/languageMap", + "description": "Location description." + } + }, + "required": [ + "id", + "type", + "address" + ], + "additionalProperties": false + }, + "address": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri", + "description": "A unique URI identifier for the address." + }, + "type": { + "type": "string", + "const": "Address", + "description": "The type of the address." + }, + "countryCode": { + "$ref": "#/definitions/concept", + "description": "Country code for the address." + }, + "fullAddress": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri", + "description": "A unique URI identifier for the address." + }, + "type": { + "type": "string", + "const": "Note", + "description": "The type of the address." + }, + "noteLiteral": { + "$ref": "#/definitions/languageMap" + } + }, + "required": [ + "id", + "type", + "noteLiteral" + ] + } + }, + "required": [ + "id", + "type", + "countryCode" + ], + "additionalProperties": false + }, + "mediaObject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri", + "description": "A unique URI identifier for the media object." + }, + "type": { + "type": "string", + "const": "MediaObject", + "description": "The type of the media object." + }, + "content": { + "type": "string", + "description": "The content of the media object (e.g., base64 encoded data)." + }, + "contentEncoding": { + "$ref": "#/definitions/concept", + "description": "Encoding type of the media content." + }, + "contentType": { + "$ref": "#/definitions/concept", + "description": "MIME type of the media content." + } + }, + "required": [ + "id", + "type", + "content", + "contentEncoding", + "contentType" + ], + "additionalProperties": false + }, + "webResource": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uri", + "description": "A unique URI identifier for the web resource." + }, + "type": { + "type": "string", + "const": "WebResource", + "description": "The type of the web resource." + }, + "contentURL": { + "type": "string", + "format": "uri", + "description": "The URL of the web resource." + } + }, + "required": [ + "id", + "type", + "contentURL" + ], + "additionalProperties": false + } + } + } + \ No newline at end of file diff --git a/boarding-pass-certificate/v1/input-fields/README.md b/boarding-pass-certificate/v1/input-fields/README.md new file mode 100644 index 0000000..bf14822 --- /dev/null +++ b/boarding-pass-certificate/v1/input-fields/README.md @@ -0,0 +1,9 @@ +# Input fields + +Input fields are simple key-value pairs that let you provide verifiable credential inputs in a format-agnostic way. Define your data once and the credential engine handles the rest, constructing credentials in any format you need. + +Input fields are accompanied by + +- [translations](translations) - Translated input field labels organised by language. +- [example](example.json) - Input field examples. +- [schema](schema.json) - JSON Schema definition of input fields. diff --git a/boarding-pass-certificate/v1/input-fields/example.json b/boarding-pass-certificate/v1/input-fields/example.json new file mode 100644 index 0000000..b072059 --- /dev/null +++ b/boarding-pass-certificate/v1/input-fields/example.json @@ -0,0 +1,12 @@ +{ + "fullName": { + "en": "John Doe" + }, + "flightNumber": "KL1986", + "date": "2026-01-02T15:04:05Z", + "boardingTime": "2026-01-02T15:04:05Z", + "locationFrom": "Ljubljana Jože Pučnik Airport (LJU)", + "locationTo": "Amsterdam Airport Schiphol (AMS)", + "gateNumber" : "A12", + "seatNumber": "14C" +} \ No newline at end of file diff --git a/boarding-pass-certificate/v1/input-fields/schema.json b/boarding-pass-certificate/v1/input-fields/schema.json new file mode 100644 index 0000000..0a17831 --- /dev/null +++ b/boarding-pass-certificate/v1/input-fields/schema.json @@ -0,0 +1,58 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Schema Template", + "type": "object", + "properties": { + "fullName": { + "title":"Full name", + "description": "The full name of the recipient of this credential", + "type": "object", + "x-format": "languageMap", + "patternProperties": { + "^[a-z]{2}$": { + "type": "string", + "description": "A string value for a specific language code." + } + }, + "additionalProperties": false + + }, + "flightNumber":{ + "title": "Flight number", + "description": "The official flight number for recipient", + "type": "string" + }, + "date":{ + "title": "Date", + "description": "Date of the flight, formatted in ISO 8601 (YYYY-MM-DDThh:mm:ssZ)", + "type": "string", + "format": "date-time" + }, + "boardingTime":{ + "title": "Boarding time", + "description": "The scheduled time when recipient can begin boarding the flight", + "type": "string" + }, + "locationFrom":{ + "title": "Location from", + "description": "The departure airport, station, or starting location of the journey", + "type": "string" + }, + "locationTo":{ + "title": "Location to", + "description": "The destination airport, station, or final arrival location", + "type": "string" + }, + "gateNumber":{ + "title": "Gate number", + "description": "The assigned gate where recipient should board their flight or transport", + "type": "string" + }, + "seatNumber":{ + "title": "Seat number", + "description": "The designated seat assigned to the recipient for the journey", + "type": "string" + } + }, + "required": ["fullName"] +} \ No newline at end of file diff --git a/boarding-pass-certificate/v1/input-fields/translations/en.json b/boarding-pass-certificate/v1/input-fields/translations/en.json new file mode 100644 index 0000000..59e5cd6 --- /dev/null +++ b/boarding-pass-certificate/v1/input-fields/translations/en.json @@ -0,0 +1,10 @@ +{ + "fullName": "Full name", + "flightNumber": "Flight number", + "date": "Date", + "boardingTime": "Boarding time", + "locationFrom": "Location from", + "locationTo": "Location to", + "gateNumber" : "Gate number", + "seatNumber": "Seat number" +} \ No newline at end of file diff --git a/boarding-pass-certificate/v1/translations/en.json b/boarding-pass-certificate/v1/translations/en.json new file mode 100644 index 0000000..a473be6 --- /dev/null +++ b/boarding-pass-certificate/v1/translations/en.json @@ -0,0 +1,5 @@ +{ + "credential": { + "title": "Boarding Pass Certificate" + } +} \ No newline at end of file diff --git a/boarding-pass-certificate/v1/user-consent/user-consent-map.json b/boarding-pass-certificate/v1/user-consent/user-consent-map.json new file mode 100644 index 0000000..2535a00 --- /dev/null +++ b/boarding-pass-certificate/v1/user-consent/user-consent-map.json @@ -0,0 +1,10 @@ +{ + "fullName": "identity-profile", + "flightNumber": "credential-info", + "date": "credential-info", + "boardingTime": "credential-info", + "locationFrom": "credential-info", + "locationTo": "credential-info", + "gateNumber" : "credential-info", + "seatNumber": "credential-info" +} \ No newline at end of file