-
Notifications
You must be signed in to change notification settings - Fork 590
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
Potential race condition in Raft cluster join process #5292
Comments
I have seen this again in a failing IT tests, which caused bors to fail. Related build https://ci.zeebe.camunda.cloud/job/zeebe-io/job/zeebe/job/staging/2336/ Output: |
This causes from time to time failing IT tests and it is not really visible in jenkins, since surefire can't open so big xml files.
We should fix this. |
See in our latest benchmarks it seems that we are not able to join on the leader correctly. |
I would like to revise the priority. I think this is more problematic then we think. It also causes our builds to fail. |
As discussed with Deepthi, let's timebox this to reproduce it. If we still can't reproduce it, please do not pick up - however if this happens again and we have a chance to observe it with the additional logs Deepthi added, then let's immediately investigate. |
5973: chore(atomix): add more logs in the join process r=MiguelPires a=deepthidevaki ## Description Add more logs to help debug #5292 ## Related issues ## Definition of Done _Not all items need to be done depending on the issue and the pull request._ Code changes: * [x] The changes are backwards compatibility with previous versions * [ ] If it fixes a bug then PRs are created to [backport](https://github.com/zeebe-io/zeebe/compare/stable/0.24...develop?expand=1&template=backport_template.md&title=[Backport%200.24]) the fix to the last two minor versions. You can trigger a backport by assigning labels (e.g. `backport stable/0.25`) to the PR, in case that fails you need to create backports manually. Testing: * [ ] There are unit/integration tests that verify all acceptance criterias of the issue * [ ] New tests are written to ensure backwards compatibility with further versions * [ ] The behavior is tested manually * [ ] The impact of the changes is verified by a benchmark Documentation: * [ ] The documentation is updated (e.g. BPMN reference, configuration, examples, get-started guides, etc.) * [ ] New content is added to the [release announcement](https://drive.google.com/drive/u/0/folders/1DTIeswnEEq-NggJ25rm2BsDjcCQpDape) Co-authored-by: Deepthi Devaki Akkoorath <deepthidevaki@gmail.com>
I was able to extract the join code into a helper class, such that I can write some unit tests against it. I was wondering whether this current behavior is really expected. First test: @Test
public void shouldJoin() throws Exception {
// given
final var raftMembers = List
.of(createRaftMemberContext("1"), createRaftMemberContext("2"),
createRaftMemberContext("3"));
final CountDownLatch latch = new CountDownLatch(1);
final var joinResponse = createSuccessfulJoinResponse();
final var raftJoinHelper = new RaftJoinHelper(singleThreadContext,
((memberId, joinRequest) -> CompletableFuture.completedFuture(joinResponse)),
singleThreadContext::schedule,
Duration.ofMillis(10), (response) -> latch.countDown());
// when
singleThreadContext.execute(() -> {
raftJoinHelper
.join(raftMembers.iterator(), () -> createRaftMember("4"), () -> raftMembers.iterator());
});
// then
latch.await(15, TimeUnit.SECONDS);
} In the test we pretend that we (local) are node 4 and we want to join 1, 2 and 3. It uses the same code as before it is just has more dependency injection for test ability. The output is the following:
It looks like we immediately try to join two nodes. Is this expected? @npepinpe @deepthidevaki ? I added another test, where I returned only on one node the successful response. @Test
public void shouldJoinOnlyOneNode() throws Exception {
// given
final var raftMembers = List
.of(createRaftMemberContext("1"), createRaftMemberContext("2"),
createRaftMemberContext("3"));
final CountDownLatch latch = new CountDownLatch(1);
final var joinResponse = createSuccessfulJoinResponse();
final var noLeaderJoinResponse = createNoLeaderJoinResponse();
final var raftJoinHelper = new RaftJoinHelper(singleThreadContext,
((memberId, joinRequest) -> {
if (memberId.id().equals("2")) {
return CompletableFuture.completedFuture(joinResponse);
}
return CompletableFuture.completedFuture(noLeaderJoinResponse);
}),
singleThreadContext::schedule,
Duration.ofMillis(10), (response) -> latch.countDown());
// when
singleThreadContext.execute(() -> {
raftJoinHelper
.join(raftMembers.iterator(), () -> createRaftMember("4"), () -> raftMembers.iterator());
});
// then
latch.await(15, TimeUnit.SECONDS);
} And we can see that it tries all until it joined twice?
Any thoughts on this? Would like to discuss this before I continue, such that I know what should be the expected behavior. |
I'm not very familiar with the current implementation, such that it may be "expected" when you read it - but I don't think it's expected behaviour. Been a while since I read the configuration changes section of the paper, but I don't see why it needs to join via 2 nodes. I vaguely remember a section about arbitrary configuration changes which I skimmed - this might be what's implemented in Atomix? There you could add/remove X servers, and not just one at a time, and it might be a bit more complex and require multiple nodes to accept the new config. I'd have to re-read it. |
Reading more into it, it sounds like we may implement arbitrary configuration changes (which makes sense as we want to restart from a stopped cluster, or start from nothing). Let me read our implementation a bit more and I'll comment again tomorrow morning 👍 How nice it would be to have technical docs ;) |
It does not have to join via all nodes. Only leader can accept a join request. Leader should accept it after the configuration is committed (replicated to quorum). So once the leader sent a successful join response there is no need for it to try to join via other nodes. |
@deepthidevaki this would be also my thinking. Furthermore I would also expect that it stops the join process, when it becomes leader right? |
Discussed this topic together with @npepinpe and @deepthidevaki we decided to completely remove the join and leave functionality, since we currently have no benefit out of it. The join makes sense for dynamic clusters, where we can add nodes later etc. Currently our cluster configurations are static and are known from start on, we don't need to get the knowledge from the leader so there is no need of a join. If we remove the join we should consequently also remove the leave, which is currently also not used by us. If we need that later we can bring it back or implement it in a better way, which is then hopefully more maintainable and less confusing then the current solution. Furthermore, we checked whether this has consequences on becoming ready if we restart a follower and as far as we saw in the code it should still work as before. I will create an PR to remove both. |
6142: chore(atomix): remove Raft#leave r=Zelldon a=Zelldon ## Description As discussed yesterday we will remove leave and join. > Discussed this topic together with @npepinpe and @deepthidevaki we decided to completely remove the join and leave > functionality, since we currently have no benefit out of it. > > The join makes sense for dynamic clusters, where we can add nodes later etc. Currently our cluster configurations are static and are known from start on, we don't need to get the knowledge from the leader so there is no need of a join. If we remove the join we should consequently also remove the leave, which is currently also not used by us. If we need that later we can bring it back or implement it in a better way, which is then hopefully more maintainable and less confusing then the current solution. > > Furthermore, we checked whether this has consequences on becoming ready if we restart a follower and as far as we saw in the code it should still work as before. > > I will create an PR to remove both. > > #5292 (comment) As first iteration I want to remove leave, since it is not used anywhere and this makes it easier to review the changes. After I removed join I will run benchmarks and QA. <!-- Please explain the changes you made here. --> ## Related issues <!-- Which issues are closed by this PR or are related --> related #5292 ## Definition of Done _Not all items need to be done depending on the issue and the pull request._ Code changes: * [ ] The changes are backwards compatibility with previous versions * [ ] If it fixes a bug then PRs are created to [backport](https://github.com/zeebe-io/zeebe/compare/stable/0.24...develop?expand=1&template=backport_template.md&title=[Backport%200.24]) the fix to the last two minor versions. You can trigger a backport by assigning labels (e.g. `backport stable/0.25`) to the PR, in case that fails you need to create backports manually. Testing: * [ ] There are unit/integration tests that verify all acceptance criterias of the issue * [ ] New tests are written to ensure backwards compatibility with further versions * [ ] The behavior is tested manually * [ ] The change has been verified by a QA run * [ ] The impact of the changes is verified by a benchmark Documentation: * [ ] The documentation is updated (e.g. BPMN reference, configuration, examples, get-started guides, etc.) * [ ] New content is added to the [release announcement](https://drive.google.com/drive/u/0/folders/1DTIeswnEEq-NggJ25rm2BsDjcCQpDape) Co-authored-by: Christopher Zell <zelldon91@googlemail.com>
* feat: add tenant filter to decisions page * style: change option All to All versions for version filter
* 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>
Describe the bug
In one cluster two nodes zeebe-0 and zeebe-1 was caught in a loop
Attempt to join via 2, Failed to join 2, probably leader but currently not able to accept the join request. Retry later.
The leader at this time is zeebe-0. This went for more than an hour. After zeebe-1 was restarted, there was a new election. Then zeebe-1 becomes the leader. The join was completed and both servers started successfully.Environment:
The text was updated successfully, but these errors were encountered: