Skip to content

Releases: codelibs/fessctl

FessCTL 0.2.0

Choose a tag to compare

@marevol marevol released this 25 Jun 09:06
ec97fb6

FessCTL 0.2.0 brings the biggest change since the first release: fessctl is now available on PyPI. You can install it directly with pip install fessctl (or pipx/uv tool). This release also adds support for Fess 15.7, reworks command output into clean Markdown, and ships a comprehensive unit-test suite and an agent skill for operating Fess through the CLI.

📦 Now on PyPI

fessctl is published to PyPI via GitHub Actions Trusted Publishing (OIDC, no stored tokens, with Sigstore attestations). Installation is now as simple as:

pip install fessctl       # or: pipx install fessctl, uv tool install fessctl

The publish workflow validates that the git tag matches the pyproject.toml version before releasing. (#30)

✨ Highlights

  • Fess 15.7 supportping now uses the unified /api/v2/health endpoint on Fess 15.7+ and falls back to /api/v1/health on older versions, selected automatically from the configured FESS_VERSION. (#31)
  • Markdown output — all 22 command modules now render human-readable output as Markdown (tables for list/get, a result block for status messages) instead of rich-styled tables. The rich dependency has been removed. --output json / --output yaml are unchanged. (#25)
  • Scheduler Job Log IDscheduler start now reports the jobLogId returned by the API so you can correlate a triggered run with its log. (#27)
  • fessctl agent skill — a new skill under skills/fessctl/ (SKILL.md plus per-feature reference docs) teaches an AI agent how to operate Fess through the CLI, covering installation, authentication, output formats, CRUD conventions, and multi-step workflows. (#25, #29)

🔧 Improvements

  • Configurable HTTP client timeout (timeout, default 5.0s) and clearer error messages for network failures and invalid JSON responses. (#22)
  • Reviewed and validated all management (/api/admin/*) API calls for current Fess releases. (#22)

🧭 Fess Compatibility

  • Default FESS_VERSION updated from 14.19.0 to 15.7.0 (progressively: 15.3.2 → 15.4.0 → 15.6.1 → 15.7.0). (#22, #23, #28, #31)
  • CI now tests against Fess 14.19.2, 15.6.1, and 15.7.0 (with matching OpenSearch versions).

📚 Documentation

  • README rewritten with four install methods — PyPI, pre-built Docker image, self-built Docker, and install-from-source — plus an Environment Variables section documenting FESS_ENDPOINT, FESS_ACCESS_TOKEN, and FESS_VERSION. (#21, #30)
  • Added CLAUDE.md with a project overview, uv-based development commands, and architecture/code conventions. (#26)

🧪 Testing

  • New mock-based unit-test suite under tests/unit/ covering the output helpers, API client (version/endpoint selection), CLI ping, settings, and scheduler jobLogId handling. (#24, #27)
  • Added command tests for crawlinginfo and joblog, and made argument parsing in existing tests more robust. (#24)

⚠️ Notes for Existing Users

  • Output format change — human-readable command output is now Markdown rather than rich-rendered colored tables. Scripts that parsed the previous styled output may need updating; use --output json/yaml for stable machine-readable output.
  • Default version is now 15.7.0 — if you run an older Fess server, set FESS_VERSION accordingly so the correct health endpoint and behavior are selected.

Full Changelog: v0.1.0...v0.2.0

FessCTL 0.1.0

Choose a tag to compare

@marevol marevol released this 24 Aug 01:21
b19f400
v0.1.0

Add FESS_VERSION environment variable to README examples and docs (#20)