Repository navigation
Create ISetupCheck support implementation #6590
Description
Is your feature request related to a problem? Please describe.
Create a GitHub issue proposing the implementation of Nextcloud's ISetupCheck interface in LibreSign. This requires refactoring ConfigureCheckService.php into 6 specialized check classes (Java, JSignPdf, PDFtk, Poppler, Imagick, CertificateEngine) that implement ISetupCheck. The issue should categorize checks by criticality and include priority levels, since some (Java, PDFtk, JSignPdf, CertificateEngine) are mandatory for LibreSign functionality, while others (Poppler, Imagick) are optional.
Describe the solution you'd like
-
Define issue scope and motivation – Explain what ISetupCheck provides (admin panel visibility, CLI integration via
occ setupchecks) and why implementing it improves UX for Nextcloud administrators managing LibreSign. -
Create priority table – Map the 6 checks (Java, JSignPdf, PDFtk, Poppler, Imagick, CertificateEngine) with columns: check name, current location in
ConfigureCheckService, priority (must-have/nice-to-have), and dependencies. -
Include implementation details – Outline the refactoring approach: create
lib/SetupCheck/folder, extract logic fromConfigureCheckServicemethods, convertConfigureCheckHelperresults toSetupResultobjects, register checks inApplication::register(). -
Link reference documentation – Include links to Nextcloud ISetupCheck documentation and examples from the codebase (PhpModules, CodeIntegrity, SecurityHeaders, MaintenanceWindowStart, WebdavEndpoint).
-
Add conditional logic notes – Document that CFSSL-dependent checks (CertificateEngine) need conditional status handling and explain how optional checks (Poppler, Imagick) should return
info()vserror()severity. -
Specify testing and Git requirements – Note that LibreSign requires Conventional Commits, sign-off (
git commit -s), and focused test runs with--filterflag (per copilot-instructions.md).
Describe alternatives you've considered
-
Backward compatibility – Should
ConfigureCheckService.phpremain for existing code/tools, or be deprecated once ISetupCheck classes are in place? Recommend keeping for now. -
Category assignments – Most checks are "system" severity; only CertificateEngine should be "security". Confirm this aligns with LibreSign's security model.
-
Visibility control – Should checks be conditional (only visible when LibreSign is configured)? Current implementation in setup/install flows may differ from always-visible admin panel.
Additional context
- If you have questions, feel free to ask in this issue.
- Give a ⭐️ star to this repository
This task is suitable for first-time contributors!
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Start date
Target date
Projects
- StatusShow more project fieldsNo status
Activity
guilhermercarvalho commentedon Mar 1, 2026
Working on it.
vitormattos commentedon Mar 2, 2026
Nice!
If you wish, you also can interact at LibreSign community: https://t.me/LibreSign
feat(utils): add SetupCheckUtils trait
test: add test infrastructure for setup checks
feat(setup-check): add JavaSetupCheck
feat(setup-check): add JSignPdfSetupCheck
feat(setup-check): add PDFtkSetupCheck
feat(setup-check): add PopplerSetupCheck
feat(setup-check): add ImagickSetupCheck
96 remaining items
feat(application): register new setup checks
refactor: deprecate ConfigureCheckService
refactor(setup-check): reorganize mocks and apply code standards
style(setup-check): apply code style fixes and improve Psalm annotations
fix(setup-check): address Psalm issues and improve robustness
test(setup-check): update PDFtkSetupCheckTest to match new error message
test(setupcheck): reorganize test mocks into dedicated namespace
feat(command): update configure:check to use ISetupCheckManager
refactor: replace deprecated ConfigureCheckService with SetupCheckRes…
test(service): add unit tests for SetupCheckResultService
test(handler): update OU filtering test to expect string
YvesCesar commentedon Jun 30, 2026
Closing the issue; the pull request related to the issue has been merged.