@velocitycareerlabs/libapp 1.25.0-dev-build.151ac0917 → 1.25.0-dev-build.1bed3d8b3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/display-descriptors/MultiLicensev1.0.descriptor.json +140 -0
  2. package/display-descriptors/assessment-dec2020.descriptor.json +147 -0
  3. package/display-descriptors/assessment-dimension.descriptor.json +175 -0
  4. package/display-descriptors/assessment-v1.0.descriptor.json +267 -0
  5. package/display-descriptors/assessment-v1.1.descriptor.json +307 -0
  6. package/display-descriptors/badge-v1.1.descriptor.json +170 -0
  7. package/display-descriptors/badge.descriptor.json +143 -0
  8. package/display-descriptors/certification-v1.0.descriptor.json +140 -0
  9. package/display-descriptors/certification-v1.1.descriptor.json +190 -0
  10. package/display-descriptors/certification.descriptor.json +99 -0
  11. package/display-descriptors/clr.descriptor.json +123 -0
  12. package/display-descriptors/course-attendance-v1.0.descriptor.json +182 -0
  13. package/display-descriptors/course-attendance-v1.1.descriptor.json +242 -0
  14. package/display-descriptors/course-completion-v1.0.descriptor.json +192 -0
  15. package/display-descriptors/course-completion-v1.1.descriptor.json +253 -0
  16. package/display-descriptors/course-registration-v1.0.descriptor.json +151 -0
  17. package/display-descriptors/course-registration-v1.1.descriptor.json +181 -0
  18. package/display-descriptors/course.descriptor.json +150 -0
  19. package/display-descriptors/current-employment-position.descriptor.json +120 -0
  20. package/display-descriptors/drivers-license-v1.0.descriptor.json +261 -0
  21. package/display-descriptors/drivers-license-v1.1.descriptor.json +261 -0
  22. package/display-descriptors/education-degree-graduation-v1.0.descriptor.json +233 -0
  23. package/display-descriptors/education-degree-registration-v1.0.descriptor.json +171 -0
  24. package/display-descriptors/education-degree-registration-v1.1.descriptor.json +200 -0
  25. package/display-descriptors/education-degree-study-v1.0.descriptor.json +212 -0
  26. package/display-descriptors/education-degree-study-v1.1.descriptor.json +241 -0
  27. package/display-descriptors/education-degree.descriptor.json +110 -0
  28. package/display-descriptors/email-v1.1.descriptor.json +19 -0
  29. package/display-descriptors/email.descriptor.json +16 -0
  30. package/display-descriptors/employment-current-v1.0.descriptor.json +140 -0
  31. package/display-descriptors/employment-past-v1.0.descriptor.json +151 -0
  32. package/display-descriptors/employment-past-v1.1.descriptor.json +200 -0
  33. package/display-descriptors/en/MultiLicensev1.0.descriptor.json +140 -0
  34. package/display-descriptors/en/assessment-dec2020.descriptor.json +147 -0
  35. package/display-descriptors/en/assessment-dimension.descriptor.json +175 -0
  36. package/display-descriptors/en/assessment-v1.0.descriptor.json +267 -0
  37. package/display-descriptors/en/assessment-v1.1.descriptor.json +307 -0
  38. package/display-descriptors/en/badge-v1.1.descriptor.json +170 -0
  39. package/display-descriptors/en/badge.descriptor.json +143 -0
  40. package/display-descriptors/en/certification-v1.0.descriptor.json +140 -0
  41. package/display-descriptors/en/certification-v1.1.descriptor.json +190 -0
  42. package/display-descriptors/en/certification.descriptor.json +99 -0
  43. package/display-descriptors/en/clr.descriptor.json +123 -0
  44. package/display-descriptors/en/course-attendance-v1.0.descriptor.json +182 -0
  45. package/display-descriptors/en/course-attendance-v1.1.descriptor.json +242 -0
  46. package/display-descriptors/en/course-completion-v1.0.descriptor.json +192 -0
  47. package/display-descriptors/en/course-completion-v1.1.descriptor.json +253 -0
  48. package/display-descriptors/en/course-registration-v1.0.descriptor.json +151 -0
  49. package/display-descriptors/en/course-registration-v1.1.descriptor.json +181 -0
  50. package/display-descriptors/en/course.descriptor.json +150 -0
  51. package/display-descriptors/en/current-employment-position.descriptor.json +120 -0
  52. package/display-descriptors/en/drivers-license-v1.0.descriptor.json +261 -0
  53. package/display-descriptors/en/drivers-license-v1.1.descriptor.json +261 -0
  54. package/display-descriptors/en/education-degree-graduation-v1.0.descriptor.json +233 -0
  55. package/display-descriptors/en/education-degree-registration-v1.0.descriptor.json +171 -0
  56. package/display-descriptors/en/education-degree-registration-v1.1.descriptor.json +200 -0
  57. package/display-descriptors/en/education-degree-study-v1.0.descriptor.json +212 -0
  58. package/display-descriptors/en/education-degree-study-v1.1.descriptor.json +241 -0
  59. package/display-descriptors/en/education-degree.descriptor.json +110 -0
  60. package/display-descriptors/en/email-v1.1.descriptor.json +19 -0
  61. package/display-descriptors/en/email.descriptor.json +16 -0
  62. package/display-descriptors/en/employment-current-v1.0.descriptor.json +140 -0
  63. package/display-descriptors/en/employment-past-v1.0.descriptor.json +151 -0
  64. package/display-descriptors/en/employment-past-v1.1.descriptor.json +200 -0
  65. package/display-descriptors/en/id-document-v1.0.descriptor.json +258 -0
  66. package/display-descriptors/en/id-document-v1.1.descriptor.json +258 -0
  67. package/display-descriptors/en/id-document.descriptor.json +152 -0
  68. package/display-descriptors/en/license-v1.0.descriptor.json +172 -0
  69. package/display-descriptors/en/license-v1.1.descriptor.json +210 -0
  70. package/display-descriptors/en/national-id-card-v1.0.descriptor.json +258 -0
  71. package/display-descriptors/en/national-id-card-v1.1.descriptor.json +268 -0
  72. package/display-descriptors/en/open-badge-v1.0.descriptor.json +140 -0
  73. package/display-descriptors/en/open-badge-v2.0.descriptor.json +121 -0
  74. package/display-descriptors/en/passport-v1.0.descriptor.json +229 -0
  75. package/display-descriptors/en/passport-v1.1.descriptor.json +239 -0
  76. package/display-descriptors/en/past-employment-position.descriptor.json +131 -0
  77. package/display-descriptors/en/phone-v1.0.descriptor.json +18 -0
  78. package/display-descriptors/en/phone-v1.1.descriptor.json +18 -0
  79. package/display-descriptors/en/phone.descriptor.json +15 -0
  80. package/display-descriptors/en/proof-of-age-v1.0.descriptor.json +258 -0
  81. package/display-descriptors/en/proof-of-age-v1.1.descriptor.json +268 -0
  82. package/display-descriptors/en/resident-permit-v1.0.descriptor.json +258 -0
  83. package/display-descriptors/en/resident-permit-v1.1.descriptor.json +268 -0
  84. package/display-descriptors/id-document-v1.0.descriptor.json +258 -0
  85. package/display-descriptors/id-document-v1.1.descriptor.json +258 -0
  86. package/display-descriptors/id-document.descriptor.json +152 -0
  87. package/display-descriptors/license-v1.0.descriptor.json +172 -0
  88. package/display-descriptors/license-v1.1.descriptor.json +210 -0
  89. package/display-descriptors/national-id-card-v1.0.descriptor.json +258 -0
  90. package/display-descriptors/national-id-card-v1.1.descriptor.json +268 -0
  91. package/display-descriptors/open-badge-v1.0.descriptor.json +140 -0
  92. package/display-descriptors/open-badge-v2.0.descriptor.json +121 -0
  93. package/display-descriptors/passport-v1.0.descriptor.json +229 -0
  94. package/display-descriptors/passport-v1.1.descriptor.json +239 -0
  95. package/display-descriptors/past-employment-position.descriptor.json +131 -0
  96. package/display-descriptors/phone-v1.0.descriptor.json +18 -0
  97. package/display-descriptors/phone-v1.1.descriptor.json +18 -0
  98. package/display-descriptors/phone.descriptor.json +15 -0
  99. package/display-descriptors/proof-of-age-v1.0.descriptor.json +258 -0
  100. package/display-descriptors/proof-of-age-v1.1.descriptor.json +268 -0
  101. package/display-descriptors/resident-permit-v1.0.descriptor.json +258 -0
  102. package/display-descriptors/resident-permit-v1.1.descriptor.json +268 -0
  103. package/form-schemas/AssessmentV1.0.form-schema.json +64 -0
  104. package/form-schemas/AssessmentV1.1.form-schema.json +89 -0
  105. package/form-schemas/BadgeV1.1.form-schema.json +72 -0
  106. package/form-schemas/CertificationV1.0.form-schema.json +84 -0
  107. package/form-schemas/CertificationV1.1.form-schema.json +109 -0
  108. package/form-schemas/CourseAttendanceV1.0.form-schema.json +76 -0
  109. package/form-schemas/CourseAttendanceV1.1.form-schema.json +101 -0
  110. package/form-schemas/CourseCompletionV1.0.form-schema.json +81 -0
  111. package/form-schemas/CourseCompletionV1.1.form-schema.json +106 -0
  112. package/form-schemas/CourseRegistrationV1.0.form-schema.json +56 -0
  113. package/form-schemas/CourseRegistrationV1.1.form-schema.json +81 -0
  114. package/form-schemas/DriversLicenseV1.0.form-schema.json +199 -0
  115. package/form-schemas/DriversLicenseV1.1.form-schema.json +199 -0
  116. package/form-schemas/EducationDegreeGraduationV1.0.form-schema.json +101 -0
  117. package/form-schemas/EducationDegreeRegistrationV1.0.form-schema.json +67 -0
  118. package/form-schemas/EducationDegreeRegistrationV1.1.form-schema.json +92 -0
  119. package/form-schemas/EducationDegreeStudyV1.0.form-schema.json +92 -0
  120. package/form-schemas/EducationDegreeStudyV1.1.form-schema.json +117 -0
  121. package/form-schemas/EmploymentCurrentV1.0.form-schema.json +70 -0
  122. package/form-schemas/EmploymentPastV1.0.form-schema.json +75 -0
  123. package/form-schemas/EmploymentPastV1.1.form-schema.json +101 -0
  124. package/form-schemas/IdDocumentV1.0.form-schema.json +180 -0
  125. package/form-schemas/IdDocumentV1.1.form-schema.json +180 -0
  126. package/form-schemas/LicenseV1.0.form-schema.json +92 -0
  127. package/form-schemas/LicenseV1.1.form-schema.json +117 -0
  128. package/form-schemas/NationalIdCardV1.0.form-schema.json +176 -0
  129. package/form-schemas/NationalIdCardV1.1.form-schema.json +176 -0
  130. package/form-schemas/OpenBadgeV1.0.form-schema.json +44 -0
  131. package/form-schemas/OpenBadgeV2.0.form-schema.json +44 -0
  132. package/form-schemas/PassportV1.0.form-schema.json +141 -0
  133. package/form-schemas/PassportV1.1.form-schema.json +141 -0
  134. package/form-schemas/PhoneV1.0.form-schema.json +5 -0
  135. package/form-schemas/PhoneV1.1.form-schema.json +5 -0
  136. package/form-schemas/ProofOfAgeV1.0.form-schema.json +176 -0
  137. package/form-schemas/ProofOfAgeV1.1.form-schema.json +176 -0
  138. package/form-schemas/ResidentPermitV1.0.form-schema.json +176 -0
  139. package/form-schemas/ResidentPermitV1.1.form-schema.json +176 -0
  140. package/form-schemas/en/AssessmentV1.0.form-schema.json +64 -0
  141. package/form-schemas/en/AssessmentV1.1.form-schema.json +89 -0
  142. package/form-schemas/en/BadgeV1.1.form-schema.json +72 -0
  143. package/form-schemas/en/CertificationV1.0.form-schema.json +84 -0
  144. package/form-schemas/en/CertificationV1.1.form-schema.json +109 -0
  145. package/form-schemas/en/CourseAttendanceV1.0.form-schema.json +76 -0
  146. package/form-schemas/en/CourseAttendanceV1.1.form-schema.json +101 -0
  147. package/form-schemas/en/CourseCompletionV1.0.form-schema.json +81 -0
  148. package/form-schemas/en/CourseCompletionV1.1.form-schema.json +106 -0
  149. package/form-schemas/en/CourseRegistrationV1.0.form-schema.json +56 -0
  150. package/form-schemas/en/CourseRegistrationV1.1.form-schema.json +81 -0
  151. package/form-schemas/en/DriversLicenseV1.0.form-schema.json +199 -0
  152. package/form-schemas/en/DriversLicenseV1.1.form-schema.json +199 -0
  153. package/form-schemas/en/EducationDegreeGraduationV1.0.form-schema.json +101 -0
  154. package/form-schemas/en/EducationDegreeRegistrationV1.0.form-schema.json +67 -0
  155. package/form-schemas/en/EducationDegreeRegistrationV1.1.form-schema.json +92 -0
  156. package/form-schemas/en/EducationDegreeStudyV1.0.form-schema.json +92 -0
  157. package/form-schemas/en/EducationDegreeStudyV1.1.form-schema.json +117 -0
  158. package/form-schemas/en/EmploymentCurrentV1.0.form-schema.json +70 -0
  159. package/form-schemas/en/EmploymentPastV1.0.form-schema.json +75 -0
  160. package/form-schemas/en/EmploymentPastV1.1.form-schema.json +101 -0
  161. package/form-schemas/en/IdDocumentV1.0.form-schema.json +180 -0
  162. package/form-schemas/en/IdDocumentV1.1.form-schema.json +180 -0
  163. package/form-schemas/en/LicenseV1.0.form-schema.json +92 -0
  164. package/form-schemas/en/LicenseV1.1.form-schema.json +117 -0
  165. package/form-schemas/en/NationalIdCardV1.0.form-schema.json +176 -0
  166. package/form-schemas/en/NationalIdCardV1.1.form-schema.json +176 -0
  167. package/form-schemas/en/OpenBadgeV1.0.form-schema.json +44 -0
  168. package/form-schemas/en/OpenBadgeV2.0.form-schema.json +44 -0
  169. package/form-schemas/en/PassportV1.0.form-schema.json +141 -0
  170. package/form-schemas/en/PassportV1.1.form-schema.json +141 -0
  171. package/form-schemas/en/PhoneV1.0.form-schema.json +5 -0
  172. package/form-schemas/en/PhoneV1.1.form-schema.json +5 -0
  173. package/form-schemas/en/ProofOfAgeV1.0.form-schema.json +176 -0
  174. package/form-schemas/en/ProofOfAgeV1.1.form-schema.json +176 -0
  175. package/form-schemas/en/ResidentPermitV1.0.form-schema.json +176 -0
  176. package/form-schemas/en/ResidentPermitV1.1.form-schema.json +176 -0
  177. package/package.json +2 -2
  178. package/schemas/MultiLicenseV1.0.json +997 -0
  179. package/schemas/assessment-v1.0.schema.json +314 -0
  180. package/schemas/assessment-v1.1.schema.json +360 -0
  181. package/schemas/assessment.schema.json +154 -0
  182. package/schemas/badge-v1.1.schema.json +243 -0
  183. package/schemas/badge.schema.json +152 -0
  184. package/schemas/certification-v1.0.schema.json +233 -0
  185. package/schemas/certification-v1.1.schema.json +277 -0
  186. package/schemas/certification.schema.json +149 -0
  187. package/schemas/clr-subject.schema.json +2247 -0
  188. package/schemas/clr.schema.json +1565 -0
  189. package/schemas/course-attendance-v1.0.schema.json +300 -0
  190. package/schemas/course-attendance-v1.1.schema.json +346 -0
  191. package/schemas/course-completion-v1.0.schema.json +303 -0
  192. package/schemas/course-completion-v1.1.schema.json +349 -0
  193. package/schemas/course-registration-v1.0.schema.json +219 -0
  194. package/schemas/course-registration-v1.1.schema.json +271 -0
  195. package/schemas/course.schema.json +140 -0
  196. package/schemas/current-employment-position.schema.json +145 -0
  197. package/schemas/drivers-license-v1.0.schema.json +333 -0
  198. package/schemas/education-degree-graduation-v1.0.schema.json +320 -0
  199. package/schemas/education-degree-registration-v1.0.schema.json +228 -0
  200. package/schemas/education-degree-registration-v1.1.schema.json +279 -0
  201. package/schemas/education-degree-study-v1.0.schema.json +311 -0
  202. package/schemas/education-degree-study-v1.1.schema.json +357 -0
  203. package/schemas/education-degree.schema.json +161 -0
  204. package/schemas/email.schema.json +19 -0
  205. package/schemas/employment-current-v1.0.schema.json +216 -0
  206. package/schemas/employment-past-v1.0.schema.json +220 -0
  207. package/schemas/employment-past-v1.1.schema.json +271 -0
  208. package/schemas/id-document-v1.0.schema.json +278 -0
  209. package/schemas/id-document.schema.json +169 -0
  210. package/schemas/license-v1.0.schema.json +252 -0
  211. package/schemas/license-v1.1.schema.json +296 -0
  212. package/schemas/license.schema.json +261 -0
  213. package/schemas/national-id-card-v1.0.schema.json +272 -0
  214. package/schemas/open-badge-v1.0.schema.json +176 -0
  215. package/schemas/open-badge-v2.0.schema.json +348 -0
  216. package/schemas/passport-v1.0.schema.json +235 -0
  217. package/schemas/past-employment-position.schema.json +149 -0
  218. package/schemas/phone-v1.0.schema.json +45 -0
  219. package/schemas/phone.schema.json +19 -0
  220. package/schemas/proof-of-age-v1.0.schema.json +272 -0
  221. package/schemas/resident-permit-v1.0.schema.json +272 -0
  222. package/docker/compose.yml +0 -9
  223. package/docker/nginx.conf +0 -9
