Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exponential backoff strategy for job retries #5171

Closed
strawhat5 opened this issue Aug 13, 2020 · 6 comments
Closed

Exponential backoff strategy for job retries #5171

strawhat5 opened this issue Aug 13, 2020 · 6 comments
Labels
blocker/stakeholder Marks an issue as blocked, waiting for stakeholder input kind/feature Categorizes an issue or PR as a feature, i.e. new behavior scope/broker Marks an issue or PR to appear in the broker section of the changelog scope/gateway Marks an issue or PR to appear in the gateway section of the changelog

Comments

@strawhat5
Copy link

Is your feature request related to a problem? Please describe.
Currently whenever a job fails or gets timed out, it is retried immediately. This can result in issues such as #5063 where a job which was getting timed out (due to an application bug), was getting retried immediately and infinitely. It resulted in excessive generation of partition logs resulting in impact on the broker itself. In any and all cases, any application (worker) bug should not impact the availability or durability of the broker.

Describe the solution you'd like
We would like to have a config-based-solution where we can set the backoff retry strategy for a task while defining the task in BPMN itself. If not possible in BPMN, we should be able to define it programmatically in the job worker code. Also, we should be able to configure the max retries in case of timeouts. Currently in case of job timeout, it is retried infinitely impacting the broker.

Having such a solution will minimize the impact on the broker, and eventually on the worker.

Additional context
This is probably linked to #164, but covers configuration of retries in case of failures and timeouts plus a backoff retry strategy. Hazelcast clients have a similar backoff connection retry strategy implemented.

@strawhat5 strawhat5 added the kind/feature Categorizes an issue or PR as a feature, i.e. new behavior label Aug 13, 2020
@npepinpe
Copy link
Member

What's the use case for job time outs? Time outs are used in case the worker which grabbed the job crashed, so Zeebe knows to make it available again for other workers. It makes sense there to retry immediately, no? I get the idea for failures however - at the same time, when a job is marked as failed (meaning it ran out of retries), it cannot be retried immediately unless the user resolves the related incident. The onus is on the worker to correctly set the amount of retries a job still has when failing it (which you can simply take the current amount of retries and decrement it by one).

@strawhat5
Copy link
Author

strawhat5 commented Aug 15, 2020

Hey Nicolas let me try to elaborate the use case for both failures and timeouts. Edit: Just to clarify when I am talking about retrying a failure, I am talking about retrying a fail command, before the Incident is raised.

  1. Failures: Yes after an Incident is raised, the job remains in the failed state until user intervention. That is a good feature. What I am talking about is adding a custom backoff strategy for retries of fail commands. Suppose a job has 3 retries before raising an Incident, all the retries are tried immediately. It may happen that there was a transient error on client side, like a DB connection failure, which would be resolved automatically in few minutes. But the job worker will fail or throw an exception for each retry, if it is retried in a matter of seconds. And then user would have to intervene manually to resolve the incident. This can be avoided if we have a way to configure a retry strategy for each type of task. There we can specify whether to retry a job immediately, or in case of transient failures, have a custom retry strategy like trying it again after 5 minutes or 1 hour. That will give more leverage to the user to retry a task, without having to manually intervene for all (transient) failures. I think this will automatically be covered once I can set a retry timeout for failed tasks #164 is implemented.
  2. Timeouts: We have already experienced the catastrophic impact of continuous timeouts on Zeebe broker, as detailed in Excessive number of log segments generated on one partition #5063. Timeouts can happen if the job was not completed before its deadline. In that case it will be assigned to another worker thread, which is again a great feature. But, currently it does not have a failsafe mechanism. So in cases where client is facing a connection error: like an external microservice API call taking longer than the specified timeout, or a DB connection failure (e.g. Job has a timeout of 20 seconds while JDBC manager waits for 30 seconds to get a connection before throwing an exception). In all such cases the job will be timed out before completing its processing. These cases when running on a large scale system will soon go out of hand and cause a flooding of log generation on raft-partitions. As described in Excessive number of log segments generated on one partition #5063, we have seen this error filling up over 150GB of raft-partition logs per broker:
Expected to time out activated job with key '6755399445248597', but it must be activated firstŽ¨deadlineÏs‹éH‡¦worker±logistics§retries¤type±logisticscustomHeaders€©variablesÄ€¬errorMessageÚÅjavax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection

Yes we can avoid such issues by configuring the timeouts appropriately on client side. But in a large scale system, we cannot expect all clients to follow the standards and conventions. It makes more sense to have a failsafe mechanism in the broker, to avoid any client mishaps from impacting the availability of the broker. For these reasons I propose having a configurable retry strategy, where a user/client can configure the max number of retries along with a configurable retry interval, in case of both failures (job fail commands) and timeouts.

@npepinpe npepinpe added Status: Needs Priority blocker/info Marks an issue as blocked, awaiting more information from the author and removed Status: Needs Triage labels Aug 17, 2020
@npepinpe
Copy link
Member

Sorry, but it's still unclear to me what's the use case for time outs 😅 If the job has a timeout of 20 seconds, and we have a failsafe that adds another 10 seconds time out, and the JDBC job takes 30 seconds and errors out, I'm not sure I see any benefits to this. It's just really increasing the time out in the end, no? It sounds a little like you don't trust your users/clients to configure their workloads properly? Zeebe isn't really built to handle malicious/abusive users (e.g. no multi tenancy), so in that sense I'm not sure this feature would particularly help.

@strawhat5
Copy link
Author

Ah, my bad for not explaining it properly. 🙂

Let me take an example to help explain better. There are a fixed number of retries configured for every job (by default 3). So, here 3 retries act as failsafe in case of any exception happening on worker. Whatever happens inside the worker, any and all jobs assigned to that worker will be failed/completed within 3 retries. This is a great feature and helps both the worker and broker keep their (un)necessary load in check.

Now, coming to timeouts: There are no fixed number of retries in case of timeouts. Impact: A job getting timed-out will be reassigned infinitely until it gets completed. So there is no failsafe here. Now any timeout happening inside the worker, is also impacting the broker - because it is creating that many events and that much data.

So, what I am proposing here is to have a fixed number of retries for timeouts as well. So a job getting timed-out is not retried infinitely, rather an Incident is raised after 3 timeouts or so (user-configurable) - just like fail commands.

@npepinpe npepinpe added scope/broker Marks an issue or PR to appear in the broker section of the changelog scope/gateway Marks an issue or PR to appear in the gateway section of the changelog Status: Needs Priority and removed blocker/info Marks an issue as blocked, awaiting more information from the author labels Aug 20, 2020
@menski menski added blocker/stakeholder Marks an issue as blocked, waiting for stakeholder input and removed Status: Needs Priority labels Aug 21, 2020
@marcelocquadros
Copy link

