new credential membership

This commit is contained in:
Cayo Puigdefabregas 2023-12-15 17:52:08 +01:00
parent 8ee3f561a4
commit 45f30f3664
3 changed files with 154 additions and 163 deletions

View File

@ -1,2 +1,2 @@
name surnames email typeOfPerson membershipType organisation affiliatedSince firstName lastName email membershipType membershipId affiliatedUntil affiliatedSince typeOfPerson identityDocType identityNumber
Pepe Gómez user1@example.org individual Member Pangea 01-01-2023 Pepe Gómez user1@example.org individual 123456 2024-01-01T00:00:00Z 2023-01-01T00:00:00Z natural DNI 12345678A

1 name firstName surnames lastName email membershipType membershipId organisation affiliatedUntil affiliatedSince typeOfPerson identityDocType identityNumber
2 Pepe Pepe Gómez Gómez user1@example.org Member individual 123456 Pangea 2024-01-01T00:00:00Z 01-01-2023 2023-01-01T00:00:00Z individual natural DNI 12345678A

View File

@ -1,105 +1,67 @@
{ {
"@context": [ "@context": [
"https://www.w3.org/2018/credentials/v1", "https://www.w3.org/2018/credentials/v1",
{ "https://idhub.pangea.org/credentials/base/v1",
"individual": "https://schema.org/Person", "https://idhub.pangea.org/credentials/membership-card/v1"
"Member": "https://schema.org/Member", ],
"startDate": "https://schema.org/startDate", "type": [
"jsonSchema": "https://schema.org/jsonSchema", "VerifiableCredential",
"$ref": "https://schema.org/jsonSchemaRef", "VerifiableAttestation",
"credentialSchema": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#credentialSchema", "MembershipCard"
"organisation": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#organisation", ],
"membershipType": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#membershipType", "id": "https://idhub.pangea.org/credentials/987654321",
"membershipId": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#membershipId", "issuer": {
"typeOfPerson": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#typeOfPerson", "id": "did:example:5678",
"identityDocType": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#identityDocType", "name": "Pangea Internet Solidari"
"identityNumber": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#identityNumber", },
"name": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#name", "issuanceDate": "2023-12-06T19:23:24Z",
"description": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#description", "issued": "2023-12-06T19:23:24Z",
"value": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#value", "validFrom": "2023-12-06T19:23:24Z",
"lang": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#lang", "validUntil": "2024-12-06T19:23:24Z",
"surnames": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#surnames", "name": [
"email": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#email", {
"affiliatedSince": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#affiliatedSince", "value": "Membership Card",
"affiliatedUntil": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/contexts/vocab#affiliatedUntil", "lang": "en"
"issued": "https://ec.europa.eu/digital-building-blocks/wikis/display/EBSIDOC/Verifiable+Attestation#issued", },
"validFrom": "https://ec.europa.eu/digital-building-blocks/wikis/display/EBSIDOC/Verifiable+Attestation#validFrom", {
"validUntil": "https://ec.europa.eu/digital-building-blocks/wikis/display/EBSIDOC/Verifiable+Attestation#validUntil" "value": "Carnet de soci/a",
} "lang": "ca_ES"
], },
"type": [ {
"VerifiableCredential", "value": "Carnet de socio/a",
"VerifiableAttestation", "lang": "es"
"MembershipCard" }
], ],
"id": "{{ vc_id }}",
"issuer": {
"id": "{{ issuer_did }}",
"name": "Pangea",
"description": [ "description": [
{ {
"value": "Pangea.org is a service provider leveraging open-source technologies to provide affordable and accessible solutions for social enterprises and solidarity organisations.", "value": "The membership card specifies an individual's subscription or enrollment in specific services or benefits issued by an organization.",
"lang": "en" "lang": "en"
}, },
{ {
"value": "Pangea.org és un proveïdor de serveis que aprofita les tecnologies de codi obert per oferir solucions assequibles i accessibles per a empreses socials i organitzacions solidàries.", "value": "El carnet de soci especifica la subscripció o la inscripció d'un individu en serveis o beneficis específics emesos per una organització.",
"lang": "ca_ES" "lang": "ca_ES"
}, },
{ {
"value": "Pangea.org es un proveedor de servicios que aprovecha tecnologías de código abierto para proporcionar soluciones asequibles y accesibles para empresas sociales y organizaciones solidarias.", "value": "El carnet de socio especifica la suscripción o inscripción de un individuo en servicios o beneficios específicos emitidos por uns organización.",
"lang": "es" "lang": "es"
} }
],
] "credentialSubject": {
}, "id": "did:example:1234",
"issuanceDate": "{{ issuance_date }}", "firstName": "Joan",
"issued": "{{ issuance_date }}", "lastName": "Pera",
"validFrom": "{{ issuance_date }}", "email": "joan.pera@pangea.org",
"validUntil": "{{ validUntil }}", "typeOfPerson": "natural",
"name": [ "identityDocType": "DNI",
{ "identityNumber": "12345678A",
"value": "Membership Card", "organisation": "Pangea",
"lang": "en" "membershipType": "individual",
"membershipId": "123456",
"affiliatedSince": "2023-01-01T00:00:00Z",
"affiliatedUntil": "2024-01-01T00:00:00Z"
}, },
{
"value": "Carnet de soci/a",
"lang": "ca_ES"
},
{
"value": "Carnet de socio/a",
"lang": "es"
}
],
"description": [
{
"value": "The membership card specifies an individual's subscription or enrollment in specific services or benefits issued by an organization.",
"lang": "en"
},
{
"value": "El carnet de soci especifica la subscripció o la inscripció d'un individu en serveis o beneficis específics emesos per una organització.",
"lang": "ca_ES"
},
{
"value": "El carnet de socio especifica la suscripción o inscripción de un individuo en servicios o beneficios específicos emitidos por uns organización.",
"lang": "es"
}
],
"credentialSubject": {
"id": "{{ subject_did }}",
"organisation": "Pangea",
"membershipType": "{{ membershipType }}",
"membershipId": "{{ vc_id }}",
"affiliatedSince": "{{ affiliatedSince }}",
"affiliatedUntil": "{{ affiliatedUntil }}",
"typeOfPerson": "{{ typeOfPerson }}",
"identityDocType": "{{ identityDocType }}",
"identityNumber": "{{ identityNumber }}",
"name": "{{ first_name }}",
"surnames": "{{ last_name }}",
"email": "{{ email }}",
"credentialSchema": { "credentialSchema": {
"id": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/membership-card-schema.json", "id": "https://idhub.pangea.org/vc_schemas/membership-card.json",
"type": "JsonSchema" "type": "FullJsonSchemaValidator2021"
} }
} }
}

