Project

General

Profile

Plugins Directory » Redmine SLA

Author: Like HOPPER
Website: https://github.com/likehopper/redmine_sla
Code repository: git@github.com:likehopper/redmine_sla.git
Registered on: 2023-06-04 (over 3 years ago)
Current version: 3.0.0
Compatible with: Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x
User ratings:   (2)

Redmine SLA

Manage your SLAs in Redmine!

Digest

Redmine SLA plugin gives the possibility of managing service levels.
It provides flexible configuration of calendars, times and terms.
It calculates types of response times for project trackers.

Features

These are the features of this plugin :
  • Global administration of SLA definitions
  • Project-level SLA configuration
  • Role-based permissions
  • Full REST API support
  • Live SLA information in issue views,
    issue lists and time-entry lists

Localisations

  • English
  • French

Databases

SLA calculations are delegated to the database engine for performance and reliability.

Supported databases:
  • PostgreSQL 11+
  • MySQL 8.0+
  • MariaDB 10.2+

The appropriate tables, views and stored functions are installed automatically for the configured database adapter.

Fixtures

Sample data is available to test the plugin :
https://github.com/likehopper/redmine_sla/blob/main/doc/TESTING.md

And many examples (via APIs) are available in the documentation :
https://github.com/likehopper/redmine_sla/tree/main/doc

Credits

Icons created by https://www.flaticon.com/fr/auteurs/magnific

Installation notes

  1. Download plugin and copy plugin folder redmine_sla to Redmine's plugins folder.
  2. Go to Redmine root folder to install necessary gems with bundle install.
  3. Launch the plugin migration to create tables, functions and views : rake redmine:plugins:migrate NAME=redmine_sla.
  4. Restart your application server (Apache with Passenger, Nginx with Passenger, Unicorn, Puma, etc.) and redmine_sla is ready to use.

Changelog

3.0.0 (2026-09-01)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x.

Multi-database support

  • Added MySQL 8.0+ and MariaDB 10.2+ support alongside PostgreSQL 11+.
  • Database-specific views and stored functions are installed automatically for the configured adapter.
  • SLA level, elapsed-time and diagnostic calculations produce consistent results on every supported database.

Upgrade compatibility

  • Existing SLA types are preserved and receive deterministic positions when upgrading from an older version.
  • The ordered and non-null sla_types.position migration is supported on PostgreSQL, MySQL and MariaDB.
  • Existing project-level SLA permissions and secure PATCH-only cache operations are preserved.

Performance and reliability

  • SLA level calculation now evaluates calendar days instead of scanning every minute.
  • Holiday processing and elapsed-time calculations have been optimized.
  • The SLA "Explain" diagnostic view is available on every supported database.

Installation requirements

The normal migration command remains unchanged:

bundle exec rake redmine:plugins:migrate NAME=redmine_sla RAILS_ENV=production

MySQL and MariaDB installations must provide server time-zone tables. If binary logging is enabled, log_bin_trust_function_creators must allow creation of the plugin's stored functions.

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v3.0.0

2.2.2 (2026-08-31)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x.

Security and permissions

  • SLA cache refresh, deletion and purge now require manage_sla on every affected project.
  • Users with view_sla retain read-only access only to SLA caches belonging to issues they are allowed to see.
  • Global SLA cache purge remains restricted to administrators.
  • Project-scoped operations cannot modify caches belonging to another project.

Secure routes

  • Cache refresh and purge operations now use PATCH instead of GET.
  • State-changing requests therefore benefit from Rails' standard CSRF protection.

Upgrade reliability

  • Includes the safe SLA type position migration introduced in 2.2.1.
  • Existing SLA types are assigned deterministic positions in their previous creation order before position becomes mandatory.
  • Upgrade behavior is compatible with PostgreSQL, MySQL and MariaDB.

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v2.2.2

2.2.1 (2026-08-31)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x.

Upgrade fix

  • Fixed upgrades from installations created before SLA type ordering.
  • Existing SLA types receive deterministic positions in their previous creation order.
  • The resulting sla_types.position column is enforced as non-null.
  • The migration is portable across PostgreSQL and MySQL/MariaDB.

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v2.2.1

2.1.7 (2026-08-29)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x.

SLA type reliability

  • Dynamic SLA accessors are now resolved at runtime instead of being generated only when the application starts.
  • Newly created SLA types are immediately available without restarting Redmine.
  • Deleting an SLA type no longer leaves obsolete accessor methods in the application.
  • The change applies consistently to issues, time entries and SLA caches.

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v2.1.7

2.1.4 (2026-08-29)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x.

Performance

  • Project-scoped SLA cache purges now use bulk deletion instead of deleting records one by one.
  • SLA spent-time rows continue to be removed through the existing database cascade.
  • Improves purge performance on projects containing many issues without changing functional behavior.

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v2.1.4

