-
Notifications
You must be signed in to change notification settings - Fork 13
✨ Introduce configurable Settings #887
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
| SENDER_ADDRESS="admin@example.org" | ||
| NOTIFICATION_ADDRESS="monitoring@example.org" | ||
| SEND_MAIL=1 | ||
| LOCALE="en" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not used.
| # For a generic SMTP server, use: "smtp://localhost:25" | ||
| # Delivery is disabled by default via "null://null" | ||
| MAILER_DSN="null://null" | ||
| MAILER_DELIVERY_ADDRESS="admin@example.org" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not used.
| RETENTION_API_ENABLED=true | ||
| RETENTION_API_ACCESS_TOKEN="retention" | ||
| RETENTION_API_IP_ALLOWLIST="127.0.0.1, ::1" | ||
| KEYCLOAK_API_ENABLED=true | ||
| KEYCLOAK_API_ACCESS_TOKEN="keycloak" | ||
| KEYCLOAK_API_IP_ALLOWLIST="127.0.0.1, ::1" | ||
| POSTFIX_API_ENABLED=true | ||
| POSTFIX_API_ACCESS_TOKEN="postfix" | ||
| POSTFIX_API_IP_ALLOWLIST="127.0.0.1, ::1" | ||
| ROUNDCUBE_API_ENABLED=true | ||
| ROUNDCUBE_API_IP_ALLOWLIST="127.0.0.1, ::1" | ||
| DOVECOT_API_ENABLED=true | ||
| DOVECOT_API_ACCESS_TOKEN="dovecot" | ||
| DOVECOT_API_IP_ALLOWLIST="127.0.0.1, ::1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not used.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request introduces a comprehensive settings management system that provides a configurable, database-backed solution for managing application settings. It includes YAML-based configuration definitions, a database entity for persistence, form-based UI for updates, and caching for performance optimization.
Key changes include:
- A new Settings entity and repository for database persistence
- Service layer with configuration and business logic for settings management
- Form integration with validation and type conversion
- Template updates for the settings UI with improved navigation and form display
Reviewed Changes
Copilot reviewed 25 out of 25 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Entity/Setting.php | New database entity for storing settings with timestamps |
| src/Service/SettingsService.php | Core service handling settings CRUD operations with caching |
| src/Service/SettingsConfigService.php | Configuration service loading YAML-based settings definitions |
| src/Form/SettingsType.php | Dynamic form builder creating fields based on configuration |
| templates/Settings/show.html.twig | Updated settings template with form display and categorization |
| config/settings.yaml | YAML configuration defining available settings with validation rules |
| tests/ | Comprehensive test coverage for all new components |
| features/ | Split feature tests into separate files for better organization |
|



This pull request introduces a new, extensible system for managing application settings, including the configuration, persistence, form display, and update functionality. It adds a YAML-based settings definition, a database-backed entity for storing settings, and updates the controller logic and feature tests to support viewing and updating settings through the UI. The changes also refactor and split feature tests for API tokens and webhooks into dedicated files for better organization.