View File

@ -1,65 +1,94 @@
{ {
"$id": "https://gitea.pangea.org/trustchain-oc1-orchestral/schemas/membership-card-schema.json", "$id": "https://idhub.pangea.org/vc_schemas/membership-card.json",
"$schema": "https://json-schema.org/draft/2020-12/schema", "$schema": "https://json-schema.org/draft/2020-12/schema",
"name": "MembershipCard", "title": "Membership Card",
"description": "MembershipCard credential using JsonSchema", "description": "The membership card specifies an individual's subscription or enrollment in specific services or benefits issued by an organization.",
"type": "object", "name": [
"properties": { {
"credentialSubject": { "value": "Membership Card",
"type": "object", "lang": "en"
"properties": { },
"organisation": { {
"type": "string" "value": "Carnet de soci/a",
}, "lang": "ca_ES"
"membershipType": { },
"type": "string" {
}, "value": "Carnet de socio/a",
"affiliatedSince": { "lang": "es"
"type": "string",
"format": "date-time"
},
"affiliatedUntil": {
"type": "string",
"format": "date-time"
},
"typeOfPerson": {
"type": "string",
"enum": [
"individual",
"org"
]
},
"identityDocType": {
"type": "string",
"enum": [
"DNI",
"NIF",
"NIE",
"PASSPORT"
]
},
"identityNumber": {
"type": "string"
},
"name": {
"type": "string"
},
"surnames": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
},
"required": [
"organisation",
"affiliatedSince",
"typeOfPerson",
"name",
"surnames",
"email"
]
} }
} ],
"type": "object",
"allOf": [
{
"$ref": "https://idhub.pangea.org/vc_schemas/ebsi/attestation.json"
},
{
"properties": {
"credentialSubject": {
"description": "Defines additional properties on credentialSubject",
"type": "object",
"properties": {
"id": {
"description": "Defines a unique identifier of the credential subject",
"type": "string"
},
"organisation": {
"description": "Organisation the credential subject is affiliated with",
"type": "string"
},
"membershipType": {
"description": "Type of membership",
"type": "string"
},
"membershipId": {
"description": "Membership identifier",
"type": "string"
},
"affiliatedSince": {
"type": "string",
"format": "date-time"
},
"affiliatedUntil": {
"type": "string",
"format": "date-time"
},
"typeOfPerson": {
"type": "string",
"enum": [
"natural",
"legal"
]
},
"identityDocType": {
"description": "Type of the Identity Document of the credential subject",
"type": "string"
},
"identityNumber": {
"description": "Number of the Identity Document of the credential subject",
"type": "string"
},
"firstName": {
"description": "Name of the natural person or name of the legal person (organisation)",
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
},
"required": [
"id",
"organisation",
"affiliatedSince",
"typeOfPerson",
"firstName",
"email"
]
}
}
}
]
} }