Changelog
[2026-03-16]
Added
- Changes and workflow runs can now be created via the event subscriber system. These activities will be tagged with the source event that triggered them, allowing you to click through to the source event in the GUI and view the event details.
Fixed
- OpsChain no longer reports an error for actions with the same name defined in different resources or namespaces.
- Resolved issue with step context validation for null requires_approval_from values.
- API documentation for the workflow create endpoint has been updated to include references to the
create_new_versionmeta attribute. - It is no longer possible to provide an empty array as the value for the
user_namesarray in therequires_approval_fromsetting.
Changed
- The workflow and change wait step notifications have been enhanced to provide additional information to the notified user.
- Stack traces in the event data are now displayed in a more readable format by the audit history screens.
[2026-03-13]
Important breaking changes
- OpsChain now requires the
OPSCHAIN_GUI_BASE_URLvariable to be included in yourvalues.yamlfile. This variable should specify the base URL for the OpsChain GUI (e.g.https://opschain.example.com). It is required to ensure links within external notifications are valid and the OpsChain API pod will fail to startup if it is not configured.
Added
- Agents running in OpsChain are now configured with access to the API. Learn more.
- When using automated certificate management, the generated CA is now automatically loaded into the trusted CA store in OpsChain.
- When starting an agent, the desired image SHA can now be specified. This must be an image SHA that corresponds with an image build for the same template version. This means the agent can't be started until an image build has succeeded for the current template version.
- Events for action generation and agent tasks are now included in the event list API.
- Users can now configure their Slack member id in their notification preferences to receive notifications via Slack (requires a global Slack bot channel to be configured in the administration screens).
- If users have an email address configured in their LDAP record, or they supply a value in their notification preferences, this will be used to send email notifications to the user. (requires a global SMTP channel to be configured in the administration screens).
- Workflow wait steps and approval steps now notify the relevant user(s) that the workflow is waiting for approval/to be continued
- Change approval steps now notify the relevant user(s) that the change is waiting for approval.
- Users can now elect to be notified when:
- properties or settings are changed for a project, environment or asset they have access to.
- various workflow events (started, cancelled, completed, failed) occur for workflows they have access to.
- various change events (started, cancelled, completed, failed) occur for changes they have access to.
- A new event subscription system has been implemented allowing filters to be created to identify specific OpsChain events and then perform tasks in response. These tasks can be calling external webhooks, sending notifications to users or channels, or running changes or workflows.
Changed
- Agents, builds, changes and workflow runs will now be blocked if the log aggregator is stuck or unresponsive to minimize the risk of log loss. If this happens for a prolonged time, an event will be logged every 5 minutes warning about the issue. Once the log aggregator is back online, the blocked resources will resume their operations normally.
- The
agent.shscript is now run with all OpsChain properties environment variables exported. - Agents can't be started until their image is built.
- The asset list API no longer includes the following fields:
mintmodel_valid,actions, anderb_file_content. These can be retrieved from the asset show API. - The worker image settings (
worker.image_tag,worker.name, andworker.repository) can now be overridden in change settings. - OpsChain action definitions now use less memory (RAM).
- The
requires_approval_fromsetting for change approvals now accepts an object consisting of an array of usernames and an array of LDAP groups. - The notify tab of the create change and create workflow run dialogs has been redesigned to reflect the new notification preferences and channels.
Fixed
- The performance for some critical API endpoints has been improved.
- Fixed a bug where changes wouldn't respect the
allow_parallel.changessetting. - The
opschain-show-propertiesandopschain-show-contextcommands no longer loginfomessages to standard out, which fixes their use in a Linux pipeline when using repository properties.
[2026-02-23]
Added
- The OpsChain helm chart now supports configuring environment variables in the opschain-image-registry pod. See the example in the chart values.yaml for reference.
Fixed
- OpsChain no longer attempts to connect to the LDAP server when LDAP authentication is not enabled.
[2026-02-20]
Added
- OpsChain now supports agents, a mechanism for executing long-running agents.
- New Agents UI pages now allow you to view agent info, status, logs and events, as well as add, update and manage agents.
- New Agent settings section added under
Administration -> Configuration. - MintModel compare screen now automatically loads the last two MintModels for comparison.
- Text on the titlebar of all dialogs is now selectable and doesn't drag the dialog when trying to select text.
Changed
- Template versions Git SHA's are now only refreshed if the Git revision is changed, or the fetch is specifically requested.
- All settings are now encrypted at rest.
- The log aggregator now buffers logs in disk rather than memory, reducing the risk of losing logs if Fluentd can't flush them. The PVC size can be configured via the
logAggregator.volume.sizesetting in yourvalues.yamlfile. The default value is1GB. - Logs from step runners, template version action generation and agent tasks will now be buffered and their respective pods will try forwarding them to the log aggregator for up to 5 minutes before these logs are lost. Workers will now try forwarding change, step, build and workflow run transitions logs to the log aggregator until their memory buffers are full. If that happens, the logs will be written directly to the database, meaning they won't be sent to your additional log output plugins in case of a persistent log aggregator failure.
- The
memberscolumn from the LDAP groups table has been temporarily removed for an upcoming API change. - Visual overhaul to headers across all pages for a consistent look and feel focusing on UX improvements.
- All pages share the same header with distinct actionable sections for info, navigation, and context aware actions.
- Header badges to clearly differentiate between pages.
- Breadcrumbs are visually more subtle and now show dropdowns for listing workflows as well.
- Various fixes to workflow editor for increased reliability when editing details.
Fixed
- MintModel ERB rendering has been fixed.
- Fetch failures that are caused by remote files not existing now reflect this rather than reporting that the Git remote does not exist.
- Viewing converged properties for templated assets now include template-specific properties
- UI/UX fixes:
- Pressing escape after search on canvas view (tree renderers) closes the search box instead of not doing anything.
- The date and time selector component now has more compact time fields, ensuring they don't overflow the calendar's width area.
- The bookmarks component now shows the node type instead of the word "node".
- Various fixes to the workflow editor for increased reliability when editing details.
- The node navigation is now split in two sections (navigation and settings/properties) and has a refreshed design.
Known limitations
- OpsChain agents debug logs are only available for the
event-ttlas configured in k3s. This is one hour by default.
[2026-01-27]
Important breaking changes
- OpsChain database is now managed by the CNPG operator. Configuring the operator is required to successfully upgrade to this version. Before upgrading, follow the steps described in the install the CNPG operator section of the high availability setup guide to install the operator in your cluster. We recommend you read the entire guide to understand the upgrade implications and the new features provided by the operator. After installing the CNPG operator, follow the steps in the DB upgrade guide to complete the upgrade process.
Added
- Changes (and scheduled changes) now support settings overrides. The
Dockerfilepath, the baserunnerimage settings, theworkerimage settings, themintmodel_executorimage settings, thepod_per_change_stepsetting, theremove_change_worker_podsetting, and therepo_foldercan now be overridden for a change. - Workflow runs now provide logging, highlighting the start and end of each step within the workflow run.
- Workflow wait steps now support a
reset_on_retryboolean attribute, allowing you to configure whether the wait step should be reset when the workflow run is retried. By default, this is set totrueto ensure approval/wait steps require a response during the retry. Note: if all steps that depend on the wait step were successful, the wait step will not be retried. - The current build context is now logged at the start of change logs, providing details of the Git revision and commit message the change is running from.
- The change retry API endpoint now accepts the
refresh_shaattribute. This allows you to retry incomplete change steps, using the latest commit for the branch/tag the change was created for. If the change is for a templated asset, this flag will cause the change to be retried using the template version currently assigned to the asset. - Workflow steps and change steps now include a
step_sequenceattribute, reflecting their position within the parent's step tree. - The change and workflow run GUI pages now support retry and repeat when displaying existing activities.
- The GUI breadcrumb connectors now provide a list of child items allowing you to quickly navigate to other items within the same parent.
Fixed
- Change worker pod startup failure is now reported in the relevant change's logs.
- Usernames are no longer case-sensitive.
- Active workflow runs can longer report a blocking queue.
- Workflow run retries no longer duplicate successful child changes and workflow runs.
- Workflow and change retries now respect the existing queue, ensuring they only start when the queue allows them to.
- Error reporting from the MintModel generation process has been standardised to ensure the JSON error response is structured consistently.
- The default memory limit for the opschain image registry has been increased to 1GiB to prevent out-of-memory issues.
- The user who approved/continued a workflow wait step is now copied to the retried workflow run's wait step.
- Various GUI formatting and overflow issues have been resolved.
[2025-12-11]
Added
- Added the following optional settings to the
values.yamlenvironment variables to provide additional LDAP configuration options:OPSCHAIN_LDAP_GROUPS_FILTER,OPSCHAIN_LDAP_USERS_FILTER,OPSCHAIN_LDAP_LOGGING_ENABLEDandOPSCHAIN_LDAP_USE_ADMIN_TO_BIND.
Fixed
- Fixed support for group filters in the Administration LDAP settings page.
[2025-12-10]
Added
- Template versions now have their own properties that will be applied to all assets using that template version.
- Introduced LDAP caching to reduce OpsChain's load on external LDAP servers.
- Template versions can now be locked to prevent updates to their attributes and related Git commit SHA.
- Improved logging of pod startup and shutdown events to assist with debugging.
- Change property overrides can now be modified within actions by using the
OpsChain.properties_for(:change)method. - Converged step properties can now be accessed for all change steps. Including the
action_stagequery parameter aspreorpostallows the caller to access the properties before or after each step has run. - Additional LDAP settings have been incorporated into the OpsChain settings to provide support for user and group filters.
- Workflow run override properties are now stored with each workflow run and are visible in the GUI.
Changed
- OpsChain's Helm charts are now available via OCI registry. Visit the installation documentation for more information on how to install and upgrade OpsChain using the new Helm charts.
- To improve caching, the default Dockerfile no longer copies the
.gitdirectory into the image by default. See the custom step runner Dockerfile documentation to see how to use a custom Dockerfile which will allow the contents of the.gitdirectory to be added to the image. - Build Dockerfiles and base images are now configurable via node-specific settings.
- Trow has been upgraded 0.9.2 and now has its own garbage collection process - removing the need for the OpsChain image registry garbage collector deployment.
- Fluentd has been updated to 1.19.1-2.1 deployment.
- Templates are now accessed via their UUID rather than template code to enable support for archiving templates.
- Introduced session specific caching of Rails cache values to reduce database load.
- The Database information panels have been enhanced in the Administration pages to provide more in-depth information.
- Authorisation meta has been added to template and template version API responses to indicate whether the user is authorised to update the resource.
- Workflow metadata is now copied into child changes and workflow runs when they are created.
- By default, duplicate definitions of an action no longer extend the action and instead raise an exception. This can be overridden by supplying the
ignore_defined: truekeyword argument.
Fixed
- Workflow status and change status background jobs have been optimized to ensure change and workflow statuses are updated in a timely manner.
- Worker pods are now correctly removed when a single pod change root step is cancelled.
- Uncategorised log lines are now assigned the action category by default.
- OpsChain worker images no longer report warnings relating to calling
fields,countandrecordsmethods on nil. - OpsChain worker heartbeat logic has been improved to resolve workers being restarted by Kubernetes.
- The API response performance has been improved across the majority of endpoints.
- The file name of invalid properties files, whether OpsChain file properties or Git repository properties files are reported in the action logs.
[2025-11-12]
Added
- Logs now include a category field. All the logs coming from OpsChain will be either
output,systemorstatus. Logs generated from user defined actions will have theactioncategory. - A helper UI has been added to allow uploading files to properties and optionally save the file content to the secret vault.
Changed
- The base runner Dockerfile has been optimized for performance. By default, it will no longer include the Git repository's
.gitfolder in the image. - Some workflow schemas have been updated. Refer to the API documentation for the latest version.
- The workflow editor has been improved for better usability.
- The log lines are now colored based on their category.
Important breaking changes
- OpsChain image registry has been updated and now includes an internal garbage collector. The upgrade process requires stopping OpsChain and running a few steps to ensure the garbage collector is working correctly:
- Stop OpsChain
- Delete the old statefulset:
kubectl delete statefulset.apps/opschain-image-registry - Delete the old garbage collector deployment:
kubectl delete deployment.apps/opschain-image-registry-gc - Deploy OpsChain with the new version and wait for it to be ready.
- Get the image registry persistent volume:
PV_NAME=$(kubectl get pvc/data-vol-opschain-image-registry-0 -o jsonpath='{.spec.volumeName}') - Ensure your KUBERNETES_NAMESPACE environment variable is set to the namespace of the OpsChain deployment. (e.g.
export KUBERNETES_NAMESPACE=opschain) - Go into the persistent volume's folder in the host filesystem (the path may vary if you are not using k3s):
cd /var/lib/rancher/k3s/storage/${PV_NAME}_${KUBERNETES_NAMESPACE}_data-vol-opschain-image-registry-0 - Update the file ownership:
chown -R 1000:3000 * - Enter the OpsChain API container:
kubectl exec -it deploy/opschain-api -- "/usr/bin/container_start.sh" "/bin/bash" - Once inside the container, do a manual copy of the runner images into the image registry:
bundle exec rake opschain:copy_runner_image
Fixed
- The policy rule editor now supports uppercase characters, dashes and colons in the rule name to allow matching namespaced actions.
[2025-11-03]
Added
- A button to refetch template versions has been added to the template version list page, allowing you to force a Git fetch of the template version's Git repository. If the template is in use by an asset, the actions for that asset will be regenerated.
Changed
- The workflow editor has been reworked to improve usability and performance.
- The policy editor and policy assignment screens have been improved for better usability.
Fixed
- The change properties tab has been improved and now shows the properties of every step in a change.
- It is no longer possible to remove all versions of a workflow.
- The workflow requires approval from field can now accept spaces between the user and group names.
- DSL's
exec_commandnow accepts quoted strings with spaces in the command arguments. - DSL's
exec_commandnow logs the command being executed before running it. Pass the argumentlog_command: falseif you do not wish to output the command. - The OpsChain logger's log level can now be set for an individual change by using OpsChain environment properties. Set the OPSCHAIN_LOG_LEVEL to a valid ruby Logger log level, as described in the OpsChain logger documentation.
[2025-10-17]
Added
- The
decrypt_vault_valuekeyword argument has been added to theOpsChain.secret_vault.getmethod. See the documentation for more information. - A
logalias has been added for theOpsChain.loggermethod instance. See the documentation for more information. - New event types have been added to track the encryption and decryption of secrets.
- A new
CA certificatessection has been added to the system configuration page to allow you to upload and manage CA certificates.
Changed
- The global secret vault settings are temporarily not configurable via the GUI. Update them when patching OpsChain or use node-specific settings.
- The OpsChain version and image runner version are now automatically updated when patching OpsChain. If you are running a custom runner image by default, the version will remain the same.
- OpsChain's Ruby version has been upgraded to 3.4.6.
- The lookup secrets endpoint has been improved to accept multiple secrets via the request body, see the API documentation for more information.
Fixed
- The performance of the activities page has been improved.
- OpsChain will now correctly use the
OPSCHAIN_REPO_FOLDERsetting when fetching the Dockerfile from the Git repository. If the setting is not set, the default value of.opschainwill be used.
[2025-09-30]
Added
- Breaking change - The out-of-the-box secret vault now provides a UI for managing secrets. Before patching, ensure your
values.yamlfile includes the settings described in the mandatory secret vault settings section. - Changes will now have logs indicating the lifecycle of their pods.
Changed
- The OpsChain licensing mechanism has been replaced with a new mechanism that allows you to manage your OpsChain licence via the OpsChain API.
- The out-of-the-box secret vault is now automatically unsealed whenever the API is started.
- Instead of creating a new version for every change in a workflow, workflow versions will now be updated. Note that workflow versions that have run or are scheduled to run cannot be updated and a new version must be created before modifying.
- Authorisation rules will now take in consideration the user's auth provider when determining whether to allow or deny access.
- The inherited properties screen now provides a detailed history of the asset's properties, allowing you to compare versions at any point in the assets history..
- The color scheme of the step trees has been improved for better readability.
Fixed
- The default secret vault settings are now shown in the system configuration page and returned as part of the system configuration settings API response.
- The performance of starting templated changes has been improved.
[2025-09-11]
Added
- A
/secretsendpoint under a node path to lookup a value of a secret. See the API documentation for more details. - Some default settings can now be configured via the OpsChain API. See the documentation for reference.
- A new operations endpoint has been added to the API, providing specific endpoints to fetch OpsChain's Kubernetes nodes' information and metrics, worker pods and database statuses. See the API documentation for more details.
- Historical data for jobs run in OpsChain queues is now persisted within OpsChain.
- An
/admin/queuesendpoint has been introduced to allow users to be aware of their change's status and progress within OpsChain's internal queue system. See the API documentation for more details. - A
/jobsendpoint has been introduced to allow users to fetch detailed information about any job's progress within OpsChain. The jobs can be filtered by their respective node's id or path, execution time, status and other details. See the API documentation for more details. - A new
allow_parallel.runs_of_same_changehas been added to control whether the same change can be run multiple times in parallel. See the documentation for more information. - Workflows now support
- multi-target change steps that will be automatically resolved into a stage step and child change steps.
- runtime properties that can be used to populate any variables in the workflow YAML.
- Workflow change steps can now include override_properties that will be supplied to the change when it is run.
- Assets now generate a list of available actions they can run, based on the template version they have been assigned.
- The OpsChain Log Aggregator now includes the Splunk plugin by default.
- Additional output settings configuration can now be supplied to the OpsChain Log Aggregator by populating the
log_aggregator_additional_output_settingssetting. - A
/trust_storeendpoint has been introduced, allowing custom CA certificates to be added to OpsChain's trust store. - A
<node_path>/file_propertiesendpoint has been introduced, allowing OpsChain file properties to be uploaded directly. - The
/scheduled_activities/<id>endpoint now supports updating scheduled changes and workflow runs. See the API documentation - The workflow run step logs and change step logs index endpoints can now include logs from their children by including the
include_child_stepsquery parameter. - OpsChain now supports running changes on a single worker pod. This allows steps to share data via the pod filesystem and dramatically improves performance. The
pod_per_change_stepsetting can be configured globally and overridden as required at the project, environment or asset level. - Ability to run a change or a workflow from anywhere via a new dropdown on the header.
- Can also be invoked via keyboard shortcuts
Alt/⌥ + CandAlt/⌥ + W.
- Can also be invoked via keyboard shortcuts
- A new Administration option in the sidebar which includes
- A new monitoring tab to view all system information and statuses.
- A visual configuration editor with option to switch to advance mode for editing full JSON.
- A data cleanup tab for creating and managing cleaup jobs.
- A comprehensive policy editor for managing policies and assignments.
- A way to add and show sitewide banners for announcements and info.
Changed
- Replaced the existing GUI with a new version following user feedback.
- The
allow_parallel_changesandallow_parallel_runs_of_same_workflowsettings have been grouped under theallow_parallelheading. See the documentation for the updated version. - The
allow_parallel.changessetting has been set totrueby default and can now be configured by projects, environments and assets. - The data retention mechanism has been replaced by data cleanup definitions, offering more flexible scheduling and control for removing old data. See the data cleaning documentation for reference.
- When querying log lines that have been archived, the response now includes the "gone" HTTP (410) status code.
- All index endpoints now return
- an empty response where the user is not authorised to view the resource.
- an authorisation metadata attribute indicating whether the user is authorised to create/update the resource.
- All show endpoints now return a "not found" HTTP (404) status code where the user is not authorised to view the resource.
- Change and WorkflowRun notifications have been overhauled with options to notify on specific events and send notifications to various target platforms. See the notifications documentation for reference.
- Asset templates are now linked to existing project Git remotes rather than creating one per template.
- Project Git repositories no longer require a Gemfile if they only use Gem's already available on the OpsChain runner.
- The
change_log_retention_daysandevent_retention_dayssettings have now been grouped under adata_retentionparent setting. - Templated changes now display the step tree when launched rather than requiring a dry run step to derive the tree.
- Status log messages no longer include timestamps within the log message itself and the log created_at timestamp should be used instead.
- The
includequery parameter can now be supplied as an empty value to remove all included models from the response. - Upgraded Buildkit to v0.23.1.
- Upgraded Fluentd to v1.18.0-1.2.
- Upgraded Ruby to 3.3.6.
- Upgraded all images to AlmaLinux 9.6.
Fixed
- The performance of the cancel change and cancel workflow run API endpoints has been improved.
- The change retry and workflow run retry logic has been re-written to improve reliability and performance.
- Older blocked workflows no longer block new workflows from being executed.
- Records are no longer duplicated where a user has multiple authorisation rules relating to the same resource.
- Workflow run retries now re-create the step tree to ensure any changes to the workflow are applied.
- Git remotes using SSH URLs will use
gitas the default username if one is not supplied in the remote definition. - Retrying a workflow run initiated change no longer includes the workflow run in the new change's metadata.
- Workflow change steps that reference a template version whose actions have not been resolved will now fail with an appropriate error message.
Removed
- The create log lines endpoint has been removed, log lines are now created in the database via the OpsChain Log Aggregator.
[2025-04-25]
Added
- Local user authentication can be activated via the
OPSCHAIN_AUTH_STRATEGYenvironment variable. See the authentication settings documentation for reference. - It's now possible to create and login as local user. See the creating an OpsChain user documentation for reference.
- Users can now be assigned authorisation policy update and create permissions for a specific project, environment or asset.
- The Step API now allows you to update a failed change step, flagging it to be skipped when the change is retried.
Changed
- The manage security screens have been redesigned to improve usability and simplify the process of creating and assigning authorisation policies.
[2025-03-28]
Added
- Breaking change Authorisation is now applied via authorisation policies. See the security documentation for reference.
- Creating, updating or removing authorisation rules and policies will now create system events. See the events documentation for reference.
- The change creation API now accepts a
property_overridesattribute, allowing you to supply additional JSON properties to override your repository and database properties. - The change creation API now accepts a
template_versionattribute, allowing you to supply a different template_version to the one assigned to the asset. - The
/infoendpoint now includes the database version and API version information - Endpoints for deleting workflows and workflow versions are now available. Sending a DELETE request to the workflow versions index endpoint will delete all draft versions of the workflow. See the API documentation for more details.
Fixed
- Templated changes whose MintModel fails to generate will now end with an error.
- The APIs for updating a workflow and workflow versions now allow you to archive a workflow or specific workflow versions.
- Retried changes will now reuse the same version of properties as the original change.
[2025-03-10]
Changed
- The
api:<model>:finishevent for changes, steps, workflow runs and workflow steps has been replaced withsuccess,error,cancelandabortevents., See the events documentation for reference. - The GUI change step log viewer now includes the logs of all child steps. Their inclusion can be toggled via the
Include child logstoggle.
Fixed
- Fixed an issue where changes to some workflow attributes did not result in a new version being created
- Viewing inherited properties via the GUI or API now refreshes the OpsChain cache to ensure the latest properties are displayed.
- Generating a MintModel for an asset via the GUI or API now refreshes the OpsChain cache to ensure the latest properties are displayed.
- The
git fetchcommand output is now included in the failure event to assist with debugging.
[2025-03-05]
Added
- Workflows support has been added to the CLI. It's now possible to list, show, archive and execute workflows.
- The GUI now includes a comprehensive workflow editor, available via the workflows side menu.
Changed
- Breaking change - The
/api/automation_rulesendpoint has been replaced with/api/scheduled_activities. - Breaking change - Workflows are no longer held in the remote Git repository.
- Automated change rules are now known as Scheduled changes.
- Automated workflow rules are now known as Scheduled workflows.
- The Automation side menu entry has been replaced with Scheduled activity.
- The notification settings have been updated. See the notifications documentation for reference.
- The authorisation rules logic has changed. See the security documentation for reference.
[2025-02-13]
Added
- You can now list, show, archive and create new template versions from the CLI.
- It's now possible to update projects, environments and assets with the
updatecommand. - A new workflow editor with save and publish functionality.
- The GUI Include archived check box has been replaced with column filters on the archived column.
- Documentation on configuring user permissions after OpsChain installation.
Changed
- You can now provide multiple approvers on the
requires_approval_fromsettings. See the settings for reference.
[2025-01-31]
Added
- The CLI now supports listing and showing assets as well as editing an asset's properties and settings.
- The GUI now provides an option for clearing all filters on any list page.
- The table filters are now included in the URL to allow bookmarking and sharing with others.
Changed
- Breaking change - Storing properties in the Git repository now uses a different folder structure. See the Git repository storage options for reference.
- Keyboard shortcuts have been added to allow the table header filters to be accepted (ENTER) or cancelled (ESC)
Fixed
- Resolved various issues that restricted users' ability to interact with the table header column filters.
[2025-01-23]
Added
- The GUI now includes:
- filtering for all list pages
- The CLI now supports running changes in
Enterpriseprojects.
Changed
- When a Git remote creation or update fails, an event is now logged with the failure details.
- Project, environment and asset codes are now automatically converted to lowercase on creation.
[2025-01-15]
Added
- The step response now includes:
- an optional
namevalue - an optional
dataJSON object
- an optional
- OpsChain now includes a secret vault that can be used to store secrets. Secrets can be used within your
actions.rband referenced in your OpsChain properties. See the actions reference and properties reference for more information. - The GUI now includes:
- an activity page to display the most recent change and workflow activities
- a manage activity page where you can approve and continue changes and workflow runs
- a manage security page where you can view existing security rules
Changed
- Upgraded OpsChain DB image to PostgreSQL 17.1.
- Upgraded Rails to 7.1
Removed
- OpsChain no longer uses the OPA authorisation provider. Authorisation rules are now defined within OpsChain itself, using the authorisation rule API endpoints
[2024-06-17]
Added
- The properties and settings versions responses now include:
- the
created_attimestamp. - a link to the properties
owner.
- the
- The step response now include a link to the
changethat the step belongs to. - Enterprise projects now support workflows, allowing you to sequence multiple changes into a single workflow. Workflows also support wait and approval steps to control the flow of change execution.
- The GUI now allows you to compare different versions of properties and settings.
Changed
- The
properties_versionslink in the properties version response has been renamed toversions. - The
settings_versionslink in the settings versions response has been renamed toversions. error:controller:unhandledtype events are now assigned theerror:api:controller:unhandledtype to differentiate them from resource controller exceptions.RecordNotFound,UnpermittedParametersandUnsupportedIncludeErrorexceptions are no longer logged as events by the API.- If a fetch of a project's remote Git repository fails an event will be logged. Subsequent fetches within that hour will not log additional events to avoid flooding the event tables. Note: This event throttling also applies to the automated fetch that is performed every minute on
workflowsGit remotes. - OpsChain events can now be linked to more sources. See the events documentation for the full list.
- More OpsChain system events have been added. See the events documentation for the full list.
- The GUI JSON editor for properties and settings now expands to the full height available in the tab.
[2024-05-24]
Added
- The step
approveAPI now accepts an optional message - see the API documentation for more details. - The step
continueAPI now accepts an optional message - see the API documentation for more details. - A step
rejectAPI is now available to allow changes that are waiting for approval to be rejected - see the API documentation for more details. - The step API now includes the change ID - see the API documentation for more details.
- The CLI now supports rejecting changes that are waiting for approval via the
opschain change rejectsubcommand. - All GUI screens that display multiple records (e.g. projects, changes, assets, etc.) now include a
CSV exportbutton that allows you to export the records to a CSV file. - The GUI now includes an audit history menu option to provide a basic view of the OpsChain events. This view will be enhanced in future releases to provide mode detailed information and links to relevant event resources.
- For each project, environment and asset the GUI now includes:
- a commands button that displays a dialog with useful
curlcommands to access information about the resource via the API. - a bookmarks button that displays a dialog containing the bookmarks (URLs) that have been associated with that resource via the API.
- a commands button that displays a dialog with useful
- For standard projects, the GUI now provides the ability to:
- view automated changes
- execute changes
- For enterprise projects, in addition to the standard project features, the GUI now provides the ability to:
- create and update templates and template versions for assets.
- create changes to execute template actions for assets.
- generate, view and compare the MintModels associated with enterprise project assets.
- create workflows to run multiple changes in sequence.
- execute and view workflows.
Changed
- OpsChain will no longer automatically delete the Git repository folder when the remote has been archived. Learn more.
- The step API response
approved_byformat has changed to support the newmessagefield - see the API documentation for an example. - The step API response
continued_byformat has changed to support the newmessagefield - see the API documentation for an example. - Upgraded the runner images to be based on AlmaLinux 8.9.
- Upgraded Buildkit to 0.13.1.
- Upgraded cert-manager to v1.14.4.
- Upgraded Kong Helm chart to 2.25.0.
- Upgraded the CLI to Node.js version to 20.
- Upgraded OpsChain auth image to OPA 0.63.0.
- Upgraded OpsChain DB image to PostgreSQL 14.11.
- Upgraded OpsChain ingress image to Kong 3.6.1.
- Upgraded OpsChain kubectl image to kubectl v1.29.2.
- Upgraded OpsChain log aggregator image to Fluentd v1.16.5-1.0.
- Upgraded OpsChain Ansible example to Terraform 'hashicorp/aws' provider 5.44.0.
- Upgraded OpsChain Ansible, Confluent, Terraform and Weblogic examples to Terraform 1.7.5.
- Upgraded OpsChain Confluent example to Confluent 6.2.14.
- Upgraded OpsChain Confluent, Terraform and Weblogic examples to Terraform 'hashicorp/kubernetes' provider 2.27.0.
- Upgraded OpsChain Vault example to Vault 1.16.1.
[2023-10-24]
Added
- You can now create, view, and archive Git remotes via the OpsChain GUI.
- You can now archive projects, environments, and assets via the OpsChain GUI.
- The following log lines API endpoints now support a
downloadparameter, allowing you to download the log messages as a text file:- change logs:
/changes/<change_id>/log_lines- see the API documentation for more details. - step logs:
/steps/<step_id>/log_lines- see the API documentation for more details. - filtered logs:
/log_lines- see the API documentation for more details.
- change logs:
- The following API endpoints now support a
downloadparameter, allowing you to download the API results as a CSV file:- list changes:
/changes- see the API documentation for more details. - list projects:
/projects- see the API documentation for more details. - list project environments:
/projects/<project_code>/environments- see the API documentation for more details.
- list changes:
Changed
- Upgraded OpsChain Ansible example to Terraform 'hashicorp/aws' provider 5.22.0.
- Upgraded OpsChain Ansible, Confluent, Terraform and Weblogic examples to Terraform 1.6.2.
- Upgraded OpsChain Confluent example to Confluent 6.2.12.
- Upgraded OpsChain Vault example to Vault 1.15.0.
- Upgraded OpsChain auth image to OPA 0.57.1.
- Upgraded OpsChain kubectl image to kubectl v1.28.2.
- Upgraded OpsChain log aggregator image to Fluentd v1.16.2-1.1.
- Upgraded cert-manager to v1.13.1.
Removed
- Breaking change - Git remotes are no longer allowed to point to paths on the OpsChain API server instance's local filesystem.
- Breaking change - The
opschain utils create_sample_datacommand has been removed.
[2023-09-12]
Added
- The OpsChain GUI now supports:
- viewing projects, environments, and assets.
- creating projects, environments, and assets.
- editing the properties for projects, environments, and assets.
- editing the settings for projects, environments, and assets.
- creating changes
- You can now list, create, show and cancel changes for a specific environment via the
/projects/<project_code>/environments/<environment_code>/changesendpoint. See the API documentation for more details.
Changed
- Upgraded SSHKey Gem to 3.0.0.
- Upgraded Buildkit to 0.12.2.
- Upgraded Kong Helm chart to 2.25.0.
- Upgraded Kong ingress controller to 2.10.4.
- Upgraded OpsChain Ansible example to Terraform 'hashicorp/aws' provider 5.16.1.
- Upgraded OpsChain Ansible, Confluent, Terraform and Weblogic examples to Terraform 1.5.7.
- Upgraded OpsChain Confluent, Terraform and Weblogic examples to Terraform 'hashicorp/kubernetes' provider 2.23.0.
- Upgraded OpsChain DB image to PostgreSQL 14.9.
- Upgraded OpsChain Vault example to Vault 1.14.2.
- Upgraded OpsChain auth image to OPA 0.56.0.
- Upgraded OpsChain kubectl image to kubectl v1.28.1.
- Upgraded cert-manager to v1.12.4.
- Upgraded OpsChain ingress image to Kong 3.3.1.
- Upgraded OpsChain log aggregator image to Fluentd v1.16.2-1.0.
[2023-08-02]
Important breaking changes
- Modifiable database properties are no longer accessible via
OpsChain.environment.propertiesandOpsChain.project.properties. Use theOpsChain.properties_for(:environment)andOpsChain.properties_for(:project)methods instead. See the properties reference for more information. - Repository properties are no longer accessible via
OpsChain.repository.properties. Use theOpsChain.repository_propertiesmethod instead. See the properties reference for more information. OpsChain.contextno longer containsprojectandenvironmentdirectly. These can now be accessed viaOpsChain.context.parents, e.g.OpsChain.context.parents.project.- The format to prevent access to projects and environments in the OpsChain OPA security provider (in
security_configuration.json) has changed. - The changes get API no longer supports the
environment_{{attribute}}filter, insteadparent_{{attribute}}can be used. See the query examples to see the updated environment filter example.
Added
- Multi-project Git repositories can now include project specific repository properties.
- The project and environment specific repository properties can now be accessed via
OpsChain.repository_properties_for(:environment)andOpsChain.repository_properties_for(:project). See the properties reference for more information. OpsChain.properties_forhas been added for use inactions.rb, see the properties reference for more information.- Step specific logs are now available from the
/steps/<step_id>/log_linesAPI. The results can be filtered using the same filtering syntax as change log lines or events. - Events are now created when an automated change rule fails. Learn more in the automated changes documentation.
Changed
- Upgraded OpsChain DB image to PostgreSQL 14.8.
- Upgraded OpsChain ingress image to Kong 3.3.0.
- Upgraded OpsChain log aggregator image to Fluentd v1.16.1-1.0.
- Upgraded OpsChain runner images to Fluent Bit 2.0.14.
- Upgraded BuildKit to 0.12.0.
- Upgraded Kong Helm chart to 2.24.0.
- Upgraded Kong ingress controller to 2.10.3.
- Upgraded OpsChain Ansible example to Terraform 'hashicorp/aws' provider 5.8.0.
- Upgraded OpsChain Ansible, Confluent, Terraform and Weblogic examples to Terraform 1.5.3.
- Upgraded OpsChain Confluent example to Confluent 6.2.11.
- Upgraded OpsChain Confluent, Terraform and Weblogic examples to Terraform 'hashicorp/kubernetes' provider 2.22.0.
- Upgraded OpsChain Vault example to Vault 1.14.0.
- Upgraded OpsChain auth image to OPA 0.54.0.
- Upgraded OpsChain kubectl image to kubectl v1.27.3.
- Upgraded cert-manager to v1.12.2.
- Breaking change - The
project_properties_versionsandenvironment_properties_versionsrelationships are no longer returned in the/stepor/changeAPI response bodies. They have been replaced by theproperties_versionscollection which includes all the properties versions that were active when the relevant step started. See the API reference documentation to see an example of the new response format. - When a change or step fails, any un-executed steps in the same change will be set to the
abortedstate instead of remaining in thependingstate. - The
api:environments:*events have been renamed toapi:nodes:*. - Breaking change - The OpsChain getting started repo has been updated to reflect the changes to
OpsChain.context.
Removed
OpsChain.projectandOpsChain.environmentare no longer available in anactions.rb. Use the newOpsChain.properties_formethod instead.OpsChain.context.projectandOpsChain.context.environmentare no longer available in anactions.rb. They are now accessed viaOpsChain.context.parentsinstead, e.g.OpsChain.context.parents.project.
Fixed
- Fixed a bug where one change failing may result in multiple notifications being sent.
- Fixed a bug where commit-based automated change rules could keep creating new changes, even when no new commits were created.
[2023-06-07]
Important breaking changes
- The properties API no longer returns the version in the JSONAPI
meta(e.g.{ meta: { version: 1 } }) . It is now available in thedata(e.g.{ data: { attributes: { version: 1, data: ... } } }). - OpsChain project and environment properties can no longer include configuration under
{ opschain: { config: ... } }.- The list of Kubernetes secrets to include in the environment during build and runtime are now configured in
{ opschain: { 'env:build_secrets': [<secret names>], 'env:runner_secrets': [<secret names>], ... } }. See secrets for more information. - The project / environment settings that were previously configured under
{ opschain: { config: ... } }are now configured in the project and environment settings.
- The list of Kubernetes secrets to include in the environment during build and runtime are now configured in
Added
- OpsChain settings are now available via the
/api/settings/<settings_id>endpoint. Current and prior versions of the settings are available via the/api/settings/<settings_id>/versionsendpoint. The link to a project or environment's settings is available via thesettingsrelationshipin the JSON:API response for the relevant project or environment. - The CLI now provides
show-settings,set-settingsandedit-settingssubcommands for projects and environments. - OpsChain changes now support human approvals. Learn more in the getting started guide.
- The step API response now includes the
requires_approval_fromandapproved_byinformation for the step. - The change API response now includes the
requires_approval_fromandapproved_byinformation for the change's root step.
- The step API response now includes the
Changed
- Breaking change - The
approversvalue in the step API response has been renamed tocontinued_by.
Fixed
- Fixed a bug where changes could not be created with a Git SHA - they could still be created with a tag or a branch.
- Fixed a bug where listing actions in the OpsChain development environment would fail if any of its resource's controller's constructors require OpsChain properties environment variables.
[2023-05-12]
Added
- The CLI can now be configured to invoke a command to determine the API password rather than storing it in the configuration directly. Learn more.
[2023-05-05]
Added
- OpsChain can now be configured to send a notification when a change has failed using Apprise. Learn more.
- The logs for an individual step within a change can now be viewed via the OpsChain GUI by clicking on the step details icon for the relevant step on the change details page.
Changed
- Upgraded BuildKit to v0.11.6
- The macOS CLI is now distributed in a DMG archive and is notarised.
[2023-04-14]
Important breaking changes
- The OpsChain runner images have been upgraded to Ruby 3.1.4.
- Please ensure the
.ruby-versionin your project Git repositories is updated toruby-3.1.4.
- Please ensure the
Added
- Introduced a new
lazyDSL keyword to allow resource property values to be derived at runtime rather than when OpsChain parses the project'sactions.rbfile. See lazy property evaluation for more information.
Changed
- When a CLI
listcommand returns no records, and theoutputtype is JSON:- the CLI will now output
[]rather than an empty result. - if a JSONPath query is supplied the CLI will now exit with an error code 2 rather than 0.
- the CLI will now output
- Upgraded Bundler to 2.4.10.
- Upgraded BuildKit to v0.11.5.
- Upgraded Kong Helm chart to v2.16.5.
- Upgraded Kong ingress controller to v2.8.2.
- Upgraded Terraform 'hashicorp/aws' provider to 4.61.0 in the OpsChain Ansible example.
- Upgraded Terraform 'hashicorp/kubernetes' provider to 2.19.0 in the OpsChain Confluent, Terraform, and WebLogic examples.
- Upgraded Terraform to 1.4.4 in the OpsChain examples.
- Upgraded OpsChain log aggregator image to Fluentd 1.16.0-1.0.
- Upgraded Fluent Bit to v2.0.10.
- Upgraded OPA to v0.51.0.
- Upgraded Kubectl version to v1.25.8.
Fixed
- The
opschain change cancelcommand output has been fixed - previously it would output an error (Error: Couldn't DELETE Change) but the change would be cancelled. - The
opschain change createstep tree has been fixed - previously it would not update as the change progressed. - OpsChain GUI
- The root step connections failing to display when the tree is first constructed has been fixed
- The parallel children icon temporarily disappearing from the parent step when it starts running has been fixed