Facets across the rest of the resources#441
Draft
thokra-nav wants to merge 4 commits into
Draft
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Extends the GraphQL API to support filtering and facet counts (distributions) across multiple resource connections, enabling UI/clients to build “inventory”-style filtering experiences with counts that ignore pagination.
Changes:
- Adds
filterinputs on severalTeam.<resource>connection fields and implements per-resource filter models. - Introduces
facetsfields on multiple connection types and adds shared facet item types (EnvironmentFacetItem,BooleanFacetItem). - Refactors connection return types in Go to custom
*XConnectionwrappers that carryallItems + filterfor facet computation.
Reviewed changes
Copilot reviewed 50 out of 64 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| internal/workload/secret/sortfilter.go | Adds environment filtering to secret list filtering |
| internal/workload/secret/queries.go | Wraps secret pagination connections for facets |
| internal/workload/secret/models.go | Introduces SecretConnection wrapper + facets/filter fields |
| internal/workload/secret/facets.go | Adds secret facet computation (env + inUse) |
| internal/workload/config/sortfilter.go | Adds environment filtering to config list filtering |
| internal/workload/config/queries.go | Wraps config pagination connections for facets |
| internal/workload/config/models.go | Introduces ConfigConnection wrapper + facets/filter fields |
| internal/workload/config/facets.go | Adds config facet computation (env + inUse) |
| internal/persistence/valkey/sortfilter.go | Adds Valkey filtering (name/env/tier) via SortFilter |
| internal/persistence/valkey/queries.go | Adds filter support and returns wrapped Valkey connection |
| internal/persistence/valkey/models.go | Adds ValkeyFilter, wrapped connection, and facet models |
| internal/persistence/valkey/facets.go | Adds Valkey facet computation (env + tier) |
| internal/persistence/postgres/sortfilter.go | Adds Postgres instance filtering via SortFilter |
| internal/persistence/postgres/queries.go | Adds filter support and returns wrapped Postgres connection |
| internal/persistence/postgres/models.go | Adds PostgresInstanceFilter, wrapped connection, and facets |
| internal/persistence/postgres/facets.go | Adds Postgres facets (env/state/HA/version) computation |
| internal/persistence/opensearch/sortfilter.go | Adds OpenSearch filtering (name/env/tier) via SortFilter |
| internal/persistence/opensearch/queries.go | Adds filter support and returns wrapped OpenSearch connection |
| internal/persistence/opensearch/models.go | Adds OpenSearchFilter, wrapped connection, and facets |
| internal/persistence/opensearch/facets.go | Adds OpenSearch facet computation (env + tier) |
| internal/persistence/kafkatopic/sortfilter.go | Adds Kafka topic filtering (name/env/pool) via SortFilter |
| internal/persistence/kafkatopic/queries.go | Adds filter support and returns wrapped Kafka topic connection |
| internal/persistence/kafkatopic/models.go | Adds KafkaTopicFilter, wrapped connection, and facets |
| internal/persistence/kafkatopic/facets.go | Adds Kafka topic facet computation (env + pool) |
| internal/persistence/bucket/sortfilter.go | Adds bucket filtering (name/env) via SortFilter |
| internal/persistence/bucket/queries.go | Adds filter support and returns wrapped bucket connection |
| internal/persistence/bucket/models.go | Adds BucketFilter, wrapped connection, and facets |
| internal/persistence/bucket/facets.go | Adds bucket facet computation (env) |
| internal/persistence/bigquery/sortfilter.go | Adds BigQuery dataset filtering (name/env) via SortFilter |
| internal/persistence/bigquery/queries.go | Adds filter support and returns wrapped BigQuery connection |
| internal/persistence/bigquery/models.go | Adds BigQueryDatasetFilter, wrapped connection, and facets |
| internal/persistence/bigquery/facets.go | Adds BigQuery dataset facet computation (env) |
| internal/graph/valkey.resolvers.go | Adds filter arg + facets resolver for ValkeyConnection |
| internal/graph/secret.resolvers.go | Returns SecretConnection and adds facets resolver |
| internal/graph/postgres.resolvers.go | Adds filter arg + facets resolver for Postgres connections |
| internal/graph/opensearch.resolvers.go | Adds filter arg + facets resolver for OpenSearchConnection |
| internal/graph/kafka.resolvers.go | Adds filter arg + facets resolver for KafkaTopicConnection |
| internal/graph/config.resolvers.go | Returns ConfigConnection and adds facets resolver |
| internal/graph/bucket.resolvers.go | Adds filter arg + facets resolver for BucketConnection |
| internal/graph/bigquery.resolvers.go | Adds filter arg + facets resolver for BigQueryDatasetConnection |
| internal/graph/schema/valkey.graphqls | Adds filter arg + facets types/fields for Valkey |
| internal/graph/schema/secret.graphqls | Adds environments filter + facets field/type for secrets |
| internal/graph/schema/postgres.graphqls | Adds Postgres filter input + facets field/type |
| internal/graph/schema/opensearch.graphqls | Adds OpenSearch filter input + facets field/type |
| internal/graph/schema/kafka.graphqls | Adds Kafka topic filter input + facets field/type |
| internal/graph/schema/facets.graphqls | Adds shared EnvironmentFacetItem/BooleanFacetItem types |
| internal/graph/schema/config.graphqls | Adds environments filter + facets field/type for configs |
| internal/graph/schema/bucket.graphqls | Adds bucket filter input + facets field/type |
| internal/graph/schema/bigquery.graphqls | Adds BigQuery filter input + facets field/type |
| internal/graph/model/facets.go | Adds Go models for shared facet item types |
| internal/graph/gengql/valkey.generated.go | Regenerated schema bindings for valkey facets/filter |
| internal/graph/gengql/teams.generated.go | Regenerated Team resolver signatures (filters + connections) |
| internal/graph/gengql/secret.generated.go | Regenerated schema bindings for secret facets/filter |
| internal/graph/gengql/opensearch.generated.go | Regenerated schema bindings for opensearch facets/filter |
| internal/graph/gengql/kafka.generated.go | Regenerated schema bindings for kafka facets/filter |
| internal/graph/gengql/jobs.generated.go | Regenerated workload resolver return types |
| internal/graph/gengql/facets.generated.go | Generated bindings for shared facet item types |
| internal/graph/gengql/config.generated.go | Regenerated schema bindings for config facets/filter |
| internal/graph/gengql/complexity.go | Updates complexity function signatures for new filter args |
| internal/graph/gengql/bucket.generated.go | Regenerated schema bindings for bucket facets/filter |
| internal/graph/gengql/bigquery.generated.go | Regenerated schema bindings for bigquery facets/filter |
| internal/graph/gengql/applications.generated.go | Regenerated workload resolver return types |
Files not reviewed (14)
- internal/graph/gengql/applications.generated.go: Language not supported
- internal/graph/gengql/bigquery.generated.go: Language not supported
- internal/graph/gengql/bucket.generated.go: Language not supported
- internal/graph/gengql/complexity.go: Language not supported
- internal/graph/gengql/config.generated.go: Language not supported
- internal/graph/gengql/facets.generated.go: Language not supported
- internal/graph/gengql/jobs.generated.go: Language not supported
- internal/graph/gengql/kafka.generated.go: Language not supported
- internal/graph/gengql/opensearch.generated.go: Language not supported
- internal/graph/gengql/postgres.generated.go: Language not supported
- internal/graph/gengql/root_.generated.go: Language not supported
- internal/graph/gengql/secret.generated.go: Language not supported
- internal/graph/gengql/teams.generated.go: Language not supported
- internal/graph/gengql/valkey.generated.go: Language not supported
Comments suppressed due to low confidence (2)
internal/workload/secret/facets.go:66
- Secret facet computation does not apply
filter.InUse. This means when callers filter secrets byinUse, the returnedfacetscounts can include secrets that would not be included in the filtered result set, which contradicts the schema description that facets “respect the current filter”. Consider incorporating theInUsecondition intomatchesFacetFilter(or filtering the input slice using the same filter logic used for listing).
internal/workload/config/facets.go:66 - Config facet computation does not apply
filter.InUse. When callers filter configs byinUse, thefacetscounts can include configs that would not be returned innodes, which conflicts with the schema description that facets respect the current filter. Consider incorporatingInUseintomatchesFacetFilteror filtering the input slice with the same predicate used for listing.
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 53 out of 67 changed files in this pull request and generated 2 comments.
Files not reviewed (14)
- internal/graph/gengql/applications.generated.go: Language not supported
- internal/graph/gengql/bigquery.generated.go: Language not supported
- internal/graph/gengql/bucket.generated.go: Language not supported
- internal/graph/gengql/complexity.go: Language not supported
- internal/graph/gengql/config.generated.go: Language not supported
- internal/graph/gengql/facets.generated.go: Language not supported
- internal/graph/gengql/jobs.generated.go: Language not supported
- internal/graph/gengql/kafka.generated.go: Language not supported
- internal/graph/gengql/opensearch.generated.go: Language not supported
- internal/graph/gengql/postgres.generated.go: Language not supported
- internal/graph/gengql/root_.generated.go: Language not supported
- internal/graph/gengql/secret.generated.go: Language not supported
- internal/graph/gengql/teams.generated.go: Language not supported
- internal/graph/gengql/valkey.generated.go: Language not supported
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.