Skip to content

feat(feeds): support array content curation in channel feed#3666

Merged
idoshamun merged 2 commits intomainfrom
eng-963-channel-feed-should-support-an-array-of-content-curation
Mar 4, 2026
Merged

feat(feeds): support array content curation in channel feed#3666
idoshamun merged 2 commits intomainfrom
eng-963-channel-feed-should-support-an-array-of-content-curation

Conversation

@idoshamun
Copy link
Member

Summary

  • update channelFeed GraphQL schema to accept contentCuration: [String!] instead of a single string
  • update ChannelFeedArgs and resolver mapping to forward multiple values directly to feed service via allowed_content_curations
  • preserve existing behavior by omitting allowed_content_curations when contentCuration is empty or not provided

Tests

  • update query channelFeed test query variable to [String!]
  • add coverage for forwarding multiple content curations
  • add coverage for empty and omitted contentCuration cases

Key decisions

  • keep the change scoped to daily-api only because feed service already supports allowed_content_curations: []string
  • intentionally allow schema break for channelFeed arg shape as requested (not in production)
  • simplify test setup using a shared helper and table-driven assertions to reduce duplication

Closes ENG-963


Created by Huginn 🐦‍⬛

@pulumi
Copy link

pulumi bot commented Mar 4, 2026

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

✨ Neo Explanation

This is a standard application deployment rolling out a new build across all 7 services and 34 cron jobs, along with fresh database and ClickHouse migration jobs to apply any schema changes included in the new version.

Root Cause Analysis

A new version of the application code has been deployed. Every Kubernetes resource in the cluster is being updated to point to the new container image, replacing the previous build across all services.

Dependency Chain

The new application version cascades uniformly across the entire stack:

  • 7 long-running Deployments (API, background workers, WebSocket, private, Temporal, etc.) are rolling out the new image, which Kubernetes will handle as a zero-downtime rolling update.
  • 34 CronJobs are updated so their next scheduled executions will use the new image.
  • 2 one-time migration Jobs (Postgres DB migration and ClickHouse migration) tied to the previous build are being deleted, and 2 new equivalent jobs for the new build are being created — this is the standard pattern for running schema migrations on each deployment.

Risk analysis

No stateful resources (databases, storage buckets, persistent volumes) are being replaced or deleted. The migration Jobs involve schema changes against the database and ClickHouse, which carry inherent risk if the migrations are destructive or incompatible, but this is expected behavior for any application deployment that includes schema changes. Deployments use rolling updates, so no downtime is expected for running services.

There is a minor warning about missing GCP credentials for the provider, but this does not block the Kubernetes changes.

Resource Changes

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

@idoshamun idoshamun merged commit 8cd8421 into main Mar 4, 2026
9 checks passed
@idoshamun idoshamun deleted the eng-963-channel-feed-should-support-an-array-of-content-curation branch March 4, 2026 13:31
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