Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
52e1e92
:seedling: Bump actions/stale from 10 to 10.2.0 (#2719)
dependabot[bot] May 26, 2026
bf99dec
:seedling: Bump github.com/containerd/containerd from 1.7.31 to 1.7.3…
dependabot[bot] May 26, 2026
254bfe0
:seedling: Bump docker/login-action from 4 to 4.1.0 (#2721)
dependabot[bot] May 26, 2026
860f575
:seedling: Bump golang.org/x/tools from 0.44.0 to 0.45.0 (#2723)
dependabot[bot] May 26, 2026
afa2e7a
:seedling: Bump requests from 2.33.1 to 2.34.0 (#2724)
dependabot[bot] May 26, 2026
67f22c2
:seedling: Bump regex from 2026.4.4 to 2026.5.9 (#2725)
dependabot[bot] May 26, 2026
1416535
:sparkles: graphql service endpoint for catalogd (#2100)
grokspawn May 26, 2026
45e7cc8
Merge branch 'main' into synchronize
May 27, 2026
f341bea
UPSTREAM: <carry>: Add OpenShift specific files
dtfranz Oct 26, 2023
e456536
UPSTREAM: <carry>: Add new tests for single/own namespaces install modes
camilamacedo86 Oct 6, 2025
f9eab76
UPSTREAM: <carry>: Upgrade OCP image from 4.20 to 4.21
camilamacedo86 Oct 13, 2025
303e21b
UPSTREAM: <carry>: [Default Catalog Tests] - Change logic to get ocp …
camilamacedo86 Oct 13, 2025
3b73748
UPSTREAM: <carry>: Update OCP catalogs to v4.21
tmshort Oct 13, 2025
4735697
UPSTREAM: <carry>: support singleown cases in disconnected
kuiwang02 Oct 16, 2025
35938be
UPSTREAM: <carry>: fix cases 81696 and 74618 for product code changes
kuiwang02 Oct 17, 2025
efcc214
UPSTREAM: <carry>: Define Default timeouts and apply their usage accr…
camilamacedo86 Oct 22, 2025
aa7cf3c
UPSTREAM: <carry>: Update to new feature-gate options in helm
tmshort Oct 22, 2025
ed72470
UPSTREAM: <carry>: Fix flake for single/own ns tests by ensuring uniq…
camilamacedo86 Oct 22, 2025
e9856aa
UPSTREAM: <carry>: [OTE]: Enhance single/own ns based on review comme…
camilamacedo86 Oct 24, 2025
6994b3b
UPSTREAM: <carry>: Update OwnSingle template to use spec.config.inlin…
kuiwang02 Nov 3, 2025
2d604e8
UPSTREAM: <carry>: [OTE]: Add webhook cleanup validation on extension…
camilamacedo86 Nov 4, 2025
c0a8b9f
UPSTREAM: <carry>: Add [OTP] to migrated cases
kuiwang02 Nov 7, 2025
020e1b3
UPSTREAM: <carry>: [OTE]: Upgrade dependencies used
camilamacedo86 Nov 5, 2025
fe27e84
UPSTREAM: <carry>: fix(OTE): fix OpenShift Kubernetes replace version…
camilamacedo86 Nov 10, 2025
b337f9e
UPSTREAM: <carry>: [Default Catalog Tests] Upgrade go 1.24.6 and depe…
camilamacedo86 Nov 11, 2025
121da90
UPSTREAM: <carry>: add disconnected environment support with custom p…
kuiwang02 Nov 12, 2025
917a7a1
UPSTREAM: <carry>: migrate jiazha test cases to OTE
jianzhangbjz Nov 14, 2025
6986297
UPSTREAM: <carry>: migrate clustercatalog case to ote
Xia-Zhao-rh Oct 17, 2025
e9be72e
UPSTREAM: <carry>: migrate olmv1 QE stress cases
kuiwang02 Nov 20, 2025
3acb7e6
UPSTREAM: <carry>: Use busybox/httpd to simulate probes
tmshort Nov 25, 2025
815d9de
UPSTREAM: <carry>: migrate olmv1 QE cases
Xia-Zhao-rh Nov 25, 2025
67ec0cf
UPSTREAM: <carry>: add agent for olmv1 qe cases
kuiwang02 Oct 21, 2025
302ae31
UPSTREAM: <carry>: Disable upstream PodDisruptionBudget
tmshort Dec 3, 2025
9e19d5e
UPSTREAM: <carry>: Add AGENTS.md for AI code contributions
rashmigottipati Dec 11, 2025
71551c1
UPSTREAM: <carry>: address review comments through addl prompts
rashmigottipati Dec 11, 2025
b2ee71b
UPSTREAM: <carry>: addressing some more review comments
rashmigottipati Dec 11, 2025
238f9c3
UPSTREAM: <carry>: remove DCO line
rashmigottipati Dec 11, 2025
3d131da
UPSTREAM: <carry>: migrate bandrade test cases to OTE
bandrade Nov 18, 2025
60bb7ea
UPSTREAM: <carry>: update metadata
bandrade Dec 3, 2025
82c9af4
UPSTREAM: <carry>: remove originalName
bandrade Dec 3, 2025
e38254f
UPSTREAM: <carry>: update 80458's timeout to 180s
jianzhangbjz Dec 8, 2025
1a46cfc
UPSTREAM: <carry>: update 83026 to specify the clustercatalog
jianzhangbjz Dec 15, 2025
544b251
UPSTREAM: <carry>: Update to golang 1.25 and ocp 4.22
oceanc80 Dec 18, 2025
c2e4302
UPSTREAM: <carry>: Use oc client for running e2e tests
pedjak Jan 13, 2026
77b5eff
UPSTREAM: <carry>: Run upstream e2e tests tagged with `@catalogd-update`
pedjak Jan 14, 2026
91419c1
UPSTREAM: <carry>: enhance case to make it more stable
kuiwang02 Jan 6, 2026
fbc3c45
UPSTREAM: <carry>: add service account to curl job
ehearne-redhat Jan 7, 2026
ed645ea
UPSTREAM: <carry>: move sa creation out of buildCurlJob()
ehearne-redhat Jan 8, 2026
02621f9
UPSTREAM: <carry>: comment out delete service account
ehearne-redhat Jan 9, 2026
264df3c
UPSTREAM: <carry>: move defercleanup for sa for LIFO
ehearne-redhat Jan 9, 2026
4adc83b
UPSTREAM: <carry>: add polling so job fully deleted before proceed
ehearne-redhat Jan 12, 2026
90a7a6c
UPSTREAM: <carry>: Revert "Merge pull request #594 from ehearne-redha…
sosiouxme Jan 20, 2026
d8ef74b
UPSTREAM: <carry>: Remove openshift-redhat-marketplace catalog tests
camilamacedo86 Jan 8, 2026
8d597d0
UPSTREAM: <carry>: config watchnamespace cases
kuiwang02 Jan 6, 2026
e841f78
UPSTREAM: <carry>: enhance ocp-79770
Xia-Zhao-rh Jan 26, 2026
a631edd
UPSTREAM: <carry>: upgrade version support case
kuiwang02 Jan 28, 2026
7826e7f
UPSTREAM: <carry>: Remove installed condition check from auth preflig…
Jan 30, 2026
849ef67
UPSTREAM: <carry>: Add openshift/api dependency
Jan 30, 2026
15d354b
UPSTREAM: <carry>: Add boxcutter specific preflight auth test
Jan 30, 2026
c683782
UPSTREAM: <carry>: adjust watchnamespace case based on change
kuiwang02 Feb 2, 2026
dcf92a5
UPSTREAM: <carry>: fix(ote): Use as operator-controller dep from root…
camilamacedo86 Feb 3, 2026
1c9c192
UPSTREAM: <carry>: add 83979 automation
bandrade Feb 2, 2026
e3bb502
UPSTREAM: <carry>: add 85889 automation
bandrade Feb 2, 2026
914cdab
UPSTREAM: <carry>: Update test-operator startup script to fix pod pro…
Feb 4, 2026
5272428
UPSTREAM: <carry>: Fix up own-namespace invalid configuration test
Feb 7, 2026
523a1f6
UPSTREAM: <carry>: Preflight tests use in-cluster catalog and bundles…
camilamacedo86 Feb 24, 2026
a787f2f
UPSTREAM: <carry>: adjust sa and permission test cases per new change…
kuiwang02 Feb 2, 2026
dcee88c
UPSTREAM: <carry>: Update OCP catalogs to v4.22
camilamacedo86 Feb 3, 2026
f512b7c
UPSTREAM: <carry>: chore(OTE and Default Catalog Tests) Update go and…
camilamacedo86 Feb 26, 2026
ca1b025
UPSTREAM: <carry>: fix 83026 for TP cluster
jianzhangbjz Feb 28, 2026
fe63550
UPSTREAM: <carry>: serviceAccount validation unified across all runtimes
kuiwang02 Mar 6, 2026
ae74ad5
UPSTREAM: <carry>: Fix OLMv1 test operator to listen on IPv6
stbenjam Mar 6, 2026
1b9813f
UPSTREAM: <carry>: Increase install timeout and add diagnostic loggin…
camilamacedo86 Mar 11, 2026
60928be
UPSTREAM: <carry>: add service account to curl job
ehearne-redhat Mar 2, 2026
0a766a3
UPSTREAM: <carry>: update OCP-75441 to support multi-arch
jianzhangbjz Mar 19, 2026
54ff14c
UPSTREAM: <carry>: deployment config cases
kuiwang02 Feb 6, 2026
0045d49
UPSTREAM: <carry>: Add OTE tests for OLMv1 DeploymentConfig support
tmshort Mar 11, 2026
d263102
UPSTREAM: <carry>: Update openshift/api and client-go
tmshort Mar 19, 2026
a14e611
UPSTREAM: <carry>: Add boxcutter tests
camilamacedo86 Mar 23, 2026
8e99ca6
UPSTREAM: <carry>: enhance QE cases
Xia-Zhao-rh Mar 17, 2026
64795db
UPSTREAM: <carry>: Update quay-operator version to one containing arm…
dtfranz Mar 24, 2026
605b4de
UPSTREAM: <carry>: verify volume/volumeMount override
kuiwang02 Mar 25, 2026
1e3f06e
UPSTREAM: <carry>: Add long-duration test script and documents
jianzhangbjz Mar 11, 2026
de98fda
UPSTREAM: <carry>: Update grpc in default-catalog-consistency tests
tmshort Mar 27, 2026
12c5715
UPSTREAM: <carry>: Rename ClusterExtensionRevision to ClusterObjectSe…
camilamacedo86 Mar 31, 2026
5c72e6e
UPSTREAM: <carry>: Skip incompatible operator test when Boxcutter use…
camilamacedo86 Mar 31, 2026
a0870d7
UPSTREAM: <carry>: add ocp-87557
bandrade Feb 8, 2026
dd43c49
UPSTREAM: <carry>: Add fgiudici as reviewer
fgiudici Mar 31, 2026
8758569
UPSTREAM: <carry>: Remove skip for incompatible operator check after …
camilamacedo86 Apr 1, 2026
08a6654
UPSTREAM: <carry>: Test empty affinity erasure and cleanup
kuiwang02 Apr 1, 2026
de97d70
UPSTREAM: <carry>: Fix boxcutter finalizer ResourceNames in prefligh…
camilamacedo86 Apr 9, 2026
89a143a
UPSTREAM: <carry>: Expand OTE docs with more comprehensive details
camilamacedo86 Apr 15, 2026
8b36b3b
UPSTREAM: <carry>: Disable upstream TLSProfile tests
tmshort Apr 18, 2026
cc14c48
UPSTREAM: <carry>: OTE: Simplify by remove option to configure tests …
camilamacedo86 Apr 20, 2026
15dffb0
UPSTREAM: <carry>: OTE - Make OTE local output easier to read
camilamacedo86 Apr 21, 2026
099bd3d
UPSTREAM: <carry>: remove dead e2e registry push job and related vari…
joelanford Apr 29, 2026
d83003a
UPSTREAM: <carry>: OCPBUGS-62517: Set replicas=1, PDB, and pod anti-a…
tmshort Apr 23, 2026
6aa0a57
UPSTREAM: <carry>: fix(test): drop blocking namespace-deletion wait b…
tmshort May 4, 2026
0084df8
UPSTREAM: <carry>: Fix downstream e2e test invocation
tmshort May 18, 2026
61125b3
UPSTREAM: <carry>: Delete openshift/registry.Dockerfile
joelanford May 19, 2026
60e1f60
UPSTREAM: <carry>: Remove test-experimenal-e2e
tmshort May 20, 2026
8952773
UPSTREAM: <carry>: Update readme Default Catalog Tests
camilamacedo86 May 27, 2026
297a627
UPSTREAM: <drop>: go mod vendor
May 27, 2026
9b1eee1
UPSTREAM: <drop>: remove upstream GitHub configuration
May 27, 2026
4582578
UPSTREAM: <drop>: configure the commit-checker
May 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 19 additions & 4 deletions cmd/catalogd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -365,12 +365,27 @@ func run(ctx context.Context) error {
return err
}

localStorage = &storage.LocalDirV1{
RootDir: storeDir,
RootURL: baseStorageURL,
EnableMetasHandler: features.CatalogdFeatureGate.Enabled(features.APIV1MetasHandler),
var metasMode storage.MetasHandlerMode
if features.CatalogdFeatureGate.Enabled(features.APIV1MetasHandler) {
metasMode = storage.MetasHandlerEnabled
} else {
metasMode = storage.MetasHandlerDisabled
}

var graphqlMode storage.GraphQLQueriesMode
if features.CatalogdFeatureGate.Enabled(features.GraphQLCatalogQueries) {
graphqlMode = storage.GraphQLQueriesEnabled
} else {
graphqlMode = storage.GraphQLQueriesDisabled
}

localStorage = storage.NewLocalDirV1(
storeDir,
baseStorageURL,
metasMode,
graphqlMode,
)

// Config for the catalogd web server
catalogServerConfig := serverutil.CatalogServerConfig{
ExternalAddr: cfg.externalAddr,
Expand Down
212 changes: 212 additions & 0 deletions docs/draft/howto/catalog-queries-graphql-endpoint.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
# Catalog queries using GraphQL

!!! warning "Alpha Feature"
The GraphQL endpoint is an **alpha feature** controlled by the `GraphQLCatalogQueries` feature gate.
The API and behavior may change in future releases.

After you [add a catalog of extensions](../../tutorials/add-catalog.md) to your cluster, you can query the catalog using GraphQL for flexible, structured queries with precise field selection.

## Prerequisites

* You have added a ClusterCatalog of extensions, such as [OperatorHub.io](https://operatorhub.io), to your cluster.
* The `GraphQLCatalogQueries` feature gate is enabled in catalogd.

!!! note
By default, Catalogd is installed with TLS enabled for the catalog webserver.
The following examples will show this default behavior, but for simplicity's sake will ignore TLS verification in the curl commands using the `-k` flag.

You also need to port forward the catalog server service:

``` terminal
kubectl -n olmv1-system port-forward svc/catalogd-service 8443:443
```

## GraphQL Endpoint

The GraphQL endpoint is available at:

```
https://localhost:8443/catalogs/<catalog-name>/api/v1/graphql
```
Comment on lines +28 to +30
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot May 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add a language identifier to the fenced endpoint code block.

This fence is missing a language tag and will trip markdown lint (MD040).

Suggested fix
-```
+```text
 https://localhost:8443/catalogs/<catalog-name>/api/v1/graphql
</details>

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 markdownlint-cli2 (0.22.1)</summary>

[warning] 28-28: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @docs/draft/howto/catalog-queries-graphql-endpoint.md around lines 28 - 30,
The fenced code block showing the GraphQL endpoint URL is missing a language
identifier which triggers MD040; update the fence around the URL snippet (the
triple-backtick block containing
"https://localhost:8443/catalogs//api/v1/graphql") to include a
language tag such as "text" (i.e., change the opening totext) so the
markdown linter treats it correctly.


</details>

<!-- fingerprinting:phantom:triton:hawk -->

<!-- This is an auto-generated reply by CodeRabbit -->

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a nit. If we consider it actionable, it will be during the phase where we promote docs from the draft phase.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@grokspawn, understood — happy to defer this until the doc graduates from draft. Would you like me to open a follow-up issue to track this (and any other lint/polish items) for when the docs are promoted?


All queries must be sent as **HTTP POST** requests with a JSON body containing a `query` field.

## Understanding GraphQL Field Names

**IMPORTANT**: GraphQL field names are automatically generated from catalog schema names.

### Naming Convention

Schema names are converted to GraphQL field names using this process:

1. Remove dots and special characters: `olm.bundle` → `olmbundle`
2. Convert to lowercase: `OLM.Bundle` → `olmbundle`
3. Append 's' for pluralization: `olmbundle` → `olmbundles`

**Examples:**

| Schema Name | GraphQL Field Name |
|-------------|-------------------|
| `olm.bundle` | `olmbundles` |
| `olm.package` | `olmpackages` |
| `olm.channel` | `olmchannels` |
| `helm.chart` | `helmcharts` |

### Discovering Available Fields

To find the exact field names available for your catalog, use GraphQL introspection:

``` terminal
curl -k -X POST 'https://localhost:8443/catalogs/operatorhubio/api/v1/graphql' \
-H "Content-Type: application/json" \
-d '{
"query": "{ __schema { queryType { fields { name description } } } }"
}' | jq
```

This returns all available query fields for the catalog, including the automatically generated schema-based fields.

!!! warning "Pluralization Limitations"
The current implementation appends 's' to schema names for pluralization. This may not produce grammatically correct English plurals in all cases (e.g., `index` → `indexs` instead of `indices`). When creating custom schemas, use singular nouns that pluralize well with a simple 's' suffix.

## Basic Queries

### Catalog Summary

Get an overview of schemas and object counts in the catalog:

``` terminal
curl -k -X POST 'https://localhost:8443/catalogs/operatorhubio/api/v1/graphql' \
-H "Content-Type: application/json" \
-d '{
"query": "{ summary { totalSchemas schemas { name totalObjects totalFields } } }"
}' | jq
```

### Query Bundles

List bundles with specific fields:

``` terminal
curl -k -X POST 'https://localhost:8443/catalogs/operatorhubio/api/v1/graphql' \
-H "Content-Type: application/json" \
-d '{
"query": "{ olmbundles(limit: 5, offset: 0) { name package image } }"
}' | jq
```

### Query Packages

List packages with metadata:

``` terminal
curl -k -X POST 'https://localhost:8443/catalogs/operatorhubio/api/v1/graphql' \
-H "Content-Type: application/json" \
-d '{
"query": "{ olmpackages(limit: 10) { name description defaultChannel } }"
}' | jq
```

### Query Channels

List channels:

``` terminal
curl -k -X POST 'https://localhost:8443/catalogs/operatorhubio/api/v1/graphql' \
-H "Content-Type: application/json" \
-d '{
"query": "{ olmchannels { name package entries } }"
}' | jq
```

## Advanced Queries

### Pagination

All schema-based queries support pagination via `limit` and `offset` arguments:

``` terminal
curl -k -X POST 'https://localhost:8443/catalogs/operatorhubio/api/v1/graphql' \
-H "Content-Type: application/json" \
-d '{
"query": "{ olmbundles(limit: 10, offset: 20) { name } }"
}' | jq
```

### Nested Field Selection

Select only the fields you need, including array-nested objects:

``` terminal
curl -k -X POST 'https://localhost:8443/catalogs/operatorhubio/api/v1/graphql' \
-H "Content-Type: application/json" \
-d '{
"query": "{ olmpackages { name channels { name entries { name } } } }"
}' | jq
```

**Note:** Non-array nested fields (like `icon`) are returned as JSON strings. To access their data, request the field as a scalar and parse the JSON:

``` terminal
curl -k -X POST 'https://localhost:8443/catalogs/operatorhubio/api/v1/graphql' \
-H "Content-Type: application/json" \
-d '{
"query": "{ olmpackages { name icon } }"
}' | jq '.data.olmpackages[] | .icon | fromjson'
```

### Complex Bundle Properties

Query bundle properties with their type and value fields:

``` terminal
curl -k -X POST 'https://localhost:8443/catalogs/operatorhubio/api/v1/graphql' \
-H "Content-Type: application/json" \
-d '{
"query": "{ olmbundles(limit: 5) { name properties { type value } } }"
}' | jq
```

**Note:** The `properties` field contains an array of objects, each with a `type` string and a `value` field that can contain complex nested data. GraphQL will return the full JSON structure for the `value` field.

## Comparing GraphQL vs Metas Endpoint

| Feature | GraphQL (`/api/v1/graphql`) | Metas (`/api/v1/metas`) |
|---------|---------------------------|------------------------|
| Field selection | Precise - request only needed fields | All fields always returned |
| Query complexity | Rich queries with nested objects | Simple parameter-based filtering |
| Response size | Minimal - only requested data | Full objects always returned |
| Schema discovery | Introspection built-in | External documentation needed |
| Pagination | Built-in `limit` and `offset` | Manual implementation required |
| HTTP Method | POST only | GET supported |
| Feature status | Alpha (feature gate required) | Stable |

**When to use GraphQL:**
- You need specific fields from large objects
- You want to query related data in a single request
- You need structured, typed responses
- You're building a UI or client that benefits from precise data fetching

**When to use Metas endpoint:**
- You need simple, stable API
- You're doing basic filtering by schema/package/name
- You want to use GET requests for caching
- You need guaranteed API stability

## Limitations

1. **Pluralization**: Schema names are pluralized by appending 's', which may not be grammatically correct for all words
2. **Schema naming**: Full schema names (including namespace/prefix) are preserved in field names (`olm.bundle` → `olmbundles`, not `bundles`)
3. **POST only**: GraphQL endpoint only accepts POST requests, unlike the metas endpoint which supports GET
4. **Alpha stability**: API may change in future releases while in alpha

## Enabling the GraphQL Feature

The GraphQL endpoint is controlled by the `GraphQLCatalogQueries` feature gate. To enable it:

``` yaml
args:
- --feature-gates=GraphQLCatalogQueries=true
```

See [enable webhook support](enable-webhook-support.md) for more details on configuring feature gates.
11 changes: 6 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ require (
github.com/Masterminds/semver/v3 v3.5.0
github.com/blang/semver/v4 v4.0.0
github.com/cert-manager/cert-manager v1.20.2
github.com/containerd/containerd v1.7.31
github.com/containerd/containerd v1.7.32
github.com/cucumber/godog v0.15.1
github.com/evanphx/json-patch v5.9.11+incompatible
github.com/fsnotify/fsnotify v1.10.1
Expand All @@ -17,6 +17,7 @@ require (
github.com/google/go-containerregistry v0.21.5
github.com/google/renameio/v2 v2.0.2
github.com/gorilla/handlers v1.5.2
github.com/graphql-go/graphql v0.8.1
github.com/klauspost/compress v1.18.6
github.com/opencontainers/go-digest v1.0.0
github.com/opencontainers/image-spec v1.1.1
Expand All @@ -33,7 +34,7 @@ require (
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f
golang.org/x/mod v0.36.0
golang.org/x/sync v0.20.0
golang.org/x/tools v0.44.0
golang.org/x/tools v0.45.0
helm.sh/helm/v3 v3.21.0
k8s.io/api v0.35.4
k8s.io/apiextensions-apiserver v0.35.4
Expand Down Expand Up @@ -230,11 +231,11 @@ require (
go.podman.io/storage v1.62.0 // indirect
go.yaml.in/yaml/v2 v2.4.4 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/crypto v0.50.0 // indirect
golang.org/x/net v0.53.0 // indirect
golang.org/x/crypto v0.51.0 // indirect
golang.org/x/net v0.54.0 // indirect
golang.org/x/oauth2 v0.36.0 // indirect
golang.org/x/sys v0.44.0 // indirect
golang.org/x/term v0.42.0 // indirect
golang.org/x/term v0.43.0 // indirect
golang.org/x/text v0.37.0 // indirect
golang.org/x/time v0.15.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
Expand Down
22 changes: 12 additions & 10 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ github.com/clipperhouse/uax29/v2 v2.6.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsV
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/containerd/cgroups/v3 v3.1.2 h1:OSosXMtkhI6Qove637tg1XgK4q+DhR0mX8Wi8EhrHa4=
github.com/containerd/cgroups/v3 v3.1.2/go.mod h1:PKZ2AcWmSBsY/tJUVhtS/rluX0b1uq1GmPO1ElCmbOw=
github.com/containerd/containerd v1.7.31 h1:jn3IMuTV4Bb1Uwb0MFPW2ASJAD3W1lh6QqqZHIZwDh4=
github.com/containerd/containerd v1.7.31/go.mod h1:jdwD6s/BhV4XVJGrvtziNPVA+83n66TwptVaPKprq4E=
github.com/containerd/containerd v1.7.32 h1:S54xuVcPxeLaYgaRABtpJ2VyVUVsy0IGf7qHBs+sbY8=
github.com/containerd/containerd v1.7.32/go.mod h1:jdwD6s/BhV4XVJGrvtziNPVA+83n66TwptVaPKprq4E=
github.com/containerd/containerd/api v1.10.0 h1:5n0oHYVBwN4VhoX9fFykCV9dF1/BvAXeg2F8W6UYq1o=
github.com/containerd/containerd/api v1.10.0/go.mod h1:NBm1OAk8ZL+LG8R0ceObGxT5hbUYj7CzTmR3xh0DlMM=
github.com/containerd/continuity v0.4.5 h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4=
Expand Down Expand Up @@ -280,6 +280,8 @@ github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5T
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA=
github.com/gosuri/uitable v0.0.4 h1:IG2xLKRvErL3uhY6e1BylFzG+aJiwQviDDTfOKeKTpY=
github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo=
github.com/graphql-go/graphql v0.8.1 h1:p7/Ou/WpmulocJeEx7wjQy611rtXGQaAcXGqanuMMgc=
github.com/graphql-go/graphql v0.8.1/go.mod h1:nKiHzRM0qopJEwCITUuIsxk9PlVlwIiiI8pnJEhordQ=
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA=
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20210315223345-82c243799c99 h1:JYghRBlGCZyCF2wNUJ8W0cwaQdtpcssJ4CgC406g+WU=
Expand Down Expand Up @@ -603,8 +605,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M=
golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI=
golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q=
golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI=
golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM=
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80=
Expand Down Expand Up @@ -636,8 +638,8 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA=
golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs=
golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w=
golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs=
golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q=
Expand Down Expand Up @@ -682,8 +684,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=
golang.org/x/term v0.42.0 h1:UiKe+zDFmJobeJ5ggPwOshJIVt6/Ft0rcfrXZDLWAWY=
golang.org/x/term v0.42.0/go.mod h1:Dq/D+snpsbazcBG5+F9Q1n2rXV8Ma+71xEjTRufARgY=
golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4=
golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
Expand All @@ -709,8 +711,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c=
golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI=
golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8=
golang.org/x/tools v0.45.0/go.mod h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0=
golang.org/x/tools/go/expect v0.1.1-deprecated h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnpsEAGHaNy0n/rJM=
golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY=
golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM=
Expand Down
Loading