Skip to content

Commit fd4b204

Browse files
authored
feat: Initial implementation of the PostgresFDW (#2806)
1 parent c4c0e61 commit fd4b204

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+7865
-5
lines changed

Dockerfile

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
# use `docker buildx imagetools inspect <image>` to get the multi-platform sha256
2-
FROM golang:1.25.5-alpine@sha256:ac09a5f469f307e5da71e766b0bd59c9c49ea460a528cc3e6686513d64a6f1fb AS spicedb-builder
2+
# Note: Using Debian-based golang image (not alpine) to build with glibc for postgres-fdw support
3+
FROM golang:1.25.5@sha256:8bbd14091f2c61916134fa6aeb8f76b18693fcb29a39ec6d8be9242c0a7e9260 AS spicedb-builder
34
WORKDIR /go/src/app
4-
RUN apk update && apk add --no-cache git
5+
RUN apt-get update && apt-get install -y --no-install-recommends git gcc libc6-dev && rm -rf /var/lib/apt/lists/*
56
COPY . .
67
# https://github.com/odigos-io/go-rtml#about-ldflags-checklinkname0
7-
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg/mod CGO_ENABLED=0 go build -tags memoryprotection -v -ldflags=-checklinkname=0 -o spicedb ./cmd/spicedb
8+
# Build with CGO enabled for postgres-fdw support
9+
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg/mod CGO_ENABLED=1 go build -tags memoryprotection -v -ldflags=-checklinkname=0 -o spicedb ./cmd/spicedb
810

911
# use `docker buildx imagetools inspect <image>` to get the multi-platform sha256
1012
FROM golang:1.25.5-alpine@sha256:ac09a5f469f307e5da71e766b0bd59c9c49ea460a528cc3e6686513d64a6f1fb AS health-probe-builder
@@ -16,7 +18,8 @@ RUN git checkout main
1618
RUN CGO_ENABLED=0 go install -a -tags netgo -ldflags=-w
1719

1820
# use `crane digest <image>` to get the multi-platform sha256
19-
FROM cgr.dev/chainguard/static@sha256:b2e1c3d3627093e54f6805823e73edd17ab93d6c7202e672988080c863e0412b
21+
# Note: Using glibc-dynamic base instead of static because the postgres-fdw command requires libc
22+
FROM cgr.dev/chainguard/glibc-dynamic@sha256:2c50486a00691ab9bf245c5e5e456777ff4bb25c8635be898bd5e2f0ab72eedb
2023
COPY --from=health-probe-builder /go/bin/grpc-health-probe /bin/grpc_health_probe
2124
COPY --from=spicedb-builder /go/src/app/spicedb /usr/local/bin/spicedb
2225
ENV PATH="$PATH:/usr/local/bin"

Dockerfile.release

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# vim: syntax=dockerfile
22
# use `docker buildx imagetools inspect <image>` to get the multi-platform sha256
3-
ARG BASE=cgr.dev/chainguard/static@sha256:b2e1c3d3627093e54f6805823e73edd17ab93d6c7202e672988080c863e0412b
3+
# Note: Using glibc-dynamic base instead of static because the postgres-fdw command requires libc
4+
ARG BASE=cgr.dev/chainguard/glibc-dynamic@sha256:2c50486a00691ab9bf245c5e5e456777ff4bb25c8635be898bd5e2f0ab72eedb
45
FROM golang:1.25.5-alpine@sha256:ac09a5f469f307e5da71e766b0bd59c9c49ea460a528cc3e6686513d64a6f1fb AS health-probe-builder
56
WORKDIR /go/src/app
67
RUN apk update && apk add --no-cache git

configuration.sql

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
CREATE EXTENSION IF NOT EXISTS postgres_fdw;
2+
3+
CREATE SERVER spicedb_fdw FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'host.docker.internal', dbname 'default', port '5433', use_remote_estimate 'true');
4+
5+
CREATE USER MAPPING FOR postgres SERVER spicedb_fdw OPTIONS (user 'postgres', password 'proxypassword');
6+
7+
CREATE SCHEMA spicedb;
8+
9+
-- IMPORT FOREIGN SCHEMA spicedb FROM SERVER spicedb_fdw INTO spicedb;
10+
11+
CREATE FOREIGN TABLE relationships (
12+
resource_type text NOT NULL,
13+
resource_id text NOT NULL,
14+
relation text NOT NULL,
15+
subject_type text NOT NULL,
16+
subject_id text NOT NULL,
17+
optional_subject_relation text default '',
18+
caveat_name text default '',
19+
caveat_context text default '',
20+
consistency text default ''
21+
) SERVER spicedb_fdw;
22+
23+
CREATE FOREIGN TABLE permissions (
24+
resource_type text NOT NULL,
25+
resource_id text NOT NULL,
26+
permission text NOT NULL,
27+
subject_type text NOT NULL,
28+
subject_id text NOT NULL,
29+
optional_subject_relation text NOT NULL,
30+
has_permission boolean, -- NULL when maybe
31+
consistency text default ''
32+
) SERVER spicedb_fdw;
33+
34+
CREATE FOREIGN TABLE schema ( schema_text text ) SERVER spicedb_fdw;

docs/spicedb.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ A database that stores and computes permissions
3030
- [spicedb datastore](#reference-spicedb-datastore) - datastore operations
3131
- [spicedb lsp](#reference-spicedb-lsp) - serve language server protocol
3232
- [spicedb man](#reference-spicedb-man) - Generate man page
33+
- [spicedb postgres-fdw](#reference-spicedb-postgres-fdw) - serve a Postgres Foreign Data Wrapper for SpiceDB (EXPERIMENTAL)
3334
- [spicedb serve](#reference-spicedb-serve) - serve the permissions database
3435
- [spicedb serve-testing](#reference-spicedb-serve-testing) - test server with an in-memory datastore
3536
- [spicedb version](#reference-spicedb-version) - displays the version of SpiceDB
@@ -370,6 +371,36 @@ spicedb man
370371

371372

372373

374+
## Reference: `spicedb postgres-fdw`
375+
376+
EXPERIMENTAL: Serves a Postgres-compatible interface for querying SpiceDB data using foreign data wrappers. This feature is experimental and subject to change.
377+
378+
```
379+
spicedb postgres-fdw [flags]
380+
```
381+
382+
### Options
383+
384+
```
385+
--postgres-access-token-secret string (required) The password that Postgres will use to authenticate to the FDW proxy (configured in the Postgres FDW extension's OPTIONS)
386+
--postgres-endpoint string The endpoint at which to serve the Postgres protocol (default ":5432")
387+
--postgres-username string The username that Postgres will use to connect to the FDW proxy (default "postgres")
388+
--shutdown-grace-period duration The duration to wait for the server to shutdown gracefully
389+
--spicedb-access-token-secret string (required) Access token for calling the SpiceDB API
390+
--spicedb-api-endpoint string SpiceDB API endpoint (default "localhost:50051")
391+
--spicedb-insecure Use insecure connection to SpiceDB API
392+
```
393+
394+
### Options Inherited From Parent Flags
395+
396+
```
397+
--log-format string format of logs ("auto", "console", "json") (default "auto")
398+
--log-level string verbosity of logging ("trace", "debug", "info", "warn", "error") (default "info")
399+
--skip-release-check if true, skips checking for new SpiceDB releases
400+
```
401+
402+
403+
373404
## Reference: `spicedb serve`
374405

375406
start a SpiceDB server

go.mod

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ require (
3838
github.com/aws/aws-sdk-go-v2/feature/rds/auth v1.6.15
3939
github.com/benbjohnson/clock v1.3.5
4040
github.com/bits-and-blooms/bloom/v3 v3.7.1
41+
github.com/bmizerany/perks v0.0.0-20230307044200-03f9df79da1e
4142
github.com/caio/go-tdigest/v4 v4.1.0
4243
github.com/ccoveille/go-safecast/v2 v2.0.0
4344
github.com/cenkalti/backoff/v5 v5.0.3
@@ -69,9 +70,11 @@ require (
6970
github.com/jackc/pgio v1.0.0
7071
github.com/jackc/pgx-zerolog v0.0.0-20230315001418-f978528409eb
7172
github.com/jackc/pgx/v5 v5.7.6
73+
github.com/jeroenrinzema/psql-wire v0.17.0
7274
github.com/jzelinskie/cobrautil/v2 v2.0.0-20240819150235-f7fe73942d0f
7375
github.com/jzelinskie/persistent v0.0.0-20230816160542-1205ef8f0e15
7476
github.com/jzelinskie/stringz v0.0.3
77+
github.com/lib/pq v1.10.9
7578
github.com/lithammer/fuzzysearch v1.1.8
7679
github.com/lthibault/jitterbug v2.0.0+incompatible
7780
github.com/mattn/go-isatty v0.0.20
@@ -81,9 +84,11 @@ require (
8184
github.com/muesli/roff v0.1.0
8285
github.com/ngrok/sqlmw v0.0.0-20220520173518-97c9c04efc79
8386
github.com/odigos-io/go-rtml v0.0.1
87+
github.com/ory/dockertest v3.3.5+incompatible
8488
github.com/ory/dockertest/v3 v3.12.0
8589
github.com/outcaste-io/ristretto v0.2.3
8690
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
91+
github.com/pganalyze/pg_query_go/v6 v6.1.0
8792
github.com/planetscale/vtprotobuf v0.6.1-0.20240917153116-6f2963f01587
8893
github.com/prometheus/client_golang v1.23.2
8994
github.com/prometheus/client_model v0.6.2
@@ -213,6 +218,7 @@ require (
213218
github.com/butuzov/mirror v1.3.0 // indirect
214219
github.com/catenacyber/perfsprint v0.10.0 // indirect
215220
github.com/ccojocar/zxcvbn-go v1.0.4 // indirect
221+
github.com/cenkalti/backoff v2.2.1+incompatible // indirect
216222
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
217223
github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d // indirect
218224
github.com/charithe/durationcheck v0.0.11 // indirect
@@ -290,6 +296,7 @@ require (
290296
github.com/gostaticanalysis/comment v1.5.0 // indirect
291297
github.com/gostaticanalysis/forcetypeassert v0.2.0 // indirect
292298
github.com/gostaticanalysis/nilerr v0.1.2 // indirect
299+
github.com/gotestyourself/gotestyourself v2.2.0+incompatible // indirect
293300
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
294301
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
295302
github.com/hashicorp/go-immutable-radix/v2 v2.1.0 // indirect
@@ -451,6 +458,7 @@ require (
451458
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
452459
gopkg.in/inf.v0 v0.9.1 // indirect
453460
gopkg.in/ini.v1 v1.67.0 // indirect
461+
gotest.tools v2.2.0+incompatible // indirect
454462
honnef.co/go/tools v0.6.1 // indirect
455463
k8s.io/api v0.34.1 // indirect
456464
k8s.io/apimachinery v0.34.1 // indirect

go.sum

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -779,6 +779,8 @@ github.com/bkielbasa/cyclop v1.2.3 h1:faIVMIGDIANuGPWH031CZJTi2ymOQBULs9H21HSMa5
779779
github.com/bkielbasa/cyclop v1.2.3/go.mod h1:kHTwA9Q0uZqOADdupvcFJQtp/ksSnytRMe8ztxG8Fuo=
780780
github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M=
781781
github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k=
782+
github.com/bmizerany/perks v0.0.0-20230307044200-03f9df79da1e h1:mWOqoK5jV13ChKf/aF3plwQ96laasTJgZi4f1aSOu+M=
783+
github.com/bmizerany/perks v0.0.0-20230307044200-03f9df79da1e/go.mod h1:ac9efd0D1fsDb3EJvhqgXRbFx7bs2wqZ10HQPeU8U/Q=
782784
github.com/bombsimon/wsl/v4 v4.7.0 h1:1Ilm9JBPRczjyUs6hvOPKvd7VL1Q++PL8M0SXBDf+jQ=
783785
github.com/bombsimon/wsl/v4 v4.7.0/go.mod h1:uV/+6BkffuzSAVYD+yGyld1AChO7/EuLrCF/8xTiapg=
784786
github.com/bombsimon/wsl/v5 v5.3.0 h1:nZWREJFL6U3vgW/B1lfDOigl+tEF6qgs6dGGbFeR0UM=
@@ -801,6 +803,8 @@ github.com/ccojocar/zxcvbn-go v1.0.4 h1:FWnCIRMXPj43ukfX000kvBZvV6raSxakYr1nzyNr
801803
github.com/ccojocar/zxcvbn-go v1.0.4/go.mod h1:3GxGX+rHmueTUMvm5ium7irpyjmm7ikxYFOSJB21Das=
802804
github.com/ccoveille/go-safecast/v2 v2.0.0 h1:+5eyITXAUj3wMjad6cRVJKGnC7vDS55zk0INzJagub0=
803805
github.com/ccoveille/go-safecast/v2 v2.0.0/go.mod h1:JIYA4CAR33blIDuE6fSwCp2sz1oOBahXnvmdBhOAABs=
806+
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
807+
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
804808
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
805809
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
806810
github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
@@ -1220,6 +1224,8 @@ github.com/gostaticanalysis/nilerr v0.1.2/go.mod h1:A19UHhoY3y8ahoL7YKz6sdjDtduw
12201224
github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M=
12211225
github.com/gostaticanalysis/testutil v0.5.0 h1:Dq4wT1DdTwTGCQQv3rl3IvD5Ld0E6HiY+3Zh0sUGqw8=
12221226
github.com/gostaticanalysis/testutil v0.5.0/go.mod h1:OLQSbuM6zw2EvCcXTz1lVq5unyoNft372msDY0nY5Hs=
1227+
github.com/gotestyourself/gotestyourself v2.2.0+incompatible h1:AQwinXlbQR2HvPjQZOmDhRqsv5mZf+Jb1RnSLxcqZcI=
1228+
github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY=
12231229
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
12241230
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
12251231
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 h1:QGLs/O40yoNK9vmy4rhUGBVyMf1lISBGtXRpsu/Qu/o=
@@ -1273,6 +1279,8 @@ github.com/jackc/pgx/v5 v5.7.6 h1:rWQc5FwZSPX58r1OQmkuaNicxdmExaEz5A2DO2hUuTk=
12731279
github.com/jackc/pgx/v5 v5.7.6/go.mod h1:aruU7o91Tc2q2cFp5h4uP3f6ztExVpyVv88Xl/8Vl8M=
12741280
github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
12751281
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
1282+
github.com/jeroenrinzema/psql-wire v0.17.0 h1:2U5ElqxglXbStaoh6liohLjxkWIjvUamgVwcr8a90Mk=
1283+
github.com/jeroenrinzema/psql-wire v0.17.0/go.mod h1:i7+aXJyIrgcXmbTkij68LdFs03w2f9kt18HIUo+eXmY=
12761284
github.com/jgautheron/goconst v1.8.2 h1:y0XF7X8CikZ93fSNT6WBTb/NElBu9IjaY7CCYQrCMX4=
12771285
github.com/jgautheron/goconst v1.8.2/go.mod h1:A0oxgBCHy55NQn6sYpO7UdnA9p+h7cPtoOZUmvNIako=
12781286
github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs=
@@ -1451,6 +1459,8 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW
14511459
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
14521460
github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U=
14531461
github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE=
1462+
github.com/neilotoole/slogt v1.1.0 h1:c7qE92sq+V0yvCuaxph+RQ2jOKL61c4hqS1Bv9W7FZE=
1463+
github.com/neilotoole/slogt v1.1.0/go.mod h1:RCrGXkPc/hYybNulqQrMHRtvlQ7F6NktNVLuLwk6V+w=
14541464
github.com/ngrok/sqlmw v0.0.0-20220520173518-97c9c04efc79 h1:Dmx8g2747UTVPzSkmohk84S3g/uWqd6+f4SSLPhLcfA=
14551465
github.com/ngrok/sqlmw v0.0.0-20220520173518-97c9c04efc79/go.mod h1:E26fwEtRNigBfFfHDWsklmo0T7Ixbg0XXgck+Hq4O9k=
14561466
github.com/nishanths/exhaustive v0.12.0 h1:vIY9sALmw6T/yxiASewa4TQcFsVYZQQRUQJhKRf3Swg=
@@ -1473,6 +1483,8 @@ github.com/opencontainers/runc v1.2.8 h1:RnEICeDReapbZ5lZEgHvj7E9Q3Eex9toYmaGBsb
14731483
github.com/opencontainers/runc v1.2.8/go.mod h1:cC0YkmZcuvr+rtBZ6T7NBoVbMGNAdLa/21vIElJDOzI=
14741484
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
14751485
github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0=
1486+
github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA=
1487+
github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs=
14761488
github.com/ory/dockertest/v3 v3.12.0 h1:3oV9d0sDzlSQfHtIaB5k6ghUCVMVLpAY8hwrqoCyRCw=
14771489
github.com/ory/dockertest/v3 v3.12.0/go.mod h1:aKNDTva3cp8dwOWwb9cWuX84aH5akkxXRvO7KCwWVjE=
14781490
github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=
@@ -1488,6 +1500,8 @@ github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2D
14881500
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y=
14891501
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
14901502
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
1503+
github.com/pganalyze/pg_query_go/v6 v6.1.0 h1:jG5ZLhcVgL1FAw4C/0VNQaVmX1SUJx71wBGdtTtBvls=
1504+
github.com/pganalyze/pg_query_go/v6 v6.1.0/go.mod h1:nvTHIuoud6e1SfrUaFwHqT0i4b5Nr+1rPWVds3B5+50=
14911505
github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY=
14921506
github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
14931507
github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
@@ -2510,6 +2524,7 @@ google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw
25102524
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
25112525
google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
25122526
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
2527+
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
25132528
google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
25142529
google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
25152530
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
@@ -2538,6 +2553,8 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
25382553
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
25392554
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
25402555
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
2556+
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
2557+
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
25412558
gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
25422559
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
25432560
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=

0 commit comments

Comments
 (0)