# Release 3.1.1
Name: "mozzarella stick pink plane"
# Upgrading
See the upgrade documentation here (opens new window).
# Enhancements
# Webhooks (incubating)
Much anticipated and maximally useful.. Webhooks have landed in Rundeck! This new incubating feature empowers Rundeck to receive JSON events and direct them to jobs. Check out the Webhook Docs (opens new window) for instructions on enabling the feature and full details.

# Job Options
Job options display has been enhanced in the activities list and execution view. This should provide better visual separation between the option names and option values.

# Development
- Allow notification to use workflow exported variables #5139 (opens new window)
- API to list installed plugins #5259 (opens new window)
- Externalize Vue in webpack builds #5217 (opens new window)
# Docker
- Added ldap nestedGroups setting to remco template #5100 (opens new window)
# Misc
- 🌈 Upgrade font awesome to 5.10.2 #5269 (opens new window)
- Execution log parsing has been speed up to improve log loading speed #5253 (opens new window)
- New
scm_import
andscm_export
ACLs for job writers #5176 (opens new window)
# Bug Fixes
- Fix exception on average duration exceeded notification #5153 (opens new window)
- Plugin uninstaller can now uninstall manually installed plugins #5258 (opens new window)
- Fix error when editing jobs option with enforced values #5146 (opens new window)
- Display correct time on job activity page #5125 (opens new window)
# Issues
Milestone 3.1.1 (opens new window)
- cleanup argstring display in activity list and exec page (opens new window)
- Fix i18n in plugin repository UI (opens new window)
- Fix mispelled word. Fixes #5241. (opens new window)
- Upgrade font awesome to 5.10.2. Fixes #4756 (opens new window)
- Fix #5261. Do not set not null constraint on AuthToken type. (opens new window)
- (3.1.1-snapshot) db error on upgrade due to webhooks (opens new window)
- Turn off autocomplete on password field (opens new window)
- Fix #5193. Plugin uninstaller can now uninstall manually installed plugins (opens new window)
- Fix #5248. Option validator error (opens new window)
- Improve execution log parsing speed with CompileStatic (opens new window)
- Unable to restrict option to allowed values when using options provider plugin (opens new window)
- JSCH Documentation Plugin Broken (opens new window)
- Fix #5232 by adding the display attribute to PluginMeta. (opens new window)
- Docker - Add webhooks feature flag to template (opens new window)
- not able to install plugins from "plugin repository" UI (opens new window)
- Add creation date to project list on api (opens new window)
- Externalize Vue (opens new window)
- Fix #5125. Correct timezone offset on execution node status. (opens new window)
- Replaces job Status notification email using Pine Email Framework (opens new window)
- Tour plugin project configuration (opens new window)
- Tour plugins can't be configured at the project level (opens new window)
- Fixes #5147 Allow quotes in the middle of arguments to be interpreted as a single argument (opens new window)
- Update versions for plugins and libraries with reported vulnerabilities. (opens new window)
- New ACL for job writers #5078 (opens new window)
- Attempt to fix #4286 by putting a sync lock around the service loader. (opens new window)
- Fix: Job mail notifications respect allow unsanitized property (opens new window)
- Dedupe setps on stepctx (opens new window)
- Execution steps not fully loading (opens new window)
- Fix proxy initialization exception for avg duration notifications (opens new window)
- Avg Duration Exceeded Notification Triggers Exception (opens new window)
- Resource model generator with quoted args (opens new window)
- Load full option object with lazy values on session object #5131 (opens new window)
- fixing Scheduling using crontab displays warning (opens new window)
- Allow notification to use workflow exported variables #5061 (opens new window)
- Scheduling using crontab displays warning (opens new window)
- Upon saving the job after editing option, encounter error "failed to lazily initialize a collection of role: rundeck.Option.values, could not initialize proxy - no Session" (opens new window)
- Upgrade to 3.1.0 on ubuntu overwrites realm.properties (opens new window)
- Incorrect time on job activity page (opens new window)
- Improves readability of options in job executions, answers #5044 (opens new window)
- Docker - add ldap nestedGroups setting to remco template (opens new window)
- Bump mockito-all from 1.8.5 to 1.10.19 (opens new window)
- Bump commons-httpclient from 3.0.1 to 3.1 (opens new window)
- Bump asset-pipeline-grails from 2.14.7 to 3.0.10 (opens new window)
- Bump commonmark from 0.10.0 to 0.11.0 (opens new window)
- Bump sass-asset-pipeline from 3.0.5 to 3.0.10 (opens new window)
- Bump jaxb-api from 2.3.0 to 2.3.1 (opens new window)
- API to list installed plugins (opens new window)
- Consider plugin title in search (opens new window)
- Fix Rundeck ignoring custom config file (opens new window)
# Contributors
- Alberto Hormazabal
- Daniel Fernández (danifr)
- Deyan Stoykov (deyanstoykov)
- Greg Schueler (gschueler)
- Jaime Tobar (jtobard)
- Jesse Marple (jessemarple)
- Luis Toledo (ltamaster)
- ProTip
- Rune Philosof (runephilosof)
- Stephen Joyner (sjrd218)
- carlos (carlosrfranco)
# Bug Reporters
- G3NSVRV
- ProTip
- ahonor
- ahormazabal
- amendlik
- bradym
- carlosrfranco
- Daniel Fernández (danifr)
- deyanstoykov
- gschueler
- jessemarple
- jplassnibatt
- jtobard
- ltamaster
- menathor
- paulholden
- praveenag
- runephilosof
- sjrd218
- wkk1020