2.2.0 (2026-08-29)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x.

SLA type ordering

  • Added drag-and-drop ordering from the dedicated /sla/types list.
  • The configured order applies to issue gauges, issue and time-entry columns, the SLA Explain view and the SLA Level Terms matrix.
  • Added a toggle to reveal SLA types that are not yet used by an existing level.
  • Updated the SLA Level Terms matrix to use Redmine's native list presentation.

Additional improvements

  • Fixed rounded-bar and pie-gauge rendering issues.
  • SLA type accessors are now resolved dynamically.
  • Improved the performance of project-scoped SLA cache purges.
  • Removed routine query-building messages from error-level logs.

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v2.2.0

2.1.1 (2026-08-28)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x.

SLA calculation diagnostics

  • Added an on-demand "Explain" view for individual issue SLA calculations.
  • Shows the selected SLA level and calendar, working hours and the reason why a level matched.
  • Provides a day-by-day breakdown of elapsed SLA time, including weekends and holidays.
  • Access is restricted to users allowed to manage SLA information for the project.

Reliability

  • Long untracked status intervals are summarized instead of generating one diagnostic row per calendar day.
  • The diagnostic view is read-only and does not modify SLA caches.

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v2.1.1

2.0.4 (2026-04-25)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x, 4.2.x, 4.1.x, 4.0.x.

Redmine 6.x — security, fixes & performance

Security

  • Role-based visibility in context menus (visible? check instead of admin?).
  • Fix SQL injection via sanitize_sql in SLA cache models.

Bug Fixes

  • Removed duplicate uniqueness validation in SLA schedules.
  • Improved error handling in the refresh action and priority lookup.
  • Schedule time normalization and status path resolution.

Performance

  • Memoized SLA cache / term / spent lookups on issues.
  • Fixed N+1 queries and duplicate default scopes.

Refactoring & Testing

  • Extracted build_sla_column to remove duplication in available_columns.
  • Comprehensive unit tests across all SLA models.
  • Functional tests for schedules and project-trackers controllers.
  • Version consistency suite (semver, registry alignment, CHANGELOG coverage).

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v2.0.4

2.0.3 (2026-02-12)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x, 4.2.x, 4.1.x, 4.0.x.

Redmine 6.x — documentation

Documentation

  • Major improvement of project documentation.
  • Harmonized examples structure.
  • Alignment between YAML fixtures and rendered UI behavior.
  • Reorganized screenshots (doc/screenshots/example-*).

Maintenance

  • Minor comment corrections and internal documentation cleanup.
  • Improved readability of test fixtures and examples.

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v2.0.3

2.0.2 (2026-02-11)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x, 4.2.x, 4.1.x, 4.0.x.

Redmine 6.x — test suite & internals

Refactoring & Stabilization

  • Complete rewrite and stabilization of the test suite.
  • Reorganization of test architecture (unit, system, documentation).
  • Improved compatibility reliability with Redmine 6.x.

Testing

  • Documentation-driven test suite.
  • New base test classes (ApplicationSlaDocumentationTestCase, ApplicationSystemTestCase).
  • Improved Capybara / Selenium integration.
  • Deterministic test ordering and suite selection via the SUITE environment variable.

Internal

  • Ruby 3 keyword arguments compatibility.
  • Fixture loading refactor and various cleanups.

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v2.0.2

2.0.1 (2026-02-01)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x, 4.2.x, 4.0.x.

Redmine 6.x — stabilization

  • Initial Redmine 6 compatibility adjustments.
  • Structural updates preparing the 2.0 stabilization.
  • SLA computation and rendering fixes.

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v2.0.1

2.0.0 (2026-02-01)

Compatible with Redmine 6.1.x, 6.0.x, 5.1.x, 5.0.x, 4.2.x, 4.1.x, 4.0.x.

Stable release — Redmine 6.x

  • Official support for Redmine 6.x.
  • Rails / ActiveRecord compatibility adjustments.

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v2.0.0

1.0.0 (2025-11-22)

Compatible with Redmine 5.1.x, 5.0.x, 4.2.x, 4.1.x, 4.0.x, 3.4.x.

Stable release — Redmine 5.x

  • First major stable release.
  • Compatibility updated for Redmine 5.x.

Full details: https://github.com/likehopper/redmine_sla/releases/tag/v1.0.0

0.0.9 (2023-06-04)

Compatible with Redmine 5.0.x, 4.2.x, 4.1.x, 4.0.x, 3.4.x.

Stable release — Redmine 4.x

  • First public release !

Full details: https://github.com/likehopper/redmine_sla/releases/tag/0.0.9

User ratings

  by Like HOPPER 10 days ago

Feel free to use the fixtures to test the plugin !

  by Stefano Gensabella about 3 years ago

shoould provide template data to be able to test it.