github umputun/cronn v1.3.0
Version 1.3.0

latest releases: v1.12.3, v1.12.2, v1.12.1...
6 months ago

What's New

This release introduces a comprehensive web UI dashboard for job monitoring and management, secure authentication, and support for alternative template delimiters.

Major Features

Web UI Dashboard

  • Real-time job monitoring with auto-refresh every 5 seconds using HTMX
  • Manual job execution directly from the UI with run button for each job
  • Job status filtering - filter by All, Running, Success, Failed, or Idle states
  • Multiple view modes - switch between card and list layouts
  • Theme support - Light, Dark, and Auto themes with persistent preferences
  • Job sorting options - sort by name, schedule, or status
  • SQLite persistence for job execution history across restarts
  • Responsive design optimized for mobile and desktop

Authentication & Security

  • Secure login system with bcrypt password hashing
  • CSRF protection on all state-changing operations
  • Brute-force protection with rate limiting (10 attempts per IP per minute)
  • Configurable session TTL (default 24 hours)
  • HTTPOnly secure cookies for session management

Alternative Template Delimiters

  • Support for [[ ]] delimiters instead of {{ }} to avoid conflicts with application templates
  • Enable with --alt-template flag or CRONN_ALT_TEMPLATE environment variable
  • Full compatibility with all existing date/time templates

Improvements

  • Fixed web parser reuse and SQLite locking issues
  • Improved view toggle to maintain grid layout without page refresh
  • Enhanced mobile responsive design
  • Added comprehensive test coverage (87.8% for web package)
  • Updated goreleaser to v2.11.2 for Go 1.24 support

Statistics

  • 13 major commits since v1.2.0
  • New packages: web UI, persistence, authentication, enums
  • Added comprehensive documentation for web UI patterns and architecture

Usage Examples

Running with Web UI

# Basic web UI with default settings
cronn -f crontab --web.enabled

# With custom port and authentication
cronn -f crontab --web.enabled --web.address=:8080 --web.password-hash='$2a$10$...'

# With custom session TTL
cronn -f crontab --web.enabled --web.login-ttl=48h

Using Alternative Templates

# Enable alternative template delimiters
cronn -f crontab --alt-template

# In crontab/YAML with alternative delimiters
echo '[[.YYYY]]-[[.MM]]-[[.DD]]/report.log' | cronn --alt-template

Full Changelog

  • e57a1cd Add alternative template delimiter support (#47)
  • 5edaa90 docs: update web dashboard documentation with complete feature list
  • 2fe9fbb feat(web): add configurable login session TTL
  • 2a1c57d fix(web): improve view toggle to maintain grid layout without page refresh
  • 554c122 fix(web): restore view toggle button icon update on click
  • 44d7ddb feat: add brute-force protection to login endpoint (#46)
  • f9f53d5 feat(web): implement secure authentication system with CSRF protection (#45)
  • 6c2062b fix: minor web UI improvements from review feedback
  • bfc1bcf fix: resolve web parser reuse and SQLite locking issues (#44)
  • 2e96853 feat(web): add job filter by status and refactor template rendering (#43)
  • 661d968 feat: add manual run button for jobs in web UI (#42)
  • 105025a feat: add web UI dashboard for job monitoring (#41)
  • 0333361 fix: update goreleaser to v2.11.2 for Go 1.24 support

Docker Image

docker pull umputun/cronn:v1.3.0

Thanks

Thanks to all contributors and users who provided feedback and bug reports!

Don't miss a new cronn release

NewReleases is sending notifications on new releases.