refactor: remove SELECT * - #6868
Draft
Flo4604 wants to merge 5 commits into
Draft
Conversation
Replace production SELECT wildcards, sqlc.embed calls, and implicit dashboard relational projections with explicit columns. Add lint enforcement to prevent wildcard projections from returning. Amp-Thread-ID: https://ampcode.com/threads/T-019f89c3-834a-712b-a719-4f16dc8da52c Co-authored-by: Flo <floeikel@icloud.com>
…-ctrl-queries Amp-Thread-ID: https://ampcode.com/threads/T-019f985f-861b-71c8-859b-5d06b43a3afb Co-authored-by: Amp <amp@ampcode.com> # Conflicts: # pkg/db/bulk_key_auth_insert.sql_generated.go # pkg/db/identity_find_many.sql_generated.go # pkg/db/key_auth_insert.sql_generated.go # pkg/db/permission_list_by_role_id.sql_generated.go # pkg/db/querier_generated.go # pkg/db/queries/key_auth_insert.sql # pkg/db/ratelimit_namespace_find_by_id.sql_generated.go # pkg/db/ratelimit_namespaces_find_by_ids.sql_generated.go # pkg/db/role_find_many_by_id_or_name_with_perms.sql_generated.go # pkg/db/workspace_list.sql_generated.go # svc/ctrl/internal/db/querier_generated.go
…es' into chore/explicit-database-projections Amp-Thread-ID: https://ampcode.com/threads/T-019f89c3-834a-712b-a719-4f16dc8da52c # Conflicts: # pkg/db/acme_challenge_find_by_token.sql_generated.go # pkg/db/acme_user_find_by_workspace_id.sql_generated.go # pkg/db/app_find_with_settings.sql_generated.go # pkg/db/certificate_find_by_hostname.sql_generated.go # pkg/db/certificate_find_by_hostnames.sql_generated.go # pkg/db/cilium_network_policy_find_by_deployment_id.sql_generated.go # pkg/db/cilium_network_policy_find_by_environment_id.sql_generated.go # pkg/db/cilium_network_policy_find_by_environment_region_and_name.sql_generated.go # pkg/db/cilium_network_policy_find_by_id_and_region.sql_generated.go # pkg/db/cilium_network_policy_list_all_by_region.sql_generated.go # pkg/db/custom_domain_find_by_domain.sql_generated.go # pkg/db/custom_domain_find_by_domain_or_wildcard.sql_generated.go # pkg/db/custom_domain_find_by_id.sql_generated.go # pkg/db/custom_domain_find_by_workspace_and_domain.sql_generated.go # pkg/db/custom_domain_find_verified_by_domain_excluding_workspace.sql_generated.go # pkg/db/custom_domain_list_by_project_id.sql_generated.go # pkg/db/deployment_changes_list_all.sql_generated.go # pkg/db/deployment_find_by_k8s_name.sql_generated.go # pkg/db/deployment_list_by_environment_id_and_status.sql_generated.go # pkg/db/deployment_topology_find_by_deployment_and_region.sql_generated.go # pkg/db/deployment_topology_list_all_by_region.sql_generated.go # pkg/db/deployment_topology_list_desired.sql_generated.go # pkg/db/environment_find_by_project_id_and_slug.sql_generated.go # pkg/db/environment_list_preview.sql_generated.go # pkg/db/frontline_route_find_by_deployment_id_and_sticky.sql_generated.go # pkg/db/github_repo_connection_list_deploy_context.sql_generated.go # pkg/db/identity_find_many.sql_generated.go # pkg/db/identity_list_ratelimits_by_ids.sql_generated.go # pkg/db/ingress_route_find_by_fqdn.sql_generated.go # pkg/db/key_list_by_key_space_id.sql_generated.go # pkg/db/models_generated.go # pkg/db/network_policy_list_desired.sql_generated.go # pkg/db/openapi_spec_find_by_deployment.sql_generated.go # pkg/db/portal_branding_find.sql_generated.go # pkg/db/querier_generated.go # pkg/db/queries/acme_challenge_find_by_token.sql # pkg/db/queries/acme_user_find_by_workspace_id.sql # pkg/db/queries/app_find_with_settings.sql # pkg/db/queries/certificate_find_by_hostname.sql # pkg/db/queries/certificate_find_by_hostnames.sql # pkg/db/queries/cilium_network_policy_find_by_deployment_id.sql # pkg/db/queries/cilium_network_policy_find_by_environment_id.sql # pkg/db/queries/cilium_network_policy_find_by_environment_region_and_name.sql # pkg/db/queries/cilium_network_policy_find_by_id_and_region.sql # pkg/db/queries/cilium_network_policy_list_all_by_region.sql # pkg/db/queries/custom_domain_find_by_domain.sql # pkg/db/queries/custom_domain_find_by_domain_or_wildcard.sql # pkg/db/queries/custom_domain_find_by_id.sql # pkg/db/queries/custom_domain_find_by_workspace_and_domain.sql # pkg/db/queries/custom_domain_find_verified_by_domain_excluding_workspace.sql # pkg/db/queries/custom_domain_find_with_cert_by_domain.sql # pkg/db/queries/custom_domain_list_by_project_id.sql # pkg/db/queries/deployment_changes_list_all.sql # pkg/db/queries/deployment_find_by_k8s_name.sql # pkg/db/queries/deployment_list_by_environment_id_and_status.sql # pkg/db/queries/deployment_topology_find_by_deployment_and_region.sql # pkg/db/queries/deployment_topology_find_regions.sql # pkg/db/queries/deployment_topology_list_all_by_region.sql # pkg/db/queries/deployment_topology_list_desired.sql # pkg/db/queries/environment_find_by_project_id_and_slug.sql # pkg/db/queries/environment_list_preview.sql # pkg/db/queries/frontline_route_find_by_deployment_id_and_sticky.sql # pkg/db/queries/github_repo_connection_list_deploy_context.sql # pkg/db/queries/identity_find_many.sql # pkg/db/queries/identity_list_ratelimits_by_ids.sql # pkg/db/queries/ingress_route_find_by_fqdn.sql # pkg/db/queries/instances_find_by_deployment_id.sql # pkg/db/queries/instances_find_by_deployment_id_and_region_id.sql # pkg/db/queries/instances_find_by_pod_name.sql # pkg/db/queries/key_list_by_key_space_id.sql # pkg/db/queries/network_policy_list_desired.sql # pkg/db/queries/openapi_spec_find_by_deployment.sql # pkg/db/queries/permission_list_by_role_id.sql # pkg/db/queries/portal_branding_find.sql # pkg/db/queries/quota_find_by_workspace_id.sql # pkg/db/queries/ratelimit_namespace_find_by_id.sql # pkg/db/queries/region_find_by_id.sql # pkg/db/queries/role_find_many_by_id_or_name_with_perms.sql # pkg/db/queries/workspace_deploy_entitlement.sql # pkg/db/queries/workspace_list.sql # pkg/db/quota_find_by_workspace_id.sql_generated.go # pkg/db/ratelimit_namespace_find_by_id.sql_generated.go # pkg/db/role_find_many_by_id_or_name_with_perms.sql_generated.go # pkg/db/workspace_deploy_entitlement.sql_generated.go # pkg/db/workspace_list.sql_generated.go # svc/ctrl/internal/db/queries/custom_domain_find_with_cert_by_domain.sql
Amp-Thread-ID: https://ampcode.com/threads/T-019fa8f8-9ffc-75bb-999f-296c177e5440 Co-authored-by: Amp <amp@ampcode.com>
Flo4604
force-pushed
the
chore/explicit-database-projections
branch
from
July 28, 2026 13:49
15256b9 to
e343830
Compare
Flo4604
marked this pull request as ready for review
July 28, 2026 13:50
Flo4604
marked this pull request as draft
July 29, 2026 00:23
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.
Problem:
We should only select things that we need this makes it easier to remove columns if we only need to deploy things that actually depend on said thing.
Solution:
Write a wildcard linter and refactor all queries to stop removing *
Impact:
None
Testing:
Our tests should pass