Skip to content

feat(career): Add validated staging content transfer - #85

Merged
peterlipt merged 1 commit into
stagingfrom
feat/career-content-transfer
Sep 7, 2026
Merged

peterlipt merged 1 commit into
stagingfrom
feat/career-content-transfer

Conversation

@peterlipt

@peterlipt peterlipt commented Sep 7, 2026

Copy link
Copy Markdown
Member

Merging career-page code does not transfer the content entered in staging. Add a Payload-based importer that copies career groups, settings and referenced images while retaining production group IDs. Staging is authoritative for career content and application settings, including cleared URLs and closed applications.

The importer requires an explicit group mapping and a reviewed, checksummed plan bound to the target database and application. It rejects stale plans and pending migrations, verifies file hashes, applies changes in a PostgreSQL transaction, checks the resulting content before commit, and records the outcome. Applications, CVs, users and other page content remain untouched. Repeating the transfer with a fresh plan produces no changes.

Package the server runner in the application Docker image, document plan/apply commands, and run transfer unit tests in both PR and release workflows. The importer runs separately from deployment and excludes email and Google credentials.

Validation:

  • 21 tests passed: 12 career application tests and 9 content-transfer tests.
  • ESLint passed with 9 existing application warnings; TypeScript passed in the full Docker build.
  • Linux ARM64 Docker rehearsal restored database backups, ran migrations, transferred 9 groups and 34 positions, reused 5 images and created 4 media records. Only the 7 expected tables changed; repeating the import changed none.
  • Verified pending-migration, wrong-target, wrong-hash and stale-plan rejection; transaction rollback and new-file cleanup; preserved plans/receipts; integration credential exclusion.
  • Full-image browser checks passed for Hungarian and English pages on desktop and mobile, including images and form fields.
  • GitHub Actions CI passed for 09974f9: lint, TypeScript, both test suites and the Linux AMD64 Docker build.
  • Vercel preview fails during packaging with the existing next-server.js.nft.json ENOENT error; the same integration is failing on the staging base. This is separate from the successful VPS Docker build.
  • Rehearsal artifacts, backups and credentials are excluded from this PR.

Transfer career groups, settings and referenced images through explicit mappings and reviewed plans.

Bind imports to the target database, verify content in a transaction, and preserve rollback receipts.
Package the server runner in the application image and add transfer checks to CI and releases.
@vercel

vercel Bot commented Sep 7, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
frt Error Error Sep 7, 2026 9:19pm UTC

Request Review

@peterlipt peterlipt self-assigned this Sep 7, 2026
@peterlipt
peterlipt merged commit b3c9c2a into staging Sep 7, 2026
3 of 4 checks passed
@peterlipt
peterlipt deleted the feat/career-content-transfer branch September 7, 2026 21:26
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