Skip to content

Facets across the rest of the resources#441

Draft
thokra-nav wants to merge 4 commits into
mainfrom
facets
Draft

Facets across the rest of the resources#441
thokra-nav wants to merge 4 commits into
mainfrom
facets

Conversation

@thokra-nav
Copy link
Copy Markdown
Contributor

No description provided.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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 filter inputs on several Team.<resource> connection fields and implements per-resource filter models.
  • Introduces facets fields on multiple connection types and adds shared facet item types (EnvironmentFacetItem, BooleanFacetItem).
  • Refactors connection return types in Go to custom *XConnection wrappers that carry allItems + filter for 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 by inUse, the returned facets counts 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 the InUse condition into matchesFacetFilter (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 by inUse, the facets counts can include configs that would not be returned in nodes, which conflicts with the schema description that facets respect the current filter. Consider incorporating InUse into matchesFacetFilter or filtering the input slice with the same predicate used for listing.

Comment thread internal/workload/secret/facets.go Outdated
Comment thread internal/workload/secret/facets.go
Comment thread internal/workload/config/facets.go
Comment thread internal/workload/secret/sortfilter.go
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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

Comment thread internal/workload/secret/facets.go Outdated
Comment thread internal/workload/config/facets.go Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants