Skip to content

Commit bd1f036

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

14 files changed

Lines changed: 139 additions & 113 deletions

File tree

api/store/v1/store_service.pb.go

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

client/sign.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func (c *Client) pushReferrersToStore(ctx context.Context, recordRef *corev1.Rec
6868
}
6969

7070
// Push public key to store as a referrer
71-
err = c.PushReferrer(ctx, &storev1.PushReferrerRequest{
71+
_, err = c.PushReferrer(ctx, &storev1.PushReferrerRequest{
7272
RecordRef: recordRef,
7373
Referrer: publicKeyReferrer,
7474
})
@@ -83,7 +83,7 @@ func (c *Client) pushReferrersToStore(ctx context.Context, recordRef *corev1.Rec
8383
}
8484

8585
// Push signature to store as a referrer
86-
err = c.PushReferrer(ctx, &storev1.PushReferrerRequest{
86+
_, err = c.PushReferrer(ctx, &storev1.PushReferrerRequest{
8787
RecordRef: recordRef,
8888
Referrer: signatureReferrer,
8989
})

client/store.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -127,30 +127,30 @@ func (c *Client) PushBatch(ctx context.Context, records []*corev1.Record) ([]*co
127127
}
128128

129129
// PushReferrer stores a signature using the PushReferrer RPC.
130-
func (c *Client) PushReferrer(ctx context.Context, req *storev1.PushReferrerRequest) error {
130+
func (c *Client) PushReferrer(ctx context.Context, req *storev1.PushReferrerRequest) (*storev1.PushReferrerResponse, error) {
131131
// Create streaming client
132132
stream, err := c.StoreServiceClient.PushReferrer(ctx)
133133
if err != nil {
134-
return fmt.Errorf("failed to create push referrer stream: %w", err)
134+
return nil, fmt.Errorf("failed to create push referrer stream: %w", err)
135135
}
136136

137137
// Send the request
138138
if err := stream.Send(req); err != nil {
139-
return fmt.Errorf("failed to send push referrer request: %w", err)
139+
return nil, fmt.Errorf("failed to send push referrer request: %w", err)
140140
}
141141

142142
// Close send stream
143143
if err := stream.CloseSend(); err != nil {
144-
return fmt.Errorf("failed to close send stream: %w", err)
144+
return nil, fmt.Errorf("failed to close send stream: %w", err)
145145
}
146146

147147
// Receive response
148-
_, err = stream.Recv()
148+
response, err := stream.Recv()
149149
if err != nil {
150-
return fmt.Errorf("failed to receive push referrer response: %w", err)
150+
return nil, fmt.Errorf("failed to receive push referrer response: %w", err)
151151
}
152152

153-
return nil
153+
return response, nil
154154
}
155155

156156
// PullReferrer retrieves all referrers using the PullReferrer RPC.

e2e/local/10_referrers_test.go

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,15 @@ var _ = ginkgo.Describe("Running e2e tests for referrers", func() {
100100
})
101101

102102
ginkgo.It("should successfully push basic referrer", func() {
103-
var err error
104-
105103
referrer := generateReferrer()
106-
err = c.PushReferrer(ctx, &storev1.PushReferrerRequest{
104+
105+
response, err := c.PushReferrer(ctx, &storev1.PushReferrerRequest{
107106
RecordRef: record1,
108107
Referrer: referrer,
109108
})
110109

111110
gomega.Expect(err).NotTo(gomega.HaveOccurred())
111+
gomega.Expect(response.GetCid()).NotTo(gomega.BeEmpty())
112112

113113
referrers := pullReferrers(c, ctx, record1, corev1.PublicKeyReferrerType)
114114
gomega.Expect(referrers).To(gomega.HaveLen(1))
@@ -120,18 +120,18 @@ var _ = ginkgo.Describe("Running e2e tests for referrers", func() {
120120
})
121121

122122
ginkgo.It("should successfully push full referrer", func() {
123-
var err error
124-
125123
referrer := generateReferrer()
126124
referrer.CreatedAt = "2026-03-09T14:20:00Z"
127125
referrer.RecordRef = record1
128126
referrer.Annotations = map[string]string{"foo": "bar"}
129-
err = c.PushReferrer(ctx, &storev1.PushReferrerRequest{
127+
128+
response, err := c.PushReferrer(ctx, &storev1.PushReferrerRequest{
130129
RecordRef: record1,
131130
Referrer: referrer,
132131
})
133132

134133
gomega.Expect(err).NotTo(gomega.HaveOccurred())
134+
gomega.Expect(response.GetCid()).NotTo(gomega.BeEmpty())
135135

136136
referrers := pullReferrers(c, ctx, record1, corev1.PublicKeyReferrerType)
137137
gomega.Expect(referrers).To(gomega.HaveLen(1))
@@ -143,11 +143,10 @@ var _ = ginkgo.Describe("Running e2e tests for referrers", func() {
143143
})
144144

145145
ginkgo.It("should fail if record mismatch", func() {
146-
var err error
147-
148146
referrer := generateReferrer()
149147
referrer.RecordRef = record2
150-
err = c.PushReferrer(ctx, &storev1.PushReferrerRequest{
148+
149+
_, err := c.PushReferrer(ctx, &storev1.PushReferrerRequest{
151150
RecordRef: record1,
152151
Referrer: referrer,
153152
})
@@ -157,10 +156,9 @@ var _ = ginkgo.Describe("Running e2e tests for referrers", func() {
157156
})
158157

159158
ginkgo.It("should fail if empty referrer", func() {
160-
var err error
161-
162159
referrer := &corev1.RecordReferrer{}
163-
err = c.PushReferrer(ctx, &storev1.PushReferrerRequest{
160+
161+
_, err := c.PushReferrer(ctx, &storev1.PushReferrerRequest{
164162
RecordRef: record1,
165163
Referrer: referrer,
166164
})
@@ -170,11 +168,10 @@ var _ = ginkgo.Describe("Running e2e tests for referrers", func() {
170168
})
171169

172170
ginkgo.It("should fail if incorrect type", func() {
173-
var err error
174-
175171
referrer := generateReferrer()
176172
referrer.Type = "foo"
177-
err = c.PushReferrer(ctx, &storev1.PushReferrerRequest{
173+
174+
_, err := c.PushReferrer(ctx, &storev1.PushReferrerRequest{
178175
RecordRef: record1,
179176
Referrer: referrer,
180177
})

install/docker/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ services:
6262
restart_policy:
6363
condition: on-failure
6464
healthcheck:
65-
test: pg_isready -U dir -d dir || exit 1
65+
test: pg_isready -U postgres -d directory || exit 1
6666
interval: 10s
6767
retries: 60
6868
start_period: 10s

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

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

6060
// Optional error message if push failed
6161
optional string error_message = 2;
62+
63+
string cid = 3;
6264
}
6365

6466
// 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: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ 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+
* @generated from field: string cid = 3;
67+
*/
68+
cid: string;
6469
};
6570

6671
/**

0 commit comments

Comments
 (0)