Skip to content

feat: add collections sitemap quality gate#3763

Merged
idoshamun merged 3 commits intomainfrom
eng-1200-seo-p1-add-collectionsxml-sitemap-with-quality-gate
Mar 31, 2026
Merged

feat: add collections sitemap quality gate#3763
idoshamun merged 3 commits intomainfrom
eng-1200-seo-p1-add-collectionsxml-sitemap-with-quality-gate

Conversation

@idoshamun
Copy link
Copy Markdown
Member

Summary

  • add a dedicated collections.xml sitemap endpoint for qualified collection posts
  • include the new sitemap in the sitemap index
  • add integration coverage for the collection sitemap quality gate and index entry

Key decisions

  • qualify collections with visible = true, upvotes >= 1, and at least 3 collectionSources
  • keep the sitemap unpaginated because the expected launch volume is well below the sitemap limit
  • reuse the shared XML sitemap streaming helper to keep the endpoint implementation consistent with the existing sitemap routes

Closes ENG-1200


Created by Huginn 🐦‍⬛

@pulumi
Copy link
Copy Markdown

pulumi Bot commented Mar 31, 2026

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

✨ Neo Explanation

This is a standard application version rollout: all services and cron jobs are being updated to the latest build, with new database and ClickHouse migration jobs created to apply any schema changes included in this release.

Root Cause Analysis

A new version of the application has been built and is being deployed to production. Every workload in the cluster is being updated to run the new container image for the latest code change.

Dependency Chain

The new application version cascades uniformly across all Kubernetes resources:

  • 7 Deployments (API, background workers, WebSocket, Temporal, private, personalized digest, worker jobs) are rolling out the new container image.
  • 38 CronJobs are updated to reference the new image so future scheduled runs use the latest code.
  • 2 one-time migration Jobs (database and ClickHouse) tied to the previous version are deleted, and 2 new migration jobs for the new version are created — running typeorm migration:run and runClickhouseMigrations.js against the new build before (or alongside) the rollout.

Risk Analysis

The database and ClickHouse migration jobs are the most sensitive part of this deployment — they apply schema changes to production datastores. If a migration fails or is incompatible with the running service version during the rollout window, there could be a brief period of inconsistency. The Deployments themselves use rolling updates by default, which avoids downtime for the application tier.

Resource Changes

    Name                                                       Type                           Operation
~   vpc-native-validate-active-users-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-user-profile-analytics-history-clickhouse-cron  kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-stale-user-transactions-cron              kubernetes:batch/v1:CronJob    update
~   vpc-native-calculate-top-readers-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-update-highlighted-views-cron                   kubernetes:batch/v1:CronJob    update
~   vpc-native-squad-posts-analytics-refresh-cron              kubernetes:batch/v1:CronJob    update
+   vpc-native-api-clickhouse-migration-9b0ac6ba               kubernetes:batch/v1:Job        create
~   vpc-native-daily-digest-cron                               kubernetes:batch/v1:CronJob    update
~   vpc-native-private-deployment                              kubernetes:apps/v1:Deployment  update
~   vpc-native-clean-zombie-opportunities-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-bg-deployment                                   kubernetes:apps/v1:Deployment  update
-   vpc-native-api-clickhouse-migration-a2cf4d76               kubernetes:batch/v1:Job        delete
~   vpc-native-post-analytics-clickhouse-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-update-source-tag-view-cron                     kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-expired-better-auth-sessions-cron         kubernetes:batch/v1:CronJob    update
~   vpc-native-update-tag-recommendations-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-user-profile-analytics-clickhouse-cron          kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-images-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-user-posts-analytics-refresh-cron               kubernetes:batch/v1:CronJob    update
~   vpc-native-user-profile-updated-sync-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-check-analytics-report-cron                     kubernetes:batch/v1:CronJob    update
~   vpc-native-deployment                                      kubernetes:apps/v1:Deployment  update
~   vpc-native-generic-referral-reminder-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-update-current-streak-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-update-tags-str-cron                            kubernetes:batch/v1:CronJob    update
~   vpc-native-hourly-notification-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-users-cron                         kubernetes:batch/v1:CronJob    update
~   vpc-native-channel-digests-cron                            kubernetes:batch/v1:CronJob    update
~   vpc-native-post-analytics-history-day-clickhouse-cron      kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-channel-highlights-cron                   kubernetes:batch/v1:CronJob    update
~   vpc-native-expire-super-agent-trial-cron                   kubernetes:batch/v1:CronJob    update
~   vpc-native-update-views-cron                               kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-gifted-plus-cron                          kubernetes:batch/v1:CronJob    update
~   vpc-native-personalized-digest-deployment                  kubernetes:apps/v1:Deployment  update
~   vpc-native-worker-job-deployment                           kubernetes:apps/v1:Deployment  update
~   vpc-native-ws-deployment                                   kubernetes:apps/v1:Deployment  update
-   vpc-native-api-db-migration-a2cf4d76                       kubernetes:batch/v1:Job        delete
~   vpc-native-update-source-public-threshold-cron             kubernetes:batch/v1:CronJob    update
~   vpc-native-channel-highlights-cron                         kubernetes:batch/v1:CronJob    update
~   vpc-native-personalized-digest-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-user-companies-cron                kubernetes:batch/v1:CronJob    update
... and 10 other changes

@idoshamun idoshamun merged commit 00f8dbc into main Mar 31, 2026
9 checks passed
@idoshamun idoshamun deleted the eng-1200-seo-p1-add-collectionsxml-sitemap-with-quality-gate branch March 31, 2026 13:19
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