Nicolas, If I understood correctly, the feature requested is something similar RetryPolicy used in uber-cadence.
In the resilience4j framework the retry feature provides the same. Basically, if some task fails you will be able to retry it in 30s, then 60s, then 120s... until the service becomes healthy or the number of retries has exceeded.

@npepinpe
Copy link
Member

I think this was partially implemented in #5626 and #5627. However, some parts are still missing, namely #5629. I will close this issue in favor of #5529. Let me know if I misunderstood the request.

github-merge-queue bot pushed a commit that referenced this issue Mar 14, 2024
* feat(backend): introduce conditions for Opensearch/ELasticsearch

* feat(backend): remove profiles for Opensearch/Elasticsearch

* feat(backend): add OpensearchConnector

* feat(backend): add OpensearchSchemaManager and RetryOpensearchClient

* feat(backend): add OpenDecisionStore

* feat(backend): add OpenDecisionStore

* feat(backend): add OpensearchUtil

Related with #5135

* feat(backend): Add OpensearchProperties and further setups

Related with #5135

* feat(backend): Add schema files for Opensearch

Related with #5135

* feat(backend): Add implementation stubs for Opensearch

Related with #5135

* feat(backend): Add implementation for webapp writer
Related with #5135

* feat(backend): introduce RecordsReader interface

Related with #4887

* feat(backend): renamed IncidentPostImportAction

Related with #4887

* feat(backend): move ELS related methods from FlowNodeInstanceZeebeRecordProcessor to FlowNodeStore

Related with #4887

* fix(backend-test): fix import error

Related with #4887

* feat(backend): remove ELS from ListViewZeebeRecordProcessor (importer-8.3)

Related with #4887

* feat(backend): remove ELS from ProcessZeebeRecordProcessor (importer-8.3)

Related with #4887

* feat(backend): remove ELS from ListView and ProcessZeebeRecordProcessor

- remove ElasticsearchQueries
- rename ElasticsearchBulkProcessor to ImportBulkProcessor

Related with #4887

* fix(backend): use Zeebe Record not java...Record

Related with #4887

* fix(backend-test): use OperateZeebeIntegrationTest in ReindexIT

Related with #4887

* feat(backend): Add implementation stubs for web reader Opensearch

Related with #5135

* feat(backend): add database property

Related with #5135

* feat(backend): implement OpensearchUserStore

Related with #5135

* feat(backend): implement OpensearchZeebeStore

Related with #5135

* feat(backend): implement OpensearchZeebeStore

- add stubs for Opensearch Dao's

Related with #5135

* feat(backend): add conditions and stub implementations

Related with #5135

* feat(backend): use port 9200 also for Opensearch

* feat(backend): add OpensearchRecordsReader implementation

Related with #5135

* feat(backend): start OpensearchImportStore implementation

Related with #5135

* docs(opensearch): add opensearch implementation notes

Related with #5135

* docs(opensearch): add toc for opensearch implementation notes

Related with #5135

* docs(opensearch): add Zeebe client link

Related with #5135

* docs(opensearch): disable operationExecutor in opensearch docs

Related with #5135

* docs(opensearch): check for empty results in OpensearchImportStore

Related with #5135

