Skip to content

Support Fess 15.8.0 - #33

Merged
marevol merged 1 commit into
mainfrom
feat/support-fess-15.8
Aug 23, 2026
Merged

Support Fess 15.8.0#33
marevol merged 1 commit into
mainfrom
feat/support-fess-15.8

Conversation

@marevol

@marevol marevol commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

What this changes

Fess 15.8.0 is out, so this makes fessctl target it.

The admin API needs no change. /api/admin/* is the only surface fessctl
calls apart from the health check, and it is unchanged between the
fess-15.7.0 and fess-15.8.0 tags: no action was added or removed, and
every EditBody/SearchBody diff in that range is a super() removal. The
15.8.0 changes that do touch the admin API (documents, general,
searchlist, backup, and the FessApiAdminAction access-token fix
codelibs/fess#3320) land on endpoints fessctl does not use, and #3320 only
narrows admin access to permissions carried by the token itself — which is
how fessctl authenticates.

A real bug did turn up while verifying against a live server.
/api/v2/health reports the cluster status as the OpenSearch enum name —
"GREEN" — while the legacy /api/v1 body spelled the same value in lower
case. ping compared against the lower-case literals, so a perfectly healthy
15.7+ server came back as:

- **status**: error
- **message**: Fess server status: GREEN (timed_out: False)
exit=1

This is not a 15.8 regression: HealthHandler.java and PingResponse.java
are byte-identical between the two tags, and ClusterHealthStatus overrides
toString() in neither OpenSearch 3.7.0 nor 3.8.0. Confirmed live against
both 15.7.0 and 15.8.0.

Changes

  • ping compares the cluster status case-insensitively, and reports the
    status the server actually sent instead of a hardcoded green.
  • New tests/commands/test_ping.py exercises the health path against the
    live container, so this cannot regress behind mocks again.
  • Default FESS_VERSION moves from 15.7.0 to 15.8.0; compose defaults
    move to fess:15.8.0 / fess-opensearch:3.8.0.
  • CI matrix gains Fess 15.8.0 with OpenSearch 3.8.0.
  • README and skills/fessctl docs refreshed; uv.lock re-synced with the
    0.3.0.dev0 project version it had drifted from.

Verification

Full suite (169 tests, unit + integration against a live container) run
locally on three versions:

Fess OpenSearch Result
15.8.0 3.8.0 169 passed
15.7.0 3.7.0 169 passed
15.6.1 3.6.0 169 passed

fessctl ping checked by hand on all three (GREEN on 15.7/15.8 via
/api/v2/health, green on 15.6.1 via /api/v1/health), plus the admin
API 401 path on 15.8.0. The 14.19.2 matrix entry is left to CI.

Fess 15.8.0 pairs with OpenSearch 3.8.0. The admin API - the only surface
fessctl calls apart from the health check - is unchanged from 15.7.0: no
endpoint was added or removed, and every EditBody/SearchBody diff between
the fess-15.7.0 and fess-15.8.0 tags is a `super()` removal. So the
release itself needs no request-shape change.

Verifying against a live 15.8.0 server did surface an existing bug.
`/api/v2/health` reports the cluster status as the OpenSearch enum name
("GREEN"), while the legacy `/api/v1` body spelled it in lower case.
`ping` compared against the lower-case literals, so a healthy 15.7+ server
was reported as an error with exit code 1. HealthHandler and PingResponse
are byte-identical between the two tags, and ClusterHealthStatus overrides
toString() in neither OpenSearch 3.7.0 nor 3.8.0, so this has been broken
since 15.7 support landed - confirmed live against both versions.

- Compare the cluster status case-insensitively in `ping`, and report the
  status the server actually sent instead of a hardcoded "green".
- Add tests/commands/test_ping.py so the health path is exercised against
  a live server and not only against mocks.
- Change the default FESS_VERSION from 15.7.0 to 15.8.0, and bump the
  compose defaults to fess 15.8.0 / fess-opensearch 3.8.0.
- Add Fess 15.8.0 (OpenSearch 3.8.0) to the CI matrix.
- Refresh the README and skill docs, and re-sync uv.lock with the
  0.3.0.dev0 project version.

Verified locally: the full suite (169 tests) is green against 15.8.0/3.8.0,
15.7.0/3.7.0 and 15.6.1/3.6.0. The 14.19.2 entry is left to CI.
@marevol marevol self-assigned this Aug 23, 2026
@marevol
marevol merged commit caf3ee1 into main Aug 23, 2026
4 checks passed
@marevol marevol mentioned this pull request Aug 23, 2026
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