- concord-agent: fix the dependency resolution for plugins with non-default versions;
- concord-server: option to retrieve a single item in an inventory;
- concord-sdk: initial implementation of
LockService
; - concord-server: support for
activeProfiles
incron
triggers; - concord-server: new endpoint
GET /api/v2/process
. Returns a list of processes with optional filtering (including metadata) and pagination; - concord-sdk: new utility methods to work with the process variables;
- concord-server: initial support for in-process locks.
- concord-server: force logout users on any authentication error. Fixes the issue with "remember me" users with passwords changed between the server's restarts;
- repository: clean up and reset locally cached repositories on checkout;
- concord-server: skip invalid host names when processing Ansible events;
- concord-runner: more graceful handling of errors while saving "out" variables;
- concord-server: check for permissions when retrieving process
details via
GET /api/v2/process/{id}
. - concord-server, concord-agent: load the dependency version list from the server.
- concord-server: forks should keep the original
_main.json
minus thearguments
. This fixes the issue with forks andonCancel/onFailure
handlers which are using external dependencies; - concord-console: fixed the row selection bug in the process list component.
- concord-server: fix authorization of
cron
triggers.
- throw-tasks: now capable of throwing exceptions with custom payload: maps, lists, etc;
- concord-console: new "Wait Conditions" tab on the process status page;
- concord-server: new process configuration option
exclusiveExec
: restricts the process execution to one process at the time per project; - http: proxy support via
proxy
parameter; - concord-server: option to restrict the external events endpoint
/api/v1/events/{eventName}
to users with specific roles.
- ansible: Concord polices now receive interpolated variable values;
- concord-console: display empty checkpoint group for suspended processes;
- concord-runner: save and restore the last known variables for forked processes. This allows forks and onCancel/onError/etc handlers to access the parent process' variables;
- concord-server: use roles instead of user flags. E.g.
concordAdmin
role instead ofUSERS.IS_ADMIN
.
- concord-console: new flow selection dropdown in the process start popup.
- concord-server: do not copy the parent process' forms when forking a process;
- repository: fix the GIT clone bug for repositories without a
master
branch; - concord-console: fix the checkpoint grouping issue, preventing checkpoints from being correctly rendered;
- project-model: improve stacktraces in case of YAML parsing errors;
- concord-runner: fix the timestamp format in the
processLog
logger. Plugins such as Ansible should use the correct timestamp format now.
- concord-server: new form attribute
submittedBy
- automatically created for each form after it submitted, contains the form user information. Can be enabled withsaveSubmittedBy
form call option; - concord-console: add option to convert log timestamps into local time;
- concord-server, concord-runner: use UTC in log timestamps;
- concord-agent: additional logging while downloading the process' repository data and state;
- concord-server, concord-console: "Remember Me" cookie support;
- concord-console: list of checkpoints on the process status page;
- concord-runner: new method
context#form
, allows dynamic creation of forms in tasks, scripts and expressions; - concord-console: profile selection when starting a process;
- concord-tasks: new task
concordSecrets
.
- concord-server, concord-agent: disable
git.httpLowSpeedLimit
as it was causing major performance issues when cloning large repositories; - concord-server: reduce the default max session age to 30 minutes.
- concord-server: return the build's commit id in the server version response;
- vars plugin:
get
method can now return nested variables or fallback to a specified value; - concord-server: new endpoint
/api/v2/process/{id}
, allows customization of the data included in the response; - concord-server: new API endpoint
/api/v2/process/{id}/checkpoint
, allows restoring checkpoints with aGET
request; - concord-console: bring back the status column to the child process list;
- concord-server, project-model: allow expressions in the form's
runAs
parameter; - concord-server: close websocket channels when the maintenance mode is enabled;
- ansible: fixed an issue that caused the sensitive data masking
plugin (
concord_protectdata.py
) to fail on non-ASCII strings.
- concord-console: list of attachments added to the process status page;
- slack: when sending a message, the task now returns a
result
object.
- concord-console: flow events moved to a separate tab on the process status page;
- concord-server: copy the parent process' repository info to forked processes. This fixes an issue preventing process forks from working correctly.
- concord-server: store custom form files in the process state regardless of whether they are form a repository or not. This fixes an issue preventing custom forms from working correctly.
- concord-agent, concord-runner: log additional performance metrics
when running in
debug
mode; - dependency-manager: pre-sort dependency URIs to ensure stable dependency resolution order. This improves chances of getting a pre-forked JVM instead of spinning a new one;
- concord-console: fix potential data race when loading process checkpoints;
- concord-server: last modified date of process state files is now correctly calculated when importing the state.
- http: support for
PATCH
method.
- concord-server: fixed a bug preventing the Ansible events from being processed correctly;
- concord-console: fixed the parsing of GIT URLs on the repository list page;
- concord-server: fixed an issue preventing git submodules using the default (token-based) auth from working;
- concord-server: reject flow attachments if "Allow payload archives" is disabled in the project's settings;
- concord-console: disable "New Project" button if the user is not a member of the organization.
- concord-console: new "Checkpoint View" for projects;
- concord-console: allow addition of new elements for
type*
andtype+
form fields.
- concord-console: the process start popup now correctly displays the branch of the selected repository;
- concord-server: allow project-scoped secrets to be used when cloning the project's repositories;
- concord-agent: improved error logging when cloning repositories;
- concord-runner: fixed an issue preventing the runner from
terminating correctly on
java.lang.Error
; - concord-server: set the default session timeout to 10 hrs (was unlimited);
- concord-server: accept GitHub events without branch information (e.g. archive events).
- concord-server, concord-console: custom process list filters based on process metadata;
- concord-server: new
/api/v2/trigger
endpoint. Currently only the list method is provided; - concord-console: externalize extra links in the system menu, allow for environment-specific overrides;
- concord-console: ability to specify the entry point when starting a process;
- ansible: new
syntaxCheck
option to runansible-playbook --syntax-check
; - ansible: new
check
option to runansible-playbook --check
.
- concord-console: fixed an issue with error messages persisting after navigating out of the page;
- concord-server: fixed the logic of the Ansible event processor. Now it should correctly handle very long-running processes;
- concord-console: fixed a bug preventing the Ansible host filter from working correctly;
- concord-runner: fix the handling of process arguments when restoring a process from a checkpoint;
- concord-server, concord-agent: perform
git clone
on the Agent, keep only the changes in the DB; - bpm: updated to 0.51.0, fixed the resolution order of tasks and variables. Now flow variables can shadow the registered tasks;
- concord-console: prevent table overflow on process detail table;
- concord-console: move the Ansible stats table above the flow event table;
- concord-server: fixed the host status calculation in the Ansible
event processor. Now
SKIPPED
is correctly overwritten by other statuses in multi-step plays.
- ansible: use
/tmp/${USER}/ansible
as the defaultremote_tmp
; - concord-server: fixed a bug in
/api/service/process_portal
preventing the endpoint from working.
- project-model: support for programmatically-defined form fields;
- concord-server: new
useEventCommitId
parameter ofgithub
triggers; - concord-server:
repoBranchOrTag
andrepoCommitId
parameters to start a process with the override of the configured branch/tag/commitId values; - concord-console: pagination for the Ansible host list on the process status page;
- http: new parameter
ignoreErrors
- instead of throwing exceptions on unauthorized requests, the task returns the result object with the error; - slack: new
slackChannel
task for creating and archiving channels and groups; - concord-server: a metric gauge for the number of currently connected websocket clients;
- misc-tasks: new
datetime
task; - concord-server: pagination support for the child process list page;
- concord-server: support for policy inheritance;
- concord-server:
offset
andlimit
to the process checkpoint list endpoint; - concord-server: support for exposing form and nested values as process metadata;
- concord-server: support for default metadata values.
- docker: set the minimal Ansible version to 2.6.10;
- concord-project-model: forbid empty flow and form definitions;
- concord-server: use a single local clone per GIT URL;
- concord-server: fixed an issue, causing
onFailure
to fire up multiple times in clustered environments. - concord-server:
cron
triggers are now using the DB's time to calculate the schedule; - concord-console: improved repository validation error messages;
- concord-console: dropdown menus with optional values now correctly render the empty "value";
- concord-console: fixed a bug preventing the child process list from working correctly;
- concord-server, concord-console: Ansible events are now pre-processed and stored on the backend, making the Process Status page more responsive when working with large Ansible plays.
- concord-server: evaluate parsed expression value in custom form field's
allow
attribute - concord-server: change the (potential) partitioning key in
PROCESS_EVENTS
fromEVENT_DATE
toINSTANCE_CREATED_AT
.
- concord-queue-client: fixed potential OOM when handling connection errors.
- concord-server: add
meta
to the process checkpoint list endpoint. - concord-console: pagination support for the process list.
- concord-console: fixed a session handling bug. Now the session is correctly restored on UI reload.
- http-task:
connectTimeout
andsocketTimeout
parameters; - concord-server: GitHub triggers can now use
payload
field with the original event's data; - concord-server: new API endpoint to retrieve a list of processes including their status history and checkpoints;
- concord-console: a warning if a password stored as a secret is too weak;
- concord-agent: an endpoint to get the current status of the maintenance mode.
- concord-server: removed GitHub webhook registration and repository cache;
- concord-server: fixed a bug preventing relative file upload paths
from working with
/api/v1/process
endpoint; - concord-server: the session cookie (
JSESSIONID
) is now marked asHttpOnly
; - concord-common: ensure that
CONCORD_TMP_DIR
environment variable is defined; - concord-server: fixed a bug causing incorrect matching of Concord repositories with incoming GitHub events.
- concord-console: new tab on the process status page - "Child Processes";
- project-model, concord-server: support for
readonly
,placeholder
andsearch
form field attributes; - project-model:
withItems
now correctly handlesout
variables of tasks; - concord-server: support for GitHub events other than
push
or PR-related events; - concord-server: GitHub webhook support for unknown (not registered in Concord) repositories.
- concord-server: fixed a bug preventing process checkpoints from being correctly archived;
- docker: updated Ansible to 2.6.7.
- concord-tasks: IN parameter
jobs
renamed toforks
to avoid collision with OUT parameterjobs
.
- concord-server, concord-runner: store
lastError
inout
variables in the process' metadata. - concord-server:
afterCreatedAt
parameter to the process list API endpoint.
- concord-server: allow admins to access any form;
- project-model: checkpoint names must be unique across all loaded flow definitions;
- project-model: fixed a bug preventing nested
withItems
from working correctly; - bpm: updated to 0.49.0. Now all context types implement
eval
andinterpolate
methods.
- concord-client:
ProcessApi#metadata
renamed to#updateMetadata
.
- concord-server: optional "default filter" for all GitHub triggers;
- concord-server: make optional the unknown GitHub webhook removal.
- concord-runner: fixed a bug preventing dynamic task registration from working correctly.
- concord-server: fixed a bug preventing the checkpoint archiver from working correctly.
- concord-server: add
payload
togithub
trigger events; - concord-server: GitHub webhook URLs can now supply additional parameters via query parameters;
- concord-server: configurable period values for cleanup tasks;
- concord-sdk: support for "protected" variables that can be set only by allowed tasks;
- ansible, policy-engine: support for restricting of allowed URLs in
maven_artifact
,uri
anddocker_container
; - policy-engine: support for value expressions;
- concord-console: new process history tab on the status page.
- concord-server: allow GitHub events without explicit webhook registration (e.g. organization-level hooks);
- concord-console: the process filtering list is performed on the server now;
- concord-server:
task_locks
are replaced with the task schedule table; - concord-server: merge the existing process variables with template variables;
- bpm: updated to 0.48.0, fixed
context#getVariableNames
issue.
- concord-server:
github.enabled
configuration parameters renamed togithub.webhookRegistrationEnabled
;
- concord-server: optional rate limit for process start requests;
- concord-server: ability to assign a policy to a user;
- ansible: additional validation for
groupVars
.
- concord-server: return
429
then requests are rate-limited or rejected by the queue policy; - concord-server: fixed an issue preventing organization data from being correctly updated via REST;
- project-model: using
withItems
withnull
now skips the block's execution instead of throwing an error.
- concord-server: support for
timezone
incron
triggers; - concord-console: ability to cancel multiple processes;
- concord-server: the secret decryption error now contains the secret's name;
- concord-server, concord-console: refresh GitHub webhooks when a repository is refreshed;
- concord-server: timeout options for GIT's HTTPS and SSH transports;
- concord-server: a policy rule for setting the maximum allowed
processTimeout
value.
- concord-server: the "default variables" file replaced with the
"default configuration" file. Instead of containing the
arguments
section, it now contains the whileconfiguration
object.
- concord-server:
process.defaultVariables
configuration file parameter renamed toprocess.defaultConfiguration
; - concord-sdk:
Constants.Request.USE_INITIATOR
renamed toConstants.Trigger.USE_INITIATOR
.
- concord-server: assign an save a unique "request ID" to link audit logs and the process queue data;
- concord-server: ability to restrict the max number of forks using policies;
- concord-server: ability to restrict the max number of processes in the queue for a given status using policies;
- docker:
envFile
parameter to define environment variables using a file; - concord-console: show repository names in the project process list;
- concord-server: ability to overwrite process configuration using policies.
- concord-server: fixed an issue preventing process timeouts from correctly working with multiple running processes;
- concord-tasks: override the API endpoint with
baseUrl
.
- concord-console: fixed an issue preventing the process start redirect from working.
- concord-server: fixed variabled of the
spec
field incron
triggers; - concord-server: fixed an issue causing
cron
triggers to use the default flow.
- ansible: fix a bug preventing the task callback from recording task start events.
- concord-server: user-defined process timeouts support;
- concord-server: "initiator passthrough" support for OneOps and GitHub events;
- concord-server: added support for GitHub PR events;
- concord-agent, concord-runner: initial support for "container per process" execution model.
- ansible: use ANSI colors by default;
- concord-server: fixed a bug preventing checkpoints from working
with
.concord.yml
files.
- dependency-manager: load plugin versions from a file. Allows omitting the version qualifier for the registered plugins.
- concord-server: fixed a bug preventing repositories from being automatically refreshed on GitHub push events;
- concord-console: fixed project process list filtering.
- concord-console: prevent loading of too much data on the process status page, show a warning instead;
- concord-server: support for email form fields
(
inputType: "email"
); - concord-server: expose Jetty statistics;
- concord-console: add filtering to the organization list;
- concord-console: UI for managing access to projects and secrets;
- concord-server, concord-console: initial support for process-, organization- and project-level metadata.
- concord-server: fixed a bug preventing GIT repositories with large number of tags from working;
- concord-server: apply RBAC filters when listing secrets.
- concord-server: new API method to list process checkpoints;
- concord-agent: option to ignore SSL certificate errors for API calls;
- concord-console: add filtering to the secret list and the team list pages;
- concord-server, concord-console: option to use a service account to retrieve GIT repositories instead of user keys;
- concord-server: store project keys (used in
encrypt/decryptString
methods) in the DB.
- concord-console: fix handling of process statup errors;
- concord-server: in LDAP auth try
userPrincipalName
first; - concord-server: require
READER
access level to refresh triggers (instead ofWRITER
); - concord-server: process-level variables are now correctly override the system-wide defaults;
- concord-server: fixed audit logging for AD/LDAP authentication;
- concord-server: improved audit logging for projects and repositories;
- concord-server: store
initiatorId
instead ofinitiator
username in the process queue table; - project-model: fix handling of
null
values inset
step.
- concord-server: additional metrics, process queue gauges;
- resource-tasks: new method to read YAML files. Optional support for string interpolation in JSON and YAML files;
- ansible: initial support for external roles.
- runner: upgrade the BPM engine version to
0.47.1
to fix a bug preventing correct handling of IN variable evaluation errors.
- concord-server: fix missing
@Named
annotations for JOOQ configuration. Causes the wrong datasource to be injected.
- concord-server:
${processInfo.activeProfiles}
variable; - concord-runner: new utility task
forms
to create links to process forms and the form wizard; - concord-server, concord-agent, project-model, concord-runner: initial support for process checkpoints;
- concord-server, policy-engine: support for "max concurrent processes" policy.
- docker: increased the default API proxy timeout to 180 seconds;
- concord-console: fix the custom view link on the process form page;
- concord-console: fixed retieval of "Last 10 processes" on the Activity page;
- concord-server: fixed a bug causing
onFailure
handler processes to fail due to missing session keys andprojectInfo
variables.
- concord-server: form API endpoints now accept form names instead of
IDs. E.g.
/api/v1/process/PROCESS_ID/form/FORM_NAME
.
- concord-server: revert inventory RBAC changes, allow publicly writable inventories;
- concord-console: fix the process status filter on the project processes page;
- concord-console: limit
Activity
data to the current user's organizations.
- concord-server: more metrics;
- concord-console: new process list filters -
Status
andInitiator
; - concord-console: new default page
Activity
; - concord-console: allow updating of project visibility and description;
- concord-server: improved support for multi-select fields in custom forms;
- ansible: option to save Ansible host statistics as a flow variable;
- http: support for
DELETE
method; - project-model: support for
activeProfiles
in trigger definitions; - concord-server: option to disable triggers (specific or all);
- concord-server: the Prometheus metrics endpoint now proxied by the console's nginx.
- concord-server: fix permissions check when killing a process;
- concord-console: fix duplicate form events;
- concord-console: replace automatic redirect to a custom form with a link;
- concord-console: escape HTML in process logs.
- concord-server: additional metrics (JVM, memory, JDBC, etc).
- concord-server: delay before processes are moved into the archive;
- concord-server: support for custom form validation messages;
- concord-server: option to disable GIT's "shallow clone";
- concord-server: initial integration with Prometheus;
- concord-server: option to disable the process state archiving task.
- concord-server: make the process state archiving task to pick up next items as soon it's done with the current work.
- project-model: support for multiple Concord project files in
concord/*.yml
; - concord-server: support for archiving of process state into S3-compatible object stores;
- concord-server: optionally encrypt sensitive data in the process state;
- project-model: allow expressions to be used in flow calls;
- plugins: new built-in task
throw
; - concord-console: ability to filter Ansible hosts by their inventory group;
- concord-server: RBAC checks for process kill and status update operations.
- concord-server: return
404
when the secret doesn't exist; - concord-server: fix handling of empty inventory query params.
- concord-server: fixed the repository webhook registration when project or repository is created or updated.
- concord-agent: fixed the configuration variable names;
- concord-agent: increase default timeout values;
- concord-server: correctly handle table aliases in inventory queries;
- concord-server: escape special characters in commit messages
processInfo.repoCommitMessage
.
- concord-server: fixed an issue preventing
initiator.attributes.mail
from populating.
- project-model: additional YAML validations to prevent duplicate
keys such as
configuration
orarguments
; - concord-server: an option to perform DB migrations separately;
- concord-server: periodic audit log clean up;
- concord-server: option to disable audit logging;
- concord-server: added limits for "encrypted strings" size;
- concord-server: improved error reporting for non-process related errors;
- concord-server, concord-console: repository metadata to processes;
- concord-server: improved inventory query validation;
- concord-console: display flow and ansible event duration;
- ansible: record "pre" and "post" task events separately;
- concord-console: new API key management UI;
- concord-server: optional API key expiration;
- concord-server: methods to list existing inventories and inventory queries;
- concord-server, concord-console: new method to validate a repo without starting it;
- concord-console: new form to encrypt values to use with
crypto.decryptString
; - concord-server: all secured endpoints will now return appropriate auth challenge headers;
- concord-console: scroll back to top button on the process log page;
- concord-console: highlighting of errors and warning messages in process logs;
- docker-images: increased nginx's default max request size to 32Mb;
- concord-server: a single invalid trigger no longer prevents other triggers from firing;
- concord-agent: now uses the same REST API endpoint to download process state snapshots as regular users.
- concord-server: fixed a bug that prevented the custom forms API endpoint from registering correctly.
- concord-project-model: improved validation of
withItems
values; - concord-console: autoscrolling for process logs;
- concord-console: ability to rename secrets and update their visibility;
- concord-console: the list of registered triggers for a repository.
- concord-server: configuration migrated into a single configuration file.
- concord-runner: full stacktraces will be printed out for unhandled exceptions.
- concord-server: project-scoped secrets;
- http: support for custom headers.
- concord-client: better handling of server-side validation errors;
- concord-server: merge
api
andimpl
modules; - concord-server: GitHub triggers will now correctly use the repo's organization and project names to match the events;
- concord-server: now process state snapshots can only be accessed by admins, process owners and "global readers".
- concord-server: removed the old project API endpoint
/api/v1/project
.
- concord-server: multiple ldap groups support in forms
- concord-server: fixed the repository webhook registration when an individual repository is created or updated;
- concord-console: project, team members and ansible host filters are now using simple substring search instead of regular expressions;
- ansible: fixed a bug than prevented
outVars
from working for any variables other than the first in the list.
- policy-engine: optional rule violation messages;
- concord-console: the repository start popup now has a link to the process log if the process failed to start;
- concord-console: the profile page and the API key form;
- ansible: new task parameter
outVars
to save specific Ansible variables as Concord flow variables; - concord-agent: a local interface to enable maintenance mode;
- concord-server: check template output for cycles to avoid serialization issues;
- concord-server: size limit for binary data secrets.
- concord-console: clean up the error message when users try to access a form without a matching LDAP group;
- policy-engine: fix calculation of workspace sizes;
- concord-console: fixed the server error details parsing;
- concord-rpc: module removed.
- concord-server: initial support for roles;
- concord-console: a field to filter the project list by name;
- concord-project-model: support for
withItems
. Allows iterating over a list of elements; - concord-server: support for
Bearer <token>
authorization; - concord-console: the process page's organization and project links;
- concord-server: optional git repository check for
concord.yml
being present.
- concord-server: new
update
method for secrets. It allows changing of secret names and/or visibility; - concord-agent: retries for errors during download of process payloads;
- concord-agent:
AGENT_ID
andUSER_AGENT
parameters to support persistent agent IDs.
- concord-server: fixed the secret access level endpoint not accepting team names;
- concord-server: fixed "test repository connection" method.
- concord-console: add
System
menu withDocumentation
andAbout
links; - concord-agent: new
MAX_PREFORK_COUNT
configuration parameter to limit the number of processes in the pool; - ansible: new parameter
disableConcordCallbacks
to disable Concord-specific Ansible callbacks: stdout filtering, event recording, etc; - ansible, concord-console: handle Ansible's
ignore_errors
modifier; - ansible: ability to use password-less secrets in the secret lookup plugin;
- concord-client, concord-agent, concord-runner: enable session cookies;
- concord-task: fail the parent process if the subprocess has failed.
Added new parameter
ignoreFailures: true
to revert the previous behavior.
- concord-project-model: external form definitions must work with and without a whitespace in the definition.
- concord-agent: fixed orphaned docker sweeper bug which caused live containers to be terminated.
- guava downgraded from 21.0 to 20.0 to avoid classpath issues with some of the plugins (e.g. jira).
- concord-server: fix form wizard redirect;
- concord-server: improve
decryptString
error messages; - concord-runner: fix export of secrets w/o password;
- concord-tasks: now uses
concord-client
instead of Resteasy.
- ansible: limit the saved stdout/stderr size;
- concord-server: log the agent's IP address when a process starts;
- concord-server: a method to list all inventory items;
- concord-server: added optional
replace
query parameter to the team users update operation. - concord-console: team management UI.
- concord-server-client: renamed to
concord-client
; - concord-server: reduced the amount of information on the "wait page" in the process API endpoint for browsers;
- concord-server: fixed team management RBAC;
- concord-console: fixed dropdowns not re-rendering after update;
- concord-server: fixed incorrect filtering of inventory data.
- concord-server, concord-agent: initial support for environmental
requirements
and agent capabilities.
- concord-runner, concord-server: improved error handling when working with secrets;
- concord-client: renamed to
concord-tasks
; - concord-rpc: the KV store, heartbeat and secret gRPC services replaced with the REST API based services.
- concord-agent: "maintenance mode" to suspend job acquisition;
- resource-tasks: new methods to read/write JSON;
- concord-server: an "in progress" page when the process is started using "browser" endpoints;
- concord-console: a button to download raw process log.
- concord-console: new UI layout.
- concord-server: fixed the repository connection test method not getting secrets from the UI.
- http: support for
PUT
requests; - concord-server: new LDAP configuration property
usernameProperty
. Defaults tosAMAccountName
. STRDTORC-507
- concord-server-db:
bigserial
columns for forwarding log data; - concord-runner: record task
in
parameters in process events; - concord-runner, ansible:
correlationId
for task events; - concord-server:
runAs
form option.
- concord-client: support for
activeProfiles
; - docker: ability to save
stdout
as a variable; - concord-project-model:
retry
support for tasks; - smtp: add support for multiple values in
to
,cc
andbcc
parameters; - concord-server: method to cancel a process including its subprocesses;
- concord-server: method to delete an existing team.
- concord-server: skip invalid definitions on trigger activation.
- concord-server: additional logging for authentication realms.
- concord-server: fixed session key conflicts when sub processes are used;
- concord-console: load correct project processes;
- concord-server: fixed
platform
filter for OneOps triggers.
- docker: fix nginx logging configuration.
- concord-server: support for
cron
triggers; - concord-project-model: better handling of YAML parsing errors;
- concord-server: process endpoints now return
childrenIds
- array of child process IDs.
- concord-server: fixed an issue when updating team role for an existing team member.
- concord-sdk:
Context#suspend
method for suspending processes with programmatically-defined callback events; - concord-server: metadata for organizations;
- concord-server: initial audit logging implementation;
- keywhiz: initial support;
- concord-server: support for symlinks on initial process state ingestion;
- ansible: support for exporting secrets as
group_var
files; - concord-console: show Ansible host events in a modal popup.
- ansible: new lookup plugins 'concord_data_secret' and 'concord_public_key_secret'
- ansible: deprecate
configuration.ansible
,inventory
anddynamicInventory
request parameters; - http: parse JSON responses;
- http: use
${response}
as the default out variable.
- concord-console: new UI layout;
- concord-console: visualization of Ansible stats;
- concord-server: make
orgName
optional whenteamName
is used when setting a resource's access level.
- ansible: make
privateKey
's password optional; - concord-agent: ship
http-tasks
with the docker image; - concord-console: disable TLS 1.0.
- concord-server: send empty JSON if a project's cfg is empty;
- concord-server: use basic auth for the interactive process endpoints.
- concord-server, concord-agent, concord-runner: initial support for process policies;
- concord-project-model:
exit
step to terminate execution of the flow w/o throwing an error; - concord-client: support for the new
startAt
parameter.
- concord-server: OWNER access level is now required to delete a project.
- concord-server: a method to update access levels of inventories;
- concord-server:
startAt
process parameter to schedule process executions; - concord-agent: a cleanup job to remove old Docker images (keeps two latest versions).
- concord-server: an endpoint to download a single state file.
- concord-server: fixed an issue, preventing file upload fields from working with custom forms.
- concord-server: the process event endpoint now accepts
limit
andafter
query parameters.
- concord-server: allow removal of secrets that are in use;
- concord-server: trim usernames on login.
- ansible: the task now prepends user-provided
callback_plugins
andlookup_plugins
values with the default values.
- new task:
http
. Provides a simple HTTP client with JSON support.
- ansible: fixed exporting of key pairs;
- concord-server: fixed handling of secret requests w/o an organization;
- concord-server: fixed retrieval of team users.
- slack: support for the
task
syntax, includes new messaging options such asicon_emoji
andattachments
; - ansible: filter for removing sensitive data from the logs;
- concord-client:
concord
task'srepo
is an alias forrepository
now; - concord-client:
project
task now works with organizations other thanDefault
; - concord-client:
concord
task now acceptspayload
parameter instead ofarchive
, which can be either a path to a ZIP archive or a path to a directory; - concord-server: additional logging in case of process statup errors.
- concord-server, concord-console: fix handling of multi-select dropdowns;
- concord-server: new user's
type
attribute (LOCAL
orLDAP
); - crypto: ability to export secrets from organizations other than the current.
- concord-docker: fixed the
unable to find user concord: no matching entries in passwd file
issue.
- concord-agent: the new
debug
configuration parameter to log the resolved dependencies of a process.
- concord-server: fixed incorrect inventory query filtering;
- concord-client: use polling while waiting for the process to end;
- ansible: updated to 2.4.3;
- concord-client:
org
parameter was ignored; - concord-server: configurable max state age;
- ansible, docker: use a non-root user to run all Docker processes
(including
ansible-playbook
); - docker: run Docker containers in the host's network.
- concord-server: the trigger endpoint address is made to conform path patterns of the rest of the organization endpoints.
- ansible, docker: support for
--add-host
in the Ansible and Docker tasks.
- docker: automatically update
pip
to the latest version; - docker: more Walmart-specific CA certificates;
- concord-server: when a new team is created, automatically add the
current user as the team's
MAINTAINER
; - concord-server: apply RBAC to the process state download endpoint.
- concord-server: support for nested paths when retrieving attachments;
- docker: Walmart images are now include Walmart's Root CA SSL certificates.
- concord-console: embed the Semantic UI resources;
- concord-server: JGit is replaced with the GIT CLI tool, improving the support for submodules and large repositories.
- concord-server: avoid creation of multiple webhooks for the same GIT repository urls registered in different projects;
- docker: add non-root users for the server and agent containers;
- dependency-manager: ignore checksums, cache the intermediate data.
- inventory: the ansible wrapper now able to produce inventories with per-host variables;
- crypto: a method to export a single value secret as a file;
- concord: make the organization name parameter optional for the inventory task;
- concord-server: an endpoint to export binary data secrets;
- ansible: add a lookup plugin for retrieving "single value" secrets;
- ansible: make the org parameter optional for the inventory lookup plugin.
- concord-server: form
values
are now correctly added to the process context after the form is submitted submit; - ansible: updated to 2.4.2;
- ansible:
inventoryFile
andextraEnv
were ignored when the plugin was invoked using the task syntax; - concord-server: the "Accept payload archives" flag now correctly updates;
- concord-server: fixed the issue preventing the process from being marked as FAILED on YML syntax errors;
- concord-server: fixed parsing of the
activeProfiles
property when the multipart process endpoint is used.
- concord-server: limit the maximum allowed size of process files;
- concord-server: configurable DB connection pool size.
- concord-console: fixed the issue with new projects overwriting the previously opened ones.
- concord-server: allow hyphens and tildes in entity names;
- concord-server, concord-console: initial support for file upload fields.
- concord-console: the repository refresh button now opens a pop-up window.
- concord-server: fixed key names in the GitHub configuration file.
- concord-console: the button to manually refresh a project's repository cache.
- concord-server: skip the repository cache if the repository's webhook is not registered (yet);
- concord-server: fixed an bug preventing startup errors from being logged in process logs.
- concord-agent: display the list of dependencies when a process starts;
- concord-console: new "visibility" field on the process and the secret forms;
- ansible:
skipTags
support; - concord-server, concord-console: filter process queue by user organizations;
- concord-console: add "organization" field to the process page;
- concord-server: new provided variables in
projectInfo
:repoCommitId
,repoCommitAuthor
andrepoCommitMessage
; - concord-console: host the swagger-ui app;
- concord-server: triggers, inventories and landing pages are moved into organizations;
- concord-server, concord-console: an option to disallow raw payload archives for projects;
- concord-server, concord-console: initial support for Organizations;
- concord-server: public and private projects and secrets;
- concord-server: project and secret now has owners;
- concord-server: new endpoint for managing secrets;
- concord-client: the
project
task - provides a method to create new projects using flows; - concord-server: methods to refresh triggers and LPs for all projects.
- concord-client: switched to resteasy-based client;
- concord-runner: improved stability by using a separate classloader to load tasks;
- concord-server: user permissions are effectively replaced with the Team RBAC feature;
- concord-console: reworked the form for creating secrets;
- concord-console: rename "Kill" button on the process page to "Cancel".
- concord-project-model:
debug
option for thedocker
step; - docker: the task now automatically overrides the container's
entrypoint
; - concord-client: new module;
- ansible:
ansible
alias for theansible2
task; - concord-server: new automatically-provided
variable -
projectInfo
; - concord-runner:
script
task now supports URLs; - concord-server: initial support for process triggers.
- kv:
getLong
andputLong
methods; - concord-console: "download state" button to the process status page;
- concord-agent, concord-server: detect orphaned or stalled processes;
- concord-server, concord-console: process landing pages;
- concord-server: show an error page when a "portal" process fails;
- concord-project-model: alias
::
totry:
; - concord-console: ability to start a new process from the project's form;
- ansible: support for saving and using Ansible's "limit" files;
- concord-server, concord-console: support for boolean form fields;
- ansible: Inventory lookup plugin.
- concord-server: user can now create API keys only for themselves;
- concord-server: fix empty secret name in project repository entries returned by the API;
- concord-server: added environment variable to override the server's password.
- concord-console: "terminated ssl" option.
- concord-server: log the repository data when a process starts;
- concord-server: Inventory API initial support;
- concord-console: storybook integration;
- concord-server: retrieve user's LDAP info when API key authentication is used;
- concord-server: the API keys endpoint now accepts LDAP usernames as well as user UUIDs;
- concord-server, concord-runner: support for process OUT variables;
- concord-server: log process status updates;
- concord-server: initial support for Teams;
- concord-server: an endpoint to retrieve a list of attachments.
- concord-dependency-manager: remove support for
includeOptional
.
- concord-dependency-manager: batch resolution of Maven dependencies.
- concord-runner: Slack task can now be called using the full form;
- concord-server: automatically remove orphaned data.
- concord-rpc: fix dispatching of agent commands when the server is restarted;
- ansible: throw an exception if a private key file was not found.
- concord-server:
/api/v1/process/{id}/subprocesses
changed to/api/v1/process/{id}/subprocess
.
- ansible: ability to specify a secret name and password as a
privateFile
value; - concord-console: a form to create secrets;
- concord-server: validate uploaded SSH key pairs;
- concord-server, concord-agent: support for pulling dependencies from Maven repositories;
- concord-server: update repositories using GitHub webhooks;
- concord-agent: automatic cleanup of orphaned Docker containers;
- ansible: support for additional environment variables.
- concord-server: fixed the issue with incorrect credentials configuration when retrieving GIT submodules.
- concord-sdk: new provided variable
parentInstanceId
; - concord-server: ability to suppress the execution of
onCancel
oronFailure
flows; - concord-server: new API method to fork a process as its subprocess;
- concord-server: support for GIT submodules;
- concord-server, concord-console: process tags.
- concord-server: if entry point is not set, use
default
; - concord-project-model: alias
variables
toconfiguration
; - concord-server: pagination support for the process queue list;
- concord-project-model: support for
switch
; - ansible: initial support for Ansible event streaming.
- concord-server: fix Jolokia JMX names;
- concord-runner: fix
InjectVariable
forJavaDelegate
-style tasks; - concord-runner: fix
JavaDelegate
handling; - concord-server: fix SSH key pair upload/create endpoint;
- concord-server: process events cleanup;
- concord-server: fixed a potential NPE while retrieving the process queue data.
- concord-server, concord-runner: support for
onFailure
,onCancel
flows; - concord-server, concord-runner: provide a way to access password-protected secrets from flows;
- concord-server: allow starting a process with a POST request using
a project, a repository and an entry point specified in
.concord.yml
file; - concord-server: allow starting a process by sending an empty POST request;
- concord-server, concord-console: support for
yield
for non-custom forms; - ansible: support for external private key files;
- ansible: support for external configuration files;
- ansible: verbosity level can now be set using the task's arguments.
- concord-server: include GIT repository name into the cache key;
- concord-agent: remove the working directory after the process finishes;
- concord-runner: refresh the value of
${__attr_localPath}
after resuming a process; - concord-server: fixed variable merging when
activeProfiles
is an empty array ornull
.
- concord-runner: upgrade to the BPM engine 0.38.2. This fixes another variable interpolation issue.
- concord-server, concord-console: support for GIT repository paths.
- concord-server: fix key pair generation for non-API key users.
- concord-agent: normalize dependency URLs, support for Nexus/WARM redirects;
- concord-runner: fix the issue with tasks based on
concord-sdk
; - concord-project-model: fix serialization issues when
set
task used with nested structures.
- concord-server: REST API method for exporting process state;
- concord-sdk: support for full-form tasks;
- concord-agent: log local IPs before starting a process.
- concord-server: fix evaluation of variables when one variable references another;
- concord-server: accept any type of attachment as a file, except
text/plain
. This fixes the issue with the multipart requests with incorrectContent-Type
.
- concord-sdk: new module;
- concord-runner: upgrade the BPM engine version to 0.34. This add
the support recursive value interpolation in
variables
orin
blocks; - concord-agent, concord-runner: keep a pool of JVM instances instead of starting a new one for each process.
- concord-server: preserve user input in
data.js
after a failed validation.
- concord-server: fixed an issue with custom forms and SSL.
- concord-server: support for
shared
folders for custom forms; - concord-server: process files should overwrite template files;
- ansible: static and dynamic inventory files can now be specified
using
inventoryFile
anddynamicInventoryFile
task parameters.
- concord-server: add Jolokia agent;
- concord-runner: use copyAllCallActivityOutVariables to prevent losing subprocess variables when events are used;
- concord-agent: slightly improved startup time of process JVMs;
- concord-server: normalize LDAP usernames;
- project-model: more robust yml-to-bpmn converter.
- concord-runner:
@InjectVariable
annotation can now be used to inject process context variables as task fields or method arguments.
- ansible: fixed potential NPE.
- project-model: support for in/out variables and
error
blocks for process calls (aka the full form ofCallActivity
); - ansible-tasks: a
JavaDelegate
version of the task. Allows use of IN/OUT variables.
- concord-server: use the native PostgreSQL UUID type.
- concord-server: fixed the merging of arguments while resuming a process.
- concord-runner: environment variables support for
docker
task. - concord-server: allow uploading arbitrary files and override
request parameters using
multipart/form-data
requests.
- concord-server: fixed the order of applying variable overrides;
- concord-runner: docker task now requires
/bin/sh
to be available in all images.
- concord-server: storing overrides in
_defaults.json
is not supported anymore.
- concord-runner: use
/workspace
instead of/workplace
in the docker task;
- concord-runner: docker task syntax is changed to
- docker: image-name cmd: my-cmd
- concord-server: improve error handling - return error details, add optional stacktrace field to error messages;
- concord-server: fixed NPE on retrieving an empty/non-existing log file;
- project-model: fixed an issue with passing nested objects in IN-parameters of tasks.
- concord-server: fixed an data escaping issue with project configuration migration.
- concord-server, concord-console: ability to override
type
in<input type="..."/>
for non-branded forms (e.g. forpassword
fields).
- concord-server: fix usage of
${requestInfo}
in non-"portal" calls.
- concord-server: query parameters of the requests made using the
"portal" endpoint are now accessible as
requestInfo.query.param
variables; - concord-runner: support for running docker images using
docker
flow command; - docker-images: new tool image -
ansible
.
- concord-server: fixed the issue with inability to use expressions as default values of form fields for non-branded forms.
- concord-server: include all available form data for "success" and "process failed" pages.
- concord-server: return project configuration on
GET /api/v1/project/{projectName}
calls; - concord-server: improve project configuration handling.
- concord-server: form calls can now override form values and/or provide additional data.
- concord-server: both
flows
andprocesses
directories can now be used to load flows definitions; - concord-server:
concord.yml
can now be used instead of.concord.yml
; - concord-server: profiles can now be loaded from a
profiles
directory.
- new task:
loadTasks
. Allows users to create their own tasks in Groovy, store them in process files and load dynamically; - concord-server: optional
activeProfiles
parameter can now be used in the Portal API.
- ansible: dependency URLs in the ansible template are temporary changed to use WARM.
- concord-server: Slack integration;
- concord-runner: new
slack
task to send notifications to a Slack channel.
- concord-server: templates now are referenced by URLs in project configuration.
- concord-server: support for LDAPS;
- concord-runner, concord-server: record process execution events.
- concord-server: store agent commands in the DB;
- concord-server: store process logs in the DB;
- concord-server: fixed an issue with
data.js
generation when the store directory does not exist.
- concord-server: remove the support for H2 database.
- concord-server: fix potential connection leak.
- concord-console: the version information page;
- concord-server:
/api/v1/server/version
API endpoint; - docker-images: optional SSL support for the console's nginx;
- concord-server: new
PREPARING
process state; - concord-runner: upgrade the bpm engine to 0.31.1:
- support for EL 3.0 in flow expressions;
- form options now can use expressions.
- concord-server:
created
flags in the REST API responses are replaced withactionType: CREATED|UPDATED
. Should be more obvious. - concord-server: fixed basic auth using passwords with
:
symbol; - concord-console: handle
ENQUEUED
status in the default form wizard; - concord-server: fixed the issue with custom form redirects when using HTTPS proxy;
- concord-server: store process state in the DB;
- concord-server: create the log file of a process as early as possible to log startup errors.
- concord-server: add the first batch of metrics, expose with JMX;
- concord-console: add "Test connection" button to the repository form;
- concord-server: improve error handling for GIT repository cloning;
- concord-server: add endpoint to encrypt values with a project's key;
- concord-runner: add
crypto
task to decrypt previously encrypted values;
- remove "provisio" builds: use plain .sh startup scripts for the server and the agents;
- concord-server: improve KV store to work in multi server setups;
- concord-server: simplify the project configuration handling.
- concord-console: the project form;
- concord-server: add form field labels to the generated
data.js
files.
- upgrade the bpm engine to 0.29.0. It changes the form validation messages: now it uses labels instead of field names (when available).
- concord-server: fixed a bug preventing LDAP attributes from being collected.
- reverted back to jetty 9.2.11.v20150529 due to the issue with
serving forms using
DefaultServlet
.
- concord-server: simple KV store backed by the database;
- concord-runner:
kv
task to use the simple KV store; - yaml: optional error code in the
return
command; - concord-server: ability to pull a repository using a
commitId
; - concord-console: add the project list;
- concord-server: add project description field;
- concord-server: return process JSON objects in sync mode regardless of success or failure;
- concord-server: log incoming gRPC connections;
- concord-server: improve request data validation for the Project REST API.
- concord-server: move the rpc module into the top-level directory;
- concord-console: fix timestamps on the process page;
- concord-server: suppress JOOQ banner.
- concord-runner: add
workDir
variable (same as__attr_localPath
); - ansible-tasks: allow passing a vault password using request variables.
- upgrade the bpm engine to 0.28.0 which allow flows to access
available tasks using expressions
${tasks.get('name')}
or in a script block.
- concord-console: wrap long lines in the log viewer;
- concord-agent: do not cache
file://
andSNAPSHOT
dependencies; - ansible-tasks: move inline inventory processing from the server into the plugin.
- concord-server: process start errors now include
stacktrace
field; - concord-server: optional synchronous mode of the process start methods. All forms will be automatically submitted using the provided request data;
- ansible:
defaults
replaced withconfig
JSON object. Each key represents a section in the configuration file; - concord-runner: additional methods for
LoggingTask
.
- concord-console: disable the log button for the processes that don't have a log file;
- concord-agent: fixed the state transfer for failed processes;
- concord-server: make all LDAP attributes available in
${initiator.attributes}
.
- concord-agent: handle early process startup errors.
- concord-server-db: indexes for the process queue;
- yaml:
lastError
can now be used to access the last handledBpmnError
.
- concord-console: fixed rendering of "Updated" and "Created" columns in the queue table.
- concord-runner: all unhandled exceptions in a
ServiceTask
(YAML expressions) or in aScriptTask
(YAML script blocks) will be wrapped asBpmnErrors
.
- concord-server: process queue;
- concord-server, concord-agent: support for multiple agents, async transport.
- boo, nexus-perf, teamrosters and oneops plugins are moved into a separate repository.
- concord-console: support for "int" and "decimal" fields in the default form renderer;
- added "project name" column to the process history;
- concord-runner: support for external scripts.
- concord-server: fixed LDAP attributes retrieval (including
displayName
).
- updated oneops-client version, fixing the
NoSuchMethodError
issue with boo-task; - oneops-tasks: migrate to the official oneops-client.
- boo-task: fixed fatjar creation.
- ansible: store exit code in the stats file.
- concord-agent: more reliable kill command;
- ansible: allow overriding of connection timeout value.
- boo-task: tag assembly with a cost center.
- concord-server: GIT repository shallow cloning and caching.
- concord-server: improved error message when creating or updating a project with non-existing secret;
- concord-server, concord-agent: fixed logging configuration conflicts;
- concord-console: reduce wizard polling interval, "time to first form" improved;
- runner.jar moved from the server to the agent, futher reducing the process statup time.
- concord-agent: simple caching mechanism for dependencies.
- boo-task: bug fixes.
- support for the form branding: custom forms with user-provided HTML/CSS/JS/etc.
- boo-task: pull more deployment information into the context;
- teamrosters-task: new task to retrieve Team Rosters data;
- fixed: missing line/column numbers when parsing YAML process definitions and project files;
- fixed:
value
attribute ignored in form field declarations.
- the Console now uses LDAP authentication;
- expose (a configurable set of) LDAP attributes to processes;
- smtp: support for Mustache templates;
- yaml: simplify usage of external variables in script steps;
- boo: return deployment status from the task.
- boo: use all provided variables as template variables;
- fixed:
.concord.yml
variables are ignored when using a GIT repository; - fixed: project repositories should be ignored when starting a process using an archive.
- concord-runner: support for expressions in variables.
- project and process related constants moved to project-model module.
- fixed merging of profile variables with defaults and request's data.
- support for
.concord.yml
files. Those files can contain flow and form definitions, default variables and "profiles"; - allow overriding
dependencies
in a project file, defaults or user requests; - concord-console: list of secrets.
- concord-common: removed
Task#getKey
. Value ofjavax.inject.@Named
annotation is used to resolve a task. - removed bpmn-format and yaml-format modules;
- yaml2-format replaced with a single module: project-model.
- concord-server: merge existing process values with form values;
- concord-server: fix the LDAP mapping update method;
- concord-server: new method
/api/v1/ldap/query/{username}/group
to retrieve a list of LDAP user's groups; - concord-agent: fix a race condition in the log creation;
- upgrade BPM version to 0.2.1.
- concord-server: LDAP mappings methods moved to
/api/v1/ldap/mapping
path prefix.
- concord-console: host the landing page;
- concord-console: simple process launcher using
/#/portal/start?entryPoint=abc
URLs.
- fix error logging in nexus-perf tasks.
- support for single or multiple selection fields
_deps
file is replaced withdependencies
array in a project configuration, template,_defaults.json
or user's request.
- boo upgraded to 1.0.3;
- minor fixes in examples.
- initial support for forms, including the new UI wizard;
- the server now uses connection pooling to talk with the agent(s).
- YAML DSL support for inline JSR-223 scripts;
- now it's possible to use AD/LDAP fully-qualified usernames, e.g.
user@domain.com
; - new endpoint:
/api/v1/role
for managing mappings between roles and permissions; - new endpoint:
/api/v1/ldap
for managing mappings between LDAP groups and roles.
- logging configuration cleanup;
- projects now can be created and updated using a single endpoint;
- "get user" method now uses path parameter:
GET /api/v1/user/{username}
; - usernames containing backward slashes ("\") are forbidden;
- unauthenticated and unauthorized errors are now returned with
Content-Type: text/plain
.
- removed
PUT /api/v1/user/{username}
method.
First release.