Release Notes: Difference between revisions

From Obsidian Scheduler
Jump to navigationJump to search
No edit summary
No edit summary
Tag: Manual revert
 
(137 intermediate revisions by the same user not shown)
Line 1: Line 1:
Please review our [[Upgrading_Obsidian|Upgrade Instructions]].
Please review our [[Upgrading_Obsidian|Upgrade Instructions]].
Read about our [[Planned_Releases|Planned Releases]].


Looking for old release notes? See [[Release_Notes_-_Older_Releases|Release Notes - Older Releases]].
Looking for old release notes? See [[Release_Notes_-_Older_Releases|Release Notes - Older Releases]].
Line 5: Line 7:
<div class="toclimit-2">__TOC__</div>
<div class="toclimit-2">__TOC__</div>


== Obsidian 4.8.0 ==  
== Obsidian 6.4.0 ==
To Be Released February 2019.
Released December 2025
 
=== Enhancements ===
* New [[Built-in_Jobs#Obsidian_Execution_Statistics_Job|Execution Statistics Job]] and built in [[Admin_Job_Stats|UI]] and [[Embedded_API#List_Stats|Embedded API]] and [[REST_Endpoints#GET_a_list_of_job_execution_statistics|REST API]]
 
=== Bug Fixes ===
 
* Fixed issue preventing [[Admin_Jobs#Deleting|job deletion]] when resubmissions of failed executions existed. Bug existed in UI and APIs.
* Fixed UI styling issue for [[Admin_Jobs#Deleting|job deletion]] where checkbox label did not appear.
 
== Obsidian 6.3.3 ==
Released November 2025
 
=== Enhancements ===
* [https://web.obsidianscheduler.com/obsidianapi/com/carfey/suite/security/LdapAuthenticator.html LDAPAuthenticator] supports configurable check user active override - com.carfey.suite.security.LdapAuthenticator.checkActiveAttribute
* [https://web.obsidianscheduler.com/obsidianapi/com/carfey/suite/security/LdapAuthenticator.html#isUserActive(javax.naming.directory.DirContext,java.lang.String) LDAPAuthenticator.isUserActive(DirContext,String)] visibility increased to protected to allow for functionality override in subclasses.
 
=== Bug Fixes ===
 
* Correct LdapAuthenticator case with delimited configuration where active check wasn't applied.
* [https://web.obsidianscheduler.com/obsidianapi/com/carfey/suite/security/LdapAuthenticator.html#isUserActive(javax.naming.directory.DirContext,java.lang.String) LDAPAuthenticator.isUserActive(DirContext,String)] javadoc added for isUserActive fully detailing the implementation.
 
== Obsidian 6.3.2 ==
Released October 2025
 
=== Enhancements ===
* Notification failures now trigger Dispatch category Error level event on first failure. For use in log alerts and Event Hooks.
 
=== Bug Fixes ===
 
* Notification failures no longer log on every failure reducing chatty failure logs.
* No-arg constructors added to multiple JSON serializable candidate POJOs missing them. Addresses GSON's workaround use of sun.misc.Unsafe.
 
== Obsidian 6.3.1 ==
Released August 2025
 
=== Bug Fixes ===
 
* Fix failure response codes on [[REST_Endpoints#GET_health_details_on_an_existing_scheduling_host|REST health endpoint]]
* Fix automatic upgrade issue from 6.1.0 to any of 6.2.0, 6.2.1, 6.3.0
* Fix auth issue when [[Admin_User_Management#Multi-Factor_Authentication_.28MFA.29|MFA]] is enabled that allows REST access when account has been locked out due to MFA not being setup.  [[Contact_the_Obsidian_Scheduler_Team|Contact us]] if you need workaround details for earlier versions.
* Fix native auth issue that allows REST access when account has been flagged as inactive.
 
== Obsidian 6.3.0 ==
Released July 2025


=== Features / Enhancements ===
=== Features / Enhancements ===
* [[Implementing_Jobs#SchedulableJob_Interface|Description]]/[[Implementing_Jobs#Parameterization|Parameter]] annotation support optional URLs arrays
* New built-in maintenance job [[Built-in_Jobs#Notification_Cleanup_Job|Delete Notifications Job]]
* New subscribable event for first occurrence of a host not running a job due to not being one of the fixed hosts.
* [http://obsidianscheduler.com/obsidianapi/com/carfey/ops/job/Context.html Context] class expanded to include some additional helpful attributes.


==== Bug Fixes ====
* Cron day of month expansion for [[Cron#Special_Character_Usage|day of week proximity]] using [[Cron#Examples|~]]
* [[Admin_Jobs#Nickname.2C_Class_and_Folder|Folder]] Selection in UI fixed to allow intermediary folders selections
* Annotation based job and chain configuration [[Initializing_and_Restoring#Annotation_Initialization|initialization]]
* [[Event_Hooks#Slack_Notifier|SlackEventHook]] fixed to include ERROR level
* Health endpoint with details for Job Queuer and Job Spawner - [[REST_Endpoints#GET_health_details_on_an_existing_scheduling_host|REST API]] or Embedded API [https://web.obsidianscheduler.com/obsidianapi/com/carfey/ops/api/embedded/HostManager.html#getHealth(java.lang.String) by hostname] or [https://web.obsidianscheduler.com/obsidianapi/com/carfey/ops/api/embedded/HostManager.html#getHealth(long) by host id]
* Logout from My User page fixed to redirect to Login page
* JDBC URL construction from parts [[Advanced_Configuration#Database_Properties|host/port/databaseName/dbType/oracleSid]]
* Fixed an issue with PostgreSQL DDL that could report wrong exception on execution failures.


== Obsidian 4.8.0 ==  
== Obsidian 6.2.1 ==
Released November 2018.
Released June 2025


=== Features / Enhancements ===
=== Bug Fixes ===
* Improve performance of job activity view when retrieving large job errors.


==== Bug Fixes ====
* Certain recoveries greater than 24 hours using new day of month proximity patterns introduced in 6.2.0 would result in no jobs spawning.
* Corrected an issue where in some situations job conflict priority calculation was incorrect.
* Migrations targeting 6.0.0 and greater that start earlier than 5.0.0 skip the 5.0.0 migration. Migrating to any 5.x version first and then to 6.0.0 or later works around this issue.
* Missed and Overlapped job events are now subscribable.


== Obsidian 4.7.1 ==  
== Obsidian 6.2.0 ==
Released October 2018.
Released May 2025


=== Features / Enhancements ===
=== Features / Enhancements ===
* New LDAP [[Advanced_Configuration#Authentication_Properties|Configuration Parameter]] to support additional group membership attributes.


==== Bug Fixes ====
* Cron day of month expansion for [[Cron#Special_Character_Usage|day of week proximity]] using [[Cron#Examples|< > ≥ ≤]]
* Correct Non-English Locale issues in database DDL/DML.
* Cron day of month expansion for [[Cron#Special_Character_Usage|weekday proximity]] using [[Cron#Examples|< > ≥ ≤]]
* [[Admin_Global_Parameters#Using_Global_Parameters_in_Jobs|Global Parameters]] reference in job edit page support mouseover/title display of actual value when permissions allow
* Host time displayed in [[Admin_Host_Status|hosts status]] in UI
* [[Admin_Job_Runtime_Preview|Runtime Preview]] optimizations for large date ranges in both UI and APIs.
 
=== Bug Fixes ===
 
* Combination of table prefix, sorting by clob column and Oracle metadata load failure no longer results in sql error. This occurred in the UI when viewing raw job history results and in API calls for job runtime results.


== Obsidian 4.7.0 ==  
== Obsidian 6.1.1 ==
Released September 2018.
Released March 2025


=== Features / Enhancements ===
=== Features / Enhancements ===
* Optimized [[Built-in_Jobs#Job_History_Cleanup_Job|JobHistoryCleanupJob]] for better performance and reduced locking
* New [[REST_Endpoints#DELETE_a_future_scheduled_runtime|REST]] and [[Embedded_API#Delete_a_Future_Scheduled_Runtime_for_a_Job|Embedded]] API function for targeted deletion of a single future one time submission including its parameters.
* Modified job_state index to improve job listing performance in cases where there are a large of future-dated [[Job_Features#Resubmission_.26_Ad_Hoc_Runs|ad-hoc submissions]].
* PostgreSQL 10 Support
* Oracle 12c support


==== Bug Fixes ====
* [[Authenticator#Implementation_of_a_Custom_Authenticator|Authenticator]] supports optional <code>authenticateREST()</code> method.
* Add missing job_history index on PostgreSQL installations
 
* Corrected issue where Get Schedules [[Embedded_API#List_a_Job.27s_Schedules|Embedded]] and [[REST_Endpoints#GET_a_list_of_an_existing_job.27s_schedules|REST]] APIs were setting all parameters to the ordinal of the last parameter.
=== Bug Fixes ===


== Obsidian 4.6.2 ==  
* Native authentication REST logins do not apply 'last login' timestamps. Avoids noisy error that was appearing in logs.
Released August 2018.
 
== Obsidian 6.1.0 ==
Released March 2025


=== Features / Enhancements ===
=== Features / Enhancements ===
* Reduce locking in certain cases of job delete.


==== Bug Fixes ====
* Native authentication now disables users after 4 invalid login attempts, either password or MFA code if applicable. Invalid attempts threshold is configurable.
* Corrected NPE when performing recovery on a job that has transitioned from Disabled to Enabled state.
* Native authentication last login datetime displayed on list user screen.
* Stronger licensing controls. Site and hardware licenses as of this version must be regenerated by Carfey Software and every 2 years. Contact us at licensing [[Image:atSymbol.png]] obsidianscheduler.com.


== Obsidian 4.6.1 ==  
=== Bug Fixes ===
Released July 2018.
 
* Native authentication password complexity pattern properly created and no longer overwritten on restart.
 
== Obsidian 6.0.1 ==
Released February 2025


=== Features / Enhancements ===
=== Features / Enhancements ===
* Performance improvements related to Job Result loading.
* Added informational logging for cases where licence key configuration will not applied.


==== Bug Fixes ====  
* [[Built-in_Jobs#File_Archive_Job|File Archive Job]] and [[Built-in_Jobs#File_Scanner_Job|File Scanner Job]] both now support min/max file sizes and minimum age.
* Corrected issue where stale admin_only hosts were not cleaned from database.
 
* Corrected issue where licence release failures were never logged due to shutdown state.
=== Bug Fixes ===
 
* Native authentication user updates now support long passwords.


== Obsidian 4.6.0 ==  
== Obsidian 6.0.0 ==
Released June 2018.
Released December 27, 2024


=== Features / Enhancements ===
=== Features / Enhancements ===
* [[Advanced_Configuration#Miscellaneous_Properties|Support]] for starting a scheduler node in paused state.
* Several performance improvements for [[Admin_Job_Activity|Job Activity]] view.


==== Bug Fixes ====
* Jakarta Servlet 5.0
* Removed class reference that was causing failures running Obsidian against Java 10.
** Servlet container for Web Admin must support Jakarta Servlet 5.0 (e.g. Tomcat 10, Jetty 11)
* [[Micronaut_Integration|Micronaut]] integration support
* [[Advanced_Configuration#Dependent_Libraries|Groovy 4]] support
* [[Advanced_Configuration#Properties.2FYaml_File|Yaml]] configuration support<ref>


== Obsidian 4.5.1 ==
If you are using automated installer files from previous releases, you will need to add an additional configuration item to choose between yaml and properties formats in UserInputPanel.0.
Released April 2018.  
<pre>
<com.izforge.izpack.panels.UserInputPanel id="UserInputPanel.0">
        <userInput>
......snip......
            <entry key="config.format" value="yaml" />
OR
            <entry key="config.format" value="properties" />
......snip......
        </userInput>
    </com.izforge.izpack.panels.UserInputPanel>
</pre></ref>
* Native authentication supports customizable [[Admin_Login#Password_Complexity|password complexity]] requirements
* XML support deprecated across the product including XML UI downloads, XML runner configurations and XML license leases.
** '''Starting January 1st 2027, XML license lease requests will stop being processed. All Obsidian instances running using internet-verified licenses (including licence key proxies) will be required to use release 6.0.0 or later as of January 1st 2027.'''
** Above noted XML support will be removed in the first Obsidian version released in 2027.
* License leases use JSON payloads.


=== Features / Enhancements ===
== Obsidian 5.5.1 ==
* Upgrade of [[Advanced_Configuration#Dependent_Libraries|bundled Groovy library]] which addresses known Groovy memory leaks.
Released December 16, 2024
* [[Getting_Started#Standalone_Scheduler|Standalone mode]] now attempts graceful shut down when SIGTERM is issued.
 
=== Bug Fixes ===


==== Bug Fixes ====
* Admin only (no scheduler) UI no longer generates event hook errors while running nor during shutdown
* [[Authenticator#Customizing_our_LDAP_Authenticator|LDAPAuthenticator]] no longer fails when combining delimited base.dn with search user.
* Quick start installer file no longer generates errors during installation
* Defensively protect against possible stack overflow in [[Spring_Integration#Dependency_Injection_via_Spring|SpringContextAware]] for cyclical annotation hierarchies.
* A few small web UI enhancements


== Obsidian 4.5.0 ==  
== Obsidian 5.5.0 ==
Released March 2018.
Released October 2024


=== Features / Enhancements ===
=== Features / Enhancements ===
* [[Event_Hooks|Custom Event Hooks]] allow for custom triggers on Obsidian events for things such as instant messaging, customized logging, etc.
* [[Event_Hooks#Slack_Notifier|Slack Notifier]] implemented as an [[Event_Hooks|Event Hook]]
* [[Implementing_Jobs#Async_Jobs|Async job]] support
* [[Implementing_Jobs#Dynamic_List_Providers|Dynamic List Provider]] support
* LDAP [[Authenticator|Authenticator]] to support delimited value [[Advanced_Configuration#Authentication_Properties|configurations]] for dn.base and Obsidian role/group mapping.
* Directory/File classes now provide folder/file in question throwing underlying filesystem exceptions.


==== Bug Fixes ====
* Event Hooks management available in [[Admin_Host_Status#Event_Hook_Status|UI]], [[Embedded_API#Event_Hook_Resume_or_Pause|Embedded API]] and [[REST_Endpoints#POST_event_hook_pause_or_resume|REST API]].
* [[Recovery_%26_Failover#Configurable_Job_Recovery|Last recovery]] cron patterns no longer fail crossing some boundaries
* [[Installation_Guide#Additional_configuration_items|Installer]] supports custom add on configurations    '''Potential breaking change to automated installer files.''' <ref>
* Not all job attributes were being applied in Obsidian [[Initializing_and_Restoring#Startup_Initialization|initialization file]]. Pickup buffer minutes wasn't being used in both create and update cases, job folder wasn't being used in update cases.
* Correct invalid Oracle index name


== Obsidian 4.4.1 ==  
If you are using automated installer files from previous releases, you will need to add a new section of xml as of Obsidian 5.5.0 to handle a new UserInputPanel. Immediately after the UserInputPanel.17 closing brace, add the following:
Released January 2018.  
<pre>
<com.izforge.izpack.panels.UserInputPanel id="UserInputPanel.18">
<userInput>
<entry key="extra.log4j2.properties.1" value=""/>
<entry key="extra.log4j2.properties.2" value=""/>
<entry key="extra.log4j2.properties.3" value=""/>
<entry key="extra.log4j2.properties.4" value=""/>
<entry key="extra.log4j2.properties.5" value=""/>
<entry key="extra.log4j2.properties.6" value=""/>
<entry key="extra.log4j2.properties.7" value=""/>
<entry key="extra.log4j2.properties.8" value=""/>
<entry key="extra.log4j2.properties.9" value=""/>
<entry key="extra.log4j2.properties.10" value=""/>
<entry key="extra.log4j2.properties.11" value=""/>
<entry key="extra.log4j2.properties.12" value=""/>
<entry key="extra.log4j2.properties.13" value=""/>
<entry key="extra.log4j2.properties.14" value=""/>
<entry key="extra.log4j2.properties.15" value=""/>
<entry key="extra.log4j2.properties.16" value=""/>
<entry key="extra.log4j2.properties.17" value=""/>
<entry key="extra.log4j2.properties.18" value=""/>
<entry key="extra.log4j2.properties.19" value=""/>
<entry key="extra.log4j2.properties.20" value=""/>
<entry key="extra.carfey.properties.1" value=""/>
<entry key="extra.carfey.properties.2" value=""/>
<entry key="extra.carfey.properties.3" value=""/>
<entry key="extra.carfey.properties.4" value=""/>
<entry key="extra.carfey.properties.5" value=""/>
<entry key="extra.carfey.properties.6" value=""/>
<entry key="extra.carfey.properties.7" value=""/>
<entry key="extra.carfey.properties.8" value=""/>
<entry key="extra.carfey.properties.9" value=""/>
<entry key="extra.carfey.properties.11" value=""/>
<entry key="extra.carfey.properties.10" value=""/>
<entry key="extra.carfey.properties.12" value=""/>
<entry key="extra.carfey.properties.13" value=""/>
<entry key="extra.carfey.properties.14" value=""/>
<entry key="extra.carfey.properties.15" value=""/>
<entry key="extra.carfey.properties.16" value=""/>
<entry key="extra.carfey.properties.17" value=""/>
<entry key="extra.carfey.properties.18" value=""/>
<entry key="extra.carfey.properties.19" value=""/>
<entry key="extra.carfey.properties.20" value=""/>
</userInput>
</com.izforge.izpack.panels.UserInputPanel>
</pre>
</ref>


=== Features / Enhancements ===
=== Bug Fixes ===
* Job Queuer, Spawn Locking, Last Recovery performance improvements, includes a new database index.


==== Bug Fixes ====
* Certain Cron expressions that fail to generate text descriptions no longer impact scheduling.
* Admin UI restores previous search filter settings. In cases where the last job with a given Job Folder was deleted, or for screens that filter by Job Nickname, the filter was still applied but not visible resulting in no results returned. Now, any invalid options are automatically removed.
* Text database columns were previously restricted to maximum length of MySQL implementation. Corrected to validate length via DB implementation.
* [[Recovery_%26_Failover#Configurable_Job_Recovery|Last Recovery]] in rare cases would recover too far back.


== Obsidian 4.4.0 ==  
== Obsidian 5.4.0 ==
Released October 2017.
Released June 2024


=== Features / Enhancements ===
=== Features / Enhancements ===
* Fixed Hosts now support [[Admin_Jobs#Advanced_Options | Blacklists]]
* Job Results now support [[Implementing_Jobs#Customizing_Job_Result_Serialization_and_Deserialization | Custom Serialization/Deserialization]] and default Gson JSON for complex objects.
* [[Advanced_Configuration#Properties_File|Configuration]] values may be specified as System Properties/Environment Variables.
* Obsidian upgrades now support [[Getting_Started#Disabling_DDL_Updates|data-only upgrades]] (structural changes are pre-applied offline).
* Job classes may now be partially introduced into the cluster and subsequently scheduled/executed without being attempted on missing hosts avoiding failures (via JobSpawner parameter ''skipSpawnAttemptsForUnavailableJobs'').
* [[Embedded API]] and [[REST API]]s now return basic audit values (created/updated user/time)


==== Bug Fixes ====
* Event Hooks available in [[Embedded_API#List_Event_Hooks|Embedded API]] and [[REST_Endpoints#GET_event_hooks|REST API]].
* Obsidian upgrades spanning multiple structural and data changes to a given table no longer fail.
* [[Advanced_Configuration#Dependent_Libraries|GSON library]] upgrade to support Java 21


== Obsidian 4.3.0 ==  
=== Bug Fixes ===
Released June 2017.
 
* Oracle identifier no longer too long when using prefixes.
 
== Obsidian 5.3.0 ==
Released March 2024


=== Features / Enhancements ===
=== Features / Enhancements ===
* [[REST_Endpoints#GET_licence_details_on_an_existing_scheduling_host |REST Endpoint]] and [[Embedded_API#Get_Licence_Health_by_Host|Embedded API]] for Licensing Health Check
* Support Markdown and customizable [[Description_%26_Parameter_Formatting|Formatting]] in Job description and Parameter description annotations
* Support timed wait as the new default on FOR UPDATE statements in Oracle - [[Advanced_Configuration#Database_Properties | Advanced Configuration - Database Properties]]. Old or customized behaviour possible via configuration properties.


==== Bug Fixes ====
* New [[Admin_Host_Status#Event_Hook_Status| Event Hooks Status]] available in the UI.
* Fix issue in [[Built-in_Jobs#Disabled_Job_Cleanup_Job|DisabledJobCleanupJob]] that fails to delete disabled jobs with chained and/or resubmitted records.


== Obsidian 4.2.1 ==  
=== Bug Fixes ===
Released May 2017.


==== Bug Fixes ====
* Some improvements throughout the [[Admin_Web_Application_Guide|Admin Web Application]] for autofocus of fields.
* [[Cron#Recurrence|Recurrence]] schedules in server recovery will fail if last runtime doesn't exist.
* Additional classes and interfaces added to [https://web.obsidianscheduler.com/obsidianapi/ javadoc].
* A job that is configured against a job class that has since been removed from the cluster can now be [[Admin_Jobs|loaded]]/[[Admin_Jobs#Deleting|deleted]] from the UI.
* Some cleanup in [https://web.obsidianscheduler.com/obsidianapi/ javadoc] documenation.
* [[Admin_Jobs#Deleting|Delete Job]] - If the delete operation fails for any reason and the operator leaves the modal and returns, the error from the previous operation was still visible.


== Obsidian 4.2.0 ==  
== Obsidian 5.2.1 ==  
Released March 2017.
Released January 2024


=== Features / Enhancements ===
=== Features / Enhancements ===
* Time Zone support in [[Cron|Cron]] patterns. Allows a cluster running in a single time zone to run jobs designated in different timezones.


==== Bug Fixes ====
* [[Built-in_Jobs#Maintenance_Jobs|Maintenance Jobs]] are now scheduled by default in new installations. Can be disabled via [[Advanced_Configuration#Miscellaneous_Properties|Configuration]] property.
* LAST [[Recovery_%26_Failover#Configurable_Job_Recovery|recovery mode]] wouldn't fire latest job on cluster recovery if the job had never fired or if the last runtime had been deleted by the maintenance job.
* New [[Event_Hooks#Standard_Output.2FError_Streams_Event_Hook | Standard Output/Error Streams Event Hook]].
* ALL [[Recovery_%26_Failover#Configurable_Job_Recovery|recovery mode]] would fire first missed job, but the remaining ones wouldn't run and would be set as OVERLAPPED.
* When creating a new schedule that overlaps one or more previously configured future runtimes with parameters, parameters are now deleted from the database.


=== Bug Fixes ===


== Obsidian 4.1.0 ==  
* Schedule descriptions are now updated after edits are applied in all UI screens and APIs.
Released February 2017.
 
== Obsidian 5.2.0 ==
Released December 2023


=== Features / Enhancements ===
=== Features / Enhancements ===
* [[Admin_Jobs#Nickname.2C_Class_and_Folder|Folder]]/tag support for jobs including a [[REST_Endpoints#GET_a_list_of_job_folders|REST]] endpoint and [[Embedded_API#List_Job_Folders|Embedded]] method.


==== Bug Fixes ====
* [[Cron]] & [[Cron#Recurrence|Recur]] patterns along with any use of [[Admin_Schedule_Aliases|Schedule Aliases]] now support plain language description of the patterns throughout the [[Admin_Web_Application_Guide|UI]], visible while hovering patterns, and in [[REST_Endpoints|REST]] and [[Embedded_API|Embedded]] API responses.
* UI issue in Job Execution Subscriptions and Templates - selected jobs now displaying correctly after save/refresh.
* All screens supporting UI exports now support JSON ([[Admin_Job_Activity#Exporting_Results|Job Activity]], [[Admin_Jobs#Exporting_Results|Jobs]], [[Admin_Job_Runtime_Preview#Exporting_Results|Runtime Previews]], [[Admin_Job_Chains#Job_Chain_Listing|Job Chains]], [[Admin_Logs#Exporting_Results|Logs]], [[Admin_Notifications#Exporting_Results|Sent Notifications]], [[Admin_User_Management#Exporting_Results|Users]], [[Admin_Custom_Calendars#Calendar_Listing|Calendars]])
* [[Initializing_and_Restoring#Transfer_or_Restore_a_Configuration|UpdateConfigurationAction]] no longer fails in non-native Authentication mode if an empty Users element is provided.
* All screens supporting UI exports and search criteria and/or inline filters now include any specified search criteria and filter text in Excel, XML and JSON downloads ([[Admin_Job_Activity#Exporting_Results|Job Activity]], [[Admin_Jobs#Exporting_Results|Jobs]], [[Admin_Job_Runtime_Preview#Exporting_Results|Runtime Previews]], [[Admin_Job_Chains#Job_Chain_Listing|Job Chains]], [[Admin_Logs#Exporting_Results|Logs]], [[Admin_Notifications#Exporting_Results|Sent Notifications]], [[Admin_User_Management#Exporting_Results|Users]])
* Support for [[Installation_Guide#Choosing_Email_Support|Jakarta EE mail]] '''Potential breaking change to automated installer files.''' <ref>


== Obsidian 4.0.2 ==  
If you are using automated installer files from previous releases and had email configured, you will need to add a new section of xml as of Obsidian 5.2.0 to handle a new UserInputPanel. Immediately after the UserInputPanel.16 closing brace, add the following:
Released October 2016.  
<pre>
<com.izforge.izpack.panels.UserInputPanel id="UserInputPanel.17">
    <userInput>
        <entry key="mail.type.selection" value="javax"/>
    </userInput>
</com.izforge.izpack.panels.UserInputPanel>
</pre>
</ref>
* New [[Event_Hooks#REST_Endpoint_Event_Hook|REST Endpoint Event Hook]]
* [[Key_Server_Proxy|Key Server proxy]] artifact obtained via web download during installation


=== Features / Enhancements ===
=== Bug Fixes ===
* [[Implementing_Jobs#Parameterization|Job Parameter]]s now support an optional <code>description</code> to be displayed in UI Help.
 
* Time picker buttons (hour, minute, AM/PM) in [[Admin_Job_Activity#Filtering|Job Activity filtering]] no longer change other elements of the selected time.
* Cron pattern with [[Cron#Special_Character_Usage|LW]] and any other non-L value in day position no longer also incorrectly evaluates to last day.


==== Bug Fixes ====
== Obsidian 5.1.1 ==
* Fixed an issue where [[Cron#Special_Character_Usage|Cron special character]] <code>L</code> would not work if specified as the only value in a field.
Released June 2023
* Fixed 3.8.0 MySQL upgrade script.
* Fixed an issue where Obsidian continued to attempt regular licence verification after a valid site licence had been configured.
* Fixed an issue where table prefixes weren't used in all lookups.


== Obsidian 4.0.1 ==  
=== Bug Fixes ===
Released August 2016.


==== Bug Fixes ====
* [[Authenticator|Native authentication]] no longer fails when user deletes are attempted from the UI.
* Fixed bug where a chained job that became conflicted would not evaluate chain conditions once it was no longer conflicted.
* Built in maintenance job [[Built-in_Jobs#Job_History_Cleanup_Job|Job History Cleanup]] no longer leaves deletion candidate CHAIN SKIPPED records in the JOB_HISTORY table in rare circumstances.
* Fixed catalina.base bug and dos line endings in jetty.sh script in bundled jetty server.
* Fixed job parameter edit box resizing bug.


== Obsidian 4.0.0 ==  
== Obsidian 5.1.0 ==
Released July 2016.
Released April 2023


=== Features / Enhancements ===
=== Features / Enhancements ===
* All New [http://obsidianscheduler.com/screenshots/ User Interface]
* Obsidian is now built using [[Getting_Started#Supported_Platforms|Java 7]]. No longer supports Java 6.
* [[Getting_Started#Really_Quick_Start_With_H2_and_Jetty|Quick Start]] now uses Jetty.
* Many [[Advanced_Configuration#Dependent_Libraries|updated libraries]] including some that had been updated to Java 7.
** ''Breaking Change'' New H2 library. If you're using the H2 database, you will want to look into [[Initializing_and_Restoring|exporting and restoring]] your Obsidian environment's configuration.
==== Bug Fixes ====
* [[REST_Endpoints#GET_a_system_restore_configuration|GetConfiguration]] filtering no longer fails when Templates/Subscriptions are job targeted.


== Obsidian 3.8.0 ==  
* [[Admin_Schedule_Aliases#Schedule_Alias_Fragments|Schedule Aliases]] now support fragments for configuration-time substitutions.
Released June 2016.
* New convenience job [[Built-in_Jobs#Database_File_Export_Job|Database File Export Job]] for generating basic file extracts from database queries.
* New convenience job [[Built-in_Jobs#REST_Invocation_Job|REST Invocation Job]] for making simple REST calls and storing results.
* Performance improvements in job failure handling.
 
== Obsidian 5.0.4 ==  
Released February 2022


=== Features / Enhancements ===
=== Features / Enhancements ===
* [[Job_Features#Resubmission_.26_Ad_Hoc_Runs|Ad Hoc]] runs now may be submitted multiple times per minute. [[Chaining|Chains]] may result in target jobs multiple times per minute. Existing behaviour of [[Admin_Jobs#Execution_.26_Pickup|Chain All]] job configuration remains unchanged.
* Log4j2 2.17.1 as fix for [https://logging.apache.org/log4j/2.x/security.html#log4j-2.17.1 RCE vulnerability] where attackers can modify log4j configuration.
* [[Built-in_Jobs#Script_Job|Script Job]] now supports best-effort interruption.
* Restore missing default log4j2 configuration in installation artifacts.
* APIs for GET System Restore Configuration support filtering for both [[REST_Endpoints#GET_a_system_restore_configuration|REST]] and [[Embedded_API#Get_System_Restore_Configuration|Embedded]].
* [[Implementing_Jobs#Parameterization|Context]] for job execution now supports retrieving the chain source job config, when applicable. See also the Javadoc for [http://obsidianscheduler.com/obsidianapi/com/carfey/ops/job/Context.html#getSourceConfig() Context].
* [[Getting_Started#Setting_Host_Names|Host names]] maximum length increased to 255 characters from 50.


==== Bug Fixes ====
== Obsidian 5.0.3 ==  
* Fixed an issue where [[Admin_Jobs#Execution_.26_Pickup|auto-interrupts]] were not firing.
Released December 2021
 
== Obsidian 3.7.1 ==  
Released April 2016.


=== Features / Enhancements ===
=== Features / Enhancements ===
* Job APIs windows now with improved locking/blocking on schedule modifications.
* Log4j2 2.17.0 as fix for [https://logging.apache.org/log4j/2.x/security.html#log4j-2.17.0 DOS vulnerability]
* Fix native login issue showing as inactive on some databases.


==== Bug Fixes ====  
== Obsidian 5.0.2 ==  
* [[REST_Endpoints#GET_a_system_restore_configuration|GET SystemRestoreConfiguration]] no longer fails when using non-native authentication.
Released December 2021


=== Features / Enhancements ===
* Log4j2 2.16.0 as permanent fix for [https://logging.apache.org/log4j/2.x/security.html#log4j-2.16.0 RCE vulnerability]


== Obsidian 3.7.0 ==  
== Obsidian 5.0.1 ==  
Released March 2016.
Released December 2021
==== Features / Enhancements ====
* New maintenance job [[Built-in_Jobs#Disabled_Job_Cleanup_Job|Disabled Job Cleanup Job]].
* Support for parameters that are [[Implementing_Jobs#Parameterization|required at runtime]].
* Filter [[REST_Endpoints#GET_a_list_of_an_existing_job.27s_schedules|job schedules endpoint]] by start date and/or end date.
* Return [[REST_Endpoints#GET_details_of_an_existing_job|runtime parameters]] for schedule-based one-time runs.


==== Bug Fixes ====  
=== Features / Enhancements ===
* [[Embedded_API#Get_System_Restore_Configuration|SystemRestoreConfiguration]] export was only including the last schedule of a job.
* Log4j2 2.15.0 as fix for [https://logging.apache.org/log4j/2.x/security.html#log4j-2.15.0 RCE vulnerability]
* Admin-only hosts fail on startup if not in consistent timezone as cluster.


== Obsidian 3.6.1 ==
=== Bug Fixes ===
Released February 2016.
* Fix sporadic native login issue on some databases.
==== Features / Enhancements ====  
* Formatting fix in quick installer file
* Enhance JobQueuer to reduce execution time when dealing with large numbers of chain-only jobs.


==== Bug Fixes ====  
== Obsidian 5.0.0 ==  
* Fix issue where job that is scheduled and chained is scheduled late after being chained.
Released August 2021.


== Obsidian 3.6.0 ==
=== Features / Enhancements ===
Released January 2016.
* Java 11 (minimum Java version)
==== Features / Enhancements ====
* [[Admin_Schedule_Aliases|Schedule Aliases]] including support in [[REST_Endpoints#Schedule_Alias_Endpoints|REST API]] and [[Embedded_API#ScheduleAliasManager_API|Embedded API]]
* [[Job_Forking|Forked Jobs]] offer support for [[Job_Forking#Interrupt_Support|interruption]].
* [[Admin_User_Management#Multi-Factor_Authentication_.28MFA.29|MFA Support]] for UI logins
* [[Implementing_Jobs#Job_Results|Job results]] support replacing job result value(s).
* New [[Admin_User_Management#User_Rights|Author and Operator]] roles
* [[Advanced_Configuration#Properties_File|Classpath com.carfey.properties]] no longer required. Applicable when using overrides.
* Convention-based role permissions by [[Admin_User_Management#Job_Folder_Rights|root job folder]] for Write, Author and Operator.<ref>
There is a possibility of a breaking change to Embedded or REST API use due to the need to change the [[Embedded_API#Enumerations|User Role enumeration]] from a Java enum to an enum-style class to support this feature. Bringing in the upgraded Obsidian library and compiling should reveal any such broken use of these enumerations. Needed changes should be minor and self-explanatory.</ref>
* Bundled Jetty 10.0.2
* Legacy Embedded API (from Obsidian 1.5) dropped
* Signal handler disabled by default. Enabled only via [[Advanced_Configuration#Miscellaneous_Properties|configuration]].
* Many [[Advanced_Configuration#Dependent_Libraries|library upgrades]].
* UI javascript library updates.


==== Bug Fixes ====
== Footnotes ==
* AutoInterrupt not being set on jobs from [[Initializing_and_Restoring#Jobs|System Restore]].
<references/>
* RunningHostManager can, in rare cases, evaluate job metadata as a HostInformation entry.
* Schedule calculation on outage looks back one minute too far when considering pickup buffer.

Latest revision as of 21:36, 21 January 2026

Please review our Upgrade Instructions.

Read about our Planned Releases.

Looking for old release notes? See Release Notes - Older Releases.

Obsidian 6.4.0

Released December 2025

Enhancements

Bug Fixes

  • Fixed issue preventing job deletion when resubmissions of failed executions existed. Bug existed in UI and APIs.
  • Fixed UI styling issue for job deletion where checkbox label did not appear.

Obsidian 6.3.3

Released November 2025

Enhancements

Bug Fixes

Obsidian 6.3.2

Released October 2025

Enhancements

  • Notification failures now trigger Dispatch category Error level event on first failure. For use in log alerts and Event Hooks.

Bug Fixes

  • Notification failures no longer log on every failure reducing chatty failure logs.
  • No-arg constructors added to multiple JSON serializable candidate POJOs missing them. Addresses GSON's workaround use of sun.misc.Unsafe.

Obsidian 6.3.1

Released August 2025

Bug Fixes

  • Fix failure response codes on REST health endpoint
  • Fix automatic upgrade issue from 6.1.0 to any of 6.2.0, 6.2.1, 6.3.0
  • Fix auth issue when MFA is enabled that allows REST access when account has been locked out due to MFA not being setup. Contact us if you need workaround details for earlier versions.
  • Fix native auth issue that allows REST access when account has been flagged as inactive.

Obsidian 6.3.0

Released July 2025

Features / Enhancements

Obsidian 6.2.1

Released June 2025

Bug Fixes

  • Certain recoveries greater than 24 hours using new day of month proximity patterns introduced in 6.2.0 would result in no jobs spawning.
  • Migrations targeting 6.0.0 and greater that start earlier than 5.0.0 skip the 5.0.0 migration. Migrating to any 5.x version first and then to 6.0.0 or later works around this issue.

Obsidian 6.2.0

Released May 2025

Features / Enhancements

Bug Fixes

  • Combination of table prefix, sorting by clob column and Oracle metadata load failure no longer results in sql error. This occurred in the UI when viewing raw job history results and in API calls for job runtime results.

Obsidian 6.1.1

Released March 2025

Features / Enhancements

Bug Fixes

  • Native authentication REST logins do not apply 'last login' timestamps. Avoids noisy error that was appearing in logs.

Obsidian 6.1.0

Released March 2025

Features / Enhancements

  • Native authentication now disables users after 4 invalid login attempts, either password or MFA code if applicable. Invalid attempts threshold is configurable.
  • Native authentication last login datetime displayed on list user screen.
  • Stronger licensing controls. Site and hardware licenses as of this version must be regenerated by Carfey Software and every 2 years. Contact us at licensing obsidianscheduler.com.

Bug Fixes

  • Native authentication password complexity pattern properly created and no longer overwritten on restart.

Obsidian 6.0.1

Released February 2025

Features / Enhancements

Bug Fixes

  • Native authentication user updates now support long passwords.

Obsidian 6.0.0

Released December 27, 2024

Features / Enhancements

  • Jakarta Servlet 5.0
    • Servlet container for Web Admin must support Jakarta Servlet 5.0 (e.g. Tomcat 10, Jetty 11)
  • Micronaut integration support
  • Groovy 4 support
  • Yaml configuration support[1]
  • Native authentication supports customizable password complexity requirements
  • XML support deprecated across the product including XML UI downloads, XML runner configurations and XML license leases.
    • Starting January 1st 2027, XML license lease requests will stop being processed. All Obsidian instances running using internet-verified licenses (including licence key proxies) will be required to use release 6.0.0 or later as of January 1st 2027.
    • Above noted XML support will be removed in the first Obsidian version released in 2027.
  • License leases use JSON payloads.

Obsidian 5.5.1

Released December 16, 2024

Bug Fixes

  • Admin only (no scheduler) UI no longer generates event hook errors while running nor during shutdown
  • Quick start installer file no longer generates errors during installation
  • A few small web UI enhancements

Obsidian 5.5.0

Released October 2024

Features / Enhancements

  • Event Hooks management available in UI, Embedded API and REST API.
  • Installer supports custom add on configurations Potential breaking change to automated installer files. [2]

Bug Fixes

  • Certain Cron expressions that fail to generate text descriptions no longer impact scheduling.
  • Text database columns were previously restricted to maximum length of MySQL implementation. Corrected to validate length via DB implementation.

Obsidian 5.4.0

Released June 2024

Features / Enhancements

Bug Fixes

  • Oracle identifier no longer too long when using prefixes.

Obsidian 5.3.0

Released March 2024

Features / Enhancements

Bug Fixes

Obsidian 5.2.1

Released January 2024

Features / Enhancements

Bug Fixes

  • Schedule descriptions are now updated after edits are applied in all UI screens and APIs.

Obsidian 5.2.0

Released December 2023

Features / Enhancements

Bug Fixes

  • Time picker buttons (hour, minute, AM/PM) in Job Activity filtering no longer change other elements of the selected time.
  • Cron pattern with LW and any other non-L value in day position no longer also incorrectly evaluates to last day.

Obsidian 5.1.1

Released June 2023

Bug Fixes

  • Native authentication no longer fails when user deletes are attempted from the UI.
  • Built in maintenance job Job History Cleanup no longer leaves deletion candidate CHAIN SKIPPED records in the JOB_HISTORY table in rare circumstances.

Obsidian 5.1.0

Released April 2023

Features / Enhancements

  • Schedule Aliases now support fragments for configuration-time substitutions.
  • New convenience job Database File Export Job for generating basic file extracts from database queries.
  • New convenience job REST Invocation Job for making simple REST calls and storing results.
  • Performance improvements in job failure handling.

Obsidian 5.0.4

Released February 2022

Features / Enhancements

  • Log4j2 2.17.1 as fix for RCE vulnerability where attackers can modify log4j configuration.
  • Restore missing default log4j2 configuration in installation artifacts.

Obsidian 5.0.3

Released December 2021

Features / Enhancements

  • Log4j2 2.17.0 as fix for DOS vulnerability
  • Fix native login issue showing as inactive on some databases.

Obsidian 5.0.2

Released December 2021

Features / Enhancements

Obsidian 5.0.1

Released December 2021

Features / Enhancements

Bug Fixes

  • Fix sporadic native login issue on some databases.
  • Formatting fix in quick installer file

Obsidian 5.0.0

Released August 2021.

Features / Enhancements

Footnotes

  1. If you are using automated installer files from previous releases, you will need to add an additional configuration item to choose between yaml and properties formats in UserInputPanel.0.
    <com.izforge.izpack.panels.UserInputPanel id="UserInputPanel.0">
            <userInput>
    ......snip......
                <entry key="config.format" value="yaml" />
    OR
                <entry key="config.format" value="properties" />
    ......snip......
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
    
  2. If you are using automated installer files from previous releases, you will need to add a new section of xml as of Obsidian 5.5.0 to handle a new UserInputPanel. Immediately after the UserInputPanel.17 closing brace, add the following:
    <com.izforge.izpack.panels.UserInputPanel id="UserInputPanel.18">
    	<userInput>
    		<entry key="extra.log4j2.properties.1" value=""/>
    		<entry key="extra.log4j2.properties.2" value=""/>
    		<entry key="extra.log4j2.properties.3" value=""/>
    		<entry key="extra.log4j2.properties.4" value=""/>
    		<entry key="extra.log4j2.properties.5" value=""/>
    		<entry key="extra.log4j2.properties.6" value=""/>
    		<entry key="extra.log4j2.properties.7" value=""/>
    		<entry key="extra.log4j2.properties.8" value=""/>
    		<entry key="extra.log4j2.properties.9" value=""/>
    		<entry key="extra.log4j2.properties.10" value=""/>
    		<entry key="extra.log4j2.properties.11" value=""/>
    		<entry key="extra.log4j2.properties.12" value=""/>
    		<entry key="extra.log4j2.properties.13" value=""/>
    		<entry key="extra.log4j2.properties.14" value=""/>
    		<entry key="extra.log4j2.properties.15" value=""/>
    		<entry key="extra.log4j2.properties.16" value=""/>
    		<entry key="extra.log4j2.properties.17" value=""/>
    		<entry key="extra.log4j2.properties.18" value=""/>
    		<entry key="extra.log4j2.properties.19" value=""/>
    		<entry key="extra.log4j2.properties.20" value=""/>
    		<entry key="extra.carfey.properties.1" value=""/>
    		<entry key="extra.carfey.properties.2" value=""/>
    		<entry key="extra.carfey.properties.3" value=""/>
    		<entry key="extra.carfey.properties.4" value=""/>
    		<entry key="extra.carfey.properties.5" value=""/>
    		<entry key="extra.carfey.properties.6" value=""/>
    		<entry key="extra.carfey.properties.7" value=""/>
    		<entry key="extra.carfey.properties.8" value=""/>
    		<entry key="extra.carfey.properties.9" value=""/>
    		<entry key="extra.carfey.properties.11" value=""/>
    		<entry key="extra.carfey.properties.10" value=""/>
    		<entry key="extra.carfey.properties.12" value=""/>
    		<entry key="extra.carfey.properties.13" value=""/>
    		<entry key="extra.carfey.properties.14" value=""/>
    		<entry key="extra.carfey.properties.15" value=""/>
    		<entry key="extra.carfey.properties.16" value=""/>
    		<entry key="extra.carfey.properties.17" value=""/>
    		<entry key="extra.carfey.properties.18" value=""/>
    		<entry key="extra.carfey.properties.19" value=""/>
    		<entry key="extra.carfey.properties.20" value=""/>
    	</userInput>
    </com.izforge.izpack.panels.UserInputPanel>
    
  3. If you are using automated installer files from previous releases and had email configured, you will need to add a new section of xml as of Obsidian 5.2.0 to handle a new UserInputPanel. Immediately after the UserInputPanel.16 closing brace, add the following:
    <com.izforge.izpack.panels.UserInputPanel id="UserInputPanel.17">
        <userInput>
            <entry key="mail.type.selection" value="javax"/>
        </userInput>
    </com.izforge.izpack.panels.UserInputPanel>
    
  4. There is a possibility of a breaking change to Embedded or REST API use due to the need to change the User Role enumeration from a Java enum to an enum-style class to support this feature. Bringing in the upgraded Obsidian library and compiling should reveal any such broken use of these enumerations. Needed changes should be minor and self-explanatory.