Skip to content

Commit 4c932ae

Browse files
feat(dir): add referrer CIDs
Signed-off-by: Bendegúz Csirmaz <csirmazbendeguz@gmail.com>
1 parent e660764 commit 4c932ae

File tree

12 files changed

+320
-105
lines changed

12 files changed

+320
-105
lines changed

api/core/v1/referrer.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33

44
package v1
55

6+
import (
7+
"encoding/json"
8+
"fmt"
9+
)
10+
611
// ReferrerObject defines an interface for referrer objects that can be
712
// marshaled and unmarshaled to/from RecordReferrer format.
813
type ReferrerObject interface {
@@ -18,3 +23,27 @@ type ReferrerObject interface {
1823
// - PublicKey: "agntcy.dir.sign.v1.PublicKey"
1924
ReferrerType() string
2025
}
26+
27+
// Marshal marshals the RecordReferrer similar to how Record.Marshal marshals Record.
28+
func (r *RecordReferrer) Marshal() ([]byte, error) {
29+
if r == nil {
30+
return nil, nil
31+
}
32+
33+
jsonBytes, err := json.Marshal(r)
34+
if err != nil {
35+
return nil, fmt.Errorf("failed to marshal RecordReferrer: %w", err)
36+
}
37+
38+
var normalized any
39+
if err := json.Unmarshal(jsonBytes, &normalized); err != nil {
40+
return nil, fmt.Errorf("failed to normalize JSON for canonical ordering: %w", err)
41+
}
42+
43+
canonicalBytes, err := json.Marshal(normalized)
44+
if err != nil {
45+
return nil, fmt.Errorf("failed to marshal normalized JSON with sorted keys: %w", err)
46+
}
47+
48+
return canonicalBytes, nil
49+
}

api/store/v1/store_service.pb.go

Lines changed: 73 additions & 63 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

proto/agntcy/dir/store/v1/store_service.proto

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ message PushReferrerResponse {
5959

6060
// Optional error message if push failed
6161
optional string error_message = 2;
62+
63+
// The CID of the referrer
64+
string cid = 3;
6265
}
6366

6467
// PullReferrerRequest represents a record with optional OCI artifacts for pull operations.

sdk/dir-js/src/models/agntcy/dir/store/v1/store_service_pb.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ export declare type PushReferrerResponse = Message<"agntcy.dir.store.v1.PushRefe
6161
* @generated from field: optional string error_message = 2;
6262
*/
6363
errorMessage?: string;
64+
65+
/**
66+
* The CID of the referrer
67+
*
68+
* @generated from field: string cid = 3;
69+
*/
70+
cid: string;
6471
};
6572

