You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: flatten signatures array directly onto records
Replace the signatureData wrapper object with a direct signatures
property on all record lexicons. app.certified.signature.list is now
a reusable array type (not an object), so records have flat access
at record.signatures[] instead of record.signatureData.signatures[].
This matches the ATProtocol Attestation Specification structure and
eliminates unnecessary nesting while keeping the array definition DRY
via a single shared lexicon ref.
Copy file name to clipboardExpand all lines: .changeset/fuzzy-pandas-smile.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,12 +9,12 @@ Adds optional cryptographic signature support to all record lexicons, enabling p
9
9
**New lexicons:**
10
10
11
11
-`app.certified.signature.inline` - Inline cryptographic signature object with JOSE algorithm identifiers (ES256, ES256K, Ed25519)
12
-
-`app.certified.signature.list` - Container object with `signatures`array supporting both inline signatures and remote attestation references
12
+
-`app.certified.signature.list` - Reusable array type (union of inline signatures and strongRefs to remote proofs)
13
13
-`app.certified.signature.proof` - Remote attestation proof record containing the CID of attested content
14
14
15
15
**Changes to existing lexicons:**
16
16
17
-
All 20 record lexicons now include an optional `signatureData` property that references `app.certified.signature.list`:
17
+
All 20 record lexicons now include an optional `signatures` property (a ref to `app.certified.signature.list`) placed directly on the record with no wrapper object:
|**Inline Signature**|`app.certified.signature.inline`| An inline cryptographic signature for attesting to record content. Uses JOSE algorithm identifiers (ES256, ES256K, Ed25519). |
160
-
|**Signature List**|`app.certified.signature.list`|Container object with a `signatures` array. Referenced by all record lexicons via `signatureData` property.|
160
+
|**Signature List**|`app.certified.signature.list`|Reusable array type (union of inline signatures and strongRefs). Referenced by all record lexicons via the `signatures` property. |
161
161
|**Proof**|`app.certified.signature.proof`| Remote attestation proof record containing the CID of attested content. Lives in the attestor's repository and can be referenced via strongRef. |
162
162
163
-
All record lexicons include an optional `signatureData` property that references `app.certified.signature.list`, enabling cryptographic attestations. See [Cryptographic Signatures](#cryptographic-signatures) for usage details.
163
+
All record lexicons include an optional `signatures` property (a ref to `app.certified.signature.list`) enabling cryptographic attestations. See [Cryptographic Signatures](#cryptographic-signatures) for usage details.
All record lexicons support optional cryptographic signatures via the `signatureData` property. This enables platform attestation and verification that records were created through trusted services.
386
+
All record lexicons support optional cryptographic signatures via the `signatures` property. This enables platform attestation and verification that records were created through trusted services.
387
387
388
388
Signatures support two patterns:
389
389
@@ -399,25 +399,23 @@ const signedActivity = {
399
399
title: "Verified Reforestation Project",
400
400
shortDescription: "Planted 1,000 trees in partnership with local community",
401
401
createdAt: newDate().toISOString(),
402
-
signatureData: {
403
-
signatures: [
404
-
// Inline signature (embedded)
405
-
{
406
-
$type: "app.certified.signature.inline",
407
-
signatureType: "ES256K", // JOSE algorithm: secp256k1
408
-
signature: newUint8Array([
409
-
/* signature bytes */
410
-
]),
411
-
key: "did:plc:platform123#signing", // DID verification method
412
-
},
413
-
// Remote attestation (reference to proof in another repo)
0 commit comments