docs(admin): document ICAP antivirus configuration - #15538
Open
miaulalala wants to merge 1 commit into
Open
Conversation
The ICAP section was a single paragraph ending 'Additional documentation is work in progress'. Replaces it with the settings and their defaults, REQMOD versus RESPMOD, the vendor-specific virus response header and its silent failure mode, verification via occ files_antivirus:test, how each ICAP response code is interpreted, transport security, and what data is sent to the scanning service. AI-Assisted-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Anna Larch <anna@nextcloud.com>
This was referenced Sep 1, 2026
Contributor
📖 Documentation Preview📄 1 changed documentation pageLast updated: Tue, 01 Sep 2026 20:07:34 GMT |
Contributor
Author
|
/backport to stable35 |
Contributor
Author
|
/backport to stable34 |
Contributor
Author
|
/backport to stable33 |
Contributor
|
Looks legit, but I don't know the app insides and don't want to yolo this. Let's ping an author or a maintainer to verify |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
☑️ Resolves
The ICAP section of the antivirus page was a single paragraph plus a screenshot, ending with
"Additional documentation is work in progress". Meanwhile the implementation in
nextcloud/files_antivirussupports two ICAP modes, six ICAP-specific settings, five distinctresponse outcomes and TLS, none of which was documented. Anyone integrating an ICAP scanner had to
read the app source.
This came out of a partner conversation where the missing documentation was the blocker, so it is
written for someone configuring a real scanning appliance.
📝 What is documented
Everything below was verified against
nextcloud/files_antivirusmaster, not from memory:lib/AppInfo/ConfigLexicon.php, plus theoccform of each.Includes the fact that
av_portdefaults to3310, the ClamAV daemon port rather than ICAP's1344, so it almost always has to be changed.
that need the object size up front.
direction: if
av_icap_response_headerdoes not match what the scanner sends, no threat name isever read and infected files are accepted with nothing logged. Documented as a warning, with the
Kaspersky and McAfee
403fallback noted.occ files_antivirus:testand--debug, which prints the actual ICAPexchange.
202unchecked, and the500+X-Error-Codemapping, including thatfile_type_blockedandfile_extension_blockedaretreated as infected, so ICAP mode also enforces file type policy.
av_icap_tlsdefaults to off.account's user ID), and the uploader's IP. This matters for anyone pointing ICAP at a scanner
outside their own infrastructure.
🖼️ Screenshots
No new images. The existing
antivirus-icap.pngfigure is kept in place. Built locally and therendered page reviewed; happy to add a screenshot of the rendered section if reviewers would like
one.
The new ICAP text gives the real default for
av_stream_max_length(26214400, 25 MiB). The older"Daemon (Socket)" section further up the same page states
10485760, "ten megabytes", which iswrong against
ConfigLexicon. That is a pre-existing error, fixed separately in #15539 to keepone concern per PR, so the two figures disagree on this page until that lands.
Merge order: none required. I tested this PR merged together with #14810, #15539 and #15541:
zero conflicts in any order, and the combined file is
sphinx-lintclean.✅ Checklist
sphinx-lintis clean and the build produces no warnings (-W --keep-going)codespell— not installed locally, please let CI confirm