6673
/**

sdk/dir-js/src/models/agntcy/dir/store/v1/store_service_pb.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { file_google_protobuf_empty } from "@bufbuild/protobuf/wkt";
1313
* Describes the file agntcy/dir/store/v1/store_service.proto.
1414
*/
1515
export const file_agntcy_dir_store_v1_store_service = /*@__PURE__*/
16-
fileDesc("CidhZ250Y3kvZGlyL3N0b3JlL3YxL3N0b3JlX3NlcnZpY2UucHJvdG8SE2FnbnRjeS5kaXIuc3RvcmUudjEifgoTUHVzaFJlZmVycmVyUmVxdWVzdBIxCgpyZWNvcmRfcmVmGAEgASgLMh0uYWdudGN5LmRpci5jb3JlLnYxLlJlY29yZFJlZhI0CghyZWZlcnJlchgCIAEoCzIiLmFnbnRjeS5kaXIuY29yZS52MS5SZWNvcmRSZWZlcnJlciJVChRQdXNoUmVmZXJyZXJSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhoKDWVycm9yX21lc3NhZ2UYAiABKAlIAIgBAUIQCg5fZXJyb3JfbWVzc2FnZSJ2ChNQdWxsUmVmZXJyZXJSZXF1ZXN0EjEKCnJlY29yZF9yZWYYASABKAsyHS5hZ250Y3kuZGlyLmNvcmUudjEuUmVjb3JkUmVmEhoKDXJlZmVycmVyX3R5cGUYAiABKAlIAIgBAUIQCg5fcmVmZXJyZXJfdHlwZSJMChRQdWxsUmVmZXJyZXJSZXNwb25zZRI0CghyZWZlcnJlchgBIAEoCzIiLmFnbnRjeS5kaXIuY29yZS52MS5SZWNvcmRSZWZlcnJlcjL+AwoMU3RvcmVTZXJ2aWNlEkUKBFB1c2gSGi5hZ250Y3kuZGlyLmNvcmUudjEuUmVjb3JkGh0uYWdudGN5LmRpci5jb3JlLnYxLlJlY29yZFJlZigBMAESRQoEUHVsbBIdLmFnbnRjeS5kaXIuY29yZS52MS5SZWNvcmRSZWYaGi5hZ250Y3kuZGlyLmNvcmUudjEuUmVjb3JkKAEwARJLCgZMb29rdXASHS5hZ250Y3kuZGlyLmNvcmUudjEuUmVjb3JkUmVmGh4uYWdudGN5LmRpci5jb3JlLnYxLlJlY29yZE1ldGEoATABEkEKBkRlbGV0ZRIdLmFnbnRjeS5kaXIuY29yZS52MS5SZWNvcmRSZWYaFi5nb29nbGUucHJvdG9idWYuRW1wdHkoARJnCgxQdXNoUmVmZXJyZXISKC5hZ250Y3kuZGlyLnN0b3JlLnYxLlB1c2hSZWZlcnJlclJlcXVlc3QaKS5hZ250Y3kuZGlyLnN0b3JlLnYxLlB1c2hSZWZlcnJlclJlc3BvbnNlKAEwARJnCgxQdWxsUmVmZXJyZXISKC5hZ250Y3kuZGlyLnN0b3JlLnYxLlB1bGxSZWZlcnJlclJlcXVlc3QaKS5hZ250Y3kuZGlyLnN0b3JlLnYxLlB1bGxSZWZlcnJlclJlc3BvbnNlKAEwAUK/AQoXY29tLmFnbnRjeS5kaXIuc3RvcmUudjFCEVN0b3JlU2VydmljZVByb3RvUAFaImdpdGh1Yi5jb20vYWdudGN5L2Rpci9hcGkvc3RvcmUvdjGiAgNBRFOqAhNBZ250Y3kuRGlyLlN0b3JlLlYxygITQWdudGN5XERpclxTdG9yZVxWMeICH0FnbnRjeVxEaXJcU3RvcmVcVjFcR1BCTWV0YWRhdGHqAhZBZ250Y3k6OkRpcjo6U3RvcmU6OlYxYgZwcm90bzM", [file_agntcy_dir_core_v1_record, file_google_protobuf_empty]);
16+
fileDesc("CidhZ250Y3kvZGlyL3N0b3JlL3YxL3N0b3JlX3NlcnZpY2UucHJvdG8SE2FnbnRjeS5kaXIuc3RvcmUudjEifgoTUHVzaFJlZmVycmVyUmVxdWVzdBIxCgpyZWNvcmRfcmVmGAEgASgLMh0uYWdudGN5LmRpci5jb3JlLnYxLlJlY29yZFJlZhI0CghyZWZlcnJlchgCIAEoCzIiLmFnbnRjeS5kaXIuY29yZS52MS5SZWNvcmRSZWZlcnJlciJiChRQdXNoUmVmZXJyZXJSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhoKDWVycm9yX21lc3NhZ2UYAiABKAlIAIgBARILCgNjaWQYAyABKAlCEAoOX2Vycm9yX21lc3NhZ2UidgoTUHVsbFJlZmVycmVyUmVxdWVzdBIxCgpyZWNvcmRfcmVmGAEgASgLMh0uYWdudGN5LmRpci5jb3JlLnYxLlJlY29yZFJlZhIaCg1yZWZlcnJlcl90eXBlGAIgASgJSACIAQFCEAoOX3JlZmVycmVyX3R5cGUiTAoUUHVsbFJlZmVycmVyUmVzcG9uc2USNAoIcmVmZXJyZXIYASABKAsyIi5hZ250Y3kuZGlyLmNvcmUudjEuUmVjb3JkUmVmZXJyZXIy/gMKDFN0b3JlU2VydmljZRJFCgRQdXNoEhouYWdudGN5LmRpci5jb3JlLnYxLlJlY29yZBodLmFnbnRjeS5kaXIuY29yZS52MS5SZWNvcmRSZWYoATABEkUKBFB1bGwSHS5hZ250Y3kuZGlyLmNvcmUudjEuUmVjb3JkUmVmGhouYWdudGN5LmRpci5jb3JlLnYxLlJlY29yZCgBMAESSwoGTG9va3VwEh0uYWdudGN5LmRpci5jb3JlLnYxLlJlY29yZFJlZhoeLmFnbnRjeS5kaXIuY29yZS52MS5SZWNvcmRNZXRhKAEwARJBCgZEZWxldGUSHS5hZ250Y3kuZGlyLmNvcmUudjEuUmVjb3JkUmVmGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5KAESZwoMUHVzaFJlZmVycmVyEiguYWdudGN5LmRpci5zdG9yZS52MS5QdXNoUmVmZXJyZXJSZXF1ZXN0GikuYWdudGN5LmRpci5zdG9yZS52MS5QdXNoUmVmZXJyZXJSZXNwb25zZSgBMAESZwoMUHVsbFJlZmVycmVyEiguYWdudGN5LmRpci5zdG9yZS52MS5QdWxsUmVmZXJyZXJSZXF1ZXN0GikuYWdudGN5LmRpci5zdG9yZS52MS5QdWxsUmVmZXJyZXJSZXNwb25zZSgBMAFCvwEKF2NvbS5hZ250Y3kuZGlyLnN0b3JlLnYxQhFTdG9yZVNlcnZpY2VQcm90b1ABWiJnaXRodWIuY29tL2FnbnRjeS9kaXIvYXBpL3N0b3JlL3YxogIDQURTqgITQWdudGN5LkRpci5TdG9yZS5WMcoCE0FnbnRjeVxEaXJcU3RvcmVcVjHiAh9BZ250Y3lcRGlyXFN0b3JlXFYxXEdQQk1ldGFkYXRh6gIWQWdudGN5OjpEaXI6OlN0b3JlOjpWMWIGcHJvdG8z", [file_agntcy_dir_core_v1_record, file_google_protobuf_empty]);
1717

1818
/**
1919
* Describes the message agntcy.dir.store.v1.PushReferrerRequest.

0 commit comments

Comments
 (0)