Skip to content

feat: database timezone field and CI/CD improvements#2

Merged
Systemsaholic merged 13 commits intomainfrom
develop
Jan 9, 2026
Merged

feat: database timezone field and CI/CD improvements#2
Systemsaholic merged 13 commits intomainfrom
develop

Conversation

@Systemsaholic
Copy link
Copy Markdown
Owner

@Systemsaholic Systemsaholic commented Jan 9, 2026

Summary

  • Add timezone field to user_profiles for user timezone preferences
  • Fix Doppler token name in CI workflow (PRD vs PROD)
  • Various CI/CD pipeline improvements and fixes

Database Changes

  • New timezone varchar(64) column on user_profiles table
  • Migration: 20260109170000_add_user_timezone.sql

Test plan

  • Verified migration applies correctly on Dev DB
  • Verify migration applies to Prod DB after merge

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added timezone support to user profiles for better global user experience
  • Chores

    • Improved deployment infrastructure with enhanced secret management and service orchestration
    • Extended backend data models to support activity, package, and trip management features
    • Made API initialization processes more configurable for development flexibility
    • Updated Docker configuration for better environment flexibility

✏️ Tip: You can customize this high-level summary in your review settings.

Systemsaholic and others added 13 commits January 7, 2026 22:50
- Replace individual GitHub secrets with Doppler fetch action
- Use DOPPLER_TOKEN_DEV and DOPPLER_TOKEN_PRD for each environment
- Secrets now managed in single source of truth

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix DOPPLER_TOKEN_PROD → DOPPLER_TOKEN_PRD to match GitHub secret
- Add deploy-api job to both workflows for Railway deployment
- Remove deploy-ota-migrations from prod (Prod has local catalog schema)
- Update smoke tests with proper health check endpoints
- Add deployment summary step with service URLs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add timezone column to user_profiles table for storing user's preferred
timezone in IANA format (e.g., 'America/Toronto').

Also includes baseline migrations for sync_activity_tables and prod_baseline
that were previously generated but not committed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Jan 9, 2026

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

Project Deployment Review Updated (UTC)
tailfire-admin Ready Ready Preview, Comment Jan 9, 2026 11:20pm
tailfire-client Ready Ready Preview, Comment Jan 9, 2026 11:20pm
tailfire-ota Ready Ready Preview, Comment Jan 9, 2026 11:20pm

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jan 9, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

The PR modernizes the deployment infrastructure by integrating Doppler for secrets management, replacing Supabase with Railway for API hosting, and expanding the database schema to support activity-themed features. Runtime initialization is made conditional via feature flags. Docker configuration is updated to use environment variables.

Changes

Cohort / File(s) Change Summary
CI/CD Workflow Updates
.github/workflows/deploy-dev.yml, .github/workflows/deploy-prod.yml
Integrated Doppler for secrets fetching across multiple deployment jobs; replaced Supabase-based API deployment with Railway CLI setup; introduced health-check loops and readiness waits; consolidated smoke test stages to cover all services; restructured deployment job dependencies and environment variable usage for Admin, OTA, and Client services via Vercel/Railway.
Docker Configuration
Dockerfile
Replaced hard-coded port exposure (3101) with environment-driven port (${PORT:-3101}); updated health check to derive port from environment variable with fallback.
Runtime Feature Flags
apps/api/src/external-apis/core/services/external-api-registry.service.ts, apps/api/src/main.ts, apps/api/src/reference-data/reference-data.service.ts, apps/api/src/trips/storage.service.ts
Added early-exit guards controlled by environment variables (DISABLE_EXTERNAL_API_BOOTSTRAP, RUN_MIGRATIONS_ON_STARTUP, DISABLE_REFERENCE_CACHE, DISABLE_STORAGE_INIT) to conditionally skip initialization steps; simplified migration gating logic by removing environment-based distinction.
Database Schema Expansion
packages/database/src/migrations/20260109000000_sync_activity_tables.sql, packages/database/src/migrations/20260109170000_add_user_timezone.sql, packages/database/src/schema/user-profiles.schema.ts, packages/database/src/migrations/meta/_journal.json
Created comprehensive activity-themed schema including new enums (payment\_transaction\_type, payment\_method, insurance\_policy\_type, etc.) and 9+ tables with RLS enforcement; added timezone column to user\_profiles; updated migration journal with new entries.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • Deploy pipeline tightening #1 — Shares deployment pipeline updates (dev/prod GitHub Actions workflows), Vercel/Railway integration, health-check enhancements, and Dockerfile modifications for similar infrastructure modernization.

Poem

🐰 Workflows now fetch secrets from Doppler's deep store,
Railway replaces the old, tests cover what's more,
Feature flags gate the startup with wisdom and grace,
Activity tables bloom—a new schema in place! 🌿

✨ Finishing touches
  • 📝 Generate docstrings

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 47b0365 and d3b7978.

📒 Files selected for processing (12)
  • .github/workflows/deploy-dev.yml
  • .github/workflows/deploy-prod.yml
  • Dockerfile
  • apps/api/src/external-apis/core/services/external-api-registry.service.ts
  • apps/api/src/main.ts
  • apps/api/src/reference-data/reference-data.service.ts
  • apps/api/src/trips/storage.service.ts
  • packages/database/src/migrations/20260109000000_sync_activity_tables.sql
  • packages/database/src/migrations/20260109170000_add_user_timezone.sql
  • packages/database/src/migrations/20260110000000_prod_baseline.sql
  • packages/database/src/migrations/meta/_journal.json
  • packages/database/src/schema/user-profiles.schema.ts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Systemsaholic Systemsaholic merged commit c0cf785 into main Jan 9, 2026
19 of 26 checks passed
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