feat(settings): add all missing config settings to settings page with enhanced UX

Add 64 previously missing settings from config.py to SETTING_METADATA,
making them all configurable via the settings page UI.

New categories: PDF/A Archival, Security
Enhanced UX:
- Slider inputs for threshold values (text_quality_threshold, near_duplicate_threshold)
- Dropdown selects for s3_storage_class, s3_acl, pdfa_format, security_header_x_frame_options_value
- All 8 PDF/A settings now configurable via the UI
- Security headers, audit logging, rate limiting, CORS settings added
- IMAP 1 & 2, S3, Meilisearch, Deduplication, Embedding settings added
- Task retry, step timeout, file size limits settings added

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-03-02 16:37:28 +00:00
parent e4fbd45636
commit a2592629db
3 changed files with 638 additions and 1 deletions
+23
View File
@@ -139,6 +139,29 @@
Enable {{ setting.key.replace('_', ' ').title() }}
</label>
</div>
{% elif setting.metadata.type == 'slider' %}
<!-- Slider Input -->
<div class="flex items-center gap-4">
<input
type="range"
id="{{ setting.key }}"
name="{{ setting.key }}"
min="{{ setting.metadata.get('min', 0) }}"
max="{{ setting.metadata.get('max', 100) }}"
step="{{ setting.metadata.get('step', 1) }}"
x-model="formData['{{ setting.key }}']"
class="flex-1 h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer accent-blue-600"
/>
<input
type="number"
min="{{ setting.metadata.get('min', 0) }}"
max="{{ setting.metadata.get('max', 100) }}"
step="{{ setting.metadata.get('step', 1) }}"
x-model="formData['{{ setting.key }}']"
class="setting-input w-24 px-2 py-1 border border-gray-300 rounded-md shadow-sm text-center focus:outline-none focus:ring-blue-500 focus:border-blue-500"
aria-label="{{ setting.key.replace('_', ' ').title() }} value"
/>
</div>
{% elif setting.metadata.type == 'multiselect' and setting.metadata.options %}
<!-- Multi-select checkboxes: stored as comma-separated string -->
<div class="flex flex-wrap gap-2 mt-1">