* Be opensearch implementation 1.1 (#5206)

* feat(backend): Fix ElasticsearchChecks

* feat(backend): Fix TestElasticsearchSchemaManager

* feat(backend): Add TestOpensearchSchemaManager

* feat(backend): Add OpensearchArchiver

* feat(backend): Split OperateZeebeRule into ES/OS

* feat(backend): Add OpensearchChecks

* feat(backend): Add OpensearchUtil

* feat(backend): Fix ZeebeConnectorIT

* feat(backend): Split SearchTestRule into ES/OS

* feat(backend): Introduce DatabaseInfo

* feat(backend): Fix OpenSearchProcessStore

* feat(backend): Implement OpensearchImportStore.updateImportPositions

* feat(backend): Move getAllFlowNodeInstances to FlowNodeInstanceReader

* feat(backend): Add TestUtil.removeAllIndices for opensearch

* feat(backend): Implement finished, refreshOperateSearchIndices, refreshZeebeIndices, areIndicesAreCreated in OpensearchTestRuleProvider

* feat(backend): Implement OpensearchRecordsReader.readNextBatchByPositionAndPartition

* feat(backend): Minor fixes

* feat(backend): Implement OpensearchFlowNodeStore (#5208)

* feat(backend): Implement OpensearchFlowNodeStore

* feat(backend): Minor fixes

* Implement OpensearchIncidentStore (#5225)

* feat(backend): Implement OpensearchIncidentStore

* feat(backend): OpensearchIncidentStore fix

* Be opensearch implementation 1 opensearch metrics store (#5240)

* feat(backend): Introduce RichOpenSearchClient

* feat(backend): Implement OpensearchMetricsStore

* feat(backend): Implement OpensearchMetricsStore

* feat(backend): Implement OpensearchOperationStore (#5251)

* feat(backend): Implement OpensearchOperationStore

* feat(backend): Implement OpensearchOperationStore

* chore(backend): merge master commits (#5272)

* feat(backend): API endpoint for decision definition deletion (#5137)

feat(backend): API endpoint for decision definition deletion

- added REST endpoint and test
- added batch operation for decision definition deletion

Closes #4075

* test: add process instances filters e2e tests (#5142)

* test: add process instance variables e2e tests (#5144)

* test: add process instances table e2e tests (#5145)

* feat(backend): Permissions for decision definition deletion endpoint (#5148)

feat(backend): Permissions for decision definition deletion endpoint

- added DELETE permission check

Closes #5054

* feat(api): Add parentFlowNodeInstanceKey to process instance endpoint. #4971 (#5149)

* feat(backend): Add parentFlowNodeInstanceKey to process instance

feat(backend): Add parentFlowNodeInstanceKey to process instance

- Added field parentFlowNodeInstanceKey

Closes #4971

---------

Co-authored-by: Mihail <122792941+mihail-ca@users.noreply.github.com>

* ci: Fix Browserlist GHA (#5170)

* ci: Fix Browserlist GHA

* chore: Revert to Node 18

* test: fix flaky playwright e2e tests (#5171)

* chore: Update Browserlist DB

* feat(backend): Add handler for DELETE_DECISION_DEFINITION operation (#5157)

* feat(backend): Add handler for DELETE_DECISION_DEFINITION operation

feat(backend): Add handler for DELETE_DECISION_DEFINITION operation

- Added handler

Closes #5036

Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>

* feat: display success notification on definition deletion (#5152)

* feat: display success notification on definition deletion

* chore: set delete definition feature flags to false

* chore: remove ThemeProvider from tests (#5058)

* chore: copy tests

* tests: update test selectors, remove theme provider

* chore: remove ThemeProvider from tests

* chore: remove most of the remaining ThemeProvider from Carbon tests

---------

Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>

* chore(gha): dont trigger deploy-preview on closed PRs (#5179)

* fix: fix carbon migration issues (#5161)

* chore: remove legacy e2e tests (#5164)

* chore: remove legacy e2e tests

* chore: remove obsolete line from README

* chore(deps): update dependency @testing-library/jest-dom to v6.1.1 (#5182)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(backend): return `tenantId` in Public API (#5096)

* assign `<default>` tenant to all `tenantId` fields for now
* return `tenantId` in all relevant Public API endpoints

closes #4930

* test: add process instance history e2e tests (#5150)

* test: add process instance history e2e tests

* test: remove unnecessary polls and fix expect

* chore: increase setup time for process instance history

* refactor: use getByRole selector for tree items

* chore: remove legacy components and routes (#5166)

* chore: remove legacy components and routes

* chore: remove unused constants and functions

* chore: remove common-ui (#5167)

* chore: remove old theme (#5168)

* chore: remove unused global styles (#5169)

* chore: remove carbon folders (#5175)

* fix(backend): Duplicate endpoints in Swagger public API (#5185)

fix(backend): Duplicate endpoints in Swagger public API

- updated Swagger documentation

Closes #5095

* fix(deps): update dependency styled-components to v6 (master) (#4933)

* fix(deps): update dependency styled-components to v6

* chore: fix rebase issues

* fix: fix theme switcher

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>

* fix(deps): update dependency @carbon/elements to v11.28.0 (#5162)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @carbon/react to v1.36.0 (#5165)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency sass to v1.66.1 (#5107)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @camunda/camunda-composite-components to v0.1.3 (master) (#5062)

* fix(deps): update dependency @camunda/camunda-composite-components to v0.1.3

* style: strict style override for p

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>

* fix(deps): update all non-major dependencies (master) (#5141)

* fix(deps): update all non-major dependencies

* chore: fix lint issue

* chore: update playwright version

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>

* chore(deps): update stefanzweifel/git-auto-commit-action digest to 47a8ad5 (#5172)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: Update Browserlist DB

* chore: add release github actions (#5105)

* chore: add release github actions

* chore: use password-stdin for docker login

* chore: create release using github token and upload artifacts to operate repo

* chore: remove unused commented plugins

* chore: remove javaVersion parameter

* fix(backend): Timeout when taking the backup (#5181)

fix(backend): Timeout when taking the backup

- Added additional check for failure, to keep waiting for backup on timeout exception

Closes #3982

* docs(swagger): Enum values added to object schemas (#5180)

Swagger annotations added for:
Process Instance
- state
Incident
-state
-type
Flownode Instance
-type
-state

Related to https://github.com/camunda/camunda-platform-docs/issues/1486

* Create codeql.yml

* feat(backend): decouple importer/importer-8.3 from Elasticsearch (#5094)

* feat(backend): introduce RecordsReader interface

Related with #4887

* feat(backend): renamed IncidentPostImportAction

Related with #4887

* feat(backend): move ELS related methods from FlowNodeInstanceZeebeRecordProcessor to FlowNodeStore

Related with #4887

* fix(backend-test): fix import error

Related with #4887

* feat(backend): remove ELS from ListViewZeebeRecordProcessor (importer-8.3)

Related with #4887

* feat(backend): remove ELS from ProcessZeebeRecordProcessor (importer-8.3)

Related with #4887

* feat(backend): remove ELS from ListView and ProcessZeebeRecordProcessor

- remove ElasticsearchQueries
- rename ElasticsearchBulkProcessor to ImportBulkProcessor

Related with #4887

* fix(backend): use Zeebe Record not java...Record

Related with #4887

* fix(backend-test): use OperateZeebeIntegrationTest in ReindexIT

Related with #4887

* refactor: get rid of node-fetch dependency (#5186)

* fix: add request mocks to modification test (#5190)

* chore: split tests

* test: mock requests before applying modifications

* chore: fix act warnings for ProcessInstance/modifications.test.tsx

* test: fix act warning

---------

Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>

* feat(backend): API endpoint for process definition deletion (#5197)

feat(backend): API endpoint for process definition deletion

- added REST endpoint and test
- added batch operation for process definition deletion

Closes #4076

* feat(backend): add `tenantId` to `POST /api/process-instances` (#5202)

* return `tenantId` for each process instance
* allow filtering by `tenantId`

closes #5099

* feat: configuration flag to enable/disable multi tenancy (#5210)

* chore(preview-env): Add a new workflow to clean up preview environments (#5153)

* feat: add weekly docker image workflow (#5215)

* ci: add weekly-internal-docker-images.yaml

* fix: use correct cron notation

* ci: use quotes for cron job

* ci: update workflow

Use correct docker image. Set the docker tag correctly.

* Update workload-identity-provider and service_account

* ci: add permissions

Add missing permissions to workflow
https://stackoverflow.com/questions/73626841/google-github-actions-auth-failed-with-did-not-inject-actions-id-token-request/73626864#73626864

* ci: checkout first and add more parameters



* Checkout the repo before login (google auth complained here)
* Add caches for gcr.io

---------

Co-authored-by: Ralf Puchert <49151958+ralfpuchert@users.noreply.github.com>

* chore(deps): bump org.yaml:snakeyaml from 2.0 to 2.2 (#5195)

Bumps [org.yaml:snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) from 2.0 to 2.2.
- [Commits](https://bitbucket.org/snakeyaml/snakeyaml/branches/compare/snakeyaml-2.2..snakeyaml-2.0)

---
updated-dependencies:
- dependency-name: org.yaml:snakeyaml
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump org.springdoc:springdoc-openapi-starter-webmvc-ui (#5139)

Bumps [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/springdoc/springdoc-openapi/releases)
- [Changelog](https://github.com/springdoc/springdoc-openapi/blob/main/CHANGELOG.md)
- [Commits](https://github.com/springdoc/springdoc-openapi/compare/v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: org.springdoc:springdoc-openapi-starter-webmvc-ui
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump com.auth0:jwks-rsa from 0.22.0 to 0.22.1 (#5023)

Bumps [com.auth0:jwks-rsa](https://github.com/auth0/jwks-rsa-java) from 0.22.0 to 0.22.1.
- [Release notes](https://github.com/auth0/jwks-rsa-java/releases)
- [Changelog](https://github.com/auth0/jwks-rsa-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/auth0/jwks-rsa-java/compare/0.22.0...0.22.1)

---
updated-dependencies:
- dependency-name: com.auth0:jwks-rsa
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: store user's tenants in session (#5214)

* feat(backend): add tenantId to `GET /api/decisions/grouped` (#5238)

* change GET to POST to allow request body
* return `tenantId` for each decision group
* allow filtering by `tenantId`

closes #5102

* feat(backend): return tenants in GET `/api/authentications/user` (#5230)

closes #5098

* feat(backend): add `tenantId` to `POST /api/decision-instances` (#5211)

* return `tenantId` for each decision instance
* allow filtering by `tenantId`

closes #5101

* chore(test): mark Elasticsearch changes... (#5241)

not to lose when implementing Opensearch

* chore(deps): bump org.testcontainers:elasticsearch from 1.18.3 to 1.19.0 (#5221)

Bumps [org.testcontainers:elasticsearch](https://github.com/testcontainers/testcontainers-java) from 1.18.3 to 1.19.0.
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.18.3...1.19.0)

---
updated-dependencies:
- dependency-name: org.testcontainers:elasticsearch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump version.micrometer from 1.11.2 to 1.11.3 (#5218)

Bumps `version.micrometer` from 1.11.2 to 1.11.3.

Updates `io.micrometer:micrometer-registry-prometheus` from 1.11.2 to 1.11.3
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.11.2...v1.11.3)

Updates `io.micrometer:micrometer-core` from 1.11.2 to 1.11.3
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.11.2...v1.11.3)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-registry-prometheus
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: io.micrometer:micrometer-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump license-maven-plugin from 4.1 to 4.2 (#4289)

Bumps license-maven-plugin from 4.1 to 4.2.

---
updated-dependencies:
- dependency-name: com.mycila:license-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump com.auth0:mvc-auth-commons from 1.9.5 to 1.10.0 (#4973)

Bumps [com.auth0:mvc-auth-commons](https://github.com/auth0/auth0-java-mvc-common) from 1.9.5 to 1.10.0.
- [Release notes](https://github.com/auth0/auth0-java-mvc-common/releases)
- [Changelog](https://github.com/auth0/auth0-java-mvc-common/blob/master/CHANGELOG.md)
- [Commits](https://github.com/auth0/auth0-java-mvc-common/compare/1.9.5...1.10.0)

---
updated-dependencies:
- dependency-name: com.auth0:mvc-auth-commons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump semver dependency (#5248)

* test: add visual regression tests for dashboard page (#5194)

* test: add visual regression tests for dashboard page

* refactor: simplify function type

* test: add visual regression tests for decision detail page (#5196)

* test: add visual regression tests for processes page (#5198)

* test: add visual regression tests for processes page

* refactor: simplify function type

* test: add visual regression tests for decisions page (#5204)

* test: add visual regression tests for decisions page

* refactor: simplify function type

* chore: update camunda composite components (#5257)

* feat(backend): expose `multiTenancyEnabled` in `client-config.json` (#5224)

* feat(backend): expose `multiTenancyEnabled` in `client-config.json`

closes #5223

* chore(test): fix tests

* feat(backend): allow configuring where to read parent data from (#5203)

* feat(backend): allow configuring where to read parent data from

* chore(test): mark Elasticsearch changes...

not to lose when implementing Opensearch

* feat: get tenants for given M2M token from identity (#5242)

* chore: delete unnecessary warning (#5261)

* chore: Update Browserlist DB

* feat(backend): add `tenantId` to `GET /api/processes/grouped` (#5222)

* feat(backend): add `tenantId` to `GET /api/processes/grouped`

* change GET to POST to allow request body
* return `tenantId` for each process group
* allow filtering by `tenantId`

closes #5100

* chore(backend): extend test case

* fix(test): fix test to use POST method instead of GET

* chore(test): fix tests

* chore(deps): bump version.spring.boot from 3.1.2 to 3.1.3 (#5246)

Bumps `version.spring.boot` from 3.1.2 to 3.1.3.

Updates `org.springframework.boot:spring-boot-dependencies` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.2...v3.1.3)

Updates `org.springframework.boot:spring-boot-maven-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.2...v3.1.3)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-dependencies
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework.boot:spring-boot-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(ci): remove PVCs from stage env config (#5264)

* fix(backend-sec): use decisionDefinitionId as Long (#5247)

* fix(backend-sec): use decisionDefinitionId as Long

* feat(backend): use ValidLong for validating decisionDefinitionId

- Use the old way to for error message in permission check

* fix(backend): use SearchTestRule in tests

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: mihail-ca <122792941+mihail-ca@users.noreply.github.com>
Co-authored-by: Hüsna Uygur <45518829+huygur@users.noreply.github.com>
Co-authored-by: johanwelgemoed <112612181+johanwelgemoed@users.noreply.github.com>
Co-authored-by: Vinícius Goulart <vinicius.goulart@camunda.com>
Co-authored-by: vsgoulart <vsgoulart@users.noreply.github.com>
Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>
Co-authored-by: Patrick Dehn <pedesen@users.noreply.github.com>
Co-authored-by: Lars Lange <9141483+Langleu@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Svetlana Dorokhova <svetlana.dorokhova@camunda.com>
Co-authored-by: Roman Smirnov <roman.smirnov@camunda.com>
Co-authored-by: Clément Nero <clement.nero@camunda.com>
Co-authored-by: Christopher Kujawa (Zell) <zelldon91@googlemail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): Implement OpenSearchProcessStore (#5271)

* feat(backend): Implement OpenSearchProcessStore

* feat(backend): Implement OpensearchBatchRequest

* feat(backend): remove ELS deps from MigrationProperties (#5279)

* fix(backend-tests) fix backend integration tests (#5281)

* fix(backend-tests):Use annotation Conditional

* fix(backend-tests):include ZeebeImporter for ModulesTestApplication

* feat(backend): Implement OpensearchBatchRequest (#5278)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* fix(backend): remove duplicated @Conditional annotation

* fix(backend): RichOpenSearchClient (#5284)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): Implement OpensearchFlowNodeStore (#5290)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): Implement OpensearchListViewStore (#5291)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): Implement OpensearchDecisionStore (#5288)

* feat(backend): Implement OpensearchDecisionStore

* feat(backend): Implement OpensearchDecisionStore

---------

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* test(backend): add OpensearchBatchRequest tests (#5295)

* fix(backend): remove duplicated @Conditional annotation

* test(backend): add OpensearchBatchRequestIT

* fix(backend): Fix opensearch ndjson serialization (#5293)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): distinguish opensearch and elasticsearch index prefixes

* feat(backend): add search index method for DSL

* feat(backend): refactoring

* test(backend): add update and add tests

* feat(backend): add fix and test for upsert

* feat(backend): add fix upsert with routing

* feat(backend): rename DSL searchRequestBuilder method

---------

Co-authored-by: Oleksandr Kriuchenko <105281107+oleksandr-kriuchenko-lohika@users.noreply.github.com>
Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* Implement OpensearchSequenceFlowStore (#5308)

* feat(backend): Implement OpensearchSequenceFlowStore

* feat(backend): Reorganize OpensearchDSL

---------

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): implement Opensearch importer (#5333)

* feat(backend): add OpensearchDSL methods

* feat(backend): read Opensearch record as JSON string

* fix(backend): disable post importer

* fix(backend): fix bug in creating List with null items with `List.of`

* fix(backend): fix bug in updating import-position index

* feat(backend): Implement OpenSearchProcessStore (#5294)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* fix(backend): Fix aggregation in OpenSearchProcessStore.getCoreStatistics (#5352)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): Combine RichOpenSearchClient, RetryOpenSearchClient, OpenSearchTask and OpensearchUtil (#5340)

* feat(backend): Implement OpensearchTaskStore

* feat(backend): Implement OpensearchTaskStore

* feat(backend): Implement OpensearchIncidentStatisticsReader

* feat(backend): Implement OpensearchTaskStore

* feat(backend): Implement OpensearchIncidentStatisticsReader

---------

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): Implement OpensearchIncidentStatisticsReader (#5386)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): Implement OpensearchBatchOperationReader (#5387)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): Implement OpensearchListViewReader (#5394)

* feat(backend): Implement OpensearchListViewReader

* feat(backend): Implement OpensearchListViewReader

---------

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): Implement OpensearchOperationReader (#5408)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* fix(backend): Fix OpensearchBatchRequest (#5409)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* fix(backend): Fix JacksonConfig: allow constructors (#5412)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): Opensearch implementation for PostImportAction (#5413)

* chore(project): use Opensearch 2.5

* clean(backend): remove unused import

* feat(backend): add OpensearchIncidentPostImportAction

* feat(backend): enable post importer

* fix(backend): fix null position in query

* feat(backend): Implement OpensearchBatchOperationWriter (#5414)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* fix(backend): Fix OpensearchIncidentStatisticsReader.getIncidentsByErrorMsgStatistic (#5416)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* chore(project): merge master  (#5422)

* feat(backend): API endpoint for decision definition deletion (#5137)

feat(backend): API endpoint for decision definition deletion

- added REST endpoint and test
- added batch operation for decision definition deletion

Closes #4075

* test: add process instances filters e2e tests (#5142)

* test: add process instance variables e2e tests (#5144)

* test: add process instances table e2e tests (#5145)

* feat(backend): Permissions for decision definition deletion endpoint (#5148)

feat(backend): Permissions for decision definition deletion endpoint

- added DELETE permission check

Closes #5054

* feat(api): Add parentFlowNodeInstanceKey to process instance endpoint. #4971 (#5149)

* feat(backend): Add parentFlowNodeInstanceKey to process instance

feat(backend): Add parentFlowNodeInstanceKey to process instance

- Added field parentFlowNodeInstanceKey

Closes #4971

---------

Co-authored-by: Mihail <122792941+mihail-ca@users.noreply.github.com>

* ci: Fix Browserlist GHA (#5170)

* ci: Fix Browserlist GHA

* chore: Revert to Node 18

* test: fix flaky playwright e2e tests (#5171)

* chore: Update Browserlist DB

* feat(backend): Add handler for DELETE_DECISION_DEFINITION operation (#5157)

* feat(backend): Add handler for DELETE_DECISION_DEFINITION operation

feat(backend): Add handler for DELETE_DECISION_DEFINITION operation

- Added handler

Closes #5036

Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>

* feat: display success notification on definition deletion (#5152)

* feat: display success notification on definition deletion

* chore: set delete definition feature flags to false

* chore: remove ThemeProvider from tests (#5058)

* chore: copy tests

* tests: update test selectors, remove theme provider

* chore: remove ThemeProvider from tests

* chore: remove most of the remaining ThemeProvider from Carbon tests

---------

Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>

* chore(gha): dont trigger deploy-preview on closed PRs (#5179)

* fix: fix carbon migration issues (#5161)

* chore: remove legacy e2e tests (#5164)

* chore: remove legacy e2e tests

* chore: remove obsolete line from README

* chore(deps): update dependency @testing-library/jest-dom to v6.1.1 (#5182)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(backend): return `tenantId` in Public API (#5096)

* assign `<default>` tenant to all `tenantId` fields for now
* return `tenantId` in all relevant Public API endpoints

closes #4930

* test: add process instance history e2e tests (#5150)

* test: add process instance history e2e tests

* test: remove unnecessary polls and fix expect

* chore: increase setup time for process instance history

* refactor: use getByRole selector for tree items

* chore: remove legacy components and routes (#5166)

* chore: remove legacy components and routes

* chore: remove unused constants and functions

* chore: remove common-ui (#5167)

* chore: remove old theme (#5168)

* chore: remove unused global styles (#5169)

* chore: remove carbon folders (#5175)

* fix(backend): Duplicate endpoints in Swagger public API (#5185)

fix(backend): Duplicate endpoints in Swagger public API

- updated Swagger documentation

Closes #5095

* fix(deps): update dependency styled-components to v6 (master) (#4933)

* fix(deps): update dependency styled-components to v6

* chore: fix rebase issues

* fix: fix theme switcher

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>

* fix(deps): update dependency @carbon/elements to v11.28.0 (#5162)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @carbon/react to v1.36.0 (#5165)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency sass to v1.66.1 (#5107)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @camunda/camunda-composite-components to v0.1.3 (master) (#5062)

* fix(deps): update dependency @camunda/camunda-composite-components to v0.1.3

* style: strict style override for p

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>

* fix(deps): update all non-major dependencies (master) (#5141)

* fix(deps): update all non-major dependencies

* chore: fix lint issue

* chore: update playwright version

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>

* chore(deps): update stefanzweifel/git-auto-commit-action digest to 47a8ad5 (#5172)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: Update Browserlist DB

* chore: add release github actions (#5105)

* chore: add release github actions

* chore: use password-stdin for docker login

* chore: create release using github token and upload artifacts to operate repo

* chore: remove unused commented plugins

* chore: remove javaVersion parameter

* fix(backend): Timeout when taking the backup (#5181)

fix(backend): Timeout when taking the backup

- Added additional check for failure, to keep waiting for backup on timeout exception

Closes #3982

* docs(swagger): Enum values added to object schemas (#5180)

Swagger annotations added for:
Process Instance
- state
Incident
-state
-type
Flownode Instance
-type
-state

Related to https://github.com/camunda/camunda-platform-docs/issues/1486

* Create codeql.yml

* feat(backend): decouple importer/importer-8.3 from Elasticsearch (#5094)

* feat(backend): introduce RecordsReader interface

Related with #4887

* feat(backend): renamed IncidentPostImportAction

Related with #4887

* feat(backend): move ELS related methods from FlowNodeInstanceZeebeRecordProcessor to FlowNodeStore

Related with #4887

* fix(backend-test): fix import error

Related with #4887

* feat(backend): remove ELS from ListViewZeebeRecordProcessor (importer-8.3)

Related with #4887

* feat(backend): remove ELS from ProcessZeebeRecordProcessor (importer-8.3)

Related with #4887

* feat(backend): remove ELS from ListView and ProcessZeebeRecordProcessor

- remove ElasticsearchQueries
- rename ElasticsearchBulkProcessor to ImportBulkProcessor

Related with #4887

* fix(backend): use Zeebe Record not java...Record

Related with #4887

* fix(backend-test): use OperateZeebeIntegrationTest in ReindexIT

Related with #4887

* refactor: get rid of node-fetch dependency (#5186)

* fix: add request mocks to modification test (#5190)

* chore: split tests

* test: mock requests before applying modifications

* chore: fix act warnings for ProcessInstance/modifications.test.tsx

* test: fix act warning

---------

Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>

* feat(backend): API endpoint for process definition deletion (#5197)

feat(backend): API endpoint for process definition deletion

- added REST endpoint and test
- added batch operation for process definition deletion

Closes #4076

* feat(backend): add `tenantId` to `POST /api/process-instances` (#5202)

* return `tenantId` for each process instance
* allow filtering by `tenantId`

closes #5099

* feat: configuration flag to enable/disable multi tenancy (#5210)

* chore(preview-env): Add a new workflow to clean up preview environments (#5153)

* feat: add weekly docker image workflow (#5215)

* ci: add weekly-internal-docker-images.yaml

* fix: use correct cron notation

* ci: use quotes for cron job

* ci: update workflow

Use correct docker image. Set the docker tag correctly.

* Update workload-identity-provider and service_account

* ci: add permissions

Add missing permissions to workflow
https://stackoverflow.com/questions/73626841/google-github-actions-auth-failed-with-did-not-inject-actions-id-token-request/73626864#73626864

* ci: checkout first and add more parameters



* Checkout the repo before login (google auth complained here)
* Add caches for gcr.io

---------

Co-authored-by: Ralf Puchert <49151958+ralfpuchert@users.noreply.github.com>

* chore(deps): bump org.yaml:snakeyaml from 2.0 to 2.2 (#5195)

Bumps [org.yaml:snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) from 2.0 to 2.2.
- [Commits](https://bitbucket.org/snakeyaml/snakeyaml/branches/compare/snakeyaml-2.2..snakeyaml-2.0)

---
updated-dependencies:
- dependency-name: org.yaml:snakeyaml
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump org.springdoc:springdoc-openapi-starter-webmvc-ui (#5139)

Bumps [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/springdoc/springdoc-openapi/releases)
- [Changelog](https://github.com/springdoc/springdoc-openapi/blob/main/CHANGELOG.md)
- [Commits](https://github.com/springdoc/springdoc-openapi/compare/v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: org.springdoc:springdoc-openapi-starter-webmvc-ui
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump com.auth0:jwks-rsa from 0.22.0 to 0.22.1 (#5023)

Bumps [com.auth0:jwks-rsa](https://github.com/auth0/jwks-rsa-java) from 0.22.0 to 0.22.1.
- [Release notes](https://github.com/auth0/jwks-rsa-java/releases)
- [Changelog](https://github.com/auth0/jwks-rsa-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/auth0/jwks-rsa-java/compare/0.22.0...0.22.1)

---
updated-dependencies:
- dependency-name: com.auth0:jwks-rsa
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: store user's tenants in session (#5214)

* feat(backend): add tenantId to `GET /api/decisions/grouped` (#5238)

* change GET to POST to allow request body
* return `tenantId` for each decision group
* allow filtering by `tenantId`

closes #5102

* feat(backend): return tenants in GET `/api/authentications/user` (#5230)

closes #5098

* feat(backend): add `tenantId` to `POST /api/decision-instances` (#5211)

* return `tenantId` for each decision instance
* allow filtering by `tenantId`

closes #5101

* chore(test): mark Elasticsearch changes... (#5241)

not to lose when implementing Opensearch

* chore(deps): bump org.testcontainers:elasticsearch from 1.18.3 to 1.19.0 (#5221)

Bumps [org.testcontainers:elasticsearch](https://github.com/testcontainers/testcontainers-java) from 1.18.3 to 1.19.0.
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.18.3...1.19.0)

---
updated-dependencies:
- dependency-name: org.testcontainers:elasticsearch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump version.micrometer from 1.11.2 to 1.11.3 (#5218)

Bumps `version.micrometer` from 1.11.2 to 1.11.3.

Updates `io.micrometer:micrometer-registry-prometheus` from 1.11.2 to 1.11.3
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.11.2...v1.11.3)

Updates `io.micrometer:micrometer-core` from 1.11.2 to 1.11.3
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.11.2...v1.11.3)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-registry-prometheus
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: io.micrometer:micrometer-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump license-maven-plugin from 4.1 to 4.2 (#4289)

Bumps license-maven-plugin from 4.1 to 4.2.

---
updated-dependencies:
- dependency-name: com.mycila:license-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump com.auth0:mvc-auth-commons from 1.9.5 to 1.10.0 (#4973)

Bumps [com.auth0:mvc-auth-commons](https://github.com/auth0/auth0-java-mvc-common) from 1.9.5 to 1.10.0.
- [Release notes](https://github.com/auth0/auth0-java-mvc-common/releases)
- [Changelog](https://github.com/auth0/auth0-java-mvc-common/blob/master/CHANGELOG.md)
- [Commits](https://github.com/auth0/auth0-java-mvc-common/compare/1.9.5...1.10.0)

---
updated-dependencies:
- dependency-name: com.auth0:mvc-auth-commons
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump semver dependency (#5248)

* test: add visual regression tests for dashboard page (#5194)

* test: add visual regression tests for dashboard page

* refactor: simplify function type

* test: add visual regression tests for decision detail page (#5196)

* test: add visual regression tests for processes page (#5198)

* test: add visual regression tests for processes page

* refactor: simplify function type

* test: add visual regression tests for decisions page (#5204)

* test: add visual regression tests for decisions page

* refactor: simplify function type

* chore: update camunda composite components (#5257)

* feat(backend): expose `multiTenancyEnabled` in `client-config.json` (#5224)

* feat(backend): expose `multiTenancyEnabled` in `client-config.json`

closes #5223

* chore(test): fix tests

* feat(backend): allow configuring where to read parent data from (#5203)

* feat(backend): allow configuring where to read parent data from

* chore(test): mark Elasticsearch changes...

not to lose when implementing Opensearch

* feat: get tenants for given M2M token from identity (#5242)

* chore: delete unnecessary warning (#5261)

* chore: Update Browserlist DB

* feat(backend): add `tenantId` to `GET /api/processes/grouped` (#5222)

* feat(backend): add `tenantId` to `GET /api/processes/grouped`

* change GET to POST to allow request body
* return `tenantId` for each process group
* allow filtering by `tenantId`

closes #5100

* chore(backend): extend test case

* fix(test): fix test to use POST method instead of GET

* chore(test): fix tests

* chore(deps): bump version.spring.boot from 3.1.2 to 3.1.3 (#5246)

Bumps `version.spring.boot` from 3.1.2 to 3.1.3.

Updates `org.springframework.boot:spring-boot-dependencies` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.2...v3.1.3)

Updates `org.springframework.boot:spring-boot-maven-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.2...v3.1.3)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-dependencies
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework.boot:spring-boot-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(ci): remove PVCs from stage env config (#5264)

* fix(backend-sec): use decisionDefinitionId as Long (#5247)

* fix(backend-sec): use decisionDefinitionId as Long

* feat(backend): use ValidLong for validating decisionDefinitionId

- Use the old way to for error message in permission check

* chore(project): use Sunday as first day in week (#5270)

* test: add visual regression tests for process instance page (#5207)

* test: add visual regression tests for process instance page

* refactor: simplify function type

* refactor: reuse mockResponses in error cases

* test: add visual regression tests for modifications (#5209)

* test: check visible items after scrolling within child nodes (#5266)

* chore(ci): remove PVCs from stage env config (#5282)

* feat: enable decision definition deletion in UI (#5229)

* chore: remove mock handlers for decision definition deletion

* chore: remove feature flag

* fix(preview-env): Run the cleanup job in preview-env-deploy workflow only on 'pull_request' events (#5289)

* chore: update Zeebe and Identity to 8.3.0-alpha5 (#5302)

* chore: update Zeebe and Identity to 8.3.0-alpha5

* chore: update docker images in identity docker compose file

* chore: update CHANGELOG.md

* [maven-release-plugin] prepare release 8.3.0-alpha5

* [maven-release-plugin] prepare for next development iteration

* Update CHANGELOG.md

moved *deps from bugfixes section to chore

* chore: update Zeebe and Identity to 8.3.0-alpha6 (#5312)

* chore: update CHANGELOG.md

* [maven-release-plugin] prepare release 8.3.0-alpha6

* [maven-release-plugin] prepare for next development iteration

* chore: update snapshots for visual regression tests (#5320)

* chore: change variable value field to text area (#5239)

* chore(deps): bump version.elasticsearch from 7.17.12 to 7.17.13 (#5304)

Bumps `version.elasticsearch` from 7.17.12 to 7.17.13.

Updates `org.elasticsearch.client:elasticsearch-rest-high-level-client` from 7.17.12 to 7.17.13
- [Release notes](https://github.com/elastic/elasticsearch/releases)
- [Changelog](https://github.com/elastic/elasticsearch/blob/main/CHANGELOG.md)
- [Commits](https://github.com/elastic/elasticsearch/compare/v7.17.12...v7.17.13)

Updates `org.elasticsearch.client:elasticsearch-rest-client` from 7.17.12 to 7.17.13
- [Release notes](https://github.com/elastic/elasticsearch/releases)
- [Changelog](https://github.com/elastic/elasticsearch/blob/main/CHANGELOG.md)
- [Commits](https://github.com/elastic/elasticsearch/compare/v7.17.12...v7.17.13)

Updates `org.elasticsearch:elasticsearch-x-content` from 7.17.12 to 7.17.13
- [Release notes](https://github.com/elastic/elasticsearch/releases)
- [Changelog](https://github.com/elastic/elasticsearch/blob/main/CHANGELOG.md)
- [Commits](https://github.com/elastic/elasticsearch/compare/v7.17.12...v7.17.13)

---
updated-dependencies:
- dependency-name: org.elasticsearch.client:elasticsearch-rest-high-level-client
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.elasticsearch.client:elasticsearch-rest-client
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.elasticsearch:elasticsearch-x-content
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump org.mockito:mockito-core from 5.4.0 to 5.5.0 (#5220)

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.4.0...v5.5.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: Update Browserlist DB

* feat: filter by current tenants when using internal api (#5243)

* task: provide a tenant aware ES client

* feat: apply tenant check when using internal api

* fix: rethrow runtime exceptions

* test: fix DecisionIT test by authenticate for all tenants

* feat: apply tenant check when using public api (#5244)

* chore: set IS_VARIABLE_VALUE_IN_FILTER_ENABLED to false (#5336)

* fix(auth): even in `sso-auth` profile we need to create Identity (#5337)

closes #5269

* feat(api): add `tenantId` parameter to Public API endpoints (#5303)

* feat(api): add `tenantId` parameter to Public API endpoints

closes #4859

* test(api): add `tenantId` parameter to Public API endpoints

* feat: display process definition id on top of diagram (#5321)

* feat: display process definition id on top of diagram

* fix: display correct id

* style: update tooltip text

* feat: display decision definition id on top of diagram (#5322)

* feat: display decision definition id on top of diagram

* fix: display correct id

* style: update tooltip text

* feat: add tenant filter to processes page (#5277)

* feat: add tenant filter to processes page

* refactor: rename accumulator

* refactor: remove unnecessary wrapper

* refactor: remove default value for c8links

* style: change option All to All versions for version filter

* refactor: fix type for userdto

* chore: remove user api mock

* feat: add tenant filter to decisions page (#5292)

* feat: add tenant filter to decisions page

* style: change option All to All versions for version filter

* chore(deps): update all non-major dependencies (#4983)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat: display tenant column in processes list (#5323)

* feat: display tenant column in processes list

* refactor: rename boolean value for displaying tenant column

* chore: remove user api mock

* feat: display tenant column in decisions list (#5324)

* feat: display tenant column in decisions list

* refactor: rename boolean value for displaying tenant column

* chore: use POST instead of GET for grouped processes endpoint (#5328)

* feat: display tenant column in decisions list

* refactor: rename boolean value for displaying tenant column

* chore: use POST instead of GET for grouped processes endpoint

* chore(backend): update base image version (#5363)

* chore(backend): update base image version

* chore(Dockerfile): update base image digest

* style: update process definition deletion warning text (#5268)

* style: update process definition deletion warning text

* chore: set IS_PROCESS_DEFINITION_DELETION_ENABLED to true

* chore: set IS_PROCESS_DEFINITION_DELETION_ENABLED to false

* fix(backend): check security context for tenant check (#5373)

One and the same code may be reused in Internal API calls (withing security context) and in importer (no security context). We need to check that in order for tenant check works for both cases.

* Update Public Sync (#5372)

* fix(deps): update dependency bpmn-js to v14 (master) (#5228)

* fix(deps): update dependency bpmn-js to v14

* chore: set deferUpdate to true

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Patrick Dehn <patrick.dehn@camunda.com>

* chore: add mixpanel events for definition deletion (#5259)

* fix(backend): decrease refresh period for resource authorizations (#5341)

closes #5339

* feat(backend): check tenant when scheduling single operations (#5331)

* feat(backend): check tenant when scheduling single operations

closes #5285

* fix(test): fix test

* feat(backend): add `tenantId` parameter to usage metrics index (#5332)

* feat(backend): add `tenantId` parameter to usage metrics index

closes #5260

* fix(test): fix migration packages

* fix(migration): assign default tenant to old metrics

* style: add tenant column in pid page and update version link (#5371)

* style: add tenant column in pid page and update version link

* refactor: reuse title for aria-label

* test: add assertion for version link

* refactor: get columns from within header component

* chore: remove mocks

* fix: fix double refetch in decisions page on header click or refresh (#5365)

* fix: fix double refetch in decisions page on header click or refresh

* refactor: improve fetch decisions logic

* style: disable delete definition button if process has running instances (#5338)

* style: disable delete definition button if process has running instances

* refactor: use async function in useEffect

* chore: set IS_PROCESS_DEFINITION_DELETION_ENABLED to false

* feat(importer): read tenant from zeebe records (#5330)

* feat(backend): read `tenantId` from Zeebe records

closes #4778

* fix(backend): fix VariableEntity class and add tenant when generating data

closes #4778

* fix(test): fix tests

* fix(tests): ignore tests temporary

These tests are failing because multi-tenancy is not yet ready on Zeebe side

* fix(backend): add more tenant support in Internal API (#5382)

* fix(backend): add more tenant support in Internal API

* fix response from `GET /api/incidents/byError to include tenantId`
* fix response from `GET /api/incidents/byProcess to include tenantId`
* implement sorting by tenantId in `POST /api/process-instances endpoint`
* return tenantId in `GET /api/decision-instances/{id}`

closes #5370

* fix(backend): fix typo

* fix(backend): sort by tenantId

+ tests

* fix(backend): fix "incidents by error" endpoint

* fix(backend): filter vairables by user tenants (#5391)

closes #4860

* feat(backend): filter variables by IN values (#5399)

closes #5392

* chore(migration): use more safe map key (#5405)

This is a pure technical change as it does not affect any logic or APIs. The purpose is to avoid collisions in map key.

* chore: Update Browserlist DB

* feat(feature-flagged): add multiple variable values textarea (#5307)

* feat(feature-flagged): add multiple variable values textarea

* chore: add tests

* chore: remove unnecessary test

* chore: add feature flag to test

* chore: remove unnecessary feature flag check

* chore: rename getVariableValues -> getValidVariableValues

* chore: set IS_VARIABLE_VALUE_IN_FILTER_ENABLED to false

* feat(feature-flagged): add multiple variable values modal (#5316)

* feat(feature-flagged): add multiple variable values modal

* test: improve tests

* chore: reuse error message

* chore: remove unnecessary isInvisible check

* chore: update tracking variants

* style: remove textarea rows

* chore: add cdn.jsdelivr.net to connect-src directive

* style: update placeholder text and error message

* chore: don't clear input field on multiple toggle

* chore: trigger validation after changing multiple mode

* test: skip test

* fix(backend): add TaskStore to Opensearch branch

* fix(backend): implement new signatur in MetricsStore

* fix(backend): fix StatisticsReader

* fix(backend): fix usage of QueryHelper

* fix(backend): use conditional annotation

* feat(backend): add TenantAwareOpensearchClient (not implemented)

* feat(backend): add tenantId in opensearch index

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: mihail-ca <122792941+mihail-ca@users.noreply.github.com>
Co-authored-by: Hüsna Uygur <45518829+huygur@users.noreply.github.com>
Co-authored-by: johanwelgemoed <112612181+johanwelgemoed@users.noreply.github.com>
Co-authored-by: Vinícius Goulart <vinicius.goulart@camunda.com>
Co-authored-by: vsgoulart <vsgoulart@users.noreply.github.com>
Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>
Co-authored-by: Patrick Dehn <pedesen@users.noreply.github.com>
Co-authored-by: Lars Lange <9141483+Langleu@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Svetlana Dorokhova <svetlana.dorokhova@camunda.com>
Co-authored-by: Roman Smirnov <roman.smirnov@camunda.com>
Co-authored-by: Clément Nero <clement.nero@camunda.com>
Co-authored-by: Christopher Kujawa (Zell) <zelldon91@googlemail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: camundait <camundait@users.noreply.github.com>
Co-authored-by: github-operate-app <ci@operate.camunda.cloud>
Co-authored-by: Quentin <quentin.leroy@camunda.com>
Co-authored-by: Patrick Dehn <patrick.dehn@camunda.com>

* fix(backend): moved current ELS ListViewReader methods to QueryHelper (#5428)

* fix(backend): moved current ELS ListViewReader methods to QueryHelper

* fix(backend): fix typo

* feat(backend): change ProcessReader interface to class due to ProcessStore usage (#5430)

* feat(backend): add OpensearchVariableReader implementation (#5431)

* feat(backend): add sourceExclude to QueryDSL

* feat(backend): add OpensearchVariableReader implementation

* feat(backend): Implement OpensearchFlowNodeInstanceReader (#5432)

Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>

* feat(backend): add Opensearch implementation for DecisionReader and DecisionInstanceReader  (#5436)

* feat(backend): add OpensearchDecisionInstanceReader implementation

* feat(backend): add OpensearchReader implementation

* feat(backend): fix constructing SortOrder by String

* fix(backend): use searchUnique and get dateFormat from OpensearchProperties

* fix(backend): remove unused OpensearchUtil

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Oleksandr Kriuchenko <105281107+oleksandr-kriuchenko-lohika@users.noreply.github.com>
Co-authored-by: mihail-ca <122792941+mihail-ca@users.noreply.github.com>
Co-authored-by: Hüsna Uygur <45518829+huygur@users.noreply.github.com>
Co-authored-by: johanwelgemoed <112612181+johanwelgemoed@users.noreply.github.com>
Co-authored-by: Vinícius Goulart <vinicius.goulart@camunda.com>
Co-authored-by: vsgoulart <vsgoulart@users.noreply.github.com>
Co-authored-by: Hüsna Uygur <husna.uygur@camunda.com>
Co-authored-by: Patrick Dehn <pedesen@users.noreply.github.com>
Co-authored-by: Lars Lange <9141483+Langleu@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Svetlana Dorokhova <svetlana.dorokhova@camunda.com>
Co-authored-by: Roman Smirnov <roman.smirnov@camunda.com>
Co-authored-by: Clément Nero <clement.nero@camunda.com>
Co-authored-by: Christopher Kujawa (Zell) <zelldon91@googlemail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Oleksandr Kriuchenko <okriuchenko@lohika.com>
Co-authored-by: camundait <camundait@users.noreply.github.com>
Co-authored-by: github-operate-app <ci@operate.camunda.cloud>
Co-authored-by: Quentin <quentin.leroy@camunda.com>
Co-authored-by: Patrick Dehn <patrick.dehn@camunda.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocker/stakeholder Marks an issue as blocked, waiting for stakeholder input kind/feature Categorizes an issue or PR as a feature, i.e. new behavior scope/broker Marks an issue or PR to appear in the broker section of the changelog scope/gateway Marks an issue or PR to appear in the gateway section of the changelog
Projects
None yet
Development

No branches or pull requests

4 participants