Skip to content

feat(feedback): allow team members to view feedback by user id#3677

Merged
rebelchris merged 1 commit intomainfrom
eng-1000-allow-team-to-view-user-feedback-and-replies
Mar 9, 2026
Merged

feat(feedback): allow team members to view feedback by user id#3677
rebelchris merged 1 commit intomainfrom
eng-1000-allow-team-to-view-user-feedback-and-replies

Conversation

@rebelchris
Copy link
Contributor

@rebelchris rebelchris commented Mar 9, 2026

Summary

  • add a new userFeedbackByUserId(userId: ID!, first, after) GraphQL query for team-member support workflows
  • gate access with ctx.isTeamMember and return ForbiddenError for non-team callers
  • reuse the existing feedback connection pagination flow and include replies/user metadata for consistency

Key Decisions

  • introduced a dedicated team-only query instead of extending userFeedback to keep authorization boundaries explicit
  • used isTeamMember (not moderator role) because this is internal support tooling rather than moderation
  • kept read behavior aligned with existing patterns by using queryReadReplica and current connection helpers

Validation

  • added integration coverage for team success path, forbidden, unauthenticated, and pagination in __tests__/schema/feedback.ts
  • verified with targeted lint, focused integration tests, and build

Issue: ENG-1000

Closes ENG-1000


Created by Huginn 🐦‍⬛

@pulumi
Copy link

pulumi bot commented Mar 9, 2026

🍹 The Update (preview) for dailydotdev/api/prod (at 6d0de62) was successful.

✨ Neo Explanation

This is a standard full-stack application deployment rolling out a new build to all 7 services and 33 scheduled jobs on the production GKE cluster, with accompanying database and ClickHouse migration jobs being swapped in for the new release.

Root Cause Analysis

A new version of the application has been built and is being deployed across the entire production cluster. Every workload is being updated from the previous image version to the new one, with migration jobs for both the primary database and ClickHouse being rotated to match the new release.

Dependency Chain

The new container image version cascades uniformly to all 7 long-running service Deployments (main API, background workers, WebSocket server, private API, Temporal workers, personalized digest, and worker jobs) and all 33 CronJobs — updating both the container image tag and the version label/env var on each. Additionally, the two one-off database migration Jobs (PostgreSQL and ClickHouse) are replaced: the old migration jobs from the previous release are deleted, and new migration jobs tied to the new release are created to apply any schema changes before (or alongside) the rolling update.

Risk analysis

No stateful resources (databases, storage buckets, persistent volumes) are being modified or deleted. The migration jobs run against live databases, but this is the standard deployment pattern — they're scoped, single-run jobs (completions: 1, restartPolicy: Never). All service deployments perform rolling updates, avoiding downtime. The GCP credentials warning is a non-blocking diagnostic from the Pulumi GCP provider in this environment and does not affect the Kubernetes deployment.

Resource Changes

    Name                                                       Type                           Operation
~   vpc-native-agents-digest-cron                              kubernetes:batch/v1:CronJob    update
~   vpc-native-generate-search-invites-cron                    kubernetes:batch/v1:CronJob    update
~   vpc-native-update-achievement-rarity-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-hourly-notification-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-check-analytics-report-cron                     kubernetes:batch/v1:CronJob    update
~   vpc-native-update-tag-recommendations-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-private-deployment                              kubernetes:apps/v1:Deployment  update
~   vpc-native-post-analytics-clickhouse-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-user-profile-analytics-history-clickhouse-cron  kubernetes:batch/v1:CronJob    update
~   vpc-native-update-current-streak-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-update-source-public-threshold-cron             kubernetes:batch/v1:CronJob    update
~   vpc-native-squad-posts-analytics-refresh-cron              kubernetes:batch/v1:CronJob    update
+   vpc-native-api-clickhouse-migration-36ecc4d4               kubernetes:batch/v1:Job        create
~   vpc-native-update-views-cron                               kubernetes:batch/v1:CronJob    update
~   vpc-native-update-trending-cron                            kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-users-cron                         kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-gifted-plus-cron                          kubernetes:batch/v1:CronJob    update
~   vpc-native-expire-super-agent-trial-cron                   kubernetes:batch/v1:CronJob    update
~   vpc-native-personalized-digest-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-images-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-generic-referral-reminder-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-user-profile-analytics-clickhouse-cron          kubernetes:batch/v1:CronJob    update
~   vpc-native-calculate-top-readers-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-worker-job-deployment                           kubernetes:apps/v1:Deployment  update
~   vpc-native-bg-deployment                                   kubernetes:apps/v1:Deployment  update
~   vpc-native-clean-stale-user-transactions-cron              kubernetes:batch/v1:CronJob    update
~   vpc-native-post-analytics-history-day-clickhouse-cron      kubernetes:batch/v1:CronJob    update
~   vpc-native-temporal-deployment                             kubernetes:apps/v1:Deployment  update
~   vpc-native-daily-digest-cron                               kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-opportunities-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-sync-subscription-with-cio-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-user-profile-updated-sync-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-update-source-tag-view-cron                     kubernetes:batch/v1:CronJob    update
~   vpc-native-update-highlighted-views-cron                   kubernetes:batch/v1:CronJob    update
~   vpc-native-ws-deployment                                   kubernetes:apps/v1:Deployment  update
~   vpc-native-clean-zombie-user-companies-cron                kubernetes:batch/v1:CronJob    update
~   vpc-native-update-tags-str-cron                            kubernetes:batch/v1:CronJob    update
+   vpc-native-api-db-migration-36ecc4d4                       kubernetes:batch/v1:Job        create
-   vpc-native-api-clickhouse-migration-7a3f0d59               kubernetes:batch/v1:Job        delete
~   vpc-native-validate-active-users-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-personalized-digest-deployment                  kubernetes:apps/v1:Deployment  update
... and 5 other changes

@rebelchris rebelchris merged commit 1029c62 into main Mar 9, 2026
8 checks passed
@rebelchris rebelchris deleted the eng-1000-allow-team-to-view-user-feedback-and-replies branch March 9, 2026 09:46
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.

1 participant