@@ -0,0 +1,348 @@
1
+ {
2
+ "title": "Open Badge",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "description": "Badge",
5
+ "$id": "https://velocitynetwork.foundation/schemas/open-badge-v2.0",
6
+ "type": "object",
7
+ "definitions": {
8
+ "obiProfile": {
9
+ "type": "object",
10
+ "properties": {
11
+ "id": {
12
+ "type": "string",
13
+ "format": "uri",
14
+ "description": "Unique IRI for the Issuer/Profile file. Most platforms to date can only handle HTTP-based IRIs such as https://example.com/profiles/alice",
15
+ "maxLength": 2048
16
+ },
17
+ "type": {
18
+ "oneOf": [
19
+ {
20
+ "type": "string",
21
+ "enum": [
22
+ "Profile",
23
+ "Issuer"
24
+ ],
25
+ "minLength": 1,
26
+ "maxLength": 64
27
+ },
28
+ {
29
+ "type": "array",
30
+ "minItems": 1,
31
+ "items": {
32
+ "type": "string",
33
+ "minLength": 1,
34
+ "maxLength": 64
35
+ }
36
+ }
37
+ ],
38
+ "description": "Valid JSON-LD representation of the Issuer or Profile type. In most cases, this will simply be the string Issuer or the more general Profile. An array including Issuer and other string elements that are either URLs or compact IRIs within the current context are allowed."
39
+ },
40
+ "name": {
41
+ "type": "string",
42
+ "description": "The name of the entity or organization",
43
+ "minLength": 1,
44
+ "maxLength": 128
45
+ },
46
+ "description": {
47
+ "type": "string",
48
+ "description": "A short description of the issuer entity or organization.\n",
49
+ "minLength": 1,
50
+ "maxLength": 2048
51
+ },
52
+ "image": {
53
+ "type": "string",
54
+ "format": "uri",
55
+ "description": "IRI or document representing an image of the issuer. This must be a PNG or SVG image",
56
+ "maxLength": 2048
57
+ },
58
+ "url": {
59
+ "type": "string",
60
+ "description": "The homepage or social media profile of the entity, whether individual or institutional. Should be a URL/URI Accessible via HTTP. ",
61
+ "format": "uri",
62
+ "maxLength": 2048
63
+ },
64
+ "telephone": {
65
+ "type": "string",
66
+ "pattern": "^\\+[1-9]\\d{1,14}$",
67
+ "minLength": 8,
68
+ "maxLength": 15,
69
+ "description": "A phone number for the entity. For maximum compatibility, the value should be expressed as a + and country code followed by the number with no spaces or other punctuation, like +16175551212 (E.164 format)."
70
+ },
71
+ "email": {
72
+ "type": "string",
73
+ "format": "email",
74
+ "description": "Contact address for the individual or organization."
75
+ }
76
+ },
77
+ "description": "Organization profile information is stored on Velocity Network registrar making most of this information redundant. a wallet may not show this information to the user in favour of the latest information on Velocity Network Registrar. Regular open badges also permit inclusion of `verification`, `publicKey` and `revocationList` properties which are not necessary when using standards aligned verifiable credentials on the velocity network. In particular only signed badges are supported and credentials are not signed using an organizations public key. revocation lists are handled on-chain",
78
+ "required": [
79
+ "id",
80
+ "type"
81
+ ],
82
+ "additionalProperties": false
83
+ },
84
+ "Json-ld-context_Schema": {
85
+ "title": "json-ld-context",
86
+ "oneOf": [
87
+ {
88
+ "type": "string",
89
+ "maxLength": 2048
90
+ },
91
+ {
92
+ "type": "array",
93
+ "minItems": 1,
94
+ "items": {
95
+ "type": "string",
96
+ "maxLength": 2048
97
+ }
98
+ }
99
+ ],
100
+ "description": "Simplified context for Velocity Publishers to Use"
101
+ },
102
+ "Alignment_Schema": {
103
+ "title": "Alignment",
104
+ "type": "object",
105
+ "additionalProperties": false,
106
+ "properties": {
107
+ "type": {
108
+ "type": "string",
109
+ "default": "AlignmentObject"
110
+ },
111
+ "targetName": {
112
+ "type": "string",
113
+ "description": "Name of the target alignment.",
114
+ "maxLength": 256
115
+ },
116
+ "targetUrl": {
117
+ "type": "string",
118
+ "format": "uri",
119
+ "description": "URL of the target alignment. ",
120
+ "maxLength": 2048
121
+ },
122
+ "targetDescription": {
123
+ "type": "string",
124
+ "description": "Detailed description of the target alignment. ",
125
+ "maxLength": 2048
126
+ },
127
+ "targetCode": {
128
+ "type": "string",
129
+ "description": "Code of the target alignment. ",
130
+ "maxLength": 256
131
+ },
132
+ "targetFramework": {
133
+ "type": "string",
134
+ "description": "The framework to which the target belongs. ",
135
+ "maxLength": 256
136
+ }
137
+ },
138
+ "required": [
139
+ "targetName",
140
+ "targetUrl"
141
+ ]
142
+ }
143
+ },
144
+ "additionalProperties": false,
145
+ "properties": {
146
+ "@context": {
147
+ "$ref": "#/definitions/Json-ld-context_Schema"
148
+ },
149
+ "type": {
150
+ "type": "string",
151
+ "default": "Badge"
152
+ },
153
+ "hasCredential": {
154
+ "type": "object",
155
+ "required": [
156
+ "type",
157
+ "name",
158
+ "description",
159
+ "image",
160
+ "criteria",
161
+ "issuer"
162
+ ],
163
+ "properties": {
164
+ "@context": {
165
+ "oneOf": [
166
+ {
167
+ "type": "string",
168
+ "default": "https://openbadgespec.org/v2/context.json"
169
+ },
170
+ {
171
+ "type": "array",
172
+ "items": {
173
+ "type": "string"
174
+ }
175
+ }
176
+ ]
177
+ },
178
+ "type": {
179
+ "oneOf": [
180
+ {
181
+ "type": "string",
182
+ "default": "BadgeClass",
183
+ "maxLength": 64
184
+ },
185
+ {
186
+ "type": "array",
187
+ "minItems": 1,
188
+ "items": {
189
+ "type": "string",
190
+ "maxLength": 64
191
+ }
192
+ }
193
+ ],
194
+ "description": "valid JSON-LD representation of the BadgeClass type. In most cases, this will simply be the string BadgeClass. An array including BadgeClass and other string elements that are either URLs or compact IRIs within the current context are allowed."
195
+ },
196
+ "id": {
197
+ "type": "string",
198
+ "format": "uri",
199
+ "description": "Unique IRI for the BadgeClass. Most platforms to date can only handle HTTP-based IRIs. Issuers using signed assertions are encouraged to publish BadgeClasses using HTTP IRIs but may instead use ephemeral BadgeClasses that use an id in another scheme such as urn:uuid.",
200
+ "maxLength": 2048
201
+ },
202
+ "name": {
203
+ "type": "string",
204
+ "maxLength": 128,
205
+ "description": "The name of the achievement."
206
+ },
207
+ "description": {
208
+ "type": "string",
209
+ "maxLength": 2048,
210
+ "description": "A short description of the achievement."
211
+ },
212
+ "image": {
213
+ "oneOf": [
214
+ {
215
+ "type": "string",
216
+ "format": "uri",
217
+ "description": "IRI or document representing an image of the achievement. This must be a PNG or SVG image.",
218
+ "maxLength": 2048
219
+ },
220
+ {
221
+ "type": "object",
222
+ "required": [
223
+ "id"
224
+ ],
225
+ "properties": {
226
+ "type": {
227
+ "oneOf": [
228
+ {
229
+ "type": "string",
230
+ "default": "ImageObject",
231
+ "maxLength": 64
232
+ },
233
+ {
234
+ "type": "array",
235
+ "minItems": 1,
236
+ "items": {
237
+ "type": "string",
238
+ "maxLength": 64
239
+ }
240
+ }
241
+ ],
242
+ "description": "Defaults to schema:ImageObject."
243
+ },
244
+ "id": {
245
+ "type": "string",
246
+ "format": "uri",
247
+ "description": "The URI or Data URI of the image.",
248
+ "maxLength": 2048
249
+ },
250
+ "caption": {
251
+ "type": "string",
252
+ "description": "The caption for the image",
253
+ "maxLength": 256
254
+ },
255
+ "author": {
256
+ "oneOf": [
257
+ {
258
+ "type": "string",
259
+ "format": "uri",
260
+ "maxLength": 2048
261
+ },
262
+ {
263
+ "$ref": "#/definitions/obiProfile"
264
+ }
265
+ ]
266
+ }
267
+ }
268
+ }
269
+ ]
270
+ },
271
+ "criteria": {
272
+ "oneOf": [
273
+ {
274
+ "type": "string",
275
+ "description": "Unique URI for a webpage that describes in a human-readable format the criteria for the BadgeClass such as https://example.org/robotics-badge.html",
276
+ "format": "uri",
277
+ "maxLength": 2048
278
+ },
279
+ {
280
+ "type": "object",
281
+ "properties": {
282
+ "id": {
283
+ "type": "string",
284
+ "format": "uri",
285
+ "description": "Unique URI for a webpage that describes in a human-readable format the criteria for the BadgeClass.",
286
+ "maxLength": 2048
287
+ },
288
+ "type": {
289
+ "type": "string",
290
+ "description": "JSON-LD type. Defaults to criteria.",
291
+ "default": "Criteria",
292
+ "maxLength": 32
293
+ },
294
+ "narrative": {
295
+ "type": "string",
296
+ "maxLength": 2048
297
+ }
298
+ }
299
+ }
300
+ ]
301
+ },
302
+ "issuer": {
303
+ "oneOf": [
304
+ {
305
+ "type": "string",
306
+ "format": "uri",
307
+ "maxLength": 2048
308
+ },
309
+ {
310
+ "$ref": "#/definitions/obiProfile"
311
+ }
312
+ ],
313
+ "description": "The organization that issued the badge. On Velocity Network this should be DID"
314
+ },
315
+ "alignment": {
316
+ "type": "array",
317
+ "description": "An array of objects describing which objectives or educational standards this badge aligns to, if any. Unlike Open Badge v2.1 must ALWAYS be defined in an array",
318
+ "minItems": 1,
319
+ "items": {
320
+ "$ref": "#/definitions/Alignment_Schema"
321
+ }
322
+ },
323
+ "tags": {
324
+ "oneOf": [
325
+ {
326
+ "type": "string",
327
+ "minLength": 1,
328
+ "maxLength": 64
329
+ },
330
+ {
331
+ "type": "array",
332
+ "minItems": 1,
333
+ "items": {
334
+ "type": "string",
335
+ "minLength": 1,
336
+ "maxLength": 64
337
+ }
338
+ }
339
+ ],
340
+ "description": "Tags that describes the type of achievement."
341
+ }
342
+ }
343
+ }
344
+ },
345
+ "required": [
346
+ "hasCredential"
347
+ ]
348
+ }
@@ -0,0 +1,235 @@
1
+ {
2
+ "title": "Passport",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "$id": "https://velocitynetwork.foundation/schemas/passport-v1.0",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "properties": {
8
+ "@context": {
9
+ "$ref": "#/definitions/Json-ld-context_Schema"
10
+ },
11
+ "type": {
12
+ "type": "string",
13
+ "default": "Passport"
14
+ },
15
+ "documentCode": {
16
+ "type": "string",
17
+ "pattern": "^P[A-Z]?$",
18
+ "description": "The type of passport. The letter P + an optional additional letter to indicate type, e.g. diplomatic. \nOne additional capital letter may be used, in the\ncharacter position after the letter P and at the discretion of the issuing State or organization.",
19
+ "maxLength": 2
20
+ },
21
+ "authority": {
22
+ "$ref": "#/definitions/Organization_Schema"
23
+ },
24
+ "validity": {
25
+ "$ref": "#/definitions/Validity_Schema"
26
+ },
27
+ "person": {
28
+ "$ref": "#/definitions/Person_Schema"
29
+ },
30
+ "identifier": {
31
+ "type": "string",
32
+ "description": "The passport number.",
33
+ "maxLength": 64
34
+ },
35
+ "nationality": {
36
+ "type": "string",
37
+ "pattern": "^[A-Z]{2}$",
38
+ "description": "The nationality of the person holding the passport.",
39
+ "maxLength": 2
40
+ }
41
+ },
42
+ "required": [
43
+ "documentCode",
44
+ "authority",
45
+ "identifier",
46
+ "person"
47
+ ],
48
+ "definitions": {
49
+ "Json-ld-context_Schema": {
50
+ "title": "json-ld-context",
51
+ "oneOf": [
52
+ {
53
+ "type": "string",
54
+ "maxLength": 2048
55
+ },
56
+ {
57
+ "type": "array",
58
+ "minItems": 1,
59
+ "items": {
60
+ "type": "string",
61
+ "maxLength": 2048
62
+ }
63
+ }
64
+ ],
65
+ "description": "Simplified context for Velocity Publishers to Use"
66
+ },
67
+ "Did_Schema": {
68
+ "title": "DID",
69
+ "type": "string",
70
+ "pattern": "^did:[a-z0-9]+:[A-Za-z0-9._:?=&%;-]+$"
71
+ },
72
+ "Organization_Schema": {
73
+ "title": "Organization",
74
+ "type": "object",
75
+ "additionalProperties": false,
76
+ "properties": {
77
+ "type": {
78
+ "type": "string",
79
+ "default": "Organization"
80
+ },
81
+ "name": {
82
+ "type": "string",
83
+ "description": "The name of the organization.",
84
+ "maxLength": 256
85
+ },
86
+ "identifier": {
87
+ "$ref": "#/definitions/Did_Schema"
88
+ },
89
+ "place": {
90
+ "$ref": "#/definitions/Place_Schema"
91
+ }
92
+ },
93
+ "required": [
94
+ "name",
95
+ "place"
96
+ ]
97
+ },
98
+ "Person_Schema": {
99
+ "title": "Person",
100
+ "type": "object",
101
+ "additionalProperties": false,
102
+ "properties": {
103
+ "type": {
104
+ "type": "string",
105
+ "default": "Person"
106
+ },
107
+ "givenName": {
108
+ "type": "string",
109
+ "description": "The given name or first name of the person.",
110
+ "maxLength": 64
111
+ },
112
+ "familyName": {
113
+ "type": "string",
114
+ "description": "The family name or surname of the person.",
115
+ "maxLength": 64
116
+ },
117
+ "middleName": {
118
+ "type": "string",
119
+ "description": "The middle name of the person.",
120
+ "maxLength": 256
121
+ },
122
+ "namePrefix": {
123
+ "type": "string",
124
+ "description": "A prefix to the name such as Dr or Sir.",
125
+ "maxLength": 8
126
+ },
127
+ "nameSuffix": {
128
+ "type": "string",
129
+ "description": "A suffix to the name such as Jr. or Sr.",
130
+ "maxLength": 16
131
+ },
132
+ "birthDate": {
133
+ "type": "string",
134
+ "format": "date",
135
+ "description": "The date of birth of the person."
136
+ },
137
+ "birthPlace": {
138
+ "$ref": "#/definitions/Place_Schema"
139
+ },
140
+ "gender": {
141
+ "type": "string",
142
+ "enum": [
143
+ "Male",
144
+ "Female",
145
+ "Other"
146
+ ],
147
+ "description": "The gender of the person."
148
+ }
149
+ },
150
+ "required": [
151
+ "givenName",
152
+ "birthDate"
153
+ ]
154
+ },
155
+ "Place_Schema": {
156
+ "title": "Place",
157
+ "type": "object",
158
+ "additionalProperties": false,
159
+ "properties": {
160
+ "type": {
161
+ "type": "string",
162
+ "default": "Place"
163
+ },
164
+ "name": {
165
+ "type": "string",
166
+ "description": "The name of the place, e.g., building name, branch name, etc.",
167
+ "maxLength": 256
168
+ },
169
+ "addressLocality": {
170
+ "type": "string",
171
+ "description": "The locality where the place is, e.g., town or city name.",
172
+ "maxLength": 256
173
+ },
174
+ "addressRegion": {
175
+ "type": "string",
176
+ "pattern": "^[A-Z]{2}(-[A-Z0-9]{1,3})?$",
177
+ "description": "The region where the place is. These are states, provinces, etc. Must be an [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2)",
178
+ "maxLength": 6
179
+ },
180
+ "addressCountry": {
181
+ "type": "string",
182
+ "description": "The country where the place is. Must be an [ISO 3166 2 letter country code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)",
183
+ "pattern": "^[A-Z]{2}$",
184
+ "maxLength": 2
185
+ }
186
+ },
187
+ "required": [
188
+ "addressCountry"
189
+ ]
190
+ },
191
+ "Validity_Schema": {
192
+ "title": "Validity",
193
+ "type": "object",
194
+ "additionalProperties": false,
195
+ "properties": {
196
+ "type": {
197
+ "type": "string",
198
+ "default": "Validity"
199
+ },
200
+ "firstValidFrom": {
201
+ "type": "string",
202
+ "format": "date",
203
+ "description": "The original date from which a certification, document or license is valid. "
204
+ },
205
+ "validFrom": {
206
+ "oneOf": [
207
+ {
208
+ "format": "date"
209
+ },
210
+ {
211
+ "format": "date-time"
212
+ }
213
+ ],
214
+ "description": "The date from which a certification, document or license is valid. In case of renewal, validFrom date will state the date or renewal. ",
215
+ "type": "string"
216
+ },
217
+ "validUntil": {
218
+ "oneOf": [
219
+ {
220
+ "format": "date"
221
+ },
222
+ {
223
+ "format": "date-time"
224
+ }
225
+ ],
226
+ "description": "The date until which a certification, document or license is valid. ",
227
+ "type": "string"
228
+ },
229
+ "validIn": {
230
+ "$ref": "#/definitions/Place_Schema"
231
+ }
232
+ }
233
+ }
234
+ }
235
+ }