feat: add Terms & Conditions checkbox to signup (#4) #5

Merged
egullickson merged 1 commits from issue-4-terms-conditions into main 2026-01-03 19:20:29 +00:00
Owner

Summary

  • Add required Terms & Conditions checkbox to signup form with legal audit trail
  • Create terms-agreement feature capsule for storing consent records
  • Capture IP address, user agent, terms version, and content hash at signup
  • Create terms agreement atomically with user profile in database transaction

Fixes #4

Changes

Backend

  • New terms_agreements table with audit fields
  • TermsAgreementRepository with transaction support
  • Modified AuthService.signup() for atomic creation
  • Added termsAccepted validation to signup schema

Frontend

  • Checkbox with PDF link in SignupForm
  • Zod validation with z.literal(true)
  • Error message displays when unchecked

Test plan

  • Signup with checkbox unchecked shows validation error
  • Signup with checkbox checked creates user and terms agreement
  • "Terms & Conditions" link opens PDF in new tab
  • Works on mobile viewport (320px)
  • Works on desktop viewport (1920px)
  • Database has terms_agreements record after signup

🤖 Generated with Claude Code

## Summary - Add required Terms & Conditions checkbox to signup form with legal audit trail - Create `terms-agreement` feature capsule for storing consent records - Capture IP address, user agent, terms version, and content hash at signup - Create terms agreement atomically with user profile in database transaction Fixes #4 ## Changes ### Backend - New `terms_agreements` table with audit fields - `TermsAgreementRepository` with transaction support - Modified `AuthService.signup()` for atomic creation - Added `termsAccepted` validation to signup schema ### Frontend - Checkbox with PDF link in SignupForm - Zod validation with `z.literal(true)` - Error message displays when unchecked ## Test plan - [ ] Signup with checkbox unchecked shows validation error - [ ] Signup with checkbox checked creates user and terms agreement - [ ] "Terms & Conditions" link opens PDF in new tab - [ ] Works on mobile viewport (320px) - [ ] Works on desktop viewport (1920px) - [ ] Database has terms_agreements record after signup 🤖 Generated with [Claude Code](https://claude.com/claude-code)
egullickson added 1 commit 2026-01-03 18:28:09 +00:00
feat: add Terms & Conditions checkbox to signup (refs #4)
All checks were successful
Deploy to Staging / Build Images (pull_request) Successful in 4m38s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 28s
Deploy to Staging / Verify Staging (pull_request) Successful in 6s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 6s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
dec91ccfc2
- Add terms_agreements table for legal audit trail
- Create terms-agreement feature capsule with repository
- Modify signup to create terms agreement atomically
- Add checkbox with PDF link to SignupForm
- Capture IP, User-Agent, terms version, content hash
- Update CLAUDE.md documentation index

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
egullickson merged commit 33cd4df5a3 into main 2026-01-03 19:20:29 +00:00
egullickson deleted branch issue-4-terms-conditions 2026-01-03 19:20:29 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: egullickson/motovaultpro#5