Skip to content

refactor: remove SELECT * - #6868

Draft
Flo4604 wants to merge 5 commits into
mainfrom
chore/explicit-database-projections
Draft

refactor: remove SELECT *#6868
Flo4604 wants to merge 5 commits into
mainfrom
chore/explicit-database-projections

Conversation

@Flo4604

@Flo4604 Flo4604 commented Jul 27, 2026

Copy link
Copy Markdown
Member

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

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>
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dashboard Error Error Jul 28, 2026 1:51pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
design Ignored Ignored Preview Jul 28, 2026 1:51pm

Request Review

chronark and others added 3 commits July 28, 2026 07:58
…-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
@vercel
vercel Bot temporarily deployed to Preview – dashboard July 28, 2026 10:42 Inactive
@Flo4604 Flo4604 changed the title refactor: require explicit database projections refactor: remove SELECT * Jul 28, 2026
@Flo4604
Flo4604 force-pushed the chore/explicit-database-projections branch from 15256b9 to e343830 Compare July 28, 2026 13:49
@Flo4604
Flo4604 marked this pull request as ready for review July 28, 2026 13:50
@Flo4604
Flo4604 marked this pull request as draft July 29, 2026 00:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants