* 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>
* feat: add custom brand name + font feature (v1.2.0)
- Add BRAND_NAME_KEY, BRAND_NAME_FONT_KEY, BRAND_NAME_FONTS whitelist to AccountConfig
- Modify _title.html.erb to render custom brand name with configurable font
- Create _brand_name_form.html.erb partial with text input + font dropdown
- Add brand name form to personalization_settings/show.html.erb
- Add BRAND_NAME keys to PersonalizationSettingsController ALLOWED_KEYS
- Apply brand name header in mailer layout
- Add i18n translations (EN, ES, IT, FR, PT, DE, NL)
- Env override support via DOCUSEAL_CONFIG_BRAND_NAME / DOCUSEAL_CONFIG_BRAND_NAME_FONT
- When brand_name is unset, upstream DocuSeal text renders as before
- When set, configured text renders in chosen font (CSS font-family inline)
* fix: address review — correct font CSS fallback, system-ui quoting, server-side validation
- Add brand_font_css helper to AccountConfig for proper CSS output
- system-ui rendered unquoted; Inter uses sans-serif fallback; script fonts use cursive
- Add server-side validation rejecting fonts not in BRAND_NAME_FONTS whitelist
- Add invalid_font_selection i18n key
* fix: use Rails form helpers for BetterHtml compatibility in brand name and UI visibility forms
---------
Co-authored-by: Bob Develop <developbob50@gmail.com>