* feat: add auto-archive submissions feature (B8)
- Add AUTO_ARCHIVE_DAYS_KEY to AccountConfig model
- Add ProcessAutoArchiveJob (self-rescheduling every 24h)
- Add Data Retention settings UI in compliances partial
- Add auto-archive translations for all 14 languages
- Fix boolean coercion bug: check IP allowlist and auto-archive
keys before falling through to boolean coercion of 0/1 values
- Add AUTO_ARCHIVE_DAYS_KEY to AccountConfigsController ALLOWED_KEYS
* fix: disable Sidekiq retries to prevent job chain duplication on failure
---------
Co-authored-by: mario.pander <developbob50@gmail.com>
* feat: add consent banner requirement for signers (B6)
- Add REQUIRE_CONSENT_KEY to AccountConfig for per-account toggle
- Add consent_given event type to SubmissionEvent for audit trail
- Add consent checkbox UI on last step of signing form (form.vue)
- Add isLastStep computed property and onConsentChange method
- Create API endpoint (submitter_consents#create) to record consent
- Add requireConsent prop passing from server via data attribute
- Add settings toggle in Account preferences page
- Add i18n translations for all 14 languages (JS + Rails)
- Submit button disabled until consent checkbox is checked
* fix: add REQUIRE_CONSENT_KEY to AccountConfigsController ALLOWED_KEYS
* fix: keep consent checkbox visible after checking (don't remove from DOM)
* fix: bind checkbox checked state to consentAccepted for step navigation sync
---------
Co-authored-by: mario.pander <developbob50@gmail.com>
- Add IP_ALLOWLIST_KEY to AccountConfig model
- Add enforce_ip_allowlist before_action in ApplicationController (web: sign out + redirect)
- Add enforce_ip_allowlist before_action in Api::ApiBaseController (API: 403 Forbidden)
- Support single IPs and CIDR ranges via IPAddr
- Create settings UI in _compliances.html.erb with text area
- Parse text area input (newline/comma separated) into array
- Add i18n translations for all 14 languages
Co-authored-by: mario.pander <developbob50@gmail.com>