Skip to content

docs(15.9): correct API responses and add missing plugin, label and XPath steps - #560

Merged
marevol merged 1 commit into
mainfrom
docs/159-verification-10-fixes
Sep 27, 2026
Merged

marevol merged 1 commit into
mainfrom
docs/159-verification-10-fixes

Conversation

@marevol

@marevol marevol commented Sep 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Correct places where the 15.9 documentation disagrees with the product, and add steps that were missing.

Changes

All seven languages, 15.9 tree only (7 files per language):

  • config/search-scroll.rst: a non-GET request to /api/v2/documents/all is refused with 403 forbidden when it has no valid CSRF token, because SearchApiV2Manager checks the token before the handler runs. Only a request that has a valid token gets 405 method_not_allowed. Previously the page said 405 for everything.
  • api/api-overview.rst: rate_limited is the code for the per-endpoint limits (login, password change, chat). A new note describes the server-wide rate limit (rate.limit.enabled). RateLimitFilter runs before the v2 API and does not use the v2 envelope:
    • 429 with Retry-After and {"error":"rate_limit_exceeded",...,"retry_after":60}.
    • While the address is blocked, 403 with {"error":"ip_blocked",...} and no Retry-After.
  • config/rate-limiting.rst: an address blocked for exceeding the limit also gets 403, and the page now shows both response bodies.
  • admin/plugin-guide.rst:
    • Describes the "Local" tab of the install page, which uploads a .jar file. The "Remote" selection must stay on its first entry, because the upload is chosen by that value.
    • The "Remote" list is read from plugin.repositories.
    • Restart after installing.
  • install/fess-setup.rst: new "no Internet access" subsection. It covers:
    • downloading the ZIP and the plugin jars elsewhere;
    • placing the jars in app/WEB-INF/plugin/, or uploading them on the install page;
    • that the admin install page needs the plugin repositories to show its list.
  • admin/labeltype-guide.rst: when a request comes through a virtual host, only labels with that host in their Virtual Host field are listed, so labels with an empty field are hidden (LabelTypeHelper#getLabelTypeItemList). To show a label on several hosts, create one label per host with the same value.
  • config/crawler-advanced.rst, covering the crawler.document.html.*.xpath settings:
    • They apply to every web crawl.
    • With "Check Last Modified" (incremental crawling) enabled, a document whose Last-Modified is not newer than the indexed one is not fetched again, so it keeps the content extracted with the old XPath (FessCrawlerThread#isContentUpdated).
    • field.xpath.default.content (and .lang / .digest) in a web crawl config's parameters overrides them for that config (FessXpathTransformer#getContentXpath).

Checks

  • python3 tools/check_headings.py on every changed file: no mismatches
  • Sphinx HTML build of the 15.9 tree for each of the seven languages, before and after: no new warnings or errors, and the new fess-setup-offline label resolves

…Path steps

- search-scroll: a non-GET request is refused with 403 by the CSRF check
  before the handler answers 405; say both.
- api-overview, rate-limiting: the server-wide rate limit answers with
  its own JSON body (rate_limit_exceeded with 429 and Retry-After, then
  ip_blocked with 403 while the address is blocked), not the v2 error
  envelope; rate_limited is what the per-endpoint limits return.
- plugin-guide: describe the Local tab that uploads a jar file, and that
  the Remote list is read from the plugin repositories.
- fess-setup: add how to install plugins on a host without Internet
  access by placing the jar files in app/WEB-INF/plugin/.
- labeltype-guide: with a virtual host, labels whose virtual host field
  is empty are not shown; create one label per host with the same value.
- crawler-advanced: the HTML XPath settings apply to every web crawl,
  unchanged documents keep their old content under incremental crawling,
  and field.xpath.default.content overrides the XPath per crawl config.

All seven languages, 15.9 tree only.
@marevol marevol self-assigned this Sep 27, 2026
@marevol
marevol merged commit 62c385d into main Sep 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant