Credential profiles
| Credential | Role | Schema |
|---|---|---|
| PartyIdCredential Participant Registry | Who is asking: the party's DID and name. Presented at every stop (G3). Checked against Trusted List + status list. | https://schemas.ishare.eu/v3/party-id/schema.json |
| FrameworkAgreementCredential Participant Registry | Terms-of-use claim: legal binding already exists via this claim and the Trust Framework's third-party effect (hard rule 4). Mandatory for every consumer. Missing -> deny FRAMEWORK_AGREEMENT_MISSING. | https://schemas.ishare.eu/v3/claims/framework-agreement/schema.json |
| FrameworkComplianceCredential Participant Registry | Compliance with the iSHARE framework. Presented with the party credential. | https://schemas.ishare.eu/v3/claims/framework-compliance/schema.json |
| IdpAssertionCredential Identity Provider | Identity assertion for a natural person (rights holder / analyst). Carried where a person acts. | https://schemas.ishare.eu/v3/claims/idp-assertion/schema.json |
| DataspaceParticipantCredential Participant Registry | Dataspace claims (membership, role, agreement). Used where a casus is scoped to a dataspace. | https://schemas.ishare.eu/v3/dataspace-participant/schema.json |
| DataRightsCredential Authorisation Registry | What this consumer may do, under which licences, via which delegation chain, on which legal basis. Profile adds delegationChain + legalBasis (ADR-0001). Issuer refuses without legal basis. | https://schemas.ishare.eu/v3/datarights/schema.json |
| BitstringStatusListCredential each issuer | Revocation: bit set = revoked. Takes effect at every station within one train cycle. Fetched and cached per train cycle (ttl). | https://schemas.ishare.eu/v3/common/bitstring-status-list-credential.json |
Licence → ODRL draft
Every ODRL policy carries prov:wasDerivedFrom = the licence URI.
A policy without it is rejected.
| Licence | Permits | Constraints | Prohibits |
|---|---|---|---|
general-unrestricted/1.0 | use, distribute, derive | — | — |
general-resharing-with-adhering-parties/1.0 | use, distribute | stn:recipientAdheres eq iSHARE | — |
general-internal-use/1.0 | use | stn:recipient eq assignee | distribute |
general-internal-use-insights/1.0 | use, commercialize | stn:recipient eq assignee; stn:subject eq derived-insights | distribute |
general-non-commercial-use/1.0 | use, distribute | stn:purposeCategory eq non-commercial | commercialize |
general-enrich-with-own-data/1.0 | aggregate | stn:enrichmentSource isAnyOf ['recipient'] | aggregate |
general-enrich-with-third-party-generated-data/1.0 | aggregate | stn:enrichmentSource isAnyOf ['discloser', 'direct-provider', 'third-party-generated-directly'] | — |
general-enrich-with-others-data/1.0 | aggregate | stn:enrichmentSource isAnyOf ['third-party'] | aggregate |
general-use-to-service-entitled-party/1.0 | use | stn:purposeCategory eq service-entitled-party | — |
general-determined-between-parties/1.0 | use | stn:bilateralAgreement isNotNull | — |
country-{XX}/1.0 | use | spatial isAnyOf {XX} | — |
industry-{NNNN}/1.0 | use | stn:industry isAnyOf {NNNN} | — |
certification-iso-27001/1.0 | use | stn:certification eq ISO27001 | — |
certification-iso-9001/1.0 | use | stn:certification eq ISO9001 | — |
certification-iso-14001/1.0 | use | stn:certification eq ISO14001 | — |
certification-iso-45001/1.0 | use | stn:certification eq ISO45001 | — |
certification-iso-22000/1.0 | use | stn:certification eq ISO22000 | — |
certification-gdpr-regulated/1.0 | use | stn:certification eq GDPR-Art42 | — |
certification-hipaa-regulated/1.0 | use | stn:certification eq HIPAA | — |
certification-soc-2/1.0 | use | stn:certification eq SOC2-Type2 | — |
certification-pci-dss/1.0 | use | stn:certification eq PCI-DSS | — |
certification-csa-star/1.0 | use | stn:certification eq CSA-STAR | — |
Four decision outcomes — 26 test vectors
| Outcome | Reason | Vector |
|---|---|---|
| DENY | TRAIN_ALGORITHM_NOT_APPROVED | deny-algorithm-not-approved Train manifest hash/version not approved at this station. |
| DENY | CONDITION_NOT_MET | deny-condition-not-met Licence conditions evaluated false (e.g. purpose or country). |
| DENY | DATA_RIGHTS_ISSUER_UNTRUSTED | deny-data-rights-issuer-untrusted Authorisation Registry not (or no longer) on the Trusted List: its Data Rights Credential carries no weight. |
| DENY | DATA_RIGHTS_REVOKED | deny-data-rights-revoked Revoked employer delegation (casus-v2g proof B): takes effect within one train cycle. |
| DENY | DELEGATION_CHAIN_BROKEN | deny-delegation-chain-broken Chain does not lead back to the rights holder. |
| DENY | LICENCE_NOT_GRANTED | deny-knowledge-station-licence-mismatch Knowledge station: the request must still match the station's offered licence. |
| DENY | PARTY_CREDENTIAL_REVOKED | deny-knowledge-station-party-revoked Knowledge station still verifies the party: a revoked party credential is denied. |
| DENY | LICENCE_NOT_GRANTED | deny-licence-not-granted The Data Rights Credential's licences do not cover the licence of the policy. |
| DENY | DATA_RIGHTS_MISSING | deny-no-data-rights No Data Rights Credential presented. |
| DENY | FRAMEWORK_AGREEMENT_MISSING | deny-no-framework-agreement Framework-agreement claim missing: no third-party effect, no class membership. |
| DENY | LEGAL_BASIS_MISSING | deny-no-legal-basis Defence in depth: a credential without legal basis should not exist, if presented anyway -> deny. |
| DENY | PARTY_CREDENTIAL_EXPIRED | deny-party-expired Party credential past validUntil. |
| DENY | PARTY_CREDENTIAL_REVOKED | deny-party-revoked Status list bit set on the party credential. |
| DENY | POLICY_WITHOUT_LICENCE | deny-policy-without-licence ODRL policy lacks prov:wasDerivedFrom licence URI (hard rule 2). |
| DENY | RESEARCHER_ASSERTION_INVALID | deny-researcher-assertion-invalid G2: the station requires the researcher's IdP-assertion claim and it is missing, forged, expired, revoked or not issued under the presenting party. |
| DENY | PARTY_ISSUER_UNTRUSTED | deny-untrusted-issuer Issuer not on the Trusted List (or withdrawn). |
| PERMIT + DUTIES | — | duties-bilateral-agreement Licence general-determined-between-parties: permit, duty to follow the referenced agreement. |
| HOLD FOR REVIEW | — | hold-knowledge-station-review Knowledge station can still hold for custodian review. |
| HOLD FOR REVIEW | — | hold-review-profile Pharma profile P3: everything valid but the licence profile requires custodian review (queue + callback). |
| HOLD FOR REVIEW | — | hold-wins-over-duties Review and duties together: hold first; duties are re-evaluated after the custodian decision. |
| DENY | RESEARCHER_ASSERTION_INVALID | order-researcher-before-data-rights Fixed order: researcher assertion is reported before data-rights problems. |
| DENY | PARTY_ISSUER_UNTRUSTED | order-untrusted-before-revoked Fixed evaluation order: untrusted issuer is reported before revocation. |
| PERMIT | — | permit-knowledge-station-without-data-rights Knowledge station (open knowledge, e.g. Euretos): no Data Rights Credential needed, only the party check remains. |
| PERMIT | — | permit-researcher-assertion-not-required G2: a station that does not require the assertion ignores a missing one. |
| PERMIT | — | permit-researcher-assertion-valid G2: required and valid researcher assertion changes nothing for the decision. |
| PERMIT | — | permit-valid All checks pass, no duties, no review. |