* feat: add pluggable field detection system (v0.14.0)
Add external field detection via Ruby scripts and YAML profiles.
Two plugin mechanisms supported side-by-side:
1. Ruby scripts (FIELD_DETECTION_SCRIPTS_DIR) - full-power handlers
registered via Templates::FieldDetection.register(name, handler)
2. YAML profiles (FIELD_DETECTION_CONFIG_DIR) - declarative configs
with text anchors + relative offsets OR absolute positions
Core changes:
- lib/templates/field_detection.rb: registry, loader, dispatcher
- lib/templates/field_detection/config_based.rb: YAML profile engine
with anchor-based and absolute positioning, negative page indices
- Controller accepts algorithm param, dispatches accordingly
- Split-button UI: main action = ML detection, dropdown = profiles
- RSpec tests for both modules with fixture YAML profiles
No business-specific algorithms ship with docuseal - all are injected
at deploy time via ConfigMap/mounted volumes.
* fix: use proper user/account setup in config_based spec
* fix: include submitters in algorithm detection response
---------
Co-authored-by: Bob Develop <developbob50@gmail.com>