Skip to content

docs(15.10): correct the login rate limit, log file API and status code descriptions of the API pages - #609

Merged
marevol merged 2 commits into
mainfrom
docs/f159r13-api-15.10-corrections
Oct 25, 2026
Merged

marevol merged 2 commits into
mainfrom
docs/f159r13-api-15.10-corrections

Conversation

@marevol

@marevol marevol commented Oct 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Corrects stale descriptions in the 15.10 (development) API documentation, in ja, en, de, es, fr, ko and zh-cn. Every statement was checked against the Fess source at the 15.10 development head.

  • Login rate limit (api/api-auth.rst): the form login POST /login/login uses the same buckets, limits and lockout as POST /api/v2/auth/login (theme.api.login.*). A successful login clears the earlier failures of the same address and user pair, but the per-address bucket is not cleared (only the slot the attempt consumed is given back). Added a note that behind a reverse proxy not listed in rate.limit.trusted.proxies (default 127.0.0.1,::1) all clients share one address, so failed logins can lock everyone out for the lockout period.
  • Log file API (api/admin/api-admin-log.rst): an unknown or disallowed file name, or a malformed id, answers a validation error (HTTP 400, status 1) instead of an empty response. Ids are URL-safe Base64; standard-alphabet ids are still accepted.
  • Storage API (api/admin/api-admin-storage.rst): GET /api/admin/storage/list answers HTTP 400 naming the plugin to install when no storage client plugin is present.
  • Dictionary API (api/admin/api-admin-dict.rst): output of a mapping entry is required.
  • Upgrade guide (install/upgrade.rst): new rows in the table of requests the API now refuses (log file name, mapping without output, storage listing failure, form login rate limit) and a list of related behaviour changes (webauth/fileauth password, user code of a logged-in user, "delete all" needs the edit role, role parameter/header/cookie ignored without a cipher, unknown request charset, dictionary failure messages).
  • User API status codes (api/api-*.rst): added the 400, 403 and 503 codes that openapi-user.yaml declares but the tables lacked (503 on the endpoints that use the search engine; 400 for undecodable request parameters on label, health, related, ui-config and the auth endpoints; 403 on login). Codes the spec does not declare were left in place. The chat page is not changed.

config/properties.rst is generated from fess_config.properties, so it is not edited here.

Test plan

  • All changed RST files parse with docutils without new warnings compared to the previous revision.

…de descriptions of the API pages

Update the 15.10 development tree in all seven languages.

- api-auth: the login form (POST /login/login) shares the rate-limit
  buckets and the lockout with POST /api/v2/auth/login; a successful login
  clears the failures of that address and user pair but only gives back the
  one address slot it consumed; behind a proxy that is not listed in
  rate.limit.trusted.proxies all clients share one address.
- api-admin-log: an unknown or disallowed log file name, or an id that is not
  Base64, answers a validation error (HTTP 400, status 1) instead of an empty
  response; ids are URL-safe Base64.
- api-admin-storage: GET /api/admin/storage/list answers HTTP 400 when no
  storage client plugin is installed.
- api-admin-dict: output of a mapping entry is required.
- upgrade: add the log file, mapping output, storage listing and login form
  rows to the table of requests the API now refuses, and list the changes
  to the webauth/fileauth password, the user code of a logged-in user,
  "delete all" roles, role values without a cipher, unknown request
  charsets and dictionary failure messages.
- user API pages: add the 400, 403 and 503 status codes that
  openapi-user.yaml declares and the tables lacked (the chat page is not
  changed).
…it in the upgrade guide

Behind a reverse proxy that is not listed in rate.limit.trusted.proxies, all
clients share one login rate-limit bucket. Say so in the upgrade table row for
the login form limit, in all seven languages.
@marevol
marevol merged commit c92051b into main Oct 25, 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