diff --git a/config/keri/acdc/credentials/attributes/child-test.json b/config/keri/acdc/credentials/attributes/child-test.json new file mode 100644 index 0000000..4437587 --- /dev/null +++ b/config/keri/acdc/credentials/attributes/child-test.json @@ -0,0 +1,6 @@ +{ + "requester": { + "customObjectAttribute": "Test" + }, + "customAttribute": 2 +} diff --git a/config/keri/acdc/credentials/edges/.gitkeep b/config/keri/acdc/credentials/edges/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config/keri/acdc/credentials/edges/child-edge.json b/config/keri/acdc/credentials/edges/child-edge.json new file mode 100644 index 0000000..9cb3df6 --- /dev/null +++ b/config/keri/acdc/credentials/edges/child-edge.json @@ -0,0 +1 @@ +{"d": "", "requester": {"n": "", "s": ""}} \ No newline at end of file diff --git a/config/keri/acdc/credentials/rules/.gitkeep b/config/keri/acdc/credentials/rules/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config/keri/acdc/credentials/rules/child-rule.json b/config/keri/acdc/credentials/rules/child-rule.json new file mode 100644 index 0000000..bef3884 --- /dev/null +++ b/config/keri/acdc/credentials/rules/child-rule.json @@ -0,0 +1 @@ +{"d": "", "privacyDisclaimer": {"l": "It is the sole responsibility of Holders of a CustomChildCredential to present that credential in a privacy-preserving manner using the mechanisms provided in the Issuance and Presentation Exchange (IPEX) protocol specification and the Authentic Chained Data Container (ACDC) specification. https://github.com/WebOfTrust/IETF-IPEX and https://github.com/trustoverip/tswg-acdc-specification."}} \ No newline at end of file diff --git a/config/keri/acdc/schemas/custom-child-schema-wth-edges-and-rules.json b/config/keri/acdc/schemas/custom-child-schema-wth-edges-and-rules.json new file mode 100644 index 0000000..ce594f3 --- /dev/null +++ b/config/keri/acdc/schemas/custom-child-schema-wth-edges-and-rules.json @@ -0,0 +1,176 @@ +{ + "$id": "", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Custom Child Credential", + "description": "A child custom schema means that it will have dependencies to the parent schema. It will also include rules to act as a Ricardian Contract", + "type": "object", + "credentialType": "CustomChildCredential", + "version": "1.0.0", + "properties": { + "v": { + "description": "Credential Version", + "type": "string" + }, + "d": { + "description": "Credential SAID", + "type": "string" + }, + "u": { + "description": "One time use nonce - optional", + "type": "string" + }, + "i": { + "description": "Issuer AID", + "type": "string" + }, + "ri": { + "description": "Credential Registry Identifier", + "type": "string" + }, + "s": { + "description": "Schema SAID", + "type": "string" + }, + "a": { + "oneOf": [ + { + "description": "Attributes block SAID", + "type": "string" + }, + { + "$id": "", + "description": "Attributes block", + "type": "object", + "properties": { + "d": { + "description": "Attributes block SAID", + "type": "string" + }, + "i": { + "description": "Issuee AID", + "type": "string" + }, + "dt": { + "description": "Issuance date time", + "type": "string", + "format": "date-time" + }, + "requester": { + "description": "Defining tightly related attributes together in one object. This is helpful for SD and enhances IPEX protocol interactions depending on the use case!", + "type": "object", + "properties": { + "customObjectAttribute": { + "description": "First custom attribute, it usually comes with", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "customObjectAttribute" + ] + }, + "customAttribute": { + "customAttribute": "A custom attribute like we defined earlier", + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "i", + "requester", + "customAttribute" + ] + } + ] + }, + "e": { + "oneOf": [ + { + "description": "Edges block SAID", + "type": "string" + }, + { + "$id": "", + "description": "Edges block", + "type": "object", + "properties": { + "d": { + "description": "Edges block SAID", + "type": "string" + }, + "exampleEdge": { + "description": "The custom parent schema which the authorizer is responding to.", + "type": "object", + "properties": { + "n": { + "description": "SAID of the CustomParentCredential ACDC", + "type": "string" + }, + "s": { + "description": "SAID of CustomParentCredential ACDC schema", + "type": "string", + "const": "" + } + }, + "additionalProperties": false, + "required": [ + "n", + "s" + ] + } + }, + "additionalProperties": false, + "required": [ + "d", + "exampleEdge" + ] + } + ] + }, + "r": { + "oneOf": [ + { + "description": "Rules block SAID", + "type": "string" + }, + { + "$id": "", + "description": "Rules block", + "type": "object", + "properties": { + "d": { + "description": "Rules block SAID", + "type": "string" + }, + "privacyDisclaimer": { + "description": "Privacy Disclaimer", + "type": "object", + "properties": { + "l": { + "description": "Associated legal language", + "type": "string", + "const": "It is the sole responsibility of Holders of a CustomChildCredential to present that credential in a privacy-preserving manner using the mechanisms provided in the Issuance and Presentation Exchange (IPEX) protocol specification and the Authentic Chained Data Container (ACDC) specification. https://github.com/WebOfTrust/IETF-IPEX and https://github.com/trustoverip/tswg-acdc-specification." + } + } + } + }, + "additionalProperties": false, + "required": [ + "d", + "privacyDisclaimer" + ] + } + ] + } + }, + "additionalProperties": false, + "required": [ + "v", + "i", + "ri", + "s", + "d", + "a", + "e" + ] +}