Copy disabled (too large)
Download .txt
Showing preview only (12,773K chars total). Download the full file to get everything.
Repository: walmartlabs/concord
Branch: master
Commit: 20fc58d4827b
Files: 4414
Total size: 11.0 MB
Directory structure:
gitextract_43zvyq75/
├── .codex
├── .gitattributes
├── .github/
│ ├── settings.xml
│ └── workflows/
│ ├── build.yml
│ └── docker-multiarch.yml
├── .gitignore
├── .insights.yml
├── .looper/
│ ├── render-settings.sh
│ └── settings.xml
├── .looper.yml
├── .mvn/
│ └── wrapper/
│ └── maven-wrapper.properties
├── .sentinelpolicy
├── AGENTS.md
├── CHANGELOG.md
├── LICENSE
├── NOTES.md
├── README.md
├── SECURITY.md
├── agent/
│ ├── pom.xml
│ └── src/
│ ├── assembly/
│ │ ├── default.conf
│ │ ├── dist.xml
│ │ └── start.sh
│ ├── main/
│ │ ├── filtered-resources/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── agent/
│ │ │ ├── cfg/
│ │ │ │ ├── runnerV1.properties
│ │ │ │ └── runnerV2.properties
│ │ │ └── executors/
│ │ │ └── runner/
│ │ │ └── default-dependencies
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── agent/
│ │ │ ├── Agent.java
│ │ │ ├── AgentAuthTokenProvider.java
│ │ │ ├── AgentConstants.java
│ │ │ ├── AgentModule.java
│ │ │ ├── CommandHandler.java
│ │ │ ├── ConfiguredJobRequest.java
│ │ │ ├── DefaultStateFetcher.java
│ │ │ ├── ExecutionException.java
│ │ │ ├── JobInstance.java
│ │ │ ├── JobRequest.java
│ │ │ ├── Main.java
│ │ │ ├── OneShotRunner.java
│ │ │ ├── RepositoryManager.java
│ │ │ ├── StateFetcher.java
│ │ │ ├── Utils.java
│ │ │ ├── Worker.java
│ │ │ ├── WorkerFactory.java
│ │ │ ├── cfg/
│ │ │ │ ├── AgentConfiguration.java
│ │ │ │ ├── DockerConfiguration.java
│ │ │ │ ├── GitConfiguration.java
│ │ │ │ ├── GitHubConfiguration.java
│ │ │ │ ├── ImportConfiguration.java
│ │ │ │ ├── PreForkConfiguration.java
│ │ │ │ ├── RepositoryCacheConfiguration.java
│ │ │ │ ├── RuntimeConfiguration.java
│ │ │ │ ├── ServerConfiguration.java
│ │ │ │ └── Utils.java
│ │ │ ├── docker/
│ │ │ │ └── OrphanSweeper.java
│ │ │ ├── executors/
│ │ │ │ ├── JobExecutor.java
│ │ │ │ ├── JobExecutorFactory.java
│ │ │ │ └── runner/
│ │ │ │ ├── DefaultDependencies.java
│ │ │ │ ├── JobDependencies.java
│ │ │ │ ├── ProcessPool.java
│ │ │ │ ├── RunnerCommandBuilder.java
│ │ │ │ ├── RunnerJob.java
│ │ │ │ ├── RunnerJobExecutor.java
│ │ │ │ └── RunnerLog.java
│ │ │ ├── guice/
│ │ │ │ ├── AgentDependencyManagerConfigurationProvider.java
│ │ │ │ ├── AgentImportManager.java
│ │ │ │ ├── AgentImportManagerProvider.java
│ │ │ │ └── WorkerModule.java
│ │ │ ├── logging/
│ │ │ │ ├── AbstractProcessLog.java
│ │ │ │ ├── CombinedLogAppender.java
│ │ │ │ ├── LocalProcessLog.java
│ │ │ │ ├── LogAppender.java
│ │ │ │ ├── LogSegmentStats.java
│ │ │ │ ├── ProcessLog.java
│ │ │ │ ├── ProcessLogFactory.java
│ │ │ │ ├── RedirectedProcessLog.java
│ │ │ │ ├── RemoteLogAppender.java
│ │ │ │ ├── RemoteProcessLog.java
│ │ │ │ ├── SegmentHeaderParser.java
│ │ │ │ ├── SegmentedLogsConsumer.java
│ │ │ │ └── StdOutLogAppender.java
│ │ │ ├── mmode/
│ │ │ │ ├── MaintenanceModeListener.java
│ │ │ │ └── MaintenanceModeNotifier.java
│ │ │ └── remote/
│ │ │ ├── ApiClientFactory.java
│ │ │ ├── AttachmentsUploader.java
│ │ │ ├── ProcessStatusUpdater.java
│ │ │ └── QueueClientProvider.java
│ │ └── resources/
│ │ ├── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── agent/
│ │ │ └── logback.xml
│ │ ├── concord-agent.conf
│ │ └── logback.xml
│ └── test/
│ ├── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── agent/
│ │ ├── AgentAuthTokenProviderTest.java
│ │ └── executors/
│ │ └── runner/
│ │ ├── JobDependenciesTest.java
│ │ ├── SegmentHeaderParserTest.java
│ │ └── SegmentedLogsConsumerTest.java
│ └── resources/
│ └── com/
│ └── walmartlabs/
│ └── concord/
│ └── agent/
│ └── executors/
│ └── runner/
│ └── versions.properties
├── agent-operator/
│ ├── README.md
│ ├── deploy/
│ │ ├── cluster_role.yml
│ │ ├── cluster_role_binding.yml
│ │ ├── crds/
│ │ │ ├── agentpools.concord.walmartlabs.com-v1.yml
│ │ │ └── example.agentpool.yml
│ │ ├── operator.yml
│ │ └── service_account.yml
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── agentoperator/
│ │ │ ├── HashUtils.java
│ │ │ ├── Operator.java
│ │ │ ├── PodLabels.java
│ │ │ ├── agent/
│ │ │ │ ├── AgentClient.java
│ │ │ │ ├── AgentClientFactory.java
│ │ │ │ ├── DefaultAgentClient.java
│ │ │ │ └── NopAgentClient.java
│ │ │ ├── crd/
│ │ │ │ ├── AgentPool.java
│ │ │ │ ├── AgentPoolConfiguration.java
│ │ │ │ └── AgentPoolList.java
│ │ │ ├── planner/
│ │ │ │ ├── Change.java
│ │ │ │ ├── CreateConfigMapChange.java
│ │ │ │ ├── CreatePodChange.java
│ │ │ │ ├── DeleteConfigMapChange.java
│ │ │ │ ├── Planner.java
│ │ │ │ ├── TagForRemovalChange.java
│ │ │ │ └── TryToDeletePodChange.java
│ │ │ ├── processqueue/
│ │ │ │ ├── ProcessQueueClient.java
│ │ │ │ └── ProcessQueueEntry.java
│ │ │ ├── resources/
│ │ │ │ ├── AgentConfigMap.java
│ │ │ │ ├── AgentPod.java
│ │ │ │ └── Resources.java
│ │ │ └── scheduler/
│ │ │ ├── AgentPoolInstance.java
│ │ │ ├── AutoScaler.java
│ │ │ ├── AutoScalerFactory.java
│ │ │ ├── DefaultAutoScaler.java
│ │ │ ├── Event.java
│ │ │ ├── LinearAutoScaler.java
│ │ │ ├── QueueSelector.java
│ │ │ └── Scheduler.java
│ │ └── resources/
│ │ ├── logback.xml
│ │ └── prestop-hook.sh
│ └── test/
│ └── java/
│ └── com/
│ └── walmartlabs/
│ └── concord/
│ └── agentoperator/
│ ├── processqueue/
│ │ └── ProcessQueueClientTest.java
│ └── scheduler/
│ ├── DefaultAutoScalerTest.java
│ └── LinearAutoScalerTest.java
├── checkstyle.xml
├── cli/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── filtered-resources/
│ │ │ ├── defaultCfg.yml
│ │ │ └── project.properties
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── cli/
│ │ │ ├── AbortException.java
│ │ │ ├── App.java
│ │ │ ├── CliConfig.java
│ │ │ ├── CliExitCodes.java
│ │ │ ├── CliPaths.java
│ │ │ ├── Confirmation.java
│ │ │ ├── GitIgnoreFilter.java
│ │ │ ├── Lint.java
│ │ │ ├── LocalCliRuntime.java
│ │ │ ├── LocalFormInputs.java
│ │ │ ├── LocalFormPrompts.java
│ │ │ ├── LocalFormSession.java
│ │ │ ├── LocalFormState.java
│ │ │ ├── LocalSuspendPersistence.java
│ │ │ ├── LocalSuspendPrinter.java
│ │ │ ├── Main.java
│ │ │ ├── PromptSupport.java
│ │ │ ├── RemoteRun.java
│ │ │ ├── Resume.java
│ │ │ ├── Run.java
│ │ │ ├── SelfUpdate.java
│ │ │ ├── Verbosity.java
│ │ │ ├── Version.java
│ │ │ ├── lint/
│ │ │ │ ├── DummyImportsNormalizer.java
│ │ │ │ ├── ExpressionLinter.java
│ │ │ │ ├── FlowElementLinter.java
│ │ │ │ ├── LintResult.java
│ │ │ │ ├── Linter.java
│ │ │ │ ├── TaskCallLinter.java
│ │ │ │ └── Utils.java
│ │ │ ├── runner/
│ │ │ │ ├── ApiKey.java
│ │ │ │ ├── CliApiClientProvider.java
│ │ │ │ ├── CliCheckpointService.java
│ │ │ │ ├── CliDockerService.java
│ │ │ │ ├── CliImportsListener.java
│ │ │ │ ├── CliImportsNormalizer.java
│ │ │ │ ├── CliLockService.java
│ │ │ │ ├── CliRepositoryExporter.java
│ │ │ │ ├── CliServicesModule.java
│ │ │ │ ├── DependencyResolver.java
│ │ │ │ ├── FlowStepLogger.java
│ │ │ │ ├── TaskParamsLogger.java
│ │ │ │ └── VaultProvider.java
│ │ │ └── secrets/
│ │ │ ├── CliSecretService.java
│ │ │ ├── FileSecretsProvider.java
│ │ │ ├── RemoteSecretsProvider.java
│ │ │ ├── SecretsProvider.java
│ │ │ ├── SecretsProviderRef.java
│ │ │ └── UncheckedIO.java
│ │ └── resources/
│ │ ├── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── cli/
│ │ │ └── defaultCliConfig.yaml
│ │ ├── default-vars.json
│ │ └── logback.xml
│ └── test/
│ ├── filtered-resources/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── cli/
│ │ └── defaultCfg/
│ │ ├── concord.yml
│ │ └── defaults.yml
│ ├── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── cli/
│ │ ├── AbstractTest.java
│ │ ├── CliConfigTest.java
│ │ ├── GitIgnoreFilterTest.java
│ │ ├── LintTest.java
│ │ ├── ResumeTest.java
│ │ └── RunTest.java
│ └── resources/
│ ├── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── cli/
│ │ ├── cliCheckpointService/
│ │ │ └── concord.yml
│ │ ├── configWithDefaults.yaml
│ │ ├── defaultTaskVars/
│ │ │ ├── concord.yml
│ │ │ └── defaultTaskVars.json
│ │ ├── fileForm/
│ │ │ └── concord.yml
│ │ ├── fileRetryForm/
│ │ │ └── concord.yml
│ │ ├── form/
│ │ │ └── concord.yml
│ │ ├── lintV1/
│ │ │ ├── concord/
│ │ │ │ └── extra.concord.yml
│ │ │ └── concord.yml
│ │ ├── lintV2/
│ │ │ ├── concord/
│ │ │ │ └── extra.concord.yml
│ │ │ └── concord.yml
│ │ ├── mixedFormEvent/
│ │ │ └── concord.yml
│ │ ├── multiContextConfig.yaml
│ │ ├── parallelForms/
│ │ │ └── concord.yml
│ │ ├── passwordRetry/
│ │ │ └── concord.yml
│ │ ├── passwordSuspend/
│ │ │ └── concord.yml
│ │ ├── processProjectInfo/
│ │ │ └── concord.yml
│ │ ├── profileDeps/
│ │ │ └── concord.yml
│ │ ├── resourceTask/
│ │ │ └── concord.yml
│ │ ├── secretResume/
│ │ │ └── concord.yml
│ │ ├── simple/
│ │ │ └── concord.yml
│ │ ├── suspend/
│ │ │ └── concord.yml
│ │ ├── testConfig.yaml
│ │ └── validatedForm/
│ │ └── concord.yml
│ └── logback-test.xml
├── client2/
│ ├── README.md
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── client2/
│ │ │ ├── ApiClientConfiguration.java
│ │ │ ├── ApiClientFactory.java
│ │ │ ├── ClientUtils.java
│ │ │ ├── ConcordApiClient.java
│ │ │ ├── CreateSecretRequest.java
│ │ │ ├── DefaultApiClientFactory.java
│ │ │ ├── ProcessDataInclude.java
│ │ │ ├── ProcessListFilter.java
│ │ │ ├── ProcessUtils.java
│ │ │ ├── SecretClient.java
│ │ │ ├── SecretNotFoundException.java
│ │ │ ├── UpdateSecretRequest.java
│ │ │ └── impl/
│ │ │ ├── ByteArrayBuffer.java
│ │ │ ├── ContentType.java
│ │ │ ├── Headers.java
│ │ │ ├── HttpEntity.java
│ │ │ ├── MultipartBuilder.java
│ │ │ ├── MultipartRequestBodyHandler.java
│ │ │ ├── NameValuePair.java
│ │ │ ├── OffsetDateTimeDeserializer.java
│ │ │ ├── OffsetDateTimeSerializer.java
│ │ │ ├── RequestBody.java
│ │ │ ├── RequestBodyHandler.java
│ │ │ ├── ResponseBodyHandler.java
│ │ │ └── auth/
│ │ │ ├── ApiKey.java
│ │ │ ├── Authentication.java
│ │ │ └── SessionToken.java
│ │ └── template/
│ │ ├── README.md
│ │ └── libraries/
│ │ └── native/
│ │ ├── ApiClient.mustache
│ │ ├── api.mustache
│ │ ├── api.mustache.orig
│ │ ├── pojo.mustache
│ │ └── pojo.mustache.orig
│ └── test/
│ └── java/
│ └── com/
│ └── walmartlabs/
│ └── concord/
│ └── client2/
│ ├── ApiClientJsonTest.java
│ ├── ProcessApiTest.java
│ ├── SecretClientTest.java
│ └── impl/
│ └── MultipartRequestBodyHandlerTest.java
├── common/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── common/
│ │ │ ├── AllowNulls.java
│ │ │ ├── AuthTokenProvider.java
│ │ │ ├── ConfigurationUtils.java
│ │ │ ├── CycleChecker.java
│ │ │ ├── DateTimeUtils.java
│ │ │ ├── DockerProcessBuilder.java
│ │ │ ├── DynamicTaskRegistry.java
│ │ │ ├── ExceptionUtils.java
│ │ │ ├── ExternalAuthToken.java
│ │ │ ├── FileVisitor.java
│ │ │ ├── GrepUtils.java
│ │ │ ├── IOUtils.java
│ │ │ ├── LogUtils.java
│ │ │ ├── Matcher.java
│ │ │ ├── MemoSupplier.java
│ │ │ ├── ObjectInputStreamWithClassLoader.java
│ │ │ ├── ObjectMapperProvider.java
│ │ │ ├── PathUtils.java
│ │ │ ├── Posix.java
│ │ │ ├── PrivilegedAction.java
│ │ │ ├── ReflectionUtils.java
│ │ │ ├── StringUtils.java
│ │ │ ├── TemporaryPath.java
│ │ │ ├── ThreadLocalStack.java
│ │ │ ├── ToStringHelper.java
│ │ │ ├── TruncBufferedReader.java
│ │ │ ├── ZipUtils.java
│ │ │ ├── cfg/
│ │ │ │ ├── MappingAuthConfig.java
│ │ │ │ └── OauthTokenConfig.java
│ │ │ ├── form/
│ │ │ │ ├── ConcordFormFields.java
│ │ │ │ ├── ConcordFormValidator.java
│ │ │ │ ├── ConcordFormValidatorLocale.java
│ │ │ │ └── DefaultConcordFormValidatorLocale.java
│ │ │ ├── secret/
│ │ │ │ ├── BinaryDataSecret.java
│ │ │ │ ├── HashAlgorithm.java
│ │ │ │ ├── KeyPair.java
│ │ │ │ ├── SecretEncryptedByType.java
│ │ │ │ ├── SecretUtils.java
│ │ │ │ └── UsernamePassword.java
│ │ │ └── validation/
│ │ │ ├── ConcordId.java
│ │ │ └── ConcordKey.java
│ │ └── resources/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── common/
│ │ └── dockerPasswd
│ └── test/
│ └── java/
│ └── com/
│ └── walmartlabs/
│ └── concord/
│ └── common/
│ ├── AuthTokenProviderTest.java
│ ├── ConfigurationUtilsTest.java
│ ├── CycleCheckerTest.java
│ ├── DateTimeUtilsTest.java
│ ├── ExternalAuthTokenTest.java
│ ├── LogUtilsTest.java
│ ├── MatcherTest.java
│ ├── PathUtilsTest.java
│ ├── StringUtilsTest.java
│ ├── TruncBufferedReaderTest.java
│ └── ZipUtilsTest.java
├── config/
│ ├── README.md
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── walmartlabs/
│ └── concord/
│ └── config/
│ ├── Config.java
│ ├── ConfigExtractor.java
│ ├── ConfigExtractors.java
│ ├── ConfigModule.java
│ ├── ListExtractor.java
│ └── ListExtractors.java
├── console2/
│ ├── .gitignore
│ ├── .npmrc
│ ├── README.md
│ ├── cfg.d.ts
│ ├── index.html
│ ├── npm.sh
│ ├── package/
│ │ └── META-INF/
│ │ └── concord/
│ │ └── webapp.properties
│ ├── package.json
│ ├── pom.xml
│ ├── public/
│ │ ├── cfg.js
│ │ └── manifest.json
│ ├── react-json-view.d.ts
│ ├── src/
│ │ ├── App.tsx
│ │ ├── api/
│ │ │ ├── __tests__/
│ │ │ │ ├── common.deepMerge.test.ts
│ │ │ │ ├── common.parseNestedQueryParams.test.ts
│ │ │ │ ├── common.parseQueryParams.test.ts
│ │ │ │ └── common.queryParams.test.ts
│ │ │ ├── audit/
│ │ │ │ └── index.ts
│ │ │ ├── common.ts
│ │ │ ├── noderoster/
│ │ │ │ └── index.ts
│ │ │ ├── org/
│ │ │ │ ├── index.ts
│ │ │ │ ├── jsonstore/
│ │ │ │ │ └── index.ts
│ │ │ │ ├── project/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── repository/
│ │ │ │ │ └── index.ts
│ │ │ │ ├── secret/
│ │ │ │ │ └── index.ts
│ │ │ │ └── team/
│ │ │ │ └── index.ts
│ │ │ ├── process/
│ │ │ │ ├── ansible/
│ │ │ │ │ └── index.ts
│ │ │ │ ├── attachment/
│ │ │ │ │ └── index.ts
│ │ │ │ ├── checkpoint/
│ │ │ │ │ └── index.ts
│ │ │ │ ├── event/
│ │ │ │ │ └── index.ts
│ │ │ │ ├── form/
│ │ │ │ │ └── index.ts
│ │ │ │ ├── history/
│ │ │ │ │ └── index.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── log/
│ │ │ │ │ ├── fetchLogAsBlobURL.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ └── wait/
│ │ │ │ └── index.ts
│ │ │ ├── profile/
│ │ │ │ ├── api_token/
│ │ │ │ │ └── index.tsx
│ │ │ │ └── user/
│ │ │ │ └── index.tsx
│ │ │ ├── secret/
│ │ │ │ └── store/
│ │ │ │ └── index.ts
│ │ │ ├── server/
│ │ │ │ └── index.ts
│ │ │ ├── service/
│ │ │ │ ├── console/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── user/
│ │ │ │ │ └── index.ts
│ │ │ │ └── custom_form/
│ │ │ │ └── index.ts
│ │ │ ├── usePolling.ts
│ │ │ └── user/
│ │ │ └── index.ts
│ │ ├── components/
│ │ │ ├── atoms/
│ │ │ │ ├── ClassIcon.tsx
│ │ │ │ ├── ColumnSort/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── FormikCheckbox/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── FormikDropdown/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── FormikFileInput/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── FormikInput/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── LogFileFromBlob/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ReactJson/
│ │ │ │ │ └── index.ts
│ │ │ │ ├── RefreshButton/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Scrollable.tsx
│ │ │ │ ├── TableSearchFilter/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── Truncate.tsx
│ │ │ │ └── index.ts
│ │ │ ├── molecules/
│ │ │ │ ├── BreadcrumbSegment/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── BulkProcessActionDropdown/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ButtonWithConfirmation/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── CreateNewEntityButton/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── DropdownWithAddition/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── EditProjectForm/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── EntityId/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── EntityOwnerChangeForm/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── EntityOwnerPopup/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── EntityRenameForm/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── FormWizardAction/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── GitHubLink/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── GlobalNavMenu/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Highlighter/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── HumanizedDuration/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── LoadingEditor/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── LocalTimestamp/
│ │ │ │ │ ├── __test__/
│ │ │ │ │ │ └── LocalTimestamp.test.tsx
│ │ │ │ │ ├── __tests__/
│ │ │ │ │ │ └── LocalTimestamp.test.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── LogSegment/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── MainToolbar/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── NewAPITokenForm/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NewProjectForm/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NewSecretForm/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NewStorageForm/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NewTeamForm/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── PaginationToolBar/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── usePagination.tsx
│ │ │ │ ├── ProcessActionDropdown/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessActionList/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessAttachmentsList/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessElementList/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessForm/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessHistoryList/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessLastErrorModal/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessList/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProcessListWithSearch/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessLogContainer/
│ │ │ │ │ ├── LogContainer.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessLogViewer/
│ │ │ │ │ ├── datetime.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProcessStatusIcon/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessStatusTable/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessToolbar/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProcessWaitList/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectConfiguration/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProjectRenameForm/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── RepositoryForm/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── RepositoryList/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── RequestErrorMessage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SingleOperationPopup/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TeamAccessDropdown/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TeamAccessList/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TeamRoleDropdown/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── WithCopyToClipboard/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ansible/
│ │ │ │ │ ├── AnsibleHostList/
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── AnsibleTaskList/
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── organisms/
│ │ │ │ ├── APITokenDeleteActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── APITokenList/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── AuditLogActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── BreadcrumbsToolbar/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── BulkCancelProcessPopup/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── CancelProcessPopup/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── CheckpointView/
│ │ │ │ │ ├── ActionBar/
│ │ │ │ │ │ ├── ActiveFilters.tsx
│ │ │ │ │ │ ├── CancelButton.tsx
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── styles.tsx
│ │ │ │ │ ├── CheckpointErrorBoundry/
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── CheckpointGroup/
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── styles.tsx
│ │ │ │ │ ├── CheckpointPopup/
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── Container/
│ │ │ │ │ │ ├── __mocks__/
│ │ │ │ │ │ │ └── checkpointUtils.mocks.ts
│ │ │ │ │ │ ├── __tests__/
│ │ │ │ │ │ │ ├── __snapshots__/
│ │ │ │ │ │ │ │ └── checkpointUtils.test.ts.snap
│ │ │ │ │ │ │ ├── checkpointUtils.test.ts
│ │ │ │ │ │ │ └── useQueryParams.test.tsx
│ │ │ │ │ │ ├── checkpointUtils.ts
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── useForm.ts
│ │ │ │ │ │ ├── usePopup.ts
│ │ │ │ │ │ └── useQueryParams.ts
│ │ │ │ │ ├── MetaFilterForm/
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── NoCheckpointsMessage/
│ │ │ │ │ │ ├── NoCheckpointsMessge.test.tsx
│ │ │ │ │ │ ├── __tests__/
│ │ │ │ │ │ │ └── NoCheckpointsMessge.test.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── ProcessCheckpoint/
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── ProcessCheckpointView.tsx
│ │ │ │ │ ├── ProcessList/
│ │ │ │ │ │ ├── LeftContent.tsx
│ │ │ │ │ │ ├── RightContent.tsx
│ │ │ │ │ │ └── styles.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── shared/
│ │ │ │ │ ├── Labels.tsx
│ │ │ │ │ ├── Layout.tsx
│ │ │ │ │ ├── types.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── DeleteRepositoryPopup/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── DisableProcessPopup/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── EditProjectActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── EditRepositoryActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── EncryptValueActivity/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── FindLdapGroupField/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── FindOrganizationsField/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── FindTeamDropdown/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── FindUserField2/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Login2/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── NewAPITokenActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NewProjectActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NewSecretActivity/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── NewStorageActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NewTeamActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── OrganizationActivity/
│ │ │ │ │ ├── OrganizationProcesses.tsx
│ │ │ │ │ ├── OrganizationSettings.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── OrganizationList/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── OrganizationOwnerChangeActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessActivity/
│ │ │ │ │ ├── Toolbar.tsx
│ │ │ │ │ ├── favicon.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProcessAttachmentsActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessCheckpointActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessChildrenActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessEventsActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessFormActivity/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── processFormNavigation.ts
│ │ │ │ ├── ProcessHistoryActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessListActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessLogActivity/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProcessLogActivityV2/
│ │ │ │ │ ├── LogSegmentActivity.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProcessRestoreActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessStatusActivity/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProcessWaitActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessWizard/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── useProcessWizard.ts
│ │ │ │ ├── ProjectActivity/
│ │ │ │ │ ├── ProjectCheckpoints.tsx
│ │ │ │ │ ├── ProjectProcesses.tsx
│ │ │ │ │ ├── ProjectRepositories.tsx
│ │ │ │ │ ├── ProjectSettings.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectConfigurationActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectDeleteActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectListActivity/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProjectOrganizationChangeActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectOutVariablesModeActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectOwnerChangeActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectProcessExecModeActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectRawPayloadModeActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectRenameActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectSearch/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectSearchFormField/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectTeamAccessActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProtectedRoute/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── PublicKeyPopup/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── RedirectButton/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── RefreshRepositoryPopup/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── RepositoryActionDropdown/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── RequestErrorActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── RestartProcessPopup/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecretActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecretDeleteActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecretListActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecretOrganizationChangeActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecretOwnerChangeActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecretProjectActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecretRenameActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecretSearch/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecretStoreDropdown/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecretTeamAccessActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecretVisibilityActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ServerVersion/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── StartRepositoryPopup/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── TaskCallDetails/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TeamActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TeamDeleteActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TeamLdapGroupList2/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TeamList/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TeamListActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TeamMemberList2/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TeamRenameActivity/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TopBar/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TriggeredByPopup/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── UserInfo/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── UserProcessActivity/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ValidateRepositoryPopup/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ansible/
│ │ │ │ │ ├── AnsibleTaskActivity/
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── ProcessAnsibleActivity/
│ │ │ │ │ ├── PlayInfoList.tsx
│ │ │ │ │ ├── PlaybookChooser.tsx
│ │ │ │ │ ├── PlaybookStats.tsx
│ │ │ │ │ ├── TaskProgress.tsx
│ │ │ │ │ ├── TaskProgressLegend.tsx
│ │ │ │ │ ├── TaskStats.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── types.tsx
│ │ │ │ └── index.ts
│ │ │ ├── pages/
│ │ │ │ ├── APITokensListPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── AboutPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── AddRepositoryPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── CustomResourcePage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── JsonStorePage/
│ │ │ │ │ ├── EditStoreQueryActivity.tsx
│ │ │ │ │ ├── EditStoreQueryForm.tsx
│ │ │ │ │ ├── EditStoreQueryPage.tsx
│ │ │ │ │ ├── ExecuteQueryResult.tsx
│ │ │ │ │ ├── NewStorageQueryActivity.tsx
│ │ │ │ │ ├── NewStorageQueryForm.tsx
│ │ │ │ │ ├── NewStorageQueryPage.tsx
│ │ │ │ │ ├── NewStorePage.tsx
│ │ │ │ │ ├── StoreDataDeleteActivity.tsx
│ │ │ │ │ ├── StoreDataList.tsx
│ │ │ │ │ ├── StoreDeleteActivity.tsx
│ │ │ │ │ ├── StoreListActivity.tsx
│ │ │ │ │ ├── StoreOrganizationChangeActivity.tsx
│ │ │ │ │ ├── StoreOwnerChangeActivity.tsx
│ │ │ │ │ ├── StoreQueryDeleteActivity.tsx
│ │ │ │ │ ├── StoreQueryList.tsx
│ │ │ │ │ ├── StoreSettings.tsx
│ │ │ │ │ ├── StoreTeamAccessActivity.tsx
│ │ │ │ │ ├── StoreVisibilityActivity.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── LoginPage/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── LogoutPage/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── NewAPITokenPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NewProjectPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NewSecretPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NewTeamPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NodeRoster/
│ │ │ │ │ ├── HostArtifacts.tsx
│ │ │ │ │ ├── HostFacts.tsx
│ │ │ │ │ ├── HostPage.tsx
│ │ │ │ │ ├── HostProcesses.tsx
│ │ │ │ │ ├── NodeRosterArtifactsList.tsx
│ │ │ │ │ ├── NodeRosterHostsList.tsx
│ │ │ │ │ └── NodeRosterPage.tsx
│ │ │ │ ├── NotFoundPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── OrganizationListPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── OrganizationPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessCardFormPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessFormPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessListPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProcessWizardPage/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProfilePage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProjectPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── RepositoryPage/
│ │ │ │ │ ├── RepositoryEventsActivity.tsx
│ │ │ │ │ ├── RepositoryTriggersActivity.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecretPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TeamPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── UnauthorizedPage/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ ├── UserActivityPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── UserInfoPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.ts
│ │ │ └── templates/
│ │ │ ├── Layout/
│ │ │ │ ├── index.tsx
│ │ │ │ └── styles.css
│ │ │ ├── OrgActivityPage/
│ │ │ │ └── index.tsx
│ │ │ └── index.ts
│ │ ├── hooks/
│ │ │ ├── useApi.tsx
│ │ │ └── useThrottle.tsx
│ │ ├── index.css
│ │ ├── index.tsx
│ │ ├── react-app-env.d.ts
│ │ ├── reducers/
│ │ │ └── loading.ts
│ │ ├── router.tsx
│ │ ├── session.ts
│ │ ├── state/
│ │ │ └── data/
│ │ │ ├── orgs/
│ │ │ │ └── types.ts
│ │ │ └── processes/
│ │ │ └── logs/
│ │ │ ├── processors.ts
│ │ │ └── types.ts
│ │ ├── utils.ts
│ │ ├── validation.ts
│ │ └── vite-env.d.ts
│ ├── tsconfig.json
│ ├── tsconfig.node.json
│ ├── types.d.ts
│ ├── vite.config.ts
│ └── wallaby.js
├── dependency-manager/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── filtered-resources/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── dependencymanager/
│ │ │ └── version.properties
│ │ └── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── dependencymanager/
│ │ ├── DependencyEntity.java
│ │ ├── DependencyManager.java
│ │ ├── DependencyManagerConfiguration.java
│ │ ├── DependencyManagerException.java
│ │ ├── DependencyManagerRepositories.java
│ │ ├── MavenProxy.java
│ │ ├── MavenRepository.java
│ │ ├── MavenRepositoryConfiguration.java
│ │ ├── MavenRepositoryPolicy.java
│ │ ├── ProgressListener.java
│ │ ├── RepositorySystemFactory.java
│ │ ├── ResolveExceptionConverter.java
│ │ ├── RetryUtils.java
│ │ └── Version.java
│ └── test/
│ ├── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── dependencymanager/
│ │ └── DependencyManagerTest.java
│ └── resources/
│ ├── __files/
│ │ └── repository/
│ │ └── concord-cli-1.82.0.pom
│ └── logback.xml
├── docker-images/
│ ├── agent/
│ │ ├── oss/
│ │ │ └── debian/
│ │ │ └── Dockerfile
│ │ └── pom.xml
│ ├── agent-operator/
│ │ ├── oss/
│ │ │ └── Dockerfile
│ │ └── pom.xml
│ ├── ansible/
│ │ ├── galaxy_requirements.yml
│ │ ├── oss/
│ │ │ └── debian/
│ │ │ └── Dockerfile
│ │ └── pom.xml
│ ├── base/
│ │ ├── get_arch.sh
│ │ ├── get_jdk_url.sh
│ │ ├── oss/
│ │ │ └── debian/
│ │ │ └── Dockerfile
│ │ └── pom.xml
│ ├── compose/
│ │ ├── README.md
│ │ ├── concord.conf
│ │ └── docker-compose.yml
│ ├── docker-bake.hcl
│ ├── mvn.json
│ ├── pom.xml
│ ├── push.sh
│ ├── run_dev.sh
│ ├── server/
│ │ ├── oss/
│ │ │ └── Dockerfile
│ │ └── pom.xml
│ ├── server.conf
│ └── stop.sh
├── examples/
│ ├── README.md
│ ├── ansible/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_docker/
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_dynamic_inventory/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── my_inventory.sh
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_form/
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_form_as_inventory/
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_kerberos/
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_limit/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ ├── hello.limit
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_out_vars/
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_project/
│ │ ├── README.md
│ │ ├── inventory.ini
│ │ ├── inventory.py
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── request.json
│ ├── ansible_remote/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_retry/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_roles/
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_stats/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_template/
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ ├── request.json
│ │ └── run.sh
│ ├── ansible_vault/
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ ├── group_vars/
│ │ │ │ └── local.yml
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── ansible_windows/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── inventory.ini
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── approval/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── context_injection/
│ │ ├── concord.yml
│ │ ├── run.sh
│ │ └── tasks/
│ │ └── test.groovy
│ ├── custom_form/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── forms/
│ │ │ └── myForm/
│ │ │ ├── data.js
│ │ │ └── index.html
│ │ └── run.sh
│ ├── custom_form_basic/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── forms/
│ │ │ └── myForm/
│ │ │ ├── data.js
│ │ │ └── index.html
│ │ └── run.sh
│ ├── custom_task/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── pom.xml
│ │ ├── src/
│ │ │ ├── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── examples/
│ │ │ │ └── customtask/
│ │ │ │ ├── CustomTask.java
│ │ │ │ └── CustomTaskV2.java
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── examples/
│ │ │ └── customtask/
│ │ │ └── CustomTaskTest.java
│ │ ├── test-v2.yml
│ │ ├── test.sh
│ │ └── test.yml
│ ├── datetime/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── docker/
│ │ ├── README.md
│ │ ├── ansible.cfg
│ │ ├── concord.yml
│ │ ├── inventory.ini
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── docker_simple/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── dynamic_form_fields/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── dynamic_form_values/
│ │ ├── concord.yml
│ │ ├── forms/
│ │ │ └── myForm/
│ │ │ ├── data.js
│ │ │ └── index.html
│ │ └── run.sh
│ ├── dynamic_forms/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── dynamic_tasks/
│ │ ├── concord.yml
│ │ ├── run.sh
│ │ ├── runtime-v2/
│ │ │ ├── concord.yml
│ │ │ ├── run.sh
│ │ │ └── tasks/
│ │ │ └── test.groovy
│ │ └── tasks/
│ │ └── test.groovy
│ ├── error_handling/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── external_script/
│ │ ├── concord.yml
│ │ ├── example.js
│ │ └── run.sh
│ ├── fork/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── fork_join/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── form_and_long_process/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── form_l10n/
│ │ ├── concord.yml
│ │ ├── forms/
│ │ │ └── myOtherForm/
│ │ │ ├── index.html
│ │ │ └── locale.properties
│ │ ├── locale.properties
│ │ └── run.sh
│ ├── forms/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── forms_multi_group/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── forms_override/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── forms_wizard/
│ │ ├── concord.yml
│ │ ├── forms/
│ │ │ ├── shared/
│ │ │ │ └── common.js
│ │ │ ├── userData/
│ │ │ │ └── index.html
│ │ │ └── userWarning/
│ │ │ └── index.html
│ │ └── run.sh
│ ├── generic_triggers/
│ │ ├── README.md
│ │ └── concord.yml
│ ├── git/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── groovy/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── groovy_grape/
│ │ ├── concord.yml
│ │ ├── run.sh
│ │ └── test.groovy
│ ├── groovy_rest/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── hello_initiator/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── hello_world/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── hello_world2/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── http/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── imports/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── in_variables/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── inventory/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── create_inventory.sh
│ │ ├── isp.s01160.ca_ansiblefacts.json
│ │ ├── isp.s05505.us_ansiblefacts.json
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ ├── query.sql
│ │ ├── run.sh
│ │ └── rxp.s00524.us_ansiblefacts.json
│ ├── inventory_lookup/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── create_inventory.sh
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ ├── query.sql
│ │ └── run.sh
│ ├── jira/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── juel_java_streams/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── ldap/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── logback_config/
│ │ ├── _agent.json
│ │ ├── concord.yml
│ │ ├── my_logback.xml
│ │ └── run.sh
│ ├── loglevel/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── long_running/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── loops/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── mocking/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── mocks/
│ │ │ └── github.groovy
│ │ └── run.sh
│ ├── multiple_flows/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── noderoster/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── out/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── out_groovy/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── parsing_yaml_json/
│ │ ├── concord.yml
│ │ ├── my.json
│ │ ├── my.yml
│ │ └── run.sh
│ ├── process_card_htmx/
│ │ ├── README.md
│ │ ├── data.js
│ │ └── index.html
│ ├── process_card_jquery/
│ │ ├── README.md
│ │ ├── data.js
│ │ └── index.html
│ ├── process_from_a_process/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── process_from_a_process2/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── process_from_a_process3/
│ │ ├── concord.yml
│ │ ├── example/
│ │ │ ├── concord.yml
│ │ │ └── file.txt
│ │ └── run.sh
│ ├── process_meta/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── profiles/
│ │ ├── concord/
│ │ │ └── concord.yml
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── project_file/
│ │ ├── _main.json
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── python_script/
│ │ ├── concord.yml
│ │ ├── example.py
│ │ ├── my_module.py
│ │ └── run.sh
│ ├── ruby/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── runtime-v2/
│ │ ├── a_basic_example/
│ │ │ ├── README.md
│ │ │ ├── concord/
│ │ │ │ └── example.concord.yml
│ │ │ ├── concord.yml
│ │ │ └── run.sh
│ │ ├── ansible_out_vars/
│ │ │ ├── concord.yml
│ │ │ ├── playbook/
│ │ │ │ └── hello.yml
│ │ │ └── run.sh
│ │ ├── demo-flow/
│ │ │ ├── README.md
│ │ │ ├── concord/
│ │ │ │ ├── forms.concord.yml
│ │ │ │ └── test.concord.yml
│ │ │ ├── concord.yml
│ │ │ ├── run.sh
│ │ │ └── scripts/
│ │ │ └── test-script.groovy
│ │ ├── mocks/
│ │ │ ├── main.concord.yaml
│ │ │ ├── run-tests.sh
│ │ │ ├── tests/
│ │ │ │ └── main.tests.concord.yaml
│ │ │ └── tests-runner.concord.yaml
│ │ ├── out_groovy/
│ │ │ ├── concord.yml
│ │ │ └── run.sh
│ │ ├── out_js/
│ │ │ ├── concord.yml
│ │ │ └── run.sh
│ │ ├── out_python/
│ │ │ ├── concord.yml
│ │ │ └── run.sh
│ │ ├── out_ruby/
│ │ │ ├── concord.yml
│ │ │ └── run.sh
│ │ ├── parallel_execution/
│ │ │ ├── concord.yml
│ │ │ └── run.sh
│ │ └── python_script/
│ │ ├── concord.yml
│ │ ├── example.py
│ │ ├── my_module.py
│ │ └── run.sh
│ ├── script_url/
│ │ ├── concord.yml
│ │ ├── example.groovy
│ │ └── run.sh
│ ├── secret_files/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── myFileA.txt
│ │ ├── myFileB.txt
│ │ └── run.sh
│ ├── secret_lookup/
│ │ ├── concord.yml
│ │ ├── playbook/
│ │ │ └── hello.yml
│ │ └── run.sh
│ ├── secrets/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── slack/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── slackChannel/
│ │ ├── concord.yml
│ │ └── run.sh
│ ├── smtp/
│ │ ├── README.md
│ │ ├── concord.yml
│ │ ├── first.txt
│ │ ├── mail.mustache
│ │ ├── run.sh
│ │ └── second.txt
│ └── smtp_html/
│ ├── README.md
│ ├── concord.yml
│ ├── mail.mustache.html
│ └── run.sh
├── forms/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── walmartlabs/
│ └── concord/
│ └── forms/
│ ├── Constants.java
│ ├── DefaultFormValidator.java
│ ├── DefaultFormValidatorLocale.java
│ ├── Form.java
│ ├── FormField.java
│ ├── FormFields.java
│ ├── FormOptions.java
│ ├── FormUtils.java
│ ├── FormValidator.java
│ ├── FormValidatorLocale.java
│ └── ValidationError.java
├── github-app-installation/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── github/
│ │ └── appinstallation/
│ │ ├── AccessTokenProvider.java
│ │ ├── GitHubAppAuthCacheKey.java
│ │ ├── GitHubAppAuthConfig.java
│ │ ├── GitHubAppInstallation.java
│ │ ├── GitHubInstallationToken.java
│ │ ├── Utils.java
│ │ ├── cfg/
│ │ │ └── GitHubAppInstallationConfig.java
│ │ └── exception/
│ │ ├── GitHubAppException.java
│ │ └── RepoExtractionException.java
│ └── test/
│ ├── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── github/
│ │ └── appinstallation/
│ │ ├── AccessTokenProviderTest.java
│ │ ├── GitHubAppAuthConfigTest.java
│ │ ├── GitHubAppInstallationTest.java
│ │ ├── RepoExtractionTest.java
│ │ ├── TestConstants.java
│ │ ├── UtilsTest.java
│ │ └── cfg/
│ │ └── ConfigTest.java
│ └── resources/
│ └── logback-test.xml
├── idea-code-style.xml
├── imports/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── walmartlabs/
│ └── concord/
│ └── imports/
│ ├── DefaultImportManager.java
│ ├── DirectoryProcessor.java
│ ├── Import.java
│ ├── ImportManager.java
│ ├── ImportManagerFactory.java
│ ├── ImportProcessingException.java
│ ├── ImportProcessor.java
│ ├── Imports.java
│ ├── ImportsListener.java
│ ├── MvnProcessor.java
│ ├── NoopImportManager.java
│ ├── RepositoryExporter.java
│ ├── RepositoryProcessor.java
│ └── package-info.java
├── it/
│ ├── README.md
│ ├── common/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── filtered-resources/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── common/
│ │ │ └── version.properties
│ │ └── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── it/
│ │ └── common/
│ │ ├── ForbiddenException.java
│ │ ├── GitHubUtils.java
│ │ ├── GitUtils.java
│ │ ├── ITUtils.java
│ │ ├── JGitUtils.java
│ │ ├── MockGitSshServer.java
│ │ ├── OffsetDateTimeDeserializer.java
│ │ ├── ServerClient.java
│ │ ├── ServerCompatModule.java
│ │ └── Version.java
│ ├── compat/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── test/
│ │ ├── filtered-resources/
│ │ │ └── testcontainers.properties
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── compat/
│ │ │ ├── ITConstants.java
│ │ │ ├── LocalModeIT.java
│ │ │ └── OldAgentIT.java
│ │ └── resources/
│ │ └── logback.xml
│ ├── console/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── test/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── console/
│ │ │ ├── Base.java
│ │ │ ├── Concord.java
│ │ │ ├── ConcordConsoleRule.java
│ │ │ ├── ConcordServerRule.java
│ │ │ ├── CustomFormsIT.java
│ │ │ ├── FormsIT.java
│ │ │ ├── LoginIT.java
│ │ │ ├── ProcessAnsibleIT.java
│ │ │ ├── ProfileNavigationIT.java
│ │ │ ├── ProjectTeamAccessIT.java
│ │ │ ├── RepositoryRunIT.java
│ │ │ ├── SecretIT.java
│ │ │ ├── TeamIT.java
│ │ │ ├── TryingIT.java
│ │ │ ├── Utils.java
│ │ │ └── WebDriverRule.java
│ │ └── resources/
│ │ ├── agent.conf
│ │ ├── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── console/
│ │ │ ├── customForm/
│ │ │ │ ├── concord.yml
│ │ │ │ └── forms/
│ │ │ │ └── testForm/
│ │ │ │ └── index.html
│ │ │ ├── dateTimeField/
│ │ │ │ └── concord.yml
│ │ │ ├── processAnsible/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook.yml
│ │ │ ├── repositoryRun/
│ │ │ │ └── concord.yml
│ │ │ └── stringValues/
│ │ │ └── concord.yml
│ │ ├── console.conf
│ │ ├── logback.xml
│ │ ├── mvn.json
│ │ └── server.conf
│ ├── pom.xml
│ ├── runtime-v1/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── test/
│ │ ├── filtered-resources/
│ │ │ ├── testcontainers.properties
│ │ │ └── version.properties
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── runtime/
│ │ │ └── v1/
│ │ │ ├── ConcordConfiguration.java
│ │ │ ├── ITConstants.java
│ │ │ └── ProcessIT.java
│ │ └── resources/
│ │ ├── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── runtime/
│ │ │ └── v1/
│ │ │ ├── activeProfiles/
│ │ │ │ └── concord.yml
│ │ │ ├── customJvmArgs/
│ │ │ │ └── concord.yml
│ │ │ ├── defaultEntryPoint/
│ │ │ │ └── concord.yml
│ │ │ ├── disableProcess/
│ │ │ │ └── concord.yml
│ │ │ ├── emptyExclusiveGroup/
│ │ │ │ └── concord.yml
│ │ │ ├── errorHandling/
│ │ │ │ ├── _main.json
│ │ │ │ └── processes/
│ │ │ │ └── test.yml
│ │ │ ├── eventBatchingTimer/
│ │ │ │ └── concord.yml
│ │ │ ├── example/
│ │ │ │ ├── _main.json
│ │ │ │ ├── processes/
│ │ │ │ │ └── test.yml
│ │ │ │ └── something.txt
│ │ │ ├── fileupload/
│ │ │ │ └── concord.yml
│ │ │ ├── interpolateWithVars/
│ │ │ │ └── concord.yml
│ │ │ ├── interpolation/
│ │ │ │ ├── _main.json
│ │ │ │ └── processes/
│ │ │ │ └── test.yml
│ │ │ ├── killCascade/
│ │ │ │ └── concord.yml
│ │ │ ├── multipart/
│ │ │ │ ├── .concord.yml
│ │ │ │ └── _main.json
│ │ │ ├── onFailureVars/
│ │ │ │ └── concord.yml
│ │ │ ├── onFailureVars2/
│ │ │ │ └── concord.yml
│ │ │ ├── processMetadataAfterExecution/
│ │ │ │ └── concord.yml
│ │ │ ├── processMetadataWithItems/
│ │ │ │ └── concord.yml
│ │ │ ├── processWithChildSuspend/
│ │ │ │ ├── concord.yml
│ │ │ │ └── myPayload/
│ │ │ │ └── concord.yml
│ │ │ ├── processWithChildSuspendWithoutOut/
│ │ │ │ ├── concord.yml
│ │ │ │ └── myPayload/
│ │ │ │ └── concord.yml
│ │ │ ├── processWithChildren/
│ │ │ │ └── concord.yml
│ │ │ ├── processWithChildrenSuspend/
│ │ │ │ └── concord.yml
│ │ │ ├── runnerLogLevel/
│ │ │ │ └── concord.yml
│ │ │ ├── startupProblem/
│ │ │ │ ├── _main.json
│ │ │ │ └── processes/
│ │ │ │ └── test.yml
│ │ │ ├── switchCase/
│ │ │ │ └── concord.yml
│ │ │ ├── tags/
│ │ │ │ └── concord.yml
│ │ │ ├── throwBpmnError/
│ │ │ │ └── concord.yml
│ │ │ ├── throwRuntime/
│ │ │ │ └── concord.yml
│ │ │ ├── timeout/
│ │ │ │ ├── _main.json
│ │ │ │ └── processes/
│ │ │ │ └── test.yml
│ │ │ ├── workDir/
│ │ │ │ ├── .concord.yml
│ │ │ │ ├── test1.txt
│ │ │ │ └── test2.txt
│ │ │ └── yamlRootFile/
│ │ │ ├── concord/
│ │ │ │ └── extra.yaml
│ │ │ └── concord.yaml
│ │ └── logback.xml
│ ├── runtime-v2/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── test/
│ │ ├── filtered-resources/
│ │ │ └── testcontainers.properties
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── runtime/
│ │ │ └── v2/
│ │ │ ├── AbstractTest.java
│ │ │ ├── ConcordConfiguration.java
│ │ │ ├── ConcordTaskIT.java
│ │ │ ├── CryptoIT.java
│ │ │ ├── FlowEventsIT.java
│ │ │ ├── FormIT.java
│ │ │ ├── GitHubTriggersV2IT.java
│ │ │ ├── ITConstants.java
│ │ │ ├── ImportsIT.java
│ │ │ ├── JsonStoreIT.java
│ │ │ ├── KvTaskIT.java
│ │ │ ├── NodeRosterIT.java
│ │ │ ├── ProcessIT.java
│ │ │ ├── ProfilesIT.java
│ │ │ ├── ResourceTaskIT.java
│ │ │ ├── RestartIT.java
│ │ │ ├── SessionStateFilesIT.java
│ │ │ ├── SmtpIT.java
│ │ │ ├── TaskSchemaValidationIT.java
│ │ │ ├── TemplateIT.java
│ │ │ └── Utils.java
│ │ └── resources/
│ │ ├── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── runtime/
│ │ │ └── v2/
│ │ │ ├── args/
│ │ │ │ └── concord.yml
│ │ │ ├── checkpointClasses/
│ │ │ │ └── concord.yml
│ │ │ ├── checkpointState/
│ │ │ │ └── concord.yml
│ │ │ ├── checkpoints/
│ │ │ │ └── concord.yml
│ │ │ ├── checkpointsParallel/
│ │ │ │ └── concord.yml
│ │ │ ├── concord/
│ │ │ │ ├── concordOutVars/
│ │ │ │ │ ├── concord.yml
│ │ │ │ │ └── myPayload/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── concordSubDryRun/
│ │ │ │ │ ├── concord.yml
│ │ │ │ │ └── myPayload/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── concordSubIgnoreFail/
│ │ │ │ │ ├── concord.yml
│ │ │ │ │ └── myPayload/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── concordTaskApiKey/
│ │ │ │ │ ├── concord.yml
│ │ │ │ │ └── payload/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── concordTaskForkSuspend/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── concordTaskForkWithArguments/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── concordTaskSuspendParentProcess/
│ │ │ │ │ ├── concord.yml
│ │ │ │ │ └── payload/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── createApiKey/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── createOrUpdateApiKey/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── projectTask/
│ │ │ │ │ └── concord.yml
│ │ │ │ └── repositoryRefreshTask/
│ │ │ │ └── concord.yml
│ │ │ ├── crypto/
│ │ │ │ └── concord.yml
│ │ │ ├── crypto-masked/
│ │ │ │ └── concord.yml
│ │ │ ├── cryptoCreate/
│ │ │ │ └── concord.yml
│ │ │ ├── customFormValues/
│ │ │ │ ├── concord.yml
│ │ │ │ └── forms/
│ │ │ │ └── myForm/
│ │ │ │ └── index.html
│ │ │ ├── dirImport/
│ │ │ │ └── other.concord.yml
│ │ │ ├── dryRun/
│ │ │ │ └── concord.yaml
│ │ │ ├── emptyExclusiveGroup/
│ │ │ │ └── concord.yml
│ │ │ ├── eventBatchingParallel/
│ │ │ │ └── concord.yml
│ │ │ ├── eventBatchingTimer/
│ │ │ │ └── concord.yml
│ │ │ ├── exitWithMeta/
│ │ │ │ └── concord.yml
│ │ │ ├── failProcess/
│ │ │ │ └── concord.yml
│ │ │ ├── flowEvents/
│ │ │ │ └── concord.yml
│ │ │ ├── forkAfterForm/
│ │ │ │ └── concord.yml
│ │ │ ├── forkCheckpoints/
│ │ │ │ └── concord.yml
│ │ │ ├── form/
│ │ │ │ └── concord.yml
│ │ │ ├── formOnCancel/
│ │ │ │ └── concord.yml
│ │ │ ├── formWithTimeout/
│ │ │ │ └── concord.yml
│ │ │ ├── jsonStore/
│ │ │ │ └── concord.yml
│ │ │ ├── kv/
│ │ │ │ └── concord.yml
│ │ │ ├── logExpression/
│ │ │ │ └── concord.yml
│ │ │ ├── meta/
│ │ │ │ └── concord.yml
│ │ │ ├── metaAfterSuspend/
│ │ │ │ ├── concord.yml
│ │ │ │ └── payload/
│ │ │ │ └── concord.yml
│ │ │ ├── noderoster/
│ │ │ │ ├── ansible.yml
│ │ │ │ ├── noderoster.yml
│ │ │ │ └── playbook.yml
│ │ │ ├── nullCallInputParam/
│ │ │ │ └── concord.yml
│ │ │ ├── out/
│ │ │ │ └── concord.yml
│ │ │ ├── outForFailed/
│ │ │ │ └── concord.yml
│ │ │ ├── parallelExceptionPayload/
│ │ │ │ └── concord.yml
│ │ │ ├── processMetadataSend/
│ │ │ │ ├── concord.yml
│ │ │ │ └── debug_logback.xml
│ │ │ ├── processMetadataWithItems/
│ │ │ │ └── concord.yml
│ │ │ ├── profileFlow/
│ │ │ │ └── concord.yml
│ │ │ ├── profileForm/
│ │ │ │ └── concord.yml
│ │ │ ├── projectInfo/
│ │ │ │ └── concord.yml
│ │ │ ├── resourcePrintJson/
│ │ │ │ └── concord.yml
│ │ │ ├── resourceReadAsJson/
│ │ │ │ ├── concord.yml
│ │ │ │ └── sample.json
│ │ │ ├── resourceReadAsString/
│ │ │ │ ├── concord.yml
│ │ │ │ └── sample.txt
│ │ │ ├── resourceReadFromJsonString/
│ │ │ │ └── concord.yml
│ │ │ ├── resourceWriteAsJson/
│ │ │ │ └── concord.yml
│ │ │ ├── resourceWriteAsString/
│ │ │ │ └── concord.yml
│ │ │ ├── resourceWriteAsYaml/
│ │ │ │ └── concord.yml
│ │ │ ├── restartWithDeletedRepo/
│ │ │ │ └── concord.yml
│ │ │ ├── scriptGroovy/
│ │ │ │ └── concord.yml
│ │ │ ├── scriptJs/
│ │ │ │ └── concord.yml
│ │ │ ├── scriptRuby/
│ │ │ │ └── concord.yml
│ │ │ ├── sessionFileAccess/
│ │ │ │ └── concord.yml
│ │ │ ├── smtp/
│ │ │ │ └── concord.yml
│ │ │ ├── taskSchemaValidation/
│ │ │ │ ├── concordTaskInvalid/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── concordTaskValid/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── invalidInputFail/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── invalidInputWarn/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── invalidOutputFail/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── invalidOutputWarn/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── invalidSchemaFail/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── invalidSchemaWarn/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── multipleErrors/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── noSchema/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── validInput/
│ │ │ │ │ └── concord.yml
│ │ │ │ └── validationDisabled/
│ │ │ │ └── concord.yml
│ │ │ ├── template/
│ │ │ │ ├── _main.js
│ │ │ │ └── concord/
│ │ │ │ └── hello.concord.yml
│ │ │ ├── throwWithPayload/
│ │ │ │ └── concord.yml
│ │ │ ├── triggers/
│ │ │ │ └── github/
│ │ │ │ ├── events/
│ │ │ │ │ ├── direct_branch_push.json
│ │ │ │ │ ├── direct_branch_push_commit_id.json
│ │ │ │ │ ├── pr_close.json
│ │ │ │ │ └── pr_open.json
│ │ │ │ └── repos/
│ │ │ │ └── v2/
│ │ │ │ ├── allParamsTrigger/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── defaultTrigger/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── defaultTriggerWithSender/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── filesTrigger/
│ │ │ │ │ └── concord.yml
│ │ │ │ └── useEventCommitIdTrigger/
│ │ │ │ └── concord.yml
│ │ │ ├── usernameSignature/
│ │ │ │ └── concord.yml
│ │ │ └── yamlRootFile/
│ │ │ ├── concord/
│ │ │ │ └── extra.concord.yaml
│ │ │ └── concord.yaml
│ │ └── logback-test.xml
│ ├── server/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── test/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── server/
│ │ │ ├── AbstractGeneralTriggerIT.java
│ │ │ ├── AbstractGitHubTriggersIT.java
│ │ │ ├── AbstractOneOpsTriggerIT.java
│ │ │ ├── AbstractServerIT.java
│ │ │ ├── AnsibleEventIT.java
│ │ │ ├── AnsibleEventProcessorIT.java
│ │ │ ├── AnsibleIT.java
│ │ │ ├── AnsibleLookupIT.java
│ │ │ ├── AnsiblePolicyIT.java
│ │ │ ├── AnsiblePolicyVerboseLimitIT.java
│ │ │ ├── AnsibleProjectIT.java
│ │ │ ├── AnsibleRetryIT.java
│ │ │ ├── ApiKeyIT.java
│ │ │ ├── AttachmentRbacIT.java
│ │ │ ├── CheckpointsIT.java
│ │ │ ├── ClasspathIsolationIT.java
│ │ │ ├── ClasspathRepoIT.java
│ │ │ ├── ConcordTaskForkFromGitRepoIT.java
│ │ │ ├── ConcordTaskIT.java
│ │ │ ├── ConfigurableResourcesIT.java
│ │ │ ├── CronIT.java
│ │ │ ├── CrudIT.java
│ │ │ ├── CryptoIT.java
│ │ │ ├── DefaultProcessVariablesIT.java
│ │ │ ├── DependenciesIT.java
│ │ │ ├── DependencyManagerIT.java
│ │ │ ├── DispatcherIT.java
│ │ │ ├── DockerAnsibleIT.java
│ │ │ ├── DockerIT.java
│ │ │ ├── DynamicFormIT.java
│ │ │ ├── DynamicTaskIT.java
│ │ │ ├── EntityOwnerPolicyIT.java
│ │ │ ├── EscapeGitCommitMessageIT.java
│ │ │ ├── ExclusiveProcessIT.java
│ │ │ ├── ExpressionResolveOrderIT.java
│ │ │ ├── ExternalImportsIT.java
│ │ │ ├── FailureHandlingIT.java
│ │ │ ├── FilePermissionsIT.java
│ │ │ ├── ForceSuspendIT.java
│ │ │ ├── FormIT.java
│ │ │ ├── GeneralTriggerIT.java
│ │ │ ├── GeneralTriggerV2IT.java
│ │ │ ├── GitBranchesIT.java
│ │ │ ├── GitHubNonOrgEventIt.java
│ │ │ ├── GitHubTriggersV2IT.java
│ │ │ ├── GitRepositoryIT.java
│ │ │ ├── GroovyIT.java
│ │ │ ├── HttpTaskIT.java
│ │ │ ├── ITConstants.java
│ │ │ ├── InitiatorIT.java
│ │ │ ├── InventoryIT.java
│ │ │ ├── InventoryQueryIT.java
│ │ │ ├── JsonStoreIT.java
│ │ │ ├── JsonStoreTaskIT.java
│ │ │ ├── KvPolicyIT.java
│ │ │ ├── KvServiceIT.java
│ │ │ ├── LdapIT.java
│ │ │ ├── MavenRepoIT.java
│ │ │ ├── MultipleProjectFilesIT.java
│ │ │ ├── NodeRosterIT.java
│ │ │ ├── OneOpsTriggerIT.java
│ │ │ ├── OneOpsTriggerITV2.java
│ │ │ ├── OutVariablesIT.java
│ │ │ ├── OutVariablesProjectIT.java
│ │ │ ├── PermissionIT.java
│ │ │ ├── PolicyIT.java
│ │ │ ├── PortalIT.java
│ │ │ ├── PrincipalPermissionIT.java
│ │ │ ├── ProcessCardIT.java
│ │ │ ├── ProcessContainerIT.java
│ │ │ ├── ProcessCountIT.java
│ │ │ ├── ProcessEventsIT.java
│ │ │ ├── ProcessExecModeIT.java
│ │ │ ├── ProcessIT.java
│ │ │ ├── ProcessLocksIT.java
│ │ │ ├── ProcessMetadataIT.java
│ │ │ ├── ProcessRbacIT.java
│ │ │ ├── ProcessStateIT.java
│ │ │ ├── ProjectDeleteIT.java
│ │ │ ├── ProjectFileIT.java
│ │ │ ├── ProjectIT.java
│ │ │ ├── ProjectInfoIT.java
│ │ │ ├── ProjectTaskIT.java
│ │ │ ├── PublicFlowsIT.java
│ │ │ ├── RawPayloadProjectIT.java
│ │ │ ├── RepositoryRefreshIT.java
│ │ │ ├── RequirementsIT.java
│ │ │ ├── ResourceIT.java
│ │ │ ├── RunAsIT.java
│ │ │ ├── SecretIT.java
│ │ │ ├── SecretProjectsIT.java
│ │ │ ├── SecretsTaskIT.java
│ │ │ ├── SerializationIT.java
│ │ │ ├── SimpleIT.java
│ │ │ ├── SmtpIT.java
│ │ │ ├── StandardAuthenticationHandlersIT.java
│ │ │ ├── SuspendIT.java
│ │ │ ├── TaskRetryIT.java
│ │ │ ├── TeamRbacIT.java
│ │ │ ├── TemplateIT.java
│ │ │ ├── TemplateMergeIT.java
│ │ │ ├── ThrowExceptionTaskIT.java
│ │ │ ├── TimeoutHandlingIT.java
│ │ │ ├── TriggerIT.java
│ │ │ ├── TriggersRefreshIT.java
│ │ │ ├── UserManagementIT.java
│ │ │ ├── UserResourceIT.java
│ │ │ ├── UserResourceV2IT.java
│ │ │ ├── ValidationIT.java
│ │ │ ├── VariablesIT.java
│ │ │ ├── VariablesInjectionIT.java
│ │ │ ├── WithItemsIT.java
│ │ │ └── WorkspacePolicyIT.java
│ │ └── resources/
│ │ ├── agent.conf
│ │ ├── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── server/
│ │ │ ├── ProcessDisabledRepo/
│ │ │ │ └── concord.yml
│ │ │ ├── ansible/
│ │ │ │ ├── _main.json
│ │ │ │ ├── playbook/
│ │ │ │ │ └── hello.yml
│ │ │ │ └── processes/
│ │ │ │ └── main.yml
│ │ │ ├── ansibleBadStrings/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ ├── blns.base64.json
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleConfigFile/
│ │ │ │ ├── concord.yml
│ │ │ │ ├── myInventory.ini
│ │ │ │ ├── playbook/
│ │ │ │ │ └── hello.yml
│ │ │ │ └── user.cfg
│ │ │ ├── ansibleEvent/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleEventProcessor/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ ├── hello.yml
│ │ │ │ ├── large_play_and_task_names.yml
│ │ │ │ └── unicode_sanitization.yml
│ │ │ ├── ansibleExternalPlaybook/
│ │ │ │ ├── payload/
│ │ │ │ │ └── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleExtraVarsFiles/
│ │ │ │ ├── concord.yml
│ │ │ │ ├── extra.json
│ │ │ │ ├── extra.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleFailedHosts/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook.yml
│ │ │ ├── ansibleGroupVars/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleIgnoredFailures/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleInventoryMix/
│ │ │ │ ├── concord.yml
│ │ │ │ ├── inventory.ini
│ │ │ │ └── playbook.yml
│ │ │ ├── ansibleInventoryName/
│ │ │ │ ├── concord.yml
│ │ │ │ ├── inventory'$( whoami )'&123.ini
│ │ │ │ └── playbook.yml
│ │ │ ├── ansibleLargeVerbose/
│ │ │ │ ├── concord.yml
│ │ │ │ ├── inventory_large.ini
│ │ │ │ ├── inventory_limit.ini
│ │ │ │ ├── inventory_small.ini
│ │ │ │ ├── more_tasks.yml
│ │ │ │ ├── playbook_include.yml
│ │ │ │ ├── playbook_multi.yml
│ │ │ │ └── playbook_single.yml
│ │ │ ├── ansibleLimitWithMultipleHost/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleLogFiltering/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook.yml
│ │ │ ├── ansibleLookupPublicKey/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleLookupSecret/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleLookupSecretData/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleLookupSecretDataNoPassword/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleLookupSecretDataValue/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleMergeDefaults/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleMultiInventory/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleMultiInventoryFile/
│ │ │ │ ├── aaa.ini
│ │ │ │ ├── bbb.ini
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleOutVars/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansiblePolicyTaskDeny/
│ │ │ │ ├── concord.yml
│ │ │ │ ├── playbook/
│ │ │ │ │ └── hello.yml
│ │ │ │ └── test-policy.json
│ │ │ ├── ansibleRawStrings/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleSaveRetry/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleSkipTags/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleStats/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleTemplateArgs/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleVault/
│ │ │ │ ├── concord.yml
│ │ │ │ ├── get_password.py
│ │ │ │ └── playbook/
│ │ │ │ ├── group_vars/
│ │ │ │ │ └── all.yml
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleVaultMultiplePasswordFiles/
│ │ │ │ ├── concord.yml
│ │ │ │ ├── get_all_password.py
│ │ │ │ ├── get_local_password.py
│ │ │ │ └── playbook/
│ │ │ │ ├── group_vars/
│ │ │ │ │ ├── all.yml
│ │ │ │ │ └── local.yml
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleVaultMultiplePasswords/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ ├── group_vars/
│ │ │ │ │ ├── all.yml
│ │ │ │ │ └── local.yml
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleWithForm/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleWithItems/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleWithPostFormSuspension/
│ │ │ │ ├── payload/
│ │ │ │ │ └── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── ansibleproject/
│ │ │ │ ├── git/
│ │ │ │ │ └── playbook/
│ │ │ │ │ └── hello.yml
│ │ │ │ ├── inventory.ini
│ │ │ │ ├── request.json
│ │ │ │ ├── requestFailure.json
│ │ │ │ └── requestInline.json
│ │ │ ├── arrayInterpolation/
│ │ │ │ └── concord.yml
│ │ │ ├── brokenDeps/
│ │ │ │ └── concord.yml
│ │ │ ├── cancelHandling/
│ │ │ │ └── .concord.yml
│ │ │ ├── cancelSuspendAfterTwoForms/
│ │ │ │ └── concord.yml
│ │ │ ├── cancelSuspendHandling/
│ │ │ │ └── concord.yml
│ │ │ ├── checkpointExpressions/
│ │ │ │ └── concord.yml
│ │ │ ├── checkpoints/
│ │ │ │ └── concord.yml
│ │ │ ├── checkpointsWithArgs/
│ │ │ │ └── concord.yml
│ │ │ ├── checkpointsWithError/
│ │ │ │ └── concord.yml
│ │ │ ├── checkpointsWithEventName/
│ │ │ │ └── concord.yml
│ │ │ ├── checkpointsWithEventNameV2/
│ │ │ │ └── concord.yml
│ │ │ ├── concordDirTask/
│ │ │ │ ├── concord.yml
│ │ │ │ ├── myPayload/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── rootFile.txt
│ │ │ │ └── someDir/
│ │ │ │ └── subFile.txt
│ │ │ ├── concordOutVars/
│ │ │ │ ├── concord.yml
│ │ │ │ └── myPayload/
│ │ │ │ └── concord.yml
│ │ │ ├── concordProjectTask/
│ │ │ │ └── concord.yml
│ │ │ ├── concordStartAtTask/
│ │ │ │ ├── concord.yml
│ │ │ │ └── myPayload/
│ │ │ │ └── concord.yml
│ │ │ ├── concordSubFail/
│ │ │ │ ├── concord.yml
│ │ │ │ └── myPayload/
│ │ │ │ └── concord.yml
│ │ │ ├── concordSubIgnoreFail/
│ │ │ │ ├── concord.yml
│ │ │ │ └── myPayload/
│ │ │ │ └── concord.yml
│ │ │ ├── concordSubWithNullArg/
│ │ │ │ ├── concord.yml
│ │ │ │ └── myPayload/
│ │ │ │ └── concord.yml
│ │ │ ├── concordTask/
│ │ │ │ └── concord.yml
│ │ │ ├── concordTaskApiKey/
│ │ │ │ ├── concord.yml
│ │ │ │ └── payload/
│ │ │ │ └── concord.yml
│ │ │ ├── concordTaskFailChild/
│ │ │ │ └── concord.yml
│ │ │ ├── concordTaskFork/
│ │ │ │ └── concord.yml
│ │ │ ├── concordTaskForkAsyncGrabOutVars/
│ │ │ │ └── concord.yml
│ │ │ ├── concordTaskForkSuspend/
│ │ │ │ └── concord.yml
│ │ │ ├── concordTaskForkWithArguments/
│ │ │ │ └── concord.yml
│ │ │ ├── concordTaskForkWithForm/
│ │ │ │ └── concord.yml
│ │ │ ├── concordTaskForkWithItems/
│ │ │ │ └── concord.yml
│ │ │ ├── concordTaskForkWithItemsWithOut/
│ │ │ │ └── concord.yml
│ │ │ ├── concordTaskForkWithRequirements/
│ │ │ │ └── concord.yml
│ │ │ ├── concordTaskSuspendParentProcess/
│ │ │ │ ├── concord.yml
│ │ │ │ └── payload/
│ │ │ │ └── concord.yml
│ │ │ ├── configurableFlowsDirectory/
│ │ │ │ ├── concord.yml
│ │ │ │ └── myFlows/
│ │ │ │ └── external.yml
│ │ │ ├── configurableProfilesDirectory/
│ │ │ │ ├── .concord.yml
│ │ │ │ ├── _main.json
│ │ │ │ └── myProfiles/
│ │ │ │ └── test.yml
│ │ │ ├── cronProfiles/
│ │ │ │ └── concord.yml
│ │ │ ├── cronRunAs/
│ │ │ │ └── concord.yml
│ │ │ ├── crypto/
│ │ │ │ ├── _main.json
│ │ │ │ └── flows/
│ │ │ │ └── test.yml
│ │ │ ├── cryptoFile/
│ │ │ │ └── concord.yml
│ │ │ ├── cryptoFileWithOrg/
│ │ │ │ └── concord.yml
│ │ │ ├── cryptoPlain/
│ │ │ │ └── .concord.yml
│ │ │ ├── cryptoPwd/
│ │ │ │ └── .concord.yml
│ │ │ ├── cryptoWithoutPassword/
│ │ │ │ └── concord.yml
│ │ │ ├── currentOrgCrypto/
│ │ │ │ └── concord.yml
│ │ │ ├── decryptString/
│ │ │ │ └── concord.yml
│ │ │ ├── decryptStringTooBig/
│ │ │ │ └── concord.yml
│ │ │ ├── defaultEntryPoint/
│ │ │ │ └── concord.yml
│ │ │ ├── defaultVars/
│ │ │ │ └── concord.yml
│ │ │ ├── delegateOut/
│ │ │ │ └── concord.yml
│ │ │ ├── dependencyManager/
│ │ │ │ └── concord.yml
│ │ │ ├── deps/
│ │ │ │ └── processes/
│ │ │ │ └── test.yml
│ │ │ ├── disableProfilesDirectory/
│ │ │ │ ├── _main.json
│ │ │ │ ├── concord.yml
│ │ │ │ └── profiles/
│ │ │ │ └── broken.yml
│ │ │ ├── docker/
│ │ │ │ └── concord.yml
│ │ │ ├── dockerAnsible/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── dockerLogWithStdErr/
│ │ │ │ └── concord.yml
│ │ │ ├── dockerLogWithoutStdOut/
│ │ │ │ └── concord.yml
│ │ │ ├── dockerNoLogWithStdOut/
│ │ │ │ └── concord.yml
│ │ │ ├── dockerOut/
│ │ │ │ └── concord.yml
│ │ │ ├── dockerPullRetry/
│ │ │ │ └── concord.yml
│ │ │ ├── dockerTaskSyntaxOut/
│ │ │ │ └── concord.yml
│ │ │ ├── dynamicFormFields/
│ │ │ │ └── concord.yml
│ │ │ ├── dynamicFormWithGroovy/
│ │ │ │ └── concord.yml
│ │ │ ├── dynamicTask/
│ │ │ │ ├── concord.yml
│ │ │ │ └── tasks/
│ │ │ │ └── test.groovy
│ │ │ ├── effectiveYaml/
│ │ │ │ └── concord.yml
│ │ │ ├── encryptString/
│ │ │ │ └── .concord.yml
│ │ │ ├── escapeCommitMessage/
│ │ │ │ └── .concord.yml
│ │ │ ├── example/
│ │ │ │ ├── _main.json
│ │ │ │ ├── processes/
│ │ │ │ │ └── test.yml
│ │ │ │ └── something.txt
│ │ │ ├── exclusiveCancelOld/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImport/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportFailHandler/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportMain/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportMainFailed/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportMainStateTest/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportMainWithDeps/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportMainWithExclude/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportMainWithFlow/
│ │ │ │ ├── concord/
│ │ │ │ │ └── concord.yml
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportMainWithForks/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportMainWithPath/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportMainWithVersion/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportSymlink/
│ │ │ │ └── concord.txt
│ │ │ ├── externalImportTriggerReference/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportWithConfiguration/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportWithDeps/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportWithDir/
│ │ │ │ ├── concord.yml
│ │ │ │ └── dir/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportWithForks/
│ │ │ │ └── concord.yml
│ │ │ ├── externalImportWithForm/
│ │ │ │ └── concord.yml
│ │ │ ├── externalWithItems/
│ │ │ │ └── concord.yml
│ │ │ ├── extraDeps/
│ │ │ │ └── concord.yml
│ │ │ ├── failureHandling/
│ │ │ │ └── .concord.yml
│ │ │ ├── failureHandlingError/
│ │ │ │ └── .concord.yml
│ │ │ ├── filePerm/
│ │ │ │ ├── concord.yml
│ │ │ │ └── test.sh
│ │ │ ├── forkDepth/
│ │ │ │ └── concord.yml
│ │ │ ├── forkInitiator/
│ │ │ │ └── concord.yml
│ │ │ ├── forkOnFailure/
│ │ │ │ └── concord.yml
│ │ │ ├── form/
│ │ │ │ ├── _main.json
│ │ │ │ └── processes/
│ │ │ │ └── test.yml
│ │ │ ├── formCallWithExpression/
│ │ │ │ └── .concord.yml
│ │ │ ├── formExternal/
│ │ │ │ ├── concord.yml
│ │ │ │ └── flows/
│ │ │ │ └── external.yml
│ │ │ ├── formLabelExpression/
│ │ │ │ └── concord.yml
│ │ │ ├── formMultiValue/
│ │ │ │ └── .concord.yml
│ │ │ ├── formOptionalFileTypeField/
│ │ │ │ └── .concord.yml
│ │ │ ├── formReadonlyField/
│ │ │ │ └── .concord.yml
│ │ │ ├── formSingleAllowedValue/
│ │ │ │ └── concord.yml
│ │ │ ├── formValues/
│ │ │ │ └── .concord.yml
│ │ │ ├── formValuesSubmit/
│ │ │ │ └── concord.yml
│ │ │ ├── formsWithItems/
│ │ │ │ └── concord.yml
│ │ │ ├── generalExclusiveTrigger/
│ │ │ │ └── concord.yml
│ │ │ ├── generalExclusiveTriggerv2/
│ │ │ │ └── concord.yml
│ │ │ ├── generalTriggerWithExclusiveCfg/
│ │ │ │ └── concord.yml
│ │ │ ├── generalTriggerWithExclusiveCfgv2/
│ │ │ │ └── concord.yml
│ │ │ ├── generalTriggerWithExclusiveOverride/
│ │ │ │ └── concord.yml
│ │ │ ├── generalTriggerWithExclusiveOverridev2/
│ │ │ │ └── concord.yml
│ │ │ ├── getVar/
│ │ │ │ └── concord.yml
│ │ │ ├── gitBranches/
│ │ │ │ ├── dev/
│ │ │ │ │ └── concord.yml
│ │ │ │ └── qa/
│ │ │ │ └── concord.yml
│ │ │ ├── gitRepository/
│ │ │ │ └── concord.yml
│ │ │ ├── githubNonRepoEvent/
│ │ │ │ ├── concord.yml
│ │ │ │ └── event.json
│ │ │ ├── githubTests/
│ │ │ │ ├── events/
│ │ │ │ │ ├── direct_branch_push.json
│ │ │ │ │ ├── direct_branch_push_delete.json
│ │ │ │ │ ├── empty_push.json
│ │ │ │ │ ├── pr_close.json
│ │ │ │ │ └── pr_open.json
│ │ │ │ └── repos/
│ │ │ │ └── v2/
│ │ │ │ ├── allParamsTrigger/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── anyRepoWithSender/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── defaultTrigger/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── files/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── groupByBranchTrigger/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── groupByEventAttrTrigger/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── ignoreEmptyPushTrigger/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── queryParams/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── requestInfo/
│ │ │ │ │ └── concord.yml
│ │ │ │ └── useInitiatorTrigger/
│ │ │ │ └── concord.yml
│ │ │ ├── groovy/
│ │ │ │ └── concord.yml
│ │ │ ├── httpFollowRedirects/
│ │ │ │ └── concord.yml
│ │ │ ├── httpGet/
│ │ │ │ └── concord.yml
│ │ │ ├── httpGetAsDefaultMethod/
│ │ │ │ └── concord.yml
│ │ │ ├── httpGetAsString/
│ │ │ │ └── concord.yml
│ │ │ ├── httpGetEmpty/
│ │ │ │ └── concord.yml
│ │ │ ├── httpGetWithAuthUsingPassword/
│ │ │ │ └── concord.yml
│ │ │ ├── httpGetWithAuthUsingToken/
│ │ │ │ └── concord.yml
│ │ │ ├── httpGetWithHeaders/
│ │ │ │ └── concord.yml
│ │ │ ├── httpGetWithIgnoreErrors/
│ │ │ │ └── concord.yml
│ │ │ ├── httpGetWithInvalidUrl/
│ │ │ │ └── concord.yml
│ │ │ ├── httpGetWithQueryParams/
│ │ │ │ └── concord.yml
│ │ │ ├── httpPatch/
│ │ │ │ └── concord.yml
│ │ │ ├── httpPost/
│ │ │ │ └── concord.yml
│ │ │ ├── httpPostArray/
│ │ │ │ └── concord.yml
│ │ │ ├── httpPostWithAuthUsingToken/
│ │ │ │ └── concord.yml
│ │ │ ├── httpPostWithDebug/
│ │ │ │ └── concord.yml
│ │ │ ├── httpPostWithFormUrlEncoded/
│ │ │ │ └── concord.yml
│ │ │ ├── importATrigger/
│ │ │ │ └── concord.yml
│ │ │ ├── initiator/
│ │ │ │ ├── _main.json
│ │ │ │ └── processes/
│ │ │ │ └── test.yml
│ │ │ ├── inject/
│ │ │ │ └── .concord.yml
│ │ │ ├── interpolation/
│ │ │ │ ├── _main.json
│ │ │ │ └── processes/
│ │ │ │ └── test.yml
│ │ │ ├── invalidResourcesPath/
│ │ │ │ └── concord.yml
│ │ │ ├── invalidTriggers/
│ │ │ │ └── concord.yml
│ │ │ ├── invalidTriggersBrokenProcess/
│ │ │ │ ├── a/
│ │ │ │ │ ├── concord.yml
│ │ │ │ │ └── makepolicyfail.txt
│ │ │ │ ├── b/
│ │ │ │ │ └── concord.yml
│ │ │ │ └── policy.json
│ │ │ ├── inventoryQuery/
│ │ │ │ └── concord.yml
│ │ │ ├── jsonStoreTask/
│ │ │ │ └── concord.yml
│ │ │ ├── jsonStoreTaskStoreTest/
│ │ │ │ └── concord.yml
│ │ │ ├── kvInc/
│ │ │ │ └── processes/
│ │ │ │ └── test.yml
│ │ │ ├── kvInvalidKeys/
│ │ │ │ └── concord.yml
│ │ │ ├── kvPolicy/
│ │ │ │ ├── concord.yml
│ │ │ │ ├── test-policy-relaxed.json
│ │ │ │ └── test-policy.json
│ │ │ ├── kvScript/
│ │ │ │ └── concord.yml
│ │ │ ├── kvSpecialString/
│ │ │ │ └── concord.yml
│ │ │ ├── ldapFormRunAs/
│ │ │ │ └── concord.yml
│ │ │ ├── ldapInitiator/
│ │ │ │ └── concord.yml
│ │ │ ├── multiProjectTemplate/
│ │ │ │ ├── template/
│ │ │ │ │ ├── concord/
│ │ │ │ │ │ └── test.yml
│ │ │ │ │ └── test.txt
│ │ │ │ └── user/
│ │ │ │ └── concord.yml
│ │ │ ├── multipart/
│ │ │ │ ├── .concord.yml
│ │ │ │ └── _main.json
│ │ │ ├── multipleWithItems/
│ │ │ │ └── concord.yml
│ │ │ ├── mvnDeps/
│ │ │ │ └── concord.yml
│ │ │ ├── nodeRoster/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook.yml
│ │ │ ├── nodeRosterMultiFacts/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook.yml
│ │ │ ├── nodeRosterTask/
│ │ │ │ └── concord.yml
│ │ │ ├── nonSerializableTest/
│ │ │ │ └── concord.yml
│ │ │ ├── onFailureDependencies/
│ │ │ │ └── concord.yml
│ │ │ ├── oneCheckpoint/
│ │ │ │ └── concord.yml
│ │ │ ├── oneopsTests/
│ │ │ │ ├── events/
│ │ │ │ │ ├── oneops_deployment_complete.json
│ │ │ │ │ └── oneops_deployment_qa.json
│ │ │ │ └── trigger/
│ │ │ │ └── concord.yml
│ │ │ ├── out/
│ │ │ │ └── concord.yml
│ │ │ ├── parentInstanceId/
│ │ │ │ ├── concord.yml
│ │ │ │ └── myPayload/
│ │ │ │ └── concord.yml
│ │ │ ├── policyCfg/
│ │ │ │ └── concord.yml
│ │ │ ├── portal/
│ │ │ │ └── .concord.yml
│ │ │ ├── principalPermission/
│ │ │ │ ├── concord.yml
│ │ │ │ └── payload/
│ │ │ │ └── concord.yml
│ │ │ ├── process/
│ │ │ │ └── concord.yml
│ │ │ ├── processContainer/
│ │ │ │ └── concord.yml
│ │ │ ├── processCount/
│ │ │ │ └── concord.yml
│ │ │ ├── processLocks/
│ │ │ │ └── concord.yml
│ │ │ ├── processMetadata/
│ │ │ │ └── concord.yml
│ │ │ ├── processModeExec/
│ │ │ │ └── concord.yml
│ │ │ ├── processRbac/
│ │ │ │ └── concord.yml
│ │ │ ├── processRequirements/
│ │ │ │ └── concord.yml
│ │ │ ├── processWithChildren/
│ │ │ │ └── concord.yml
│ │ │ ├── project/
│ │ │ │ └── processes/
│ │ │ │ └── test.yml
│ │ │ ├── project-commit-id/
│ │ │ │ ├── 1/
│ │ │ │ │ └── processes/
│ │ │ │ │ └── test.yml
│ │ │ │ └── 2/
│ │ │ │ └── processes/
│ │ │ │ └── test.yml
│ │ │ ├── project-triggers/
│ │ │ │ └── concord.yml
│ │ │ ├── projectEntryPoint/
│ │ │ │ └── .concord.yml
│ │ │ ├── projectInfo/
│ │ │ │ └── concord.yml
│ │ │ ├── projectTask/
│ │ │ │ └── concord.yml
│ │ │ ├── projectfile/
│ │ │ │ ├── altname/
│ │ │ │ │ └── concord.yml
│ │ │ │ ├── deps/
│ │ │ │ │ └── .template.yml
│ │ │ │ ├── expr/
│ │ │ │ │ ├── .concord.yml
│ │ │ │ │ └── _main.json
│ │ │ │ ├── expressionscript/
│ │ │ │ │ ├── concord.yml
│ │ │ │ │ └── scripts/
│ │ │ │ │ └── test.js
│ │ │ │ ├── externalprofile/
│ │ │ │ │ ├── .concord.yml
│ │ │ │ │ ├── _main.json
│ │ │ │ │ └── profiles/
│ │ │ │ │ ├── another.yml
│ │ │ │ │ └── test.yml
│ │ │ │ ├── externalscript/
│ │ │ │ │ ├── .concord.yml
│ │ │ │ │ ├── _main.json
│ │ │ │ │ └── scripts/
│ │ │ │ │ └── test.js
│ │ │ │ ├── overrideflow/
│ │ │ │ │ ├── .concord.yml
│ │ │ │ │ └── _main.json
│ │ │ │ ├── scriptWithErrorBlock/
│ │ │ │ │ ├── .concord.yml
│ │ │ │ │ ├── _main.json
│ │ │ │ │ └── scripts/
│ │ │ │ │ └── myscript.groovy
│ │ │ │ ├── singleprofile/
│ │ │ │ │ ├── .concord.yml
│ │ │ │ │ └── _main.json
│ │ │ │ └── singleprofilecfg/
│ │ │ │ ├── .concord.yml
│ │ │ │ └── _main.json
│ │ │ ├── publicFlowsInProfiles/
│ │ │ │ ├── concord/
│ │ │ │ │ ├── a.yml
│ │ │ │ │ └── b.yml
│ │ │ │ └── concord.yml
│ │ │ ├── repositoryRefresh/
│ │ │ │ └── concord.yml
│ │ │ ├── repositoryValidation/
│ │ │ │ └── concord.yml
│ │ │ ├── repositoryValidationEmptyFlow/
│ │ │ │ └── concord.yml
│ │ │ ├── repositoryValidationEmptyForm/
│ │ │ │ └── concord.yml
│ │ │ ├── repositoryValidationTemplateRef/
│ │ │ │ └── concord.yml
│ │ │ ├── resolveOrder/
│ │ │ │ └── concord.yml
│ │ │ ├── resourcePrintJson/
│ │ │ │ └── concord.yml
│ │ │ ├── resourceReadAsJson/
│ │ │ │ ├── concord.yml
│ │ │ │ └── sample.json
│ │ │ ├── resourceReadAsString/
│ │ │ │ ├── concord.yml
│ │ │ │ └── sample.txt
│ │ │ ├── resourceReadFromJsonString/
│ │ │ │ └── concord.yml
│ │ │ ├── resourceWriteAsJson/
│ │ │ │ └── concord.yml
│ │ │ ├── resourceWriteAsString/
│ │ │ │ └── concord.yml
│ │ │ ├── resourceWriteAsYaml/
│ │ │ │ └── concord.yml
│ │ │ ├── runAsMultipleUsers/
│ │ │ │ └── concord.yml
│ │ │ ├── runAsPayload/
│ │ │ │ └── concord.yml
│ │ │ ├── runas/
│ │ │ │ └── concord.yml
│ │ │ ├── runnerEvents/
│ │ │ │ └── concord.yml
│ │ │ ├── secretProjects/
│ │ │ │ └── concord.yml
│ │ │ ├── secretsTask/
│ │ │ │ └── concord.yml
│ │ │ ├── serialization/
│ │ │ │ └── .concord.yml
│ │ │ ├── sessionToken/
│ │ │ │ └── concord.yml
│ │ │ ├── sessionTokenAsUsername/
│ │ │ │ └── concord.yml
│ │ │ ├── setVar/
│ │ │ │ └── concord.yml
│ │ │ ├── setVarNested/
│ │ │ │ └── concord.yml
│ │ │ ├── setVarNested2/
│ │ │ │ └── concord.yml
│ │ │ ├── simple/
│ │ │ │ └── concord.yml
│ │ │ ├── smtp/
│ │ │ │ ├── _main.json
│ │ │ │ ├── processes/
│ │ │ │ │ └── main.yml
│ │ │ │ └── test.mustache
│ │ │ ├── stateSingleFile/
│ │ │ │ ├── concord.yml
│ │ │ │ └── dir/
│ │ │ │ └── test.txt
│ │ │ ├── suspend/
│ │ │ │ ├── _main.json
│ │ │ │ └── processes/
│ │ │ │ └── main.yml
│ │ │ ├── suspendForCompletion/
│ │ │ │ ├── concord.yml
│ │ │ │ └── payload/
│ │ │ │ └── concord.yml
│ │ │ ├── suspendForForkedProcesses/
│ │ │ │ └── concord.yml
│ │ │ ├── suspendTask/
│ │ │ │ └── concord.yml
│ │ │ ├── taskOut/
│ │ │ │ └── concord.yml
│ │ │ ├── taskRetry/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── taskRetryWithExpression/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── templateMerge/
│ │ │ │ ├── process/
│ │ │ │ │ └── .concord.yml
│ │ │ │ └── template/
│ │ │ │ ├── _main.js
│ │ │ │ └── flows/
│ │ │ │ └── main.yml
│ │ │ ├── testTrigger/
│ │ │ │ └── concord.yml
│ │ │ ├── throwExceptionMessage/
│ │ │ │ └── concord.yml
│ │ │ ├── throwExceptionTask/
│ │ │ │ └── concord.yml
│ │ │ ├── timeout/
│ │ │ │ ├── _main.json
│ │ │ │ └── processes/
│ │ │ │ └── test.yml
│ │ │ ├── timeoutHandling/
│ │ │ │ └── .concord.yml
│ │ │ ├── triggerActiveProfiles/
│ │ │ │ └── concord.yml
│ │ │ ├── triggerRepo/
│ │ │ │ ├── concord.yml
│ │ │ │ └── new_concord.yml
│ │ │ ├── twoAnsible/
│ │ │ │ ├── concord.yml
│ │ │ │ └── playbook/
│ │ │ │ └── hello.yml
│ │ │ ├── unknownFlavor/
│ │ │ │ └── concord.yml
│ │ │ ├── variables/
│ │ │ │ ├── .concord.yml
│ │ │ │ └── _main.json
│ │ │ ├── withDelay/
│ │ │ │ └── concord.yml
│ │ │ ├── withForm/
│ │ │ │ └── concord.yml
│ │ │ └── workspacePolicy/
│ │ │ ├── concord.yml
│ │ │ ├── test-policy-relaxed.json
│ │ │ └── test-policy.json
│ │ ├── default_vars.yml
│ │ ├── logback.xml
│ │ ├── mvn.json
│ │ └── server.conf
│ ├── tasks/
│ │ ├── broken-deps/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── tasks/
│ │ │ └── brokendeps/
│ │ │ └── BrokenDepsTask.java
│ │ ├── dependency-manager-test/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── tasks/
│ │ │ └── dependencymanagertest/
│ │ │ └── DependencyManagerTestTask.java
│ │ ├── schema-test/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── it/
│ │ │ │ └── tasks/
│ │ │ │ └── schematest/
│ │ │ │ ├── InvalidSchemaTask.java
│ │ │ │ └── SchemaTestTask.java
│ │ │ └── resources/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── tasks/
│ │ │ └── schematest/
│ │ │ ├── invalidSchema.schema.json
│ │ │ └── schemaTest.schema.json
│ │ ├── serialization-test/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── it/
│ │ │ └── tasks/
│ │ │ └── serializationtest/
│ │ │ ├── CustomBean.java
│ │ │ ├── CustomBeanTask.java
│ │ │ ├── NonSerializableThingy.java
│ │ │ └── SerializationTestTask.java
│ │ └── suspend-test/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── it/
│ │ └── tasks/
│ │ └── suspendtest/
│ │ └── SuspendTestTask.java
│ └── testing-server/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── it/
│ │ └── testingserver/
│ │ ├── TestingConcordAgent.java
│ │ └── TestingConcordServer.java
│ └── test/
│ └── java/
│ └── com/
│ └── walmartlabs/
│ └── concord/
│ └── it/
│ └── testingserver/
│ └── TestingConcordIT.java
├── mvnw
├── mvnw.cmd
├── plugins/
│ ├── pom.xml
│ ├── tasks/
│ │ ├── ansible/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── walmartlabs/
│ │ │ │ │ └── concord/
│ │ │ │ │ └── plugins/
│ │ │ │ │ └── ansible/
│ │ │ │ │ ├── AnsibleAuth.java
│ │ │ │ │ ├── AnsibleAuthFactory.java
│ │ │ │ │ ├── AnsibleCallbacks.java
│ │ │ │ │ ├── AnsibleConfig.java
│ │ │ │ │ ├── AnsibleContext.java
│ │ │ │ │ ├── AnsibleEnv.java
│ │ │ │ │ ├── AnsibleInventory.java
│ │ │ │ │ ├── AnsibleLibs.java
│ │ │ │ │ ├── AnsibleLookup.java
│ │ │ │ │ ├── AnsibleRoles.java
│ │ │ │ │ ├── AnsibleTask.java
│ │ │ │ │ ├── AnsibleVaultId.java
│ │ │ │ │ ├── ArgUtils.java
│ │ │ │ │ ├── ConfigSection.java
│ │ │ │ │ ├── DefaultPlaybookProcessRunner.java
│ │ │ │ │ ├── DeprecatedArgsProcessor.java
│ │ │ │ │ ├── DockerExtraHosts.java
│ │ │ │ │ ├── DockerPlaybookProcessRunner.java
│ │ │ │ │ ├── EventSender.java
│ │ │ │ │ ├── GroupVarsProcessor.java
│ │ │ │ │ ├── KerberosAuth.java
│ │ │ │ │ ├── NopAuth.java
│ │ │ │ │ ├── OutVarsProcessor.java
│ │ │ │ │ ├── PlaybookProcessRunner.java
│ │ │ │ │ ├── PlaybookProcessRunnerFactory.java
│ │ │ │ │ ├── PlaybookScriptBuilder.java
│ │ │ │ │ ├── PrivateKeyAuth.java
│ │ │ │ │ ├── Resources.java
│ │ │ │ │ ├── Secret.java
│ │ │ │ │ ├── TaskParams.java
│ │ │ │ │ ├── Utils.java
│ │ │ │ │ ├── Virtualenv.java
│ │ │ │ │ ├── docker/
│ │ │ │ │ │ └── AnsibleDockerService.java
│ │ │ │ │ ├── secrets/
│ │ │ │ │ │ ├── AnsibleSecretService.java
│ │ │ │ │ │ ├── KeyPair.java
│ │ │ │ │ │ └── UsernamePassword.java
│ │ │ │ │ ├── v1/
│ │ │ │ │ │ ├── AnsibleDockerServiceV1.java
│ │ │ │ │ │ ├── AnsibleSecretServiceV1.java
│ │ │ │ │ │ ├── AnsibleTaskV1.java
│ │ │ │ │ │ └── RunPlaybookTask2.java
│ │ │ │ │ └── v2/
│ │ │ │ │ ├── AnsibleDockerServiceV2.java
│ │ │ │ │ ├── AnsibleSecretServiceV2.java
│ │ │ │ │ └── AnsibleTaskV2.java
│ │ │ │ └── resources/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── plugins/
│ │ │ │ └── ansible/
│ │ │ │ ├── callback/
│ │ │ │ │ ├── concord_default_module_args.py
│ │ │ │ │ ├── concord_events.py
│ │ │ │ │ ├── concord_out_vars.py
│ │ │ │ │ ├── concord_protectdata.py
│ │ │ │ │ ├── concord_strategy_patch.py
│ │ │ │ │ ├── concord_task_executor_patch.py
│ │ │ │ │ └── concord_trace.py
│ │ │ │ ├── inventory.sh
│ │ │ │ ├── lib/
│ │ │ │ │ ├── concord_ansible_stats.py
│ │ │ │ │ ├── process_cfg_policy.py
│ │ │ │ │ └── task_policy.py
│ │ │ │ └── lookup/
│ │ │ │ ├── concord_data_secret.py
│ │ │ │ ├── concord_inventory.py
│ │ │ │ ├── concord_public_key_secret.py
│ │ │ │ └── concord_secret.py
│ │ │ └── test/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── plugins/
│ │ │ │ └── ansible/
│ │ │ │ ├── AbstractTest.java
│ │ │ │ ├── AnsibleConfigTest.java
│ │ │ │ └── KerberosTest.java
│ │ │ └── resources/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── ansible/
│ │ │ └── ansible.cfg
│ │ ├── asserts/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── asserts/
│ │ │ └── AssertsTask.java
│ │ ├── concord/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── walmartlabs/
│ │ │ │ │ └── concord/
│ │ │ │ │ └── client/
│ │ │ │ │ ├── AbstractConcordTask.java
│ │ │ │ │ ├── ConcordTask.java
│ │ │ │ │ ├── ConcordTaskCommon.java
│ │ │ │ │ ├── ConcordTaskParams.java
│ │ │ │ │ ├── InventoryTask.java
│ │ │ │ │ ├── JsonStoreTask.java
│ │ │ │ │ ├── JsonStoreTaskCommon.java
│ │ │ │ │ ├── Keys.java
│ │ │ │ │ ├── ProjectTask.java
│ │ │ │ │ ├── ProjectTaskCommon.java
│ │ │ │ │ ├── ProjectTaskParams.java
│ │ │ │ │ ├── RepositoryRefreshTaskCommon.java
│ │ │ │ │ ├── RepositoryRefreshTaskParams.java
│ │ │ │ │ ├── ResumePayload.java
│ │ │ │ │ ├── SecretsTask.java
│ │ │ │ │ ├── SecretsTaskCommon.java
│ │ │ │ │ ├── SecretsTaskParams.java
│ │ │ │ │ ├── model/
│ │ │ │ │ │ ├── EventRepository.java
│ │ │ │ │ │ ├── PushEvent.java
│ │ │ │ │ │ └── RefreshEvent.java
│ │ │ │ │ ├── v1/
│ │ │ │ │ │ └── ContextBackedVariables.java
│ │ │ │ │ └── v2/
│ │ │ │ │ ├── ConcordTaskV2.java
│ │ │ │ │ ├── JsonStoreTaskV2.java
│ │ │ │ │ ├── ProjectTaskV2.java
│ │ │ │ │ ├── RepositoryRefreshTaskV2.java
│ │ │ │ │ └── SecretsTaskV2.java
│ │ │ │ └── resources/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── client/
│ │ │ │ └── v2/
│ │ │ │ └── concord.schema.json
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── client/
│ │ │ ├── ConcordTaskParamsTest.java
│ │ │ └── RepositoryRefreshCommonTest.java
│ │ ├── crypto/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── crypto/
│ │ │ ├── CryptoTask.java
│ │ │ ├── CryptoTaskV2.java
│ │ │ └── TaskParams.java
│ │ ├── docker/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── docker/
│ │ │ ├── DockerConstants.java
│ │ │ ├── DockerTask.java
│ │ │ ├── DockerTaskCommon.java
│ │ │ ├── DockerTaskV2.java
│ │ │ └── TaskParams.java
│ │ ├── dynamic-tasks/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── dynamic/
│ │ │ ├── LoadTasksTask.java
│ │ │ ├── LoadTasksTaskV2.java
│ │ │ ├── TaskLoader.java
│ │ │ └── TaskRegistry.java
│ │ ├── example/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── example/
│ │ │ ├── ExampleBean.java
│ │ │ ├── ExampleDelegate.java
│ │ │ └── ExampleTask.java
│ │ ├── files/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── file/
│ │ │ └── v2/
│ │ │ └── FilesTaskV2.java
│ │ ├── http/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ ├── filtered-resources/
│ │ │ │ │ └── com/
│ │ │ │ │ └── walmartlabs/
│ │ │ │ │ └── concord/
│ │ │ │ │ └── plugins/
│ │ │ │ │ └── http/
│ │ │ │ │ └── version.properties
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── plugins/
│ │ │ │ └── http/
│ │ │ │ ├── Configuration.java
│ │ │ │ ├── HttpTask.java
│ │ │ │ ├── HttpTaskUtils.java
│ │ │ │ ├── HttpTaskV2.java
│ │ │ │ ├── SimpleHttpClient.java
│ │ │ │ ├── Version.java
│ │ │ │ ├── exception/
│ │ │ │ │ ├── RequestTimeoutException.java
│ │ │ │ │ └── UnauthorizedException.java
│ │ │ │ └── request/
│ │ │ │ ├── HttpTaskRequest.java
│ │ │ │ └── Request.java
│ │ │ └── test/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── plugins/
│ │ │ │ └── http/
│ │ │ │ ├── HttpTaskTest.java
│ │ │ │ ├── HttpTaskV2Test.java
│ │ │ │ ├── SimpleHttpClientTest.java
│ │ │ │ └── WiremockTest.java
│ │ │ └── resources/
│ │ │ └── logback.xml
│ │ ├── kv/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── kv/
│ │ │ ├── Constants.java
│ │ │ ├── KvTask.java
│ │ │ ├── KvTaskUtils.java
│ │ │ └── KvTaskV2.java
│ │ ├── locale/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── locale/
│ │ │ ├── LocaleTask.java
│ │ │ └── LocaleTaskV2.java
│ │ ├── lock/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── lock/
│ │ │ ├── Constants.java
│ │ │ ├── LockTask.java
│ │ │ ├── LockTaskCommon.java
│ │ │ ├── TaskParams.java
│ │ │ └── v2/
│ │ │ ├── LockTaskV2.java
│ │ │ └── UnlockTaskV2.java
│ │ ├── log/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── log/
│ │ │ ├── LogDebugTask.java
│ │ │ ├── LogErrorTask.java
│ │ │ ├── LogUtils.java
│ │ │ ├── LogWarnTask.java
│ │ │ ├── LoggingTask.java
│ │ │ └── LoggingTaskV2.java
│ │ ├── misc/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── misc/
│ │ │ ├── Base64TaskV2.java
│ │ │ ├── CollectionsTaskV2.java
│ │ │ ├── DateTimeTask.java
│ │ │ ├── DateTimeTaskV2.java
│ │ │ ├── EnvTaskV2.java
│ │ │ ├── MiscTask.java
│ │ │ └── MiscTaskV2.java
│ │ ├── mock/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── plugins/
│ │ │ │ └── mock/
│ │ │ │ ├── InputSanitizer.java
│ │ │ │ ├── Invocation.java
│ │ │ │ ├── Invocations.java
│ │ │ │ ├── InvocationsCollector.java
│ │ │ │ ├── InvocationsCollectorParams.java
│ │ │ │ ├── MockDefinition.java
│ │ │ │ ├── MockDefinitionContext.java
│ │ │ │ ├── MockDefinitionProvider.java
│ │ │ │ ├── MockModule.java
│ │ │ │ ├── MockTask.java
│ │ │ │ ├── MockTaskMethodResolver.java
│ │ │ │ ├── MockTaskProvider.java
│ │ │ │ ├── MockUtilsTask.java
│ │ │ │ ├── VerifierBeanMethodResolver.java
│ │ │ │ ├── VerifyTask.java
│ │ │ │ └── matcher/
│ │ │ │ ├── AbstractMatcher.java
│ │ │ │ ├── ArgsMatcher.java
│ │ │ │ ├── CollectionMatcher.java
│ │ │ │ ├── MapMatcher.java
│ │ │ │ ├── Matcher.java
│ │ │ │ ├── StringValueMatcher.java
│ │ │ │ ├── TypeReference.java
│ │ │ │ └── ValueMatcher.java
│ │ │ └── test/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── plugins/
│ │ │ │ └── mock/
│ │ │ │ ├── MockDefinitionMatcherTest.java
│ │ │ │ ├── MockTest.java
│ │ │ │ ├── TestTask.java
│ │ │ │ ├── VerifyTest.java
│ │ │ │ └── matcher/
│ │ │ │ └── ArgsMatcherTest.java
│ │ │ └── resources/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── mock/
│ │ │ ├── method-mock/
│ │ │ │ └── concord.yml
│ │ │ ├── method-mock-with-any/
│ │ │ │ └── concord.yml
│ │ │ ├── method-mock-with-flow-execute/
│ │ │ │ └── concord.yml
│ │ │ ├── simple/
│ │ │ │ └── concord.yml
│ │ │ ├── simple-verify/
│ │ │ │ └── concord.yaml
│ │ │ ├── task-mock-with-flow-execute/
│ │ │ │ └── concord.yml
│ │ │ └── verify-mocked-task/
│ │ │ └── concord.yaml
│ │ ├── noderoster/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── noderoster/
│ │ │ ├── Constants.java
│ │ │ ├── NodeRosterTask.java
│ │ │ ├── NodeRosterTaskUtils.java
│ │ │ ├── NodeRosterTaskV2.java
│ │ │ └── Result.java
│ │ ├── resource/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── plugins/
│ │ │ │ └── resource/
│ │ │ │ ├── Evaluator.java
│ │ │ │ ├── FileService.java
│ │ │ │ ├── ResourceTask.java
│ │ │ │ ├── ResourceTaskCommon.java
│ │ │ │ └── v2/
│ │ │ │ └── ResourceTaskV2.java
│ │ │ └── test/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── plugins/
│ │ │ │ └── resource/
│ │ │ │ └── ResourceTaskCommonTest.java
│ │ │ └── resources/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── resource/
│ │ │ └── test.properties
│ │ ├── slack/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── plugins/
│ │ │ │ └── slack/
│ │ │ │ ├── ContextVariables.java
│ │ │ │ ├── Slack.java
│ │ │ │ ├── SlackChannelTask.java
│ │ │ │ ├── SlackChannelTaskCommon.java
│ │ │ │ ├── SlackChannelTaskParams.java
│ │ │ │ ├── SlackClient.java
│ │ │ │ ├── SlackConfiguration.java
│ │ │ │ ├── SlackConfigurationParams.java
│ │ │ │ ├── SlackTask.java
│ │ │ │ ├── SlackTaskCommon.java
│ │ │ │ ├── SlackTaskParams.java
│ │ │ │ ├── Utils.java
│ │ │ │ └── v2/
│ │ │ │ ├── SlackChannelTaskV2.java
│ │ │ │ └── SlackTaskV2.java
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── slack/
│ │ │ ├── SlackClientTest.java
│ │ │ ├── SlackTaskTest.java
│ │ │ └── TestParams.java
│ │ ├── sleep/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── sleep/
│ │ │ ├── Constants.java
│ │ │ ├── SleepTask.java
│ │ │ ├── SleepTaskCommon.java
│ │ │ ├── Suspender.java
│ │ │ ├── TaskParams.java
│ │ │ └── v2/
│ │ │ └── SleepTaskV2.java
│ │ ├── smtp/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── plugins/
│ │ │ │ └── smtp/
│ │ │ │ ├── Constants.java
│ │ │ │ ├── SmtpTask.java
│ │ │ │ ├── SmtpTaskUtils.java
│ │ │ │ └── SmtpTaskV2.java
│ │ │ └── test/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── plugins/
│ │ │ │ └── smtp/
│ │ │ │ ├── SmtpTaskTest.java
│ │ │ │ └── SmtpTaskV2Test.java
│ │ │ └── resources/
│ │ │ ├── attahcment.txt
│ │ │ ├── logback.xml
│ │ │ └── test.mustache
│ │ ├── throw/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── plugins/
│ │ │ └── throwex/
│ │ │ ├── ConcordException.java
│ │ │ ├── ThrowExceptionTask.java
│ │ │ └── ThrowExceptionTaskV2.java
│ │ └── variables/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── plugins/
│ │ └── variables/
│ │ ├── VariablesTask.java
│ │ ├── VariablesTaskCommon.java
│ │ └── v2/
│ │ └── VariablesTaskV2.java
│ └── templates/
│ └── ansible/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── filtered-resources/
│ ├── META-INF/
│ │ └── concord/
│ │ └── template.properties
│ ├── _main.js
│ └── processes/
│ └── main.yml
├── policy-engine/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── policyengine/
│ │ ├── AttachmentsPolicy.java
│ │ ├── AttachmentsRule.java
│ │ ├── CheckResult.java
│ │ ├── ConcurrentProcessPolicy.java
│ │ ├── ConcurrentProcessRule.java
│ │ ├── ContainerPolicy.java
│ │ ├── ContainerRule.java
│ │ ├── CronTriggerPolicy.java
│ │ ├── CronTriggerRule.java
│ │ ├── DependencyPolicy.java
│ │ ├── DependencyRewritePolicy.java
│ │ ├── DependencyRewriteRule.java
│ │ ├── DependencyRule.java
│ │ ├── DependencyVersionsPolicy.java
│ │ ├── EffectiveYamlPolicy.java
│ │ ├── EffectiveYamlRule.java
│ │ ├── EntityPolicy.java
│ │ ├── EntityRule.java
│ │ ├── FilePolicy.java
│ │ ├── FileRule.java
│ │ ├── ForkDepthPolicy.java
│ │ ├── ForkDepthRule.java
│ │ ├── JsonStorePolicy.java
│ │ ├── JsonStoreRule.java
│ │ ├── KvPolicy.java
│ │ ├── KvRule.java
│ │ ├── PolicyEngine.java
│ │ ├── PolicyEngineRules.java
│ │ ├── PolicyRules.java
│ │ ├── ProcessCfgPolicy.java
│ │ ├── ProcessTimeoutPolicy.java
│ │ ├── ProcessTimeoutRule.java
│ │ ├── ProtectedTasksPolicy.java
│ │ ├── ProtectedTasksRule.java
│ │ ├── QueueRule.java
│ │ ├── RawPayloadPolicy.java
│ │ ├── RawPayloadRule.java
│ │ ├── RuntimePolicy.java
│ │ ├── RuntimeRule.java
│ │ ├── StatePolicy.java
│ │ ├── StateRule.java
│ │ ├── TaskPolicy.java
│ │ ├── TaskRule.java
│ │ ├── Utils.java
│ │ ├── WorkspacePolicy.java
│ │ ├── WorkspaceRule.java
│ │ └── package-info.java
│ └── test/
│ ├── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── policyengine/
│ │ ├── ContainerPolicyTest.java
│ │ ├── DependencyPolicyTest.java
│ │ ├── DependencyRewritePolicyTest.java
│ │ ├── EffectiveYamlPolicyTest.java
│ │ ├── PolicyEngineRulesTest.java
│ │ ├── QueueRuleTest.java
│ │ ├── RawPayloadPolicyTest.java
│ │ ├── TaskPolicyTest.java
│ │ ├── UtilsTest.java
│ │ └── WorkspacePolicyTest.java
│ └── resources/
│ └── com/
│ └── walmartlabs/
│ └── concord/
│ └── policyengine/
│ ├── policy1.json
│ ├── policy2.json
│ ├── policy3.json
│ ├── policy4.json
│ ├── policy5.json
│ └── policy6.json
├── pom.xml
├── repository/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── repository/
│ │ ├── FetchRequest.java
│ │ ├── FetchResult.java
│ │ ├── GitCliRepositoryProvider.java
│ │ ├── GitClient.java
│ │ ├── GitClientConfiguration.java
│ │ ├── LastModifiedSnapshot.java
│ │ ├── MavenRepositoryProvider.java
│ │ ├── Repository.java
│ │ ├── RepositoryAccessJournal.java
│ │ ├── RepositoryCache.java
│ │ ├── RepositoryException.java
│ │ ├── RepositoryProvider.java
│ │ ├── RepositoryProviders.java
│ │ └── Snapshot.java
│ └── test/
│ ├── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── repository/
│ │ ├── GitClientFetch2Test.java
│ │ ├── GitClientFetchTest.java
│ │ ├── GitClientRealTest.java
│ │ ├── GitClientSpeedTest.java
│ │ ├── GitUriTest.java
│ │ └── GitUtils.java
│ └── resources/
│ ├── branch-1/
│ │ └── branch-1.txt
│ ├── logback.xml
│ ├── master/
│ │ └── master.txt
│ ├── tag-1/
│ │ └── tag-1.txt
│ ├── test4/
│ │ ├── concord.yml
│ │ └── new_concord.yml
│ └── test5/
│ ├── 0_concord.yml
│ ├── 1_concord.yml
│ └── 2_concord.yml
├── runtime/
│ ├── common/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── runtime/
│ │ │ └── common/
│ │ │ ├── FormService.java
│ │ │ ├── ObjectTruncater.java
│ │ │ ├── ProcessHeartbeat.java
│ │ │ ├── SensitiveDataMasker.java
│ │ │ ├── SerializationUtils.java
│ │ │ ├── StateManager.java
│ │ │ ├── cfg/
│ │ │ │ ├── ApiConfiguration.java
│ │ │ │ ├── CommonProcessConfiguration.java
│ │ │ │ ├── DependencyManagerConfiguration.java
│ │ │ │ ├── DockerConfiguration.java
│ │ │ │ ├── LoggingConfiguration.java
│ │ │ │ ├── RunnerConfiguration.java
│ │ │ │ └── SecurityManagerConfiguration.java
│ │ │ ├── injector/
│ │ │ │ ├── InjectorUtils.java
│ │ │ │ ├── InstanceId.java
│ │ │ │ └── TaskHolder.java
│ │ │ └── logger/
│ │ │ ├── LogSegmentDeserializer.java
│ │ │ ├── LogSegmentHeader.java
│ │ │ ├── LogSegmentSerializer.java
│ │ │ └── LogSegmentStatus.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── runtime/
│ │ └── common/
│ │ ├── ObjectTruncaterTest.java
│ │ └── SensitiveDataMaskerTest.java
│ ├── loader/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── process/
│ │ └── loader/
│ │ ├── DelegatingProjectLoader.java
│ │ ├── ImportsNormalizer.java
│ │ ├── ProjectLoader.java
│ │ ├── ProjectLoaderUtils.java
│ │ ├── StandardRuntimeTypes.java
│ │ └── UnsupportedRuntimeTypeException.java
│ ├── model/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── com/
│ │ └── walmartlabs/
│ │ └── concord/
│ │ └── runtime/
│ │ └── model/
│ │ ├── AllowNulls.java
│ │ ├── Configuration.java
│ │ ├── EffectiveConfiguration.java
│ │ ├── EffectiveProcessDefinitionProvider.java
│ │ ├── ExpressionStep.java
│ │ ├── FlowDefinition.java
│ │ ├── Form.java
│ │ ├── FormField.java
│ │ ├── Location.java
│ │ ├── Options.java
│ │ ├── ProcessDefinition.java
│ │ ├── Profile.java
│ │ ├── SourceMap.java
│ │ ├── Step.java
│ │ ├── TaskCallStep.java
│ │ └── Trigger.java
│ ├── v1/
│ │ ├── README.md
│ │ ├── impl/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── walmartlabs/
│ │ │ │ │ └── concord/
│ │ │ │ │ └── runner/
│ │ │ │ │ ├── ApiClientFactoryImpl.java
│ │ │ │ │ ├── ApiClientFactoryProvider.java
│ │ │ │ │ ├── CheckpointManager.java
│ │ │ │ │ ├── ConcordSecurityManager.java
│ │ │ │ │ ├── ContextUtils.java
│ │ │ │ │ ├── DefaultVariablesConverter.java
│ │ │ │ │ ├── DependencyManagerConfigurationProvider.java
│ │ │ │ │ ├── DependencyManagerImpl.java
│ │ │ │ │ ├── ExecutorServiceProvider.java
│ │ │ │ │ ├── LockServiceImpl.java
│ │ │ │ │ ├── Main.java
│ │ │ │ │ ├── ObjectStorageImpl.java
│ │ │ │ │ ├── OutVariablesParser.java
│ │ │ │ │ ├── PolicyEngineHolder.java
│ │ │ │ │ ├── ProcessApiClient.java
│ │ │ │ │ ├── SecretServiceImpl.java
│ │ │ │ │ ├── SerializationUtils.java
│ │ │ │ │ ├── TaskCallInterceptor.java
│ │ │ │ │ ├── TaskClasses.java
│ │ │ │ │ ├── VariablesSnapshotListener.java
│ │ │ │ │ └── engine/
│ │ │ │ │ ├── ApiConfigurationImpl.java
│ │ │ │ │ ├── CheckpointTask.java
│ │ │ │ │ ├── ConcordExecutionContextFactory.java
│ │ │ │ │ ├── ConcordFormService.java
│ │ │ │ │ ├── DefaultElementEventProcessor.java
│ │ │ │ │ ├── DefaultEventReportingService.java
│ │ │ │ │ ├── DockerServiceImpl.java
│ │ │ │ │ ├── ElementEventProcessor.java
│ │ │ │ │ ├── EngineFactory.java
│ │ │ │ │ ├── EventConfiguration.java
│ │ │ │ │ ├── EventReportingService.java
│ │ │ │ │ ├── FileEventStorage.java
│ │ │ │ │ ├── FileFormStorage.java
│ │ │ │ │ ├── FilePersistenceManager.java
│ │ │ │ │ ├── FormUtilsTask.java
│ │ │ │ │ ├── LogTagMetadataProvider.java
│ │ │ │ │ ├── NopElementEventProcessor.java
│ │ │ │ │ ├── PolicyPreprocessor.java
│ │ │ │ │ ├── ProcessElementInterceptor.java
│ │ │ │ │ ├── ProcessErrorProcessor.java
│ │ │ │ │ ├── ProcessMetadataProcessor.java
│ │ │ │ │ ├── ProcessOutVariables.java
│ │ │ │ │ ├── ProcessOutVariablesListener.java
│ │ │ │ │ ├── ProtectedVarContext.java
│ │ │ │ │ ├── ResourceResolverImpl.java
│ │ │ │ │ ├── TaskEventInterceptor.java
│ │ │ │ │ ├── TaskInterceptor.java
│ │ │ │ │ ├── TaskRegistry.java
│ │ │ │ │ └── el/
│ │ │ │ │ ├── InjectVariableELResolver.java
│ │ │ │ │ ├── ResolverUtils.java
│ │ │ │ │ └── TaskResolver.java
│ │ │ │ └── resources/
│ │ │ │ └── logback.xml
│ │ │ └── test/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ └── runner/
│ │ │ │ └── engine/
│ │ │ │ ├── ConcordExecutionContextTest.java
│ │ │ │ ├── EventReportingServiceTest.java
│ │ │ │ ├── PolicyPreprocessorTest.java
│ │ │ │ └── el/
│ │ │ │ ├── AbstractElResolverTest.java
│ │ │ │ ├── InjectVariableELResolverTest.java
│ │ │ │ └── TaskResolverTest.java
│ │ │ └── resources/
│ │ │ └── com/
│ │ │ └── walmartlabs/
│ │ │ └── concord/
│ │ │ └── runner/
│ │ │ └── policy.json
│ │ ├── model/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── walmartlabs/
│ │ │ │ └── concord/
│ │ │ │ ├── project/
│ │ │ │ │ ├── ImportsNormalizer.java
│ │ │ │ │ ├── InternalConstants.java
│ │ │ │ │ ├── NoopImportsNormalizer.java
│ │ │ │ │ ├── ProjectLoader.java
│ │ │ │ │ ├── model/
│ │ │ │ │ │ ├── Profile.java
│ │ │ │ │ │ ├── ProjectDefinition.java
│ │ │ │ │ │ ├── ProjectDefinitionUtils.java
│ │ │ │ │ │ ├── Resources.java
│ │ │ │ │ │ └── Trigger.java
│ │ │ │ │ └── yaml/
│ │ │ │ │ ├── Atom.java
│ │ │ │ │ ├── Grammar.java
│ │ │ │ │ ├── KV.java
│ │ │ │ │ ├── ListInput.java
│ │ │ │ │ ├── YamlConverterException.java
│ │ │ │ │ ├── YamlDeserializers.java
│ │ │ │ │ ├── YamlFormConverter.java
│ │ │ │ │ ├── YamlImportConverter.java
│ │ │ │ │ ├── YamlParser.java
│ │ │ │ │ ├── YamlParserException.java
│ │ │ │ │ ├── YamlProcessConverter.java
│ │ │ │ │ ├── YamlProjectConverter.java
│ │ │ │ │ ├── YamlResourcesConverter.java
│ │ │ │ │ ├── YamlTriggersConverter.java
│ │ │ │ │ ├── converter/
│ │ │ │ │ │ ├── Chunk.java
│ │ │ │ │ │ ├── ConverterContext.java
│ │ │ │ │ │ ├── DockerOptionsConverter.java
│ │ │ │ │ │ ├── StepConverter.java
│ │ │ │ │ │ ├── YamlCallConverter.java
│ │ │ │ │ │ ├── YamlCheckpointConverter.java
│ │ │ │ │ │ ├── YamlDockerStepConverter.java
│ │ │ │ │ │ ├── YamlEventConverter.java
│ │ │ │ │ │ ├── YamlExitConverter.java
│ │ │ │ │ │ ├── YamlExpressionStepConverter.java
│ │ │ │ │ │ ├── YamlFormCallConverter.java
│ │ │ │ │ │ ├── YamlGroupConverter.java
│ │ │ │ │ │ ├── YamlIfExprConverter.java
│ │ │ │ │ │ ├── YamlReturnConverter.java
│ │ │ │ │ │ ├── YamlScriptConverter.java
│ │ │ │ │ │ ├── YamlSetVariablesStepConverter.java
│ │ │ │ │ │ ├── YamlSwitchExprConverter.java
│ │ │ │ │ │ ├── YamlTaskShortStepConverter.java
│ │ │ │ │ │ └── YamlTaskStepConverter.java
│ │ │ │ │ ├── model/
│ │ │ │ │ │ ├── YamlCall.java
│ │ │ │ │ │ ├── YamlCheckpoint.java
│ │ │ │ │ │ ├── YamlDe
================================================
FILE CONTENTS
================================================
================================================
FILE: .codex
================================================
================================================
FILE: .gitattributes
================================================
*.min.js binary
*.min.css binary
================================================
FILE: .github/settings.xml
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>gha</id>
</profile>
</profiles>
</settings>
================================================
FILE: .github/workflows/build.yml
================================================
name: build
on:
push:
branches: [ 'master' ]
pull_request:
branches: [ 'master' ]
concurrency:
group: ${{ github.ref }}-build
cancel-in-progress: true
jobs:
check-labels:
runs-on: ubuntu-latest
outputs:
skip: ${{ steps.check.outputs.skip }}
steps:
- name: Check PR labels
id: check
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
labels=$(jq -r '.pull_request.labels | map(.name) | join(",")' "$GITHUB_EVENT_PATH")
if [[ "$labels" == *"[no ci]"* ]]; then
echo "skip=true" >> $GITHUB_OUTPUT
else
echo "skip=false" >> $GITHUB_OUTPUT
fi
else
echo "skip=false" >> $GITHUB_OUTPUT
echo "skip_tests=false" >> $GITHUB_OUTPUT
fi
build:
needs: check-labels
if: needs.check-labels.outputs.skip == 'false'
env:
WORK: ${{ github.workspace }}/tmp
MAVEN_REPO_LOCAL: ${{ github.workspace }}/tmp/.m2/repository
strategy:
matrix:
profile: [ 'jdk17', 'jdk17-aarch64' ]
include:
- jdk_version: '17'
- profile: 'jdk17'
runs_on: ubuntu-24.04
- profile: 'jdk17-aarch64'
runs_on: ubuntu-24.04-arm
fail-fast: false
runs-on: ${{ matrix.runs_on }}
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
with:
driver: docker
- name: Login to DockerHub
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
if: github.event.pull_request.head.repo.full_name == 'walmartlabs/concord'
with:
username: ${{ secrets.OSS_DOCKERHUB_USERNAME }}
password: ${{ secrets.OSS_DOCKERHUB_PASSWORD }}
- name: Set up JDK
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
java-version: '${{ matrix.jdk_version }}'
distribution: 'temurin'
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Restore Maven cache
id: restore-maven-cache
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ${{ env.MAVEN_REPO_LOCAL }}
key: ${{ runner.os }}-maven-${{ matrix.profile }}-${{ hashFiles('**/pom.xml', '.github/settings.xml') }}
restore-keys: |
${{ runner.os }}-maven-${{ matrix.profile }}-
${{ runner.os }}-maven-
- name: Build and test with Maven
env:
SKIP_DOCKER_TESTS: "true"
run: |
mkdir -p "${WORK}" "${MAVEN_REPO_LOCAL}"
chmod 1777 "${WORK}"
./mvnw -s .github/settings.xml -B clean install \
-Dmaven.repo.local="${MAVEN_REPO_LOCAL}" \
-Djava.io.tmpdir="${WORK}" \
-Pgha -Pdocker -Pit -P${{ matrix.profile }}
- name: Remove local Concord artifacts from Maven cache
if: success()
run: rm -rf "${MAVEN_REPO_LOCAL}/com/walmartlabs/concord"
- name: Save Maven cache
if: success() && steps.restore-maven-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ${{ env.MAVEN_REPO_LOCAL }}
key: ${{ steps.restore-maven-cache.outputs.cache-primary-key }}
================================================
FILE: .github/workflows/docker-multiarch.yml
================================================
name: docker-multiarch
on:
workflow_dispatch:
inputs:
ref:
description: Release tag to build, e.g. 2.39.0
required: true
type: string
docker_tag:
description: Docker tag to apply to the published images
required: true
type: string
docker_namespace:
description: Docker Hub namespace to publish into
required: true
default: walmartlabs
type: string
pull_request:
branches: [ 'master' ]
permissions:
contents: read
concurrency:
group: docker-multiarch-${{ github.event.pull_request.number || github.event.inputs.docker_tag || github.event.inputs.ref || github.ref }}
cancel-in-progress: true
jobs:
check-labels:
runs-on: ubuntu-latest
outputs:
skip: ${{ steps.check.outputs.skip }}
steps:
- name: Check PR labels
id: check
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
labels=$(jq -r '.pull_request.labels | map(.name) | join(",")' "$GITHUB_EVENT_PATH")
if [[ "$labels" == *"[no ci]"* ]]; then
echo "skip=true" >> $GITHUB_OUTPUT
else
echo "skip=false" >> $GITHUB_OUTPUT
fi
else
echo "skip=false" >> $GITHUB_OUTPUT
fi
build:
needs: check-labels
if: needs.check-labels.outputs.skip == 'false'
runs-on: ubuntu-24.04
timeout-minutes: 120
env:
WORK: ${{ github.workspace }}/tmp
MAVEN_REPO_LOCAL: ${{ github.workspace }}/tmp/.m2/repository
IMAGE_PLATFORMS: linux/amd64,linux/arm64
LOCAL_REGISTRY: 127.0.0.1:5000
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.ref || github.event.pull_request.head.sha }}
- name: Resolve build target
run: |
if [[ "${{ github.event_name }}" == 'workflow_dispatch' ]]; then
build_ref='${{ github.event.inputs.ref }}'
build_tag='${{ github.event.inputs.docker_tag }}'
docker_namespace='${{ github.event.inputs.docker_namespace }}'
maven_also_make=''
release_tag="${build_ref#refs/tags/}"
if ! [[ "${release_tag}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Workflow dispatch expects a release tag like '2.39.0', got '${build_ref}'." >&2
exit 1
fi
git fetch --depth=1 origin "refs/tags/${release_tag}:refs/tags/${release_tag}"
tag_commit="$(git rev-parse "refs/tags/${release_tag}^{commit}")"
head_commit="$(git rev-parse HEAD)"
if [[ "${tag_commit}" != "${head_commit}" ]]; then
echo "Workflow dispatch ref '${build_ref}' resolved to ${head_commit}, but tag '${release_tag}' points to ${tag_commit}." >&2
exit 1
fi
else
build_ref='${{ github.event.pull_request.head.sha }}'
build_tag="pr-${{ github.event.pull_request.number }}-$(git rev-parse --short=12 HEAD)"
docker_namespace="${LOCAL_REGISTRY}/walmartlabs"
maven_also_make='-am'
fi
if ! [[ "${build_tag}" =~ ^[A-Za-z0-9_][A-Za-z0-9._-]{0,127}$ ]]; then
echo "Tag '${build_tag}' is not a valid Docker tag." >&2
exit 1
fi
if [[ -z "${docker_namespace}" ]]; then
echo "Docker namespace must not be empty." >&2
exit 1
fi
if [[ "${{ github.event_name }}" == 'workflow_dispatch' ]] && [[ "${docker_namespace}" == */* ]]; then
echo "Workflow dispatch expects a Docker Hub namespace only, e.g. 'walmartlabs'." >&2
exit 1
fi
echo "BUILD_TAG=${build_tag}" >> "$GITHUB_ENV"
echo "BUILD_REF=${build_ref}" >> "$GITHUB_ENV"
echo "DOCKER_NAMESPACE=${docker_namespace}" >> "$GITHUB_ENV"
echo "MAVEN_ALSO_MAKE=${maven_also_make}" >> "$GITHUB_ENV"
echo "Using BUILD_REF=${build_ref}"
echo "Using BUILD_TAG=${build_tag}"
echo "Using DOCKER_NAMESPACE=${docker_namespace}"
echo "Using MAVEN_ALSO_MAKE=${maven_also_make}"
git rev-parse HEAD
- name: Restore Maven cache
id: restore-maven-cache
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ${{ env.MAVEN_REPO_LOCAL }}
key: ${{ runner.os }}-maven-docker-multiarch-${{ hashFiles('**/pom.xml', '.github/settings.xml') }}
restore-keys: |
${{ runner.os }}-maven-docker-multiarch-
${{ runner.os }}-maven-
- name: Set up JDK
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
java-version: '17'
distribution: 'temurin'
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
with:
driver: docker-container
driver-opts: |
network=host
- name: Start local registry
if: github.event_name != 'workflow_dispatch'
run: |
docker run -d -p 5000:5000 --name registry registry:2
for i in $(seq 1 30); do
if curl -fsS "http://${LOCAL_REGISTRY}/v2/" >/dev/null; then
exit 0
fi
sleep 1
done
docker logs registry
exit 1
- name: Login to DockerHub
if: github.event_name == 'workflow_dispatch'
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
with:
username: ${{ secrets.OSS_DOCKERHUB_USERNAME }}
password: ${{ secrets.OSS_DOCKERHUB_PASSWORD }}
- name: Prepare Docker image contexts
run: |
mkdir -p "${WORK}" "${MAVEN_REPO_LOCAL}"
chmod 1777 "${WORK}"
maven_reactor_args=()
if [[ -n "${MAVEN_ALSO_MAKE}" ]]; then
maven_reactor_args+=("${MAVEN_ALSO_MAKE}")
fi
./mvnw -s .github/settings.xml -B clean package \
-Dmaven.repo.local="${MAVEN_REPO_LOCAL}" \
-Djava.io.tmpdir="${WORK}" \
-DskipTests \
-Pgha \
-pl docker-images/base,docker-images/ansible,docker-images/agent,docker-images/server,docker-images/agent-operator \
"${maven_reactor_args[@]}"
- name: Build Docker images
working-directory: docker-images
run: |
platform_args=()
IFS=',' read -ra platforms <<< "${IMAGE_PLATFORMS}"
for platform in "${platforms[@]}"; do
platform="${platform//[[:space:]]/}"
if [[ -n "${platform}" ]]; then
platform_args+=(--set "*.platform=${platform}")
fi
done
docker buildx bake \
--push \
"${platform_args[@]}" \
--var "DOCKER_NAMESPACE=${DOCKER_NAMESPACE}" \
--var "DOCKER_TAG=${BUILD_TAG}" \
--var "JDK_VERSION=17"
- name: Verify multi-arch manifests
run: |
images=(
concord-base
concord-ansible
concord-agent
concord-server
concord-agent-operator
)
for image in "${images[@]}"; do
ref="${DOCKER_NAMESPACE}/${image}:${BUILD_TAG}"
echo "Inspecting ${ref}"
output=$(docker buildx imagetools inspect "${ref}")
printf '%s\n' "${output}"
printf '%s\n' "${output}" | grep -q 'linux/amd64'
printf '%s\n' "${output}" | grep -q 'linux/arm64'
done
- name: Remove local Concord artifacts from Maven cache
if: success()
run: rm -rf "${MAVEN_REPO_LOCAL}/com/walmartlabs/concord"
- name: Save Maven cache
if: success() && steps.restore-maven-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ${{ env.MAVEN_REPO_LOCAL }}
key: ${{ steps.restore-maven-cache.outputs.cache-primary-key }}
================================================
FILE: .gitignore
================================================
*.iml
*.ipr
*.iws
*.retry
.*.swo
.*.swp
.arcconfig
.classpath
.DS_Store
.idea
.pmd
.pmdruleset.xml
.project
.settings
.vagrant
.vscode
buildNumber.properties
console2/build
flow-typed/
jmeter.log
nb-configuration.xml
node_modules/
nohup.out
npm-debug.log
pom.xml.bak
pom.xml.next
pom.xml.versionsBackup
release.properties
target/
yarn.lock
.mvn/wrapper/maven-wrapper.jar
.java-version
.attach_pid*
dependency-reduced-pom.xml
================================================
FILE: .insights.yml
================================================
team:
- id: 20906
product:
- id: C0AF273F-7470-4A8B-B76E-190F00FFF920
languages:
- JavaScript
- JVM
cloud:
- autoRestart: false
================================================
FILE: .looper/render-settings.sh
================================================
#!/usr/bin/env bash
set -euo pipefail
out="${1:-/dev/stdout}"
required_vars=(
MAVEN_MIRROR
NEXUS_URL
MAVEN_SITE_URL
NODE_DOWNLOAD_URL
NPM_INSTALL_CMD
AGENT_IMAGE
ANSIBLE_IMAGE
CONSOLE_IMAGE
DB_IMAGE
DIND_IMAGE
OLDAP_IMAGE
S3MOCK_IMAGE
SELENIUM_IMAGE
SERVER_IMAGE
SOCAT_IMAGE
)
for name in "${required_vars[@]}"; do
if [ -z "${!name:-}" ]; then
echo "Missing required environment variable: ${name}" >&2
exit 1
fi
done
xml_escape() {
printf '%s' "$1" | sed \
-e 's/&/\&/g' \
-e 's/"/\"/g' \
-e "s/'/\'/g" \
-e 's/</\</g' \
-e 's/>/\>/g'
}
cat >"${out}" <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<mirrors>
<mirror>
<id>walmart-gec</id>
<mirrorOf>external:*</mirrorOf>
<url>$(xml_escape "${MAVEN_MIRROR}")</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>looper</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<scm.connection>\${env.SCM_CONNECTION}</scm.connection>
</properties>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>walmart</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<node.downloadRoot>$(xml_escape "${NODE_DOWNLOAD_URL}")</node.downloadRoot>
<npm.installCmd>$(xml_escape "${NPM_INSTALL_CMD}")</npm.installCmd>
<public.serverId>walmart-gec</public.serverId>
<public.nexusUrl>$(xml_escape "${NEXUS_URL}")</public.nexusUrl>
<public-release.serverId>\${public.serverId}</public-release.serverId>
<public-release.url>\${public.nexusUrl}/content/repositories/devtools</public-release.url>
<public-snapshot.serverId>\${public.serverId}</public-snapshot.serverId>
<public-snapshot.url>\${public.nexusUrl}/content/repositories/devtools-snapshots</public-snapshot.url>
<site.id>mvn-site</site.id>
<site.url>$(xml_escape "${MAVEN_SITE_URL}")</site.url>
<agent.image>$(xml_escape "${AGENT_IMAGE}")</agent.image>
<ansible.image>$(xml_escape "${ANSIBLE_IMAGE}")</ansible.image>
<console.image>$(xml_escape "${CONSOLE_IMAGE}")</console.image>
<db.image>$(xml_escape "${DB_IMAGE}")</db.image>
<dind.image>$(xml_escape "${DIND_IMAGE}")</dind.image>
<oldap.image>$(xml_escape "${OLDAP_IMAGE}")</oldap.image>
<s3mock.image>$(xml_escape "${S3MOCK_IMAGE}")</s3mock.image>
<selenium.image>$(xml_escape "${SELENIUM_IMAGE}")</selenium.image>
<server.image>$(xml_escape "${SERVER_IMAGE}")</server.image>
<socat.image>$(xml_escape "${SOCAT_IMAGE}")</socat.image>
</properties>
</profile>
</profiles>
</settings>
EOF
================================================
FILE: .looper/settings.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<mirrors>
<mirror>
<id>walmart-gec</id>
<mirrorOf>external:*</mirrorOf>
<url>${env.MAVEN_MIRROR}</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>looper</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<scm.connection>${env.SCM_CONNECTION}</scm.connection>
</properties>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>walmart</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<node.downloadRoot>${env.NODE_DOWNLOAD_URL}</node.downloadRoot>
<npm.installCmd>${env.NPM_INSTALL_CMD}</npm.installCmd>
<public.serverId>walmart-gec</public.serverId>
<public.nexusUrl>${env.NEXUS_URL}</public.nexusUrl>
<public-release.serverId>${public.serverId}</public-release.serverId>
<public-release.url>${public.nexusUrl}/content/repositories/devtools</public-release.url>
<public-snapshot.serverId>${public.serverId}</public-snapshot.serverId>
<public-snapshot.url>${public.nexusUrl}/content/repositories/devtools-snapshots</public-snapshot.url>
<site.id>mvn-site</site.id>
<site.url>${env.MAVEN_SITE_URL}</site.url>
<agent.image>${env.AGENT_IMAGE}</agent.image>
<ansible.image>${env.ANSIBLE_IMAGE}</ansible.image>
<console.image>${env.CONSOLE_IMAGE}</console.image>
<db.image>${env.DB_IMAGE}</db.image>
<dind.image>${env.DIND_IMAGE}</dind.image>
<oldap.image>${env.OLDAP_IMAGE}</oldap.image>
<s3mock.image>${env.S3MOCK_IMAGE}</s3mock.image>
<selenium.image>${env.SELENIUM_IMAGE}</selenium.image>
<server.image>${env.SERVER_IMAGE}</server.image>
<socat.image>${env.SOCAT_IMAGE}</socat.image>
</properties>
</profile>
</profiles>
</settings>
================================================
FILE: .looper.yml
================================================
inherit: job:///walmart-concord
================================================
FILE: .mvn/wrapper/maven-wrapper.properties
================================================
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
wrapperVersion=3.3.2
distributionType=only-script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
================================================
FILE: .sentinelpolicy
================================================
codescanaccess=j3clark,v0v001r,msprin1
maxmedium=1
================================================
FILE: AGENTS.md
================================================
# AGENTS
Start here:
- [it/README.md](it/README.md)
- [README.md](README.md)
- [NOTES.md](NOTES.md)
Working approach:
- Read the nearest module `README.md` before editing code in that area.
- Keep `console2/`, backend modules, and runtime/agent changes separated unless the task is explicitly cross-cutting.
- When investigating `it/console` UI test failures, inspect screenshots from `it/console/target/screenshots/` and prefer native vision/image tools when available; use OCR or terminal renderers only as fallback.
================================================
FILE: CHANGELOG.md
================================================
# Change Log
## [2.40.0] - 2026-04-28
### Added
- runtime-v2: initial support for JSON schema validation for
task in/out parameters
([#1263](https://github.com/walmartlabs/concord/pull/1263));
- concord-cli: basic support for suspend/resume and forms
([#1295](https://github.com/walmartlabs/concord/pull/1295));
- project: build multi-arch Docker images
([#1299](https://github.com/walmartlabs/concord/pull/1299)).
### Changed
- concord-console2: remove redux-saga dependency
([#1290](https://github.com/walmartlabs/concord/pull/1290));
- project: respect PR labels in docker-multiarch flow
([#1304](https://github.com/walmartlabs/concord/pull/1304));
- concord-console2: remove redux dependency and dead code
([#1306](https://github.com/walmartlabs/concord/pull/1306));
- project: update dependencies
([#1310](https://github.com/walmartlabs/concord/pull/1310));
- concord-console2: migrate to react-router v7
([#1307](https://github.com/walmartlabs/concord/pull/1307));
- concord-server: assert permissions for process details
([#1309](https://github.com/walmartlabs/concord/pull/1309)).
## [2.39.0] - 2026-04-09
### Added
- concord-server, queue-client: include requirements in
ProcessResponse
([#1287](https://github.com/walmartlabs/concord/pull/1287));
- concord-server: add EffectiveYamlPolicy to control
rendering and persisting of effective.concord.yml
([#1301](https://github.com/walmartlabs/concord/pull/1301)).
### Changed
- project: change label for arm64 GHA runners, fix more
flaky tests
([#1268](https://github.com/walmartlabs/concord/pull/1268)).
- project: update groovy test dependencies to 5.X
([#1280](https://github.com/walmartlabs/concord/pull/1280));
- project: upgrade concord-maven-plugin to 0.0.37
([#1283](https://github.com/walmartlabs/concord/pull/1283));
- concord-server: add GitHub user mapping for user when
found via fallback lookup
([#1285](https://github.com/walmartlabs/concord/pull/1285));
- console2: upgrade to Vite 8
([#1286](https://github.com/walmartlabs/concord/pull/1286));
- project: add AGENTS.md, update READMEs and notes
([#1288](https://github.com/walmartlabs/concord/pull/1288));
- project: enable useNativeGit in git-commit-id-plugin
([#1289](https://github.com/walmartlabs/concord/pull/1289));
- project: update Node version
([#1291](https://github.com/walmartlabs/concord/pull/1291));
- project: upgrade and pin versions of GHA actions
([#1292](https://github.com/walmartlabs/concord/pull/1292));
- concord-server-it: attempt to fix CronIT flakiness
([#1293](https://github.com/walmartlabs/concord/pull/1293));
- project: update dependencies
([#1294](https://github.com/walmartlabs/concord/pull/1294));
- concord-console2: pass test-ids directly instead of using
wrappers
([#1296](https://github.com/walmartlabs/concord/pull/1296));
- project: improve mvnd (and Maven 4) support
([#1297](https://github.com/walmartlabs/concord/pull/1297));
- console2: update dependencies
([#1302](https://github.com/walmartlabs/concord/pull/1302)).
## [2.38.0] - 2026-03-11
### Changed
- server: make git allowedSchemes configurable and support
non-string values in test server config
([#12282](https://github.com/walmartlabs/concord/pull/1282));
- common: use abstract MappingAuthConfig for thenCallRealMethod()
support on mocks
([#1278](https://github.com/walmartlabs/concord/pull/1278)).
## [2.37.0] - 2026-03-05
### Added
- cli: add `--target-dir` option to specify custom payload
target directory
([#1275](https://github.com/walmartlabs/concord/pull/1275));
- cli: allow tasks to interact with remote during local runs
([#1269](https://github.com/walmartlabs/concord/pull/1269));
- repository, server, agent: configurable limit for git cli
output
([#1266](https://github.com/walmartlabs/concord/pull/1266)).
### Changed
- runtime-v2: fix JoinCommand not waiting for threads in
UNWINDING state
([#1277](https://github.com/walmartlabs/concord/pull/1277));
- runtime-v2: fix JoinCommand collecting failed threads from
unrelated parallel blocks
([#1276](https://github.com/walmartlabs/concord/pull/1276));
- console2: fix copyToClipboard is not a function
([#1274](https://github.com/walmartlabs/concord/pull/1274));
- server: validate restored payload IDs on process restart
([#1273](https://github.com/walmartlabs/concord/pull/1273));
- runtime-v2: mask sensitive data in log segment names
([#1272](https://github.com/walmartlabs/concord/pull/1272));
- examples: fix/update runtime-v2 example dependencies
([#1271](https://github.com/walmartlabs/concord/pull/1271));
- project: build with postgres 14 image
([#1148](https://github.com/walmartlabs/concord/pull/1148));
- console2: reduce calls to trigger API
([#1251](https://github.com/walmartlabs/concord/pull/1251)).
## [2.36.0] - 2026-02-04
### Added
- concord-server: add ldap.trustAllCertificates, disable by
default
([#1261](https://github.com/walmartlabs/concord/pull/1261));
- concord-cli: add support for .gitignore
([#1264](https://github.com/walmartlabs/concord/pull/1264)).
### Changed
- runtime-v2: add 'name' attribute to script call in schema
([#1248](https://github.com/walmartlabs/concord/pull/1248));
- common, server: skip rate limit metrics for null auth id
([#1249](https://github.com/walmartlabs/concord/pull/1249));
- concord-console2: replace some saga usage with hooks
([#1252](https://github.com/walmartlabs/concord/pull/1252));
- project: update dependency versions
([#1253](https://github.com/walmartlabs/concord/pull/1254));
- concord-noderoster: do not build the tarball anymore
([#1257](https://github.com/walmartlabs/concord/pull/1257));
- concord-console-it: add basic tests for team UI
([#1258](https://github.com/walmartlabs/concord/pull/1258));
- project: concord-maven-plugin version up
([#1259](https://github.com/walmartlabs/concord/pull/1259));
- concord-agent: send segmented logs in order logged
([#1260](https://github.com/walmartlabs/concord/pull/1260));
- concord-server: assert user enabled before process restart
or handler
([#1262](https://github.com/walmartlabs/concord/pull/1262));
- project: update testcontainers-concord version
([#1265](https://github.com/walmartlabs/concord/pull/1265)).
## [2.35.0] - 2025-12-29
### Changed
- oidc: handle session invalidation errors
([#1239](https://github.com/walmartlabs/concord/pull/1239));
- concord-server: sanitize escaped unicode nul characters
from events
([#1241](https://github.com/walmartlabs/concord/pull/1241));
- oidc: serialization and mapping fix
([#1245](https://github.com/walmartlabs/concord/pull/1245));
- server, agent: github app installation clone support
([#1242](https://github.com/walmartlabs/concord/pull/1242));
- concord-server: option to look up GH webhook event sender
by email
([#1243](https://github.com/walmartlabs/concord/pull/1243));
- noderoster: configurable host cache size and eviction duration
([#1246](https://github.com/walmartlabs/concord/pull/1246));
- concord-server: inject ProcessKeyCache interface instead of
implementation to utilize singleton scope
([#1247](https://github.com/walmartlabs/concord/pull/1247));
- concord-db, concord-server: cache external app user mapping
in database
([#1244](https://github.com/walmartlabs/concord/pull/1244)).
## [2.34.0] - 2025-10-29
### Added
- runtime-v2: allow plugins to supply custom EL functions
([#1225](https://github.com/walmartlabs/concord/pull/1225));
- runtime-v2: allow paths in SensitiveData keys
([#1228](https://github.com/walmartlabs/concord/pull/1228));
- runtime-v2: add EL function to mark strings as sensitive
([#1230](https://github.com/walmartlabs/concord/pull/1230)).
### Changed
- concord-console2: migrate off CRA to Vite
([#1231](https://github.com/walmartlabs/concord/pull/1231));
- concord-server-it: fix testFailedHosts for modern Ansible
versions
([#1232](https://github.com/walmartlabs/concord/pull/1232));
- concord-server: retrieve user ldap groups for form access
assertion
([#1233](https://github.com/walmartlabs/concord/pull/1233));
- project: update dependencies
([#1234](https://github.com/walmartlabs/concord/pull/1234));
- concord-console2: update dependencies, README
([#1235](https://github.com/walmartlabs/concord/pull/1235));
- concord-server-it: improve test
([#1236](https://github.com/walmartlabs/concord/pull/1236));
- concord-console2: update Node and Vite versions
([#1237](https://github.com/walmartlabs/concord/pull/1237)).
## [2.33.3] - 2025-10-14
### Changed
- repository: fix uri scheme restriction for SSH repo uris
([#1226](https://github.com/walmartlabs/concord/pull/1226));
## [2.33.2] - 2025-10-09
### Changed
- concord-server: fix API key creation for the current user
([#1222](https://github.com/walmartlabs/concord/pull/1222));
## [2.33.1] - 2025-10-06
### Changed
- pfed-sso: upgrade nimbus-jose-jwt version
([#1219](https://github.com/walmartlabs/concord/pull/1219));
- server: fix usernameSignature generation
([#1221](https://github.com/walmartlabs/concord/pull/1221));
## [2.33.0] - 2025-09-22
### Added
- ansible-tasks: support inventories specified in configFile
([#1216](https://github.com/walmartlabs/concord/pull/1216)).
### Changed
- project: use JSch fork
([#1210](https://github.com/walmartlabs/concord/pull/1210));
- slack-tasks: update readme with required oauth scope info
([#1213](https://github.com/walmartlabs/concord/pull/1213));
- it: do not archive deps.dir into payloads
([#1214](https://github.com/walmartlabs/concord/pull/1214));
- ansible-tasks: remove ini4j dependency
([#1215](https://github.com/walmartlabs/concord/pull/1215));
- concord-server: do not create UserPrincipal for API keys
without userId
([#1218](https://github.com/walmartlabs/concord/pull/1218)).
### Breaking
- oidc: remove pac4j dependency. Will cause (de)serialization
issues for SUSPENDED processes with OIDC initiators
([#1217](https://github.com/walmartlabs/concord/pull/1217)).
## [2.32.0] - 2025-08-20
### Added
- concord-cli: support for remote secrets, configurable secrets
providers
([#1143](https://github.com/walmartlabs/concord/pull/1143));
- concord-agent: configurable list of runners
([#1182](https://github.com/walmartlabs/concord/pull/1182));
- concord-cli: add self-update command
([#1198](https://github.com/walmartlabs/concord/pull/1198)).
### Changed
- concord-client2: add Concord-specific media type for
validation errors
([#1199](https://github.com/walmartlabs/concord/pull/1199));
- docker-images: use Debian 12
([#1201](https://github.com/walmartlabs/concord/pull/1201));
- concord-cli: do not call System.exit in RemoteSecretsProvider
([#1202](https://github.com/walmartlabs/concord/pull/1202));
- concord-cli: ignore unknown properties in the CLI config
file
([#1203](https://github.com/walmartlabs/concord/pull/1203));
- resource-task: Use the shared IOUtils assertInPath method
for resource lookups
([#1204](https://github.com/walmartlabs/concord/pull/1204));
- project: enable trimHeaderLine in license-maven-plugin
([#1205](https://github.com/walmartlabs/concord/pull/1205));
- noderoster: optimize event list query
([#1206](https://github.com/walmartlabs/concord/pull/1206));
- concord-common: deprecate IOUtils
([#1208](https://github.com/walmartlabs/concord/pull/1208)).
## [2.31.0] - 2025-08-04
### Added
- concord-tasks: add createApiKey action
([#1194](https://github.com/walmartlabs/concord/pull/1194));
- concord-server: option to specify API key value
([#1195](https://github.com/walmartlabs/concord/pull/1195));
- concord-tasks: add createOrUpdateApiKey action
([#1196](https://github.com/walmartlabs/concord/pull/1196)).
### Changed
- concord-runtime-model: more flexible interfaces, simplify code
([#1184](https://github.com/walmartlabs/concord/pull/1184));
- project: fix typo
([#1191](https://github.com/walmartlabs/concord/pull/1191));
- runtime-v2: additional error logging when cloning state fails
([#1192](https://github.com/walmartlabs/concord/pull/1192));
- project: update dependencies
([#1193](https://github.com/walmartlabs/concord/pull/1193)).
## [2.30.0] - 2025-07-12
### Added
- http-task: support sending int values in multipart
requests
([#1174](https://github.com/walmartlabs/concord/pull/1174));
- concord-server: config option to disable template script
processing
([#1176](https://github.com/walmartlabs/concord/pull/1176));
- common, runtime-v1: add method to assert given path string
resolves in expected parent
([#1179](https://github.com/walmartlabs/concord/pull/1179)).
### Changed
- concord-cli: produce an executable binary again
([#1171](https://github.com/walmartlabs/concord/pull/1171));
- concord-server: allow get user for concordSystemReader role
([#1173](https://github.com/walmartlabs/concord/pull/1173));
- runtime-v2: return copies in ObjectMapperProvider
([#1175](https://github.com/walmartlabs/concord/pull/1175));
- concord-server: do not log session token
([#1177](https://github.com/walmartlabs/concord/pull/1177));
- concord-server: kill process when resume fails with no
state
([#1178](https://github.com/walmartlabs/concord/pull/1178));
- runtime-v2: validate form name constraints as documented
([#1180](https://github.com/walmartlabs/concord/pull/1180));
- runtime-v1: validate form name constraints as documented
([#1181](https://github.com/walmartlabs/concord/pull/1181));
- runtime-v2: remove unused imports, dead code
([#1185](https://github.com/walmartlabs/concord/pull/1185));
- concord-console2: sort variables in task call details
([#1186](https://github.com/walmartlabs/concord/pull/1186));
- http-task: allow send long multipart with debug enabled
([#1188](https://github.com/walmartlabs/concord/pull/1188));
- concord-server: fix tx in process card dao
([#1189](https://github.com/walmartlabs/concord/pull/1189)).
## [2.29.0] - 2025-06-13
### Added
- concord-server: refactor WebSocketChannelManager, allow
message sources in plugins
([#1056](https://github.com/walmartlabs/concord/pull/1056));
- concord-agent: one-shot mode
([#1150](https://github.com/walmartlabs/concord/pull/1150));
- slack-tasks: allow send blocks instead of simple text
([#1161](https://github.com/walmartlabs/concord/pull/1161));
- concord-server, concord-console2: add console.cfgFile
config parameter
([#1166](https://github.com/walmartlabs/concord/pull/1166));
- runtime-v2: support expressions for output variables in
call step
([#1170](https://github.com/walmartlabs/concord/pull/1170)).
### Changed
- concord-server, concord-console2: use webapp plugin
([#1154](https://github.com/walmartlabs/concord/pull/1154));
- runtime-v2: add extra check to testThrowParallelWithPayload
([#1157](https://github.com/walmartlabs/concord/pull/1157));
- concord-server-it: reduce agent and server poll delays to
speed up tests
([#1159](https://github.com/walmartlabs/concord/pull/1159));
- concord-runtime-v1/v2-it: reduce agent and server poll
delays to speed up tests
([#1163](https://github.com/walmartlabs/concord/pull/1163));
- runtime-v2: improve handling of @SensitiveData on bridge
methods
([#1164](https://github.com/walmartlabs/concord/pull/1164));
- webapp: fix prefix matching
([#1167](https://github.com/walmartlabs/concord/pull/1167));
- oidc: fix role mapping validation
([#1168](https://github.com/walmartlabs/concord/pull/1168));
- concord-server-db: use our own implementation of session
locks
([#1169](https://github.com/walmartlabs/concord/pull/1169)).
## [2.28.0] - 2025-06-04
### Added
- concord-server: add more repository-level GitHub events
([#1149](https://github.com/walmartlabs/concord/pull/1149));
- runtime-v2: allow marking nested values as sensitive data
([#1151](https://github.com/walmartlabs/concord/pull/1151));
- misc-tasks, runtime-v2: support masking when base64
encoding/decoding sensitive data
([#1155](https://github.com/walmartlabs/concord/pull/1155)).
### Changed
- runtime-v1, runtime-v2: refactor loader structure
([#1147](https://github.com/walmartlabs/concord/pull/1147));
- examples: update description
([#1153](https://github.com/walmartlabs/concord/pull/1153));
- concord-server-it: make dependency resolver timeout same
as in runtime-v2 ITs
([#1156](https://github.com/walmartlabs/concord/pull/1156));
- docker-images: update JDK versions
([#1158](https://github.com/walmartlabs/concord/pull/1158));
- project: use central-publishing-maven-plugin
([#1160](https://github.com/walmartlabs/concord/pull/1160)).
## [2.27.0] - 2025-05-22
### Added
- concord-server: default Git credentials hostname whitelist
([#1139](https://github.com/walmartlabs/concord/pull/1139));
- concord-server: log listening address, starting tasks
([#1141](https://github.com/walmartlabs/concord/pull/1141));
### Changed
- oidc: validate team and role mappings
([#1144](https://github.com/walmartlabs/concord/pull/1144));
- concord-server-db: use session locks in Liquibase
([#1145](https://github.com/walmartlabs/concord/pull/1145));
- concord-server: handle SIGTERM
([#1146](https://github.com/walmartlabs/concord/pull/1146)).
## [2.26.0] - 2025-05-05
### Added
- resource-task: add fromYamlString method interface
([#1125](https://github.com/walmartlabs/concord/pull/1125));
- concord-cli: use jansi, add colors to run output
([#1138](https://github.com/walmartlabs/concord/pull/1138)).
### Changed
- concord-agent, concord-agent-operator: better shutdown hook,
handle SIGTERM
([#1130](https://github.com/walmartlabs/concord/pull/1130));
- project: enable full annotation processing
([#1131](https://github.com/walmartlabs/concord/pull/1131));
- project: fix concord-runner-v2 test discovery
([#1133](https://github.com/walmartlabs/concord/pull/1133));
- project: update testcontainers-concord version
([#1135](https://github.com/walmartlabs/concord/pull/1135));
- concord-server: use ProjectLoader interface, bind explicitly
([#1136](https://github.com/walmartlabs/concord/pull/1136));
- concord-server: split ProcessSecurityContext
([#1137](https://github.com/walmartlabs/concord/pull/1137)).
## [2.25.1] - 2025-04-26
### Changed
- runtime-v2: set lowercase loop mode value in schema
([#1122](https://github.com/walmartlabs/concord/pull/1122));
- http-tasks: refactor tests, support for parallel tests
([#1123](https://github.com/walmartlabs/concord/pull/1123));
- project: update bouncycastle dependency versions
([#1127](https://github.com/walmartlabs/concord/pull/1127));
- concord-server: handle invalid regex in dispatcher
requirements
([#1128](https://github.com/walmartlabs/concord/pull/1128));
- project: downgrade nimbus-jose-jwt
([#1129](https://github.com/walmartlabs/concord/pull/1129)).
## [2.25.0] - 2025-03-23
### Changed
- concord-agent: replace simple immutables with records
([#1091](https://github.com/walmartlabs/concord/pull/1091));
- concord-server, concord-server-db: generate UUIDs on
the server, use UUID v7
([#1106](https://github.com/walmartlabs/concord/pull/1106));
- concord-server: upgrade Shiro to 2.x
([#1107](https://github.com/walmartlabs/concord/pull/1107));
- concord-server, concord-client2: uncomment valid code
([#1108](https://github.com/walmartlabs/concord/pull/1108));
- concord-server: remove more @Named usage
([#1110](https://github.com/walmartlabs/concord/pull/1110));
- concord-server: remove deprecated SecretEntry
([#1111](https://github.com/walmartlabs/concord/pull/1111));
- concord-server: remove deprecated /logs/* endpoint
([#1113](https://github.com/walmartlabs/concord/pull/1113));
- project: update dependencies
([#1114](https://github.com/walmartlabs/concord/pull/1114));
- project: update README
([#1115](https://github.com/walmartlabs/concord/pull/1115));
- docker-images: update JDK versions
([#1116](https://github.com/walmartlabs/concord/pull/1116));
- project: update dependencies
([#1118](https://github.com/walmartlabs/concord/pull/1118));
- project: remove unused dependencies
([#1119](https://github.com/walmartlabs/concord/pull/1119)).
### Breaking
- project: remove client1
([#1013](https://github.com/walmartlabs/concord/pull/1013));
- concord-server: remove deprecated features
([#1112](https://github.com/walmartlabs/concord/pull/1112)).
## [2.24.0] - 2025-03-15
### Added
- plugins: new env and collections tasks
([#1092](https://github.com/walmartlabs/concord/pull/1092));
- slack-tasks: modern bot token support
([#1093](https://github.com/walmartlabs/concord/pull/1093));
- plugins: allow suspend/resume process from concord task
([#1094](https://github.com/walmartlabs/concord/pull/1094));
- concord-server: default message for unexpected errors
([#1096](https://github.com/walmartlabs/concord/pull/1096));
- concord-server, concord-console2: add support for
processExecMode
([#1102](https://github.com/walmartlabs/concord/pull/1102)).
### Changed
- runtime-v2: restrict regex github trigger attributes to
string value
([#1097](https://github.com/walmartlabs/concord/pull/1097));
- mock-tasks: correctly handle mocks in `set variables` step
([#1098](https://github.com/walmartlabs/concord/pull/1098));
- concord-console2: handle non-existent root parent
([#1100](https://github.com/walmartlabs/concord/pull/1100));
- concord-server: disable deprecated process start endpoints
([#1101](https://github.com/walmartlabs/concord/pull/1101));
- concord-plugin: set dry-run mode for subprocesses by
default if the parent process was started in dry-run mode
([#1104](https://github.com/walmartlabs/concord/pull/1104));
- project: update Maven plugin versions
([#1105](https://github.com/walmartlabs/concord/pull/1105)).
## [2.23.0] - 2025-02-26
### Added
- concord-server: allow handle configuration in custom
enqueue processor
([#1088](https://github.com/walmartlabs/concord/pull/1088));
- concord-agent: allow skipping repository state
([#1089](https://github.com/walmartlabs/concord/pull/1089)).
### Changed
- runtime-v2: hide stack trace and log location for
ParallelExecutionException
([#1081](https://github.com/walmartlabs/concord/pull/1081));
- concord-server: close MultipartInput explicitly
([#1084](https://github.com/walmartlabs/concord/pull/1084);
- console2: configure children process columns
([#1085](https://github.com/walmartlabs/concord/pull/1085));
- runtimev2: error message for process arguments evaluation
([#1086](https://github.com/walmartlabs/concord/pull/1086));
- concord-tasks: send archive as a file instead of byte
array
([#1087](https://github.com/walmartlabs/concord/pull/1087));
- concord-server: handle request without cookies
([#1090](https://github.com/walmartlabs/concord/pull/1090)).
## [2.22.0] - 2025-02-14
### Added
- concord-server: order ui_process_card by a new order_id field
([#1075](https://github.com/walmartlabs/concord/pull/1075));
- misc-tasks: add base64 task, shortcut for current ISO timestamp
([#1078](https://github.com/walmartlabs/concord/pull/1078));
- http-tasks: use default variables
([#1080](https://github.com/walmartlabs/concord/pull/1080)).
### Changed
- concord-server: simplify UserInfo, UserInfoProcessor
([#1061](https://github.com/walmartlabs/concord/pull/1061));
- project: update to latest Jetty 12.x
([#1068](https://github.com/walmartlabs/concord/pull/1068));
- concord-agent, runtime-v2: miscellaneous improvements
([#1070](https://github.com/walmartlabs/concord/pull/1070));
- concord-agent-operator: use informers API
([#1072](https://github.com/walmartlabs/concord/pull/1072));
- concord-agent-operator: attempt to improve error logging
([#1073](https://github.com/walmartlabs/concord/pull/1073));
- runtime-v2: do not log stack trace for EL MethodNotFound
exception and unify the error messages
([#1076](https://github.com/walmartlabs/concord/pull/1076));
- project: do not log into Docker in check runs started in
forks
([#1079](https://github.com/walmartlabs/concord/pull/1079));
- concord-server: proper close queue client
([#1082](http://github.com/walmartlabs/concord/pull/1082)).
## [2.21.0] - 2025-01-15
### Added
- concord-repository: support for `mvn://` scheme
([#1063](https://github.com/walmartlabs/concord/pull/1063)).
### Changed
- concord-server: fix header validation in
SessionTokenAuthenticationHandler
([#1044](https://github.com/walmartlabs/concord/pull/1044));
- concord-console2: add support for redirectTo to the login page
([#1046](https://github.com/walmartlabs/concord/pull/1046));
- runtime-v2: allow throw payload with exception
([#1049](https://github.com/walmartlabs/concord/pull/1049));
- runtime-v2: use SensitiveDataHolder for task parameter masking
([#1050](https://github.com/walmartlabs/concord/pull/1050));
- runtime-v2: add exceptions to ParallelExecutionException
([#1051](https://github.com/walmartlabs/concord/pull/1051));
- runtime-v2: mask workDir value in logs by default
([#1052](https://github.com/walmartlabs/concord/pull/1052));
- runtime-v2: save out variables for failed process
([#1053](https://github.com/walmartlabs/concord/pull/1053));
- concord-server: allow tokens without users, remove user
from default agent token
([#1054](https://github.com/walmartlabs/concord/pull/1054));
- concord-targetplatform: update dependencies
([#1057](https://github.com/walmartlabs/concord/pull/1057));
- concord-server: replace synchronized with locks
([#1060](https://github.com/walmartlabs/concord/pull/1060));
- runtime-v2: fix for exception stack trace logging
([#1062](https://github.com/walmartlabs/concord/pull/1062));
- concord-agent-operator: fix ConfigMap creation, update
example CRDs
([#1065](https://github.com/walmartlabs/concord/pull/1065));
- concord-server: fix PolicyCache reloading loop
([#1066](https://github.com/walmartlabs/concord/pull/1066));
- concord-agent-operator: simple exit on watcher error
([#1067](https://github.com/walmartlabs/concord/pull/1067)).
## [2.20.0] - 2024-11-20
### Added
- mock-tasks: allow flows to be executed instead of tasks
([#1042](https://github.com/walmartlabs/concord/pull/1042)).
### Changed
- plugins: fix dependency scopes
([#1017](https://github.com/walmartlabs/concord/pull/1017));
- concord-cli: fix dependencies when generating effective yaml
([#1018](https://github.com/walmartlabs/concord/pull/1018));
- runtime-v2: remove extraneous error logging
([#1021](https://github.com/walmartlabs/concord/pull/1021));
- runtime-v2: script meta options should not override
the script step name
([#1022](https://github.com/walmartlabs/concord/pull/1022));
- runtime-v2: fix error messages
([#1023](https://github.com/walmartlabs/concord/pull/1023));
- mock-tasks: allow matching mocks by meta attributes or
step name
([#1024](https://github.com/walmartlabs/concord/pull/1024));
- concord-console2: fix zero content-length parsing in makeError
([#1025](https://github.com/walmartlabs/concord/pull/1025));
- concord-server: split ConcordAuthenticationHandler into
separate handlers
([#1026](https://github.com/walmartlabs/concord/pull/1026));
- mocks-task: record task events for mocked tasks
([#1027](https://github.com/walmartlabs/concord/pull/1027));
- concord-server: fix session token handling
([#1032](https://github.com/walmartlabs/concord/pull/1032));
- concord-server: cleanup control chars from JSONB
([#1034](https://github.com/walmartlabs/concord/pull/1034));
- concord-server: add authorization check to User lookup
endpoint in API
([#1035](https://github.com/walmartlabs/concord/pull/1035));
- it: tighten up polling intervals
([#1036](https://github.com/walmartlabs/concord/pull/1036));
- project: use concord-maven-plugin
([#1038](https://github.com/walmartlabs/concord/pull/1038));
- concord-server: fix process card createOrUpdate
([#1039](https://github.com/walmartlabs/concord/pull/1039));
- runtime-v2: allow mark sensitive data for task.execute result
([#1040](https://github.com/walmartlabs/concord/pull/1040)).
## [2.19.0] - 2024-11-05
## Added
- runtime-v2: introduce extraDependencies
([#1014](https://github.com/walmartlabs/concord/pull/1014));
- runtime-v2: initial support for dry-run mode
([#1007](https://github.com/walmartlabs/concord/pull/1007));
- concord-console2: add a full-screen page for process cards
([#1009](https://github.com/walmartlabs/concord/pull/1009));
- mock-tasks: support for method mocks in tasks
([#1010](https://github.com/walmartlabs/concord/pull/1010));
- mock-tasks: support for task call verify
([#1012](https://github.com/walmartlabs/concord/pull/1012)).
## Changed
- concord-server: remove resteasy-guice dependency
([#997](https://github.com/walmartlabs/concord/pull/997));
- project: update HikariCP version
([#1000](https://github.com/walmartlabs/concord/pull/1000));
- runtime-v2: flush events on process error
([#1001](https://github.com/walmartlabs/concord/pull/1001));
- concord-server: fix AuthenticationHandler result handling
([#1003](https://github.com/walmartlabs/concord/pull/1003));
- server: fix ConcordKey validation regex to 128 character limit
([#1004](https://github.com/walmartlabs/concord/pull/1004));
- project: update docker-login action in build flow
([#1005](https://github.com/walmartlabs/concord/pull/1005));
- runtime-v2: log task method name in event
([#1006](https://github.com/walmartlabs/concord/pull/1006));
- runtime-v2: move tests to separate module
([#1008](https://github.com/walmartlabs/concord/pull/1008));
- runtime-v2: use shorter delay while polling status of
threads
([#1011](https://github.com/walmartlabs/concord/pull/1011)).
### Breaking
- runtime-v2: store flow location in process definition.
Note, this changes the type of
`context.execution().processDefinition().flows()` object
available in runtime-v2 processes.
([#995](https://github.com/walmartlabs/concord/pull/995));
- runtime-v2: remove ProjectLoadListener interface
([#1015](https://github.com/walmartlabs/concord/pull/1015)).
## [2.18.0] - 2024-10-13
### Added
- concord-console2: status filter for log segments
([#980](https://github.com/walmartlabs/concord/pull/980));
- runtime-v2: interface for steps that generate element
events
([#987](https://github.com/walmartlabs/concord/pull/987)).
### Changed
- project: respect PR labels
([#961](https://github.com/walmartlabs/concord/pull/961));
- it: re-enable OldAgentIT
([#962](https://github.com/walmartlabs/concord/pull/962));
- runtime-v2: add github exclusive trigger to schema
([#977](https://github.com/walmartlabs/concord/pull/977));
- concord-server: bind EventEnrichers explicitly
([#978](https://github.com/walmartlabs/concord/pull/978));
- oidc, concord-console2: improve error handling
([#979](https://github.com/walmartlabs/concord/pull/979));
- runtime-v2: fix the issue when old agents can't parse
process configuration with new attributes
([#981](https://github.com/walmartlabs/concord/pull/981)).
- agent-operator: save cookies received from API
([#984](https://github.com/walmartlabs/concord/pull/984));
- project: fixes for build-time warnings
([#985](https://github.com/walmartlabs/concord/pull/985));
- concord-server: explicitly bind more classes
([#986](https://github.com/walmartlabs/concord/pull/986));
- concord-server: more fixes for non auto-wiring
environments
([#988](https://github.com/walmartlabs/concord/pull/988));
- project: update frontend-maven-plugin
([#992](https://github.com/walmartlabs/concord/pull/992));
- runtime-v2: fix manual trigger exclusive schema
([#993](https://github.com/walmartlabs/concord/pull/993));
- concord-server: fix updateWaitConditions when wait
condition without processes
([#994](https://github.com/walmartlabs/concord/pull/994)).
### Breaking
- project: fork ollie-config and make it a submodule.
Server plugins must be updated to use the new package
`com.walmartlabs.concord.config` instead of
`com.walmartlabs.ollie.config`
([#989](https://github.com/walmartlabs/concord/pull/989)).
## [2.17.0] - 2024-09-18
### Added
- runtime-v2: option for event batching for runner events
([#949](https://github.com/walmartlabs/concord/pull/949));
- runtime-v1: option for event batching for runner events
([#950](https://github.com/walmartlabs/concord/pull/950));
- console2, server: simple user info page
([#952](https://github.com/walmartlabs/concord/pull/952)).
### Changed
- project: update Maven wrapper
([#967](https://github.com/walmartlabs/concord/pull/967));
- oidc: redirect back to auth in failed callbacks
([#969](https://github.com/walmartlabs/concord/pull/969));
- project: miscellaneous fixes for build-time warnings,
add missing @deprecated annotations, remove redundant
dependencies
([#970](https://github.com/walmartlabs/concord/pull/970));
- agent-operator: create agent pod client only for
Running pods
([#973](https://github.com/walmartlabs/concord/pull/973));
- concord-server: remove GithubTriggerProcessor interface
([#974](https://github.com/walmartlabs/concord/pull/974));
- docker: configure safe.directory for git 2.35+
([#976](https://github.com/walmartlabs/concord/pull/976)).
### Changed
## [2.16.0] - 2024-09-05
### Added
- runtime-v2: option to update meta only on termination or
suspend
([#948](https://github.com/walmartlabs/concord/pull/948));
- policy-engine: allow rewriting with multiple values in
`dependencyRewrite` policies
([#952](https://github.com/walmartlabs/concord/pull/952));
- concord-server: allow non-standard runtimes
([#954](https://github.com/walmartlabs/concord/pull/954));
- oidc: support "from" when logging out
([#958](https://github.com/walmartlabs/concord/pull/958)).
### Changed
- runtime-v1: update bpm library to fix saving variables
before suspend
([#955](https://github.com/walmartlabs/concord/pull/955));
- concord-server: fix DB change set 1580200-a when
`superuserAvailable` is set to `false`
([#957](https://github.com/walmartlabs/concord/pull/957));
- concord-server: skip pull\_request process start when
useEventCommitId is enabled and event is from a different repo
([#959](https://github.com/walmartlabs/concord/pull/959));
- docker-images: update ansible galaxy community.docker version
([#960](https://github.com/walmartlabs/concord/pull/960));
- cli: fix duplicate step logs
([#963](https://github.com/walmartlabs/concord/pull/963)).
## [2.15.0] - 2024-08-07
### Added
- agent: configure host/ip for maintenance-mode endpoint
([#945](https://github.com/walmartlabs/concord/pull/945));
- concord-task: new method to wait and check that processes
have finished
([#943](https://github.com/walmartlabs/concord/pull/943));
- agent-operator: use maintenance mode before terminating
agent
([#946](https://github.com/walmartlabs/concord/pull/946));
### Changed
- pfed-sso: fix to not return null for not permanently
disabled users
([#947](https://github.com/walmartlabs/concord/pull/947)).
- agent-operator: consider pods already marked for deletion
during downscaling
([#951](https://github.com/walmartlabs/concord/pull/951)).
## [2.14.0] - 2024-07-13
### Added
- concord-server: calculate total process RUNNING time
([#933](https://github.com/walmartlabs/concord/pull/933));
- concord-server: expose websocket channels
([#935](https://github.com/walmartlabs/concord/pull/935));
- resource-tasks: add versions of writeAs* methods that
accept destination
([#937](https://github.com/walmartlabs/concord/pull/937));
- runtime-v1: option to update meta only on termination
or suspend
([#938](https://github.com/walmartlabs/concord/pull/938));
- project: add JDK 21 profiles
([#941](https://github.com/walmartlabs/concord/pull/941)).
### Changed
- project: update Groovy to 2.5.23
([#940](https://github.com/walmartlabs/concord/pull/940));
- dependency-manager: resolve only unique dependencies
([#936](https://github.com/walmartlabs/concord/pull/936));
- concord-server: move com.walmartlabs.concord.server.ansible.*
into ansible plugin
([#502](https://github.com/walmartlabs/concord/pull/502));
- concord-server: migrate to PROCESS_META and
PROCESS_TRIGGER_INFO tables
([#669](https://github.com/walmartlabs/concord/pull/669));
- runtime-v2: use draft-07 of JSON Schema for better tool
compatibility
([#939](https://github.com/walmartlabs/concord/pull/939));
- project: update dependency versions in the parent pom
([#942](https://github.com/walmartlabs/concord/pull/942)).
## [2.13.0] - 2024-06-19
### Added
- runtime-v2: "suspend" status support for log segments
([#927](https://github.com/walmartlabs/concord/pull/927));
- mocks: examples, support for storing the input, add
`throwError`
([#928](https://github.com/walmartlabs/concord/pull/928));
- runtime-v2: add more events to execution listeners
([#931](https://github.com/walmartlabs/concord/pull/931)).
### Changed
- runtime-v2: rename MultiException and limit stack trace depth
([#930](https://github.com/walmartlabs/concord/pull/930)).
## [2.12.0] - 2024-06-12
### Added
- dependency-manager: allow `LATEST` to pull latest version
from remote repositories
([#913](https://github.com/walmartlabs/concord/pull/913));
- runtime-v2: additional log segment statuses for error and
suspended states
([#918](https://github.com/walmartlabs/concord/pull/918));
- runtime-v2: initial support for thread local variables
([#920](https://github.com/walmartlabs/concord/pull/920));
- project: add mock task to parent pom
([#925](https://github.com/walmartlabs/concord/pull/925));
- runtime-v2: initial support for finalizers
([#926](https://github.com/walmartlabs/concord/pull/926)).
### Changed
- docker: fix image build on aarch64 hosts
([#717](https://github.com/walmartlabs/concord/pull/717));
- concord-console2: upgrade node version
([#890](https://github.com/walmartlabs/concord/pull/890));
- runtime-v2: fix log segment assigment during parallel
execution
([#905](https://github.com/walmartlabs/concord/pull/905));
- project: agent-operator module re-organization
([#906](https://github.com/walmartlabs/concord/pull/906));
- concord-server: fix process metadata values after resume
([#907](https://github.com/walmartlabs/concord/pull/907));
- concord-server: process wait conditions in batch mode
([#910](https://github.com/walmartlabs/concord/pull/910));
- project: update Liquibase to 4.8.0
([#912](https://github.com/walmartlabs/concord/pull/912));
- project: update resteasy to latest 4.x
([#914](https://github.com/walmartlabs/concord/pull/914));
- server: exception mapper for InvalidProcessStateException
([#916](https://github.com/walmartlabs/concord/pull/916));
- runtime-v2: allow double (floating point) values in YAML
([#917](https://github.com/walmartlabs/concord/pull/917));
- project: build both x86 and aarch64 versions
([#921](https://github.com/walmartlabs/concord/pull/921));
- concord-server: fix UserDao list method
([#924](https://github.com/walmartlabs/concord/pull/924)).
## [2.11.1] - 2024-05-12
### Changed
- concord-server: reduce Shiro usage
([#889](https://github.com/walmartlabs/concord/pull/889));
- runtime-v2: fix sensitive data masking in maps
([#897](https://github.com/walmartlabs/concord/pull/893));
- concord-server, tasks: disable repos on deleted ref, only
refresh repos matching event branch
([#894](https://github.com/walmartlabs/concord/pull/894));
- concord-server: fix Jetty metrics
([#899](https://github.com/walmartlabs/concord/pull/899));
- concord-server: add some missing GHA event types
(repository, status, workflow_job, workflow_run)
([#900](https://github.com/walmartlabs/concord/pull/900));
- dependency-manager: make it a singleton
([#901](https://github.com/walmartlabs/concord/pull/901));
- concord-server: fix initialization of wait conditions
after process restart
([#903](https://github.com/walmartlabs/concord/pull/903));
- runtime-v2: fix itemIndex in parallel loops
([#904](https://github.com/walmartlabs/concord/pull/904)).
## [2.11.0] - 2024-04-30
### Added
- agent-operator: scaling strategies and configurable
requirements
([#893](https://github.com/walmartlabs/concord/pull/893)).
### Changed
- ansible-tasks: be more helpful when commands are missing.
Check if `ansible-playbook` or `virtualenv` exist before
running.
([#887](https://github.com/walmartlabs/concord/pull/887));
- project: upgrade dependencies - Jackson to 2.17.0, Jetty
to 12.0.7, Wiremock to 3.5.2 and others.
([#861](https://github.com/walmartlabs/concord/pull/861));
- concord-server: allow plugins to supply their own top-level
API endpoints
([#891](https://github.com/walmartlabs/concord/pull/891));
- concord-server: minor improvements to the remember me
cookie logic
([#892](https://github.com/walmartlabs/concord/pull/892));
- concord-server: tone down websocket errors
([#895](https://github.com/walmartlabs/concord/pull/895));
- concord-server: do not invalidate sessions in
onFailedLogin
([#896](https://github.com/walmartlabs/concord/pull/896)).
## [2.10.1] - 2024-04-04
### Changed
- concord-server: fix json serialization of UserActivityResponse
([#885](https://github.com/walmartlabs/concord/pull/885)).
## [2.10.0] - 2024-04-01
### Added
- plugins: add new mock-tasks plugin
([#754](https://github.com/walmartlabs/concord/pull/754));
- runtime-v2: logYaml step
([#816](https://github.com/walmartlabs/concord/pull/816));
- concord-server, concord-console2: add "process cards"
([#808](https://github.com/walmartlabs/concord/pull/808));
- concord-agent: kill runner child PIDs
([#880](https://github.com/walmartlabs/concord/pull/880)).
### Changed
- server: fix trigger id calculation for complex args:
heterogeneous lists, list of maps
([#882](https://github.com/walmartlabs/concord/pull/882));
- concord-server: skip validation of disabled repos during
project creation
([#883](https://github.com/walmartlabs/concord/pull/883));
- concord-server: process wait conditions synchronously
([#884](https://github.com/walmartlabs/concord/pull/884)).
## [2.9.0] - 2024-02-28
### Added
- concord-server: option to permanently disable a user
([#875](https://github.com/walmartlabs/concord/pull/875));
- tasks: asserts
([#876](https://github.com/walmartlabs/concord/pull/876));
- concord-agent, dependency-manager: support for Maven offline
mode ([#869](https://github.com/walmartlabs/concord/pull/869));
- concord-server: skip repository refresh when repo is disabled
([#872](https://github.com/walmartlabs/concord/pull/872));
- runtime-v2: threadId to task details
([#874](https://github.com/walmartlabs/concord/pull/874));
- concord-console2: add more details to trigger list
([#878](https://github.com/walmartlabs/concord/pull/878));
### Changed
- concord-console: adjust polling frequency based on client
activity
([#634](https://github.com/walmartlabs/concord/pull/634));
- runtime-v1: fix for resume from same step (bpm version up)
([#879](https://github.com/walmartlabs/concord/pull/879));
- cli: api client provider for cli (just to load tasks)
([#877](https://github.com/walmartlabs/concord/pull/877));
- ansible: add module_defaults callback, remove deprecated gather_subset in config
([#873](https://github.com/walmartlabs/concord/pull/873));
- runtime-v2: ignore empty string as sensitive data
([#871](https://github.com/walmartlabs/concord/pull/871));
- project: fix maven compiler source version in parent pom
([#870](https://github.com/walmartlabs/concord/pull/870)).
## [2.8.0] - 2024-01-15
### Added
- concord-console2: kv capacity
([#795](https://github.com/walmartlabs/concord/pull/795));
- concord-server, concord-console2: ability to restart runtime-v2
processes
([#850](https://github.com/walmartlabs/concord/pull/850)).
### Changed
- concord-server: invalidate session on failed login
([#859](https://github.com/walmartlabs/concord/pull/859));
- runtime-v2: error location for loop, call, parallel, retry commands (v2)
([#865](https://github.com/walmartlabs/concord/pull/865));
- runtime-v2: fix incorrect variable merging for set variables step
([#862](https://github.com/walmartlabs/concord/pull/862)).
## [2.7.0] - 2024-01-08
### Added
- concord-cli: Add option for default task variables
([#848](https://github.com/walmartlabs/concord/pull/848)).
### Changed
- runtime-v2: resume event to json serialization fix
([#860](https://github.com/walmartlabs/concord/pull/860));
- project: drop siesta-server dependency
([#826](https://github.com/walmartlabs/concord/pull/826));
- resource-task: writeYaml: do not split YAML into multiple lines
([#854](https://github.com/walmartlabs/concord/pull/854));
- concord-server: logout any session on login failure
([#858](https://github.com/walmartlabs/concord/pull/858)).
### Breaking
- project: drop siesta-api dependency
([#857](https://github.com/walmartlabs/concord/pull/857)).
## [2.6.0] - 2023-12-28
### Added
- concord-server: expose fetch with version
([#853](https://github.com/walmartlabs/concord/pull/853));
- server: allow regexp in meta filters
([#852](https://github.com/walmartlabs/concord/pull/852)).
### Changed
- project: switch to concord-client2
([#821](https://github.com/walmartlabs/concord/pull/821));
- concord-server: remove more @Named
([#839](https://github.com/walmartlabs/concord/pull/839));
- client2: allow serialize collections
([#846](https://github.com/walmartlabs/concord/pull/846));
- runtime-v2: skip annotations for varargs
([#845](https://github.com/walmartlabs/concord/pull/845));
- concord-repository: fetch with quiet option
([#851](https://github.com/walmartlabs/concord/pull/851)).
## [2.5.0] - 2023-12-10
### Added
- concord-server: support @Priority annotation when binding
Jetty components
([#841](https://github.com/walmartlabs/concord/pull/841));
### Changed
- runtime-v2: allow "true|false" string in if expression
([#844](https://github.com/walmartlabs/concord/pull/844));
- docker-images: Upgrade default Ansible installation to 2.14
([#843](https://github.com/walmartlabs/concord/pull/843));
- ansible-plugin: callback compatibility for Ansible 2.14
([#842](https://github.com/walmartlabs/concord/pull/842));
- concord-server: resume process now returns BAD_REQUEST
if no event found
([#838](https://github.com/walmartlabs/concord/pull/838)).
### Breaking
- docker-images: drop CentOS-based images, use Debian by default
([#843](https://github.com/walmartlabs/concord/pull/843).
## [2.4.0] - 2023-11-26
### Added
- concord-server: add `EXTRA_CLASSPATH` to start script
([#836](https://github.com/walmartlabs/concord/pull/836));
### Changed
- concord-agent-operator: use JDK 17 base image
([#836](https://github.com/walmartlabs/concord/pull/836));
- concord-common: shared ObjectMapperProvider
([#836](https://github.com/walmartlabs/concord/pull/836)).
## [2.3.0] - 2023-11-21
### Added
- testing-concord-server: add getter for the server instance
([#832](https://github.com/walmartlabs/concord/pull/832));
- testing-concord-server: add agent wrapper, simple test
([835](https://github.com/walmartlabs/concord/pull/835)).
### Changed
- project: attach source jars only on release
([#832](https://github.com/walmartlabs/concord/pull/832));
- concord-server: auto-wire modules in concord-server/dist
instead of impl
([#834](https://github.com/walmartlabs/concord/pull/834)).
## [2.2.0] - 2023-11-13
### Added
- pfed-sso: enable bearer token authentication
([#811](https://github.com/walmartlabs/concord/pull/811)).
### Changed
- runtime-v2: fix exit from parallel loop #830
([#830](https://github.com/walmartlabs/concord/pull/830));
- console2: calculate process duration from process last running timestamp
([#794](https://github.com/walmartlabs/concord/pull/794));
- console2: do not drop secrets form values on error/password check fail
([#798](https://github.com/walmartlabs/concord/pull/798));
- project: attach javadoc jars only on release
([#823](https://github.com/walmartlabs/concord/pull/823));
- project: upgrade to source level 17
([#824](https://github.com/walmartlabs/concord/pull/824));
- project: remove more @Named usage
([#828](https://github.com/walmartlabs/concord/pull/828)).
## [2.1.0] - 2023-10-10
### Added
- new concord-client-v2
([#810](https://github.com/walmartlabs/concord/pull/810));
- runtime-v2: hasFlow function
([#813](https://github.com/walmartlabs/concord/pull/813));
- runtime-v2: uuid function
([#812](https://github.com/walmartlabs/concord/pull/812));
- runtime-v2: allow listen to project load events at runtime
([#785](https://github.com/walmartlabs/concord/pull/785));
- console2: allow changing JSON store org
([#790](https://github.com/walmartlabs/concord/pull/790)).
### Changed
- runtime-v2: automatically convert non serializable map.entry to serializable in exp
([#815](https://github.com/walmartlabs/concord/pull/815));
- server: return 404 when repository is not found
([#806](https://github.com/walmartlabs/concord/pull/806));
- runtime-v2: fix global vars update after resume
([#809](https://github.com/walmartlabs/concord/pull/809));
- console2: handle procesess with commitId, but without repoUrl
([#807](https://github.com/walmartlabs/concord/pull/807));
- runtime-v2: fix initialize of array expression
([#800](https://github.com/walmartlabs/concord/pull/800));
- server: only admins can access policies
([#792](https://github.com/walmartlabs/concord/pull/792));
- cli: active profiles fix
([#789](https://github.com/walmartlabs/concord/pull/789)).
## [2.0.0] - 2023-08-16
# Breaking
- project: drop support for JDK 8 and JDK 11. Make JDK 17
the new default version.
## [1.103.0] - 2023-07-16
### Added
- runtime-v2: hide sensitive data in MapELResolver
([#781](https://github.com/walmartlabs/concord/pull/781));
- tasks-v2: use debug flag from process configuration
([#780](https://github.com/walmartlabs/concord/pull/780));
- concord-console2: show process duration on toolbar
([#779](https://github.com/walmartlabs/concord/pull/779));
- concord-console2: allow customizing columns in the main process table
([#777](https://github.com/walmartlabs/concord/pull/777));
- console2: added `last updated at` and `age` to the secret page
([#775](https://github.com/walmartlabs/concord/pull/775));
- runtime-v2: hasNonNullVariable function
([#774](https://github.com/walmartlabs/concord/pull/774));
- runtime-v2: log call stack on error
([#761](https://github.com/walmartlabs/concord/pull/761));
- concord-server: Allow restriction of secrets to multiple projects
([#688](https://github.com/walmartlabs/concord/pull/688)).
### Changed
- server: fix DB cleanup job
([#784](https://github.com/walmartlabs/concord/pull/784));
- runtime-v2: hide stacktrace for UserDefinedException
([#782](https://github.com/walmartlabs/concord/pull/782));
- console2: enable save button on repository submit error
([#771](https://github.com/walmartlabs/concord/pull/771));
- runtime-v2: handle NPE in expressions
([#776](https://github.com/walmartlabs/concord/pull/776));
- concord-ansible-plugin: fix handling of play and task names
longer than 1024 chars
([#772](https://github.com/walmartlabs/concord/pull/772));
- console2, server: redirect to requested URL after oidc/sso
auth ([#764](https://github.com/walmartlabs/concord/pull/764));
- console2: do not remove project after rename
([#770](https://github.com/walmartlabs/concord/pull/770));
- runtime-v2: fix timezone text case in DSL schema
([#769](https://github.com/walmartlabs/concord/pull/769));
- docker-images: fix build for Debian 12 based images
([#767](https://github.com/walmartlabs/concord/pull/767));
- runtime-v2: serialization fix
([#758](https://github.com/walmartlabs/concord/pull/758));
- concord-cli: add no-default-cfg option
([#763](https://github.com/walmartlabs/concord/pull/763));
- concord-cli: reduce noise in dependency resolution errors
([#757](https://github.com/walmartlabs/concord/pull/757));
- console2: do not remove project after rename;
([#770](https://github.com/walmartlabs/concord/pull/770)).
## [1.102.0] - 2023-05-22
### Added
- concord-server: allow any GH event attribute in
`exclusive.groupBy`
([#753](https://github.com/walmartlabs/concord/pull/753));
- concord-server, concord-policy: ability to restrict
`runtime` type for project processes created after set date
(e.g. to forbid usage of older runtimes in new projects)
([#745](https://github.com/walmartlabs/concord/pull/745)).
### Changed
- concord-server, concord-console2: handle empty process
lists in wait condition
([#756](https://github.com/walmartlabs/concord/pull/756));
- concord-task: ignore suspend if no processes provided
([#755](https://github.com/walmartlabs/concord/pull/755));
- concord-server: refresh repository triggers synchronously
([#734](https://github.com/walmartlabs/concord/pull/734));
- runtime-v2, cli: hide parallel block stacktraces for
UserDefinedExceptions
([#751](https://github.com/walmartlabs/concord/pull/751));
- runtime-v2: hide stacktraces in propertyNotFound exceptions,
improve error messages
([#752](https://github.com/walmartlabs/concord/pull/752));
- runtime-v2: allow expressions in `parallelism` values
([#746](https://github.com/walmartlabs/concord/pull/746));
- server: `created_at` DB field to projects table
([#744](https://github.com/walmartlabs/concord/pull/744));
- runtime-v2: allow increment variables in expressions
([#740](https://github.com/walmartlabs/concord/pull/740)).
## [1.101.0] - 2023-03-29
### Added
- server: update process policy on process resume
([#731](https://github.com/walmartlabs/concord/pull/731)).
### Changed
- concord-server: allow auth plugins handle authorization
token ([#737](https://github.com/walmartlabs/concord/pull/737));
- concord-server: remove more Named usage
([#729](https://github.com/walmartlabs/concord/pull/729))
- concord-server: truncate `createdAt` nanoseconds when
creating new process keys
([#736](https://github.com/walmartlabs/concord/pull/736);
- concord-console: fix rendering of multiple string values in
forms
([#735](https://github.com/walmartlabs/concord/pull/735)).
## [1.100.0] - 2023-03-09
### Added
- runtime-v2: mask sensitive data in logs
([#719](https://github.com/walmartlabs/concord/pull/719));
- cli: process/project info from variables
([#727](https://github.com/walmartlabs/concord/pull/727));
- runtime-v2: support for "session state" process attachments
([#722](https://github.com/walmartlabs/concord/pull/722)).
### Changed
- concord-console: fix v2 log segment spinner after interrupted process
([#728](https://github.com/walmartlabs/concord/pull/728));
- cli: log errors from dependency resolver only in verbose mode
([#723](https://github.com/walmartlabs/concord/pull/723));
- cli: log flow step name (if provided)
([#724](https://github.com/walmartlabs/concord/pull/724));
- agent: log artifact resolve errors only in debug mode
([#725](https://github.com/walmartlabs/concord/pull/725));
- runtime-v2: predictable order of process arguments
([#721](https://github.com/walmartlabs/concord/pull/721));
- concord-server: remove more @Named usage
([#650](https://github.com/walmartlabs/concord/pull/650)).
## [1.99.0] - 2023-02-24
### Added
- concord-server: implement removal of disabled user
accounts. Old accounts can now be automatically removed
(the feature is disabled by default)
([#716](https://github.com/walmartlabs/concord/pull/716));
- runtime-v2: allow custom JS lang levels in scripts
([#709](https://github.com/walmartlabs/concord/pull/709));
- runtime-v2: function for throw exception
([#712](https://github.com/walmartlabs/concord/pull/712));
- concord-server: added 'last updated at' field for kv
records
([#701](https://github.com/walmartlabs/concord/pull/701));
- policy-engine, server: initial support for the KV store
policies
([#702](https://github.com/walmartlabs/concord/pull/702));
- concord-server: pass external trigger event ID via
process arguments
([#715](https://github.com/walmartlabs/concord/pull/715)).
### Changed
- server: use clean directory for each refresh listener
([#707](https://github.com/walmartlabs/concord/pull/707));
- concord-server: refactor ConcordLdapContextFactory
implementation
([#695](https://github.com/walmartlabs/concord/pull/695));
- runtime-v2: improve serialization of `loop` items
([#714](https://github.com/walmartlabs/concord/pull/714));
- concord-agent, queue-client: make more delays configurable
([#705](https://github.com/walmartlabs/concord/pull/705));
- console2: single vertical scroll for process log page
([#696](https://github.com/walmartlabs/concord/pull/696));
- console2: allow expand all log segments
([#698](https://github.com/walmartlabs/concord/pull/698));
- dependency-manager: log exception
([#700](https://github.com/walmartlabs/concord/pull/700));
- cli: check that state is serializable in checkpoint service
([#703](https://github.com/walmartlabs/concord/pull/703));
- runtime-v2: allow expression for form call values and runAs
([#704](https://github.com/walmartlabs/concord/pull/704));
- runtime-v2: fix argument passing in forks
([#708](https://github.com/walmartlabs/concord/pull/708)).
## [1.98.2] - 2023-02-08
### Changed
- concord-server: clean nulls from trigger conditions, args, cfg
([#713](https://github.com/walmartlabs/concord/pull/713));
## [1.98.1] - 2022-12-22
### Changed
- concord-server: @Inject refactoring (part 1)
([#658](https://github.com/walmartlabs/concord/pull/658));
- concord-server, oidc: OIDC team/role mapping. Maps
OpenID properties (e.g. `groups`) to Concord teams and
roles
([#682](https://github.com/walmartlabs/concord/pull/682));
- concord-server: `process_queue` table split (part 1)
([#668](https://github.com/walmartlabs/concord/pull/668));
- runtime-v2: do not create log segments for expressions
by default. Logs produced by expression blocks without
`name` will no longer be displayed as a separate log
"segment";
([#689](https://github.com/walmartlabs/concord/pull/689));
- concord-console: new compact view for the Log tab
([#690](https://github.com/walmartlabs/concord/pull/690));
- concord-server-db: a migration task to update secrets using
the updated hashing algorithm
([#691](https://github.com/walmartlabs/concord/pull/691));
- concord-task: fix concurrency issue when collecting output
of processes
([#693](https://github.com/walmartlabs/concord/pull/693));
- concord-server-db: pass secret salt as a base64 value
([#694][https://github.com/walmartlabs/concord/pull/689]).
## [1.98.0] - 2022-12-07
### Added
- runtime-v2: provide checkpoint name after restore
([#677](https://github.com/walmartlabs/concord/pull/677));
- policy: new policy to restrict raw payload
([#679](https://github.com/walmartlabs/concord/pull/679));
- concord-cli: provide default process configuration
([#649](https://github.com/walmartlabs/concord/pull/649));
- policy: policy to restrict runtime of process
([#671](https://github.com/walmartlabs/concord/pull/671));
- resource-task: add printJson() method
([#676](https://github.com/walmartlabs/concord/pull/676));
- server: cleanup agent commands
([#674](https://github.com/walmartlabs/concord/pull/674));
- policy-engine: `cron` trigger policy
([#686](https://github.com/walmartlabs/concord/pull/686)).
### Changed
- runtime-v2: fix parallel loop execution when no out variable defined
([#659](https://github.com/walmartlabs/concord/pull/659));
- console2: repository list now with paging
([#643](https://github.com/walmartlabs/concord/pull/643));
- server: api for list project repositories with limit/offset
([#643](https://github.com/walmartlabs/concord/pull/643));
- runtime-v2: "throw" with a string value shouldn't produce a stacktrace
([#673](https://github.com/walmartlabs/concord/pull/673));
- concord-server: deprecate `process_queue.commit_msg`
([#670](https://github.com/walmartlabs/concord/pull/670));
- runtime-v2: move expression evaluator into sdk
([#667](https://github.com/walmartlabs/concord/pull/667));
- cli: log checkpoint instead of throwing Exception
([#665](https://github.com/walmartlabs/concord/pull/665));
- http-task: allow any value as json body
([#675](https://github.com/walmartlabs/concord/pull/675));
- docker-images: change the default shell to bash in
Debian-based images
([#644](https://github.com/walmartlabs/concord/pull/675));
- runtime-v2: fix `entryPoint` calculation in effective YAML
([#685](https://github.com/walmartlabs/concord/pull/685)).
## [1.97.0] - 2022-10-11
### Added
- github: queryParams condition
([#663](https://github.com/walmartlabs/concord/pull/663));
- dependency-manager: allow exclusion artifacts from
transitive dependencies
([#657](https://github.com/walmartlabs/concord/pull/657)).
### Changed
- concord-cli: load deps from active profiles
([#654](https://github.com/walmartlabs/concord/pull/654));
- runtime-v2: fix parallel execution of ruby scripts
([#651](https://github.com/walmartlabs/concord/pull/651));
- concord-server: termintate process wait watchdog loop on
batches less than fetch limit
([#656](https://github.com/walmartlabs/concord/pull/656));
- runtime-v2: fix serialization error of flow call command
([#655](https://github.com/walmartlabs/concord/pull/655));
- concord-cli: ensure absolute target dir
([#652](https://github.com/walmartlabs/concord/pull/652));
- runtime-v2: allow access to current argument when
argument is evaluated
([#664](https://github.com/walmartlabs/concord/pull/664)).
## [1.96.1] - 2022-09-06
### Added
### Changed
- project: initial JDK 17 support
([#625](https://github.com/walmartlabs/concord/pull/625));
- concord-console: fix for change visibility and renaming
of secrets from UI
([#642](https://github.com/walmartlabs/concord/pull/642));
- runtime-v2: runtime-v2: fix NPE in flow call step
([#645](https://github.com/walmartlabs/concord/pull/645));
- concord-server: remove log call for github event in
repository refresh flow
([#633](https://github.com/walmartlabs/concord/pull/633));
## [1.96.0] - 2022-08-10
### Added
- concord-cli: option to show version
([#615](https://github.com/walmartlabs/concord/pull/615));
- concord-server: implement endpoints for adding LDAP
groups to roles
([#606](https://github.com/walmartlabs/concord/pull/606));
- concord-ansile, concord-console: add sort options to the
Ansible host stats
([#610](https://github.com/walmartlabs/concord/pull/610);
- docker-images: support for debian os based docker images
([#611](https://github.com/walmartlabs/concord/pull/611)).
### Changed
- concord-server: fix out vars processing and restrictions
([#609](https://github.com/walmartlabs/concord/pull/609);
- concord-cli: fixed broken JS support
([#612](https://github.com/walmartlabs/concord/pull/612));
- concord-repository: use regular repositories in tests
([#616](https://github.com/walmartlabs/concord/pull/616));
- concord-server, runtime-v2: fix file upload in forms
([#623](https://github.com/walmartlabs/concord/pull/623));
- agent-operator: support for apiextensions.k8s.io/v1 crd
to support k8s 1.22+
([#624](https://github.com/walmartlabs/concord/pull/624));
- concord-server: limit the number of acceptor threads to
`core count / 4` (min 1)
([#627](https://github.com/walmartlabs/concord/pull/627));
- project: update to Groovy 2.5.17 to support JDK 17
([#639](https://github.com/walmartlabs/concord/pull/639)).
## [1.95.0] - 2022-04-16
### Added
- concord-server: add API for updating secrets
([#590](https://github.com/walmartlabs/concord/pull/590));
- http-tasks: add proxy authentication parameters
([#597](https://github.com/walmartlabs/concord/pull/597));
- ansible-tasks: implement stats file for flows with
multiple playbook runs
([#596](https://github.com/walmartlabs/concord/pull/596));
- runtime-v1, v2: add correlationId to checkpoint events
([#581](https://github.com/walmartlabs/concord/pull/581));
- resource-tasks, runtime-v2: support for properties
files ([#593](https://github.com/walmartlabs/concord/pull/593)).
### Changed
- project: improve jdk16 compatibility
([#592](https://github.com/walmartlabs/concord/pull/592));
- concord-server: introduce exclusive wait conditions
([#595](https://github.com/walmartlabs/concord/pull/595));
- project: improve mvnd support
([#567](https://github.com/walmartlabs/concord/pull/567));
- runner: exit JVM on OOM error
([#594](https://github.com/walmartlabs/concord/pull/594));
- runtime-v2: fix `currentFlowName()` in error blocks
([#591](https://github.com/walmartlabs/concord/pull/591));
- runtime-v2: serialize ignoreErrors only if it is true
([#588](https://github.com/walmartlabs/concord/pull/588));
- resource-task: convert relative paths to absolute
([#589](https://github.com/walmartlabs/concord/pull/589));
- runtime-v2: redirect script output to logger
([#587](https://github.com/walmartlabs/concord/pull/587));
- agent: fix log segments parser
([#586](https://github.com/walmartlabs/concord/pull/586));
- resource-task: fix java 8 date/time serialization
([#584](https://github.com/walmartlabs/concord/pull/584));
- it: explicitly specify initialBranch for git tests
([#582](https://github.com/walmartlabs/concord/pull/582)).
## [1.93.3] - 2022-03-11
### Changed
- agent: fix log segments parse
([#586](https://github.com/walmartlabs/concord/pull/586)).
## [1.94.0] - 2022-03-07
### Added
- concord-server: add `orgUpdate` permission
([#552](https://github.com/walmartlabs/concord/pull/552));
- runtime-v2: add `orDefault` function
([#557](https://github.com/walmartlabs/concord/pull/557));
- runtime-v2: add `isDebug` function
([#558](https://github.com/walmartlabs/concord/pull/558)).
- agent: option to ignore artifact descriptor repositories
([#561](https://github.com/walmartlabs/concord/pull/561));
- runtime-v2: project document support for suspendTimeout
([#562](https://github.com/walmartlabs/concord/pull/562));
- concord-server: add process-wait-watchdog metrics
([#566](https://github.com/walmartlabs/concord/pull/566));
- runtime-v2: implement `loop` syntax - improved version
of `(parallel)withItems`
([#578](https://github.com/walmartlabs/concord/pull/578)).
### Changed
- concord-agent: use a single temporary directory for API clients
([#544](https://github.com/walmartlabs/concord/pull/544));
- runtime-v1/v2: remove temporary Docker files
([#545](https://github.com/walmartlabs/concord/pull/545));
- runtime-v2: support for runAs (running as another user)
in cron ([#547](https://github.com/walmartlabs/concord/pull/547));
- project: update Guava version, remove unneeded usage
([#550](https://github.com/walmartlabs/concord/pull/550));
- runtime-v1/v2: use Nashorn compat mode for GraalVM
([#551](https://github.com/walmartlabs/concord/pull/551));
- project: upgrade dependencies
([#554](https://github.com/walmartlabs/concord/pull/554));
- runtime-v2: remove `configuration.activeProfiles` from
the JSON schema (specifying `activeProfiles` in YAML
documents was never supported)
([#556](https://github.com/walmartlabs/concord/pull/556));
- runtime-v2: allow arrays for GH trigger conditions
([#563](https://github.com/walmartlabs/concord/pull/563));
- ansible: clear host filters after switching to the next stat tab
([#575](https://github.com/walmartlabs/concord/pull/575));
- ansible: filter host groups by playbookId
([#574](https://github.com/walmartlabs/concord/pull/574));
- runtime-v2: allow null values in configuration.arguments
([#571](https://github.com/walmartlabs/concord/pull/571));
- concord-server: implement a better way to kill processes
([#572](https://github.com/walmartlabs/concord/pull/572));
- runtime-v2: fix currentFlowName after restoring from a
checkpoint
([#580](https://github.com/walmartlabs/concord/pull/580)).
## [1.93.2] - 2022-02-17
### Changed
- runtime-v1: do not override process arguments with default variables
([#569](https://github.com/walmartlabs/concord/pull/569)).
## [1.93.1] - 2022-02-11
### Added
- concord-server: add orgUpdate permission
([#552](https://github.com/walmartlabs/concord/pull/552)).
### Changed
- runtime-v2: fix segment status parse
([#549](https://github.com/walmartlabs/concord/pull/549));
- graalvm: use nashorn compat mode
([#551](https://github.com/walmartlabs/concord/pull/551));
- agent: allow ignore artifact descriptor repositories
([#561](https://github.com/walmartlabs/concord/pull/561)).
## [1.93.0] - 2022-01-24
### Added
- runtime-v2: function to retrieve the current flow name
([#514](https://github.com/walmartlabs/concord/pull/514));
- runtime-v2: add `evalAsMap` flow function
([#520](https://github.com/walmartlabs/concord/pull/520));
- concord-agent: add dependencyResolveTimeout configuration
parameter ([#522](https://github.com/walmartlabs/concord/pull/522));
- concord-parent: support for Apple M1 silicon
([#527](https://github.com/walmartlabs/concord/pull/527));
- concord-console: add icon for suspended status
([#530](https://github.com/walmartlabs/concord/pull/530)).
### Changed
- runtime-v2: disable GraalVM runtime compilation warning,
fix logging ([#517](https://github.com/walmartlabs/concord/pull/517));
- runtime-v2: use stdout instead of files for logging
([#518](https://github.com/walmartlabs/concord/pull/518));
- concord-server, runtime-v2: fix for empty exclusive group
values ([#519](https://github.com/walmartlabs/concord/pull/519);
- concord-server, lock-tasks: avoid creating a wait
condition on each lock aquisition attempt
([#521](https://github.com/walmartlabs/concord/pull/521));
- concord-agent: log artifact download errors into process
log ([#523](https://github.com/walmartlabs/concord/pull/523));
- project: migrate to JUnit 5
([#528](https://github.com/walmartlabs/concord/pull/528));
- runtime-v1: remove variables from default vars with
the same names as task names to avoid conflicts
([#529](https://github.com/walmartlabs/concord/pull/529));
- concord-server: remove `/api/service/process_portal`
([#531](https://github.com/walmartlabs/concord/pull/531));
- runtime-v2: log errors when `ignoreErrors` specified
([#532](https://github.com/walmartlabs/concord/pull/532));
- concord-server: better checkpoint data validation
([#533](https://github.com/walmartlabs/concord/pull/533));
- runtime-v2: update JSON schema generation for `ignoreErrors`
params ([#536](https://github.com/walmartlabs/concord/pull/536));
- project: add missing `serialVersionUUID` fields to model
classes ([#537](https://github.com/walmartlabs/concord/pull/537));
- concord-console, runtime-v2: do not automatically open the
system log segment
([#539](https://github.com/walmartlabs/concord/pull/539));
- runtime-v2: support for `out` parameters of `script` steps
([#540](https://github.com/walmartlabs/concord/pull/540)).
## [1.92.0] - 2021-12-07
### Added
- runtime-v2: `ignoreErrors` mode support for tasks
([#484](https://github.com/walmartlabs/concord/pull/484));
- concord-server: record audit log when processes are
cancelled ([#495](https://github.com/walmartlabs/concord/pull/495));
- file-tasks: new methods - `move`, `relativize`
([#498](https://github.com/walmartlabs/concord/pull/498));
- crypto-v2: allow users to specify `dest` directory when
calling `exportAsFile`
([#499](https://github.com/walmartlabs/concord/pull/499));
- concord-server: allow users to override timeout for error
handlers using new process configuration property
`handlerProcessTimeout`
([#501](https://github.com/walmartlabs/concord/pull/501));
- http-tasks: log invalid JSON bodies and parse errors
([#505](https://github.com/walmartlabs/concord/pull/505)).
### Changed
- docker: fixed the behavior of `stdout` parameter
([#472](https://github.com/walmartlabs/concord/pull/472));
- concord-task: fix `suspendForCompletion` action in the v2
version of the task
([#488](https://github.com/walmartlabs/concord/pull/488));
- concord-task: return fork IDs in the `ids` variable even for
single-fork calls (v2 only)
([#488](https://github.com/walmartlabs/concord/pull/488));
- runtime-v2: fix exception when `MetadataProcessor` called
after an `exit` step
([#491](https://github.com/walmartlabs/concord/pull/491));
- concord-server: fix concurrent process status update
([#493](https://github.com/walmartlabs/concord/pull/493));
- runtime-v2: fixed an issue with variable propagation in
the presense of an `error` block in flow calls
([#496](https://github.com/walmartlabs/concord/pull/496));
- runtime-v1, runtime-v2: tone down the metadata processor's
logs ([#500](https://github.com/walmartlabs/concord/pull/500));
- smtp-tasks: simplify default variables, allow `host` and
`port` parameters without nesting into `smtpParams`
([#503](https://github.com/walmartlabs/concord/pull/503)).
### Breaking
- concord-task: return process IDs as `String` instead of `UUID`
([#488](https://github.com/walmartlabs/concord/pull/488)).
- runtime-v2, docker: replace the `logOutput` parameter with
a number of new fine-grained controls - `redirectErrorStream`, `logOut`,
`logErr`, `saveOut` and `saveErr`
([#489](https://github.com/walmartlabs/concord/pull/489));
- concord-server, concord-console: remove the old deprecated
Ansible UI and related API endpoints
([#497](https://github.com/walmartlabs/concord/pull/497));
- concord-server: remove support for `process.defaultConfiguration`
configuration parameter. This effectively removes concord-server's
support of default process variable files (#504).
## [1.91.0] - 2021-11-05
### Added
- concord-server, concord-console: allow users to disable triggers
in repositories ([#476](https://github.com/walmartlabs/concord/pull/476));
- runtime-v2: add feature to record metadata in tasks call
([#479](https://github.com/walmartlabs/concord/pull/476)).
### Changed
- concord-agent: do not retry logs on 4xx-5xx response
([#475](https://github.com/walmartlabs/concord/pull/475)).
- concord-server: throw error on null teams list in bulk access
update ([#477](https://github.com/walmartlabs/concord/pull/477));
- concord-repository: fix `checkAlreadyFetched` behavior when
checking out an older commit using the current branch
([#480](https://github.com/walmartlabs/concord/pull/480)).
## [1.90.0] - 2021-09-16
### Added
- runtime-v2: log effective process dependencies in debug mode
([#467](https://github.com/walmartlabs/concord/pull/467)).
### Changed
- project: switch to AdoptOpenJDK, initial support for JDK 11 and 16.
The default Docker images use JDK 8 by default
([#434](https://github.com/walmartlabs/concord/pull/434));
- concord-server-db: fix checksum expectations for API key related
changesets ([#463](https://github.com/walmartlabs/concord/pull/463));
- concord-server: remove an old, unused task from the DB
([#464](https://github.com/walmartlabs/concord/pull/464));
- runtime-v2: improved parser error message
([#465](https://github.com/walmartlabs/concord/pull/465));
- concord-server: fix a potential race condition in the process
dispatcher ([#466](https://github.com/walmartlabs/concord/pull/466));
- concord-server: do not create http sessions for api-key auth
([#471](https://github.com/walmartlabs/concord/pull/471));
- concord-server: disable servlet sessions for session token
authentication ([#473](https://github.com/walmartlabs/concord/pull/473));
- runtime-v1, runtime-v2: ability to disable events recording
([#474](https://github.com/walmartlabs/concord/pull/474)).
## [1.89.2] - 2021-09-14
### Changed
- concord-server: do not create http sessions for api-key auth
([#471](https://github.com/walmartlabs/concord/pull/471));
- concord-server: disable http sessions for session token auth
([#473](https://github.com/walmartlabs/concord/pull/473)).
## [1.89.1] - 2021-09-03
### Changed
- concord-server-db: fix checksum expectations for API key related
changesets ([#463](https://github.com/walmartlabs/concord/pull/463));
- concord-server: remove unused task from DB
([#464](https://github.com/walmartlabs/concord/pull/464)).
## [1.89.0] - 2021-08-22
### Added
- concord-server: ability to load user API keys from a local file
([#457](https://github.com/walmartlabs/concord/pull/457)).
### Changed
- runtime-v2: sanitize script variables, make sure values are
`Serializable` ([#458](https://github.com/walmartlabs/concord/pull/458));
- concord-server: do not mark processes that have been in the `NEW`
status for a long time as failed to start
([#459](https://github.com/walmartlabs/concord/pull/459));
- pfed-sso: redirect to login on failure
([#462](https://github.com/walmartlabs/concord/pull/462)).
## [1.88.1] - 2021-08-06
### Changed
- runtime-v2: allow step names to be placed anywhere in the step's
definition (i.e. not necessarily as the first element)
([#452](https://github.com/walmartlabs/concord/pull/452));
- runtime-v2: fix evaluation of `retry` expressions. Now expressions
are allowed to return any `Number` (e.g. `Integer`, `Long`, etc)
([#454](https://github.com/walmartlabs/concord/pull/454));
- runtime-v2: fix input parameter override on `retry`;
([#455](https://github.com/walmartlabs/concord/pull/455)).
## [1.88.0] - 2021-07-29
### Added
- concord-server: a new API endpoint to force sync LDAP groups of
a specific user ([#442](https://github.com/walmartlabs/concord/pull/442));
- runtime-v1, runtime-v2: add support for `*.yaml` Concord files in
addition to `*.yml` ([#443](https://github.com/walmartlabs/concord/pull/443));
- runtime-v2: allow expressions to be used as the `in` block value
in `task`, `flow` and `script` steps
([#447](https://github.com/walmartlabs/concord/pull/447)).
### Changed
- concord-server: ignore synthetic methods annotated with `WithTimer`
([#444](https://github.com/walmartlabs/concord/pull/444));
- concord-targetplatform: update jackson-databind version to address
[CVE](https://github.com/advisories/GHSA-288c-cq4h-88gq)
([#449](https://github.com/walmartlabs/concord/pull/449));
- concord-server: roll back changes introduced in
[#390](https://github.com/walmartlabs/concord/pull/390)
([#450](https://github.com/walmartlabs/concord/pull/450));
- ansible: fix retry file persistance (`saveRetry` task parameter)
([#451](https://github.com/walmartlabs/concord/pull/451)).
## [1.87.0] - 2021-07-12
### Added
- concord-task: `start`, `startExternal` and `fork` actions now
return process IDs ([#427](https://github.com/walmartlabs/concord/pull/427));
- concord-server: add more metrics for wait conditions
([#438](https://github.com/walmartlabs/concord/pull/438)).
### Changed
- concord-cli, concord-server, concord-agent: ability to run
Concord on Java 16
([#429](https://github.com/walmartlabs/concord/pull/429));
- concord-server: fix insertion of wait conditions for forked
processes ([#430](https://github.com/walmartlabs/concord/pull/430));
- concord-console: fix checkpoint color for failed processes
([#432](https://github.com/walmartlabs/concord/pull/432));
- concord-console: fix the editor component initialization. Affects
the JSON store query and the project configuration editors
([#433](https://github.com/walmartlabs/concord/pull/433));
- concord-server: clean up repository cache using a separate thread
([#436](https://github.com/walmartlabs/concord/pull/436));
- runtime-v2: add grammar for the `files` condition in GitHub triggers
([#437](https://github.com/walmartlabs/concord/pull/437));
- concord-server: use optimistic locking for wait conditions
([#439](https://github.com/walmartlabs/concord/pull/439));
- concord-server: send `PROCESS_STATUS` events to listeners
(fix for the regression in 1.85.0+)
([#440](https://github.com/walmartlabs/concord/pull/440));
- concord-server: cancel listeners on exception
([#441](https://github.com/walmartlabs/concord/pull/441)).
## [1.86.3] - 2021-06-16
### Changed
- concord-server: update metrics version, use lock free timers
([#425](https://github.com/walmartlabs/concord/pull/425)).
## [1.86.2] - 2021-06-02
### Added
- http-tasks: ability to provide a custom trust stores
([#399](https://github.com/walmartlabs/concord/pull/399));
- concord-server: new configuration parameter
`db.changeLogParameters.defaultAgentToken`. Sets the default
API token for the Agent
([#410](https://github.com/walmartlabs/concord/pull/410));
- concord-server: add DNS Service Record feature ldap
(dynamic loading of LDAP server address)
([#412](https://github.com/walmartlabs/concord/pull/412));
- smtp-tasks: read default parameters (`defaultProcessCfg`
policy) in the runtime-v2 version of the task
([#419](https://github.com/walmartlabs/concord/pull/419));
- resource-tasks: parse object from JSON string
([#420](https://github.com/walmartlabs/concord/pull/420)).
### Changed
- dependency-manager: update the `maven-resolver` version
([#405](https://github.com/walmartlabs/concord/pull/405));
- concord-server: the `iam-sso` plugin has been removed
([#407](https://github.com/walmartlabs/concord/pull/407));
- concord-repository: remove dependency on`jgit`
([#414](https://github.com/walmartlabs/concord/pull/414));
- concord-task: `startExternal` action should ignore
the `suspend` parameter
([#416](https://github.com/walmartlabs/concord/pull/416));
- concord-console: update dependencies
([#418](https://github.com/walmartlabs/concord/pull/418)).
### Breaking
- concord-server, concord-agent: the agent's default API
token has been removed. The server now automatically
generates a new API token on the first start
([#410](https://github.com/walmartlabs/concord/pull/410) and
([#413](https://github.com/walmartlabs/concord/pull/413)).
## [1.85.0] - 2021-04-27
### Added
- ansible: option to limit the logging verbosity based on
the inventory size ([#384](https://github.com/walmartlabs/concord/pull/384));
- runtime-v2: support `name` attribute for script calls
([#402](https://github.com/walmartlabs/concord/pull/402)).
### Changed
- concord-server: restoring from a checkpoint now generates a new
`CHECKPOINT_RESTORE` event instead of a `PROCESS_STATUS` event
with custom payload
([#389](https://github.com/walmartlabs/concord/pull/389));
- concord-server: use process events to calculate the process
queue stats ([#390](https://github.com/walmartlabs/concord/pull/390));
- runtime-v2: rollback the state cleanup code added in
[#358](https://github.com/walmartlabs/concord/pull/358).
Fixed in ([#391](https://github.com/walmartlabs/concord/pull/391));
- concord-server: fix validation of form fields with expressions in
allowed values ([#392](https://github.com/walmartlabs/concord/pull/392));
- concord-server: set SameSite=Lax for the session cookie
([#394](https://github.com/walmartlabs/concord/pull/394));
- concord-server: only pass enabled repositories to refresh task
([395](https://github.com/walmartlabs/concord/pull/395));
- concord-server: do not mark processes as `FAILED` after resuming
from an invalid status
([#396](https://github.com/walmartlabs/concord/pull/396)).
- concord-server: use optimistic locking when updating wait
conditions ([#397](https://github.com/walmartlabs/concord/pull/397));
- docker-compose: fix agent and dind communication
([#400](https://github.com/walmartlabs/concord/pull/400));
- runtime-v2: log exception as a single error line
([#401](https://github.com/walmartlabs/concord/pull/401));
- concord-repository: specify path to the `.gitmodules` file when
reading submodule urls ([#403](https://github.com/walmartlabs/concord/pull/403));
- runtime-v2: subsequent execution of reentrant tasks now uses
the same log segment as for the first call
([#406](https://github.com/walmartlabs/concord/pull/406)).
## [1.84.0] - 2021-04-08
### Added
- concord-server: support multiple wait conditions per process
([#368](https://github.com/walmartlabs/concord/pull/368));
- concord-server: cleanup job for `wait_conditions`.
Automatically remove `wait_conditions` of expunged processes
([#380](https://github.com/walmartlabs/concord/pull/380));
- concord-cli: option to generate the effective Concord YAML file
([#382](https://github.com/walmartlabs/concord/pull/382));
- runtime-v2: add example of Ansible's `register` statement usage
([#387](https://github.com/walmartlabs/concord/pull/387)).
### Changed
- pfed-sso: now provides a `LdapPrincipal` for compatibility
with legacy authentication providers
([#376](https://github.com/walmartlabs/concord/pull/376));
- concord-imports: hide sensitive data in `toString` methods
([#378](https://github.com/walmartlabs/concord/pull/378));
- runtime-v2: fix the duration format when generating an
effective yaml ([#383](https://github.com/walmartlabs/concord/pull/383)).
- concord-repository: automatically create `repositoryInfo`
directory if not exists
([#386](https://github.com/walmartlabs/concord/pull/386));
- pref-sso: do not redirect if refresh token exists
([#388](https://github.com/walmartlabs/concord/pull/388)).
## [1.83.0] - 2021-03-25
### Added
- concord-server: log handler process IDs (`onTimeout`,
`onCancel`, etc) in the parent process log
([#350](https://github.com/walmartlabs/concord/pull/350));
- concord-console: on the repository list page, add commit
ID and repository path links;
([#351](https://github.com/walmartlabs/concord/pull/351));
- concord-console, runtime-v1, runtime-v2: ability to log
process IDs as links in the UI
([#356](https://github.com/walmartlabs/concord/pull/356));
- concord-repository, concord-server, concord-agent: option
to skip fetching if local commit ID equals remote commit ID
([#359](https://github.com/walmartlabs/concord/pull/359)).
- concord-agent: option to redirect process logs to stdout
([#362](https://github.com/walmartlabs/concord/pull/362));
- concord-server, runtime-v2: it is now possible to resume
a process waiting for multiple external events
([#370](https://github.com/walmartlabs/concord/pull/370));
- concord-server, concord-console: new process status
`WAITING`. Before this change, the `SUSPENDED` status was
used for both processes suspended on an event (e.g. on a
form) and processes waiting for "external" conditions (e.g.
concurrent execution limits, waiting for another process or
lock, etc). This PR creates a clear separation in statuses
for such cases
([#371](https://github.com/walmartlabs/concord/pull/371) and
[#379](https://github.com/walmartlabs/concord/pull/379)).
### Changed
- runtime-v2: implicitly pass variables into scripts
([#349](https://github.com/walmartlabs/concord/pull/349));
- concord-repository: disable git auto-maintenance
([#353](https://github.com/walmartlabs/concord/pull/353));
- runtime-v2: fix error handling in reentrable tasks
([#354](https://github.com/walmartlabs/concord/pull/354)).
- concord-server, concord-console: fix the rendering of
form dropdown fields with single allowed values
([#357](https://github.com/walmartlabs/concord/pull/357))
and ([372](https://github.com/walmartlabs/concord/pull/372));
- runtime-v2: cleanup `workDir` files after loading
the state ([#358](https://github.com/walmartlabs/concord/pull/358));
- concord-client: skip empty bodies in error responses, use
the HTTP status message instead
([#363](https://github.com/walmartlabs/concord/pull/363));
- runtime-v2: fixed the `exclusive` mode grammar in triggers
(cron, generic, oneops)
([#364](https://github.com/walmartlabs/concord/pull/364));
- concord-server: set `initiator` for `onCancel`,
`onFailure` and `onTimeout` handlers
([#365](https://github.com/walmartlabs/concord/pull/365));
- concord-console: update node.js to the current LTS (14.16.0)
([#366](https://github.com/walmartlabs/concord/pull/366));
- sleep-task: use UUIDs as event names to support parallel
execution ([#369](https://github.com/walmartlabs/concord/pull/369));
- concord-agent: disable preforks by default, use stable
`workDir` ([#374](https://github.com/walmartlabs/concord/pull/374)).
## [1.82.0] - 2021-03-08
### Added
- pfed-sso: add README
([#339](https://github.com/walmartlabs/concord/pull/339));
- runtime-v2: support for nested variables in `hasVariable`
function ([#343](https://github.com/walmartlabs/concord/pull/343));
- examples: runtime-v2 demo
([#344](https://github.com/walmartlabs/concord/pull/344));
- http-tasks: support for external keystore files
([#345](https://github.com/walmartlabs/concord/pull/345)).
### Changed
- runtime-v2: fix the detection of script languages based on
the script's file name
([#339](https://github.com/walmartlabs/concord/pull/339));
- ansible: append values to `PYTHONPATH`, allow users to
use their own `PYTHONPATH` in addition to the provided one
([#341](https://github.com/walmartlabs/concord/pull/341));
- concord-server: fixed batching of processes with custom
`branch` or `commitId`. Previously the batching mechanism might
determine the effective branch and/or commitId incorrectly
([#347](https://github.com/walmartlabs/concord/pull/347));
- concord-server: fix repository refresh filtering on GitHub
event ([#348](https://github.com/walmartlabs/concord/pull/348)).
## [1.81.0] - 2021-03-01
### Added
- pfed-sso: add a configuration parameter for token signature
validation ([#325](https://github.com/walmartlabs/concord/pull/325));
- runtime-v1, runtime-v2: optionally expose docker daemon
([#332](https://github.com/walmartlabs/concord/pull/332));
- concord-server, concord-console: add log segment duration
([#335](https://github.com/walmartlabs/concord/pull/335)).
### Changed
- concord-server, pfed-sso: make sso login independent of ldap
([#327](https://github.com/walmartlabs/concord/pull/327));
- concord-console: add a redirect on SSO token/session expiration
([#327](https://github.com/walmartlabs/concord/pull/327));
- dependency-manager: remove dots from the `resolveFile` log,
prevent URLs from being mangled in the UI
([#330](https://github.com/walmartlabs/concord/pull/330));
- concord-console: show runtime-v1 recorded in-vars
([#331](https://github.com/walmartlabs/concord/pull/331));
- concord-repository: fix fetching when both commitId and branch
specified ([#329](https://github.com/walmartlabs/concord/pull/329)).
- runtime-v2: fix Docker passwd generation
([#332](https://github.com/walmartlabs/concord/pull/332));
- concord-server, pfed-sso: get user information from the DB
([#333](https://github.com/walmartlabs/concord/pull/333));
- project: remove unused dependencies
([#334](https://github.com/walmartlabs/concord/pull/334));
- concord-server: allow overriding of default configuration values
using environment variables
([#336](https://github.com/walmartlabs/concord/pull/336));
- concord-common: skip outside paths when unzipping files
([#337](https://github.com/walmartlabs/concord/pull/337));
- concord-server: sort log segments by IDs in addition to their
timestamps to make the order more stable (e.g. for `parallel`
situations) ([#338](https://github.com/walmartlabs/concord/pull/338)).
## [1.80.0] - 2021-02-14
### Added
- concord-server: new authentication plugin `pfed-sso`
([#318](https://github.com/walmartlabs/concord/pull/323)).
### Changed
- docker-images: restrict `cryptography` dependency to 3.3.1
([#323](https://github.com/walmartlabs/concord/pull/323));
- concord-server: use `java.time.Duration` for all intervals in
the server configuration file
([#322](https://github.com/walmartlabs/concord/pull/322));
- concord-server: fix the batch cancellation of processes without
an agent ([#317](https://github.com/walmartlabs/concord/pull/317));
- concord-server: if both `orgId` and `orgName` are given,
the `/api/v2/process` filter ignores `orgName`
([#319](https://github.com/walmartlabs/concord/pull/319)).
## [1.79.0] - 2021-02-04
### Added
- concord-server: support for `configuration.suspendTimeout`. Allows
users to specify the maximum amount of time the process can be in
the `SUSPENDED` state;
([#315](https://github.com/walmartlabs/concord/pull/315));
- runtime-v2: add EL resolver for plain accessor methods, e.g.
`MyBean#property()`. Allows seamless usage of classes generated by
[Immutables](https://immutables.github.io/)
([#316](https://github.com/walmartlabs/concord/pull/316));
- concord-client: report the base API URL in error messages
([#312](https://github.com/walmartlabs/concord/pull/312));
- concord-tasks: add upsertQuery methods to the JSON store task
([#311](https://github.com/walmartlabs/concord/pull/311)).
### Changed
- concord-repository: fixed the Git CLI command for retrieving commit
info (extraneous `\n` in commit description)
([#313](https://github.com/walmartlabs/concord/pull/313));
- concord-console: make `projectId` and `projectName` optional in
the `SecretEntry` definition (minor API usage fix)
([#306](https://github.com/walmartlabs/concord/pull/306));
- concord-client, runtime-v1, runtime-v2: make `SecretService` throw
`SecretNotFoundException` when the requested secret is not found
([#309](https://github.com/walmartlabs/concord/pull/309));
- concord-console: fixed linking of organizations and secrets
([#308](https://github.com/walmartlabs/concord/pull/308))
- concord-server: fixed linking of projects and secrets
([#307](https://github.com/walmartlabs/concord/pull/307))
- concord-console: the project dropdown list on the new secret page
and on the secret settings page was replaced with a search field
([#305](https://github.com/walmartlabs/concord/pull/305)).
## [1.78.0] - 2021-01-22
### Added
- concord-server: new `exclusive.mode` mode `cancelOld`. When a new
process starts using the `cancelOld` mode, all currently running
processes within the same `exclusive.group` are automatically
cancelled ([#300](https://github.com/walmartlabs/concord/pull/300));
- concord-cli: notification when copying a large working directory
into `target/`
([#302](https://github.com/walmartlabs/concord/pull/302));
- concord-server: new `github` trigger parameter - `exclusive.groupBy`.
Currently accepts only `branch` value. Provides a way to cancel new or
already running processes that were triggered by a `push` into the
same Git branch
([#301](https://github.com/walmartlabs/concord/pull/301));
- concord-server: when starting a process using a Git repository,
save the branch name in `process_queue` (in addition to `commit_id`)
([#296](https://github.com/walmartlabs/concord/pull/296)).
### Changed
- concord-repository: allow passing branch, tag and/or commit ID as
a single request parameter
([#304](https://github.com/walmartlabs/concord/pull/304));
- ansible: use [Apache Kerby](https://directory.apache.org/kerby/)
instead of `sun.security.*`
([#303](https://github.com/walmartlabs/concord/pull/303);
- concord-server: remove SQL parser, use restricted views for querying
JSON stores ([#297](https://github.com/walmartlabs/concord/pull/297));
- concord-console: the secret dropdown list on the repository page
is replaced with a search field
([#299](https://github.com/walmartlabs/concord/pull/299)).
## [1.77.0] - 2021-01-07
### Added
- dependency-manager: support for pre-emptive basic authentication
when talking to Maven repositories
([#293](https://github.com/walmartlabs/concord/pull/293));
- runtime-v2: support for the `name` attribute in `try` and `block`
elements ([#289](https://github.com/walmartlabs/concord/pull/289));
- runtime-v2: automatically generate and publish the JSON schema for
`runtime: concord-v2` syntax
([#283](https://github.com/walmartlabs/concord/pull/283));
- concord-console, runtime-v2: show file name in the segment
info popup ([#288](https://github.com/walmartlabs/concord/pull/288)).
### Changed
- runtime-v2: use JDK's `AbstractMap.SimpleImmutableEntry` to iterate
over `Map` elements in the `withItems` implementation instead of a
custom class.
([#285](https://github.com/walmartlabs/concord/pull/285)).
## [1.76.1] - 2020-12-22
### Changed
- runtime-v2: fixed a checkpoint serialization issue when classes
from `dependencies` are used as flow variables.
## [1.76.0] - 2020-12-22
### Added
- concord-console: custom columns in the process list can now
be rendered as links;
- runtime-v2: new annotation `@SensitiveData` can be used to
prevent task method arguments from being recorded in process
events;
- concord-server, concord-console: audit log for external events,
the process status page can now display external events that
triggered the process;
- policy-engine: new policy type `dependencyRewrite`. Can be used
to override process dependencies (e.g. to force a specific
version).
### Changed
- runtime-v2: improved serialization of `lastError` objects that
contain circular references (e.g. Guice exceptions);
- concord-server, concord-console: use `main` as the default Git
branch;
- concord-agent, runtime-v1: make sure temporary directories are
removed;
- policy-engine: rule matching code refactoring, use common map
matcher, add more tests;
- concord-server: assert type of the active profiles collections,
trim values;
- runtime-v1, runtime-v2: update the list of "retryable" errors
for `docker pull` operations to support recent versions of
docker-client.
## [1.75.0] - 2020-12-05
### Added
- runtime-v2: add grammar for `repositoryInfo` conditions in
GitHub triggers;
- concord-server: new GitHub trigger condition
`repository.enabled`. Allows filtering by the repository's
enabled/disabled state;
- runtime-v2, concord-console: record `post` events for failed
tasks, highlight failed tasks on the events tab.
### Changed
- concord-console: reload the repository list after removing a
repository;
- concord-console: add scrolling to the last error popup, trigger
information popup and the task call details popup;
- concord-repository: preserve the logger's MDC when logging
Git client operations;
- concord-imports: additional logging when processing `imports`;
- concord-repository: the git client was reworked to better
support partial fetching of repositories;
- runtime-v2: unwrap runtime exceptions produced by expressions;
- concord-client: tidy up the error logging - don't log a
separate `WARN` message when the server responds with an error;
- runtime-v2: save original stacktraces when throwing a
`MultiException` (e.g. in `parallel` situations);
- concord-console: now users should be correctly redirected to
their destination page after login.
## [1.74.0] - 2020-11-24
### Added
- concord-server: allow "any of [list]" conditions when matching
process `requirements`;
- concord-console, runtime-v2: a button to launch the form wizard
from the process log tab;
- concord-console, runtime-v2: link to download individual log
segments;
- concord-console, runtime-v2: individual form links.
### Changed
- concord-server, runtime-v2: correctly remove submitted forms;
- runtime-v2: `set` now supports references to partially evaluated
values (e.g. variables defined in the same `set` block), including
nested keys;
- concord-server: add transaction-aware versions of
`ProjectManager#get` and `ProjectAccessManager#assertAccess` methods;
- runtime-v2: now only resuming threads receive the resume event's
payload. This fixes the issue with multiple `parallel` forms missing
submitted data;
- concord-agent, runtime-v2: make the runner responsible for log
segment creation;
- runtime-v2: fixed an issue when submitting a form can cause other
unsubmitted forms to dissappear;
- runtime-v2: fixed compilation of block steps when `error` is
used.
### Breaking
- runtime-v2: `set` with nested keys now replaces the top-level
reference. If `set` is called in a flow, the changes to nested data
won't be visible in the caller flow unless `out` is used;
- policy-engine, concord-server: rename `entity` policy's types for
consistency.
## [1.73.0] - 2020-11-15
### Added
- concord-console: `entryPoint` can now be used as a column in
the process list.
### Changed
- runtime-v2: fixed an issue when a parent process checkpoint
was incorrectly applied to the process' forks;
- concord-tasks: 'kill' shouldn't error on empty instanceId lists;
- concord-tasks: fix common parameters not being inherited by
`forks` in the runtime-v2 version of the `concord` task;
- runtime-v1, runtime-v2: avoid reading partially written
`instanceId` files;
- concord-server: allow null values when merging policies;
- runtime-v2: fixed the merging of multiple Concord YAML files
(e.g. `configuration.events` blocks and others).
## [1.72.0] - 2020-11-09
### Added
- concord-console: the process list now support boolean values in
custom columns and filters;
- runtime-v2: save `lastError` in process metadata (feature parity
with the runtime v1);
- policy-engine, concord-server: the `entity` policy now supports
repository objects;
- concord-console, concord-repository: support for OAuth (personal)
tokens for Git authentication.
### Changed
- concord-console: load add log segments on every refresh (temporary
workaround);
- runtime-v2: fix the loop frame being added to the call stack on
every step of `withItems`;
- runtime-v2: fixed an issue preventing form `values` from being
visible in `data.js` (custom forms);
- project: update Maven Wrapper to 0.5.6;
- runtime-v2: fixed evaluation of literals values for empty
collections (e.g. `[]` used with `set` or in expressions);
- concord-server: improved error messages when processing `imports`.
## [1.71.0] - 2020-11-03
### Added
- oneops: record incoming events in the audit log;
- runtime-v2: initial support for `parallelWithItems`;
- runtime-v2: support for expressions in `out` blocks of task
calls, flow calls, `parallel` and `expr` blocks;
- runtime-v2: save the current thread ID in `TaskResult`;
- agent-operator: add `requirements` filter;
- concord-console: the login form now provides a link to the API
key login form.
### Changed
- concord-tasks: fix the missing injection annotations in the v2
version of the `jsonStore` task (makes it useable in v2 again);
- concord-server: `ProcessKeyCache` no longer caches misses;
- concord-server: fixed handling of `any` conditions in
the `github` trigger's `files` filter.
### Breaking
- runtime-v2: new version the `TaskResult` structure, now itcan be
used to tell the runtime to suspend the process.
## [1.70.0] - 2020-10-23
### Added
- concord-server: expose task failures in metrics (including error
messages);
- concord-server: new GitHub trigger `condition` - `files.any`.
Contains all `added`, `deleted` or `modified` files in a `push`
event.
### Changed
- runtime-v2: add support for expressions in `name` blocks for all
types of steps;
- concord-server: fixed some edge cases when converting timezones
in process status history;
- runtime-v2: automatically convert values of out variables in
scripts to their Java counterparts - Maps, Lists, etc;
- runtime-v2: fixed a NPE when tasks return `null` instead of
`TaskResult`;
- concord-cli: print out the error's stacktrace if `verbose` is
enabled.
## [1.69.0] - 2020-10-15
### Added
- runtime-v2: steps can now specify `slf4j` logging level using
the `meta.logLevel` property.
### Changed
- concord-server: timestamp values in process status history are now
returned with a correct time zone;
- concord-server: throw an exception if the resuming process wasn't
actually `SUSPENDED`;
- runtime-v2: `SLF4JPrintStreams` messages should no longer appear
in log segments;
- concord-server: task scheduler improvements - save the last error
into the DB, simplify polling, improved task heartbeat/stall checks;
- concord-server: escape expressions (`${...}`) in the input data
when resuming processes using
`/api/v1/process/{id}/resume/{eventName}` endpoint;
- ansible: fixed an issue preventing Kerberos authentication from
working in nested Docker containers (i.e. when `dockerImage` is
used);
- concord-server: allow non-admins to search audit logs by `eventId`
(`/api/v1/audit?eventId=...`);
- concord-console: fix widths of columns on the secret list page;
- runtime-v2: `if` steps now treat `null` values as `false`;
- concord-server: allow teams with no members (i.e. teams with LDAP
groups only).
## [1.68.0] - 2020-10-05
### Added
- concord-server: a PayloadBuilder method to add files to the process'
`workDir`;
- file-tasks: initial version.
### Changed
- slack-tasks: read default variables from context instead of
`@InjectVariables`. This fixes an issue of calling `slack` using
expressions;
- runtime-v2: fixed handling of process state snapshots. Now
the runtime correcly resumes from state snapshots and forks.
## [1.67.0] - 2020-10-01
### Added
- variables-tasks: runtime-v2 support for the `vars` task;
- runtime-v2: allow profiles to override flows, forms;
- concord-server: tx aware OrganizationManager's `createOrUpdate` and
`createOrGet` methods, useful for server-side plugins;
- concord-server: tx aware SecretManager's `createBinaryData` method;
- concord-console, runtime-v2: the process events list now includes
links to the source code of steps;
- resource-tasks: `prettyPrintYaml` method to output data as
formatted YAML;
- concord-server, concord-console: option to download "the
effective YAML" - a single YAML document with all Concord resources
for a given process.
### Changed
- concord-server: fixed the handling of the `values` field when
`readonly` form fields are used;
- runtime-v2: fixed a typo in code that prevented default form field
values from working correctly;
- concord-tasks: `repositoryRefresh` task was converted to v2;
- concord-agent: tone down logging when the main thread is
interrupted;
- ansible: allow any Java `Collection` types (list, set, etc) as
inventory host lists;
- concord-agent: improved error handling in workers;
- concord-server: fixed the error message template when validating
forms;
- concord-server: fixed a potential race when registering internal
metrics. Fixes a `ConcurrentModificationException` when Server is
running in an embedded environment, e.g. testcontainer-concord's
LOCAL mode.
### Breaking
- runtime-v2: `ProcessDefinition#configuration()` is a separate type
now;
- runtime-v2: move `ProjectInfo` classes to the SDK.
## [1.66.0] - 2020-09-17
### Added
- concord-server: optional `startAt` filter in
the `/api/v2/process/requirements` endpoint;
- concord-cli: support for creating new secrets using SecretManager's
`create*` methods;
- http-tasks: `followRedirects` now works for `POST` requests too;
- concord-server: access changes for projects, secrets and JSON
stores are now recorded in the audit log (e.g. assigning a team to a
project);
- concord-server: configurable out variables mode for projects. Now
project owners can restrict who can specify `out` variables in the
process request;
- slack: full support for runtime-v2. All v1 actions should now be
available in the v2 version too;
- runtime-v2, concord-console: record and display task results (as in
`configuration.events.recordTaskOutVars`).
### Changed
- concord-server, concord-console: don't send `WWW-Authenticate` for
unauthorized UI requests to prevent the basic auth popup from
showing;
- concord-server: `dateTime` form fields are now converted into UTC
on submit;
- agent-operator: when checking the queue's status, filter out
processes with `startAt` in the future;
- docker-images: python 2 to 3 migration, ansible 2.8 by default;
- ansible: python 2 to 3 compatibility fixes;
- concord-server: fixed the checksum of the `170000` changeset;
- concord-server: fixed an issue of the `runtime` parameter not being
passed correctly to the process' forks.
## [1.65.0] - 2020-09-09
### Added
- concord-console: hyperlinks to individual log segments so
users can share/access a segment instead of scrolling;
- concord-server: support for added/removed/modified `files`
in GitHub push trigger conditions;
- runtime-v2: support nested variables in
`configuration.events.inVarsBlacklist`/`outVarsBlacklist`;
- concord-agent: option to keep the workDir in a configured
directory after the process ends;
- concord-console: allow changing owners of secrets;
### Changed
- concord-console: keep the "system" segment open by default
so users can see overall progress;
- concord-server: `USERS.IS_ADMIN` column is deprecated and
its usage has been removed from the code;
- runtime-v2: working process checkpoints support.
## [1.64.0] - 2020-09-02
### Added
- runtime-v2: support for expressions in checkpoint names.
### Changed
- runtime-v2: improved error message when trying to assign a
non-serializable value into a `TaskResult`;
- concord-console: increase the number of visible log segments
to 100 (was 30);
- concord-server: change the wording of the maximum number of
dependencies error message;
- runtime-v2: merge EventConfiguration when loading multiple
resources. Allows users to specify the `events` configuration in
any Concord YAML file available for the process;
- concord-server: fixed the maximum number of dependencies error
message;
- runtime-v2: create a single merged `event` configuration from
`event` sections of all loaded Concord YAML files.
### Breaking
- runtime-v2: rename `SecretParams#name` to `secretName`. Affects
the secret creation methods in `SecretService`);
- runtime-v2: assume `retry.delay` is in seconds (like in v1).
## [1.63.0] - 2020-08-30
### Added
- concord-imports: support for `dir` imports (external directories),
disabled by default;
- crypto-tasks: an action to create new secrets (runtime-v2 only);
- concord-server: JSON store data can now be updated by either `POST`
or `PUT` method;
- runtime-v2: support for nested `set`;
- runtime-v2: support for `out` variables in `try` and `block`
steps;
- runtime-v2: support for naming of `log`, `throw` and `expr` steps;
- runtime-v2: additional `Variables#assert*` methods.
### Changed
- runtime-v2: fixed a potential NPE in the `retry` code when handling
exceptions w/o message;
- docker-images: remove `dumb-init` as Docker ships its own init
implementation;
- runtime-v2: when using `withItems`, `out` variables are now
collected into lists;
- concord-server: remove user's LDAP groups from the DB when
the account is disabled;
- runtime-v1: fixed an issue when GitHub triggers without `version`
were treated as v1 triggers;
- concord-console: new look for the runtime v2 log viewer;
- concord-console: fix layout of the JSON store query editor;
- iam-sso: mark the SSO cookie as "secure";
- ansible: fixed an issue when `ignore_error` values were saved
"as is" in Ansible events (e.g. unevaluated expressions);
- concord-agent: do not print out the process' `sessionToken` in
logs;
- concord-console: fix manual refreshing of the process list;
- concord-server: allow nested metadata filters in
`GET /api/v2/process` and `GET /api/v2/process/count` endpoints;
- concord-server: runtime-v2 compatibility for processes started via
the browser link (aka "the process portal").
### Breaking
- concord-server: the process list entries
(`GET /api/v2/process` endpoint) no longer include `imports`.
## [1.62.0] - 2020-08-19
### Added
- concord-server: a way to deploy the DB schema without
`SUPERUSER` role and/or `CREATE EXTENSION` privileges;
- concord-console: a way to open a process log at a specific
checkpoint by using `#/process/{id}/log#{eventCorrelationId}`;
- runtime-v2: the v2 SDK now provides the `DependencyManager`
interface.
### Changed
- concord-client: `ClientUtils#getHeaders` now correctly assumes
case-insensitivity of header names;
- concord-server: `OrganizationManager#create` and `#update`
replaced with a single `createOrUpdate` method;
- ansible: when using `auth.privateKey.path` don't remove the file
after the play's end.
### Breaking
- runtime-v2: `Task#execute` and `ReentrantTask#resume` now return
a new common result type - `com.walmartlabs.concord.runtime.v2.sdk.TaskResult`.
## [1.61.0] - 2020-08-13
### Added
- concord-agent: `CONCORD_JAVA_OPTS` environment variable can now be
used to specify additional JVM options.
### Changed
- concord-server: allow `null` values in process event data to
improve backward compatibility with older plugins;
- runtime-v2: warn about `@Singleton` tasks;
- runtime-v1, runtime-v2: `throw` with a string value doesn't
produce a stacktrace anymore;
- project: JDK 11 compatibility.
### Breaking
- runtime-v2: `ReentrantTask` now accepts `ResumeEvent` instead of
`Map<String, Object>`;
- runtime-v2: `@DefaultVariables` annotation was replaced with
`Context#defaultVariables()` method;
- runtime-v2: the SDK module no longer shares interfaces/types with
the v1 SDK:
- `ApiConfiguration`
- `DockerContainerSpec`
## [1.60.1] - 2020-08-05
### Changed
- concord-agent: fixed an issue preventing the Agent from working
in the `LOCAL` mode of [testcontainers-concord](https://github.com/concord-workflow/testcontainers-concord).
## [1.60.0] - 2020-08-05
### Added
- runtime-v2: support for `name` attributes in task, flow call and
expresion steps;
- concord-server: store process `dependencies` in
the `process_queue.dependencies` column;
- runtime-v2: `LockService` implementation;
- concord-server: expose the current number of processes with
"wait conditions" as a new metric - `process_queue_enqueued_wait`.
### Changed
- concord-agent: use process session token to append logs, download
state, update status, etc. Previously, agents used an API token from
the configuration file for such operations;
- concord-console: the refresh action of the process list page was
rewritten to use React Hooks;
- concord-console: fixed scrolling on the repository list page in
the presence of a modal dialog.
## [1.59.0] - 2020-07-30
### Changed
- concord-console: improved error handling, standartize refresh
indicators/buttons;
- concord-server: fixed the parsing of `process.maxStateAge`
configuration parameter.
### Breaking
- concord-server, concord-server-sdk: the `ProcessKey` interface
was replaced with a concrete type, moved from the server's `impl`
module;
- concord-server: remove the support for GitHub triggers v1.
The v1 triggers are deprecared since 1.32.0+.
## [1.58.1] - 2020-07-28
### Changed
- concord-server: count child processes towards the concurrency
limit;
- agent-operator: now correctly calculates the pod's
configuration hash, fixes an issue when pods where incorrectly
scheduled for replacement due to the pool's size changes;
- concord-server: perform all process key lookups via
`ProcessKeyCache`;
- concord-console: disable autocomplete for password fields on
the new secret page and when encrypting a string.
### Breaking
- concord-agent, concord-server, concord-cli: the configuration
parameters that previously used integers for duration values
(e.g. `repositoryCache.maxAge`) now use literal duration values.
## [1.58.0] - 2020-07-24
### Added
- concord-console: host status filter to the Ansible host list
page;
- runtime-v2: support for the `debug` mode.
### Changed
- runtime-v2: improved validation of the `script` step;
- concord-tasks: log the child process' URL;
- concord-cli: by default do not remove the `target` directory
after the process finishes;
- concord-cli: trim whitespace when reading single-value (string)
secrets;
- concord-server: fixed an issue preventing JSON store creation
requests from being correctly validated (i.e. disallow invalid
store names).
### Breaking
- concord-server: `java.util.Date` and `java.sql.Timestamp` used
in internal and external Java APIs are replaced with
`java.time.OffsetDateTime`;
- concord-server-db: `timestamp` columns are migrated to
`timestamptz`. The migration procedure requires the DB user to
have `SUPERUSER` privileges for the duration of the migration.
## [1.57.0] - 2020-07-22
### Added
- concord-server, concord-repository: an option to ignore
remote fetch if the local commit ID is the same as the remote
commit ID;
- concord-server: audit logs for API key creation and removal;
- policy-engine, concord-server: new policy `state`. Allows
control of various aspects of process state (size, filenames,
etc);
- runtime-v1: new option configuration option
`runner.enableSisuIndex`. Enables usage of the Sisu bindings
index;
- concord-server: creation of organizations now requires a
role with the `createOrg` permission.
### Changed
- concord-server: fixed an issue preventing the validation of
the request data from working correctly in JSON Store
endpoints;
- concord-repository: skip fetch if the local copy points to
the same commit;
- concord-repository: correctly release the repository's lock;
- concord-server: fixed a bug in the "process portal" page
template which was preventing the page from reloading;
- agent-operator: the API client now saves session cookies to
avoid the need to authenticate on every request;
- concord-server: allow users with the admin role to create
new LDAP-based accounts even if the user creation is disabled
for the realm;
- concord-task: fixed an issue preventing subsequent calls to
the task to fail when the suspend/resume feature is used;
- runtime-v2: now requires `sisu-maven-plugin` to be used in
all plugins.
## [1.56.0] - 2020-07-09
### Added
- concord-cli: initial support for `profiles`;
- concord-cli: option to remove the target directory before
the process starts;
- concord-cli: provide feedback while processing `imports`;
- concord-cli: the `run` command now supports profiles;
- dependency-manager: support for proxy servers (http/https);
- runtime-v2: support for `meta` attributes in `log` steps.
### Changed
- concord-server: fixed an issue with process wait conditions not
being cleared in time;
- concord-server: fixed a potential NPE in the repository cache
cleanup code;
- project: JDK11+ compatibility;
- concord-server: force all usernames to lower case to avoid issues
with AD/LDAP authentication and environments with multiple auth/z
providers.
## [1.55.0] - 2020-07-01
### Added
- runtime-v2: warn when a variable name "shadows" a task name;
- concord-server: lift restrictions on the format of usernames.
Allow `@` and other special characters;
- concord-server: a short project cache for GitHub triggers v1 to
avoid multiple DB queries when filtering out triggers;
- concord-tasks: runtime v2 compatibility;
- concord-server, agent-operator: fetch only process requirements,
configurable fetch depth;
- concord-server: new policy to control size of process attachments.
### Changed
- agent-operator: new CR template property `%%preStopHook%%` for
injecting the preStop hook script's content;
- concord-cli: `run` action now copies all files into the `target`
directory in the current directory;
- concord-client: the error message when the requested secret type
doesn't match the result now includes the name of the secret;
- policy-engine: no longer dependens on `commons-lang3`;
- concord-console, concord-server: `ENQUEUED` filter now includes
processes with `start_at < now`;
- concord-server: stop all background and scheduled tasks when
the maintenance mode is enabled;
- concord-repository: move cache directories before removing to
reduce the time spent while locked;
- concord-server: fix process status update in the queue batching
task;
- concord-server: optimize the session key validation by reducing
the amount of data pulled from the DB.
## [1.54.0] - 2020-06-24
### Added
- concord-console: an indicator for partially loaded log segments;
- runtime-v2: initial support for parallel block's in/out;
- runtime-v2: initial support for in/out variables in `parallel`
blocks;
- runtime-v2: initial support for "reentrant tasks" (tasks that can
be suspended and resumed);
- agent-operator: add the preStop script to the `dind` container;
- concord-server: additional metrics for github events - the number
of processes started/triggers fetched/etc per event;
- concord-console: new loading indicator for log segments;
- runtime-v2: add `projectInfo` to `context`;
- concord-cli: option to run individual Concord YAML files.
### Changed
- concord-server: when updating/moving a project assert name when no
ID given;
- concord-server: fixed the calculation of
the `enqueued-workers-available` metric;
- concord-console: updated Json Store capacity indicator;
- concord-console: auto refresh the child process list;
- concord-console: show open segments correctly when the system
segment's visibility changes.
## [1.53.1] - 2020-06-16
### Changed
- concord-server: fixed an issue preventing `useInitiator` from
being correctly handled by GitHub triggers.
## [1.53.0] - 2020-06-13
### Added
- concord-server: option to ignore "empty" `push` notifications
from GitHub;
- concord-server: optional batching mechanism for the `NEW` to
`ENQUEUED` transition;
- runtime-v2, concord-console: show `meta.segmentName` as the log
segment's name;
- concord-console: show GitHub event details in the "triggered by"
popup;
- docker-tasks: runtime v2 compatibility;
- runtime-v2: option to redirect `System.out` and `err` to segmented
logs;
- runtime-v2: support for `error` blocks in `call` steps;
- runtime-v2: `Context` can now be injected into tasks.
### Changed
- concord-repository: fixed an issue preventing `imports` from
being excluded from the process state;
- agent-operator: use `preStop` hooks instead of directly
removing pods;
- concord-server: OneOps specific endpoints extracted as a server
plugin;
- concord-console: re-load repository data when the process start
popup opens;
- ansible: improved error messages in lookup plugins for Concord
secrets;
- concord-console: the team list page and the "find a team" dropdown
are rewritten to use React Hooks instead of `react-redux`;
- runtime-v1: trim data when recording in/out variables;
- concord-console: the trigger list moved to the repository page
into a separate tab;
- concord-console: the login form was rewritten to use React Hooks
instead of `react-redux`;
- runtime-v2: `call` can now have multiple `out` variables;
- concord-server: the endpoint for creation of Inventory queries now
supports both `text/plain` and `application/json` content types;
- concord-server: disable key validation when uploading existing
SSH key pairs. The library (JSch) used to validate keys doesn't
support keys larger than 2048 bits.
### Breaking
- runtime-v2: the `Task` interface now accepts input `Variables`
instead of the context.
## [1.52.0] - 2020-06-03
### Added
- runtime-v2: `throw` step support;
- runtime-v2: record pre/post events for task called using
expressions;
- runtime-v2, concord-console: show the YAML file name on
the events tab.
### Changed
- concord-server: fix the adding of team members by user IDs;
- agent-operator: the autoscaler now scales up more rapidly and
scaled down more gradually;
- slack: reduce chattiness in the process log by moving some
of the log statements to `debug`;
- runtime-v2: replace custom service injector with Guice-based
injector;
- runtime-v2: more details when recording step events;
- runtime-v2: fix logging for steps without "proper"
segments - scripts, expressions, etc;
- runtime-v2: start the heartbeat as soon as possible;
- runtime-v2: support for the "short form" of task calling
has been removed;
- concord-server: re-initialize the process initiator when
creating a fork. This fixes an issue when a process fork is
created using an API key that belongs to a user other than
the parent process' current user.
### Breaking
- runtime-v2: support `@InjectVariable` annotations has been
removed.
## [1.51.0] - 2020-05-27
### Added
- runtime-v2: implement process heartbeat;
- concord-console: custom columns in the process list can now
use `requirements` as the `source`;
- runtime-v2: support for `error` blocks in `task` steps;
- dynamic-tasks: runtime v2 compatibility;
- concord-console: new "Duration" column in the process list.
Shows the amount of time spent `RUNNING` a process;
- noderoster-tasks: runtime v2 compatibility.
### Changed
- concord-console: `ENQUEUED` processes that are scheduled for
future (using `startAt`) can now be displayed separately from
regular `ENQUEUED` processes and vice versa;
- ansible: escape special characters when the command script
is created;
- concord-server: fixed an issue preventing the LDAP group
synchronizer from working correctly if there are previously
disabled user accounts;
- concord-console: use IDs when adding users to teams to avoid
issues with duplicate usernames or the need for `userType`
parameter. Allow `cron` and other system users to be added to
teams using the UI.
### Breaking
- runtime-v2: make all variables local. Variables must be
explictly passed between flows using `in` and `out` parameters;
- docker: rebase images on top of `centos:8`.
## [1.50.1] - 2020-05-19
### Changed
- concord-server: fix the "Unconnected sockets not implemented"
issue when connection timeout is used for LDAP connections.
## [1.50.0] - 2020-05-18
### Added
- concord-server: configurable `connectTimeout` and
`readTimeout` for LDAP calls;
- concord-server: log duration of GIT operations;
- runtime-v2: support for return and exit steps;
- ansible: new parameters to enable or disable various features:
`enableEvents`, `enableStats`, `enableOutsVars`;
- runtime-v2: support for expressions in call step;
- runtime-v2: grammar support for cron trigger's `timezone`;
- concord-cli: support for `crypto.exportAsFile`;
- runtime-v2: `template` support;
- runtime-v2: support for out variables;
- repository: support for "non detached" checkouts;
- runtime-v2: support for setting variables using `set`.
### Changed
- iam-sso: re-enable disabled user accounts on successful login;
- concord-server: fix handling of `Bearer` tokens;
- runtime-v2: in/out params in task events are now truncated to
limit the amount of data saved;
- runtime-v1: process metadata updates are now automatically
retried in case of errors;
- runtime-v2: add `concord/concord.yml`to the list of default
`resources`;
- runtime-v2: replace Jackson's `JsonLocation` with a custom type;
- runtime-v2: log step execution errors with the step's location;
- runtime-v2: the default expression evaluator now implements
different evaluation rules for process arguments, task inputs and
`set` steps.
## [1.49.0] - 2020-05-06
### Added
- concord-cli: support for `imports`;
- concord-cli: allow specifying an `entryPoint`;
- concord-cli: support for `crypto.exportAsString`;
- concord-cli: initial support for `crypto.decryptString`;
- concord-cli: initial support for "default variables". The built-in
variables provide some useful defaults for the Ansible plugin;
- runtime-v2: support for process metadata;
- runtime-v2: support for "processTimeout", "exclusive", "events"
and "requirements" elements;
- runtime-v2: allow process suspension via `Context#suspend` method;
- concord-server: show a custom 404 page when a form is not found;
- misc-tasks, datetime-tasks: runtime v2 compatibility;
- lock-tasks: runtime v2 compatibility;
- ansible: runtime v2 compatibility;
- locale-tasks: runtime v2 compatibility;
- smtp-tasks: runtime v2 compatibility;
- concord-server, concord-console, concord-agent, runtime-v2:
initial implementation of "segmented" process logs. Each task now
gets a separate segment of the process log and can be shown on
the UI individually;
- log-tasks: add `level` parameter to the v2 version of the task;
- concord-agent: configurable default JVM parameters;
- concord-console: show `startAt` to the process toolbar;
- concord-server: make the embedded Jetty aware of proxy headers
such as `X-Forwarded-For`;
- concord-server: audit log now includes API key IDs.
### Changed
- runtime-v1: fixed an issue preventing process variables from being
passed into an `onFailure` handler if the parent process fails with
an unhandled exception;
- concord-agent: log dependency check results using `WARN` level;
- runtime-v2: fix github trigger's exclusive attribute definition;
- ansible: improved detection of the `setup` task type;
- project: replace ollie dependency with ollie-config;
- concord-server: fix the "show only user's organizations" toggle;
- concord-console: don't do the initial search when the Node Roster
page opens;
- concord-server, concord-console: fixed the behaviour of
the "show only user's organizations" toggle on the organizations
list page.
## [1.48.1] - 2020-04-22
### Changed
- concord-server: fixed an issue when the `requestInfo` variable
isn't provided in some cases (regression);
- concord-server: fixed an issue when the `projectInfo` variable
is overwritten with an incorrect value when the process is resumed
(regression).
## [1.48.0] - 2020-04-21
### Added
- kv-tasks: runtime v2 compatibility;
- resource-tasks: runtime v2 compatibility;
- crypto-tasks: runtime v2 compatibility;
- runtime-v2: optional support for "segmented logs" where each
task call gets its own log file;
- log-tasks: runtime v2 compatiblity;
- throw-tasks: runtime v2 compatibility;
- runtime-v2: support for `resources`;
- runtime-v2: support for `script` steps.
### Changed
- concord-server: public organizations are now visible for
everyone regardless of membership;
- concord-server: organization owners can now see their
organizations even if they don't belong to any team in it;
- concord-server: fixed the even type filter when querying
repository events;
- policy-engine, concord-server: remove deprecated and unused
`queue` policies - `process`, `processPerOrg` and
`processPerProject`;
- runtime-v2: improved "method not found" error messages when
evaluating expressions;
- runtime-v2, concord-server: improved detection of
the `runtime` parameter. Now it can be specified in
the `configuration` section or in the request parameters;
- runtime-v2: the expression evaluator now correctly supports
partial evaluation of nested data;
- concord-server: some endpoints that were previously
automatically creating users no longer do so. E.g. when
specifying an owner of a JSON store, the user record must
exist beforehand;
- concord-project-loader: allow `runtime` to be specified
externally, e.g. in process request parameters;
- ansible: improved validation of `inventory` and
`vaultPassword` parameters;
- concord-server: make the "Copying the repository's data"
message shorter, don't print out the repository's metadata;
- concord-server, concord-agent, runtime-v1, v2: major
process/runner configuration refactoring. The process' session
token is no longer saved as a file in the working directory,
but passed as a process configuration field;
- repository: removed delay between `fetch` retries.
## [1.47.1] - 2020-04-10
### Changed
- concord-agent: fix "preforking" by removing the process'
session key from runner configuration files;
- concord-server: removed old LDAP user search endpoint
`/api/service/console/search/users` and all associated code.
## [1.47.0] - 2020-04-08
### Added
- runtime-v1, runtime-v2, concord-server: support for
`publicFlows` - a top-level element with a list of public flows.
Only public flows are allowed to be used as `entryPoint` values;
- concord-server: additional audit logging for user
management - account creation/update, enabling or disabling
of the account;
- iam-sso: option to convert user domain names via
`sso.domainMapping` configuration parameter;
- http-tasks: initial support for runtime v2.
### Changed
- concord-server: improved validation of API key names, improved
handling of duplicates;
- runtime-v2: now the runtime evaluates only top-level variables
in task, form and flow call parameters to avoid undesirable
"interpolation" of nested values;
- concord-server: when executing `ldap.principalSearchFilter`
pass username and domain values separately in additional
arguments;
- concord-agent: the start script no longer depends on `uuid`
executable.
## [1.46.0] - 2020-04-02
### Added
- runtime-v2: support for `if` and `switch` steps;
- runtime-v2: support for lists in `githubOrg` and `githubRepo`
conditions in `github` triggers;
- runtime-v2: ability to save all task call results in the process
state for later use. Useful for implementing policies that restrict
flow execution based on results of previously called tasks;
- concord-server: automatically re-enable AD/LDAP user accounts
that were previously disabled by the AD/LDAP synchronization
process;
- runtime-v2: `DockerService` support;
- runtime-v2: support for task policies.
### Changed
- concord-server, concord-agent: externalize default git operation
timeout duration. Increase default value to ten minutes;
- concord-server: treat empty project name as null when updating
secret. This fixes an issue preventing users from being able to
"unlink" secrets from projects.
## [1.45.0] - 2020-03-30
### Added
- runtime-v2: initial support for checkpoints;
- runtime-v2: support for multiple `TaskProvider` instances;
- runtime-v2: initial implementation of `SecretService` and
`FileService`;
- concord-server: option to generate the default admin API token on
start;
- runtime-v2: support for triggers;
- runtime-v2: process event recording;
- http-tasks: response headers are now saved into the result
variable;
- concord-console: alternate shading for actionable tables and lists;
- concord-server, concord-agent: configurable repository locks.
The maximum number of concurrent Git operations can now be configured
in the Server and Agent configuration files;
- runtime-v2: initial support for task defaults (default task
variables).
### Changed
- concord-console: some of user selection fields (e.g. a project
owner field) now perform search using the DB data, without accessing
external AD/LDAP servers;
- concord-agent: fixed a potential race condition when
the maintenance mode is activated;
- dependency-manager: disable Aether caching, allows
`snapshotPolicy.updatePolicy` to work correctly;
- concord-console: make the scroll up button always visible;
- concord-tasks: `requirements` are now correctly passed into the API
request;
- vagrant: fixed the database container startup.
## [1.44.0] - 2020-03-12
### Added
- concord-server: configurable CORS origin;
- concord-console: ability to filter processes by a repository
name;
- new server plugin: `oidc`. Allows user authentication using an
OpenID Connect provider;
- concord-tasks: `meta` field can now be specified when starting or
forking processes using the `concord` task;
- concord-cli: initial support for running v2 flows;
- runtime-v2: support for `imports`;
- runtime-v2: support for running v1 tasks.
### Changed
- ansible: no longer requires `ujson` Python module. The module is
still included into the `concord-ansible` image for backward
compatibility with older version of the Ansible plugin;
- ansible: when recording events make sure that "unsafe strings"
(`AnsibleUnsafeText`) are truncated just like regular strings. This
prevents large amount of data from getting into the event's payload;
- ansible: fix `concord_data_secret` lookup when used with Python 3;
- http-tasks: show `Authorization` header value in `debug` mode;
- http-tasks: validate the `auth.basic.token` value;
- concord-console: limit the number of rows returned when running
JSON store queries;
- concord-console: fixed the secret move popup's message;
- concord-console: fixed vertical alignment in the repository events
table.
## [1.43.0] - 2020-03-05
### Added
- concord-tasks: ability to pass `requirements` into the called
process;
- concord-server: `v2` syntax for generic and OneOps triggers;
- concord-server, concord-console: ability to move project and
secrets across organizations;
- smtp-tasks: disable debug output by default, add `debug` option;
- concord-console: show the process status in the window's favicon.
### Changed
- concord-server: fixed the raw payload mode check. Now if the
project's raw payload mode is set to "Only team members", the server
correctly looks for team members with `READER` access level or
higher;
- http-tasks: honor the `ignoreErrors` value when handling
"unauhorized" (401) responses;
- ansible: the sensitive data filter is now opt-in by default and
can be enabled with the new `enableLogFiltering` parameter;
- concord-server: fixed handling of GitHub `team` events. Now it
correctly calculates the appropriate `githubRepo` values;
- concord-server: if `startAt` value is in the past, log the current
server time in the error message;
- concord-console: make `lastUpdatedAt` available as one of
the built-in columns again.
## [1.42.0] - 2020-02-26
### Added
- concord-console: the repository edit page was redesigned to include
the new "Events" tab. Currently, the "Events" tab allows users to see
incoming GitHub events which can be used to debug trigger conditions
or monitor the repository traffic;
- concord-server: new `saveAs` parameter in the process resume
endpoint. Allows saving the received JSON body as the specified
process `configuration` value;
- misc-tasks: new `datetime.currentWithZone` methods to get
the current date/time for a specific time zone;
- concord-sdk: new `Context#interpolate(Object, Map<String, Object>)`
method to interpolate values using the specified `Map` as variables.
### Changed
- concord-server: process "wait conditions" (locks, waiting for other
processes, etc) are now processed in batches;
- concord-server: the process queue dispatcher now able to handle
multiple processes per projects at the time;
- ansible, noderoster: trim the data (host names, host groups and
task names) before inserting it into the DB;
- concord-console: the `lastUpdatedAt` column was removed from all
default process lists. It still can be used in custom column
configurations;
- concord-tasks: fixed a bug causing duplicate entries in the `jobIds`
variable when multiple forks start;
- concord-server: better validation of JSON Store query results.
The server expects single column results with valid JSON objects as
values and will report so if the query results don't pass the
validation;
- smtp-tasks: better validation of input parameters;
- concord-tasks: make sure the API response's body is closed, prevent
leaks.
## [1.41.0] - 2020-02-13
### Added
- kv-tasks: allow calling from `script` environment;
- project-model: support for expressions in retry parameters;
- concord-server: support for non-repository GitHub events (e.g.
`team`, `organization`, etc);
- concord-console: date/time filters for the audit log.
### Changed
- ansible: improved Python 3 compatibility;
- concord-server: fixed the `repoId`/`repoName` filter in the
`/api/v2/process` endpoint;
- concord-server: fixed a bug in the process queue dispatcher when
a process with `requirements` that cannot be satisfied could block
other processes in the same project from being dispatched to
workers;
- slack-task: allow sending messages with JSON and support updates;
- slack-task: make the `action` parameter of the `slackChannel`
task case-insensitive;
- concord-task: multiple process forks are now started in parallel.
## [1.40.0] - 2020-02-06
### Added
- concord-task: option to disable `debug` logging, including
the process arguments;
- concord-server: support for filtering on repository ID or name in
`/api/v2/process` and `/api/v2/process/count` endpoints;
- concord-console: initial version of the Node Roster UI;
- concord-console: new "Audit Log" tab on the organization,
project, team, secret and JSON store pages;
- policies, concord-server: ability to set default configuration
for processes using the new `defaultProcessCfg` policy;
- slack: new parameter `replyBroadcast`. If `true` a reply to a
thread is also posted to the channel.
### Changed
- concord-console: support for calling processes with arguments
using manual triggers;
- concord-server: improvements in audit logging of team changes.
Now the audit events contain the change's delta;
- concord-server: only JSON objects (Java Maps) are now allowed
as JSON Store items.
## [1.39.3] - 2020-01-29
### Added
- concord-agent: make the maintenance mode port configurable.
### Changed
- k8s: the example CRDs were updated to include the pod's name into
the agent's `capabilities`;
- concord-server: the process queue dispatcher now sends responses
outside of the global lock;
- concord-console: fixed "flickering" when switching between
playbooks in the new Ansible UI;
- ansible: callback plugins updated to support both Python 2 and 3;
- concord-server: the `/api/v1/process/{id}/log` endpoint now
performs additional permissions check. Now only initiators, project
`WRITERS`, admins and "global readers" can access process logs.
Disabled by default.
## [1.38.2] - 2020-01-23
### Changed
- concord-server: fixed negative maxSize in JSON store capacity
response;
- concord-server: fixed the existence check when creating or
updating an inventory.
## [1.38.1] - 2020-01-22
### Changed
- concord-server: fixed a potential NPE when handling non-repository
GitHub events (issues, teams, etc);
- concord-server: revert changes in `/api/v1/org/${orgName}/inventory/${inventoryName}/data`
endpoints.
## [1.38.0] - 2020-01-21
### Added
- concord-server: configurable max request size for the embedded
Jetty server;
- new JSON Store API, UI and a flow task;
- concord-server: provide `event.commitId` variable for
`pull_request` and `push` events in `github` triggers;
- node-roster: initial version;
- concord-server, concord-console: disable checkpoint restoration for
suspended processes;
- concord-console: pagination to the process wait conditions page;
- dependency-manager: support for authentication and release/snapshot
policies;
- ansible: allow mix and match of inline inventories and file paths;
- concord-console: customizable pages for external resources
presented as iframes.
### Changed
- concord-server: the Inventory API is deprecated in favor of the
JSON Store API;
- concord-console: fixed pagination of the child process list;
- concord-server: the system trigger (responsible for refreshing
repositories) now correctly triggers only on "push" events;
- concord-server: when refreshing trigger definitions in the DB,
the server now correctly detects changes and updates/replaces only
the changed triggers;
- concord-console: require an additional confirmation when removing a
repository;
- concord-server: show the `available_worker` metric even if all
workers of a specific "flavor" are gone;
- concord-server: escape expressions (`${}`) in external event data.
All string values in the `event` variable (which is provided for
processes triggered by external events) will have their `${` escaped
as `\${`;
- concord-cli: fix the build, the standalone JAR is now runnable
again;
- ansible: fixed processing of events that are created by the task
called in an expression.
## [1.37.1] - 2020-01-06
### Changed
- variables-task: fixed an interpolation issue in the `set`
implementation. Now it correctly works for nested values that are
referencing variables from the "outside" scope.
## [1.37.0] - 2020-01-02
### Added
- docker: option to use the container's user instead of forcing
the default Concord UID;
- concord-console: project configuration editor;
- slack: new action `addReaction`;
- concord-server, plugins: new server plugin `kafka-event-sink`.
Sends process events into a Kafka topic;
- concord-server-sdk: new interfaces `ProcessEventListener`,
`AuditLogListener` and `ProcessLogListener`. Allows server plugins to
listen for process-level events, process logs and audit events.
### Changed
- slack: make `authToken` and `apiToken` parameters interchangeable;
- kv-tasks: disallow `null` or empty keys;
- concord-server: fixed an RBAC issue when loading extended process
event data. Now the `/api/v1/process/PROCESS_ID/event?includeAll=true`
correctly checks for org/project permissions and ownership;
- project-model-v1: merge `dependencies` lists from all loaded
Concord YAML files;
- docker: expose the host's `DOCKER_HOST` to the containers running
in the `docker` task;
- concord-console: fixed the dropdown behavior in the operation
confirmation popup;
- variables-tasks: fixed an interpolation issue when multiple
dependant values are `set` simultaneously;
- http: fixed a potential NPE on empty responses;
- concord-server, concord-console, ansible: hosts statuses are now
limited to `ok`, `failed` and `unreachable`. Fixes the host status
calculation and reduces the number of recorded host events;
- concord-server, concord-console, ansible: fixed handling of retries
in the new Ansible UI;
- concord-server, concord-console: fixed the failed hosts/tasks
request for processes with multiple playbook executions;
- concord-server: fixed a division by zero error when calculating
Ansible play progress;
- ansible: correctly handle Jinja2 expressions in host groups when
recording events;
- concord-server: sanitize `\u0000` in strings when inserting JSONB
data (e.g. process events).
### Breaking
- concord-agent: support for the container-per-process execution mode
is removed. It will be brought back in the future as a a separate
type of Agent;
- concord-agent: `runner` configuration section is renamed to
`runnerV1` to better support alternative runtimes.
## [1.36.1] - 2019-12-11
### Changed
- ansible: improved handling of `currentRetryCount` attributes in
playbook events. This fixes an issue that was preventing Ansible
events from being correctly processed by the server.
## [1.36.0] - 2019-12-09
### Added
- concord-console: the about page now shows the date when the
environment was last updated (optional, requires update of `cfg.js`);
- concord-console: support for multiple profiles in the repository
run dialog;
- server: optional caching of LDAP query results;
- http: default `User-Agent` value, contains the version of
the plugin;
- imports: ability to `exclude` files when importing external
resources;
- concord-console: additional process menu links can now be specified
using the `cfg.js` file;
- ansible, concord-console: new view for Ansible runtime statistics;
- concord-server: optional rate limit for the process start
endpoints;
- slack: new option to `ignoreErrors`;
- concord-server: cache for policies;
- concord-server, concord-console: the "new project" and the "new
secret" buttons can now be disabled on the organization level using
an `entity` policy;
- concord-server, concord-agent: configurable LRU cache for GIT
repositories;
- concord-console: pagination for the project list;
- docker, ansible: automatic retries when pulling images;
- concord-server: configurable hard limit for the process log size;
- ansible: new parameter `enablePolicy` to apply Concord policies to
plays;
- concord-server: new endpoints `/api/v1/agent/all/workers` and
`/api/v1/agent/all/workersCount` to retrieve the list of currently
available agent workers and the number of available workers grouped
by a property in agent `capabilities`;
### Changed
- concord-server, concord-console: when validating repositories
return errors and warnings separately. Downgrade a missing
`entryPoint` reference in triggers to a warning;
- concord-console: project and secret visibility is now private by
default;
- concord-console: fixed missing support for `activeProfiles` for
manual triggers;
- concord-console: updated look of the process status toolbar;
- concord-server: enabled support for `onFailure`, `onCancel` and
other process handlers for forks;
- slack: better handling of invalid response codes, increase delay
between retries;
- concord-service: replace `WatchService` with simple polling to
better support the reloading of the default process configuration in
Docker environment;
- runtime-v1: move the processing of `imports` to the `ProjectLoader`;
- concord-console: better handling of undefined process metadata
values;
- runtime-v1: fixed an issue with nested `retry` blocks;
- concord-server: handle processes stuck in the `PREPARING` status;
- concord-server: fixed an issue preventing the `github` trigger's
`useEventCommitId` from working correctly;
- concord-server: upgraded to Ollie 0.0.33;
- concord-server: additional permission checks when downloading
process attachments. Now only process initiators, project owners or
admins can download attachments;
- ansible: disable Concord policies by default;
- dependency-manager: better handling of partially downloaded
artifacts;
- concord-console: show the last error icon on the process status page;
- concord-server: forks now re-use the parent process' `imports`.
### Breaking
- concord-server: the `/api/v1/process/{id}/kv/{key}/string` endpoint
now returns `Content-Type: text/plain` instead of `application/json`.
This fixes an issue with non JSON strings;
- concord-server: make the v2 the default version for `github`
triggers. The existing projects must update their `github` trigger
definitions or set the default version in the server configuration
file;
- concord-console: the image is removed. The Console files are
now served by the Server itself;
- concord-runner: remove deprecated process definition attributes:
- `__attr_localPath`;
- concord-sdk: remove deprecated interfaces and annotations:
- `com.walmartlabs.concord.common.InjectVariable`;
- `com.walmartlabs.concord.common.Task`.
## [1.35.1] - 2019-10-17
### Changed
- concord-server: additional configuration settings for the handling
of suspended processes;
- concord-server: improve the asynchronous processing of external
events;
- concord-server: fix a potential issue when GitHub triggers a
process without a valid user account.
## [1.35.0] - 2019-10-16
### Added
- concord-console: the repository links that end with `.git` are now
correctly displayed on the process status page;
- concord-server: new `agent-workers-available` metric, shows how
many Agent worker slots are available;
- docker: support for capturing the command's `stderr` in addition to
`stdout`;
- http-tasks: support for `multipart/form-data` requests;
- concord-agent: support for running processes with custom JVM
parameters.
### Changed
- concord-runner: sort dependencies before loading to ensure
consistent class loading;
- concord-server, concord-console: fill-in the process status page's
"Triggered By" for processes triggered by `cron`;
- concord-agent: fix system log messages that may appear out of order
in the process log.
## [1.34.3] - 2019-10-07
### Changed
- concord-server: ignore individual errors when refreshing multiple
repositories at once;
- concord-server-db: add missing index on
`PROCESS_CHECKPOINTS (INSTANCE_ID)`;
- concord-server: some optimizations for the Ansible event
processing;
- concord-server: optimize `GET /api/v2/process` endpoint, equality
filter on metadata fields is now much faster;
- concord-server: additional metrics for LDAP and Ansible event
processing.
## [1.34.2] - 2019-09-27
### Changed
- concord-runner: update BPM to 0.58.2, enables interpolation of
expressions in form field labels;
- concord-server: fixed an issue preventing `useInitiator: false`
from working correctly for GitHub triggers.
## [1.34.1] - 2019-09-22
### Changed
- concord-server: fixed the system trigger definition. Now it
correctly fires up on changes in all registered repositories.
## [1.34.0] - 2019-09-19
### Added
- concord-server: new endpoint `/api/v2/process/count`. Returns
the number of processes for the specified filters;
- dependency-manager: automatic retries, improved error reporting;
- concord-server: the `/api/v2/process` endpoint now supports
different types of metadata filters (`eq`, `startsWith`, etc);
- concord-server-sdk: now provides metrics annotations (e.g.
`@WithTimer`).
### Changed
- concord-agent: dependency resolution logs are now correctly
sent back to the server;
- concord-server: fix `STARTING` statuses not being registered in
the process history;
- concord-server: the `ping` endpoint now checks for the DB
connection;
- concord-server: the repository refresh process is updated to use
GitHub triggers v2.
### Breaking
- concord-server: the `/api/2/process` endpoint now requires a
project ID or a project name to be specified when metadata filters
are used;
- concord-server: the entity policy's attribute `trigger.name` is
renamed to `trigger.eventSource`.
## [1.33.0] - 2019-09-07
### Added
- concord-runner: additional logging when the process heartbeat is
restored;
- concord-server: configurable key size for generated key pairs;
- concord-server: expose Jetty Sessions metrics;
- concord-task: new method `getOutVars` to retrieve out variables of
already running or finished processes;
- concord-task: support for `outVars` for `action: fork` when
`suspend` is enabled;
- concord-server: new `exclusive` syntax for triggers and regular
processes.
### Changed
- concord-server: optimize the agent command dispatching;
- concord-console: fixed overflowing in the Ansible event list popup;
- concord-server: fixed an issue with incorrect process status
transition of forked processes;
- concord-server: fixed an issue preventing the process wait
condition history from being correctly filled in.
## [1.32.0] - 2019-09-04
### Added
- concord-server: the process resume event name is now exposed as
`eventName` variable. It can be used to detect when the process is
restored from a checkpoint or resumed after suspension;
- concord-server: regexes are now supported in the process'
`requirements`;
- concord-tasks: `suspend` support for `action: fork`;
- concord-tasks: new method `suspendForCompletion` - suspends
the parent process until the specified processes are done;
- http-tasks: option to disable automatic redirect follow with
`followRedirects: false`;
- concord-server, project-model: initial version of the new
streamlined GitHub trigger implementation (opt-in).
### Changed
- concord-console: fixed a date-formatting bug preventing `date` and
`dateTime` process form fields from working correctly;
- ansible: fixed an issue preventing the host status callback from
working correctly when the host is unreachable;
- ansible: callback plugins now send a custom `User-Agent` header;
- concord-server: optimize the process dispatching, perform filtering
on the server's side;
- concord-server: parallel processing of external event triggers;
- concord-console: hide form actions on the process status page if
the process is stopped;
- concord-agent: move some of the system log messages to the `debug`
level;
- concord-server: additional logging when the process is enqueued.
## [1.31.1] - 2019-08-27
### Changed
- concord-console: new icon for the `NEW` process status;
- concord-console: fix the process status page refresh.
## [1.31.0] - 2019-08-27
### Added
- concord-runner: additional diagnostic when the process state
contains non serializable variables;
- concord-runner, concord-sdk: expose the `DependencyManager` to
plugins. Allows plugins to download external artifacts using a
persistent cache directory;
- concord-console: add pagination and server-side filtering to
the organization list page;
- concord-console: display trigger information on the process status
page.
### Changed
- concord-server: allow overriding of `requirements` with `profiles`;
- inventory: the `query` method now automatically retries in case of
network or intermittent backend errors;
- concord-server: fixed an issue preventing processes that were
scheduled for future (using `startAt`) from resuming correctly;
- docker-tasks: now `stdout` output is captured without Docker system
messages (i.e. without the image download messages);
- concord-console: relax validation rules for `git+ssh` repository
URLs. Allows usage of non-GitHub GIT URLs;
- concord-server: fixed an issue preventing the "payload archive"
endpoint (the one that accepts ZIP archives as
`application/octet-stream`) from working.
## [1.30.0] - 2019-08-18
### Added
- concord-server: expose "the number of enqueued processes that must
be executed now" as a separate metric (i.e. without `startAt` or with
`startAt` in the past);
- concord-server: expose `repoBranch` and `repoPath` in
the `projectInfo` variable;
- concord-console: show the process' timeout of the status page;
- project-model: support for `retry` for flow `call` blocks.
### Changed
- http-tasks: skip certificate validation for all certificates (not only
for self-signed);
- concord-server: process start requests are now handled
asynchronously. The process queue entry is created as soon as
possible with the `NEW` status and processes in a separate thread
pool;
- ansible: fixed passing of `--ssh-extra-args` parameters;
- concord-agent, queue-client: replace `maxWebSocketInactivity`
parameter with `websocketPingInterval` and
`websocketMaxNoActivityPeriod`. Use the latter to detect dead
connections.
## [1.29.0] - 2019-08-06
### Added
- concord-server: process events now can be filtered by their
sequence ID in the `/api/v1/process/{id}/events` endpoint.
### Changed
- concord-server: allow project `OWNERS` to download state archives
of the project's processes;
- concord-server: record `github` events before starting any
processes;
- http-tasks: use `UTF-8` for string and JSON requests by default;
- concord-server, concord-ansible: use the event's timestamp instead
of the DB's timestamp when recording events (if available);
- concord-console: fix the project payload settings being applied
when the settings page opens;
- concord-console: use the same process toolbar on all tabs on the
process page.
## [1.28.1] - 2019-08-01
### Changed
- concord-server: use MDC to log process ID in the pipeline
processors;
- http-tasks: improved input parameter validation, additional validation
for JSON responses;
- concord-console, concord-runner: fixed displayed duration for
Ansible and process events;
- concord-server: allow retrieval of public keys of project-scoped
key pairs;
- ansible: improved calculation of host statuses during playbook
execution.
### Breaking
- concord-server: `sync=true` option is removed. Processes can no
longer be started in the "synchronous" mode, users should poll for
the process status updates instead.
## [1.28.0] - 2019-07-27
### Added
- concord-server: save external `github` events into the audit log;
- concord-server: save the process' trigger information in the
process queue. The process endpoints now return the new `triggeredBy`
field;
- concord-console: display the process' `startAt` on the process
status page;
- concord-server: support for multiple `user` entries in the form's
`runAs` block;
- sleep-tasks, concord-server: a way to suspend a process until the
specified date/time.
### Changed
- concord-server, concord-console: the `acceptsRawPayload` property
in projects is replaced with `rawPayloadMode`. The old property is
deprecated. New projects are created with `rawPayloadMode: DISABLED`
by default;
- concord-tasks: fixed an issue when a subprocess is started using an
API key specified by the user with `suspend: true`;
- ansible: the `limits` parameter now accepts list and array values;
- concord-server: some optimizations for the process event processing
(including Ansible). Reduces the contention on the process queue
table;
- ansible: fixed an issue with events not being sent to the server in
some cases;
- concord-server: make organization names optional when using secrets
in `imports`;
- concord-console: fixed an issue with the profile selection in
the manual trigger popup;
- concord-console: hide system files in the process attachments list;
- concord-server: fixed an issue preventing `imports` from working
correctly in `onFailure` and other handlers;
- concord-console: add process tags to the process status page;
- concord-server: process `tags` can now be specified using a
comma-separated startup argument, e.g. `curl -F tags=x,y,z`;
- concord-server: store repository info (commit ID, commit message,
etc) early in the pipeline to preserve the data in case or process
startup errors (e.g. bad syntax).
## [1.27.0] - 2019-07-20
### Added
- http-tasks: support for `application/x-www-form-urlencoded`
(`request: form` type);
- concord-server, concord-console: pagination for the secret list;
- concord-server: support for "exclusive" triggers and "exclusive"
execution groups;
- concord-console: a form to change the secret's project.
### Changed
- bpm: updated to `0.58.1`, resolves an issue with incorrect
`context#getCurrentFlowName()` value in some cases;
- project-model: fixed a bug preventing `withItems` and `retry` from
working correctly when used together;
- concord-server: process statup errors now correctly shown when
the "browser link" is used;
- concord-server, concord-console: fix the Ansible event status
calculation;
- ansible: fixed an issue with using arrays as the `tags` parameter
values.
## [1.26.0] - 2019-07-10
### Added
- concord-console: add the UI's version to the About page.
### Changed
- concord-console: fixed the issue with duplicate results in
the "find user" field;
- concord-server: fixed potential NPE when searching users in
AD/LDAP (e.g. by using the Console's "find user" field);
- concord-console: fixed the bug preventing the clear button on the
process list's filter popup from working.
### Breaking
- concord-server: the inventory subsystem now only accepts JSON
objects as top-level entries;
- concord-server: the "Landing Page" support is removed.
## [1.25.0] - 2019-07-02
### Added
- concord-server: support for triggers in `entity` policies.
### Changed
- concord-server: GitHub trigger's `useInitiator` is now correctly
runs the process using the commit user's security context. This fixes
the issue with child processes not inheriting the initiator;
- concord-server: fixed the handling of `queue.concurrent` policies:
enqueued processes now track each running process instead of a single
one;
- concord-console: fixed the issue when a repository refresh error
persists even after the refresh dialog is closed.
## [1.24.2] - 2019-06-27
### Changed
- concord-server: use GitHub event's `ldap_dn` to determine the
event's initiator.
## [1.24.1] - 2019-06-27
### Changed
- concord-server: fixed the login when format of usernames
provided by users didn't match the data returned by the AD/LDAP
server;
- concord-server: fixed the initial loading of default process
configuration.
## [1.24.0] - 2019-06-25
### Added
- concord-server: automatic reload of `defaultConfiguration` file
without restart;
- http-tasks: support for query parameters;
- concord-server: option to disable automatic user creation for
the LDAP realm;
- concord-console: display error details for `FAILED` processes;
- concord-server, concord-console: support for AD/LDAP domains,
custom username validators;
- concord-server: API endpoints for role and permission management;
- concord-console: add "copy to clipboard" buttons to entity IDs;
- concord-server, concord-console: initial implementation of "manual"
triggers;
- project-model: `error` blocks support for `script` steps.
### Changed
- http-tasks: make `method: GET` default;
- concord-server: drop the `process_checkpoint` to `process_queue`
FK, use a cleaning job instead. Enabled usage of partitioning for
the `process_checkpoints` table;
- docker-tasks: remove dependency on `io.takari.bpm/bpm-engine-api`;
- concord-runner, docker-images: use `file.encoding=UTF-8` by
default. Fixes the issue with Unicode passwords;
- concord-server: correctly pass the parent's `requirements` when
forking a process.
## [1.23.0] - 2019-06-17
### Added
- smtp: support for attachments.
### Changed
- concord-server: fix symlink handling when importing the process
state;
- concord-tasks: fix the kill action. Now it is correctly accepts
the `instanceId` parameter.
## [1.22.0] - 2019-06-16
### Added
- concord-cli: initial release;
- project-model: support for configurable resource paths such as
`./profiles`, `./flows`, etc;
- project-model: new trigger type - `manual`. Can be used to
configure process entry point available through the UI;
- ansible: initial support for installing additional pip packages
using Python's virtualenv;
- ansible: support for multiple vault IDs/passwords;
- concord-runner: configurable time interval without a heartbeat
before the process fails;
- concord-runner: the current flow name is now available via
`${context.getCurrentFlowName()}` method;
- concord-server: return a list of form `fields` in the generated
`data.js` for custom forms. The list is in the original order of the
form definition.
### Changed
- concord-server: fixed a potential NPE when handling process
metadata;
- ansible: keep both the head and the tail when trimming long string
values in events;
- project-model: `withItems` now supports iteration over Java Map
elements;
- docker-tasks: make `cmd` optional;
- concord-server, concord-agents: external `imports` are now
processed without copying into the process state;
- ansible: send process events asynchronously;
- concord-client, concord-runner: use a custom `User-Agent` header;
- concord-server: fixed a NPE when handling optional `file` form
fields.
### Breaking
- project-model: external `imports` are now a top-level element.
## [1.21.0] - 2019-05-23
### Added
- concord-server: additional metrics for the process key cache;
- concord-server: configurable delay when polling for agent commands;
- concord-console: show the "so far" duration of active statuses on
the process status history page;
- concord-runner: new options to enable or disable recording of task
`in` and `out` variables. Including the option to blacklist specific
variable names;
- concord-console: display task call details in the process log
viewer;
- project-model: support for expressions in form calls.
## Changed
- docker: the task can now be called using the regular `task` syntax
(in addition to the previous `docker` form);
- concord-server: keep the original values of `readonly` form fields
on submit;
- concord-server: throttle the AD/LDAP user group caching;
- concord-console: fixed the log toolbar's flickering issue.
## [1.20.1] - 2019-05-16
### Changed
- concord-server: fix the `imports` processing - `configuration`
objects from the imported resources are now loaded correctly;
- concord-server: another fix for the issue with symlinks in GIT
repositories.
## [1.20.0] - 2019-05-16
### Added
- http-tasks: new `debug` parameter. Enables additional logging of
request and response data;
- concord-tasks: log the job's URLs when starting new processes;
- concord-console: the process log viewer's options are now persisted
using the browser's Local Storage.
### Changed
- project-model: fixed an issue with nested objects used in
`withItems`;
- concord-server: fixed an issue with circular symlinks in GIT
repositories;
- concord-console: fixed an issue preventing the UI from working
correctly in MS Edge (missing `URLSearchParams` polyfill);
- concord-agent: ignore subsequent attempts to enable the maintenance
mode;
- concord-server: `SUSPENDED` processes are now ignored when
calculating the concurrent processes limit;
- concord-console: fixed an issue preventing checkpoints from being
rendered correctly in some cases.
## [1.19.1] - 2019-05-12
### Changed
- concord-console: better handling of log tag parsing errors;
- concord-runner, concord-console: use a less common log tag name;
- k8s/agent-operator: simultaneously handle pool size and
configuration changes.
## [1.19.0] - 2019-05-12
### Added
- concord-console: option to split process logs by task calls;
- concord-tasks: support for file attachments when starting new
processes;
- concord-sdk, crypto-tasks: expose `encryptString` method to flows;
- slack: support for creating and replying to threads;
- concord-agent, concord-runner: support for a configurable list of
volumes to mount into Docker containers created by plugins.
- concord-tasks: support for file attachments when starting a process
### Changed
- concord-tasks: improved validation of input parameters;
- ansible: fixed handling of `auth` parameters. The deprecated `user`
and `privateKey` parameters are working now again;
- concord-console: the URL parsing in the log viewer is updated to
better handle URLs in quotes.
## [1.18.1] - 2019-05-07
### Changed
- concord-server: fixed the handling of processes with wait
conditions.
## [1.18.0] - 2019-05-05
### Added
- ansible: support for multiple `inventory` and `inventoryFile`
entries;
- log-tasks: `logDebug`, `logWarn` and `logError` tasks;
- concord-server: initial support for RBAC permissions;
- ansible: initial Kerberos authentication support.
### Changed
- project: initial support for server-side plugins. Ansible-related
endpoints are moved into `server/plugins/ansible`;
- concord-console: stop the form wizard when the user navigates away;
- docker: include the Taurus PIP module in the default Ansible
image;
- concord-server: improve error messages in case of authentication
failure due to an invalid input or an internal error.
## [1.17.0] - 2019-04-24
### Added
- docker: install Ansible's `k8s` dependencies;
- k8s/agent-operator: initial version;
- concord-server: return `requirements` when fetching a list of
processes using `/api/v2/process`;
- concord-server: SSO support for custom forms;
- concord-console: make the log viewer URLs clicable;
- ansible: support for non-root paths when fetching external roles;
- http-tasks: new parameter `requestTimeout`.
### Changed
- http-tasks: make `response` parameter optional;
- concord-server: fixed the SSO https->http redirect;
- concord-console: performance optimizations for the log viewer;
- concord-runner: allow 2 letter checkpoint names.
## [1.16.1] - 2019-04-18
### Changed
- concord-console: use the configured project metadata to render the
checkpoints page;
- concord-runner: allow whitespaces in checkpoint names.
## [1.16.0] - 2019-04-17
### Added
- concord-server: new configuration parameter
`ldap.excludeAttributes` - provides a way to exclude specific
LDAP attributes from being returned in the user's `attributes`;
- concord-server, concord-console: JWT-based SSO service support;
- ansible: existing JSON and YAML extra vars files can now be used
with the new `extraVarsFiles` parameter;
- resource-tasks: new method `prettyPrintJson` - returns formatted
JSON as a string;
- concord-server, concord-console: ability to disable a process to
prevent restoring it from a checkpoint after completion.
### Changed
- concord-server: filter out all non string LDAP attributes;
- concord-server: support for multivalue LDAP attributes when
fetching user details from AD/LDAP;
- concord-console: fixed the page limit dropdown on the checkpoint
view page;
- concord-common: do not escape backslashes when creating a ZIP
achive;
- project-model, concord-runner: support expressions in checkpoint
names.
## [1.15.0] - 2019-04-03
### Added
- concord-agent, concord-runner: support for the configurable
`logLevel`.
### Changed
- concord-server: fix the `${initiator}` and `${currentUser}` data
fetching when dealing with multiple account types.
## [1.14.0] - 2019-03-31
### Added
- policy-engine, concord-server: support for entity owner-based
policies;
- concord-tasks: new action `startExternal`. Can be used to start a
new process on an external Concord instance.
### Changed
- concord-client, concord-tasks: fixed a bug preventing `baseUrl`
and `apiKey` parameters from being correctly applied;
- http-tasks: correctly handle empty (204) responses;
- concord-server: fixed a potential NPE when setting a new owner for
projects without owner.
## [1.13.1] - 2019-03-27
### Changed
- http-task: make `ignoreErrors` work with connection timeouts;
- concord-server: fixed an authentication issue with passwords that
end with a `:`;
## [1.13.0] - 2019-03-26
### Added
- concord-sdk: additional `MapUtils` methods to retrieve Map, List
and Integer values;
- concord-console: show user display names on the team member list
page;
- concord-server: new user attribute - `displayName`. Automatically
stored for AD/LDAP users. For local users it can be set using
the API;
- concord-server, concord-console: project owners can now be updated
using the API or the Console;
- concord-server, consord-console: organization owners can now be
set using the API or the Console;
- concord-server, concord-runner, concord-tasks: (optionally) suspend
the parent process while waiting for a child process (only for
`start`);
- project-model: support for arrays in `withItems`;
- concord-server: an API method to remove an organization
(admin only).
### Changed
- concord-agent: fix JVM "pre-forking". Now the process poll is
correctly shared between all workers;
- concord-server: more detailed error messages in case of invalid
encrypted strings;
- concord-console: fixed a bug when team members could not be
deleted.
## [1.12.0] - 2019-03-13
### Added
- policy-engine, concord-server: support for organization-level max
concurrent process limits;
- concord-console: process metadata filtering for the checkpoint list
page;
- concord-server, concord-console: teams can now be associated with
LDAP groups;
- concord-server: user accounts can now be disabled via an API call;
- concord-server: new automatically-provided process
variable - `requestInfo`. Contains the request's parameters, headers
and the user's IP address.
### Changed
- concord-agent: fixed the issue preventing the process startup
errors from being logged correctly;
- concord-console: fixed a login issue with non-ASCII usernames or
passwords.
## [1.11.0] - 2019-03-04
### Added
- concord-server, ansible: track `retry` count per host;
- concord-agent: failover support for the websocket connections;
- ansible: print a "No changes will be made" warning if `check` or
`syntaxCheck` modes are used.
### Changed
- concord-console: fixed the handling of processes with checkpoints
but without history;
- concord-server: when a repository refresh fails show the error
cause instead of a wrapped exception;
- project-model: fixed the behaviour of nested and/or sequential task
calls with `retry`;
- ansible: the task now correcly records both pre- and post-action
events;
- concord-console: fixed the log timestamp pattern, now Ansible log
timestamps are correctly converted into the local time;
- ansible: `{%raw%}` strings are working again.
## [1.10.0] - 2019-02-27
### Added
- concord-server: support for GitHub webhooks limited to a specific
repository;
- forms: support for `date` and `dateTime` field types;
- concord-server, concord-console: ability to temporarily disable
repositories.
### Changed
- concord-server: return `400 Bad Request` when trying to
`decryptString` in a process without the project;
- bpm: updated to `0.54.0` to support expressions in `script` names.
## [1.9.0] - 2019-02-20
### Added
- concord-server: option to sign the `initiator` and `currentUser`
usernames. Signatures can be validated using the configured public
key.
### Changed
- concord-agent: when resolving dependencies, use `latest` as the
indicator of an automatically selected version;
- concord-server: remove keywhiz support. The Concord-Keywhiz
integration could be implemented as a separate plugin;
- concord-server: removed support for archiving process state and
checkpoints into an S3 endpoint. The recommended way is to use table
partitioning or a custom (external) data retention solution;
- concord-console: fixed the process list filtering.
## [1.8.1] - 2019-02-18
### Changed
- concord-agent: fix the dependency resolution for plugins with
non-default versions;
## [1.8.0] - 2019-02-17
### Added
- concord-server: option to retrieve a single item in an inventory;
- concord-sdk: initial implementation of `LockService`;
- concord-server: support for `activeProfiles` in `cron` triggers;
- concord-server: new endpoint `GET /api/v2/process`. Returns a list
of processes with optional filtering (including metadata) and
pagination;
- concord-sdk: new utility methods to work with the process
variables;
- concord-server: initial support for in-process locks.
### Changed
- concord-server: force logout users on any authentication error.
Fixes the issue with "remember me" users with passwords changed
between the server's restarts;
- repository: clean up and reset locally cached repositories on
checkout;
- concord-server: skip invalid host names when processing Ansible
events;
- concord-runner: more graceful handling of errors while saving "out"
variables;
- concord-server: check for permissions when retrieving process
details via `GET /api/v2/process/{id}`.
- concord-server, concord-agent: load the dependency version list
from the server.
## [1.7.2] - 2019-02-11
### Changed
- concord-server: forks should keep the original `_main.json` minus
the `arguments`. This fixes the issue with forks and
`onCancel/onFailure` handlers which are using external dependencies;
- concord-console: fixed the row selection bug in the process list
component.
## [1.7.1] - 2019-02-09
### Changed
- concord-server: fix authorization of `cron` triggers.
## [1.7.0] - 2019-02-07
### Added
- throw-tasks: now capable of throwing exceptions with custom
payload: maps, lists, etc;
- concord-console: new "Wait Conditions" tab on the process status
page;
- concord-server: new process configuration option `exclusiveExec`:
restricts the process execution to one process at the time per
project;
- http-tasks: proxy support via `proxy` parameter;
- concord-server: option to restrict the external events endpoint
`/api/v1/events/{eventName}` to users with specific roles.
### Changed
- ansible: Concord polices now receive interpolated variable values;
-
Showing preview only (454K chars total). Download the full file or copy to clipboard to get everything.
gitextract_43zvyq75/ ├── .codex ├── .gitattributes ├── .github/ │ ├── settings.xml │ └── workflows/ │ ├── build.yml │ └── docker-multiarch.yml ├── .gitignore ├── .insights.yml ├── .looper/ │ ├── render-settings.sh │ └── settings.xml ├── .looper.yml ├── .mvn/ │ └── wrapper/ │ └── maven-wrapper.properties ├── .sentinelpolicy ├── AGENTS.md ├── CHANGELOG.md ├── LICENSE ├── NOTES.md ├── README.md ├── SECURITY.md ├── agent/ │ ├── pom.xml │ └── src/ │ ├── assembly/ │ │ ├── default.conf │ │ ├── dist.xml │ │ └── start.sh │ ├── main/ │ │ ├── filtered-resources/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── agent/ │ │ │ ├── cfg/ │ │ │ │ ├── runnerV1.properties │ │ │ │ └── runnerV2.properties │ │ │ └── executors/ │ │ │ └── runner/ │ │ │ └── default-dependencies │ │ ├── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── agent/ │ │ │ ├── Agent.java │ │ │ ├── AgentAuthTokenProvider.java │ │ │ ├── AgentConstants.java │ │ │ ├── AgentModule.java │ │ │ ├── CommandHandler.java │ │ │ ├── ConfiguredJobRequest.java │ │ │ ├── DefaultStateFetcher.java │ │ │ ├── ExecutionException.java │ │ │ ├── JobInstance.java │ │ │ ├── JobRequest.java │ │ │ ├── Main.java │ │ │ ├── OneShotRunner.java │ │ │ ├── RepositoryManager.java │ │ │ ├── StateFetcher.java │ │ │ ├── Utils.java │ │ │ ├── Worker.java │ │ │ ├── WorkerFactory.java │ │ │ ├── cfg/ │ │ │ │ ├── AgentConfiguration.java │ │ │ │ ├── DockerConfiguration.java │ │ │ │ ├── GitConfiguration.java │ │ │ │ ├── GitHubConfiguration.java │ │ │ │ ├── ImportConfiguration.java │ │ │ │ ├── PreForkConfiguration.java │ │ │ │ ├── RepositoryCacheConfiguration.java │ │ │ │ ├── RuntimeConfiguration.java │ │ │ │ ├── ServerConfiguration.java │ │ │ │ └── Utils.java │ │ │ ├── docker/ │ │ │ │ └── OrphanSweeper.java │ │ │ ├── executors/ │ │ │ │ ├── JobExecutor.java │ │ │ │ ├── JobExecutorFactory.java │ │ │ │ └── runner/ │ │ │ │ ├── DefaultDependencies.java │ │ │ │ ├── JobDependencies.java │ │ │ │ ├── ProcessPool.java │ │ │ │ ├── RunnerCommandBuilder.java │ │ │ │ ├── RunnerJob.java │ │ │ │ ├── RunnerJobExecutor.java │ │ │ │ └── RunnerLog.java │ │ │ ├── guice/ │ │ │ │ ├── AgentDependencyManagerConfigurationProvider.java │ │ │ │ ├── AgentImportManager.java │ │ │ │ ├── AgentImportManagerProvider.java │ │ │ │ └── WorkerModule.java │ │ │ ├── logging/ │ │ │ │ ├── AbstractProcessLog.java │ │ │ │ ├── CombinedLogAppender.java │ │ │ │ ├── LocalProcessLog.java │ │ │ │ ├── LogAppender.java │ │ │ │ ├── LogSegmentStats.java │ │ │ │ ├── ProcessLog.java │ │ │ │ ├── ProcessLogFactory.java │ │ │ │ ├── RedirectedProcessLog.java │ │ │ │ ├── RemoteLogAppender.java │ │ │ │ ├── RemoteProcessLog.java │ │ │ │ ├── SegmentHeaderParser.java │ │ │ │ ├── SegmentedLogsConsumer.java │ │ │ │ └── StdOutLogAppender.java │ │ │ ├── mmode/ │ │ │ │ ├── MaintenanceModeListener.java │ │ │ │ └── MaintenanceModeNotifier.java │ │ │ └── remote/ │ │ │ ├── ApiClientFactory.java │ │ │ ├── AttachmentsUploader.java │ │ │ ├── ProcessStatusUpdater.java │ │ │ └── QueueClientProvider.java │ │ └── resources/ │ │ ├── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── agent/ │ │ │ └── logback.xml │ │ ├── concord-agent.conf │ │ └── logback.xml │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── agent/ │ │ ├── AgentAuthTokenProviderTest.java │ │ └── executors/ │ │ └── runner/ │ │ ├── JobDependenciesTest.java │ │ ├── SegmentHeaderParserTest.java │ │ └── SegmentedLogsConsumerTest.java │ └── resources/ │ └── com/ │ └── walmartlabs/ │ └── concord/ │ └── agent/ │ └── executors/ │ └── runner/ │ └── versions.properties ├── agent-operator/ │ ├── README.md │ ├── deploy/ │ │ ├── cluster_role.yml │ │ ├── cluster_role_binding.yml │ │ ├── crds/ │ │ │ ├── agentpools.concord.walmartlabs.com-v1.yml │ │ │ └── example.agentpool.yml │ │ ├── operator.yml │ │ └── service_account.yml │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── agentoperator/ │ │ │ ├── HashUtils.java │ │ │ ├── Operator.java │ │ │ ├── PodLabels.java │ │ │ ├── agent/ │ │ │ │ ├── AgentClient.java │ │ │ │ ├── AgentClientFactory.java │ │ │ │ ├── DefaultAgentClient.java │ │ │ │ └── NopAgentClient.java │ │ │ ├── crd/ │ │ │ │ ├── AgentPool.java │ │ │ │ ├── AgentPoolConfiguration.java │ │ │ │ └── AgentPoolList.java │ │ │ ├── planner/ │ │ │ │ ├── Change.java │ │ │ │ ├── CreateConfigMapChange.java │ │ │ │ ├── CreatePodChange.java │ │ │ │ ├── DeleteConfigMapChange.java │ │ │ │ ├── Planner.java │ │ │ │ ├── TagForRemovalChange.java │ │ │ │ └── TryToDeletePodChange.java │ │ │ ├── processqueue/ │ │ │ │ ├── ProcessQueueClient.java │ │ │ │ └── ProcessQueueEntry.java │ │ │ ├── resources/ │ │ │ │ ├── AgentConfigMap.java │ │ │ │ ├── AgentPod.java │ │ │ │ └── Resources.java │ │ │ └── scheduler/ │ │ │ ├── AgentPoolInstance.java │ │ │ ├── AutoScaler.java │ │ │ ├── AutoScalerFactory.java │ │ │ ├── DefaultAutoScaler.java │ │ │ ├── Event.java │ │ │ ├── LinearAutoScaler.java │ │ │ ├── QueueSelector.java │ │ │ └── Scheduler.java │ │ └── resources/ │ │ ├── logback.xml │ │ └── prestop-hook.sh │ └── test/ │ └── java/ │ └── com/ │ └── walmartlabs/ │ └── concord/ │ └── agentoperator/ │ ├── processqueue/ │ │ └── ProcessQueueClientTest.java │ └── scheduler/ │ ├── DefaultAutoScalerTest.java │ └── LinearAutoScalerTest.java ├── checkstyle.xml ├── cli/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── filtered-resources/ │ │ │ ├── defaultCfg.yml │ │ │ └── project.properties │ │ ├── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── cli/ │ │ │ ├── AbortException.java │ │ │ ├── App.java │ │ │ ├── CliConfig.java │ │ │ ├── CliExitCodes.java │ │ │ ├── CliPaths.java │ │ │ ├── Confirmation.java │ │ │ ├── GitIgnoreFilter.java │ │ │ ├── Lint.java │ │ │ ├── LocalCliRuntime.java │ │ │ ├── LocalFormInputs.java │ │ │ ├── LocalFormPrompts.java │ │ │ ├── LocalFormSession.java │ │ │ ├── LocalFormState.java │ │ │ ├── LocalSuspendPersistence.java │ │ │ ├── LocalSuspendPrinter.java │ │ │ ├── Main.java │ │ │ ├── PromptSupport.java │ │ │ ├── RemoteRun.java │ │ │ ├── Resume.java │ │ │ ├── Run.java │ │ │ ├── SelfUpdate.java │ │ │ ├── Verbosity.java │ │ │ ├── Version.java │ │ │ ├── lint/ │ │ │ │ ├── DummyImportsNormalizer.java │ │ │ │ ├── ExpressionLinter.java │ │ │ │ ├── FlowElementLinter.java │ │ │ │ ├── LintResult.java │ │ │ │ ├── Linter.java │ │ │ │ ├── TaskCallLinter.java │ │ │ │ └── Utils.java │ │ │ ├── runner/ │ │ │ │ ├── ApiKey.java │ │ │ │ ├── CliApiClientProvider.java │ │ │ │ ├── CliCheckpointService.java │ │ │ │ ├── CliDockerService.java │ │ │ │ ├── CliImportsListener.java │ │ │ │ ├── CliImportsNormalizer.java │ │ │ │ ├── CliLockService.java │ │ │ │ ├── CliRepositoryExporter.java │ │ │ │ ├── CliServicesModule.java │ │ │ │ ├── DependencyResolver.java │ │ │ │ ├── FlowStepLogger.java │ │ │ │ ├── TaskParamsLogger.java │ │ │ │ └── VaultProvider.java │ │ │ └── secrets/ │ │ │ ├── CliSecretService.java │ │ │ ├── FileSecretsProvider.java │ │ │ ├── RemoteSecretsProvider.java │ │ │ ├── SecretsProvider.java │ │ │ ├── SecretsProviderRef.java │ │ │ └── UncheckedIO.java │ │ └── resources/ │ │ ├── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── cli/ │ │ │ └── defaultCliConfig.yaml │ │ ├── default-vars.json │ │ └── logback.xml │ └── test/ │ ├── filtered-resources/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── cli/ │ │ └── defaultCfg/ │ │ ├── concord.yml │ │ └── defaults.yml │ ├── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── cli/ │ │ ├── AbstractTest.java │ │ ├── CliConfigTest.java │ │ ├── GitIgnoreFilterTest.java │ │ ├── LintTest.java │ │ ├── ResumeTest.java │ │ └── RunTest.java │ └── resources/ │ ├── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── cli/ │ │ ├── cliCheckpointService/ │ │ │ └── concord.yml │ │ ├── configWithDefaults.yaml │ │ ├── defaultTaskVars/ │ │ │ ├── concord.yml │ │ │ └── defaultTaskVars.json │ │ ├── fileForm/ │ │ │ └── concord.yml │ │ ├── fileRetryForm/ │ │ │ └── concord.yml │ │ ├── form/ │ │ │ └── concord.yml │ │ ├── lintV1/ │ │ │ ├── concord/ │ │ │ │ └── extra.concord.yml │ │ │ └── concord.yml │ │ ├── lintV2/ │ │ │ ├── concord/ │ │ │ │ └── extra.concord.yml │ │ │ └── concord.yml │ │ ├── mixedFormEvent/ │ │ │ └── concord.yml │ │ ├── multiContextConfig.yaml │ │ ├── parallelForms/ │ │ │ └── concord.yml │ │ ├── passwordRetry/ │ │ │ └── concord.yml │ │ ├── passwordSuspend/ │ │ │ └── concord.yml │ │ ├── processProjectInfo/ │ │ │ └── concord.yml │ │ ├── profileDeps/ │ │ │ └── concord.yml │ │ ├── resourceTask/ │ │ │ └── concord.yml │ │ ├── secretResume/ │ │ │ └── concord.yml │ │ ├── simple/ │ │ │ └── concord.yml │ │ ├── suspend/ │ │ │ └── concord.yml │ │ ├── testConfig.yaml │ │ └── validatedForm/ │ │ └── concord.yml │ └── logback-test.xml ├── client2/ │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── client2/ │ │ │ ├── ApiClientConfiguration.java │ │ │ ├── ApiClientFactory.java │ │ │ ├── ClientUtils.java │ │ │ ├── ConcordApiClient.java │ │ │ ├── CreateSecretRequest.java │ │ │ ├── DefaultApiClientFactory.java │ │ │ ├── ProcessDataInclude.java │ │ │ ├── ProcessListFilter.java │ │ │ ├── ProcessUtils.java │ │ │ ├── SecretClient.java │ │ │ ├── SecretNotFoundException.java │ │ │ ├── UpdateSecretRequest.java │ │ │ └── impl/ │ │ │ ├── ByteArrayBuffer.java │ │ │ ├── ContentType.java │ │ │ ├── Headers.java │ │ │ ├── HttpEntity.java │ │ │ ├── MultipartBuilder.java │ │ │ ├── MultipartRequestBodyHandler.java │ │ │ ├── NameValuePair.java │ │ │ ├── OffsetDateTimeDeserializer.java │ │ │ ├── OffsetDateTimeSerializer.java │ │ │ ├── RequestBody.java │ │ │ ├── RequestBodyHandler.java │ │ │ ├── ResponseBodyHandler.java │ │ │ └── auth/ │ │ │ ├── ApiKey.java │ │ │ ├── Authentication.java │ │ │ └── SessionToken.java │ │ └── template/ │ │ ├── README.md │ │ └── libraries/ │ │ └── native/ │ │ ├── ApiClient.mustache │ │ ├── api.mustache │ │ ├── api.mustache.orig │ │ ├── pojo.mustache │ │ └── pojo.mustache.orig │ └── test/ │ └── java/ │ └── com/ │ └── walmartlabs/ │ └── concord/ │ └── client2/ │ ├── ApiClientJsonTest.java │ ├── ProcessApiTest.java │ ├── SecretClientTest.java │ └── impl/ │ └── MultipartRequestBodyHandlerTest.java ├── common/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── common/ │ │ │ ├── AllowNulls.java │ │ │ ├── AuthTokenProvider.java │ │ │ ├── ConfigurationUtils.java │ │ │ ├── CycleChecker.java │ │ │ ├── DateTimeUtils.java │ │ │ ├── DockerProcessBuilder.java │ │ │ ├── DynamicTaskRegistry.java │ │ │ ├── ExceptionUtils.java │ │ │ ├── ExternalAuthToken.java │ │ │ ├── FileVisitor.java │ │ │ ├── GrepUtils.java │ │ │ ├── IOUtils.java │ │ │ ├── LogUtils.java │ │ │ ├── Matcher.java │ │ │ ├── MemoSupplier.java │ │ │ ├── ObjectInputStreamWithClassLoader.java │ │ │ ├── ObjectMapperProvider.java │ │ │ ├── PathUtils.java │ │ │ ├── Posix.java │ │ │ ├── PrivilegedAction.java │ │ │ ├── ReflectionUtils.java │ │ │ ├── StringUtils.java │ │ │ ├── TemporaryPath.java │ │ │ ├── ThreadLocalStack.java │ │ │ ├── ToStringHelper.java │ │ │ ├── TruncBufferedReader.java │ │ │ ├── ZipUtils.java │ │ │ ├── cfg/ │ │ │ │ ├── MappingAuthConfig.java │ │ │ │ └── OauthTokenConfig.java │ │ │ ├── form/ │ │ │ │ ├── ConcordFormFields.java │ │ │ │ ├── ConcordFormValidator.java │ │ │ │ ├── ConcordFormValidatorLocale.java │ │ │ │ └── DefaultConcordFormValidatorLocale.java │ │ │ ├── secret/ │ │ │ │ ├── BinaryDataSecret.java │ │ │ │ ├── HashAlgorithm.java │ │ │ │ ├── KeyPair.java │ │ │ │ ├── SecretEncryptedByType.java │ │ │ │ ├── SecretUtils.java │ │ │ │ └── UsernamePassword.java │ │ │ └── validation/ │ │ │ ├── ConcordId.java │ │ │ └── ConcordKey.java │ │ └── resources/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── common/ │ │ └── dockerPasswd │ └── test/ │ └── java/ │ └── com/ │ └── walmartlabs/ │ └── concord/ │ └── common/ │ ├── AuthTokenProviderTest.java │ ├── ConfigurationUtilsTest.java │ ├── CycleCheckerTest.java │ ├── DateTimeUtilsTest.java │ ├── ExternalAuthTokenTest.java │ ├── LogUtilsTest.java │ ├── MatcherTest.java │ ├── PathUtilsTest.java │ ├── StringUtilsTest.java │ ├── TruncBufferedReaderTest.java │ └── ZipUtilsTest.java ├── config/ │ ├── README.md │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── walmartlabs/ │ └── concord/ │ └── config/ │ ├── Config.java │ ├── ConfigExtractor.java │ ├── ConfigExtractors.java │ ├── ConfigModule.java │ ├── ListExtractor.java │ └── ListExtractors.java ├── console2/ │ ├── .gitignore │ ├── .npmrc │ ├── README.md │ ├── cfg.d.ts │ ├── index.html │ ├── npm.sh │ ├── package/ │ │ └── META-INF/ │ │ └── concord/ │ │ └── webapp.properties │ ├── package.json │ ├── pom.xml │ ├── public/ │ │ ├── cfg.js │ │ └── manifest.json │ ├── react-json-view.d.ts │ ├── src/ │ │ ├── App.tsx │ │ ├── api/ │ │ │ ├── __tests__/ │ │ │ │ ├── common.deepMerge.test.ts │ │ │ │ ├── common.parseNestedQueryParams.test.ts │ │ │ │ ├── common.parseQueryParams.test.ts │ │ │ │ └── common.queryParams.test.ts │ │ │ ├── audit/ │ │ │ │ └── index.ts │ │ │ ├── common.ts │ │ │ ├── noderoster/ │ │ │ │ └── index.ts │ │ │ ├── org/ │ │ │ │ ├── index.ts │ │ │ │ ├── jsonstore/ │ │ │ │ │ └── index.ts │ │ │ │ ├── project/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── repository/ │ │ │ │ │ └── index.ts │ │ │ │ ├── secret/ │ │ │ │ │ └── index.ts │ │ │ │ └── team/ │ │ │ │ └── index.ts │ │ │ ├── process/ │ │ │ │ ├── ansible/ │ │ │ │ │ └── index.ts │ │ │ │ ├── attachment/ │ │ │ │ │ └── index.ts │ │ │ │ ├── checkpoint/ │ │ │ │ │ └── index.ts │ │ │ │ ├── event/ │ │ │ │ │ └── index.ts │ │ │ │ ├── form/ │ │ │ │ │ └── index.ts │ │ │ │ ├── history/ │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── log/ │ │ │ │ │ ├── fetchLogAsBlobURL.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── wait/ │ │ │ │ └── index.ts │ │ │ ├── profile/ │ │ │ │ ├── api_token/ │ │ │ │ │ └── index.tsx │ │ │ │ └── user/ │ │ │ │ └── index.tsx │ │ │ ├── secret/ │ │ │ │ └── store/ │ │ │ │ └── index.ts │ │ │ ├── server/ │ │ │ │ └── index.ts │ │ │ ├── service/ │ │ │ │ ├── console/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── user/ │ │ │ │ │ └── index.ts │ │ │ │ └── custom_form/ │ │ │ │ └── index.ts │ │ │ ├── usePolling.ts │ │ │ └── user/ │ │ │ └── index.ts │ │ ├── components/ │ │ │ ├── atoms/ │ │ │ │ ├── ClassIcon.tsx │ │ │ │ ├── ColumnSort/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── FormikCheckbox/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── FormikDropdown/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── FormikFileInput/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── FormikInput/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── LogFileFromBlob/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ReactJson/ │ │ │ │ │ └── index.ts │ │ │ │ ├── RefreshButton/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── Scrollable.tsx │ │ │ │ ├── TableSearchFilter/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── Truncate.tsx │ │ │ │ └── index.ts │ │ │ ├── molecules/ │ │ │ │ ├── BreadcrumbSegment/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── BulkProcessActionDropdown/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ButtonWithConfirmation/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── CreateNewEntityButton/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── DropdownWithAddition/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── EditProjectForm/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── EntityId/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── EntityOwnerChangeForm/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── EntityOwnerPopup/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── EntityRenameForm/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── FormWizardAction/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── GitHubLink/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── GlobalNavMenu/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── Highlighter/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── HumanizedDuration/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── LoadingEditor/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── LocalTimestamp/ │ │ │ │ │ ├── __test__/ │ │ │ │ │ │ └── LocalTimestamp.test.tsx │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ └── LocalTimestamp.test.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── LogSegment/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── MainToolbar/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── NewAPITokenForm/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── NewProjectForm/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── NewSecretForm/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── NewStorageForm/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── NewTeamForm/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── PaginationToolBar/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── usePagination.tsx │ │ │ │ ├── ProcessActionDropdown/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessActionList/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessAttachmentsList/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessElementList/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessForm/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessHistoryList/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessLastErrorModal/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessList/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ProcessListWithSearch/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessLogContainer/ │ │ │ │ │ ├── LogContainer.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessLogViewer/ │ │ │ │ │ ├── datetime.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ProcessStatusIcon/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessStatusTable/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessToolbar/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ProcessWaitList/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectConfiguration/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ProjectRenameForm/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── RepositoryForm/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── RepositoryList/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── RequestErrorMessage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── SingleOperationPopup/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TeamAccessDropdown/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TeamAccessList/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TeamRoleDropdown/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── WithCopyToClipboard/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ansible/ │ │ │ │ │ ├── AnsibleHostList/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── AnsibleTaskList/ │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ │ ├── organisms/ │ │ │ │ ├── APITokenDeleteActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── APITokenList/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── AuditLogActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── BreadcrumbsToolbar/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── BulkCancelProcessPopup/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── CancelProcessPopup/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── CheckpointView/ │ │ │ │ │ ├── ActionBar/ │ │ │ │ │ │ ├── ActiveFilters.tsx │ │ │ │ │ │ ├── CancelButton.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── styles.tsx │ │ │ │ │ ├── CheckpointErrorBoundry/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── CheckpointGroup/ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── styles.tsx │ │ │ │ │ ├── CheckpointPopup/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Container/ │ │ │ │ │ │ ├── __mocks__/ │ │ │ │ │ │ │ └── checkpointUtils.mocks.ts │ │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ │ │ └── checkpointUtils.test.ts.snap │ │ │ │ │ │ │ ├── checkpointUtils.test.ts │ │ │ │ │ │ │ └── useQueryParams.test.tsx │ │ │ │ │ │ ├── checkpointUtils.ts │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── useForm.ts │ │ │ │ │ │ ├── usePopup.ts │ │ │ │ │ │ └── useQueryParams.ts │ │ │ │ │ ├── MetaFilterForm/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── NoCheckpointsMessage/ │ │ │ │ │ │ ├── NoCheckpointsMessge.test.tsx │ │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ │ └── NoCheckpointsMessge.test.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── ProcessCheckpoint/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── ProcessCheckpointView.tsx │ │ │ │ │ ├── ProcessList/ │ │ │ │ │ │ ├── LeftContent.tsx │ │ │ │ │ │ ├── RightContent.tsx │ │ │ │ │ │ └── styles.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── shared/ │ │ │ │ │ ├── Labels.tsx │ │ │ │ │ ├── Layout.tsx │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── DeleteRepositoryPopup/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── DisableProcessPopup/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── EditProjectActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── EditRepositoryActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── EncryptValueActivity/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── FindLdapGroupField/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── FindOrganizationsField/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── FindTeamDropdown/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── FindUserField2/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── Login2/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── NewAPITokenActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── NewProjectActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── NewSecretActivity/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── NewStorageActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── NewTeamActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── OrganizationActivity/ │ │ │ │ │ ├── OrganizationProcesses.tsx │ │ │ │ │ ├── OrganizationSettings.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── OrganizationList/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── OrganizationOwnerChangeActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessActivity/ │ │ │ │ │ ├── Toolbar.tsx │ │ │ │ │ ├── favicon.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ProcessAttachmentsActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessCheckpointActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessChildrenActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessEventsActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessFormActivity/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── processFormNavigation.ts │ │ │ │ ├── ProcessHistoryActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessListActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessLogActivity/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ProcessLogActivityV2/ │ │ │ │ │ ├── LogSegmentActivity.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ProcessRestoreActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessStatusActivity/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ProcessWaitActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessWizard/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── useProcessWizard.ts │ │ │ │ ├── ProjectActivity/ │ │ │ │ │ ├── ProjectCheckpoints.tsx │ │ │ │ │ ├── ProjectProcesses.tsx │ │ │ │ │ ├── ProjectRepositories.tsx │ │ │ │ │ ├── ProjectSettings.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectConfigurationActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectDeleteActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectListActivity/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ProjectOrganizationChangeActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectOutVariablesModeActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectOwnerChangeActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectProcessExecModeActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectRawPayloadModeActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectRenameActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectSearch/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectSearchFormField/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectTeamAccessActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProtectedRoute/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── PublicKeyPopup/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── RedirectButton/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── RefreshRepositoryPopup/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── RepositoryActionDropdown/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── RequestErrorActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── RestartProcessPopup/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecretActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecretDeleteActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecretListActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecretOrganizationChangeActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecretOwnerChangeActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecretProjectActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecretRenameActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecretSearch/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecretStoreDropdown/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecretTeamAccessActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecretVisibilityActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ServerVersion/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── StartRepositoryPopup/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── TaskCallDetails/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TeamActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TeamDeleteActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TeamLdapGroupList2/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TeamList/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TeamListActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TeamMemberList2/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TeamRenameActivity/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TopBar/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TriggeredByPopup/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── UserInfo/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── UserProcessActivity/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ValidateRepositoryPopup/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ansible/ │ │ │ │ │ ├── AnsibleTaskActivity/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── ProcessAnsibleActivity/ │ │ │ │ │ ├── PlayInfoList.tsx │ │ │ │ │ ├── PlaybookChooser.tsx │ │ │ │ │ ├── PlaybookStats.tsx │ │ │ │ │ ├── TaskProgress.tsx │ │ │ │ │ ├── TaskProgressLegend.tsx │ │ │ │ │ ├── TaskStats.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── styles.css │ │ │ │ │ └── types.tsx │ │ │ │ └── index.ts │ │ │ ├── pages/ │ │ │ │ ├── APITokensListPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── AboutPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── AddRepositoryPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── CustomResourcePage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── JsonStorePage/ │ │ │ │ │ ├── EditStoreQueryActivity.tsx │ │ │ │ │ ├── EditStoreQueryForm.tsx │ │ │ │ │ ├── EditStoreQueryPage.tsx │ │ │ │ │ ├── ExecuteQueryResult.tsx │ │ │ │ │ ├── NewStorageQueryActivity.tsx │ │ │ │ │ ├── NewStorageQueryForm.tsx │ │ │ │ │ ├── NewStorageQueryPage.tsx │ │ │ │ │ ├── NewStorePage.tsx │ │ │ │ │ ├── StoreDataDeleteActivity.tsx │ │ │ │ │ ├── StoreDataList.tsx │ │ │ │ │ ├── StoreDeleteActivity.tsx │ │ │ │ │ ├── StoreListActivity.tsx │ │ │ │ │ ├── StoreOrganizationChangeActivity.tsx │ │ │ │ │ ├── StoreOwnerChangeActivity.tsx │ │ │ │ │ ├── StoreQueryDeleteActivity.tsx │ │ │ │ │ ├── StoreQueryList.tsx │ │ │ │ │ ├── StoreSettings.tsx │ │ │ │ │ ├── StoreTeamAccessActivity.tsx │ │ │ │ │ ├── StoreVisibilityActivity.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── LoginPage/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── LogoutPage/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── NewAPITokenPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── NewProjectPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── NewSecretPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── NewTeamPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── NodeRoster/ │ │ │ │ │ ├── HostArtifacts.tsx │ │ │ │ │ ├── HostFacts.tsx │ │ │ │ │ ├── HostPage.tsx │ │ │ │ │ ├── HostProcesses.tsx │ │ │ │ │ ├── NodeRosterArtifactsList.tsx │ │ │ │ │ ├── NodeRosterHostsList.tsx │ │ │ │ │ └── NodeRosterPage.tsx │ │ │ │ ├── NotFoundPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── OrganizationListPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── OrganizationPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessCardFormPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessFormPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessListPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProcessWizardPage/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── ProfilePage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ProjectPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── RepositoryPage/ │ │ │ │ │ ├── RepositoryEventsActivity.tsx │ │ │ │ │ ├── RepositoryTriggersActivity.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecretPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── TeamPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── UnauthorizedPage/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css │ │ │ │ ├── UserActivityPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── UserInfoPage/ │ │ │ │ │ └── index.tsx │ │ │ │ └── index.ts │ │ │ └── templates/ │ │ │ ├── Layout/ │ │ │ │ ├── index.tsx │ │ │ │ └── styles.css │ │ │ ├── OrgActivityPage/ │ │ │ │ └── index.tsx │ │ │ └── index.ts │ │ ├── hooks/ │ │ │ ├── useApi.tsx │ │ │ └── useThrottle.tsx │ │ ├── index.css │ │ ├── index.tsx │ │ ├── react-app-env.d.ts │ │ ├── reducers/ │ │ │ └── loading.ts │ │ ├── router.tsx │ │ ├── session.ts │ │ ├── state/ │ │ │ └── data/ │ │ │ ├── orgs/ │ │ │ │ └── types.ts │ │ │ └── processes/ │ │ │ └── logs/ │ │ │ ├── processors.ts │ │ │ └── types.ts │ │ ├── utils.ts │ │ ├── validation.ts │ │ └── vite-env.d.ts │ ├── tsconfig.json │ ├── tsconfig.node.json │ ├── types.d.ts │ ├── vite.config.ts │ └── wallaby.js ├── dependency-manager/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── filtered-resources/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── dependencymanager/ │ │ │ └── version.properties │ │ └── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── dependencymanager/ │ │ ├── DependencyEntity.java │ │ ├── DependencyManager.java │ │ ├── DependencyManagerConfiguration.java │ │ ├── DependencyManagerException.java │ │ ├── DependencyManagerRepositories.java │ │ ├── MavenProxy.java │ │ ├── MavenRepository.java │ │ ├── MavenRepositoryConfiguration.java │ │ ├── MavenRepositoryPolicy.java │ │ ├── ProgressListener.java │ │ ├── RepositorySystemFactory.java │ │ ├── ResolveExceptionConverter.java │ │ ├── RetryUtils.java │ │ └── Version.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── dependencymanager/ │ │ └── DependencyManagerTest.java │ └── resources/ │ ├── __files/ │ │ └── repository/ │ │ └── concord-cli-1.82.0.pom │ └── logback.xml ├── docker-images/ │ ├── agent/ │ │ ├── oss/ │ │ │ └── debian/ │ │ │ └── Dockerfile │ │ └── pom.xml │ ├── agent-operator/ │ │ ├── oss/ │ │ │ └── Dockerfile │ │ └── pom.xml │ ├── ansible/ │ │ ├── galaxy_requirements.yml │ │ ├── oss/ │ │ │ └── debian/ │ │ │ └── Dockerfile │ │ └── pom.xml │ ├── base/ │ │ ├── get_arch.sh │ │ ├── get_jdk_url.sh │ │ ├── oss/ │ │ │ └── debian/ │ │ │ └── Dockerfile │ │ └── pom.xml │ ├── compose/ │ │ ├── README.md │ │ ├── concord.conf │ │ └── docker-compose.yml │ ├── docker-bake.hcl │ ├── mvn.json │ ├── pom.xml │ ├── push.sh │ ├── run_dev.sh │ ├── server/ │ │ ├── oss/ │ │ │ └── Dockerfile │ │ └── pom.xml │ ├── server.conf │ └── stop.sh ├── examples/ │ ├── README.md │ ├── ansible/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_docker/ │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_dynamic_inventory/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── my_inventory.sh │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_form/ │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_form_as_inventory/ │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_kerberos/ │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_limit/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ ├── hello.limit │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_out_vars/ │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_project/ │ │ ├── README.md │ │ ├── inventory.ini │ │ ├── inventory.py │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── request.json │ ├── ansible_remote/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_retry/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_roles/ │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_stats/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_template/ │ │ ├── playbook/ │ │ │ └── hello.yml │ │ ├── request.json │ │ └── run.sh │ ├── ansible_vault/ │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ ├── group_vars/ │ │ │ │ └── local.yml │ │ │ └── hello.yml │ │ └── run.sh │ ├── ansible_windows/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── inventory.ini │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── approval/ │ │ ├── concord.yml │ │ └── run.sh │ ├── context_injection/ │ │ ├── concord.yml │ │ ├── run.sh │ │ └── tasks/ │ │ └── test.groovy │ ├── custom_form/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── forms/ │ │ │ └── myForm/ │ │ │ ├── data.js │ │ │ └── index.html │ │ └── run.sh │ ├── custom_form_basic/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── forms/ │ │ │ └── myForm/ │ │ │ ├── data.js │ │ │ └── index.html │ │ └── run.sh │ ├── custom_task/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ ├── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── examples/ │ │ │ │ └── customtask/ │ │ │ │ ├── CustomTask.java │ │ │ │ └── CustomTaskV2.java │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── examples/ │ │ │ └── customtask/ │ │ │ └── CustomTaskTest.java │ │ ├── test-v2.yml │ │ ├── test.sh │ │ └── test.yml │ ├── datetime/ │ │ ├── concord.yml │ │ └── run.sh │ ├── docker/ │ │ ├── README.md │ │ ├── ansible.cfg │ │ ├── concord.yml │ │ ├── inventory.ini │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── docker_simple/ │ │ ├── concord.yml │ │ └── run.sh │ ├── dynamic_form_fields/ │ │ ├── concord.yml │ │ └── run.sh │ ├── dynamic_form_values/ │ │ ├── concord.yml │ │ ├── forms/ │ │ │ └── myForm/ │ │ │ ├── data.js │ │ │ └── index.html │ │ └── run.sh │ ├── dynamic_forms/ │ │ ├── concord.yml │ │ └── run.sh │ ├── dynamic_tasks/ │ │ ├── concord.yml │ │ ├── run.sh │ │ ├── runtime-v2/ │ │ │ ├── concord.yml │ │ │ ├── run.sh │ │ │ └── tasks/ │ │ │ └── test.groovy │ │ └── tasks/ │ │ └── test.groovy │ ├── error_handling/ │ │ ├── concord.yml │ │ └── run.sh │ ├── external_script/ │ │ ├── concord.yml │ │ ├── example.js │ │ └── run.sh │ ├── fork/ │ │ ├── concord.yml │ │ └── run.sh │ ├── fork_join/ │ │ ├── concord.yml │ │ └── run.sh │ ├── form_and_long_process/ │ │ ├── concord.yml │ │ └── run.sh │ ├── form_l10n/ │ │ ├── concord.yml │ │ ├── forms/ │ │ │ └── myOtherForm/ │ │ │ ├── index.html │ │ │ └── locale.properties │ │ ├── locale.properties │ │ └── run.sh │ ├── forms/ │ │ ├── README.md │ │ ├── concord.yml │ │ └── run.sh │ ├── forms_multi_group/ │ │ ├── concord.yml │ │ └── run.sh │ ├── forms_override/ │ │ ├── concord.yml │ │ └── run.sh │ ├── forms_wizard/ │ │ ├── concord.yml │ │ ├── forms/ │ │ │ ├── shared/ │ │ │ │ └── common.js │ │ │ ├── userData/ │ │ │ │ └── index.html │ │ │ └── userWarning/ │ │ │ └── index.html │ │ └── run.sh │ ├── generic_triggers/ │ │ ├── README.md │ │ └── concord.yml │ ├── git/ │ │ ├── concord.yml │ │ └── run.sh │ ├── groovy/ │ │ ├── concord.yml │ │ └── run.sh │ ├── groovy_grape/ │ │ ├── concord.yml │ │ ├── run.sh │ │ └── test.groovy │ ├── groovy_rest/ │ │ ├── concord.yml │ │ └── run.sh │ ├── hello_initiator/ │ │ ├── concord.yml │ │ └── run.sh │ ├── hello_world/ │ │ ├── concord.yml │ │ └── run.sh │ ├── hello_world2/ │ │ ├── concord.yml │ │ └── run.sh │ ├── http/ │ │ ├── README.md │ │ ├── concord.yml │ │ └── run.sh │ ├── imports/ │ │ ├── concord.yml │ │ └── run.sh │ ├── in_variables/ │ │ ├── concord.yml │ │ └── run.sh │ ├── inventory/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── create_inventory.sh │ │ ├── isp.s01160.ca_ansiblefacts.json │ │ ├── isp.s05505.us_ansiblefacts.json │ │ ├── playbook/ │ │ │ └── hello.yml │ │ ├── query.sql │ │ ├── run.sh │ │ └── rxp.s00524.us_ansiblefacts.json │ ├── inventory_lookup/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── create_inventory.sh │ │ ├── playbook/ │ │ │ └── hello.yml │ │ ├── query.sql │ │ └── run.sh │ ├── jira/ │ │ ├── concord.yml │ │ └── run.sh │ ├── juel_java_streams/ │ │ ├── concord.yml │ │ └── run.sh │ ├── ldap/ │ │ ├── concord.yml │ │ └── run.sh │ ├── logback_config/ │ │ ├── _agent.json │ │ ├── concord.yml │ │ ├── my_logback.xml │ │ └── run.sh │ ├── loglevel/ │ │ ├── concord.yml │ │ └── run.sh │ ├── long_running/ │ │ ├── concord.yml │ │ └── run.sh │ ├── loops/ │ │ ├── concord.yml │ │ └── run.sh │ ├── mocking/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── mocks/ │ │ │ └── github.groovy │ │ └── run.sh │ ├── multiple_flows/ │ │ ├── concord.yml │ │ └── run.sh │ ├── noderoster/ │ │ ├── concord.yml │ │ └── run.sh │ ├── out/ │ │ ├── concord.yml │ │ └── run.sh │ ├── out_groovy/ │ │ ├── concord.yml │ │ └── run.sh │ ├── parsing_yaml_json/ │ │ ├── concord.yml │ │ ├── my.json │ │ ├── my.yml │ │ └── run.sh │ ├── process_card_htmx/ │ │ ├── README.md │ │ ├── data.js │ │ └── index.html │ ├── process_card_jquery/ │ │ ├── README.md │ │ ├── data.js │ │ └── index.html │ ├── process_from_a_process/ │ │ ├── concord.yml │ │ └── run.sh │ ├── process_from_a_process2/ │ │ ├── concord.yml │ │ └── run.sh │ ├── process_from_a_process3/ │ │ ├── concord.yml │ │ ├── example/ │ │ │ ├── concord.yml │ │ │ └── file.txt │ │ └── run.sh │ ├── process_meta/ │ │ ├── concord.yml │ │ └── run.sh │ ├── profiles/ │ │ ├── concord/ │ │ │ └── concord.yml │ │ ├── concord.yml │ │ └── run.sh │ ├── project_file/ │ │ ├── _main.json │ │ ├── concord.yml │ │ └── run.sh │ ├── python_script/ │ │ ├── concord.yml │ │ ├── example.py │ │ ├── my_module.py │ │ └── run.sh │ ├── ruby/ │ │ ├── concord.yml │ │ └── run.sh │ ├── runtime-v2/ │ │ ├── a_basic_example/ │ │ │ ├── README.md │ │ │ ├── concord/ │ │ │ │ └── example.concord.yml │ │ │ ├── concord.yml │ │ │ └── run.sh │ │ ├── ansible_out_vars/ │ │ │ ├── concord.yml │ │ │ ├── playbook/ │ │ │ │ └── hello.yml │ │ │ └── run.sh │ │ ├── demo-flow/ │ │ │ ├── README.md │ │ │ ├── concord/ │ │ │ │ ├── forms.concord.yml │ │ │ │ └── test.concord.yml │ │ │ ├── concord.yml │ │ │ ├── run.sh │ │ │ └── scripts/ │ │ │ └── test-script.groovy │ │ ├── mocks/ │ │ │ ├── main.concord.yaml │ │ │ ├── run-tests.sh │ │ │ ├── tests/ │ │ │ │ └── main.tests.concord.yaml │ │ │ └── tests-runner.concord.yaml │ │ ├── out_groovy/ │ │ │ ├── concord.yml │ │ │ └── run.sh │ │ ├── out_js/ │ │ │ ├── concord.yml │ │ │ └── run.sh │ │ ├── out_python/ │ │ │ ├── concord.yml │ │ │ └── run.sh │ │ ├── out_ruby/ │ │ │ ├── concord.yml │ │ │ └── run.sh │ │ ├── parallel_execution/ │ │ │ ├── concord.yml │ │ │ └── run.sh │ │ └── python_script/ │ │ ├── concord.yml │ │ ├── example.py │ │ ├── my_module.py │ │ └── run.sh │ ├── script_url/ │ │ ├── concord.yml │ │ ├── example.groovy │ │ └── run.sh │ ├── secret_files/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── myFileA.txt │ │ ├── myFileB.txt │ │ └── run.sh │ ├── secret_lookup/ │ │ ├── concord.yml │ │ ├── playbook/ │ │ │ └── hello.yml │ │ └── run.sh │ ├── secrets/ │ │ ├── README.md │ │ ├── concord.yml │ │ └── run.sh │ ├── slack/ │ │ ├── concord.yml │ │ └── run.sh │ ├── slackChannel/ │ │ ├── concord.yml │ │ └── run.sh │ ├── smtp/ │ │ ├── README.md │ │ ├── concord.yml │ │ ├── first.txt │ │ ├── mail.mustache │ │ ├── run.sh │ │ └── second.txt │ └── smtp_html/ │ ├── README.md │ ├── concord.yml │ ├── mail.mustache.html │ └── run.sh ├── forms/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── walmartlabs/ │ └── concord/ │ └── forms/ │ ├── Constants.java │ ├── DefaultFormValidator.java │ ├── DefaultFormValidatorLocale.java │ ├── Form.java │ ├── FormField.java │ ├── FormFields.java │ ├── FormOptions.java │ ├── FormUtils.java │ ├── FormValidator.java │ ├── FormValidatorLocale.java │ └── ValidationError.java ├── github-app-installation/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── github/ │ │ └── appinstallation/ │ │ ├── AccessTokenProvider.java │ │ ├── GitHubAppAuthCacheKey.java │ │ ├── GitHubAppAuthConfig.java │ │ ├── GitHubAppInstallation.java │ │ ├── GitHubInstallationToken.java │ │ ├── Utils.java │ │ ├── cfg/ │ │ │ └── GitHubAppInstallationConfig.java │ │ └── exception/ │ │ ├── GitHubAppException.java │ │ └── RepoExtractionException.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── github/ │ │ └── appinstallation/ │ │ ├── AccessTokenProviderTest.java │ │ ├── GitHubAppAuthConfigTest.java │ │ ├── GitHubAppInstallationTest.java │ │ ├── RepoExtractionTest.java │ │ ├── TestConstants.java │ │ ├── UtilsTest.java │ │ └── cfg/ │ │ └── ConfigTest.java │ └── resources/ │ └── logback-test.xml ├── idea-code-style.xml ├── imports/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── walmartlabs/ │ └── concord/ │ └── imports/ │ ├── DefaultImportManager.java │ ├── DirectoryProcessor.java │ ├── Import.java │ ├── ImportManager.java │ ├── ImportManagerFactory.java │ ├── ImportProcessingException.java │ ├── ImportProcessor.java │ ├── Imports.java │ ├── ImportsListener.java │ ├── MvnProcessor.java │ ├── NoopImportManager.java │ ├── RepositoryExporter.java │ ├── RepositoryProcessor.java │ └── package-info.java ├── it/ │ ├── README.md │ ├── common/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── filtered-resources/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── common/ │ │ │ └── version.properties │ │ └── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── it/ │ │ └── common/ │ │ ├── ForbiddenException.java │ │ ├── GitHubUtils.java │ │ ├── GitUtils.java │ │ ├── ITUtils.java │ │ ├── JGitUtils.java │ │ ├── MockGitSshServer.java │ │ ├── OffsetDateTimeDeserializer.java │ │ ├── ServerClient.java │ │ ├── ServerCompatModule.java │ │ └── Version.java │ ├── compat/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ ├── filtered-resources/ │ │ │ └── testcontainers.properties │ │ ├── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── compat/ │ │ │ ├── ITConstants.java │ │ │ ├── LocalModeIT.java │ │ │ └── OldAgentIT.java │ │ └── resources/ │ │ └── logback.xml │ ├── console/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── console/ │ │ │ ├── Base.java │ │ │ ├── Concord.java │ │ │ ├── ConcordConsoleRule.java │ │ │ ├── ConcordServerRule.java │ │ │ ├── CustomFormsIT.java │ │ │ ├── FormsIT.java │ │ │ ├── LoginIT.java │ │ │ ├── ProcessAnsibleIT.java │ │ │ ├── ProfileNavigationIT.java │ │ │ ├── ProjectTeamAccessIT.java │ │ │ ├── RepositoryRunIT.java │ │ │ ├── SecretIT.java │ │ │ ├── TeamIT.java │ │ │ ├── TryingIT.java │ │ │ ├── Utils.java │ │ │ └── WebDriverRule.java │ │ └── resources/ │ │ ├── agent.conf │ │ ├── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── console/ │ │ │ ├── customForm/ │ │ │ │ ├── concord.yml │ │ │ │ └── forms/ │ │ │ │ └── testForm/ │ │ │ │ └── index.html │ │ │ ├── dateTimeField/ │ │ │ │ └── concord.yml │ │ │ ├── processAnsible/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook.yml │ │ │ ├── repositoryRun/ │ │ │ │ └── concord.yml │ │ │ └── stringValues/ │ │ │ └── concord.yml │ │ ├── console.conf │ │ ├── logback.xml │ │ ├── mvn.json │ │ └── server.conf │ ├── pom.xml │ ├── runtime-v1/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ ├── filtered-resources/ │ │ │ ├── testcontainers.properties │ │ │ └── version.properties │ │ ├── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── runtime/ │ │ │ └── v1/ │ │ │ ├── ConcordConfiguration.java │ │ │ ├── ITConstants.java │ │ │ └── ProcessIT.java │ │ └── resources/ │ │ ├── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── runtime/ │ │ │ └── v1/ │ │ │ ├── activeProfiles/ │ │ │ │ └── concord.yml │ │ │ ├── customJvmArgs/ │ │ │ │ └── concord.yml │ │ │ ├── defaultEntryPoint/ │ │ │ │ └── concord.yml │ │ │ ├── disableProcess/ │ │ │ │ └── concord.yml │ │ │ ├── emptyExclusiveGroup/ │ │ │ │ └── concord.yml │ │ │ ├── errorHandling/ │ │ │ │ ├── _main.json │ │ │ │ └── processes/ │ │ │ │ └── test.yml │ │ │ ├── eventBatchingTimer/ │ │ │ │ └── concord.yml │ │ │ ├── example/ │ │ │ │ ├── _main.json │ │ │ │ ├── processes/ │ │ │ │ │ └── test.yml │ │ │ │ └── something.txt │ │ │ ├── fileupload/ │ │ │ │ └── concord.yml │ │ │ ├── interpolateWithVars/ │ │ │ │ └── concord.yml │ │ │ ├── interpolation/ │ │ │ │ ├── _main.json │ │ │ │ └── processes/ │ │ │ │ └── test.yml │ │ │ ├── killCascade/ │ │ │ │ └── concord.yml │ │ │ ├── multipart/ │ │ │ │ ├── .concord.yml │ │ │ │ └── _main.json │ │ │ ├── onFailureVars/ │ │ │ │ └── concord.yml │ │ │ ├── onFailureVars2/ │ │ │ │ └── concord.yml │ │ │ ├── processMetadataAfterExecution/ │ │ │ │ └── concord.yml │ │ │ ├── processMetadataWithItems/ │ │ │ │ └── concord.yml │ │ │ ├── processWithChildSuspend/ │ │ │ │ ├── concord.yml │ │ │ │ └── myPayload/ │ │ │ │ └── concord.yml │ │ │ ├── processWithChildSuspendWithoutOut/ │ │ │ │ ├── concord.yml │ │ │ │ └── myPayload/ │ │ │ │ └── concord.yml │ │ │ ├── processWithChildren/ │ │ │ │ └── concord.yml │ │ │ ├── processWithChildrenSuspend/ │ │ │ │ └── concord.yml │ │ │ ├── runnerLogLevel/ │ │ │ │ └── concord.yml │ │ │ ├── startupProblem/ │ │ │ │ ├── _main.json │ │ │ │ └── processes/ │ │ │ │ └── test.yml │ │ │ ├── switchCase/ │ │ │ │ └── concord.yml │ │ │ ├── tags/ │ │ │ │ └── concord.yml │ │ │ ├── throwBpmnError/ │ │ │ │ └── concord.yml │ │ │ ├── throwRuntime/ │ │ │ │ └── concord.yml │ │ │ ├── timeout/ │ │ │ │ ├── _main.json │ │ │ │ └── processes/ │ │ │ │ └── test.yml │ │ │ ├── workDir/ │ │ │ │ ├── .concord.yml │ │ │ │ ├── test1.txt │ │ │ │ └── test2.txt │ │ │ └── yamlRootFile/ │ │ │ ├── concord/ │ │ │ │ └── extra.yaml │ │ │ └── concord.yaml │ │ └── logback.xml │ ├── runtime-v2/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ ├── filtered-resources/ │ │ │ └── testcontainers.properties │ │ ├── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── runtime/ │ │ │ └── v2/ │ │ │ ├── AbstractTest.java │ │ │ ├── ConcordConfiguration.java │ │ │ ├── ConcordTaskIT.java │ │ │ ├── CryptoIT.java │ │ │ ├── FlowEventsIT.java │ │ │ ├── FormIT.java │ │ │ ├── GitHubTriggersV2IT.java │ │ │ ├── ITConstants.java │ │ │ ├── ImportsIT.java │ │ │ ├── JsonStoreIT.java │ │ │ ├── KvTaskIT.java │ │ │ ├── NodeRosterIT.java │ │ │ ├── ProcessIT.java │ │ │ ├── ProfilesIT.java │ │ │ ├── ResourceTaskIT.java │ │ │ ├── RestartIT.java │ │ │ ├── SessionStateFilesIT.java │ │ │ ├── SmtpIT.java │ │ │ ├── TaskSchemaValidationIT.java │ │ │ ├── TemplateIT.java │ │ │ └── Utils.java │ │ └── resources/ │ │ ├── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── runtime/ │ │ │ └── v2/ │ │ │ ├── args/ │ │ │ │ └── concord.yml │ │ │ ├── checkpointClasses/ │ │ │ │ └── concord.yml │ │ │ ├── checkpointState/ │ │ │ │ └── concord.yml │ │ │ ├── checkpoints/ │ │ │ │ └── concord.yml │ │ │ ├── checkpointsParallel/ │ │ │ │ └── concord.yml │ │ │ ├── concord/ │ │ │ │ ├── concordOutVars/ │ │ │ │ │ ├── concord.yml │ │ │ │ │ └── myPayload/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── concordSubDryRun/ │ │ │ │ │ ├── concord.yml │ │ │ │ │ └── myPayload/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── concordSubIgnoreFail/ │ │ │ │ │ ├── concord.yml │ │ │ │ │ └── myPayload/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── concordTaskApiKey/ │ │ │ │ │ ├── concord.yml │ │ │ │ │ └── payload/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── concordTaskForkSuspend/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── concordTaskForkWithArguments/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── concordTaskSuspendParentProcess/ │ │ │ │ │ ├── concord.yml │ │ │ │ │ └── payload/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── createApiKey/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── createOrUpdateApiKey/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── projectTask/ │ │ │ │ │ └── concord.yml │ │ │ │ └── repositoryRefreshTask/ │ │ │ │ └── concord.yml │ │ │ ├── crypto/ │ │ │ │ └── concord.yml │ │ │ ├── crypto-masked/ │ │ │ │ └── concord.yml │ │ │ ├── cryptoCreate/ │ │ │ │ └── concord.yml │ │ │ ├── customFormValues/ │ │ │ │ ├── concord.yml │ │ │ │ └── forms/ │ │ │ │ └── myForm/ │ │ │ │ └── index.html │ │ │ ├── dirImport/ │ │ │ │ └── other.concord.yml │ │ │ ├── dryRun/ │ │ │ │ └── concord.yaml │ │ │ ├── emptyExclusiveGroup/ │ │ │ │ └── concord.yml │ │ │ ├── eventBatchingParallel/ │ │ │ │ └── concord.yml │ │ │ ├── eventBatchingTimer/ │ │ │ │ └── concord.yml │ │ │ ├── exitWithMeta/ │ │ │ │ └── concord.yml │ │ │ ├── failProcess/ │ │ │ │ └── concord.yml │ │ │ ├── flowEvents/ │ │ │ │ └── concord.yml │ │ │ ├── forkAfterForm/ │ │ │ │ └── concord.yml │ │ │ ├── forkCheckpoints/ │ │ │ │ └── concord.yml │ │ │ ├── form/ │ │ │ │ └── concord.yml │ │ │ ├── formOnCancel/ │ │ │ │ └── concord.yml │ │ │ ├── formWithTimeout/ │ │ │ │ └── concord.yml │ │ │ ├── jsonStore/ │ │ │ │ └── concord.yml │ │ │ ├── kv/ │ │ │ │ └── concord.yml │ │ │ ├── logExpression/ │ │ │ │ └── concord.yml │ │ │ ├── meta/ │ │ │ │ └── concord.yml │ │ │ ├── metaAfterSuspend/ │ │ │ │ ├── concord.yml │ │ │ │ └── payload/ │ │ │ │ └── concord.yml │ │ │ ├── noderoster/ │ │ │ │ ├── ansible.yml │ │ │ │ ├── noderoster.yml │ │ │ │ └── playbook.yml │ │ │ ├── nullCallInputParam/ │ │ │ │ └── concord.yml │ │ │ ├── out/ │ │ │ │ └── concord.yml │ │ │ ├── outForFailed/ │ │ │ │ └── concord.yml │ │ │ ├── parallelExceptionPayload/ │ │ │ │ └── concord.yml │ │ │ ├── processMetadataSend/ │ │ │ │ ├── concord.yml │ │ │ │ └── debug_logback.xml │ │ │ ├── processMetadataWithItems/ │ │ │ │ └── concord.yml │ │ │ ├── profileFlow/ │ │ │ │ └── concord.yml │ │ │ ├── profileForm/ │ │ │ │ └── concord.yml │ │ │ ├── projectInfo/ │ │ │ │ └── concord.yml │ │ │ ├── resourcePrintJson/ │ │ │ │ └── concord.yml │ │ │ ├── resourceReadAsJson/ │ │ │ │ ├── concord.yml │ │ │ │ └── sample.json │ │ │ ├── resourceReadAsString/ │ │ │ │ ├── concord.yml │ │ │ │ └── sample.txt │ │ │ ├── resourceReadFromJsonString/ │ │ │ │ └── concord.yml │ │ │ ├── resourceWriteAsJson/ │ │ │ │ └── concord.yml │ │ │ ├── resourceWriteAsString/ │ │ │ │ └── concord.yml │ │ │ ├── resourceWriteAsYaml/ │ │ │ │ └── concord.yml │ │ │ ├── restartWithDeletedRepo/ │ │ │ │ └── concord.yml │ │ │ ├── scriptGroovy/ │ │ │ │ └── concord.yml │ │ │ ├── scriptJs/ │ │ │ │ └── concord.yml │ │ │ ├── scriptRuby/ │ │ │ │ └── concord.yml │ │ │ ├── sessionFileAccess/ │ │ │ │ └── concord.yml │ │ │ ├── smtp/ │ │ │ │ └── concord.yml │ │ │ ├── taskSchemaValidation/ │ │ │ │ ├── concordTaskInvalid/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── concordTaskValid/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── invalidInputFail/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── invalidInputWarn/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── invalidOutputFail/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── invalidOutputWarn/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── invalidSchemaFail/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── invalidSchemaWarn/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── multipleErrors/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── noSchema/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── validInput/ │ │ │ │ │ └── concord.yml │ │ │ │ └── validationDisabled/ │ │ │ │ └── concord.yml │ │ │ ├── template/ │ │ │ │ ├── _main.js │ │ │ │ └── concord/ │ │ │ │ └── hello.concord.yml │ │ │ ├── throwWithPayload/ │ │ │ │ └── concord.yml │ │ │ ├── triggers/ │ │ │ │ └── github/ │ │ │ │ ├── events/ │ │ │ │ │ ├── direct_branch_push.json │ │ │ │ │ ├── direct_branch_push_commit_id.json │ │ │ │ │ ├── pr_close.json │ │ │ │ │ └── pr_open.json │ │ │ │ └── repos/ │ │ │ │ └── v2/ │ │ │ │ ├── allParamsTrigger/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── defaultTrigger/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── defaultTriggerWithSender/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── filesTrigger/ │ │ │ │ │ └── concord.yml │ │ │ │ └── useEventCommitIdTrigger/ │ │ │ │ └── concord.yml │ │ │ ├── usernameSignature/ │ │ │ │ └── concord.yml │ │ │ └── yamlRootFile/ │ │ │ ├── concord/ │ │ │ │ └── extra.concord.yaml │ │ │ └── concord.yaml │ │ └── logback-test.xml │ ├── server/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── server/ │ │ │ ├── AbstractGeneralTriggerIT.java │ │ │ ├── AbstractGitHubTriggersIT.java │ │ │ ├── AbstractOneOpsTriggerIT.java │ │ │ ├── AbstractServerIT.java │ │ │ ├── AnsibleEventIT.java │ │ │ ├── AnsibleEventProcessorIT.java │ │ │ ├── AnsibleIT.java │ │ │ ├── AnsibleLookupIT.java │ │ │ ├── AnsiblePolicyIT.java │ │ │ ├── AnsiblePolicyVerboseLimitIT.java │ │ │ ├── AnsibleProjectIT.java │ │ │ ├── AnsibleRetryIT.java │ │ │ ├── ApiKeyIT.java │ │ │ ├── AttachmentRbacIT.java │ │ │ ├── CheckpointsIT.java │ │ │ ├── ClasspathIsolationIT.java │ │ │ ├── ClasspathRepoIT.java │ │ │ ├── ConcordTaskForkFromGitRepoIT.java │ │ │ ├── ConcordTaskIT.java │ │ │ ├── ConfigurableResourcesIT.java │ │ │ ├── CronIT.java │ │ │ ├── CrudIT.java │ │ │ ├── CryptoIT.java │ │ │ ├── DefaultProcessVariablesIT.java │ │ │ ├── DependenciesIT.java │ │ │ ├── DependencyManagerIT.java │ │ │ ├── DispatcherIT.java │ │ │ ├── DockerAnsibleIT.java │ │ │ ├── DockerIT.java │ │ │ ├── DynamicFormIT.java │ │ │ ├── DynamicTaskIT.java │ │ │ ├── EntityOwnerPolicyIT.java │ │ │ ├── EscapeGitCommitMessageIT.java │ │ │ ├── ExclusiveProcessIT.java │ │ │ ├── ExpressionResolveOrderIT.java │ │ │ ├── ExternalImportsIT.java │ │ │ ├── FailureHandlingIT.java │ │ │ ├── FilePermissionsIT.java │ │ │ ├── ForceSuspendIT.java │ │ │ ├── FormIT.java │ │ │ ├── GeneralTriggerIT.java │ │ │ ├── GeneralTriggerV2IT.java │ │ │ ├── GitBranchesIT.java │ │ │ ├── GitHubNonOrgEventIt.java │ │ │ ├── GitHubTriggersV2IT.java │ │ │ ├── GitRepositoryIT.java │ │ │ ├── GroovyIT.java │ │ │ ├── HttpTaskIT.java │ │ │ ├── ITConstants.java │ │ │ ├── InitiatorIT.java │ │ │ ├── InventoryIT.java │ │ │ ├── InventoryQueryIT.java │ │ │ ├── JsonStoreIT.java │ │ │ ├── JsonStoreTaskIT.java │ │ │ ├── KvPolicyIT.java │ │ │ ├── KvServiceIT.java │ │ │ ├── LdapIT.java │ │ │ ├── MavenRepoIT.java │ │ │ ├── MultipleProjectFilesIT.java │ │ │ ├── NodeRosterIT.java │ │ │ ├── OneOpsTriggerIT.java │ │ │ ├── OneOpsTriggerITV2.java │ │ │ ├── OutVariablesIT.java │ │ │ ├── OutVariablesProjectIT.java │ │ │ ├── PermissionIT.java │ │ │ ├── PolicyIT.java │ │ │ ├── PortalIT.java │ │ │ ├── PrincipalPermissionIT.java │ │ │ ├── ProcessCardIT.java │ │ │ ├── ProcessContainerIT.java │ │ │ ├── ProcessCountIT.java │ │ │ ├── ProcessEventsIT.java │ │ │ ├── ProcessExecModeIT.java │ │ │ ├── ProcessIT.java │ │ │ ├── ProcessLocksIT.java │ │ │ ├── ProcessMetadataIT.java │ │ │ ├── ProcessRbacIT.java │ │ │ ├── ProcessStateIT.java │ │ │ ├── ProjectDeleteIT.java │ │ │ ├── ProjectFileIT.java │ │ │ ├── ProjectIT.java │ │ │ ├── ProjectInfoIT.java │ │ │ ├── ProjectTaskIT.java │ │ │ ├── PublicFlowsIT.java │ │ │ ├── RawPayloadProjectIT.java │ │ │ ├── RepositoryRefreshIT.java │ │ │ ├── RequirementsIT.java │ │ │ ├── ResourceIT.java │ │ │ ├── RunAsIT.java │ │ │ ├── SecretIT.java │ │ │ ├── SecretProjectsIT.java │ │ │ ├── SecretsTaskIT.java │ │ │ ├── SerializationIT.java │ │ │ ├── SimpleIT.java │ │ │ ├── SmtpIT.java │ │ │ ├── StandardAuthenticationHandlersIT.java │ │ │ ├── SuspendIT.java │ │ │ ├── TaskRetryIT.java │ │ │ ├── TeamRbacIT.java │ │ │ ├── TemplateIT.java │ │ │ ├── TemplateMergeIT.java │ │ │ ├── ThrowExceptionTaskIT.java │ │ │ ├── TimeoutHandlingIT.java │ │ │ ├── TriggerIT.java │ │ │ ├── TriggersRefreshIT.java │ │ │ ├── UserManagementIT.java │ │ │ ├── UserResourceIT.java │ │ │ ├── UserResourceV2IT.java │ │ │ ├── ValidationIT.java │ │ │ ├── VariablesIT.java │ │ │ ├── VariablesInjectionIT.java │ │ │ ├── WithItemsIT.java │ │ │ └── WorkspacePolicyIT.java │ │ └── resources/ │ │ ├── agent.conf │ │ ├── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── server/ │ │ │ ├── ProcessDisabledRepo/ │ │ │ │ └── concord.yml │ │ │ ├── ansible/ │ │ │ │ ├── _main.json │ │ │ │ ├── playbook/ │ │ │ │ │ └── hello.yml │ │ │ │ └── processes/ │ │ │ │ └── main.yml │ │ │ ├── ansibleBadStrings/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ ├── blns.base64.json │ │ │ │ └── hello.yml │ │ │ ├── ansibleConfigFile/ │ │ │ │ ├── concord.yml │ │ │ │ ├── myInventory.ini │ │ │ │ ├── playbook/ │ │ │ │ │ └── hello.yml │ │ │ │ └── user.cfg │ │ │ ├── ansibleEvent/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleEventProcessor/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ ├── hello.yml │ │ │ │ ├── large_play_and_task_names.yml │ │ │ │ └── unicode_sanitization.yml │ │ │ ├── ansibleExternalPlaybook/ │ │ │ │ ├── payload/ │ │ │ │ │ └── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleExtraVarsFiles/ │ │ │ │ ├── concord.yml │ │ │ │ ├── extra.json │ │ │ │ ├── extra.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleFailedHosts/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook.yml │ │ │ ├── ansibleGroupVars/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleIgnoredFailures/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleInventoryMix/ │ │ │ │ ├── concord.yml │ │ │ │ ├── inventory.ini │ │ │ │ └── playbook.yml │ │ │ ├── ansibleInventoryName/ │ │ │ │ ├── concord.yml │ │ │ │ ├── inventory'$( whoami )'&123.ini │ │ │ │ └── playbook.yml │ │ │ ├── ansibleLargeVerbose/ │ │ │ │ ├── concord.yml │ │ │ │ ├── inventory_large.ini │ │ │ │ ├── inventory_limit.ini │ │ │ │ ├── inventory_small.ini │ │ │ │ ├── more_tasks.yml │ │ │ │ ├── playbook_include.yml │ │ │ │ ├── playbook_multi.yml │ │ │ │ └── playbook_single.yml │ │ │ ├── ansibleLimitWithMultipleHost/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleLogFiltering/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook.yml │ │ │ ├── ansibleLookupPublicKey/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleLookupSecret/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleLookupSecretData/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleLookupSecretDataNoPassword/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleLookupSecretDataValue/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleMergeDefaults/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleMultiInventory/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleMultiInventoryFile/ │ │ │ │ ├── aaa.ini │ │ │ │ ├── bbb.ini │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleOutVars/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansiblePolicyTaskDeny/ │ │ │ │ ├── concord.yml │ │ │ │ ├── playbook/ │ │ │ │ │ └── hello.yml │ │ │ │ └── test-policy.json │ │ │ ├── ansibleRawStrings/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleSaveRetry/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleSkipTags/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleStats/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleTemplateArgs/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleVault/ │ │ │ │ ├── concord.yml │ │ │ │ ├── get_password.py │ │ │ │ └── playbook/ │ │ │ │ ├── group_vars/ │ │ │ │ │ └── all.yml │ │ │ │ └── hello.yml │ │ │ ├── ansibleVaultMultiplePasswordFiles/ │ │ │ │ ├── concord.yml │ │ │ │ ├── get_all_password.py │ │ │ │ ├── get_local_password.py │ │ │ │ └── playbook/ │ │ │ │ ├── group_vars/ │ │ │ │ │ ├── all.yml │ │ │ │ │ └── local.yml │ │ │ │ └── hello.yml │ │ │ ├── ansibleVaultMultiplePasswords/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ ├── group_vars/ │ │ │ │ │ ├── all.yml │ │ │ │ │ └── local.yml │ │ │ │ └── hello.yml │ │ │ ├── ansibleWithForm/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleWithItems/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleWithPostFormSuspension/ │ │ │ │ ├── payload/ │ │ │ │ │ └── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── ansibleproject/ │ │ │ │ ├── git/ │ │ │ │ │ └── playbook/ │ │ │ │ │ └── hello.yml │ │ │ │ ├── inventory.ini │ │ │ │ ├── request.json │ │ │ │ ├── requestFailure.json │ │ │ │ └── requestInline.json │ │ │ ├── arrayInterpolation/ │ │ │ │ └── concord.yml │ │ │ ├── brokenDeps/ │ │ │ │ └── concord.yml │ │ │ ├── cancelHandling/ │ │ │ │ └── .concord.yml │ │ │ ├── cancelSuspendAfterTwoForms/ │ │ │ │ └── concord.yml │ │ │ ├── cancelSuspendHandling/ │ │ │ │ └── concord.yml │ │ │ ├── checkpointExpressions/ │ │ │ │ └── concord.yml │ │ │ ├── checkpoints/ │ │ │ │ └── concord.yml │ │ │ ├── checkpointsWithArgs/ │ │ │ │ └── concord.yml │ │ │ ├── checkpointsWithError/ │ │ │ │ └── concord.yml │ │ │ ├── checkpointsWithEventName/ │ │ │ │ └── concord.yml │ │ │ ├── checkpointsWithEventNameV2/ │ │ │ │ └── concord.yml │ │ │ ├── concordDirTask/ │ │ │ │ ├── concord.yml │ │ │ │ ├── myPayload/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── rootFile.txt │ │ │ │ └── someDir/ │ │ │ │ └── subFile.txt │ │ │ ├── concordOutVars/ │ │ │ │ ├── concord.yml │ │ │ │ └── myPayload/ │ │ │ │ └── concord.yml │ │ │ ├── concordProjectTask/ │ │ │ │ └── concord.yml │ │ │ ├── concordStartAtTask/ │ │ │ │ ├── concord.yml │ │ │ │ └── myPayload/ │ │ │ │ └── concord.yml │ │ │ ├── concordSubFail/ │ │ │ │ ├── concord.yml │ │ │ │ └── myPayload/ │ │ │ │ └── concord.yml │ │ │ ├── concordSubIgnoreFail/ │ │ │ │ ├── concord.yml │ │ │ │ └── myPayload/ │ │ │ │ └── concord.yml │ │ │ ├── concordSubWithNullArg/ │ │ │ │ ├── concord.yml │ │ │ │ └── myPayload/ │ │ │ │ └── concord.yml │ │ │ ├── concordTask/ │ │ │ │ └── concord.yml │ │ │ ├── concordTaskApiKey/ │ │ │ │ ├── concord.yml │ │ │ │ └── payload/ │ │ │ │ └── concord.yml │ │ │ ├── concordTaskFailChild/ │ │ │ │ └── concord.yml │ │ │ ├── concordTaskFork/ │ │ │ │ └── concord.yml │ │ │ ├── concordTaskForkAsyncGrabOutVars/ │ │ │ │ └── concord.yml │ │ │ ├── concordTaskForkSuspend/ │ │ │ │ └── concord.yml │ │ │ ├── concordTaskForkWithArguments/ │ │ │ │ └── concord.yml │ │ │ ├── concordTaskForkWithForm/ │ │ │ │ └── concord.yml │ │ │ ├── concordTaskForkWithItems/ │ │ │ │ └── concord.yml │ │ │ ├── concordTaskForkWithItemsWithOut/ │ │ │ │ └── concord.yml │ │ │ ├── concordTaskForkWithRequirements/ │ │ │ │ └── concord.yml │ │ │ ├── concordTaskSuspendParentProcess/ │ │ │ │ ├── concord.yml │ │ │ │ └── payload/ │ │ │ │ └── concord.yml │ │ │ ├── configurableFlowsDirectory/ │ │ │ │ ├── concord.yml │ │ │ │ └── myFlows/ │ │ │ │ └── external.yml │ │ │ ├── configurableProfilesDirectory/ │ │ │ │ ├── .concord.yml │ │ │ │ ├── _main.json │ │ │ │ └── myProfiles/ │ │ │ │ └── test.yml │ │ │ ├── cronProfiles/ │ │ │ │ └── concord.yml │ │ │ ├── cronRunAs/ │ │ │ │ └── concord.yml │ │ │ ├── crypto/ │ │ │ │ ├── _main.json │ │ │ │ └── flows/ │ │ │ │ └── test.yml │ │ │ ├── cryptoFile/ │ │ │ │ └── concord.yml │ │ │ ├── cryptoFileWithOrg/ │ │ │ │ └── concord.yml │ │ │ ├── cryptoPlain/ │ │ │ │ └── .concord.yml │ │ │ ├── cryptoPwd/ │ │ │ │ └── .concord.yml │ │ │ ├── cryptoWithoutPassword/ │ │ │ │ └── concord.yml │ │ │ ├── currentOrgCrypto/ │ │ │ │ └── concord.yml │ │ │ ├── decryptString/ │ │ │ │ └── concord.yml │ │ │ ├── decryptStringTooBig/ │ │ │ │ └── concord.yml │ │ │ ├── defaultEntryPoint/ │ │ │ │ └── concord.yml │ │ │ ├── defaultVars/ │ │ │ │ └── concord.yml │ │ │ ├── delegateOut/ │ │ │ │ └── concord.yml │ │ │ ├── dependencyManager/ │ │ │ │ └── concord.yml │ │ │ ├── deps/ │ │ │ │ └── processes/ │ │ │ │ └── test.yml │ │ │ ├── disableProfilesDirectory/ │ │ │ │ ├── _main.json │ │ │ │ ├── concord.yml │ │ │ │ └── profiles/ │ │ │ │ └── broken.yml │ │ │ ├── docker/ │ │ │ │ └── concord.yml │ │ │ ├── dockerAnsible/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── dockerLogWithStdErr/ │ │ │ │ └── concord.yml │ │ │ ├── dockerLogWithoutStdOut/ │ │ │ │ └── concord.yml │ │ │ ├── dockerNoLogWithStdOut/ │ │ │ │ └── concord.yml │ │ │ ├── dockerOut/ │ │ │ │ └── concord.yml │ │ │ ├── dockerPullRetry/ │ │ │ │ └── concord.yml │ │ │ ├── dockerTaskSyntaxOut/ │ │ │ │ └── concord.yml │ │ │ ├── dynamicFormFields/ │ │ │ │ └── concord.yml │ │ │ ├── dynamicFormWithGroovy/ │ │ │ │ └── concord.yml │ │ │ ├── dynamicTask/ │ │ │ │ ├── concord.yml │ │ │ │ └── tasks/ │ │ │ │ └── test.groovy │ │ │ ├── effectiveYaml/ │ │ │ │ └── concord.yml │ │ │ ├── encryptString/ │ │ │ │ └── .concord.yml │ │ │ ├── escapeCommitMessage/ │ │ │ │ └── .concord.yml │ │ │ ├── example/ │ │ │ │ ├── _main.json │ │ │ │ ├── processes/ │ │ │ │ │ └── test.yml │ │ │ │ └── something.txt │ │ │ ├── exclusiveCancelOld/ │ │ │ │ └── concord.yml │ │ │ ├── externalImport/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportFailHandler/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportMain/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportMainFailed/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportMainStateTest/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportMainWithDeps/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportMainWithExclude/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportMainWithFlow/ │ │ │ │ ├── concord/ │ │ │ │ │ └── concord.yml │ │ │ │ └── concord.yml │ │ │ ├── externalImportMainWithForks/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportMainWithPath/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportMainWithVersion/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportSymlink/ │ │ │ │ └── concord.txt │ │ │ ├── externalImportTriggerReference/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportWithConfiguration/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportWithDeps/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportWithDir/ │ │ │ │ ├── concord.yml │ │ │ │ └── dir/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportWithForks/ │ │ │ │ └── concord.yml │ │ │ ├── externalImportWithForm/ │ │ │ │ └── concord.yml │ │ │ ├── externalWithItems/ │ │ │ │ └── concord.yml │ │ │ ├── extraDeps/ │ │ │ │ └── concord.yml │ │ │ ├── failureHandling/ │ │ │ │ └── .concord.yml │ │ │ ├── failureHandlingError/ │ │ │ │ └── .concord.yml │ │ │ ├── filePerm/ │ │ │ │ ├── concord.yml │ │ │ │ └── test.sh │ │ │ ├── forkDepth/ │ │ │ │ └── concord.yml │ │ │ ├── forkInitiator/ │ │ │ │ └── concord.yml │ │ │ ├── forkOnFailure/ │ │ │ │ └── concord.yml │ │ │ ├── form/ │ │ │ │ ├── _main.json │ │ │ │ └── processes/ │ │ │ │ └── test.yml │ │ │ ├── formCallWithExpression/ │ │ │ │ └── .concord.yml │ │ │ ├── formExternal/ │ │ │ │ ├── concord.yml │ │ │ │ └── flows/ │ │ │ │ └── external.yml │ │ │ ├── formLabelExpression/ │ │ │ │ └── concord.yml │ │ │ ├── formMultiValue/ │ │ │ │ └── .concord.yml │ │ │ ├── formOptionalFileTypeField/ │ │ │ │ └── .concord.yml │ │ │ ├── formReadonlyField/ │ │ │ │ └── .concord.yml │ │ │ ├── formSingleAllowedValue/ │ │ │ │ └── concord.yml │ │ │ ├── formValues/ │ │ │ │ └── .concord.yml │ │ │ ├── formValuesSubmit/ │ │ │ │ └── concord.yml │ │ │ ├── formsWithItems/ │ │ │ │ └── concord.yml │ │ │ ├── generalExclusiveTrigger/ │ │ │ │ └── concord.yml │ │ │ ├── generalExclusiveTriggerv2/ │ │ │ │ └── concord.yml │ │ │ ├── generalTriggerWithExclusiveCfg/ │ │ │ │ └── concord.yml │ │ │ ├── generalTriggerWithExclusiveCfgv2/ │ │ │ │ └── concord.yml │ │ │ ├── generalTriggerWithExclusiveOverride/ │ │ │ │ └── concord.yml │ │ │ ├── generalTriggerWithExclusiveOverridev2/ │ │ │ │ └── concord.yml │ │ │ ├── getVar/ │ │ │ │ └── concord.yml │ │ │ ├── gitBranches/ │ │ │ │ ├── dev/ │ │ │ │ │ └── concord.yml │ │ │ │ └── qa/ │ │ │ │ └── concord.yml │ │ │ ├── gitRepository/ │ │ │ │ └── concord.yml │ │ │ ├── githubNonRepoEvent/ │ │ │ │ ├── concord.yml │ │ │ │ └── event.json │ │ │ ├── githubTests/ │ │ │ │ ├── events/ │ │ │ │ │ ├── direct_branch_push.json │ │ │ │ │ ├── direct_branch_push_delete.json │ │ │ │ │ ├── empty_push.json │ │ │ │ │ ├── pr_close.json │ │ │ │ │ └── pr_open.json │ │ │ │ └── repos/ │ │ │ │ └── v2/ │ │ │ │ ├── allParamsTrigger/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── anyRepoWithSender/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── defaultTrigger/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── files/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── groupByBranchTrigger/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── groupByEventAttrTrigger/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── ignoreEmptyPushTrigger/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── queryParams/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── requestInfo/ │ │ │ │ │ └── concord.yml │ │ │ │ └── useInitiatorTrigger/ │ │ │ │ └── concord.yml │ │ │ ├── groovy/ │ │ │ │ └── concord.yml │ │ │ ├── httpFollowRedirects/ │ │ │ │ └── concord.yml │ │ │ ├── httpGet/ │ │ │ │ └── concord.yml │ │ │ ├── httpGetAsDefaultMethod/ │ │ │ │ └── concord.yml │ │ │ ├── httpGetAsString/ │ │ │ │ └── concord.yml │ │ │ ├── httpGetEmpty/ │ │ │ │ └── concord.yml │ │ │ ├── httpGetWithAuthUsingPassword/ │ │ │ │ └── concord.yml │ │ │ ├── httpGetWithAuthUsingToken/ │ │ │ │ └── concord.yml │ │ │ ├── httpGetWithHeaders/ │ │ │ │ └── concord.yml │ │ │ ├── httpGetWithIgnoreErrors/ │ │ │ │ └── concord.yml │ │ │ ├── httpGetWithInvalidUrl/ │ │ │ │ └── concord.yml │ │ │ ├── httpGetWithQueryParams/ │ │ │ │ └── concord.yml │ │ │ ├── httpPatch/ │ │ │ │ └── concord.yml │ │ │ ├── httpPost/ │ │ │ │ └── concord.yml │ │ │ ├── httpPostArray/ │ │ │ │ └── concord.yml │ │ │ ├── httpPostWithAuthUsingToken/ │ │ │ │ └── concord.yml │ │ │ ├── httpPostWithDebug/ │ │ │ │ └── concord.yml │ │ │ ├── httpPostWithFormUrlEncoded/ │ │ │ │ └── concord.yml │ │ │ ├── importATrigger/ │ │ │ │ └── concord.yml │ │ │ ├── initiator/ │ │ │ │ ├── _main.json │ │ │ │ └── processes/ │ │ │ │ └── test.yml │ │ │ ├── inject/ │ │ │ │ └── .concord.yml │ │ │ ├── interpolation/ │ │ │ │ ├── _main.json │ │ │ │ └── processes/ │ │ │ │ └── test.yml │ │ │ ├── invalidResourcesPath/ │ │ │ │ └── concord.yml │ │ │ ├── invalidTriggers/ │ │ │ │ └── concord.yml │ │ │ ├── invalidTriggersBrokenProcess/ │ │ │ │ ├── a/ │ │ │ │ │ ├── concord.yml │ │ │ │ │ └── makepolicyfail.txt │ │ │ │ ├── b/ │ │ │ │ │ └── concord.yml │ │ │ │ └── policy.json │ │ │ ├── inventoryQuery/ │ │ │ │ └── concord.yml │ │ │ ├── jsonStoreTask/ │ │ │ │ └── concord.yml │ │ │ ├── jsonStoreTaskStoreTest/ │ │ │ │ └── concord.yml │ │ │ ├── kvInc/ │ │ │ │ └── processes/ │ │ │ │ └── test.yml │ │ │ ├── kvInvalidKeys/ │ │ │ │ └── concord.yml │ │ │ ├── kvPolicy/ │ │ │ │ ├── concord.yml │ │ │ │ ├── test-policy-relaxed.json │ │ │ │ └── test-policy.json │ │ │ ├── kvScript/ │ │ │ │ └── concord.yml │ │ │ ├── kvSpecialString/ │ │ │ │ └── concord.yml │ │ │ ├── ldapFormRunAs/ │ │ │ │ └── concord.yml │ │ │ ├── ldapInitiator/ │ │ │ │ └── concord.yml │ │ │ ├── multiProjectTemplate/ │ │ │ │ ├── template/ │ │ │ │ │ ├── concord/ │ │ │ │ │ │ └── test.yml │ │ │ │ │ └── test.txt │ │ │ │ └── user/ │ │ │ │ └── concord.yml │ │ │ ├── multipart/ │ │ │ │ ├── .concord.yml │ │ │ │ └── _main.json │ │ │ ├── multipleWithItems/ │ │ │ │ └── concord.yml │ │ │ ├── mvnDeps/ │ │ │ │ └── concord.yml │ │ │ ├── nodeRoster/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook.yml │ │ │ ├── nodeRosterMultiFacts/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook.yml │ │ │ ├── nodeRosterTask/ │ │ │ │ └── concord.yml │ │ │ ├── nonSerializableTest/ │ │ │ │ └── concord.yml │ │ │ ├── onFailureDependencies/ │ │ │ │ └── concord.yml │ │ │ ├── oneCheckpoint/ │ │ │ │ └── concord.yml │ │ │ ├── oneopsTests/ │ │ │ │ ├── events/ │ │ │ │ │ ├── oneops_deployment_complete.json │ │ │ │ │ └── oneops_deployment_qa.json │ │ │ │ └── trigger/ │ │ │ │ └── concord.yml │ │ │ ├── out/ │ │ │ │ └── concord.yml │ │ │ ├── parentInstanceId/ │ │ │ │ ├── concord.yml │ │ │ │ └── myPayload/ │ │ │ │ └── concord.yml │ │ │ ├── policyCfg/ │ │ │ │ └── concord.yml │ │ │ ├── portal/ │ │ │ │ └── .concord.yml │ │ │ ├── principalPermission/ │ │ │ │ ├── concord.yml │ │ │ │ └── payload/ │ │ │ │ └── concord.yml │ │ │ ├── process/ │ │ │ │ └── concord.yml │ │ │ ├── processContainer/ │ │ │ │ └── concord.yml │ │ │ ├── processCount/ │ │ │ │ └── concord.yml │ │ │ ├── processLocks/ │ │ │ │ └── concord.yml │ │ │ ├── processMetadata/ │ │ │ │ └── concord.yml │ │ │ ├── processModeExec/ │ │ │ │ └── concord.yml │ │ │ ├── processRbac/ │ │ │ │ └── concord.yml │ │ │ ├── processRequirements/ │ │ │ │ └── concord.yml │ │ │ ├── processWithChildren/ │ │ │ │ └── concord.yml │ │ │ ├── project/ │ │ │ │ └── processes/ │ │ │ │ └── test.yml │ │ │ ├── project-commit-id/ │ │ │ │ ├── 1/ │ │ │ │ │ └── processes/ │ │ │ │ │ └── test.yml │ │ │ │ └── 2/ │ │ │ │ └── processes/ │ │ │ │ └── test.yml │ │ │ ├── project-triggers/ │ │ │ │ └── concord.yml │ │ │ ├── projectEntryPoint/ │ │ │ │ └── .concord.yml │ │ │ ├── projectInfo/ │ │ │ │ └── concord.yml │ │ │ ├── projectTask/ │ │ │ │ └── concord.yml │ │ │ ├── projectfile/ │ │ │ │ ├── altname/ │ │ │ │ │ └── concord.yml │ │ │ │ ├── deps/ │ │ │ │ │ └── .template.yml │ │ │ │ ├── expr/ │ │ │ │ │ ├── .concord.yml │ │ │ │ │ └── _main.json │ │ │ │ ├── expressionscript/ │ │ │ │ │ ├── concord.yml │ │ │ │ │ └── scripts/ │ │ │ │ │ └── test.js │ │ │ │ ├── externalprofile/ │ │ │ │ │ ├── .concord.yml │ │ │ │ │ ├── _main.json │ │ │ │ │ └── profiles/ │ │ │ │ │ ├── another.yml │ │ │ │ │ └── test.yml │ │ │ │ ├── externalscript/ │ │ │ │ │ ├── .concord.yml │ │ │ │ │ ├── _main.json │ │ │ │ │ └── scripts/ │ │ │ │ │ └── test.js │ │ │ │ ├── overrideflow/ │ │ │ │ │ ├── .concord.yml │ │ │ │ │ └── _main.json │ │ │ │ ├── scriptWithErrorBlock/ │ │ │ │ │ ├── .concord.yml │ │ │ │ │ ├── _main.json │ │ │ │ │ └── scripts/ │ │ │ │ │ └── myscript.groovy │ │ │ │ ├── singleprofile/ │ │ │ │ │ ├── .concord.yml │ │ │ │ │ └── _main.json │ │ │ │ └── singleprofilecfg/ │ │ │ │ ├── .concord.yml │ │ │ │ └── _main.json │ │ │ ├── publicFlowsInProfiles/ │ │ │ │ ├── concord/ │ │ │ │ │ ├── a.yml │ │ │ │ │ └── b.yml │ │ │ │ └── concord.yml │ │ │ ├── repositoryRefresh/ │ │ │ │ └── concord.yml │ │ │ ├── repositoryValidation/ │ │ │ │ └── concord.yml │ │ │ ├── repositoryValidationEmptyFlow/ │ │ │ │ └── concord.yml │ │ │ ├── repositoryValidationEmptyForm/ │ │ │ │ └── concord.yml │ │ │ ├── repositoryValidationTemplateRef/ │ │ │ │ └── concord.yml │ │ │ ├── resolveOrder/ │ │ │ │ └── concord.yml │ │ │ ├── resourcePrintJson/ │ │ │ │ └── concord.yml │ │ │ ├── resourceReadAsJson/ │ │ │ │ ├── concord.yml │ │ │ │ └── sample.json │ │ │ ├── resourceReadAsString/ │ │ │ │ ├── concord.yml │ │ │ │ └── sample.txt │ │ │ ├── resourceReadFromJsonString/ │ │ │ │ └── concord.yml │ │ │ ├── resourceWriteAsJson/ │ │ │ │ └── concord.yml │ │ │ ├── resourceWriteAsString/ │ │ │ │ └── concord.yml │ │ │ ├── resourceWriteAsYaml/ │ │ │ │ └── concord.yml │ │ │ ├── runAsMultipleUsers/ │ │ │ │ └── concord.yml │ │ │ ├── runAsPayload/ │ │ │ │ └── concord.yml │ │ │ ├── runas/ │ │ │ │ └── concord.yml │ │ │ ├── runnerEvents/ │ │ │ │ └── concord.yml │ │ │ ├── secretProjects/ │ │ │ │ └── concord.yml │ │ │ ├── secretsTask/ │ │ │ │ └── concord.yml │ │ │ ├── serialization/ │ │ │ │ └── .concord.yml │ │ │ ├── sessionToken/ │ │ │ │ └── concord.yml │ │ │ ├── sessionTokenAsUsername/ │ │ │ │ └── concord.yml │ │ │ ├── setVar/ │ │ │ │ └── concord.yml │ │ │ ├── setVarNested/ │ │ │ │ └── concord.yml │ │ │ ├── setVarNested2/ │ │ │ │ └── concord.yml │ │ │ ├── simple/ │ │ │ │ └── concord.yml │ │ │ ├── smtp/ │ │ │ │ ├── _main.json │ │ │ │ ├── processes/ │ │ │ │ │ └── main.yml │ │ │ │ └── test.mustache │ │ │ ├── stateSingleFile/ │ │ │ │ ├── concord.yml │ │ │ │ └── dir/ │ │ │ │ └── test.txt │ │ │ ├── suspend/ │ │ │ │ ├── _main.json │ │ │ │ └── processes/ │ │ │ │ └── main.yml │ │ │ ├── suspendForCompletion/ │ │ │ │ ├── concord.yml │ │ │ │ └── payload/ │ │ │ │ └── concord.yml │ │ │ ├── suspendForForkedProcesses/ │ │ │ │ └── concord.yml │ │ │ ├── suspendTask/ │ │ │ │ └── concord.yml │ │ │ ├── taskOut/ │ │ │ │ └── concord.yml │ │ │ ├── taskRetry/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── taskRetryWithExpression/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── templateMerge/ │ │ │ │ ├── process/ │ │ │ │ │ └── .concord.yml │ │ │ │ └── template/ │ │ │ │ ├── _main.js │ │ │ │ └── flows/ │ │ │ │ └── main.yml │ │ │ ├── testTrigger/ │ │ │ │ └── concord.yml │ │ │ ├── throwExceptionMessage/ │ │ │ │ └── concord.yml │ │ │ ├── throwExceptionTask/ │ │ │ │ └── concord.yml │ │ │ ├── timeout/ │ │ │ │ ├── _main.json │ │ │ │ └── processes/ │ │ │ │ └── test.yml │ │ │ ├── timeoutHandling/ │ │ │ │ └── .concord.yml │ │ │ ├── triggerActiveProfiles/ │ │ │ │ └── concord.yml │ │ │ ├── triggerRepo/ │ │ │ │ ├── concord.yml │ │ │ │ └── new_concord.yml │ │ │ ├── twoAnsible/ │ │ │ │ ├── concord.yml │ │ │ │ └── playbook/ │ │ │ │ └── hello.yml │ │ │ ├── unknownFlavor/ │ │ │ │ └── concord.yml │ │ │ ├── variables/ │ │ │ │ ├── .concord.yml │ │ │ │ └── _main.json │ │ │ ├── withDelay/ │ │ │ │ └── concord.yml │ │ │ ├── withForm/ │ │ │ │ └── concord.yml │ │ │ └── workspacePolicy/ │ │ │ ├── concord.yml │ │ │ ├── test-policy-relaxed.json │ │ │ └── test-policy.json │ │ ├── default_vars.yml │ │ ├── logback.xml │ │ ├── mvn.json │ │ └── server.conf │ ├── tasks/ │ │ ├── broken-deps/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── tasks/ │ │ │ └── brokendeps/ │ │ │ └── BrokenDepsTask.java │ │ ├── dependency-manager-test/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── tasks/ │ │ │ └── dependencymanagertest/ │ │ │ └── DependencyManagerTestTask.java │ │ ├── schema-test/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── it/ │ │ │ │ └── tasks/ │ │ │ │ └── schematest/ │ │ │ │ ├── InvalidSchemaTask.java │ │ │ │ └── SchemaTestTask.java │ │ │ └── resources/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── tasks/ │ │ │ └── schematest/ │ │ │ ├── invalidSchema.schema.json │ │ │ └── schemaTest.schema.json │ │ ├── serialization-test/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── it/ │ │ │ └── tasks/ │ │ │ └── serializationtest/ │ │ │ ├── CustomBean.java │ │ │ ├── CustomBeanTask.java │ │ │ ├── NonSerializableThingy.java │ │ │ └── SerializationTestTask.java │ │ └── suspend-test/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── it/ │ │ └── tasks/ │ │ └── suspendtest/ │ │ └── SuspendTestTask.java │ └── testing-server/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── it/ │ │ └── testingserver/ │ │ ├── TestingConcordAgent.java │ │ └── TestingConcordServer.java │ └── test/ │ └── java/ │ └── com/ │ └── walmartlabs/ │ └── concord/ │ └── it/ │ └── testingserver/ │ └── TestingConcordIT.java ├── mvnw ├── mvnw.cmd ├── plugins/ │ ├── pom.xml │ ├── tasks/ │ │ ├── ansible/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── walmartlabs/ │ │ │ │ │ └── concord/ │ │ │ │ │ └── plugins/ │ │ │ │ │ └── ansible/ │ │ │ │ │ ├── AnsibleAuth.java │ │ │ │ │ ├── AnsibleAuthFactory.java │ │ │ │ │ ├── AnsibleCallbacks.java │ │ │ │ │ ├── AnsibleConfig.java │ │ │ │ │ ├── AnsibleContext.java │ │ │ │ │ ├── AnsibleEnv.java │ │ │ │ │ ├── AnsibleInventory.java │ │ │ │ │ ├── AnsibleLibs.java │ │ │ │ │ ├── AnsibleLookup.java │ │ │ │ │ ├── AnsibleRoles.java │ │ │ │ │ ├── AnsibleTask.java │ │ │ │ │ ├── AnsibleVaultId.java │ │ │ │ │ ├── ArgUtils.java │ │ │ │ │ ├── ConfigSection.java │ │ │ │ │ ├── DefaultPlaybookProcessRunner.java │ │ │ │ │ ├── DeprecatedArgsProcessor.java │ │ │ │ │ ├── DockerExtraHosts.java │ │ │ │ │ ├── DockerPlaybookProcessRunner.java │ │ │ │ │ ├── EventSender.java │ │ │ │ │ ├── GroupVarsProcessor.java │ │ │ │ │ ├── KerberosAuth.java │ │ │ │ │ ├── NopAuth.java │ │ │ │ │ ├── OutVarsProcessor.java │ │ │ │ │ ├── PlaybookProcessRunner.java │ │ │ │ │ ├── PlaybookProcessRunnerFactory.java │ │ │ │ │ ├── PlaybookScriptBuilder.java │ │ │ │ │ ├── PrivateKeyAuth.java │ │ │ │ │ ├── Resources.java │ │ │ │ │ ├── Secret.java │ │ │ │ │ ├── TaskParams.java │ │ │ │ │ ├── Utils.java │ │ │ │ │ ├── Virtualenv.java │ │ │ │ │ ├── docker/ │ │ │ │ │ │ └── AnsibleDockerService.java │ │ │ │ │ ├── secrets/ │ │ │ │ │ │ ├── AnsibleSecretService.java │ │ │ │ │ │ ├── KeyPair.java │ │ │ │ │ │ └── UsernamePassword.java │ │ │ │ │ ├── v1/ │ │ │ │ │ │ ├── AnsibleDockerServiceV1.java │ │ │ │ │ │ ├── AnsibleSecretServiceV1.java │ │ │ │ │ │ ├── AnsibleTaskV1.java │ │ │ │ │ │ └── RunPlaybookTask2.java │ │ │ │ │ └── v2/ │ │ │ │ │ ├── AnsibleDockerServiceV2.java │ │ │ │ │ ├── AnsibleSecretServiceV2.java │ │ │ │ │ └── AnsibleTaskV2.java │ │ │ │ └── resources/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── plugins/ │ │ │ │ └── ansible/ │ │ │ │ ├── callback/ │ │ │ │ │ ├── concord_default_module_args.py │ │ │ │ │ ├── concord_events.py │ │ │ │ │ ├── concord_out_vars.py │ │ │ │ │ ├── concord_protectdata.py │ │ │ │ │ ├── concord_strategy_patch.py │ │ │ │ │ ├── concord_task_executor_patch.py │ │ │ │ │ └── concord_trace.py │ │ │ │ ├── inventory.sh │ │ │ │ ├── lib/ │ │ │ │ │ ├── concord_ansible_stats.py │ │ │ │ │ ├── process_cfg_policy.py │ │ │ │ │ └── task_policy.py │ │ │ │ └── lookup/ │ │ │ │ ├── concord_data_secret.py │ │ │ │ ├── concord_inventory.py │ │ │ │ ├── concord_public_key_secret.py │ │ │ │ └── concord_secret.py │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── plugins/ │ │ │ │ └── ansible/ │ │ │ │ ├── AbstractTest.java │ │ │ │ ├── AnsibleConfigTest.java │ │ │ │ └── KerberosTest.java │ │ │ └── resources/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── ansible/ │ │ │ └── ansible.cfg │ │ ├── asserts/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── asserts/ │ │ │ └── AssertsTask.java │ │ ├── concord/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── walmartlabs/ │ │ │ │ │ └── concord/ │ │ │ │ │ └── client/ │ │ │ │ │ ├── AbstractConcordTask.java │ │ │ │ │ ├── ConcordTask.java │ │ │ │ │ ├── ConcordTaskCommon.java │ │ │ │ │ ├── ConcordTaskParams.java │ │ │ │ │ ├── InventoryTask.java │ │ │ │ │ ├── JsonStoreTask.java │ │ │ │ │ ├── JsonStoreTaskCommon.java │ │ │ │ │ ├── Keys.java │ │ │ │ │ ├── ProjectTask.java │ │ │ │ │ ├── ProjectTaskCommon.java │ │ │ │ │ ├── ProjectTaskParams.java │ │ │ │ │ ├── RepositoryRefreshTaskCommon.java │ │ │ │ │ ├── RepositoryRefreshTaskParams.java │ │ │ │ │ ├── ResumePayload.java │ │ │ │ │ ├── SecretsTask.java │ │ │ │ │ ├── SecretsTaskCommon.java │ │ │ │ │ ├── SecretsTaskParams.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ ├── EventRepository.java │ │ │ │ │ │ ├── PushEvent.java │ │ │ │ │ │ └── RefreshEvent.java │ │ │ │ │ ├── v1/ │ │ │ │ │ │ └── ContextBackedVariables.java │ │ │ │ │ └── v2/ │ │ │ │ │ ├── ConcordTaskV2.java │ │ │ │ │ ├── JsonStoreTaskV2.java │ │ │ │ │ ├── ProjectTaskV2.java │ │ │ │ │ ├── RepositoryRefreshTaskV2.java │ │ │ │ │ └── SecretsTaskV2.java │ │ │ │ └── resources/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── client/ │ │ │ │ └── v2/ │ │ │ │ └── concord.schema.json │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── client/ │ │ │ ├── ConcordTaskParamsTest.java │ │ │ └── RepositoryRefreshCommonTest.java │ │ ├── crypto/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── crypto/ │ │ │ ├── CryptoTask.java │ │ │ ├── CryptoTaskV2.java │ │ │ └── TaskParams.java │ │ ├── docker/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── docker/ │ │ │ ├── DockerConstants.java │ │ │ ├── DockerTask.java │ │ │ ├── DockerTaskCommon.java │ │ │ ├── DockerTaskV2.java │ │ │ └── TaskParams.java │ │ ├── dynamic-tasks/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── dynamic/ │ │ │ ├── LoadTasksTask.java │ │ │ ├── LoadTasksTaskV2.java │ │ │ ├── TaskLoader.java │ │ │ └── TaskRegistry.java │ │ ├── example/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── example/ │ │ │ ├── ExampleBean.java │ │ │ ├── ExampleDelegate.java │ │ │ └── ExampleTask.java │ │ ├── files/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── file/ │ │ │ └── v2/ │ │ │ └── FilesTaskV2.java │ │ ├── http/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── filtered-resources/ │ │ │ │ │ └── com/ │ │ │ │ │ └── walmartlabs/ │ │ │ │ │ └── concord/ │ │ │ │ │ └── plugins/ │ │ │ │ │ └── http/ │ │ │ │ │ └── version.properties │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── plugins/ │ │ │ │ └── http/ │ │ │ │ ├── Configuration.java │ │ │ │ ├── HttpTask.java │ │ │ │ ├── HttpTaskUtils.java │ │ │ │ ├── HttpTaskV2.java │ │ │ │ ├── SimpleHttpClient.java │ │ │ │ ├── Version.java │ │ │ │ ├── exception/ │ │ │ │ │ ├── RequestTimeoutException.java │ │ │ │ │ └── UnauthorizedException.java │ │ │ │ └── request/ │ │ │ │ ├── HttpTaskRequest.java │ │ │ │ └── Request.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── plugins/ │ │ │ │ └── http/ │ │ │ │ ├── HttpTaskTest.java │ │ │ │ ├── HttpTaskV2Test.java │ │ │ │ ├── SimpleHttpClientTest.java │ │ │ │ └── WiremockTest.java │ │ │ └── resources/ │ │ │ └── logback.xml │ │ ├── kv/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── kv/ │ │ │ ├── Constants.java │ │ │ ├── KvTask.java │ │ │ ├── KvTaskUtils.java │ │ │ └── KvTaskV2.java │ │ ├── locale/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── locale/ │ │ │ ├── LocaleTask.java │ │ │ └── LocaleTaskV2.java │ │ ├── lock/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── lock/ │ │ │ ├── Constants.java │ │ │ ├── LockTask.java │ │ │ ├── LockTaskCommon.java │ │ │ ├── TaskParams.java │ │ │ └── v2/ │ │ │ ├── LockTaskV2.java │ │ │ └── UnlockTaskV2.java │ │ ├── log/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── log/ │ │ │ ├── LogDebugTask.java │ │ │ ├── LogErrorTask.java │ │ │ ├── LogUtils.java │ │ │ ├── LogWarnTask.java │ │ │ ├── LoggingTask.java │ │ │ └── LoggingTaskV2.java │ │ ├── misc/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── misc/ │ │ │ ├── Base64TaskV2.java │ │ │ ├── CollectionsTaskV2.java │ │ │ ├── DateTimeTask.java │ │ │ ├── DateTimeTaskV2.java │ │ │ ├── EnvTaskV2.java │ │ │ ├── MiscTask.java │ │ │ └── MiscTaskV2.java │ │ ├── mock/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── plugins/ │ │ │ │ └── mock/ │ │ │ │ ├── InputSanitizer.java │ │ │ │ ├── Invocation.java │ │ │ │ ├── Invocations.java │ │ │ │ ├── InvocationsCollector.java │ │ │ │ ├── InvocationsCollectorParams.java │ │ │ │ ├── MockDefinition.java │ │ │ │ ├── MockDefinitionContext.java │ │ │ │ ├── MockDefinitionProvider.java │ │ │ │ ├── MockModule.java │ │ │ │ ├── MockTask.java │ │ │ │ ├── MockTaskMethodResolver.java │ │ │ │ ├── MockTaskProvider.java │ │ │ │ ├── MockUtilsTask.java │ │ │ │ ├── VerifierBeanMethodResolver.java │ │ │ │ ├── VerifyTask.java │ │ │ │ └── matcher/ │ │ │ │ ├── AbstractMatcher.java │ │ │ │ ├── ArgsMatcher.java │ │ │ │ ├── CollectionMatcher.java │ │ │ │ ├── MapMatcher.java │ │ │ │ ├── Matcher.java │ │ │ │ ├── StringValueMatcher.java │ │ │ │ ├── TypeReference.java │ │ │ │ └── ValueMatcher.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── plugins/ │ │ │ │ └── mock/ │ │ │ │ ├── MockDefinitionMatcherTest.java │ │ │ │ ├── MockTest.java │ │ │ │ ├── TestTask.java │ │ │ │ ├── VerifyTest.java │ │ │ │ └── matcher/ │ │ │ │ └── ArgsMatcherTest.java │ │ │ └── resources/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── mock/ │ │ │ ├── method-mock/ │ │ │ │ └── concord.yml │ │ │ ├── method-mock-with-any/ │ │ │ │ └── concord.yml │ │ │ ├── method-mock-with-flow-execute/ │ │ │ │ └── concord.yml │ │ │ ├── simple/ │ │ │ │ └── concord.yml │ │ │ ├── simple-verify/ │ │ │ │ └── concord.yaml │ │ │ ├── task-mock-with-flow-execute/ │ │ │ │ └── concord.yml │ │ │ └── verify-mocked-task/ │ │ │ └── concord.yaml │ │ ├── noderoster/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── noderoster/ │ │ │ ├── Constants.java │ │ │ ├── NodeRosterTask.java │ │ │ ├── NodeRosterTaskUtils.java │ │ │ ├── NodeRosterTaskV2.java │ │ │ └── Result.java │ │ ├── resource/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── plugins/ │ │ │ │ └── resource/ │ │ │ │ ├── Evaluator.java │ │ │ │ ├── FileService.java │ │ │ │ ├── ResourceTask.java │ │ │ │ ├── ResourceTaskCommon.java │ │ │ │ └── v2/ │ │ │ │ └── ResourceTaskV2.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── plugins/ │ │ │ │ └── resource/ │ │ │ │ └── ResourceTaskCommonTest.java │ │ │ └── resources/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── resource/ │ │ │ └── test.properties │ │ ├── slack/ │ │ │ ├── README.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── plugins/ │ │ │ │ └── slack/ │ │ │ │ ├── ContextVariables.java │ │ │ │ ├── Slack.java │ │ │ │ ├── SlackChannelTask.java │ │ │ │ ├── SlackChannelTaskCommon.java │ │ │ │ ├── SlackChannelTaskParams.java │ │ │ │ ├── SlackClient.java │ │ │ │ ├── SlackConfiguration.java │ │ │ │ ├── SlackConfigurationParams.java │ │ │ │ ├── SlackTask.java │ │ │ │ ├── SlackTaskCommon.java │ │ │ │ ├── SlackTaskParams.java │ │ │ │ ├── Utils.java │ │ │ │ └── v2/ │ │ │ │ ├── SlackChannelTaskV2.java │ │ │ │ └── SlackTaskV2.java │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── slack/ │ │ │ ├── SlackClientTest.java │ │ │ ├── SlackTaskTest.java │ │ │ └── TestParams.java │ │ ├── sleep/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── sleep/ │ │ │ ├── Constants.java │ │ │ ├── SleepTask.java │ │ │ ├── SleepTaskCommon.java │ │ │ ├── Suspender.java │ │ │ ├── TaskParams.java │ │ │ └── v2/ │ │ │ └── SleepTaskV2.java │ │ ├── smtp/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── plugins/ │ │ │ │ └── smtp/ │ │ │ │ ├── Constants.java │ │ │ │ ├── SmtpTask.java │ │ │ │ ├── SmtpTaskUtils.java │ │ │ │ └── SmtpTaskV2.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── plugins/ │ │ │ │ └── smtp/ │ │ │ │ ├── SmtpTaskTest.java │ │ │ │ └── SmtpTaskV2Test.java │ │ │ └── resources/ │ │ │ ├── attahcment.txt │ │ │ ├── logback.xml │ │ │ └── test.mustache │ │ ├── throw/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── plugins/ │ │ │ └── throwex/ │ │ │ ├── ConcordException.java │ │ │ ├── ThrowExceptionTask.java │ │ │ └── ThrowExceptionTaskV2.java │ │ └── variables/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── plugins/ │ │ └── variables/ │ │ ├── VariablesTask.java │ │ ├── VariablesTaskCommon.java │ │ └── v2/ │ │ └── VariablesTaskV2.java │ └── templates/ │ └── ansible/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── filtered-resources/ │ ├── META-INF/ │ │ └── concord/ │ │ └── template.properties │ ├── _main.js │ └── processes/ │ └── main.yml ├── policy-engine/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── policyengine/ │ │ ├── AttachmentsPolicy.java │ │ ├── AttachmentsRule.java │ │ ├── CheckResult.java │ │ ├── ConcurrentProcessPolicy.java │ │ ├── ConcurrentProcessRule.java │ │ ├── ContainerPolicy.java │ │ ├── ContainerRule.java │ │ ├── CronTriggerPolicy.java │ │ ├── CronTriggerRule.java │ │ ├── DependencyPolicy.java │ │ ├── DependencyRewritePolicy.java │ │ ├── DependencyRewriteRule.java │ │ ├── DependencyRule.java │ │ ├── DependencyVersionsPolicy.java │ │ ├── EffectiveYamlPolicy.java │ │ ├── EffectiveYamlRule.java │ │ ├── EntityPolicy.java │ │ ├── EntityRule.java │ │ ├── FilePolicy.java │ │ ├── FileRule.java │ │ ├── ForkDepthPolicy.java │ │ ├── ForkDepthRule.java │ │ ├── JsonStorePolicy.java │ │ ├── JsonStoreRule.java │ │ ├── KvPolicy.java │ │ ├── KvRule.java │ │ ├── PolicyEngine.java │ │ ├── PolicyEngineRules.java │ │ ├── PolicyRules.java │ │ ├── ProcessCfgPolicy.java │ │ ├── ProcessTimeoutPolicy.java │ │ ├── ProcessTimeoutRule.java │ │ ├── ProtectedTasksPolicy.java │ │ ├── ProtectedTasksRule.java │ │ ├── QueueRule.java │ │ ├── RawPayloadPolicy.java │ │ ├── RawPayloadRule.java │ │ ├── RuntimePolicy.java │ │ ├── RuntimeRule.java │ │ ├── StatePolicy.java │ │ ├── StateRule.java │ │ ├── TaskPolicy.java │ │ ├── TaskRule.java │ │ ├── Utils.java │ │ ├── WorkspacePolicy.java │ │ ├── WorkspaceRule.java │ │ └── package-info.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── policyengine/ │ │ ├── ContainerPolicyTest.java │ │ ├── DependencyPolicyTest.java │ │ ├── DependencyRewritePolicyTest.java │ │ ├── EffectiveYamlPolicyTest.java │ │ ├── PolicyEngineRulesTest.java │ │ ├── QueueRuleTest.java │ │ ├── RawPayloadPolicyTest.java │ │ ├── TaskPolicyTest.java │ │ ├── UtilsTest.java │ │ └── WorkspacePolicyTest.java │ └── resources/ │ └── com/ │ └── walmartlabs/ │ └── concord/ │ └── policyengine/ │ ├── policy1.json │ ├── policy2.json │ ├── policy3.json │ ├── policy4.json │ ├── policy5.json │ └── policy6.json ├── pom.xml ├── repository/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── repository/ │ │ ├── FetchRequest.java │ │ ├── FetchResult.java │ │ ├── GitCliRepositoryProvider.java │ │ ├── GitClient.java │ │ ├── GitClientConfiguration.java │ │ ├── LastModifiedSnapshot.java │ │ ├── MavenRepositoryProvider.java │ │ ├── Repository.java │ │ ├── RepositoryAccessJournal.java │ │ ├── RepositoryCache.java │ │ ├── RepositoryException.java │ │ ├── RepositoryProvider.java │ │ ├── RepositoryProviders.java │ │ └── Snapshot.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── repository/ │ │ ├── GitClientFetch2Test.java │ │ ├── GitClientFetchTest.java │ │ ├── GitClientRealTest.java │ │ ├── GitClientSpeedTest.java │ │ ├── GitUriTest.java │ │ └── GitUtils.java │ └── resources/ │ ├── branch-1/ │ │ └── branch-1.txt │ ├── logback.xml │ ├── master/ │ │ └── master.txt │ ├── tag-1/ │ │ └── tag-1.txt │ ├── test4/ │ │ ├── concord.yml │ │ └── new_concord.yml │ └── test5/ │ ├── 0_concord.yml │ ├── 1_concord.yml │ └── 2_concord.yml ├── runtime/ │ ├── common/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── runtime/ │ │ │ └── common/ │ │ │ ├── FormService.java │ │ │ ├── ObjectTruncater.java │ │ │ ├── ProcessHeartbeat.java │ │ │ ├── SensitiveDataMasker.java │ │ │ ├── SerializationUtils.java │ │ │ ├── StateManager.java │ │ │ ├── cfg/ │ │ │ │ ├── ApiConfiguration.java │ │ │ │ ├── CommonProcessConfiguration.java │ │ │ │ ├── DependencyManagerConfiguration.java │ │ │ │ ├── DockerConfiguration.java │ │ │ │ ├── LoggingConfiguration.java │ │ │ │ ├── RunnerConfiguration.java │ │ │ │ └── SecurityManagerConfiguration.java │ │ │ ├── injector/ │ │ │ │ ├── InjectorUtils.java │ │ │ │ ├── InstanceId.java │ │ │ │ └── TaskHolder.java │ │ │ └── logger/ │ │ │ ├── LogSegmentDeserializer.java │ │ │ ├── LogSegmentHeader.java │ │ │ ├── LogSegmentSerializer.java │ │ │ └── LogSegmentStatus.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── runtime/ │ │ └── common/ │ │ ├── ObjectTruncaterTest.java │ │ └── SensitiveDataMaskerTest.java │ ├── loader/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── process/ │ │ └── loader/ │ │ ├── DelegatingProjectLoader.java │ │ ├── ImportsNormalizer.java │ │ ├── ProjectLoader.java │ │ ├── ProjectLoaderUtils.java │ │ ├── StandardRuntimeTypes.java │ │ └── UnsupportedRuntimeTypeException.java │ ├── model/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── walmartlabs/ │ │ └── concord/ │ │ └── runtime/ │ │ └── model/ │ │ ├── AllowNulls.java │ │ ├── Configuration.java │ │ ├── EffectiveConfiguration.java │ │ ├── EffectiveProcessDefinitionProvider.java │ │ ├── ExpressionStep.java │ │ ├── FlowDefinition.java │ │ ├── Form.java │ │ ├── FormField.java │ │ ├── Location.java │ │ ├── Options.java │ │ ├── ProcessDefinition.java │ │ ├── Profile.java │ │ ├── SourceMap.java │ │ ├── Step.java │ │ ├── TaskCallStep.java │ │ └── Trigger.java │ ├── v1/ │ │ ├── README.md │ │ ├── impl/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── walmartlabs/ │ │ │ │ │ └── concord/ │ │ │ │ │ └── runner/ │ │ │ │ │ ├── ApiClientFactoryImpl.java │ │ │ │ │ ├── ApiClientFactoryProvider.java │ │ │ │ │ ├── CheckpointManager.java │ │ │ │ │ ├── ConcordSecurityManager.java │ │ │ │ │ ├── ContextUtils.java │ │ │ │ │ ├── DefaultVariablesConverter.java │ │ │ │ │ ├── DependencyManagerConfigurationProvider.java │ │ │ │ │ ├── DependencyManagerImpl.java │ │ │ │ │ ├── ExecutorServiceProvider.java │ │ │ │ │ ├── LockServiceImpl.java │ │ │ │ │ ├── Main.java │ │ │ │ │ ├── ObjectStorageImpl.java │ │ │ │ │ ├── OutVariablesParser.java │ │ │ │ │ ├── PolicyEngineHolder.java │ │ │ │ │ ├── ProcessApiClient.java │ │ │ │ │ ├── SecretServiceImpl.java │ │ │ │ │ ├── SerializationUtils.java │ │ │ │ │ ├── TaskCallInterceptor.java │ │ │ │ │ ├── TaskClasses.java │ │ │ │ │ ├── VariablesSnapshotListener.java │ │ │ │ │ └── engine/ │ │ │ │ │ ├── ApiConfigurationImpl.java │ │ │ │ │ ├── CheckpointTask.java │ │ │ │ │ ├── ConcordExecutionContextFactory.java │ │ │ │ │ ├── ConcordFormService.java │ │ │ │ │ ├── DefaultElementEventProcessor.java │ │ │ │ │ ├── DefaultEventReportingService.java │ │ │ │ │ ├── DockerServiceImpl.java │ │ │ │ │ ├── ElementEventProcessor.java │ │ │ │ │ ├── EngineFactory.java │ │ │ │ │ ├── EventConfiguration.java │ │ │ │ │ ├── EventReportingService.java │ │ │ │ │ ├── FileEventStorage.java │ │ │ │ │ ├── FileFormStorage.java │ │ │ │ │ ├── FilePersistenceManager.java │ │ │ │ │ ├── FormUtilsTask.java │ │ │ │ │ ├── LogTagMetadataProvider.java │ │ │ │ │ ├── NopElementEventProcessor.java │ │ │ │ │ ├── PolicyPreprocessor.java │ │ │ │ │ ├── ProcessElementInterceptor.java │ │ │ │ │ ├── ProcessErrorProcessor.java │ │ │ │ │ ├── ProcessMetadataProcessor.java │ │ │ │ │ ├── ProcessOutVariables.java │ │ │ │ │ ├── ProcessOutVariablesListener.java │ │ │ │ │ ├── ProtectedVarContext.java │ │ │ │ │ ├── ResourceResolverImpl.java │ │ │ │ │ ├── TaskEventInterceptor.java │ │ │ │ │ ├── TaskInterceptor.java │ │ │ │ │ ├── TaskRegistry.java │ │ │ │ │ └── el/ │ │ │ │ │ ├── InjectVariableELResolver.java │ │ │ │ │ ├── ResolverUtils.java │ │ │ │ │ └── TaskResolver.java │ │ │ │ └── resources/ │ │ │ │ └── logback.xml │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ └── runner/ │ │ │ │ └── engine/ │ │ │ │ ├── ConcordExecutionContextTest.java │ │ │ │ ├── EventReportingServiceTest.java │ │ │ │ ├── PolicyPreprocessorTest.java │ │ │ │ └── el/ │ │ │ │ ├── AbstractElResolverTest.java │ │ │ │ ├── InjectVariableELResolverTest.java │ │ │ │ └── TaskResolverTest.java │ │ │ └── resources/ │ │ │ └── com/ │ │ │ └── walmartlabs/ │ │ │ └── concord/ │ │ │ └── runner/ │ │ │ └── policy.json │ │ ├── model/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── walmartlabs/ │ │ │ │ └── concord/ │ │ │ │ ├── project/ │ │ │ │ │ ├── ImportsNormalizer.java │ │ │ │ │ ├── InternalConstants.java │ │ │ │ │ ├── NoopImportsNormalizer.java │ │ │ │ │ ├── ProjectLoader.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ ├── Profile.java │ │ │ │ │ │ ├── ProjectDefinition.java │ │ │ │ │ │ ├── ProjectDefinitionUtils.java │ │ │ │ │ │ ├── Resources.java │ │ │ │ │ │ └── Trigger.java │ │ │ │ │ └── yaml/ │ │ │ │ │ ├── Atom.java │ │ │ │ │ ├── Grammar.java │ │ │ │ │ ├── KV.java │ │ │ │ │ ├── ListInput.java │ │ │ │ │ ├── YamlConverterException.java │ │ │ │ │ ├── YamlDeserializers.java │ │ │ │ │ ├── YamlFormConverter.java │ │ │ │ │ ├── YamlImportConverter.java │ │ │ │ │ ├── YamlParser.java │ │ │ │ │ ├── YamlParserException.java │ │ │ │ │ ├── YamlProcessConverter.java │ │ │ │ │ ├── YamlProjectConverter.java │ │ │ │ │ ├── YamlResourcesConverter.java │ │ │ │ │ ├── YamlTriggersConverter.java │ │ │ │ │ ├── converter/ │ │ │ │ │ │ ├── Chunk.java │ │ │ │ │ │ ├── ConverterContext.java │ │ │ │ │ │ ├── DockerOptionsConverter.java │ │ │ │ │ │ ├── StepConverter.java │ │ │ │ │ │ ├── YamlCallConverter.java │ │ │ │ │ │ ├── YamlCheckpointConverter.java │ │ │ │ │ │ ├── YamlDockerStepConverter.java │ │ │ │ │ │ ├── YamlEventConverter.java │ │ │ │ │ │ ├── YamlExitConverter.java │ │ │ │ │ │ ├── YamlExpressionStepConverter.java │ │ │ │ │ │ ├── YamlFormCallConverter.java │ │ │ │ │ │ ├── YamlGroupConverter.java │ │ │ │ │ │ ├── YamlIfExprConverter.java │ │ │ │ │ │ ├── YamlReturnConverter.java │ │ │ │ │ │ ├── YamlScriptConverter.java │ │ │ │ │ │ ├── YamlSetVariablesStepConverter.java │ │ │ │ │ │ ├── YamlSwitchExprConverter.java │ │ │ │ │ │ ├── YamlTaskShortStepConverter.java │ │ │ │ │ │ └── YamlTaskStepConverter.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ ├── YamlCall.java │ │ │ │ │ │ ├── YamlCheckpoint.java │ │ │ │ │ │ ├── YamlDefinition.java │ │ │ │ │ │ ├── YamlDefinitionFile.java │ │ │ │
Showing preview only (1,481K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (17231 symbols across 2463 files)
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/HashUtils.java
class HashUtils (line 32) | public final class HashUtils {
method hashAsHexString (line 37) | public static String hashAsHexString(Object v) throws IOException {
method HashUtils (line 43) | private HashUtils() {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/Operator.java
class Operator (line 38) | public class Operator {
method main (line 44) | public static void main(String[] args) {
method getEnv (line 91) | private static String getEnv(String key, String defaultValue) {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/PodLabels.java
class PodLabels (line 31) | public final class PodLabels {
method applyTag (line 35) | public static void applyTag(KubernetesClient client, String podName, S...
method PodLabels (line 60) | private PodLabels() {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/agent/AgentClient.java
type AgentClient (line 23) | public interface AgentClient {
method enableMaintenanceMode (line 25) | void enableMaintenanceMode() throws Exception;
method hasBusyWorkers (line 27) | boolean hasBusyWorkers() throws Exception;
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/agent/AgentClientFactory.java
class AgentClientFactory (line 30) | public class AgentClientFactory {
method AgentClientFactory (line 37) | public AgentClientFactory(boolean useMaintenanceMode) {
method create (line 50) | public AgentClient create(Pod pod) {
method isRunning (line 58) | private static boolean isRunning(Pod pod) {
method hasIP (line 62) | private static boolean hasIP(Pod pod) {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/agent/DefaultAgentClient.java
class DefaultAgentClient (line 34) | public class DefaultAgentClient implements AgentClient {
method DefaultAgentClient (line 43) | public DefaultAgentClient(HttpClient client, String podIp) {
method enableMaintenanceMode (line 48) | @Override
method hasBusyWorkers (line 59) | @Override
type MaintenanceMode (line 73) | @Value.Immutable
method maintenanceMode (line 78) | boolean maintenanceMode();
method workersAlive (line 80) | int workersAlive();
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/agent/NopAgentClient.java
class NopAgentClient (line 23) | public class NopAgentClient implements AgentClient {
method enableMaintenanceMode (line 25) | @Override
method hasBusyWorkers (line 30) | @Override
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/crd/AgentPool.java
class AgentPool (line 29) | @Version(AgentPool.VERSION)
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/crd/AgentPoolConfiguration.java
class AgentPoolConfiguration (line 30) | public class AgentPoolConfiguration implements Serializable {
method isAutoScale (line 103) | public boolean isAutoScale() {
method getSizeIncrement (line 107) | public int getSizeIncrement() {
method setSizeIncrement (line 111) | public void setSizeIncrement(int sizeIncrement) {
method setAutoScale (line 115) | public void setAutoScale(boolean autoScale) {
method getAutoScaleStrategy (line 119) | public String getAutoScaleStrategy() {
method setAutoScaleStrategy (line 123) | public void setAutoScaleStrategy(String autoScaleStrategy) {
method getScaleUpDelayMs (line 127) | public long getScaleUpDelayMs() {
method setScaleUpDelayMs (line 131) | public void setScaleUpDelayMs(long scaleUpDelayMs) {
method getScaleDownDelayMs (line 135) | public long getScaleDownDelayMs() {
method setScaleDownDelayMs (line 139) | public void setScaleDownDelayMs(long scaleDownDelayMs) {
method getMaxSize (line 143) | public int getMaxSize() {
method setMaxSize (line 147) | public void setMaxSize(int maxSize) {
method getMinSize (line 151) | public int getMinSize() {
method setMinSize (line 155) | public void setMinSize(int minSize) {
method getSize (line 159) | public int getSize() {
method setSize (line 163) | public void setSize(int size) {
method getQueueSelector (line 167) | public Map<String, Object> getQueueSelector() {
method setQueueSelector (line 171) | public void setQueueSelector(Map<String, Object> queueSelector) {
method getPercentIncrement (line 175) | public double getPercentIncrement() {
method setPercentIncrement (line 179) | public void setPercentIncrement(double percentIncrement) {
method getPercentDecrement (line 183) | public double getPercentDecrement() {
method setPercentDecrement (line 187) | public void setPercentDecrement(double percentDecrement) {
method getIncrementThresholdFactor (line 191) | public double getIncrementThresholdFactor() {
method setIncrementThresholdFactor (line 195) | public void setIncrementThresholdFactor(double incrementThresholdFacto...
method getDecrementThresholdFactor (line 199) | public double getDecrementThresholdFactor() {
method setDecrementThresholdFactor (line 203) | public void setDecrementThresholdFactor(double decrementThresholdFacto...
method getQueueQueryLimit (line 207) | public int getQueueQueryLimit() {
method setQueueQueryLimit (line 211) | public void setQueueQueryLimit(int queueQueryLimit) {
method getConfigMap (line 215) | public ConfigMap getConfigMap() {
method setConfigMap (line 219) | public void setConfigMap(ConfigMap configMap) {
method getPod (line 223) | public Pod getPod() {
method setPod (line 227) | public void setPod(Pod pod) {
method getLongFromEnv (line 231) | private static long getLongFromEnv(String key, Long defaultValue) {
method getDoubleFromEnv (line 236) | private static double getDoubleFromEnv(String key, double defaultValue) {
method getStringFromEnv (line 241) | private static String getStringFromEnv(String key, String defaultValue) {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/crd/AgentPoolList.java
class AgentPoolList (line 25) | public class AgentPoolList extends DefaultKubernetesResourceList<AgentPo...
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/Change.java
type Change (line 25) | public interface Change {
method apply (line 27) | void apply(KubernetesClient client);
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/CreateConfigMapChange.java
class CreateConfigMapChange (line 31) | public class CreateConfigMapChange implements Change {
method CreateConfigMapChange (line 38) | public CreateConfigMapChange(AgentPoolInstance poolInstance, String co...
method apply (line 43) | @Override
method toString (line 53) | @Override
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/CreatePodChange.java
class CreatePodChange (line 31) | public class CreatePodChange implements Change {
method CreatePodChange (line 40) | public CreatePodChange(AgentPoolInstance poolInstance, String podName,...
method apply (line 47) | @Override
method toString (line 57) | @Override
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/DeleteConfigMapChange.java
class DeleteConfigMapChange (line 28) | public class DeleteConfigMapChange implements Change {
method DeleteConfigMapChange (line 34) | public DeleteConfigMapChange(String configMapName) {
method apply (line 38) | @Override
method toString (line 44) | @Override
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/Planner.java
class Planner (line 41) | public class Planner {
method Planner (line 48) | public Planner(KubernetesClient client, AgentClientFactory agentClient...
method plan (line 53) | public List<Change> plan(AgentPoolInstance poolInstance) throws IOExce...
method generatePodName (line 171) | private static String generatePodName(String resourceName, Set<String>...
method configMapName (line 182) | private static String configMapName(String resourceName) {
method podName (line 186) | private static String podName(String resourceName, int i) {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/TagForRemovalChange.java
class TagForRemovalChange (line 30) | public class TagForRemovalChange implements Change {
method TagForRemovalChange (line 37) | public TagForRemovalChange(String podName, AgentClient agentClient) {
method apply (line 42) | @Override
method toString (line 54) | @Override
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/TryToDeletePodChange.java
class TryToDeletePodChange (line 33) | public class TryToDeletePodChange implements Change {
method TryToDeletePodChange (line 40) | public TryToDeletePodChange(String podName, AgentClient agentClient) {
method apply (line 64) | @Override
method toString (line 95) | @Override
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/processqueue/ProcessQueueClient.java
class ProcessQueueClient (line 47) | public class ProcessQueueClient {
method ProcessQueueClient (line 57) | public ProcessQueueClient(String baseUrl, String apiToken) {
method query (line 64) | public List<ProcessQueueEntry> query(String processStatus, int limit, ...
method initClient (line 100) | private static HttpClient initClient() {
method escapeQueryParam (line 131) | @VisibleForTesting
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/processqueue/ProcessQueueEntry.java
class ProcessQueueEntry (line 30) | @JsonIgnoreProperties(ignoreUnknown = true)
method ProcessQueueEntry (line 37) | @JsonCreator
method getRequirements (line 42) | public Map<String, Object> getRequirements() {
method toString (line 46) | @Override
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/resources/AgentConfigMap.java
class AgentConfigMap (line 37) | public final class AgentConfigMap {
method get (line 43) | public static ConfigMap get(KubernetesClient client, String configMapN...
method create (line 52) | public static void create(KubernetesClient client, AgentPoolInstance p...
method delete (line 62) | public static void delete(KubernetesClient client, String configMapNam...
method hasChanges (line 81) | public static boolean hasChanges(KubernetesClient client, AgentPoolIns...
method prepare (line 90) | private static ConfigMap prepare(KubernetesClient client, AgentPoolIns...
method escape (line 105) | private static String escape(String str) throws JsonProcessingException {
method AgentConfigMap (line 110) | private AgentConfigMap() {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/resources/AgentPod.java
class AgentPod (line 37) | public final class AgentPod {
method listMarkedForRemoval (line 48) | public static List<Pod> listMarkedForRemoval(KubernetesClient client, ...
method list (line 61) | public static List<Pod> list(KubernetesClient client, String resourceN...
method create (line 73) | public static void create(KubernetesClient client,
method AgentPod (line 96) | private AgentPod() {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/resources/Resources.java
class Resources (line 32) | public final class Resources {
method get (line 36) | public static String get(String name) {
method load (line 40) | private static String load(String name) {
method Resources (line 51) | private Resources() {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/AgentPoolInstance.java
class AgentPoolInstance (line 25) | public class AgentPoolInstance {
method updateStatus (line 27) | public static AgentPoolInstance updateStatus(AgentPoolInstance i, Stat...
method updateTargetSize (line 31) | public static AgentPoolInstance updateTargetSize(AgentPoolInstance i, ...
method AgentPoolInstance (line 43) | public AgentPoolInstance(String name, AgentPool resource, Status statu...
method getName (line 54) | public String getName() {
method getResource (line 58) | public AgentPool getResource() {
method getStatus (line 62) | public Status getStatus() {
method getTargetSize (line 66) | public int getTargetSize() {
method getLastUpdateTimestamp (line 70) | public long getLastUpdateTimestamp() {
method getLastScaleUpTimestamp (line 74) | public long getLastScaleUpTimestamp() {
method getLastScaleDownTimeStamp (line 78) | public long getLastScaleDownTimeStamp() {
type Status (line 82) | public enum Status {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/AutoScaler.java
type AutoScaler (line 25) | public interface AutoScaler {
method apply (line 27) | AgentPoolInstance apply(AgentPoolInstance i) throws IOException;
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/AutoScalerFactory.java
class AutoScalerFactory (line 30) | public class AutoScalerFactory {
method AutoScalerFactory (line 35) | public AutoScalerFactory(String concordBaseUrl, String concordApiToken...
method create (line 40) | public AutoScaler create(AgentPoolInstance poolInstance) {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/DefaultAutoScaler.java
class DefaultAutoScaler (line 35) | public class DefaultAutoScaler implements AutoScaler {
method DefaultAutoScaler (line 48) | public DefaultAutoScaler(ProcessQueueClient processQueueClient, Functi...
method DefaultAutoScaler (line 58) | public DefaultAutoScaler(ProcessQueueClient processQueueClient,
method apply (line 85) | public AgentPoolInstance apply(AgentPoolInstance i) throws IOException {
method tryScaleUp (line 155) | private int tryScaleUp(AgentPoolConfiguration cfg, AgentPoolInstance i...
method tryScaleDown (line 188) | private int tryScaleDown(AgentPoolConfiguration cfg, AgentPoolInstance...
method getProcessCount (line 222) | private static int getProcessCount(AgentPoolConfiguration cfg, List<Pr...
method isEmpty (line 229) | private static boolean isEmpty(Map<String, Object> m) {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/Event.java
class Event (line 25) | public class Event {
method Event (line 30) | public Event(Type type, AgentPool resource) {
method getType (line 35) | public Type getType() {
method getResource (line 39) | public AgentPool getResource() {
type Type (line 43) | public enum Type {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/LinearAutoScaler.java
class LinearAutoScaler (line 33) | public class LinearAutoScaler implements AutoScaler {
method LinearAutoScaler (line 44) | public LinearAutoScaler(ProcessQueueClient processQueueClient, Functio...
method LinearAutoScaler (line 54) | public LinearAutoScaler(ProcessQueueClient processQueueClient,
method apply (line 63) | @Override
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/QueueSelector.java
class QueueSelector (line 28) | public class QueueSelector {
method parse (line 30) | public static QueueSelector parse(Map<String, Object> queueSelector) {
method QueueSelector (line 59) | private QueueSelector(String flavor, List<String> queryParams) {
method getFlavor (line 68) | public String getFlavor() {
method getQueryParams (line 76) | public List<String> getQueryParams() {
FILE: agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/Scheduler.java
class Scheduler (line 36) | public class Scheduler {
method Scheduler (line 49) | public Scheduler(AutoScalerFactory autoScalerFactory, KubernetesClient...
method onEvent (line 57) | public void onEvent(Event.Type type, AgentPool resource) {
method start (line 64) | public void start() {
method doRun (line 71) | private void doRun() {
method onAdd (line 130) | private void onAdd(String resourceName, AgentPool resource) {
method onDelete (line 139) | private void onDelete(String resourceName) {
method updateTargetSize (line 150) | private AgentPoolInstance updateTargetSize(AgentPoolInstance i) throws...
method processActive (line 164) | private void processActive(AgentPoolInstance i) throws IOException {
method processDeleted (line 170) | private void processDeleted(AgentPoolInstance i) throws IOException {
method apply (line 190) | private void apply(List<Change> changes) {
method sleep (line 194) | private static void sleep(long ms) {
class Worker (line 202) | private class Worker implements Runnable {
method run (line 204) | @Override
FILE: agent-operator/src/test/java/com/walmartlabs/concord/agentoperator/processqueue/ProcessQueueClientTest.java
class ProcessQueueClientTest (line 28) | public class ProcessQueueClientTest {
method testEscapeQueryParam (line 30) | @Test
FILE: agent-operator/src/test/java/com/walmartlabs/concord/agentoperator/scheduler/DefaultAutoScalerTest.java
class DefaultAutoScalerTest (line 37) | public class DefaultAutoScalerTest {
method testStill (line 39) | @Test
method testZeroStart (line 67) | @Test
method mockProcessQueueClient (line 97) | private ProcessQueueClient mockProcessQueueClient(List<ProcessQueueEnt...
method testQueue (line 106) | @Test
FILE: agent-operator/src/test/java/com/walmartlabs/concord/agentoperator/scheduler/LinearAutoScalerTest.java
class LinearAutoScalerTest (line 37) | public class LinearAutoScalerTest {
method testStill (line 39) | @Test
method testZeroStart (line 63) | @Test
method mockProcessQueueClient (line 100) | private ProcessQueueClient mockProcessQueueClient(List<ProcessQueueEnt...
method testQueue (line 109) | @Test
FILE: agent/src/main/java/com/walmartlabs/concord/agent/Agent.java
class Agent (line 47) | public class Agent {
method Agent (line 64) | @Inject
method start (line 79) | public void start() {
method stop (line 93) | @SuppressWarnings("unused")
method run (line 101) | private void run() throws Exception {
method startMaintenanceModeNotifier (line 171) | private void startMaintenanceModeNotifier(QueueClient queueClient) {
method validateMaintenanceMode (line 196) | private void validateMaintenanceMode() throws InterruptedException {
method isAlive (line 206) | private boolean isAlive(UUID instanceId) {
method createStatusCallback (line 210) | private CompletionCallback createStatusCallback(UUID instanceId, Semap...
method take (line 230) | private JobRequest take(QueueClient queueClient) throws Exception {
method cancel (line 243) | private void cancel(UUID instanceId) {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/AgentAuthTokenProvider.java
class AgentAuthTokenProvider (line 36) | public class AgentAuthTokenProvider implements AuthTokenProvider {
method AgentAuthTokenProvider (line 39) | @Inject
method supports (line 46) | @Override
method getToken (line 52) | public Optional<ExternalAuthToken> getToken(URI repo, @Nullable Secret...
class ConcordServerTokenProvider (line 62) | public static class ConcordServerTokenProvider implements AuthTokenPro...
method ConcordServerTokenProvider (line 66) | @Inject
method supports (line 73) | @Override
method getToken (line 79) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/AgentConstants.java
class AgentConstants (line 23) | public final class AgentConstants {
method AgentConstants (line 29) | private AgentConstants() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/AgentModule.java
class AgentModule (line 42) | @Named
method AgentModule (line 47) | public AgentModule() {
method AgentModule (line 51) | public AgentModule(Config config) {
method configure (line 55) | @Override
method loadDefaultConfig (line 81) | private static Config loadDefaultConfig() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/CommandHandler.java
class CommandHandler (line 33) | public class CommandHandler implements Runnable {
method CommandHandler (line 46) | public CommandHandler(String agentId,
method run (line 59) | @Override
method take (line 77) | private CommandResponse take() throws Exception {
method execute (line 86) | private void execute(CommandResponse cmd) {
method sleep (line 98) | private static void sleep(long millis) {
type CancelHandler (line 106) | public interface CancelHandler {
method cancel (line 107) | void cancel(UUID instanceId);
FILE: agent/src/main/java/com/walmartlabs/concord/agent/ConfiguredJobRequest.java
class ConfiguredJobRequest (line 37) | public class ConfiguredJobRequest extends JobRequest {
method from (line 39) | @SuppressWarnings("unchecked")
method ConfiguredJobRequest (line 57) | private ConfiguredJobRequest(JobRequest src, Map<String, Object> proce...
method getProcessCfg (line 62) | public Map<String, Object> getProcessCfg() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/DefaultStateFetcher.java
class DefaultStateFetcher (line 31) | public class DefaultStateFetcher implements StateFetcher {
method DefaultStateFetcher (line 35) | @Inject
method downloadState (line 40) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/ExecutionException.java
class ExecutionException (line 24) | public class ExecutionException extends Exception {
method ExecutionException (line 28) | public ExecutionException(String message) {
method ExecutionException (line 32) | public ExecutionException(String message, Throwable cause) {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/JobInstance.java
type JobInstance (line 23) | public interface JobInstance {
method waitForCompletion (line 29) | void waitForCompletion() throws Exception;
method cancel (line 34) | void cancel();
method isCancelled (line 39) | boolean isCancelled();
FILE: agent/src/main/java/com/walmartlabs/concord/agent/JobRequest.java
class JobRequest (line 29) | public class JobRequest {
method from (line 31) | public static JobRequest from(ProcessResponse resp, Path workDir) {
method JobRequest (line 57) | protected JobRequest(JobRequest src) {
method JobRequest (line 71) | protected JobRequest(Type type,
method getType (line 96) | public Type getType() {
method getInstanceId (line 100) | public UUID getInstanceId() {
method getPayloadDir (line 104) | public Path getPayloadDir() {
method getOrgName (line 108) | public String getOrgName() {
method getRepoUrl (line 112) | public String getRepoUrl() {
method getRepoPath (line 116) | public String getRepoPath() {
method getRepoBranch (line 120) | public String getRepoBranch() {
method getCommitId (line 124) | public String getCommitId() {
method getSecretName (line 128) | public String getSecretName() {
method getImports (line 132) | public Imports getImports() {
method getSessionToken (line 136) | public String getSessionToken() {
method toString (line 140) | @Override
type Type (line 156) | public enum Type {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/Main.java
class Main (line 30) | public class Main {
method main (line 32) | public static void main(String[] args) throws Exception {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/OneShotRunner.java
class OneShotRunner (line 34) | public class OneShotRunner {
method OneShotRunner (line 40) | @Inject
method run (line 50) | public void run(String processResponseJson) throws Exception {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/RepositoryManager.java
class RepositoryManager (line 39) | public class RepositoryManager {
method RepositoryManager (line 48) | @Inject
method export (line 81) | public void export(String repoUrl, String branch, String commitId, Str...
method getSecret (line 108) | private Secret getSecret(SecretDefinition secret) throws ExecutionExce...
FILE: agent/src/main/java/com/walmartlabs/concord/agent/StateFetcher.java
type StateFetcher (line 23) | public interface StateFetcher {
method downloadState (line 25) | void downloadState(JobRequest jobRequest) throws Exception;
FILE: agent/src/main/java/com/walmartlabs/concord/agent/Utils.java
class Utils (line 28) | public final class Utils {
method kill (line 32) | public static boolean kill(Process proc) {
method kill (line 36) | public static boolean kill(Process proc, boolean killDescendants) {
method kill (line 50) | private static boolean kill(ProcessHandle handle) {
method sleep (line 73) | public static void sleep(long ms) {
method toString (line 81) | private static String toString(ProcessHandle proc) {
method Utils (line 89) | private Utils() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/Worker.java
class Worker (line 39) | public class Worker implements Runnable {
method Worker (line 55) | @Inject
method run (line 75) | @Override
method cancel (line 115) | public void cancel() {
method setThrowOnFailure (line 123) | public void setThrowOnFailure(boolean throwOnFailure) {
method handleError (line 127) | private void handleError(UUID instanceId, Throwable error) {
method onStatusChange (line 148) | private void onStatusChange(UUID instanceId, StatusEnum status) {
method fetchRepo (line 156) | private void fetchRepo(JobRequest r) throws Exception {
method getSecret (line 185) | private static SecretDefinition getSecret(JobRequest r) {
method downloadState (line 196) | private void downloadState(JobRequest r) throws Exception {
method processImports (line 210) | private void processImports(JobRequest r) throws ExecutionException {
method unwrap (line 226) | private static Throwable unwrap(Throwable t) {
method withTimer (line 238) | private static long withTimer(Fn f) throws Exception {
type Fn (line 245) | private interface Fn {
method apply (line 247) | void apply() throws Exception;
type CompletionCallback (line 250) | public interface CompletionCallback {
method onStatusChange (line 252) | void onStatusChange(StatusEnum status);
FILE: agent/src/main/java/com/walmartlabs/concord/agent/WorkerFactory.java
class WorkerFactory (line 31) | public class WorkerFactory {
method WorkerFactory (line 40) | @Inject
method create (line 56) | public Worker create(JobRequest jobRequest, Worker.CompletionCallback ...
FILE: agent/src/main/java/com/walmartlabs/concord/agent/cfg/AgentConfiguration.java
class AgentConfiguration (line 38) | public class AgentConfiguration {
method AgentConfiguration (line 66) | @Inject
method getAgentId (line 97) | public String getAgentId() {
method getCapabilities (line 101) | public Map<String, Object> getCapabilities() {
method getDependencyCacheDir (line 105) | public Path getDependencyCacheDir() {
method getDependencyListsDir (line 109) | public Path getDependencyListsDir() {
method getDependencyResolveTimeout (line 113) | public Duration getDependencyResolveTimeout() {
method dependencyStrictRepositories (line 117) | public boolean dependencyStrictRepositories() {
method dependencyExclusions (line 121) | public List<String> dependencyExclusions() {
method getPayloadDir (line 125) | public Path getPayloadDir() {
method getWorkDirBase (line 129) | public Path getWorkDirBase() {
method getLogDir (line 133) | public Path getLogDir() {
method getLogMaxDelay (line 137) | public long getLogMaxDelay() {
method isWorkDirMaskings (line 141) | public boolean isWorkDirMaskings() {
method getWorkersCount (line 145) | public int getWorkersCount() {
method getPollInterval (line 149) | public long getPollInterval() {
method getMaintenanceModeListenerHost (line 153) | public String getMaintenanceModeListenerHost() {
method getMaintenanceModeListenerPort (line 157) | public int getMaintenanceModeListenerPort() {
method isExplicitlyResolveV1Client (line 161) | public boolean isExplicitlyResolveV1Client() {
method isMavenOfflineMode (line 165) | public boolean isMavenOfflineMode() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/cfg/DockerConfiguration.java
class DockerConfiguration (line 29) | public class DockerConfiguration {
method DockerConfiguration (line 37) | @Inject
method getDockerHost (line 46) | public String getDockerHost() {
method isOrphanSweeperEnabled (line 50) | public boolean isOrphanSweeperEnabled() {
method getOrphanSweeperPeriod (line 54) | public long getOrphanSweeperPeriod() {
method getExtraVolumes (line 58) | public List<String> getExtraVolumes() {
method exposeDockerDaemon (line 62) | public boolean exposeDockerDaemon() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/cfg/GitConfiguration.java
class GitConfiguration (line 35) | public class GitConfiguration implements OauthTokenConfig {
method GitConfiguration (line 52) | @Inject
method getOauthToken (line 70) | @Override
method getOauthUsername (line 75) | @Override
method getOauthUrlPattern (line 80) | @Override
method isShallowClone (line 85) | public boolean isShallowClone() {
method isCheckAlreadyFetched (line 89) | public boolean isCheckAlreadyFetched() {
method getDefaultOperationTimeout (line 93) | public Duration getDefaultOperationTimeout() {
method getFetchTimeout (line 97) | public Duration getFetchTimeout() {
method getHttpLowSpeedLimit (line 101) | public int getHttpLowSpeedLimit() {
method getHttpLowSpeedTime (line 105) | public Duration getHttpLowSpeedTime() {
method getSshTimeout (line 109) | public Duration getSshTimeout() {
method getSshTimeoutRetryCount (line 113) | public int getSshTimeoutRetryCount() {
method isSkip (line 117) | public boolean isSkip() {
method maxGitCliOutputBytes (line 121) | public long maxGitCliOutputBytes() {
method getSystemAuth (line 125) | public List<MappingAuthConfig> getSystemAuth() {
type AuthSource (line 138) | enum AuthSource {
type AuthConfig (line 142) | public interface AuthConfig {
method toGitAuth (line 143) | MappingAuthConfig toGitAuth();
method from (line 148) | static OauthConfig from(Config cfg) {
method toGitAuth (line 156) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/cfg/GitHubConfiguration.java
class GitHubConfiguration (line 30) | public class GitHubConfiguration implements GitHubAppInstallationConfig {
method GitHubConfiguration (line 36) | @Inject
method getAuthConfigs (line 48) | @Override
method getSystemAuthCacheDuration (line 53) | @Override
method getSystemAuthCacheMaxWeight (line 58) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/cfg/ImportConfiguration.java
class ImportConfiguration (line 30) | public class ImportConfiguration {
method ImportConfiguration (line 34) | @Inject
method getDisabledProcessors (line 39) | public Set<String> getDisabledProcessors() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/cfg/PreForkConfiguration.java
class PreForkConfiguration (line 28) | public class PreForkConfiguration {
method PreForkConfiguration (line 34) | @Inject
method isEnabled (line 41) | public boolean isEnabled() {
method getMaxAge (line 45) | public long getMaxAge() {
method getMaxCount (line 49) | public int getMaxCount() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/cfg/RepositoryCacheConfiguration.java
class RepositoryCacheConfiguration (line 31) | public class RepositoryCacheConfiguration {
method RepositoryCacheConfiguration (line 39) | @Inject
method getCacheDir (line 48) | public Path getCacheDir() {
method getLockTimeout (line 52) | public Duration getLockTimeout() {
method getLockCount (line 56) | public int getLockCount() {
method getMaxAge (line 60) | public Duration getMaxAge() {
method getInfoDir (line 64) | public Path getInfoDir() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/cfg/RuntimeConfiguration.java
class RuntimeConfiguration (line 36) | public class RuntimeConfiguration {
method RuntimeConfiguration (line 42) | @Inject
method getForRuntime (line 54) | public Optional<Entry> getForRuntime(String runtime) {
method parse (line 68) | public static Entry parse(Config cfg) {
method getJavaCmd (line 101) | private static String getJavaCmd(Config cfg) {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/cfg/ServerConfiguration.java
class ServerConfiguration (line 32) | public class ServerConfiguration {
method ServerConfiguration (line 49) | @Inject
method getApiBaseUrl (line 77) | public String getApiBaseUrl() {
method getWebsocketUrls (line 81) | public String[] getWebsocketUrls() {
method getApiKey (line 85) | public String getApiKey() {
method getPingInterval (line 89) | public long getPingInterval() {
method getMaxNoActivityPeriod (line 93) | public long getMaxNoActivityPeriod() {
method isVerifySsl (line 97) | public boolean isVerifySsl() {
method getConnectTimeout (line 101) | public long getConnectTimeout() {
method getReadTimeout (line 105) | public long getReadTimeout() {
method getUserAgent (line 109) | public String getUserAgent() {
method getMaxNoHeartbeatInterval (line 113) | public long getMaxNoHeartbeatInterval() {
method getProcessRequestDelay (line 117) | public long getProcessRequestDelay() {
method getReconnectDelay (line 121) | public long getReconnectDelay() {
method getWebsocketUrls (line 125) | private static String[] getWebsocketUrls(Config cfg) {
method getCSV (line 138) | private static String[] getCSV(String s) {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/cfg/Utils.java
class Utils (line 32) | public final class Utils {
method getStringOrDefault (line 34) | public static String getStringOrDefault(Config cfg, String key, Suppli...
method getOptionalAbsolutePath (line 41) | public static Path getOptionalAbsolutePath(Config cfg, String key) {
method getOrCreatePath (line 58) | public static Path getOrCreatePath(Config cfg, String key) {
method Utils (line 82) | private Utils() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/docker/OrphanSweeper.java
class OrphanSweeper (line 36) | public class OrphanSweeper implements Runnable {
method OrphanSweeper (line 49) | public OrphanSweeper(StatusChecker statusChecker, long period) {
method run (line 54) | @Override
method sleep (line 84) | private static void sleep(long ms) {
method findContainers (line 92) | private static Map<UUID, String> findContainers() throws IOException, ...
method killContainer (line 111) | private static void killContainer(String cId) throws IOException, Inte...
method createKillCommand (line 124) | private static String[] createKillCommand(String cId) {
method exec (line 128) | private static void exec(String[] cmd, Function<String, Void> callback...
type StatusChecker (line 151) | public interface StatusChecker {
method isAlive (line 153) | boolean isAlive(UUID instanceId);
FILE: agent/src/main/java/com/walmartlabs/concord/agent/executors/JobExecutor.java
type JobExecutor (line 26) | public interface JobExecutor {
method exec (line 28) | JobInstance exec(ConfiguredJobRequest jobRequest) throws Exception;
FILE: agent/src/main/java/com/walmartlabs/concord/agent/executors/JobExecutorFactory.java
class JobExecutorFactory (line 41) | @Singleton
method JobExecutorFactory (line 60) | @Inject
method create (line 88) | public JobExecutor create(JobRequest.Type jobType) {
method getRuntimeName (line 129) | private static String getRuntimeName(ConfiguredJobRequest req) {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/DefaultDependencies.java
class DefaultDependencies (line 37) | public class DefaultDependencies {
method DefaultDependencies (line 44) | public DefaultDependencies() {
method getDependencies (line 73) | public List<URI> getDependencies() {
method parseUri (line 77) | private static URI parseUri(String s) {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/JobDependencies.java
class JobDependencies (line 40) | public final class JobDependencies {
method get (line 44) | public static Collection<URI> get(RunnerJob job) throws ExecutionExcep...
method updateVersions (line 58) | private static Collection<URI> updateVersions(RunnerJob job, Collectio...
method getDependencyUris (line 80) | @SuppressWarnings("unchecked")
method normalizeUrls (line 91) | private static Collection<URI> normalizeUrls(Collection<String> urls) ...
method getDependencyVersions (line 152) | private static Map<String, String> getDependencyVersions(RunnerJob job...
method getDependencyVersionsFromFile (line 166) | private static Map<String, String> getDependencyVersionsFromFile(Runne...
method isLatestVersion (line 188) | private static boolean isLatestVersion(String v) {
method assertVersion (line 192) | private static String assertVersion(String dep, Map<String, String> ve...
class IdAndVersion (line 200) | private static class IdAndVersion {
method parse (line 202) | public static IdAndVersion parse(String s) {
method IdAndVersion (line 216) | private IdAndVersion(String id, String version) {
method JobDependencies (line 222) | private JobDependencies() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/ProcessPool.java
class ProcessPool (line 38) | public class ProcessPool {
method ProcessPool (line 49) | @Inject
method init (line 56) | public void init() {
method take (line 74) | public ProcessEntry take(HashCode hc, ProcessLauncher launcher) throws...
method populate (line 97) | private void populate(HashCode hc, ProcessLauncher launcher) {
method maintenance (line 132) | private void maintenance() {
method cleanup (line 167) | private static void cleanup(ProcessEntry process) {
type ProcessLauncher (line 176) | public interface ProcessLauncher {
method start (line 178) | ProcessEntry start() throws IOException;
class ProcessEntry (line 181) | public static final class ProcessEntry {
method ProcessEntry (line 189) | public ProcessEntry(Process process, Path workDir) {
method getProcess (line 195) | public Process getProcess() {
method getWorkDir (line 199) | public Path getWorkDir() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/RunnerCommandBuilder.java
class RunnerCommandBuilder (line 27) | public class RunnerCommandBuilder {
method RunnerCommandBuilder (line 40) | public RunnerCommandBuilder() {
method javaCmd (line 43) | public RunnerCommandBuilder javaCmd(String javaCmd) {
method workDir (line 48) | public RunnerCommandBuilder workDir(Path workDir) {
method runnerPath (line 53) | public RunnerCommandBuilder runnerPath(Path runnerPath) {
method runnerCfgPath (line 58) | public RunnerCommandBuilder runnerCfgPath(Path runnerCfgPath) {
method logLevel (line 63) | public RunnerCommandBuilder logLevel(String logLevel) {
method extraDockerVolumesFile (line 68) | public RunnerCommandBuilder extraDockerVolumesFile(Path extraDockerVol...
method exposeDockerDaemon (line 73) | public RunnerCommandBuilder exposeDockerDaemon(boolean exposeDockerDae...
method jvmParams (line 78) | public RunnerCommandBuilder jvmParams(List<String> jvmParams) {
method mainClass (line 83) | public RunnerCommandBuilder mainClass(String mainClass) {
method majorJavaVersion (line 88) | public RunnerCommandBuilder majorJavaVersion(int majorJavaVersion) {
method build (line 93) | public String[] build() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/RunnerJob.java
class RunnerJob (line 44) | public class RunnerJob {
method from (line 46) | @SuppressWarnings("unchecked")
method RunnerJob (line 93) | private RunnerJob(UUID instanceId, Path payloadDir, Map<String, Object...
method getInstanceId (line 103) | public UUID getInstanceId() {
method getPayloadDir (line 107) | public Path getPayloadDir() {
method getProcessCfg (line 111) | public Map<String, Object> getProcessCfg() {
method getRunnerCfg (line 115) | public RunnerConfiguration getRunnerCfg() {
method isDebugMode (line 119) | public boolean isDebugMode() {
method getLog (line 123) | public RunnerLog getLog() {
method getPolicyEngine (line 127) | public PolicyEngine getPolicyEngine() {
method debugMode (line 131) | private static boolean debugMode(Map<String, Object> processCfg) {
method withDependencies (line 141) | public RunnerJob withDependencies(Collection<String> resolvedDeps) {
method toString (line 154) | @Override
method createRunnerConfiguration (line 162) | private static RunnerConfiguration createRunnerConfiguration(RunnerJob...
method createObjectMapper (line 193) | private static ObjectMapper createObjectMapper() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/RunnerJobExecutor.java
class RunnerJobExecutor (line 80) | public class RunnerJobExecutor implements JobExecutor {
method RunnerJobExecutor (line 97) | public RunnerJobExecutor(RunnerJobExecutorConfiguration cfg,
method getMajorJavaVersion (line 120) | private static int getMajorJavaVersion(String javaCmd) {
method exec (line 154) | @Override
method exec (line 160) | private JobInstance exec(RunnerJob job) throws Exception {
method persistWorkDir (line 227) | private void persistWorkDir(UUID instanceId, Path src) {
method uploadAttachments (line 269) | private void uploadAttachments(UUID instanceId, ProcessEntry pe) {
method cleanup (line 278) | private void cleanup(UUID instanceId, ProcessEntry pe) {
method buildProcessEntry (line 288) | protected ProcessEntry buildProcessEntry(RunnerJob job) throws Excepti...
method exec (line 301) | private void exec(RunnerJob job, ProcessEntry pe) throws Exception {
method handleError (line 344) | private void handleError(RunnerJob job, Process proc, String error) {
method resolveDeps (line 352) | private Collection<String> resolveDeps(RunnerJob job) throws Exception {
method rewriteDependencies (line 411) | private Collection<URI> rewriteDependencies(RunnerJob job, Collection<...
method validateDependencies (line 426) | private void validateDependencies(RunnerJob job, Collection<Dependency...
method logDependencies (line 447) | private void logDependencies(RunnerJob job, Collection<?> deps) {
method createCmd (line 465) | private String[] createCmd(RunnerJob job, List<String> jvmParams) thro...
method fork (line 480) | private ProcessEntry fork(RunnerJob job, String[] cmd) throws Executio...
method startOneTime (line 511) | protected ProcessEntry startOneTime(RunnerJob job, String[] cmd) throw...
method start (line 533) | private ProcessEntry start(Path workDir, String[] cmd) throws IOExcept...
method storeRunnerCfg (line 558) | protected Path storeRunnerCfg(Path baseDir, RunnerConfiguration runner...
method toString (line 574) | @Override
method createExtraDockerVolumesFile (line 579) | private Path createExtraDockerVolumesFile(RunnerJob job) throws IOExce...
method getJvmParams (line 591) | @SuppressWarnings("unchecked")
method canUsePrefork (line 617) | private boolean canUsePrefork(RunnerJob job) {
method getJvmArgsFromConfig (line 639) | private static List<String> getJvmArgsFromConfig(Map<String, Object> p...
method getLogLevel (line 660) | private static String getLogLevel(RunnerJob job) {
method hash (line 674) | private static HashCode hash(String[] as) {
method cleanup (line 683) | private static void cleanup(RunnerJob job) {
class LogStream (line 694) | private class LogStream {
method LogStream (line 702) | private LogStream(RunnerJob job, Process proc) {
method start (line 710) | public void start() {
method waitForCompletion (line 725) | public void waitForCompletion() {
method writeInstanceId (line 736) | private static void writeInstanceId(UUID instanceId, Path dst) throws ...
type RunnerJobExecutorConfiguration (line 741) | @Value.Immutable
method agentId (line 745) | String agentId();
method serverApiBaseUrl (line 747) | String serverApiBaseUrl();
method javaCmd (line 749) | String javaCmd();
method jvmParams (line 751) | List<String> jvmParams();
method dependencyListDir (line 753) | Path dependencyListDir();
method dependencyCacheDir (line 755) | Path dependencyCacheDir();
method dependencyResolveTimeout (line 757) | @Nullable
method workDirBase (line 760) | Path workDirBase();
method runnerPath (line 762) | Path runnerPath();
method runnerCfgDir (line 764) | Path runnerCfgDir();
method runnerMainClass (line 766) | String runnerMainClass();
method runnerSecurityManagerEnabled (line 768) | boolean runnerSecurityManagerEnabled();
method segmentedLogs (line 770) | boolean segmentedLogs();
method workDirMasking (line 772) | boolean workDirMasking();
method extraDockerVolumes (line 774) | @Value.Default
method exposeDockerDaemon (line 779) | @Value.Default
method maxHeartbeatInterval (line 784) | long maxHeartbeatInterval();
method persistentWorkDir (line 786) | @Nullable
method preforkEnabled (line 789) | boolean preforkEnabled();
method cleanRunnerDescendants (line 791) | boolean cleanRunnerDescendants();
method builder (line 793) | static ImmutableRunnerJobExecutorConfiguration.Builder builder() {
class JobInstanceImpl (line 798) | private static class JobInstanceImpl implements JobInstance {
method JobInstanceImpl (line 806) | private JobInstanceImpl(Future<?> f, Process proc, boolean cleanRunn...
method waitForCompletion (line 812) | @Override
method cancel (line 817) | @Override
method isCancelled (line 828) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/RunnerLog.java
class RunnerLog (line 31) | public class RunnerLog implements ProcessLog {
method RunnerLog (line 36) | public RunnerLog(RedirectedProcessLog redirectedLog, RemoteProcessLog ...
method run (line 41) | public void run(Supplier<Boolean> stopCondition) throws Exception {
method delete (line 45) | @Override
method log (line 51) | @Override
method info (line 56) | @Override
method warn (line 61) | @Override
method error (line 66) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/guice/AgentDependencyManagerConfigurationProvider.java
class AgentDependencyManagerConfigurationProvider (line 30) | @Singleton
method AgentDependencyManagerConfigurationProvider (line 35) | @Inject
method get (line 40) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/guice/AgentImportManager.java
class AgentImportManager (line 35) | public class AgentImportManager {
method AgentImportManager (line 39) | public AgentImportManager(ImportManager delegate) {
method process (line 43) | public List<Snapshot> process(Imports imports, Path dest) throws Excep...
FILE: agent/src/main/java/com/walmartlabs/concord/agent/guice/AgentImportManagerProvider.java
class AgentImportManagerProvider (line 35) | @Singleton
method AgentImportManagerProvider (line 40) | @Inject
method get (line 57) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/guice/WorkerModule.java
class WorkerModule (line 40) | public class WorkerModule extends AbstractModule {
method WorkerModule (line 50) | public WorkerModule(String agentId, UUID instanceId, String sessionTok...
method getApiClient (line 56) | @Provides
method getProcessLog (line 62) | @Provides
method getSecretClient (line 68) | @Provides
method getProcessApi (line 74) | @Provides
method getProcessStatusUpdater (line 80) | @Provides
method configure (line 86) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/logging/AbstractProcessLog.java
class AbstractProcessLog (line 25) | public abstract class AbstractProcessLog implements ProcessLog {
method delete (line 27) | @Override
method info (line 32) | @Override
method warn (line 37) | @Override
method error (line 42) | @Override
method log (line 47) | protected abstract void log(String message);
FILE: agent/src/main/java/com/walmartlabs/concord/agent/logging/CombinedLogAppender.java
class CombinedLogAppender (line 27) | public class CombinedLogAppender implements LogAppender {
method CombinedLogAppender (line 31) | @Inject
method appendLog (line 36) | @Override
method appendLog (line 41) | @Override
method updateSegment (line 51) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/logging/LocalProcessLog.java
class LocalProcessLog (line 37) | public class LocalProcessLog extends AbstractProcessLog {
method LocalProcessLog (line 43) | public LocalProcessLog(Path baseDir) throws IOException {
method delete (line 48) | @Override
method log (line 60) | @Override
method log (line 68) | @Override
method logFile (line 79) | public Path logFile() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/logging/LogAppender.java
type LogAppender (line 25) | public interface LogAppender {
method appendLog (line 27) | void appendLog(UUID instanceId, byte[] ab);
method appendLog (line 29) | boolean appendLog(UUID instanceId, long segmentId, byte[] ab);
method updateSegment (line 31) | boolean updateSegment(UUID instanceId, long segmentId, LogSegmentStats...
FILE: agent/src/main/java/com/walmartlabs/concord/agent/logging/ProcessLog.java
type ProcessLog (line 26) | public interface ProcessLog {
method delete (line 31) | void delete();
method log (line 36) | void log(InputStream src) throws IOException;
method info (line 38) | void info(String log, Object... args);
method warn (line 40) | void warn(String log, Object... args);
method error (line 42) | void error(String log, Object... args);
FILE: agent/src/main/java/com/walmartlabs/concord/agent/logging/ProcessLogFactory.java
class ProcessLogFactory (line 32) | public class ProcessLogFactory {
method ProcessLogFactory (line 38) | @Inject
method createRedirectedLog (line 45) | public RedirectedProcessLog createRedirectedLog(UUID instanceId, boole...
method createRemoteLog (line 64) | public RemoteProcessLog createRemoteLog(UUID instanceId) {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/logging/RedirectedProcessLog.java
class RedirectedProcessLog (line 35) | public class RedirectedProcessLog implements ProcessLog {
method RedirectedProcessLog (line 41) | public RedirectedProcessLog(Path baseDir, long logSteamMaxDelay, Consu...
method run (line 47) | public void run(Supplier<Boolean> stopCondition) throws Exception {
method delete (line 51) | @Override
method log (line 56) | @Override
method info (line 61) | @Override
method warn (line 66) | @Override
method error (line 71) | @Override
method streamLog (line 76) | private static void streamLog(Path p, Supplier<Boolean> stopCondition,...
class Chunk (line 107) | public static class Chunk {
method Chunk (line 112) | protected Chunk(byte[] ab, int len) { // NOSONAR
method bytes (line 117) | public byte[] bytes() {
method len (line 121) | public int len() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/logging/RemoteLogAppender.java
class RemoteLogAppender (line 33) | public class RemoteLogAppender implements LogAppender {
method RemoteLogAppender (line 40) | @Inject
method appendLog (line 46) | @Override
method appendLog (line 59) | @Override
method updateSegment (line 74) | @Override
method convertStatus (line 91) | private static LogSegmentUpdateRequest.StatusEnum convertStatus(LogSeg...
FILE: agent/src/main/java/com/walmartlabs/concord/agent/logging/RemoteProcessLog.java
class RemoteProcessLog (line 29) | public class RemoteProcessLog extends AbstractProcessLog {
method RemoteProcessLog (line 34) | public RemoteProcessLog(UUID instanceId, LogAppender appender) {
method log (line 39) | @Override
method log (line 44) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/logging/SegmentHeaderParser.java
class SegmentHeaderParser (line 31) | public class SegmentHeaderParser {
method parse (line 37) | public static int parse(byte[] ab, List<Segment> segments, List<Positi...
type State (line 149) | enum State {
type Field (line 155) | enum Field {
method next (line 157) | @Override
method process (line 162) | @Override
method next (line 169) | @Override
method process (line 174) | @Override
method next (line 181) | @Override
method process (line 186) | @Override
method next (line 193) | @Override
method process (line 198) | @Override
method next (line 205) | @Override
method process (line 210) | @Override
method next (line 216) | public abstract Field next();
method process (line 218) | public abstract void process(String fieldValue, ImmutableLogSegmentH...
FILE: agent/src/main/java/com/walmartlabs/concord/agent/logging/SegmentedLogsConsumer.java
class SegmentedLogsConsumer (line 33) | public class SegmentedLogsConsumer implements Consumer<RedirectedProcess...
method SegmentedLogsConsumer (line 42) | public SegmentedLogsConsumer(UUID instanceId, LogAppender logAppender) {
method accept (line 47) | @Override
method invalidSegmentsToSystemSegments (line 93) | private void invalidSegmentsToSystemSegments(List<Position> invalidSeg...
method actualLength (line 106) | private static int actualLength(Segment segment, int chunkLength) {
method byId (line 110) | private static Map<Long, List<Segment>> byId(List<Segment> segments) {
method fillBuffer (line 119) | private static void fillBuffer(List<Segment> segments, byte[] from, by...
method findPartialSegment (line 129) | private static Segment findPartialSegment(List<Segment> segments, int ...
method findStats (line 142) | private static LogSegmentStats findStats(List<Segment> segments) {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/logging/StdOutLogAppender.java
class StdOutLogAppender (line 25) | public class StdOutLogAppender implements LogAppender {
method appendLog (line 29) | @Override
method appendLog (line 34) | @Override
method updateSegment (line 40) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/mmode/MaintenanceModeListener.java
type MaintenanceModeListener (line 24) | public interface MaintenanceModeListener {
method onMaintenanceMode (line 26) | Status onMaintenanceMode();
method getMaintenanceModeStatus (line 28) | Status getMaintenanceModeStatus();
class Status (line 30) | class Status {
method Status (line 35) | public Status(boolean maintenanceMode, long workersAlive) {
method isMaintenanceMode (line 40) | public boolean isMaintenanceMode() {
method getWorkersAlive (line 44) | public long getWorkersAlive() {
method toString (line 48) | @Override
FILE: agent/src/main/java/com/walmartlabs/concord/agent/mmode/MaintenanceModeNotifier.java
class MaintenanceModeNotifier (line 34) | public class MaintenanceModeNotifier {
method MaintenanceModeNotifier (line 40) | public MaintenanceModeNotifier(String host, Integer port, MaintenanceM...
method start (line 45) | public void start() {
method stop (line 50) | public void stop() {
class MaintenanceModeHandler (line 55) | private static class MaintenanceModeHandler implements HttpHandler {
method MaintenanceModeHandler (line 62) | private MaintenanceModeHandler(MaintenanceModeListener listener) {
method handle (line 66) | @Override
method response (line 84) | private void response(HttpExchange httpExchange, int code, byte[] re...
method onMaintenanceMode (line 91) | private MaintenanceModeListener.Status onMaintenanceMode() {
method onMaintenanceModeStatus (line 99) | private MaintenanceModeListener.Status onMaintenanceModeStatus() {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/remote/ApiClientFactory.java
class ApiClientFactory (line 34) | public class ApiClientFactory {
method ApiClientFactory (line 42) | @Inject
method create (line 48) | public ApiClient create(String sessionToken) throws IOException {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/remote/AttachmentsUploader.java
class AttachmentsUploader (line 36) | public class AttachmentsUploader {
method AttachmentsUploader (line 40) | @Inject
method upload (line 45) | public void upload(UUID instanceId, Path workDir) throws Exception {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/remote/ProcessStatusUpdater.java
class ProcessStatusUpdater (line 30) | public class ProcessStatusUpdater {
method ProcessStatusUpdater (line 37) | public ProcessStatusUpdater(String agentId, ProcessApi processApi) {
method update (line 42) | public void update(UUID instanceId, ProcessEntry.StatusEnum status) {
FILE: agent/src/main/java/com/walmartlabs/concord/agent/remote/QueueClientProvider.java
class QueueClientProvider (line 32) | public class QueueClientProvider implements Provider<QueueClient> {
method QueueClientProvider (line 37) | @Inject
method get (line 43) | @Override
FILE: agent/src/test/java/com/walmartlabs/concord/agent/AgentAuthTokenProviderTest.java
class AgentAuthTokenProviderTest (line 42) | @ExtendWith(MockitoExtension.class)
method testGitHubApp (line 51) | @Test
method testOauth (line 74) | @Test
method testNoAuth (line 96) | @Test
FILE: agent/src/test/java/com/walmartlabs/concord/agent/executors/runner/JobDependenciesTest.java
class JobDependenciesTest (line 39) | public class JobDependenciesTest {
method test (line 41) | @Test
method assertContains (line 82) | private static void assertContains(String s, Collection<URI> uris) {
FILE: agent/src/test/java/com/walmartlabs/concord/agent/executors/runner/SegmentHeaderParserTest.java
class SegmentHeaderParserTest (line 39) | public class SegmentHeaderParserTest {
method test1 (line 44) | @Test
method test1_1 (line 61) | @Test
method test2 (line 78) | @Test
method test3 (line 96) | @Test
method test4 (line 118) | @Test
method test5 (line 139) | @Test
method test6 (line 155) | @Test
method test7 (line 173) | @Test
method testParseSegmentEndMarker (line 193) | @Test
method msg (line 210) | private static String msg(byte[] ab, Segment segment) {
method bb (line 215) | private static byte[] bb(int segmentId, String msg) {
FILE: agent/src/test/java/com/walmartlabs/concord/agent/executors/runner/SegmentedLogsConsumerTest.java
class SegmentedLogsConsumerTest (line 39) | public class SegmentedLogsConsumerTest {
method init (line 44) | @BeforeEach
method test1 (line 50) | @Test
method test2 (line 63) | @Test
method test3 (line 80) | @Test
method test4 (line 98) | @Test
method test5 (line 117) | @Test
method test6 (line 131) | @Test
method toChunk (line 149) | private static Chunk toChunk(byte[] ab) {
method bb (line 154) | private static byte[] bb(int segmentId, String msg) {
method bb (line 158) | private static byte[] bb(int segmentId, String msg, int errorCount, in...
FILE: cli/src/main/java/com/walmartlabs/concord/cli/AbortException.java
class AbortException (line 23) | public class AbortException extends RuntimeException {
method AbortException (line 25) | public AbortException() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/App.java
class App (line 28) | @Command(name = "concord", subcommands = {Lint.class, Run.class, Resume....
method run (line 40) | @Override
FILE: cli/src/main/java/com/walmartlabs/concord/cli/CliConfig.java
method load (line 49) | public static CliConfig.CliConfigContext load(Verbosity verbosity, Strin...
method loadOrThrow (line 58) | public static CliConfig.CliConfigContext loadOrThrow(Verbosity verbosity,
method handleCliConfigErrorAndBail (line 76) | private static void handleCliConfigErrorAndBail(String cfgPath, Throwabl...
method requireCliConfigContext (line 104) | private static CliConfig.CliConfigContext requireCliConfigContext(CliCon...
class MissingContextException (line 112) | static final class MissingContextException extends IllegalArgumentExcept...
method MissingContextException (line 114) | private MissingContextException(String context, boolean userConfigLoad...
method message (line 118) | private static String message(String context, boolean userConfigLoaded) {
method loadConfigFile (line 126) | @VisibleForTesting
method assertContexts (line 166) | private static ObjectNode assertContexts(JsonNode cfg) {
method create (line 177) | public static CliConfig create() {
method hasUserConfig (line 189) | static boolean hasUserConfig() {
method resolveCliConfigPath (line 194) | private static Path resolveCliConfigPath() {
method withOverrides (line 205) | public CliConfigContext withOverrides(@Nullable Overrides overrides) {
method SecretRef (line 217) | public SecretRef(String orgName, String secretName) {
method withOverrides (line 236) | public SecretsConfiguration withOverrides(@Nullable Overrides overrides) {
method withOverrides (line 247) | public VaultConfiguration withOverrides(@Nullable Overrides overrides) {
method withOverrides (line 259) | public FileSecretsProviderConfiguration withOverrides(@Nullable Override...
method readDefaultConfig (line 278) | private static String readDefaultConfig() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/CliExitCodes.java
class CliExitCodes (line 23) | final class CliExitCodes {
method CliExitCodes (line 33) | private CliExitCodes() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/CliPaths.java
class CliPaths (line 25) | public final class CliPaths {
method defaultTargetDir (line 29) | public static Path defaultTargetDir(Path sourceDir) {
method preferredResumeDir (line 33) | public static Path preferredResumeDir(Path sourceDir, Path workDir) {
method CliPaths (line 42) | private CliPaths() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/Confirmation.java
class Confirmation (line 27) | public final class Confirmation {
method confirm (line 29) | public static boolean confirm(String message) throws IOException {
method confirm (line 33) | public static boolean confirm(String message, boolean defaultValue) th...
method Confirmation (line 55) | private Confirmation() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/GitIgnoreFilter.java
class GitIgnoreFilter (line 34) | public class GitIgnoreFilter {
method GitIgnoreFilter (line 38) | private GitIgnoreFilter(Map<Path, IgnoreNode> ignoreNodes) {
method load (line 48) | public static GitIgnoreFilter load(Path baseDir) throws IOException {
method isIgnored (line 83) | public boolean isIgnored(Path relativePath, boolean isDirectory) {
method getAncestorPaths (line 116) | private List<Path> getAncestorPaths(Path relativePath) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/Lint.java
class Lint (line 51) | @Command(name = "lint", description = "Parse and validate Concord YAML f...
method call (line 66) | @Override
method linters (line 110) | private List<Linter> linters() {
method print (line 117) | private void print(List<LintResult> results) {
method printStats (line 145) | private void printStats(List<LintResult> results) {
method println (line 151) | private void println(Object o) {
method println (line 155) | private void println() {
method hasErrors (line 159) | private static boolean hasErrors(List<LintResult> results) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/LocalCliRuntime.java
class LocalCliRuntime (line 44) | final class LocalCliRuntime {
method createDependencyManager (line 46) | static DependencyManager createDependencyManager(Path depsCacheDir) th...
method createInjector (line 54) | static Injector createInjector(Path workDir,
method notifyProjectLoaded (line 70) | static void notifyProjectLoaded(Path workDir) throws Exception {
method LocalCliRuntime (line 75) | private LocalCliRuntime() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/LocalFormInputs.java
class LocalFormInputs (line 43) | final class LocalFormInputs {
method convertAndValidate (line 48) | static Converted convertAndValidate(Form form, Map<String, Object> raw...
method convertAndValidate (line 52) | static Converted convertAndValidate(Form form, Map<String, Object> inp...
method prepareInput (line 78) | private static Map<String, Object> prepareInput(Form form, Map<String,...
method toFormInput (line 91) | private static Object toFormInput(Object value, FormField field, List<...
method unwrapFormValues (line 113) | private static Map<String, Object> unwrapFormValues(Form form, Map<Str...
method cleanupTempFiles (line 133) | static void cleanupTempFiles(Map<String, String> tmpFiles) {
method close (line 143) | private static void close(List<InputStream> opened) {
method payload (line 155) | Map<String, Object> payload(Form form) {
method cleanupTempFiles (line 164) | void cleanupTempFiles() {
class InputException (line 169) | static final class InputException extends Exception {
method InputException (line 173) | private InputException(List<String> messages) {
method InputException (line 177) | private InputException(List<String> messages, Throwable cause) {
method messages (line 182) | List<String> messages() {
method LocalFormInputs (line 187) | private LocalFormInputs() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/LocalFormPrompts.java
class LocalFormPrompts (line 45) | final class LocalFormPrompts {
method LocalFormPrompts (line 53) | LocalFormPrompts(Path workDir) {
method LocalFormPrompts (line 57) | LocalFormPrompts(Path workDir, boolean printHeader) {
method prompt (line 63) | Map<String, Object> prompt(Form form) throws Exception {
method printHeader (line 88) | private void printHeader(Form form) {
method collectRawValues (line 102) | private void collectRawValues(Form form, Map<String, Object> rawValues) {
method promptField (line 117) | private Object promptField(FormField field, Object currentValue) {
method promptRepeatedField (line 141) | private Object promptRepeatedField(FormField field, Object currentValu...
method readValue (line 170) | private String readValue(FormField field, Object currentValue) {
method readValue (line 174) | private String readValue(FormField field, Object currentValue, Integer...
method moveFormFiles (line 184) | @SuppressWarnings("unchecked")
method printInputErrors (line 201) | private static void printInputErrors(LocalFormInputs.InputException e) {
method printError (line 207) | private static void printError(String message) {
method printWarning (line 211) | private static void printWarning(String message) {
method buildPrompt (line 215) | private static String buildPrompt(FormField field, Object currentValue...
method promptValue (line 238) | private static String promptValue(FormField field, Object value) {
method isPasswordField (line 242) | private static boolean isPasswordField(FormField field) {
method clearSensitiveValues (line 246) | private static void clearSensitiveValues(Form form, Map<String, Object...
method isRepeated (line 254) | private static boolean isRepeated(FormField field) {
method isOptional (line 258) | private static boolean isOptional(FormField field) {
method normalizeRawValue (line 262) | private static Object normalizeRawValue(FormField field, String line) {
method label (line 281) | private static String label(FormField field) {
type MissingValue (line 285) | private enum MissingValue {
class PromptIo (line 289) | private static final class PromptIo {
method readLine (line 296) | String readLine(String prompt) {
method readPassword (line 314) | String readPassword(String prompt) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/LocalFormSession.java
class LocalFormSession (line 29) | final class LocalFormSession {
method resumePendingForms (line 31) | static ProcessSnapshot resumePendingForms(Path workDir,
method resumePendingForms (line 38) | static ProcessSnapshot resumePendingForms(Path workDir,
method LocalFormSession (line 66) | private LocalFormSession() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/LocalFormState.java
class LocalFormState (line 37) | final class LocalFormState {
method syncPendingForms (line 39) | static List<Form> syncPendingForms(Path workDir, Set<String> waitingEv...
method assertSupported (line 58) | static void assertSupported(Path workDir, Collection<Form> forms) {
method formEvents (line 67) | static Set<String> formEvents(Collection<Form> forms) {
method formFilesDir (line 73) | static Path formFilesDir(Path workDir) {
method formsDir (line 77) | private static Path formsDir(Path workDir) {
method formPath (line 83) | private static Path formPath(Path workDir, String formName) {
method customAssetsPath (line 87) | private static Path customAssetsPath(Path workDir, String formName) {
method LocalFormState (line 91) | private LocalFormState() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/LocalSuspendPersistence.java
class LocalSuspendPersistence (line 46) | final class LocalSuspendPersistence {
method isSuspended (line 50) | static boolean isSuspended(ProcessSnapshot snapshot) {
method save (line 55) | static void save(Path workDir, ProcessSnapshot snapshot, ResumeMetadat...
method readMetadata (line 61) | static ResumeMetadata readMetadata(Path workDir) throws IOException {
method readWaitingEvents (line 74) | static Set<String> readWaitingEvents(Path workDir) throws IOException {
method hasSnapshot (line 83) | static boolean hasSnapshot(Path workDir) {
method hasMetadata (line 87) | static boolean hasMetadata(Path workDir) {
method cleanup (line 91) | static void cleanup(Path workDir) throws IOException {
method printResumeGuidance (line 95) | static void printResumeGuidance(Path resumeDir,
method getEvents (line 102) | static Set<String> getEvents(ProcessSnapshot snapshot) {
method writeMetadata (line 113) | private static void writeMetadata(Path workDir, ResumeMetadata metadat...
method objectMapper (line 126) | private static ObjectMapper objectMapper() {
method stateDir (line 130) | private static Path stateDir(Path workDir) {
method metadataPath (line 135) | private static Path metadataPath(Path workDir) {
method suspendMarkerPath (line 139) | private static Path suspendMarkerPath(Path workDir) {
method snapshotPath (line 143) | private static Path snapshotPath(Path workDir) {
method from (line 156) | static ResumeMetadata from(Path workDir,
method loadCliConfigContext (line 176) | CliConfigContext loadCliConfigContext(Verbosity verbosity) throws Exce...
method defaultTaskVarsPath (line 180) | Path defaultTaskVarsPath() {
method depsCacheDirPath (line 184) | Path depsCacheDirPath() {
method resumeDirPath (line 188) | Path resumeDirPath() {
method from (line 207) | static CliConfigData from(String contextName, CliConfig.Overrides over...
method load (line 215) | CliConfigContext load(Verbosity verbosity, Path fallbackBaseDir) throw...
method toOverrides (line 226) | private CliConfig.Overrides toOverrides(Path fallbackBaseDir) {
method pathToString (line 231) | private static String pathToString(Path path) {
method stringToPath (line 235) | private static Path stringToPath(String value, Path fallbackBaseDir) {
method LocalSuspendPersistence (line 248) | private LocalSuspendPersistence() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/LocalSuspendPrinter.java
class LocalSuspendPrinter (line 40) | final class LocalSuspendPrinter {
method printSuspendGuidance (line 45) | static void printSuspendGuidance(Path resumeDir,
method printInputRequired (line 60) | static void printInputRequired(Path resumeDir,
method printDescribeSelectionRequired (line 79) | static void printDescribeSelectionRequired(Path resumeDir,
method printEventSelectionRequired (line 96) | static void printEventSelectionRequired(Path resumeDir, Set<String> ev...
method printDescribeInput (line 109) | static void printDescribeInput(Path resumeDir, Form form) throws Excep...
method printUnsupportedNonInteractiveForm (line 145) | static void printUnsupportedNonInteractiveForm(Path resumeDir, Form fo...
method supportsNonInteractiveInput (line 160) | static boolean supportsNonInteractiveInput(Form form) {
method printContinueWith (line 164) | private static void printContinueWith(Collection<Form> pendingForms,
method printResumeContext (line 203) | private static void printResumeContext(Path resumeDir, java.io.PrintSt...
method printResumeDir (line 208) | private static void printResumeDir(Path resumeDir) {
method printPendingForms (line 212) | private static void printPendingForms(Collection<Form> pendingForms) {
method printPendingForms (line 216) | private static void printPendingForms(Collection<Form> pendingForms, j...
method printAdditionalEvents (line 234) | private static void printAdditionalEvents(Set<String> events) {
method printAdditionalEvents (line 238) | private static void printAdditionalEvents(Set<String> events, java.io....
method printFieldList (line 250) | private static void printFieldList(String header, List<FormField> fiel...
method printNonInteractiveSupport (line 261) | private static void printNonInteractiveSupport(Collection<Form> pendin...
method formMapping (line 278) | private static String formMapping(Form form) {
method additionalEvents (line 282) | private static Set<String> additionalEvents(Set<String> events, Collec...
method describeInputCommand (line 288) | private static String describeInputCommand(Form form) {
method inputFileCommand (line 292) | private static String inputFileCommand(Form form) {
method userFields (line 296) | private static List<FormField> userFields(Form form) {
method isOptional (line 302) | private static boolean isOptional(FormField field) {
method isRepeated (line 306) | private static boolean isRepeated(FormField field) {
method isFileField (line 310) | private static boolean isFileField(FormField field) {
method exampleInputFileName (line 314) | private static String exampleInputFileName(Form form) {
method firstAllowedValue (line 318) | private static Object firstAllowedValue(Serializable value) {
method examplePayload (line 325) | private static Map<String, Object> examplePayload(Form form) {
method exampleValue (line 338) | private static Object exampleValue(FormField field) {
method resumeCommand (line 361) | private static String resumeCommand() {
method shellQuote (line 365) | private static String shellQuote(String value) {
method LocalSuspendPrinter (line 373) | private LocalSuspendPrinter() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/Main.java
class Main (line 26) | public class Main {
method main (line 28) | public static void main(String[] args) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/PromptSupport.java
class PromptSupport (line 23) | final class PromptSupport {
method canPromptInteractively (line 27) | static boolean canPromptInteractively() {
method PromptSupport (line 31) | private PromptSupport() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/RemoteRun.java
class RemoteRun (line 52) | @Command(name = "remote-run", description = "Execute flows remotely. Sen...
method call (line 87) | @Override
method prepareArchive (line 178) | private static TemporaryPath prepareArchive(Path src, boolean noGitIgn...
method zipWithGitIgnore (line 206) | private static void zipWithGitIgnore(ZipArchiveOutputStream zip, Path ...
method getDirectorySize (line 241) | private static long getDirectorySize(Path src) throws IOException {
method handleApiException (line 254) | private static int handleApiException(ApiException apiException) {
method info (line 291) | private static void info(String msg) {
method unexpectedErrorBody (line 295) | private static int unexpectedErrorBody(ApiException e) {
method missingConfig (line 300) | private static int missingConfig(String context, String key) {
method warn (line 304) | private static void warn(String msg) {
method err (line 308) | private static int err(String msg) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/Resume.java
class Resume (line 51) | @Command(name = "resume", description = "Resume a previously suspended l...
method call (line 89) | @Override
method describeInput (line 203) | private int describeInput(Path resumeDir, Set<String> waitingEvents, L...
method selectEvent (line 230) | private SelectionResult selectEvent(Path resumeDir, Set<String> waitin...
method loadInput (line 253) | private Map<String, Object> loadInput() throws Exception {
method loadInlineInput (line 283) | private Map<String, Object> loadInlineInput() throws Exception {
method parseInlineValue (line 299) | private static Object parseInlineValue(String value) throws Exception {
method wrapInput (line 303) | private static Map<String, Object> wrapInput(Map<String, Object> input...
method err (line 321) | private static int err(int exitCode, String message) {
method printFormInputErrors (line 326) | private static void printFormInputErrors(LocalFormInputs.InputExceptio...
method usesFormMode (line 333) | private boolean usesFormMode(List<Form> pendingForms) {
method hasGenericManualFlags (line 337) | private boolean hasGenericManualFlags() {
method hasManualInputFlags (line 341) | private boolean hasManualInputFlags() {
method canPromptInteractively (line 345) | private boolean canPromptInteractively() {
method findPendingForm (line 349) | private static Form findPendingForm(List<Form> pendingForms, String ev...
method resolveWorkDir (line 360) | private Path resolveWorkDir() {
method hasSuspendedState (line 376) | private static boolean hasSuspendedState(Path workDir) {
method loadMetadata (line 380) | private static LocalSuspendPersistence.ResumeMetadata loadMetadata(Pat...
method loadWaitingEvents (line 391) | private static Set<String> loadWaitingEvents(Path workDir) throws Exce...
method success (line 407) | static SelectionResult success(String event) {
method error (line 411) | static SelectionResult error(int exitCode) {
method loadSnapshot (line 416) | private static ProcessSnapshot loadSnapshot(Path workDir, ClassLoader ...
FILE: cli/src/main/java/com/walmartlabs/concord/cli/Run.java
class Run (line 72) | @Command(name = "run", description = "Execute flows locally. Sends the s...
method call (line 151) | @Override
method canPromptInteractively (line 361) | private boolean canPromptInteractively() {
method buildApiConfiguration (line 365) | private ApiConfiguration buildApiConfiguration(CliConfigContext cliCon...
method projectInfo (line 376) | @SuppressWarnings("unchecked")
method from (line 401) | private static ImmutableProcessConfiguration.Builder from(ProcessDefin...
method fromExtraVars (line 413) | private static Map<String, Object> fromExtraVars(String key, Map<Strin...
method copyDefaultCfg (line 423) | private static void copyDefaultCfg(Path targetDir, Path defaultCfg, bo...
method prepareWorkDir (line 455) | private Path prepareWorkDir(Path sourceDir, Verbosity verbosity) throw...
method resolveSourceDir (line 482) | private static Path resolveSourceDir(Path sourceDir) {
method validatePaths (line 496) | private static void validatePaths(Path src, Path target) {
method cleanTargetDirectory (line 508) | private static void cleanTargetDirectory(Path target, Verbosity verbos...
method copySourceToTarget (line 517) | private void copySourceToTarget(Path src, Path target, Verbosity verbo...
method dumpArguments (line 528) | private static void dumpArguments(Map<String, Object> args) {
method logException (line 538) | static void logException(Verbosity verbosity, Exception e) {
class CopyNotifier (line 547) | private static class CopyNotifier implements FileVisitor {
method CopyNotifier (line 554) | public CopyNotifier(long notifyOnCount, String targetDirDisplay) {
method visit (line 559) | @Override
method copyWithGitIgnore (line 575) | private static void copyWithGitIgnore(Path src, Path dst, Path skipDir,
FILE: cli/src/main/java/com/walmartlabs/concord/cli/SelfUpdate.java
class SelfUpdate (line 42) | @Command(name = "self-update", description = "Update the CLI to the late...
method call (line 52) | @Override
method getLatestVersion (line 114) | private static Optional<String> getLatestVersion() throws IOException,...
method downloadArtifact (line 145) | private static Path downloadArtifact(String version, Path dst) throws ...
method unableToDetermineSelfLocation (line 168) | private static int unableToDetermineSelfLocation() {
method selfLocationIsNotWritable (line 172) | private static int selfLocationIsNotWritable() {
method unableToDetermineLatestReleaseVersion (line 176) | private static int unableToDetermineLatestReleaseVersion() {
method currentVersionIsLatest (line 180) | private static int currentVersionIsLatest() {
method currentVersionIsMoreRecent (line 185) | private static int currentVersionIsMoreRecent() {
method err (line 190) | private static int err(String msg) {
method warn (line 195) | private static void warn(String msg) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/Verbosity.java
class Verbosity (line 23) | public class Verbosity {
method Verbosity (line 27) | public Verbosity(boolean[] verbosity) {
method logFlowSteps (line 31) | public boolean logFlowSteps() {
method logTaskParams (line 35) | public boolean logTaskParams() {
method verbose (line 39) | public boolean verbose() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/Version.java
class Version (line 26) | public class Version {
method getVersion (line 40) | public static String getVersion() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/lint/DummyImportsNormalizer.java
class DummyImportsNormalizer (line 26) | public class DummyImportsNormalizer implements ImportsNormalizer {
method normalize (line 28) | @Override
FILE: cli/src/main/java/com/walmartlabs/concord/cli/lint/ExpressionLinter.java
class ExpressionLinter (line 31) | public class ExpressionLinter extends FlowElementLinter {
method ExpressionLinter (line 33) | public ExpressionLinter(boolean verbose) {
method apply (line 37) | @Override
method accepts (line 57) | @Override
method getStartMessage (line 62) | @Override
method validate (line 67) | public static LintResult validate(String expr, SourceMap sourceMap) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/lint/FlowElementLinter.java
class FlowElementLinter (line 32) | public abstract class FlowElementLinter implements Linter {
method FlowElementLinter (line 36) | public FlowElementLinter(boolean verbose) {
method apply (line 40) | @Override
method apply (line 56) | private List<LintResult> apply(FlowDefinition pd) {
method accepts (line 73) | protected abstract boolean accepts(Step element);
method apply (line 75) | protected abstract List<LintResult> apply(Step element);
method getStartMessage (line 77) | protected abstract String getStartMessage();
method notify (line 79) | protected void notify(String s) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/lint/LintResult.java
class LintResult (line 25) | public class LintResult {
method error (line 27) | public static LintResult error(SourceMap sourceMap, String message) {
method LintResult (line 35) | public LintResult(Type type, SourceMap sourceMap, String message) {
method getType (line 41) | public Type getType() {
method getSourceMap (line 45) | public SourceMap getSourceMap() {
method getMessage (line 49) | public String getMessage() {
type Type (line 53) | public enum Type {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/lint/Linter.java
type Linter (line 27) | public interface Linter {
method apply (line 29) | List<LintResult> apply(ProcessDefinition pd);
FILE: cli/src/main/java/com/walmartlabs/concord/cli/lint/TaskCallLinter.java
class TaskCallLinter (line 34) | public class TaskCallLinter extends FlowElementLinter {
method TaskCallLinter (line 36) | public TaskCallLinter(boolean verbose) {
method apply (line 40) | @Override
method validateArgument (line 65) | private LintResult validateArgument(String paramName, Object value, So...
method validateValue (line 73) | private LintResult validateValue(String paramName, Object value, Sourc...
method validateExpression (line 100) | private LintResult validateExpression(String paramName, String expr, S...
method accepts (line 110) | @Override
method getStartMessage (line 115) | @Override
FILE: cli/src/main/java/com/walmartlabs/concord/cli/lint/Utils.java
class Utils (line 30) | public final class Utils {
method compileExpression (line 32) | public static void compileExpression(String expr) {
method toResult (line 38) | public static LintResult toResult(ELException e, SourceMap sm, String ...
method Utils (line 44) | private Utils() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/ApiKey.java
method create (line 31) | public static ApiKey create(CliConfig.CliConfigContext cliConfigContext,...
method toString (line 49) | @Override
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/CliApiClientProvider.java
class CliApiClientProvider (line 31) | public class CliApiClientProvider implements Provider<ApiClient> {
method CliApiClientProvider (line 37) | @Inject
method get (line 44) | @Override
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/CliCheckpointService.java
class CliCheckpointService (line 32) | public class CliCheckpointService implements CheckpointService {
method create (line 34) | @Override
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/CliDockerService.java
class CliDockerService (line 27) | public class CliDockerService implements DockerService {
method start (line 29) | @Override
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/CliImportsListener.java
class CliImportsListener (line 28) | public class CliImportsListener implements ImportsListener {
method onStart (line 32) | @Override
method onEnd (line 38) | @Override
method beforeImport (line 43) | @Override
method afterImport (line 48) | @Override
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/CliImportsNormalizer.java
class CliImportsNormalizer (line 29) | public class CliImportsNormalizer implements ImportsNormalizer {
method CliImportsNormalizer (line 37) | public CliImportsNormalizer(String defaultSource, boolean verbose, Str...
method normalize (line 43) | @Override
method normalize (line 64) | private Import normalize(Import i) {
method normalize (line 86) | private Import.GitDefinition normalize(Import.GitDefinition e) {
method normalizeUrl (line 101) | private static String normalizeUrl(String u) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/CliLockService.java
class CliLockService (line 28) | public class CliLockService implements LockService {
method projectLock (line 30) | @Override
method projectUnlock (line 35) | @Override
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/CliRepositoryExporter.java
class CliRepositoryExporter (line 40) | public class CliRepositoryExporter implements RepositoryExporter {
method CliRepositoryExporter (line 54) | public CliRepositoryExporter(Path repoCacheDir) {
method export (line 81) | @Override
method encodeUrl (line 103) | private static String encodeUrl(String url) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/CliServicesModule.java
class CliServicesModule (line 49) | public class CliServicesModule extends AbstractModule {
method CliServicesModule (line 57) | public CliServicesModule(CliConfigContext cliConfigContext,
method configure (line 70) | @Override
method readDefaultVars (line 107) | private static Map<String, Map<String, Object>> readDefaultVars(Path d...
method parseDefaultVars (line 119) | @SuppressWarnings("unchecked")
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/DependencyResolver.java
class DependencyResolver (line 38) | public class DependencyResolver {
method DependencyResolver (line 44) | public DependencyResolver(DependencyManager dependencyManager, boolean...
method resolveDeps (line 49) | public Collection<String> resolveDeps(List<String> dependencies) throw...
method logDependencies (line 96) | private void logDependencies(Collection<?> deps) {
method normalizeUrls (line 114) | private static Collection<URI> normalizeUrls(Collection<String> urls) ...
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/FlowStepLogger.java
class FlowStepLogger (line 35) | public class FlowStepLogger implements ExecutionListener {
method beforeCommand (line 37) | @Override
method getDescription (line 57) | private static String getDescription(Runtime runtime, State state, Thr...
method getDefaultDescription (line 72) | private static String getDefaultDescription(Step step) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/TaskParamsLogger.java
class TaskParamsLogger (line 37) | public class TaskParamsLogger implements TaskCallListener {
method onEvent (line 39) | @Override
method asMapOrNull (line 55) | @SuppressWarnings("unchecked")
method convertInput (line 68) | private static Map<String, Object> convertInput(List<Object> input) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/runner/VaultProvider.java
class VaultProvider (line 54) | public class VaultProvider {
method VaultProvider (line 59) | public VaultProvider(Path dir, String id) {
method getValue (line 64) | public String getValue(String key) {
method load (line 77) | private static Map<String, String> load(Path file) {
method vaultPath (line 96) | private static Path vaultPath(Path dir, String vaultId) {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/secrets/CliSecretService.java
class CliSecretService (line 35) | public class CliSecretService implements SecretService {
method create (line 41) | public static CliSecretService create(CliConfigContext cliConfigContex...
method CliSecretService (line 60) | public CliSecretService(List<SecretsProviderRef> secretsProviders, Vau...
method exportKeyAsFile (line 66) | @Override
method exportAsString (line 78) | @Override
method exportAsFile (line 90) | @Override
method exportCredentials (line 102) | @Override
method createKeyPair (line 114) | @Override
method createUsernamePassword (line 122) | @Override
method createData (line 130) | @Override
method decryptString (line 138) | @Override
method encryptString (line 143) | @Override
method assertWritableProvider (line 148) | private SecretsProviderRef assertWritableProvider() {
method reportSecretFound (line 154) | private void reportSecretFound(String orgName, String secretName, Secr...
method reportSecretCreated (line 160) | private void reportSecretCreated(SecretParams params, SecretsProviderR...
FILE: cli/src/main/java/com/walmartlabs/concord/cli/secrets/FileSecretsProvider.java
class FileSecretsProvider (line 42) | public class FileSecretsProvider implements SecretsProvider {
method FileSecretsProvider (line 48) | public FileSecretsProvider(@Nullable Path workDir, Path secretStoreDir) {
method exportKeyAsFile (line 53) | @Override
method exportAsString (line 76) | @Override
method exportAsFile (line 84) | @Override
method exportCredentials (line 95) | @Override
method createKeyPair (line 113) | @Override
method createUsernamePassword (line 126) | @Override
method createData (line 140) | @Override
method getSecret (line 151) | private Optional<Path> getSecret(String orgName, String secretName) {
method createSecretFile (line 159) | private Path createSecretFile(String orgName, String secretName) throw...
method toSecretPath (line 173) | private Path toSecretPath(String orgName, String name) {
method assertWorkDir (line 189) | private Path assertWorkDir() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/secrets/RemoteSecretsProvider.java
class RemoteSecretsProvider (line 41) | public class RemoteSecretsProvider implements SecretsProvider {
method RemoteSecretsProvider (line 47) | public RemoteSecretsProvider(@Nullable Path workDir, String baseUrl, S...
method exportKeyAsFile (line 60) | @Override
method exportAsString (line 79) | @Override
method exportAsFile (line 86) | @Override
method exportCredentials (line 98) | @Override
method createKeyPair (line 104) | @Override
method createUsernamePassword (line 114) | @Override
method createData (line 121) | @Override
method getKeyPair (line 128) | private Optional<KeyPair> getKeyPair(String orgName, String secretName...
method getBinaryDataSecret (line 138) | private Optional<BinaryDataSecret> getBinaryDataSecret(String orgName,...
method getUsernamePassword (line 148) | private Optional<UsernamePassword> getUsernamePassword(String orgName,...
method toResult (line 158) | private static SecretService.SecretCreationResult toResult(SecretOpera...
method secretRequest (line 165) | private ImmutableCreateSecretRequest.Builder secretRequest(SecretServi...
method askForAccessConfirmation (line 184) | private void askForAccessConfirmation(String orgName, String secretNam...
method assertWorkDir (line 194) | private Path assertWorkDir() {
FILE: cli/src/main/java/com/walmartlabs/concord/cli/secrets/SecretsProvider.java
type SecretsProvider (line 31) | public interface SecretsProvider {
method exportKeyAsFile (line 33) | Optional<KeyPair> exportKeyAsFile(String orgName, String secretName, S...
method exportAsString (line 35) | Optional<String> exportAsString(String orgName, String secretName, Str...
method exportAsFile (line 37) | Optional<Path> exportAsFile(String orgName, String secretName, String ...
method exportCredentials (line 39) | Optional<UsernamePassword> exportCredentials(String orgName, String se...
method createKeyPair (line 41) | SecretCreationResult createKeyPair(SecretService.SecretParams secret, ...
method createUsernamePassword (line 43) | SecretCreationResult createUsernamePassword(SecretService.SecretParams...
method createData (line 45) | SecretCreationResult createData(SecretService.SecretParams secret, byt...
FILE: cli/src/main/java/com/walmartlabs/concord/cli/secrets/UncheckedIO.java
class UncheckedIO (line 32) | public final class UncheckedIO {
method assertTmpDir (line 34) | public static Path assertTmpDir(Path workDir) {
method write (line 46) | public static Path write(Path path, byte[] bytes, OpenOption... option...
method readAllBytes (line 54) | public static byte[] readAllBytes(Path path) {
method createTempFile (line 62) | public static Path createTempFile(Path dir, String prefix, String suff...
method copy (line 70) | public static Path copy(Path source, Path target, CopyOption... option...
method UncheckedIO (line 78) | private UncheckedIO() {
FILE: cli/src/test/java/com/walmartlabs/concord/cli/AbstractTest.java
class AbstractTest (line 35) | public abstract class AbstractTest {
method setUpStreams (line 42) | @BeforeEach
method restoreStreams (line 50) | @AfterEach
method assertLog (line 57) | protected void assertLog(String pattern) {
method assertLog (line 64) | protected void assertLog(String pattern, int times) {
method stdOut (line 72) | protected String stdOut() {
method stdErr (line 76) | protected String stdErr() {
method assertOutContainsRegex (line 80) | protected void assertOutContainsRegex(String pattern) {
method assertErrContainsRegex (line 84) | protected void assertErrContainsRegex(String pattern) {
method withInput (line 88) | protected <T> T withInput(String value, Callable<T> action) throws Exc...
method grep (line 103) | private static int grep(String str, String pattern) {
method assertContainsRegex (line 116) | private static void assertContainsRegex(String value, String pattern, ...
FILE: cli/src/test/java/com/walmartlabs/concord/cli/CliConfigTest.java
class CliConfigTest (line 35) | public class CliConfigTest {
method parse (line 40) | @Test
method checkDefaults (line 48) | @Test
method withOverrides (line 57) | @Test
method multiContexts (line 68) | @Test
method missingContextWithoutUserConfig (line 77) | @Test
method missingContextWithUserConfig (line 88) | @Test
method load (line 104) | private static CliConfig load(String resource) throws IOException, URI...
method withUserHome (line 109) | private static <T> T withUserHome(Path userHome, java.util.concurrent....
FILE: cli/src/test/java/com/walmartlabs/concord/cli/GitIgnoreFilterTest.java
class GitIgnoreFilterTest (line 32) | class GitIgnoreFilterTest {
method testNoGitignoreReturnsNull (line 37) | @Test
method testEmptyGitignoreReturnsNull (line 43) | @Test
method testCommentsOnlyReturnsNull (line 50) | @Test
method testBasicPatterns (line 57) | @Test
method testGlobPatterns (line 72) | @Test
method testNegationPatterns (line 87) | @Test
method testDirectoryOnlyPatterns (line 99) | @Test
method testAnchoredPatterns (line 111) | @Test
method testNestedGitignore (line 123) | @Test
method testBlankLinesIgnored (line 146) | @Test
method testMixedPatterns (line 157) | @Test
method testSubdirectoryPaths (line 194) | @Test
method testFilesInIgnoredDirectory (line 205) | @Test
FILE: cli/src/test/java/com/walmartlabs/concord/cli/LintTest.java
class LintTest (line 36) | class LintTest extends AbstractTest {
method lintV1Test (line 38) | @Test
method lintV2Test (line 45) | @Test
method lint (line 52) | private static int lint(String payload) throws Exception {
FILE: cli/src/test/java/com/walmartlabs/concord/cli/ResumeTest.java
class ResumeTest (line 41) | class ResumeTest extends AbstractTest {
method suspendedRunPersistsStateAndPrintsGuidance (line 46) | @Test
method resumeConsumesInputFileAndSaveAs (line 62) | @Test
method resumeConsumesInlineNestedInput (line 85) | @Test
method resumePromptsForPendingStandardForms (line 105) | @Test
method resumeFailsFastForFormsWithoutInteractiveInput (line 131) | @Test
method describeInputShowsExpectedFormShape (line 145) | @Test
method runOffersImmediateFormFill (line 165) | @Test
method runNoPromptSkipsImmediateFormFill (line 181) | @Test
method interruptedImmediateFormFillCanBeResumed (line 192) | @Test
method parallelFormsRunShowsMappingsAndAutomationHints (line 215) | @Test
method resumeWithoutPayloadOnMultipleFormsRequiresExplicitEvent (line 226) | @Test
method describeInputRequiresEventForMultipleForms (line 242) | @Test
method mixedFormAndEventGuidanceIncludesBothChoices (line 256) | @Test
method fileUploadFormDescribeInputAndResumeFailure (line 266) | @Test
method nonInteractiveFormInputIsConvertedAndValidated (line 292) | @Test
method fileUploadFormRetryCleansFailedAttemptTempFiles (line 332) | @Test
method resumeMetadataStoresAbsolutePathsAndResolvesOldRelativePaths (line 346) | @Test
method suspendedMetadataOmitsApiKeyAndResumeReloadsStoredContextAndOverrides (line 378) | @Test
method passwordRetryPromptsDoNotEchoSecretsAndRunCleanupRemovesSessionFiles (line 420) | @Test
method resumeCleanupRemovesSessionFiles (line 438) | @Test
method cleanupRemovesStateAndSessionFiles (line 459) | @Test
method execute (line 475) | private int execute(List<String> args) {
method executeIn (line 481) | private int executeIn(Path userDir, List<String> args) {
method runArgs (line 495) | private static List<String> runArgs(String... extraArgs) {
method preparePayload (line 503) | private Path preparePayload(String payload) throws Exception {
method quoted (line 510) | private static String quoted(Path path) {
method withUserHome (line 514) | private <T> T withUserHome(Path userHome, java.util.concurrent.Callabl...
method writeCliConfig (line 528) | private static void writeCliConfig(Path homeDir, String contents) thro...
method writeSecret (line 534) | private static void writeSecret(Path secretDir, String orgName, String...
method countMatches (line 540) | private static int countMatches(String value, String regex) {
method listTmpFiles (line 549) | private static Set<Path> listTmpFiles(String prefix) throws IOException {
FILE: cli/src/test/java/com/walmartlabs/concord/cli/RunTest.java
class RunTest (line 35) | class RunTest extends AbstractTest {
method runTest (line 40) | @Test
method testResourceTask (line 59) | @Test
method testDepsFromProfile (line 66) | @Test
method testCliCheckpointService (line 73) | @Test
method testCustomDefaultConfig (line 80) | @Test
method testCustomDefaultTaskVars (line 87) | @Test
method testProcessProjectInfo (line 94) | @Test
method assertExitCode (line 112) | private void assertExitCode(int expected, int current) {
method run (line 116) | private int run(String payload, List<String> args) throws Exception {
method run (line 120) | private int run(String payload, List<String> args, String defaultCfg) ...
FILE: client2/src/main/java/com/walmartlabs/concord/client2/ApiClientConfiguration.java
type ApiClientConfiguration (line 27) | @Value.Immutable
method baseUrl (line 34) | @Nullable
method sessionToken (line 40) | @Nullable
method apiKey (line 46) | @Nullable
method builder (line 49) | static ImmutableApiClientConfiguration.Builder builder() {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/ApiClientFactory.java
type ApiClientFactory (line 23) | public interface ApiClientFactory {
method create (line 25) | ApiClient create(ApiClientConfiguration cfg);
FILE: client2/src/main/java/com/walmartlabs/concord/client2/ClientUtils.java
class ClientUtils (line 30) | public final class ClientUtils {
method withRetry (line 34) | public static <T> T withRetry(int retryCount, long retryInterval, Call...
method getHeader (line 68) | public static String getHeader(String name, ApiResponse<?> resp) {
method sleep (line 91) | private static void sleep(long t) {
method getErrorMessage (line 99) | private static String getErrorMessage(ApiException e) {
method ClientUtils (line 107) | private ClientUtils() {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/ConcordApiClient.java
class ConcordApiClient (line 25) | public class ConcordApiClient extends ApiClient {
method ConcordApiClient (line 27) | public ConcordApiClient(HttpClient httpClient) {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/CreateSecretRequest.java
type CreateSecretRequest (line 34) | @Value.Immutable
method org (line 38) | String org();
method name (line 40) | String name();
method generatePassword (line 42) | @Value.Default
method storePassword (line 47) | @Nullable
method visibility (line 50) | @Nullable
method projectNames (line 53) | @Nullable
method projectIds (line 56) | @Nullable
method data (line 59) | @Nullable
method keyPair (line 62) | @Nullable
method usernamePassword (line 65) | @Nullable
method builder (line 68) | static ImmutableCreateSecretRequest.Builder builder() {
type KeyPair (line 72) | @Value.Immutable
method privateKey (line 78) | Path privateKey();
method publicKey (line 80) | Path publicKey();
method builder (line 82) | static ImmutableKeyPair.Builder builder() {
type UsernamePassword (line 87) | @Value.Immutable
method username (line 93) | String username();
method password (line 95) | String password();
method of (line 97) | static UsernamePassword of(String username, String password) {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/DefaultApiClientFactory.java
class DefaultApiClientFactory (line 31) | public class DefaultApiClientFactory {
method DefaultApiClientFactory (line 38) | public DefaultApiClientFactory(String defaultApiUrl) {
method DefaultApiClientFactory (line 42) | public DefaultApiClientFactory(String defaultApiUrl, Duration connectT...
method DefaultApiClientFactory (line 46) | public DefaultApiClientFactory(String defaultApiUrl, Duration connectT...
method create (line 56) | public ApiClient create() {
method create (line 61) | public ApiClient create(ApiClientConfiguration overrides) {
method sslContext (line 85) | private static SSLContext sslContext(boolean verifySsl) {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/ProcessDataInclude.java
type ProcessDataInclude (line 23) | public enum ProcessDataInclude {
method ProcessDataInclude (line 32) | ProcessDataInclude(String value) {
method getValue (line 36) | public String getValue() {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/ProcessListFilter.java
type ProcessListFilter (line 33) | @Value.Immutable
method orgId (line 37) | @Nullable
method orgName (line 40) | @Nullable
method projectId (line 43) | @Nullable
method projectName (line 46) | @Nullable
method repoId (line 49) | @Nullable
method repoName (line 52) | @Nullable
method afterCreatedAt (line 55) | @Nullable
method beforeCreatedAt (line 58) | @Nullable
method tags (line 61) | @Nullable
method status (line 64) | @Nullable
method initiator (line 67) | @Nullable
method parentInstanceId (line 70) | @Nullable
method include (line 73) | @Nullable
method limit (line 76) | @Nullable
method offset (line 79) | @Nullable
method meta (line 82) | @Nullable
class Builder (line 85) | class Builder extends ImmutableProcessListFilter.Builder {
method status (line 87) | public Builder status(ProcessEntry.StatusEnum status) {
method addInclude (line 91) | public Builder addInclude(ProcessDataInclude... elements) {
method afterCreatedAt (line 98) | public Builder afterCreatedAt(OffsetDateTime afterCreatedAt) {
method builder (line 108) | static ImmutableProcessListFilter.Builder builder() {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/ProcessUtils.java
class ProcessUtils (line 25) | public class ProcessUtils {
method isFinal (line 27) | public static boolean isFinal(StatusEnum s) {
method ProcessUtils (line 31) | private ProcessUtils() {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/SecretClient.java
class SecretClient (line 36) | public class SecretClient {
method SecretClient (line 45) | public SecretClient(ApiClient apiClient) {
method SecretClient (line 49) | public SecretClient(ApiClient apiClient, int retryCount, long retryInt...
method getData (line 58) | public <T extends Secret> T getData(String orgName, String secretName,...
method decryptString (line 105) | public byte[] decryptString(UUID instanceId, byte[] input) throws Exce...
method encryptString (line 113) | public String encryptString(String orgName, String projectName, String...
method createSecret (line 124) | public SecretOperationResponse createSecret(CreateSecretRequest secret...
method updateSecret (line 171) | public void updateSecret(String orgName, String secretName, UpdateSecr...
method readFile (line 214) | private static byte[] readFile(Path file) {
method readSecret (line 230) | @SuppressWarnings("unchecked")
FILE: client2/src/main/java/com/walmartlabs/concord/client2/SecretNotFoundException.java
class SecretNotFoundException (line 23) | public class SecretNotFoundException extends IllegalArgumentException {
method SecretNotFoundException (line 31) | public SecretNotFoundException(String orgName, String secretName) {
method getOrgName (line 37) | public String getOrgName() {
method getSecretName (line 41) | public String getSecretName() {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/UpdateSecretRequest.java
type UpdateSecretRequest (line 30) | @Value.Immutable
method newOrgId (line 34) | @Nullable
method newOrgName (line 37) | @Nullable
method newProjectNames (line 40) | @Nullable
method newProjectIds (line 43) | @Nullable
method removeProjectLink (line 46) | @Value.Default
method newOwnerId (line 51) | @Nullable
method currentPassword (line 54) | @Nullable
method newPassword (line 57) | @Nullable
method newName (line 60) | @Nullable
method newVisibility (line 63) | @Nullable
method data (line 66) | @Nullable
method keyPair (line 69) | @Nullable
method usernamePassword (line 72) | @Nullable
method builder (line 75) | static ImmutableUpdateSecretRequest.Builder builder() {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/ByteArrayBuffer.java
class ByteArrayBuffer (line 23) | public class ByteArrayBuffer {
method ByteArrayBuffer (line 28) | public ByteArrayBuffer(int capacity) {
method append (line 33) | public void append(byte[] b) {
method append (line 37) | public void append(byte[] b, int off, int len) {
method expand (line 56) | private void expand(int newlen) {
method array (line 62) | public byte[] array() {
method toByteArray (line 66) | public byte[] toByteArray() {
method length (line 74) | public int length() {
method clear (line 78) | public void clear() {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/ContentType.java
class ContentType (line 28) | public class ContentType {
method create (line 40) | public static ContentType create(String mimeType) {
method create (line 44) | public static ContentType create(String mimeType, Charset charset) {
method ContentType (line 53) | public ContentType(String mimeType, Charset charset) {
method ContentType (line 57) | public ContentType(String mimeType, Charset charset, List<NameValuePai...
method withCharset (line 63) | public ContentType withCharset(Charset charset) {
method withParameters (line 67) | public ContentType withParameters(List<NameValuePair> params) {
method getMimeType (line 71) | public String getMimeType() {
method getCharset (line 75) | public Charset getCharset() {
method toString (line 79) | @Override
method formatParameters (line 93) | private static void formatParameters(StringBuilder buf, List<NameValue...
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/Headers.java
class Headers (line 26) | public class Headers {
method of (line 30) | public static Headers of(String name, String value) {
method Headers (line 34) | public Headers(List<NameValuePair> items) {
method get (line 38) | public String get(String name) {
method size (line 46) | public int size() {
method name (line 50) | public String name(int index) {
method value (line 54) | public String value(int index) {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/HttpEntity.java
type HttpEntity (line 26) | public interface HttpEntity {
method contentType (line 28) | ContentType contentType();
method contentLength (line 30) | long contentLength() throws IOException;
method getContent (line 32) | InputStream getContent() throws IOException;
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/MultipartBuilder.java
class MultipartBuilder (line 33) | public class MultipartBuilder {
method MultipartBuilder (line 45) | public MultipartBuilder() {
method MultipartBuilder (line 49) | public MultipartBuilder(String boundary) {
method addFormDataPart (line 53) | public MultipartBuilder addFormDataPart(String name, String value) {
method addFormDataPart (line 57) | public MultipartBuilder addFormDataPart(String name, String filename, ...
method addPart (line 70) | public MultipartBuilder addPart(Headers headers, RequestBody body) {
method build (line 86) | public RequestBody build() {
method appendQuotedString (line 90) | private static void appendQuotedString(StringBuilder target, String ke...
class MultipartRequestBody (line 112) | private static final class MultipartRequestBody extends RequestBody {
method MultipartRequestBody (line 118) | public MultipartRequestBody(ContentType type, String boundary, List<...
method contentType (line 129) | @Override
method contentLength (line 134) | @Override
method getContent (line 139) | @Override
method write (line 151) | private void write(SequenceInputStreamBuilder result) throws IOExcep...
method writeHeader (line 189) | private void writeHeader(String name, String value, SequenceInputStr...
method encode (line 196) | private static ByteArrayBuffer encode(Charset charset, String string) {
method encodeHeader (line 203) | private static ByteArrayBuffer encodeHeader(String value) {
class SequenceInputStreamBuilder (line 208) | static class SequenceInputStreamBuilder {
method write (line 213) | public void write(byte[] buff) {
method write (line 217) | public void write(ByteArrayBuffer buff) {
method write (line 221) | public void write(InputStream stream) {
method close (line 227) | public void close() throws IOException {
method build (line 245) | public InputStream build() {
method flushCurrentBuffer (line 251) | private void flushCurrentBuffer() {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/MultipartRequestBodyHandler.java
class MultipartRequestBodyHandler (line 34) | public final class MultipartRequestBodyHandler {
method handle (line 36) | public static HttpEntity handle(ObjectMapper objectMapper, Map<String,...
method handle (line 40) | @SuppressWarnings("unchecked")
method MultipartRequestBodyHandler (line 78) | private MultipartRequestBodyHandler() {
class InputStreamRequestBody (line 81) | public static final class InputStreamRequestBody extends RequestBody {
method InputStreamRequestBody (line 85) | public InputStreamRequestBody(InputStream in) {
method contentType (line 89) | @Override
method contentLength (line 94) | @Override
method getContent (line 99) | @Override
class PathRequestBody (line 105) | public static class PathRequestBody extends RequestBody {
method PathRequestBody (line 109) | public PathRequestBody(Path path) {
method contentType (line 113) | @Override
method contentLength (line 118) | @Override
method getContent (line 123) | @Override
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/NameValuePair.java
class NameValuePair (line 26) | public class NameValuePair implements Serializable {
method NameValuePair (line 33) | public NameValuePair(final String name, final String value) {
method getName (line 38) | public String getName() {
method getValue (line 42) | public String getValue() {
method equals (line 46) | @Override
method hashCode (line 54) | @Override
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/OffsetDateTimeDeserializer.java
class OffsetDateTimeDeserializer (line 28) | public class OffsetDateTimeDeserializer extends InstantDeserializer<Offs...
method OffsetDateTimeDeserializer (line 30) | public OffsetDateTimeDeserializer() {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/OffsetDateTimeSerializer.java
class OffsetDateTimeSerializer (line 31) | public class OffsetDateTimeSerializer extends JsonSerializer<OffsetDateT...
method serialize (line 35) | @Override
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/RequestBody.java
class RequestBody (line 29) | public abstract class RequestBody implements HttpEntity {
method create (line 31) | public static RequestBody create(ContentType contentType, String conte...
method create (line 44) | public static RequestBody create(ContentType contentType, byte[] conte...
method create (line 48) | public static RequestBody create(ContentType contentType, byte[] conte...
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/RequestBodyHandler.java
class RequestBodyHandler (line 29) | public final class RequestBodyHandler {
method handle (line 31) | public static HttpRequest.BodyPublisher handle(ObjectMapper ignoredObj...
method handle (line 35) | public static HttpRequest.BodyPublisher handle(ObjectMapper ignoredObj...
method handle (line 39) | public static HttpRequest.BodyPublisher handle(ObjectMapper objectMapp...
method RequestBodyHandler (line 47) | private RequestBodyHandler() {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/ResponseBodyHandler.java
class ResponseBodyHandler (line 36) | public final class ResponseBodyHandler {
method handle (line 38) | @SuppressWarnings("unchecked")
method isJsonMime (line 78) | private static boolean isJsonMime(String mime) {
method toString (line 83) | private static String toString(InputStream input, Charset charset) thr...
method charset (line 87) | private static Charset charset(HttpResponse<InputStream> response) {
method parseCharset (line 97) | private static Charset parseCharset(String contentTypeHeader, Charset ...
method ResponseBodyHandler (line 108) | private ResponseBodyHandler() {
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/auth/ApiKey.java
class ApiKey (line 25) | public class ApiKey implements Authentication {
method ApiKey (line 29) | public ApiKey(String key) {
method applyTo (line 33) | @Override
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/auth/Authentication.java
type Authentication (line 25) | public interface Authentication {
method applyTo (line 27) | HttpRequest.Builder applyTo(HttpRequest.Builder requesBuilder);
FILE: client2/src/main/java/com/walmartlabs/concord/client2/impl/auth/SessionToken.java
class SessionToken (line 25) | public class SessionToken implements Authentication {
method SessionToken (line 29) | public SessionToken(String token) {
method applyTo (line 33) | @Override
FILE: client2/src/test/java/com/walmartlabs/concord/client2/ApiClientJsonTest.java
class ApiClientJsonTest (line 34) | public class ApiClientJsonTest {
method testParseDate (line 36) | @Test
method testObjectSerialize (line 54) | @Test
method testEmptyCollectionSerialize (line 63) | @Test
FILE: client2/src/test/java/com/walmartlabs/concord/client2/ProcessApiTest.java
class ProcessApiTest (line 30) | public class ProcessApiTest {
method testDecrypt (line 32) | @Test
FILE: client2/src/test/java/com/walmartlabs/concord/client2/SecretClientTest.java
class SecretClientTest (line 34) | @WireMockTest
method testInvalidSecretType (line 37) | @Test
method testGetSecret (line 58) | @Test
FILE: client2/src/test/java/com/walmartlabs/concord/client2/impl/MultipartRequestBodyHandlerTest.java
class MultipartRequestBodyHandlerTest (line 36) | public class MultipartRequestBodyHandlerTest {
method test2 (line 38) | @Test
FILE: common/src/main/java/com/walmartlabs/concord/common/AuthTokenProvider.java
type AuthTokenProvider (line 38) | public interface AuthTokenProvider {
method supports (line 45) | boolean supports(URI repo, @Nullable Secret secret);
method getToken (line 47) | Optional<ExternalAuthToken> getToken(URI repo, @Nullable Secret secret);
method addUserInfoToUri (line 49) | default URI addUserInfoToUri(URI repo, @Nullable Secret secret) {
class OauthTokenProvider (line 72) | @SuppressWarnings("ClassCanBeRecord")
method OauthTokenProvider (line 78) | @Inject
method supports (line 83) | @Override
method getToken (line 88) | @Override
method validateSecret (line 112) | private boolean validateSecret(Secret secret) {
method systemSupports (line 126) | private boolean systemSupports(URI repoUri) {
method toConfigList (line 130) | private static List<MappingAuthConfig> toConfigList(OauthTokenConfig...
FILE: common/src/main/java/com/walmartlabs/concord/common/ConfigurationUtils.java
class ConfigurationUtils (line 25) | public final class ConfigurationUtils {
method has (line 27) | @SuppressWarnings("unchecked")
method get (line 49) | public static Object get(Map<String, Object> m, String... path) {
method get (line 54) | @SuppressWarnings("unchecked")
method set (line 80) | @SuppressWarnings("unchecked")
method delete (line 95) | @SuppressWarnings("unchecked")
method merge (line 110) | @SuppressWarnings("unchecked")
method deepMerge (line 125) | @SuppressWarnings("unchecked")
method deepMerge (line 148) | @SafeVarargs
method toNested (line 161) | public static Map<String, Object> toNested(String k, Object v) {
method deepEquals (line 183) | @SuppressWarnings("rawtypes")
method distinct (line 198) | @SafeVarargs
method equals (line 213) | private static boolean equals(Map<?, ?> a, Map<?, ?> b) {
method equals (line 229) | private static boolean equals(Collection<?> a, Collection<?> b) {
method isNestedKey (line 247) | public static boolean isNestedKey(String key) {
method ConfigurationUtils (line 251) | private ConfigurationUtils() {
FILE: common/src/main/java/com/walmartlabs/concord/common/CycleChecker.java
class CycleChecker (line 25) | public final class CycleChecker {
class CheckResult (line 27) | public static class CheckResult {
method CheckResult (line 32) | private CheckResult(boolean hasCycle, String node1, String node2) {
method noCycle (line 38) | public static CheckResult noCycle() {
method cycle (line 42) | public static CheckResult cycle(String node1, String node2) {
method isHasCycle (line 46) | public boolean isHasCycle() {
method getNode1 (line 50) | public String getNode1() {
method getNode2 (line 54) | public String getNode2() {
method toString (line 58) | @Override
method check (line 64) | public static CheckResult check(Map<String, Object> m) {
method check (line 68) | public static CheckResult check(String rootName, Map<String, Object> m) {
method hasCycle (line 73) | private static CheckResult hasCycle(N node, Deque<N> visited) {
method find (line 94) | private static N find(Collection<N> s, N n) {
method getNeighbours (line 104) | @SuppressWarnings("unchecked")
class N (line 124) | private static class N {
method N (line 128) | public N(String path, Object object) {
method getPath (line 133) | public String getPath() {
method getObject (line 137) | public Object getObject() {
method equals (line 141) | @Override
method hashCode (line 149) | @Override
method toString (line 154) | @Override
method CycleChecker (line 160) | private CycleChecker() {
FILE: common/src/main/java/com/walmartlabs/concord/common/DateTimeUtils.java
class DateTimeUtils (line 26) | public final class DateTimeUtils {
method toIsoString (line 34) | public static String toIsoString(OffsetDateTime t) {
method fromIsoString (line 42) | public static OffsetDateTime fromIsoString(CharSequence text) {
method DateTimeUtils (line 46) | private DateTimeUtils() {
FILE: common/src/main/java/com/walmartlabs/concord/common/DockerProcessBuilder.java
class DockerProcessBuilder (line 36) | public class DockerProcessBuilder {
method from (line 38) | public static DockerProcessBuilder from(UUID txId, DockerContainerSpec...
method from (line 73) | public static DockerProcessBuilder from(Context ctx, DockerContainerSp...
method DockerProcessBuilder (line 127) | public DockerProcessBuilder(String image) {
method build (line 144) | public DockerProcess build() throws IOException {
method buildCmd (line 154) | private String[] buildCmd() throws IOException {
method buildDockerCmd (line 162) | private String buildDockerCmd() throws IOException {
method cpu (line 262) | public DockerProcessBuilder cpu(String cpu) {
method memory (line 267) | public DockerProcessBuilder memory(String memory) {
method stdOutFilePath (line 272) | public DockerProcessBuilder stdOutFilePath(String stdOutFilePath) {
method name (line 277) | public DockerProcessBuilder name(String name) {
method user (line 282) | public DockerProcessBuilder user(String user) {
method labels (line 287) | public DockerProcessBuilder labels(Map<String, String> labels) {
method addLabel (line 292) | public DockerProcessBuilder addLabel(String k, String v) {
method debug (line 300) | public DockerProcessBuilder debug(boolean debug) {
method workdir (line 305) | public DockerProcessBuilder workdir(String workdir) {
method volumes (line 310) | public DockerProcessBuilder volumes(Collection<String> volumes) {
method volume (line 315) | public DockerProcessBuilder volume(String spec) {
method volume (line 320) | public DockerProcessBuilder volume(String hostSrc, String containerDes...
method volume (line 325) | public DockerProcessBuilder volume(String hostSrc, String containerDes...
method cleanup (line 330) | public DockerProcessBuilder cleanup(boolean cleanup) {
method args (line 335) | public DockerProcessBuilder args(List<String> args) {
method arg (line 344) | public DockerProcessBuilder arg(String v) {
method arg (line 349) | public DockerProcessBuilder arg(String k, String v) {
method env (line 355) | public DockerProcessBuilder env(Map<String, String> env) {
method envFile (line 360) | public DockerProcessBuilder envFile(String envFile) {
method entryPoint (line 365) | public DockerProcessBuilder entryPoint(String entryPoint) {
method forcePull (line 370) | public DockerProcessBuilder forcePull(boolean forcePull) {
method useHostNetwork (line 375) | public DockerProcessBuilder useHostNetwork(boolean useHostNetwork) {
method options (line 380) | public DockerProcessBuilder options(List<Map.Entry<String, String>> op...
method option (line 385) | public DockerProcessBuilder option(String k, String v) {
method redirectErrorStream (line 390) | public DockerProcessBuilder redirectErrorStream(boolean redirectErrorS...
method useContainerUser (line 395) | public DockerProcessBuilder useContainerUser(boolean useContainerUser) {
method q (line 400) | private static String q(String s) {
method env (line 408) | private static String env(String k, String defaultValue) {
class DockerOptionsBuilder (line 413) | public static class DockerOptionsBuilder {
method etcHost (line 417) | public DockerOptionsBuilder etcHost(String host) {
method build (line 422) | public List<Map.Entry<String, String>> build() {
class DockerProcess (line 427) | public static class DockerProcess implements AutoCloseable {
method DockerProcess (line 433) | public DockerProcess(String[] cmd, boolean redirectErrorStream, List...
method start (line 439) | public Process start() throws IOException {
method cmd (line 445) | public String[] cmd() {
method close (line 449) | @Override
FILE: common/src/main/java/com/walmartlabs/concord/common/DynamicTaskRegistry.java
type DynamicTaskRegistry (line 25) | public interface DynamicTaskRegistry {
method getByKey (line 27) | Task getByKey(String key);
method register (line 29) | void register(Class<? extends Task> c);
FILE: common/src/main/java/com/walmartlabs/concord/common/ExceptionUtils.java
class ExceptionUtils (line 27) | public final class ExceptionUtils {
method getExceptionList (line 29) | public static List<Throwable> getExceptionList(Throwable e) {
method findLastException (line 38) | @SuppressWarnings("unchecked")
method ExceptionUtils (line 52) | private ExceptionUtils() {
FILE: common/src/main/java/com/walmartlabs/concord/common/ExternalAuthToken.java
type ExternalAuthToken (line 33) | @JsonDeserialize(as = ImmutableSimpleToken.class)
method authId (line 36) | @Nullable
method token (line 40) | @JsonProperty("token")
method username (line 43) | @Nullable
method expiresAt (line 47) | @Nullable
method secondsUntilExpiration (line 53) | @Value.Default
type SimpleToken (line 67) | @Value.Immutable
method builder (line 70) | static ImmutableSimpleToken.Builder builder() {
type StaticToken (line 78) | @Value.Immutable
method expiresAt (line 82) | @Value.Default
method builder (line 89) | static ImmutableStaticToken.Builder builder() {
FILE: common/src/main/java/com/walmartlabs/concord/common/FileVisitor.java
type FileVisitor (line 26) | public interface FileVisitor {
method visit (line 28) | void visit(Path sourceFile, Path dstFile) throws IOException;
FILE: common/src/main/java/com/walmartlabs/concord/common/GrepUtils.java
class GrepUtils (line 27) | public final class GrepUtils {
method grep (line 29) | public static List<String> grep(String pattern, byte[] ab) throws IOEx...
method grep (line 33) | public static List<String> grep(String pattern, InputStream in) throws...
method GrepUtils (line 46) | private GrepUtils() {
FILE: common/src/main/java/com/walmartlabs/concord/common/IOUtils.java
class IOUtils (line 34) | @Deprecated
method tempFile (line 52) | @Deprecated
method createTempFile (line 60) | @Deprecated
method createTempDir (line 68) | @Deprecated
method tempDir (line 76) | @Deprecated
method createTempDir (line 84) | @Deprecated
method zipFile (line 92) | @Deprecated
method zip (line 100) | @Deprecated
method zip (line 108) | @Deprecated
method unzip (line 116) | @Deprecated
method unzip (line 124) | @Deprecated
method unzip (line 132) | @Deprecated
method unzip (line 140) | @Deprecated
method unzip (line 148) | @Deprecated
method copy (line 156) | @Deprecated
method copy (line 168) | @Deprecated
method copy (line 176) | @Deprecated
method copy (line 184) | @Deprecated
method copy (line 192) | @Deprecated
method copy (line 200) | @Deprecated
method grep (line 208) | @Deprecated
method grep (line 216) | @Deprecated
method deleteRecursively (line 224) | @Deprecated
method toByteArray (line 232) | @Deprecated
method delete (line 242) | @Deprecated
method assertInPath (line 250) | @Deprecated
method IOUtils (line 255) | private IOUtils() {
FILE: common/src/main/java/com/walmartlabs/concord/common/LogUtils.java
class LogUtils (line 36) | public final class LogUtils {
type LogLevel (line 43) | public enum LogLevel {
method formatMessage (line 50) | public static String formatMessage(LogLevel level, String log, Object....
method withMdc (line 60) | public static Runnable withMdc(Runnable runnable) {
method withMdc (line 76) | public static <T> Callable<T> withMdc(Callable<T> callable) {
method formatException (line 92) | private static String formatException(Throwable t) {
method LogUtils (line 98) | private LogUtils() {
FILE: common/src/main/java/com/walmartlabs/concord/common/Matcher.java
class Matcher (line 28) | public final class Matcher {
method matches (line 30) | public static boolean matches(Object data, Object conditions) {
method matchAny (line 34) | public static boolean matchAny(Object condition, Collection<Object> no...
method matchAny (line 45) | public static <T> boolean matchAny(Collection<T> conditions, T data) {
method compareNodes (line 56) | @SuppressWarnings({"unchecked", "rawtypes"})
method normalizeNull (line 83) | private static Object normalizeNull(Object data, Object conditions) {
method compareObjectNodes (line 95) | private static boolean compareObjectNodes(Map<String, Object> data, Ma...
method compareStringValues (line 110) | private static boolean compareStringValues(String value, String condit...
method compareArrayNodes (line 114) | private static boolean compareArrayNodes(Collection<Object> dataElemen...
method compareValues (line 133) | private static boolean compareValues(Object dataValue, Object conditio...
method Matcher (line 137) | private Matcher() {
FILE: common/src/main/java/com/walmartlabs/concord/common/MemoSupplier.java
class MemoSupplier (line 28) | public class MemoSupplier<T> implements Supplier<T> {
method memo (line 30) | public static <T> Supplier<T> memo(Supplier<T> delegate) {
method MemoSupplier (line 40) | public MemoSupplier(Supplier<T> delegate) {
method get (line 44) | @Override
FILE: common/src/main/java/com/walmartlabs/concord/common/ObjectInputStreamWithClassLoader.java
class ObjectInputStreamWithClassLoader (line 33) | public class ObjectInputStreamWithClassLoader extends ObjectInputStream {
method ObjectInputStreamWithClassLoader (line 37) | public ObjectInputStreamWithClassLoader(InputStream in, ClassLoader cl...
method resolveClass (line 42) | @Override
method resolveProxyClass (line 52) | @Override
FILE: common/src/main/java/com/walmartlabs/concord/common/ObjectMapperProvider.java
class ObjectMapperProvider (line 35) | public class ObjectMapperProvider implements Provider<ObjectMapper> {
method get (line 39) | @Override
FILE: common/src/main/java/com/walmartlabs/concord/common/PathUtils.java
class PathUtils (line 34) | public final class PathUtils {
method tempFile (line 52) | public static TemporaryPath tempFile(String prefix, String suffix) thr...
method createTempFile (line 56) | public static Path createTempFile(String prefix, String suffix) throws...
method createTempDir (line 60) | public static Path createTempDir(Path dir, String prefix) throws IOExc...
method tempDir (line 64) | public static TemporaryPath tempDir(String prefix) throws IOException {
method createTempDir (line 68) | public static Path createTempDir(String prefix) throws IOException {
method deleteRecursively (line 72) | public static boolean deleteRecursively(Path p) throws IOException {
method delete (line 99) | public static void delete(File f) {
method assertInPath (line 118) | public static Path assertInPath(@NotNull Path parent, @NotNull String ...
method getEnv (line 129) | private static String getEnv(String key, String defaultValue) {
method PathUtils (line 137) | private PathUtils() {
method copy (line 140) | public static void copy(Path src, Path dst) throws IOException {
method copy (line 144) | public static void copy(Path src, Path dst, CopyOption... options) thr...
method copy (line 148) | public static void copy(Path src, Path dst, String ignorePattern, Copy...
method copy (line 152) | public static void copy(Path src, Path dst, String skipContents, FileV...
method copy (line 156) | public static void copy(Path src, Path dst, List<String> skipContents,...
method _copy (line 160) | private static void _copy(Path root, Path src, Path dst, List<String> ...
method toList (line 213) | private static List<String> toList(String entry) {
method anyMatch (line 221) | private static boolean anyMatch(String what, List<String> patterns) {
FILE: common/src/main/java/com/walmartlabs/concord/common/Posix.java
class Posix (line 28) | public final class Posix {
method unixMode (line 32) | public static int unixMode(Set<PosixFilePermission> s) {
method posix (line 72) | public static Set<PosixFilePermission> posix(int unixMode) {
method Posix (line 110) | private Posix() {
FILE: common/src/main/java/com/walmartlabs/concord/common/PrivilegedAction.java
class PrivilegedAction (line 25) | public final class PrivilegedAction {
method getCurrentDomain (line 29) | public static String getCurrentDomain() {
method perform (line 33) | public static <T> T perform(String domain, IOAction<T> f) throws IOExc...
type IOAction (line 47) | public interface IOAction<T> {
method call (line 49) | T call() throws IOException;
method PrivilegedAction (line 52) | private PrivilegedAction() {
FILE: common/src/main/java/com/walmartlabs/concord/common/ReflectionUtils.java
class ReflectionUtils (line 25) | public final class ReflectionUtils {
method findAnnotation (line 27) | public static <A extends Annotation> A findAnnotation(Class<?> clazz, ...
method ReflectionUtils (line 48) | private ReflectionUtils() {
FILE: common/src/main/java/com/walmartlabs/concord/common/StringUtils.java
class StringUtils (line 23) | public final class StringUtils {
method abbreviate (line 25) | public static String abbreviate(String str, int maxWidth) {
method StringUtils (line 41) | private StringUtils() {
FILE: common/src/main/java/com/walmartlabs/concord/common/TemporaryPath.java
class TemporaryPath (line 30) | public class TemporaryPath implements AutoCloseable {
method TemporaryPath (line 36) | public TemporaryPath(Path path) {
method path (line 40) | public Path path() {
method close (line 44) | @Override
FILE: common/src/main/java/com/walmartlabs/concord/common/ThreadLocalStack.java
class ThreadLocalStack (line 26) | public class ThreadLocalStack<T> {
method push (line 30) | public void push(T value) {
method pop (line 39) | public T pop() {
method peek (line 52) | public T peek() {
FILE: common/src/main/java/com/walmartlabs/concord/common/ToStringHelper.java
class ToStringHelper (line 25) | public class ToStringHelper {
method prefix (line 27) | public static ToStringHelper prefix(String prefix) {
method ToStringHelper (line 35) | public ToStringHelper(String prefix) {
method add (line 39) | public ToStringHelper add(String name, Object value) {
method add (line 43) | public ToStringHelper add(String name, Number value) {
method add (line 47) | public ToStringHelper add(String name, String value) {
method add (line 55) | public ToStringHelper add(String name, Collection<?> value) {
method toString (line 63) | public String toString() {
method addNameValue (line 72) | private ToStringHelper addNameValue(String name, Object value) {
FILE: common/src/main/java/com/walmartlabs/concord/common/TruncBufferedReader.java
class TruncBufferedReader (line 27) | public class TruncBufferedReader extends BufferedReader {
method TruncBufferedReader (line 36) | public TruncBufferedReader(Reader reader) {
method TruncBufferedReader (line 40) | public TruncBufferedReader(Reader reader, int maxLineLen) {
method readLine (line 50) | @Override
method skipTillEndOfLine (line 80) | private int skipTillEndOfLine(int currentCharVal) throws IOException {
FILE: common/src/main/java/com/walmartlabs/concord/common/ZipUtils.java
class ZipUtils (line 35) | public final class ZipUtils {
method zipFile (line 37) | public static void zipFile(ZipArchiveOutputStream zip, Path src, Strin...
method zip (line 55) | public static void zip(ZipArchiveOutputStream zip, Path srcDir, String...
method zip (line 59) | public static void zip(ZipArchiveOutputStream zip, String dstPrefix, P...
method unzip (line 92) | public static void unzip(InputStream in, Path targetDir, CopyOption......
method unzip (line 99) | public static void unzip(Path in, Path targetDir, CopyOption... option...
method unzip (line 103) | public static void unzip(Path in, Path targetDir, boolean skipExisting...
method unzip (line 107) | public static void unzip(InputStream in, Path targetDir, boolean skipE...
method unzip (line 114) | public static void unzip(Path in, Path targetDir, boolean skipExisting...
method matches (line 161) | private static boolean matches(Path p, String... filters) {
method ZipUtils (line 171) | private ZipUtils() {
FILE: common/src/main/java/com/walmartlabs/concord/common/cfg/MappingAuthConfig.java
type MappingAuthConfig (line 34) | public interface MappingAuthConfig {
method id (line 39) | String id();
method urlPattern (line 42) | Pattern urlPattern();
method username (line 49) | @Nullable
method canHandle (line 59) | default boolean canHandle(URI repo) {
method assertBaseUrlPattern (line 67) | static Pattern assertBaseUrlPattern(String pattern) {
class OauthAuthConfig (line 73) | @Value.Immutable
method token (line 76) | public abstract String token();
method builder (line 78) | public static ImmutableOauthAuthConfig.Builder builder() {
type ConcordServerAuthConfig (line 83) | @Value.Immutable
method builder (line 86) | static ImmutableConcordServerAuthConfig.Builder builder() {
FILE: common/src/main/java/com/walmartlabs/concord/common/cfg/OauthTokenConfig.java
type OauthTokenConfig (line 26) | public interface OauthTokenConfig {
method getOauthToken (line 28) | Optional<String> getOauthToken();
method getOauthUsername (line 30) | Optional<String> getOauthUsername();
method getOauthUrlPattern (line 32) | Optional<String> getOauthUrlPattern();
method getSystemAuth (line 34) | List<MappingAuthConfig> getSystemAuth();
FILE: common/src/main/java/com/walmartlabs/concord/common/form/ConcordFormFields.java
class ConcordFormFields (line 26) | public final class ConcordFormFields {
class FileField (line 28) | public static final class FileField {
method FileField (line 32) | private FileField() {
class DateField (line 36) | public static final class DateField {
method DateField (line 40) | private DateField() {
class DateTimeField (line 44) | public static final class DateTimeField {
method DateTimeField (line 48) | private DateTimeField() {
class DateFieldOptions (line 52) | public static final class DateFieldOptions {
method DateFieldOptions (line 55) | private DateFieldOptions() {
class FieldOptions (line 58) | public static final class FieldOptions {
method FieldOptions (line 65) | private FieldOptions() {
method ConcordFormFields (line 69) | private ConcordFormFields() {
FILE: common/src/main/java/com/walmartlabs/concord/common/form/ConcordFormValidator.java
class ConcordFormValidator (line 34) | public class ConcordFormValidator extends DefaultFormValidator {
method ConcordFormValidator (line 36) | public ConcordFormValidator() {
method ConcordFormValidator (line 40) | public ConcordFormValidator(FormValidatorLocale locale) {
method createValidators (line 44) | private static Collection<FieldValidator> createValidators(FormValidat...
class FileFieldValidator (line 55) | public static final class FileFieldValidator implements DefaultFormVal...
method allowedTypes (line 59) | @Override
method validate (line 64) | @Override
class StringFieldValidator (line 76) | public static final class StringFieldValidator implements DefaultFormV...
method StringFieldValidator (line 80) | public StringFieldValidator(FormValidatorLocale locale) {
method allowedTypes (line 84) | @Override
method validate (line 89) | @Override
class DateFieldValidator (line 107) | public static final class DateFieldValidator implements DefaultFormVal...
method allowedTypes (line 111) | @Override
method validate (line 116) | @Override
FILE: common/src/main/java/com/walmartlabs/concord/common/form/ConcordFormValidatorLocale.java
type ConcordFormValidatorLocale (line 26) | public interface ConcordFormValidatorLocale extends FormValidatorLocale {
method expectedDate (line 37) | String expectedDate(String formId, FormField field, Integer idx, Objec...
FILE: common/src/main/java/com/walmartlabs/concord/common/form/DefaultConcordFormValidatorLocale.java
class DefaultConcordFormValidatorLocale (line 26) | public class DefaultConcordFormValidatorLocale extends DefaultFormValida...
method expectedDate (line 28) | @Override
FILE: common/src/main/java/com/walmartlabs/concord/common/secret/BinaryDataSecret.java
class BinaryDataSecret (line 25) | public class BinaryDataSecret implements Secret {
method BinaryDataSecret (line 31) | public BinaryDataSecret(byte[] data) { // NOSONAR
method getData (line 35) | public byte[] getData() {
FILE: common/src/main/java/com/walmartlabs/concord/common/secret/HashAlgorithm.java
type HashAlgorithm (line 25) | public enum HashAlgorithm {
method HashAlgorithm (line 31) | HashAlgorithm(String name) {
method getName (line 35) | public String getName() {
method getByName (line 39) | public static HashAlgorithm getByName(String name) {
FILE: common/src/main/java/com/walmartlabs/concord/common/secret/KeyPair.java
class KeyPair (line 27) | public class KeyPair implements Secret {
method deserialize (line 31) | public static KeyPair deserialize(byte[] input) {
method serialize (line 49) | public static byte[] serialize(KeyPair k) {
method assertKeyLength (line 66) | private static int assertKeyLength(int n) {
method KeyPair (line 76) | public KeyPair(byte[] publicKey, byte[] privateKey) { // NOSONAR
method getPublicKey (line 81) | public byte[] getPublicKey() {
method getPrivateKey (line 85) | public byte[] getPrivateKey() {
FILE: common/src/main/java/com/walmartlabs/concord/common/secret/SecretEncryptedByType.java
type SecretEncryptedByType (line 24) | public enum SecretEncryptedByType {
FILE: common/src/main/java/com/walmartlabs/concord/common/secret/SecretUtils.java
class SecretUtils (line 35) | public final class SecretUtils {
method encrypt (line 37) | public static byte[] encrypt(byte[] input, byte[] password, byte[] sal...
method encrypt (line 41) | public static byte[] encrypt(byte[] input, byte[] password, byte[] sal...
method encrypt (line 49) | public static InputStream encrypt(InputStream input, byte[] password, ...
method encrypt (line 53) | public static InputStream encrypt(InputStream input, byte[] password, ...
method decrypt (line 62) | public static byte[] decrypt(byte[] input, byte[] password, byte[] sal...
method decrypt (line 66) | public static byte[] decrypt(byte[] input, byte[] password, byte[] sal...
method decrypt (line 79) | public static InputStream decrypt(InputStream input, byte[] password, ...
method decrypt (line 83) | public static InputStream decrypt(InputStream input, byte[] password, ...
method hash (line 94) | public static byte[] hash(byte[] in, byte[] salt, HashAlgorithm hashAl...
method init (line 100) | private static Cipher init(byte[] password, byte[] salt, int mode, Has...
method generateSalt (line 110) | public static byte[] generateSalt(int size) {
method SecretUtils (line 117) | private SecretUtils() {
FILE: common/src/main/java/com/walmartlabs/concord/common/secret/UsernamePassword.java
class UsernamePassword (line 30) | public class UsernamePassword implements Secret {
method serialize (line 34) | public static byte[] serialize(UsernamePassword input) {
method deserialize (line 54) | public static UsernamePassword deserialize(byte[] input) {
method UsernamePassword (line 75) | public UsernamePassword(String username, char[] password) { // NOSONAR
method getUsername (line 80) | public String getUsername() {
method getPassword (line 84) | public char[] getPassword() {
FILE: common/src/test/java/com/walmartlabs/concord/common/AuthTokenProviderTest.java
class AuthTokenProviderTest (line 47) | @ExtendWith(MockitoExtension.class)
method testSingleOauth (line 67) | @Test
method testSystemAuth (line 79) | @Test
method executeWithoutSecret (line 95) | void executeWithoutSecret(OauthTokenConfig cfg) {
method testUsernamePassword (line 115) | @Test
method testWithSecret (line 123) | @Test
method testWithSecretNoDefault (line 132) | @Test
method executeWithSecret (line 139) | private void executeWithSecret(TestOauthTokenConfig cfg) {
type TestOauthTokenConfig (line 149) | @Value.Immutable
method builder (line 151) | static ImmutableTestOauthTokenConfig.Builder builder() {
FILE: common/src/test/java/com/walmartlabs/concord/common/ConfigurationUtilsTest.java
class ConfigurationUtilsTest (line 31) | public class ConfigurationUtilsTest {
method deepMergeTest (line 33) | @Test
method deepEqualsTest (line 49) | @Test
FILE: common/src/test/java/com/walmartlabs/concord/common/CycleCheckerTest.java
class CycleCheckerTest (line 34) | public class CycleCheckerTest {
method test1 (line 40) | @Test
method test2 (line 60) | @Test
method test3 (line 74) | @Test
method test4 (line 90) | @Test
method test5 (line 107) | @Test
FILE: common/src/test/java/com/walmartlabs/concord/common/DateTimeUtilsTest.java
class DateTimeUtilsTest (line 33) | public class DateTimeUtilsTest {
method test (line 35) | @Test
FILE: common/src/test/java/com/walmartlabs/concord/common/ExternalAuthTokenTest.java
class ExternalAuthTokenTest (line 33) | class ExternalAuthTokenTest {
method testExpiration (line 38) | @Test
method testStaticExpiration (line 48) | @Test
method testMinimalDeserialization (line 58) | @Test
method testFullDeserialization (line 70) | @Test
method testFullDeserializationMillis (line 87) | @Test
method testDateSerializationSecondsToMillis (line 104) | @Test
method testDateSerializationMillis (line 114) | @Test
FILE: common/src/test/java/com/walmartlabs/concord/common/LogUtilsTest.java
class LogUtilsTest (line 25) | public class LogUtilsTest {
method test (line 27) | @Test
FILE: common/src/test/java/com/walmartlabs/concord/common/MatcherTest.java
class MatcherTest (line 33) | public class MatcherTest {
method testAllJsonTypes (line 35) | @Test
method testNoConditions (line 57) | @Test
method testNotMatched (line 68) | @Test
method testTypesMismatch (line 85) | @Test
method testObjectsOfObjects (line 97) | @Test
method testPartialMatch (line 115) | @Test
method testPartialNotMatch (line 127) | @Test
method testMatchEmptyCondition (line 139) | @Test
method testMatchNullCondition (line 168) | @Test
method testNulls (line 205) | @Test
method testOr (line 241) | @Test
method testArrayMatch (line 253) | @Test
FILE: common/src/test/java/com/walmartlabs/concord/common/PathUtilsTest.java
class PathUtilsTest (line 33) | public class PathUtilsTest {
method testResolveNonChild (line 35) | @Test
method testResolveValidChild (line 42) | @Test
method testCopy (line 53) | @Test
method testSymlinks (line 72) | @Test
method testExternalSymlinks (line 99) | @Test
FILE: common/src/test/java/com/walmartlabs/concord/common/StringUtilsTest.java
class StringUtilsTest (line 28) | public class StringUtilsTest {
method test (line 30) | @Test
FILE: common/src/test/java/com/walmartlabs/concord/common/TruncBufferedReaderTest.java
class TruncBufferedReaderTest (line 34) | public class TruncBufferedReaderTest {
method testEmpty (line 36) | @Test
method test1 (line 44) | @Test
method test2 (line 53) | @Test
method test3 (line 62) | @Test
method test4 (line 71) | @Test
method test5 (line 81) | @Test
method test6 (line 91) | @Test
method test7 (line 103) | @Test
method readLines (line 115) | private List<String> readLines(String str) throws IOException {
method readLines (line 119) | private List<String> readLines(String str, int maxLineLength) throws I...
FILE: common/src/test/java/com/walmartlabs/concord/common/ZipUtilsTest.java
class ZipUtilsTest (line 31) | public class ZipUtilsTest {
method testZipUnzip (line 33) | @Test
FILE: config/src/main/java/com/walmartlabs/concord/config/ConfigExtractor.java
type ConfigExtractor (line 24) | interface ConfigExtractor {
method extractValue (line 26) | Object extractValue(com.typesafe.config.Config config, String path);
method getMatchingClasses (line 28) | Class<?>[] getMatchingClasses();
FILE: config/src/main/java/com/walmartlabs/concord/config/ConfigExtractors.java
type ConfigExtractors (line 35) | enum ConfigExtractors implements ConfigExtractor {
method extractValue (line 38) | @Override
method extractValue (line 44) | @Override
method extractValue (line 50) | @Override
method extractValue (line 56) | @Override
method extractValue (line 62) | @Override
method extractValue (line 68) | @Override
method extractValue (line 74) | @Override
method extractValue (line 80) | @Override
method extractValue (line 86) | @Override
method extractValue (line 92) | @Override
method extractValue (line 98) | @Override
method extractValue (line 104) | @Override
method extractValue (line 110) | @Override
method extractValue (line 116) | @Override
method extractValue (line 122) | @Override
method extractValue (line 128) | @Override
method extractValue (line 134) | @Override
method ConfigExtractors (line 151) | ConfigExtractors(Class<?>... matchingClasses) {
method getMatchingClasses (line 155) | @Override
method extractConfigValue (line 160) | static Optional<Object> extractConfigValue(Config config, Class<?> par...
FILE: config/src/main/java/com/walmartlabs/concord/config/ConfigModule.java
class ConfigModule (line 45) | public class ConfigModule extends AbstractModule {
method ConfigModule (line 56) | public ConfigModule(String packageToScan, com.typesafe.config.Config c...
method load (line 71) | public static com.typesafe.config.Config load(String name) {
method configure (line 91) | @Override
method bindParameters (line 112) | private void bindParameters(Parameter[] params) {
method bindValue (line 123) | private void bindValue(Class<?> paramClass, Type paramType, Config ann...
method getConfigValue (line 147) | private Object getConfigValue(Class<?> paramClass, Type paramType, Str...
method isNullable (line 182) | private static boolean isNullable(Annotation[] annotations) {
FILE: config/src/main/java/com/walmartlabs/concord/config/ListExtractor.java
type ListExtractor (line 27) | public interface ListExtractor {
method extractListValue (line 29) | List<?> extractListValue(com.typesafe.config.Config config, String path);
method getMatchingParameterizedType (line 31) | Type getMatchingParameterizedType();
FILE: config/src/main/java/com/walmartlabs/concord/config/ListExtractors.java
type ListExtractors (line 35) | public enum ListExtractors implements ListExtractor {
method extractListValue (line 37) | @Override
method extractListValue (line 43) | @Override
method extractListValue (line 49) | @Override
method extractListValue (line 55) | @Override
method extractListValue (line 61) | @Override
method extractListValue (line 67) | @Override
method extractListValue (line 73) | @Override
method extractListValue (line 79) | @Override
method extractListValue (line 85) | @Override
method extractListValue (line 91) | @Override
method extractListValue (line 97) | @Override
method ListExtractors (line 112) | ListExtractors(Class<?> parameterizedTypeClass) {
method getMatchingParameterizedType (line 116) | @Override
method extractConfigListValue (line 121) | static Optional<List<?>> extractConfigListValue(Config config, Type li...
FILE: console2/cfg.d.ts
type ConcordEnvironment (line 5) | interface ConcordEnvironment {
type TopBarMeta (line 16) | interface TopBarMeta {
type SystemLinks (line 20) | type SystemLinks = LinkMeta[];
type ExtraProcessMenuLinks (line 22) | type ExtraProcessMenuLinks = ExtraProcessMenuLink[];
type LinkMeta (line 24) | interface LinkMeta {
type LoginConfiguration (line 30) | interface LoginConfiguration {
type ExtraProcessMenuLink (line 35) | interface ExtraProcessMenuLink {
type CustomResources (line 42) | interface CustomResources {
type CustomResource (line 46) | interface CustomResource {
type Window (line 56) | interface Window {
FILE: console2/react-json-view.d.ts
type ReactJsonViewProps (line 5) | interface ReactJsonViewProps {
type OnCopyProps (line 130) | interface OnCopyProps {
type CollapsedFieldProps (line 145) | interface CollapsedFieldProps {
type InteractionProps (line 164) | interface InteractionProps {
type OnSelectProps (line 191) | interface OnSelectProps {
type ThemeObject (line 212) | interface ThemeObject {
type ThemeKeys (line 231) | type ThemeKeys =
FILE: console2/src/api/audit/index.ts
type AuditObject (line 23) | enum AuditObject {
type AuditAction (line 36) | enum AuditAction {
type AuditLogFilter (line 44) | interface AuditLogFilter {
type AuditLogEntry (line 66) | interface AuditLogEntry {
type PaginatedAuditLogEntries (line 74) | interface PaginatedAuditLogEntries {
FILE: console2/src/api/common.ts
type ConcordId (line 21) | type ConcordId = string;
type ConcordKey (line 22) | type ConcordKey = string;
type Owner (line 24) | interface Owner {
type RequestErrorData (line 29) | interface RequestErrorData {
type RequestError (line 37) | type RequestError = RequestErrorData | null;
type QueryParams (line 188) | type QueryParams = { [key: string]: string };
type QueryMultiParams (line 261) | type QueryMultiParams = { [key: string]: any };
type EntityOwner (line 318) | interface EntityOwner {
type OperationResult (line 325) | enum OperationResult {
type GenericOperationResult (line 333) | interface GenericOperationResult {
type EntityType (line 338) | enum EntityType {
FILE: console2/src/api/noderoster/index.ts
type HostEntry (line 31) | interface HostEntry {
type PaginatedHostEntry (line 38) | interface PaginatedHostEntry {
type HostFilter (line 43) | interface HostFilter {
type HostArtifact (line 49) | interface HostArtifact {
type PaginatedHostArtifacts (line 54) | interface PaginatedHostArtifacts {
type HostProcessEntry (line 59) | interface HostProcessEntry {
type PaginatedHostProcessEntry (line 84) | interface PaginatedHostProcessEntry {
type HostsInclude (line 93) | type HostsInclude = 'artifacts';
FILE: console2/src/api/org/index.ts
type OrganizationVisibility (line 31) | enum OrganizationVisibility {
type SearchType (line 36) | type SearchType = 'substring' | 'equals';
type SearchValueType (line 38) | type SearchValueType = 'string' | 'boolean';
type SearchOption (line 40) | interface SearchOption {
type RenderType (line 45) | enum RenderType {
type ColumnDefinition (line 87) | interface ColumnDefinition {
type OrganizationEntryMetaUI (line 100) | interface OrganizationEntryMetaUI {
type CheckResult (line 104) | interface CheckResult {
type OrganizationEntryMeta (line 108) | interface OrganizationEntryMeta {
type OrganizationEntry (line 112) | interface OrganizationEntry {
type ResourceAccessLevel (line 120) | enum ResourceAccessLevel {
type ResourceAccessEntry (line 126) | interface ResourceAccessEntry {
type OrganizationOperationResult (line 132) | interface OrganizationOperationResult {
type PaginatedOrganizationEntries (line 138) | interface PaginatedOrganizationEntries {
FILE: console2/src/api/org/jsonstore/index.ts
type StorageVisibility (line 32) | enum StorageVisibility {
type StorageEntry (line 37) | interface StorageEntry {
type StorageCapacity (line 52) | interface StorageCapacity {
type StorageOperationResult (line 57) | interface StorageOperationResult {
type PaginatedStorageEntries (line 63) | interface PaginatedStorageEntries {
type Pagination (line 68) | interface Pagination {
type StorageDataEntry (line 73) | type StorageDataEntry = string;
type PaginatedStorageDataEntries (line 75) | interface PaginatedStorageDataEntries {
type StorageQueryEntry (line 80) | interface StorageQueryEntry {
type PaginatedStorageQueryEntries (line 85) | interface PaginatedStorageQueryEntries {
FILE: console2/src/api/org/project/index.ts
type ProjectVisibility (line 34) | enum ProjectVisibility {
type ProjectEntryMetaUI (line 39) | interface ProjectEntryMetaUI {
type ProjectEntryMeta (line 44) | interface ProjectEntryMeta {
type RawPayloadMode (line 48) | enum RawPayloadMode {
type OutVariablesMode (line 56) | enum OutVariablesMode {
type ProcessExecMode (line 64) | enum ProcessExecMode {
type ProjectEntry (line 78) | interface ProjectEntry {
type NewProjectEntry (line 99) | interface NewProjectEntry {
type UpdateProjectEntry (line 105) | interface UpdateProjectEntry {
type PaginatedProjectEntries (line 117) | interface PaginatedProjectEntries {
type KVCapacity (line 122) | interface KVCapacity {
type ProjectOperationResult (line 167) | interface ProjectOperationResult {
FILE: console2/src/api/org/project/repository/index.ts
type RepositoryMeta (line 30) | interface RepositoryMeta {
type RepositoryEntry (line 35) | interface RepositoryEntry {
type PaginatedRepositoryEntries (line 50) | interface PaginatedRepositoryEntries {
type EditRepositoryEntry (line 55) | interface EditRepositoryEntry {
type TriggerCfg (line 68) | interface TriggerCfg {
type TriggerConditions (line 73) | interface TriggerConditions {
type TriggerEntry (line 78) | interface TriggerEntry {
type RepositoryValidationResponse (line 88) | interface RepositoryValidationResponse {
type TriggerFilter (line 201) | interface TriggerFilter {
FILE: console2/src/api/org/secret/index.ts
type SecretVisibility (line 32) | enum SecretVisibility {
type SecretType (line 37) | enum SecretType {
type SecretTypeExt (line 43) | enum SecretTypeExt {
type SecretEncryptedByType (line 51) | enum SecretEncryptedByType {
type SecretStoreType (line 56) | enum SecretStoreType {
type SecretEntry (line 61) | interface SecretEntry {
type CreateSecretResponse (line 82) | interface CreateSecretResponse extends GenericOperationResult {
type NewSecretEntry (line 88) | interface NewSecretEntry {
type PaginatedSecretEntries (line 104) | interface PaginatedSecretEntries {
type Pagination (line 109) | interface Pagination {
type PublicKeyResponse (line 114) | interface PublicKeyResponse {
FILE: console2/src/api/org/team/index.ts
type TeamEntry (line 33) | interface TeamEntry {
type NewTeamEntry (line 41) | interface NewTeamEntry {
type CreateTeamResponse (line 46) | interface CreateTeamResponse {
type TeamRole (line 113) | enum TeamRole {
type TeamUserEntry (line 119) | interface TeamUserEntry {
type TeamLdapGroupEntry (line 130) | interface TeamLdapGroupEntry {
type MemberType (line 135) | enum MemberType {
type NewTeamUserEntry (line 140) | interface NewTeamUserEntry {
type NewTeamLdapGroupEntry (line 149) | interface NewTeamLdapGroupEntry {
FILE: console2/src/api/process/ansible/index.ts
type SearchFilter (line 24) | interface SearchFilter {
type AnsibleStatus (line 36) | enum AnsibleStatus {
type SortOrder (line 45) | enum SortOrder {
type SortField (line 50) | enum SortField {
type AnsibleHost (line 76) | interface AnsibleHost {
type AnsibleHostListResponse (line 83) | interface AnsibleHostListResponse {
type PaginatedAnsibleHostEntries (line 88) | interface PaginatedAnsibleHostEntries {
type AnsibleEvent (line 95) | interface AnsibleEvent {
type PlaybookInfo (line 109) | interface PlaybookInfo {
type PlayInfo (line 122) | interface PlayInfo {
type TaskInfo (line 133) | interface TaskInfo {
type TaskStats (line 144) | interface TaskStats {
FILE: console2/src/api/process/event/index.ts
type ProcessEventType (line 24) | enum ProcessEventType {
type VariableMapping (line 29) | interface VariableMapping {
type ProcessElementEvent (line 38) | interface ProcessElementEvent {
type ProcessEventData (line 54) | type ProcessEventData = ProcessElementEvent | AnsibleEvent | {};
type ProcessEventFilter (line 56) | interface ProcessEventFilter {
type ProcessEventEntry (line 66) | interface ProcessEventEntry<T extends ProcessEventData> {
FILE: console2/src/api/process/form/index.ts
type FormRunAs (line 23) | interface FormRunAs {
type FormListEntry (line 29) | interface FormListEntry {
type Cardinality (line 36) | enum Cardinality {
type FormFieldType (line 43) | enum FormFieldType {
type FormField (line 53) | interface FormField {
type FormInstanceEntry (line 74) | interface FormInstanceEntry {
type FormSubmitErrors (line 82) | interface FormSubmitErrors {
type FormDataType (line 86) | interface FormDataType {
type FormSubmitResponse (line 90) | interface FormSubmitResponse {
FILE: console2/src/api/process/index.ts
type ProcessStatus (line 26) | enum ProcessStatus {
type ProcessCheckpointEntry (line 106) | interface ProcessCheckpointEntry {
type CheckpointRestoreHistoryEntry (line 112) | interface CheckpointRestoreHistoryEntry {
type ProcessHistoryEntry (line 119) | interface ProcessHistoryEntry {
type WaitType (line 125) | enum WaitType {
type AbstractWaitCondition (line 132) | interface AbstractWaitCondition {
type ProcessWaitCondition (line 137) | interface ProcessWaitCondition extends AbstractWaitCondition {
type ProcessLockCondition (line 141) | interface ProcessLockCondition extends AbstractWaitCondition {
type ProcessSleepCondition (line 147) | interface ProcessSleepCondition extends AbstractWaitCondition {
type WaitCondition (line 151) | type WaitCondition = ProcessWaitCondition | ProcessLockCondition | Proce...
type ProcessWaitEntry (line 153) | interface ProcessWaitEntry {
type ProcessMeta (line 158) | interface ProcessMeta {
type ProcessKind (line 166) | enum ProcessKind {
type ProcessRuntime (line 173) | type ProcessRuntime = 'concord-v1' | 'concord-v2' | string;
type TriggeredByEntry (line 175) | interface TriggeredByEntry {
type TriggerEntry (line 180) | interface TriggerEntry {
type ProcessEntry (line 184) | interface ProcessEntry {
type StartProcessResponse (line 215) | interface StartProcessResponse {
type RestoreProcessResponse (line 220) | interface RestoreProcessResponse {
type ProcessDataInclude (line 257) | type ProcessDataInclude = 'checkpoints' | 'history' | 'childrenIds' | 'c...
type ColumnFilter (line 294) | interface ColumnFilter {
type ProcessFilters (line 300) | interface ProcessFilters {
type PaginatedProcessEntries (line 304) | interface PaginatedProcessEntries {
type DateParam (line 310) | interface DateParam {
type ProcessListQuery (line 315) | interface ProcessListQuery {
FILE: console2/src/api/process/log/fetchLogAsBlobURL.tsx
method start (line 34) | async start(controller: any) {
FILE: console2/src/api/process/log/index.ts
type LogRange (line 23) | interface LogRange {
type LogChunk (line 30) | interface LogChunk {
type SegmentStatus (line 81) | enum SegmentStatus {
type LogSegmentEntry (line 88) | interface LogSegmentEntry {
type PaginatedLogSegmentEntry (line 99) | interface PaginatedLogSegmentEntry {
FILE: console2/src/api/profile/api_token/index.tsx
type TokenEntry (line 23) | interface TokenEntry {
type NewTokenEntry (line 29) | interface NewTokenEntry {
type CreateApiKeyResult (line 33) | interface CreateApiKeyResult {
FILE: console2/src/api/profile/user/index.tsx
type UserInfoTeam (line 24) | interface UserInfoTeam {
type UserInfoEntry (line 30) | interface UserInfoEntry {
FILE: console2/src/api/secret/store/index.ts
type SecretStoreEntry (line 24) | interface SecretStoreEntry {
FILE: console2/src/api/server/index.ts
type VersionResponse (line 23) | interface VersionResponse {
FILE: console2/src/api/service/console/index.ts
type UserResponse (line 25) | interface UserResponse {
type RepositoryTestRequest (line 148) | interface RepositoryTestRequest {
type LdapGroupSearchResult (line 175) | interface LdapGroupSearchResult {
FILE: console2/src/api/service/console/user/index.ts
type UserActivity (line 24) | interface UserActivity {
type ProcessCardEntry (line 28) | interface ProcessCardEntry {
FILE: console2/src/api/service/custom_form/index.ts
type FormSessionResponse (line 23) | interface FormSessionResponse {
FILE: console2/src/api/user/index.ts
type UserType (line 23) | enum UserType {
type UserEntry (line 28) | interface UserEntry {
type PaginatedUserEntries (line 37) | interface PaginatedUserEntries {
FILE: console2/src/components/atoms/ColumnSort/index.tsx
type Props (line 25) | interface Props {
FILE: console2/src/components/atoms/FormikCheckbox/index.tsx
type Props (line 26) | interface Props {
method render (line 31) | render() {
FILE: console2/src/components/atoms/FormikDropdown/index.tsx
method render (line 27) | render() {
FILE: console2/src/components/atoms/FormikFileInput/index.tsx
method render (line 27) | render() {
FILE: console2/src/components/atoms/FormikInput/index.tsx
type ExternalProps (line 26) | interface ExternalProps {
type Props (line 31) | type Props = FormInputProps & ExternalProps;
method render (line 34) | render() {
FILE: console2/src/components/atoms/LogFileFromBlob/index.tsx
type Props (line 30) | interface Props {
type State (line 37) | interface State {
class FileFromBlob (line 42) | class FileFromBlob extends React.Component<Props, State> {
method componentDidMount (line 51) | async componentDidMount() {
method componentDidUpdate (line 71) | componentDidUpdate(nextProps: Props, nextState: State) {
method render (line 125) | render() {
FILE: console2/src/components/atoms/ReactJson/index.ts
type ReactJsonModuleShape (line 23) | type ReactJsonModuleShape = ComponentType<ReactJsonViewProps> & {
FILE: console2/src/components/atoms/RefreshButton/index.tsx
type Props (line 23) | interface Props {
FILE: console2/src/components/atoms/TableSearchFilter/index.tsx
type State (line 27) | interface State {
type ExternalProps (line 34) | interface ExternalProps {
type Props (line 40) | type Props = ExternalProps;
method constructor (line 43) | constructor(props: Props) {
method componentDidUpdate (line 50) | componentDidUpdate(prepProps: Props) {
method renderInput (line 62) | renderInput(c: ColumnDefinition) {
method renderCheckbox (line 74) | renderCheckbox(c: ColumnDefinition) {
method renderDropDown (line 87) | renderDropDown(c: ColumnDefinition) {
method renderStringField (line 102) | renderStringField(c: ColumnDefinition) {
method renderSearchField (line 110) | renderSearchField(c: ColumnDefinition) {
method handleOpen (line 125) | handleOpen() {
method handleClose (line 130) | handleClose() {
method handleClearFilter (line 134) | handleClearFilter() {
method handleApplyFilter (line 144) | handleApplyFilter() {
method render (line 155) | render() {
FILE: console2/src/components/atoms/Truncate.tsx
type Props (line 22) | interface Props {
FILE: console2/src/components/molecules/BreadcrumbSegment/index.tsx
class BreadcrumbSegment (line 26) | class BreadcrumbSegment extends React.PureComponent {
method render (line 27) | render() {
FILE: console2/src/components/molecules/BulkProcessActionDropdown/index.tsx
type ExternalProps (line 27) | interface ExternalProps {
class BulkProcessActionDropdown (line 32) | class BulkProcessActionDropdown extends React.PureComponent<ExternalProp...
method render (line 33) | render() {
FILE: console2/src/components/molecules/ButtonWithConfirmation/index.tsx
type State (line 24) | interface State {
type Props (line 28) | interface Props extends ButtonProps {
class ButtonWithConfirmation (line 35) | class ButtonWithConfirmation extends React.Component<Props, State> {
method constructor (line 36) | constructor(props: Props) {
method handleShowConfirm (line 44) | handleShowConfirm(ev: React.SyntheticEvent<{}>) {
method handleCancel (line 50) | handleCancel(ev: React.SyntheticEvent<{}>) {
method handleConfirm (line 55) | handleConfirm(ev: React.SyntheticEvent<{}>) {
method render (line 61) | render() {
FILE: console2/src/components/molecules/CreateNewEntityButton/index.tsx
type Props (line 26) | interface Props {
FILE: console2/src/components/molecules/DropdownWithAddition/index.tsx
type State (line 23) | interface State {
type Props (line 27) | interface Props {
class DropdownWithAddition (line 43) | class DropdownWithAddition extends React.Component<Props, State> {
method constructor (line 44) | constructor(props: Props) {
method render (line 57) | render() {
FILE: console2/src/components/molecules/EditProjectForm/index.tsx
type FormValues (line 27) | interface FormValues {
type EditProjectFormValues (line 31) | type EditProjectFormValues = FormValues;
type Props (line 33) | interface Props {
class EditProjectForm (line 52) | class EditProjectForm extends React.Component<InjectedFormikProps<Props,...
method updateProject (line 53) | updateProject(ev: React.SyntheticEvent<{}>) {
method render (line 58) | render() {
FILE: console2/src/components/molecules/EntityId/index.tsx
type EntityIdProps (line 24) | interface EntityIdProps {
FILE: console2/src/components/molecules/EntityOwnerChangeForm/index.tsx
type Props (line 28) | interface Props {
type State (line 37) | interface State {
class EntityOwnerChangeForm (line 43) | class EntityOwnerChangeForm extends React.PureComponent<Props, State> {
method constructor (line 44) | constructor(props: Props) {
method onSelect (line 50) | onSelect(i: UserEntry) {
method handleShowConfirm (line 55) | handleShowConfirm(ev: React.SyntheticEvent<{}>) {
method handleCancel (line 60) | handleCancel() {
method handleConfirm (line 64) | handleConfirm() {
method handleSubmit (line 69) | handleSubmit() {
method render (line 78) | render() {
FILE: console2/src/components/molecules/EntityOwnerPopup/index.tsx
type Props (line 25) | interface Props {
FILE: console2/src/components/molecules/EntityRenameForm/index.tsx
type State (line 30) | interface State {
type FormValues (line 34) | interface FormValues {
type Props (line 38) | interface Props {
class EntityRenameForm (line 52) | class EntityRenameForm extends React.Component<InjectedFormikProps<Props...
method constructor (line 53) | constructor(props: InjectedFormikProps<Props, FormValues>) {
method handleShowConfirm (line 58) | handleShowConfirm(ev: React.SyntheticEvent<{}>) {
method handleCancel (line 63) | handleCancel() {
method handleConfirm (line 67) | handleConfirm() {
method render (line 72) | render() {
FILE: console2/src/components/molecules/FormWizardAction/index.tsx
type Props (line 24) | interface Props {
class FormWizardAction (line 28) | class FormWizardAction extends React.PureComponent<Props> {
method render (line 29) | render() {
FILE: console2/src/components/molecules/GitHubLink/index.tsx
type Props (line 24) | interface Props {
class GitHubLink (line 61) | class GitHubLink extends React.PureComponent<Props> {
method render (line 62) | render() {
FILE: console2/src/components/molecules/GlobalNavMenu/index.tsx
type GlobalNavTab (line 26) | type GlobalNavTab = 'activity' | 'process' | 'org' | 'noderoster' | null;
type Props (line 28) | interface Props {
class GlobalNavMenu (line 40) | class GlobalNavMenu extends React.PureComponent<Props> {
method render (line 41) | render() {
FILE: console2/src/components/molecules/Highlighter/index.tsx
type HighlighterProps (line 23) | interface HighlighterProps {
type Config (line 30) | interface Config {
class Highlighter (line 36) | class Highlighter extends React.PureComponent<HighlighterProps> {
method render (line 37) | render() {
FILE: console2/src/components/molecules/HumanizedDuration/index.tsx
type Props (line 25) | interface Props {
function HintFormat (line 31) | function HintFormat({ value, hint }: Props) {
method render (line 43) | render() {
FILE: console2/src/components/molecules/LoadingEditor/index.tsx
type LoadingEditorProps (line 26) | interface LoadingEditorProps {
FILE: console2/src/components/molecules/LocalTimestamp/index.tsx
type Props (line 26) | interface Props {
method render (line 31) | render() {
FILE: console2/src/components/molecules/LogSegment/index.tsx
type Props (line 43) | interface Props {
type StatusIconProps (line 276) | interface StatusIconProps {
FILE: console2/src/components/molecules/MainToolbar/index.tsx
type ExternalProps (line 26) | interface ExternalProps {
FILE: console2/src/components/molecules/NewAPITokenForm/index.tsx
type FormValues (line 32) | interface FormValues {
type NewAPITokenFormValues (line 36) | type NewAPITokenFormValues = FormValues;
type Props (line 38) | interface Props {
class NewAPITokenForm (line 44) | class NewAPITokenForm extends React.Component<InjectedFormikProps<Props,...
method render (line 45) | render() {
FILE: console2/src/components/molecules/NewProjectForm/index.tsx
type FormValues (line 31) | interface FormValues {
type NewProjectFormValues (line 37) | type NewProjectFormValues = FormValues;
type Props (line 39) | interface Props {
class NewProjectForm (line 61) | class NewProjectForm extends React.PureComponent<InjectedFormikProps<Pro...
method render (line 62) | render() {
FILE: console2/src/components/molecules/NewSecretForm/index.tsx
type StorePasswordType (line 39) | enum StorePasswordType {
type FormValues (line 45) | interface FormValues {
type NewSecretFormValues (line 61) | type NewSecretFormValues = FormValues;
type Props (line 63) | interface Props {
class NewSecretForm (line 102) | class NewSecretForm extends React.Component<InjectedFormikProps<Props, F...
method render (line 103) | render() {
FILE: console2/src/components/molecules/NewStorageForm/index.tsx
type FormValues (line 31) | interface FormValues {
type NewStorageFormValues (line 36) | type NewStorageFormValues = FormValues;
type Props (line 38) | interface Props {
FILE: console2/src/components/molecules/NewTeamForm/index.tsx
type Props (line 32) | interface Props {
class NewTeamForm (line 38) | class NewTeamForm extends React.Component<InjectedFormikProps<Props, New...
method render (line 39) | render() {
FILE: console2/src/components/molecules/PaginationToolBar/index.tsx
type Props (line 27) | interface Props {
class PaginationToolBar (line 41) | class PaginationToolBar extends React.PureComponent<Props> {
method render (line 42) | render() {
FILE: console2/src/components/molecules/PaginationToolBar/usePagination.tsx
type Pagination (line 22) | interface Pagination {
type UsePaginationType (line 27) | interface UsePaginationType {
FILE: console2/src/components/molecules/ProcessActionDropdown/index.tsx
type ExternalProps (line 28) | interface ExternalProps {
class ProcessActionDropdown (line 34) | class ProcessActionDropdown extends React.PureComponent<ExternalProps> {
method render (line 35) | render() {
FILE: console2/src/components/molecules/ProcessActionList/index.tsx
type Props (line 28) | interface Props {
class ProcessActionList (line 82) | class ProcessActionList extends React.PureComponent<Props> {
method render (line 83) | render() {
FILE: console2/src/components/molecules/ProcessAttachmentsList/index.tsx
type ExternalProps (line 24) | interface ExternalProps {
FILE: console2/src/components/molecules/ProcessElementList/index.tsx
type Props (line 30) | interface Props {
class ProcessElementList (line 189) | class ProcessElementList extends React.PureComponent<Props> {
method render (line 190) | render() {
FILE: console2/src/components/molecules/ProcessForm/index.tsx
constant DATE_TIME_FORMAT (line 47) | const DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
constant MOMENT_DATE_FORMAT (line 50) | const MOMENT_DATE_FORMAT = 'YYYY-MM-DD';
constant MOMENT_DATE_TIME_FORMAT (line 51) | const MOMENT_DATE_TIME_FORMAT = 'YYYY-MM-DDTHH:mm:ss.SSSZ';
type State (line 53) | interface State {
type Props (line 57) | interface Props {
type DropdownAllowedValue (line 70) | type DropdownAllowedValue = Array<boolean | number | string> | undefined;
type DropdownValue (line 71) | type DropdownValue = boolean | number | string | DropdownAllowedValue;
class ProcessForm (line 85) | class ProcessForm extends React.Component<Props, State> {
method constructor (line 86) | constructor(props: Props) {
method handleReturn (line 91) | handleReturn(ev: React.FormEvent<HTMLButtonElement>) {
method handleSubmit (line 96) | handleSubmit(ev: React.FormEvent<HTMLFormElement>) {
method handleInput (line 141) | handleInput(
method handleDateInput (line 159) | handleDateInput(name: string): (e: React.SyntheticEvent<HTMLElement>, ...
method handleDropdown (line 165) | handleDropdown(
method handleCheckboxInput (line 173) | handleCheckboxInput(
method renderInput (line 181) | renderInput(name: string, type: FormFieldType, value: any, inputType?:...
method renderDropdown (line 196) | renderDropdown(
method toOpts (line 237) | toOpts(val: DropdownValue | DropdownValue[]) : DropdownItemProps[] {
method renderStringField (line 249) | renderStringField(
method renderNumberField (line 309) | renderNumberField({ name, label, type, options }: FormField, value?: n...
method renderBooleanField (line 335) | renderBooleanField({ name, label, type, options }: FormField, value: b...
method renderFileField (line 360) | renderFileField({ name, label, type, cardinality }: FormField) {
method renderDateField (line 386) | renderDateField({ name, label, cardinality, type, options }: FormField...
method renderDateTimeField (line 429) | renderDateTimeField({ name, label, cardinality, type, options }: FormF...
method renderField (line 473) | renderField(f: FormField) {
method render (line 498) | render() {
FILE: console2/src/components/molecules/ProcessHistoryList/index.tsx
type ExternalProps (line 28) | interface ExternalProps {
FILE: console2/src/components/molecules/ProcessLastErrorModal/index.tsx
type Props (line 27) | interface Props {
FILE: console2/src/components/molecules/ProcessList/index.tsx
type Status (line 34) | enum Status {
constant STATUS_COLUMN (line 50) | const STATUS_COLUMN: ColumnDefinition = {
constant INSTANCE_ID_COLUMN (line 64) | const INSTANCE_ID_COLUMN: ColumnDefinition = {
constant PROJECT_COLUMN (line 70) | const PROJECT_COLUMN: ColumnDefinition = {
constant REPO_COLUMN (line 76) | const REPO_COLUMN: ColumnDefinition = {
constant INITIATOR_COLUMN (line 84) | const INITIATOR_COLUMN: ColumnDefinition = {
constant CREATED_AT_COLUMN (line 91) | const CREATED_AT_COLUMN: ColumnDefinition = {
constant UPDATED_AT_COLUMN (line 97) | const UPDATED_AT_COLUMN: ColumnDefinition = {
constant DURATION_COLUMN (line 103) | const DURATION_COLUMN: ColumnDefinition = {
constant TAGS_COLUMN (line 109) | const TAGS_COLUMN: ColumnDefinition = {
constant ENTRY_POINT_COLUMN (line 115) | const ENTRY_POINT_COLUMN: ColumnDefinition = {
type Entry (line 122) | interface Entry extends ProcessEntry {
type Props (line 126) | interface Props {
type State (line 136) | interface State {
class ProcessList (line 307) | class ProcessList extends React.Component<Props, State> {
method constructor (line 308) | constructor(props: Props) {
method componentDidUpdate (line 314) | componentDidUpdate(prevProps: Props) {
method onToggleRow (line 322) | onToggleRow(r: Entry) {
method onRowSelect (line 339) | onRowSelect(r: Entry, isChecked: any) {
method onAllRowsSelect (line 353) | onAllRowsSelect(isChecked: any) {
method setSelectedProcessIds (line 367) | setSelectedProcessIds(processes: Entry[]) {
method renderTableHeader (line 380) | renderTableHeader(rows: Entry[] | undefined, columns: ColumnDefinition...
method renderTableRow (line 417) | renderTableRow(row: Entry, columns: ColumnDefinition[]) {
method render (line 435) | render() {
FILE: console2/src/components/molecules/ProcessListWithSearch/index.tsx
type Props (line 58) | interface Props {
type State (line 81) | interface State {
class ProcessListWithSearch (line 146) | class ProcessListWithSearch extends React.Component<Props, State> {
method constructor (line 147) | constructor(props: Props) {
method onFilterChange (line 160) | onFilterChange(column: ColumnDefinition, filterValue?: string) {
method onFiltersClear (line 177) | onFiltersClear() {
method onFilterClear (line 184) | onFilterClear(source: string) {
method handleLimitChange (line 195) | handleLimitChange(limit: any) {
method handleNext (line 203) | handleNext() {
method handlePrev (line 207) | handlePrev() {
method handleFirst (line 211) | handleFirst() {
method handleNavigation (line 215) | handleNavigation(offset?: number) {
method onSelectProcess (line 222) | onSelectProcess(processIds: ConcordId[]) {
method onRefresh (line 226) | onRefresh() {
method renderFilterLabels (line 232) | renderFilterLabels(cols: ColumnDefinition[], processFilters: ProcessFi...
method render (line 253) | render() {
FILE: console2/src/components/molecules/ProcessLogContainer/LogContainer.tsx
type logDetails (line 24) | type logDetails = {
FILE: console2/src/components/molecules/ProcessLogViewer/index.tsx
type State (line 33) | interface State {
type Props (line 40) | interface Props {
type LogContainerProps (line 54) | interface LogContainerProps {
class ProcessLogViewer (line 149) | class ProcessLogViewer extends React.Component<Props, State> {
method constructor (line 153) | constructor(props: Props) {
method componentDidUpdate (line 171) | componentDidUpdate(prevProps: Props) {
method handleScroll (line 188) | handleScroll(ev: any, { checked }: any) {
method handleOptionsChange (line 198) | handleOptionsChange(k: keyof LogProcessorOptions, v: boolean) {
method handleTagClick (line 209) | handleTagClick(correlationId: ConcordId) {
method scrollToBottom (line 222) | scrollToBottom() {
method scrollToTag (line 226) | scrollToTag() {
method renderSettingsMenu (line 236) | renderSettingsMenu(opts: LogProcessorOptions) {
method createLogToolbarActions (line 281) | createLogToolbarActions() {
method render (line 312) | render() {
FILE: console2/src/components/molecules/ProcessStatusIcon/index.tsx
type AdditionalProcessStatus (line 27) | enum AdditionalProcessStatus {
type Status (line 52) | type Status = ProcessStatus | AdditionalProcessStatus;
type ProcessStatusIconProps (line 54) | interface ProcessStatusIconProps {
FILE: console2/src/components/molecules/ProcessStatusTable/index.tsx
type Props (line 30) | interface Props {
class ProcessStatusTable (line 49) | class ProcessStatusTable extends React.PureComponent<Props> {
method renderCommitId (line 50) | static renderCommitId(process?: ProcessEntry) {
method renderProcessKind (line 64) | static renderProcessKind(process?: ProcessEntry) {
method renderTags (line 83) | static renderTags(process?: ProcessEntry) {
method renderTriggeredBy (line 106) | static renderTriggeredBy(process?: ProcessEntry) {
method renderParentInstanceId (line 114) | static renderParentInstanceId(process?: ProcessEntry) {
method renderInitiator (line 123) | static renderInitiator(process?: ProcessEntry) {
method renderCreatedAt (line 131) | static renderCreatedAt(process?: ProcessEntry) {
method renderStartAt (line 139) | static renderStartAt(process?: ProcessEntry) {
method renderLastUpdatedAt (line 147) | static renderLastUpdatedAt(process?: ProcessEntry) {
method renderTimeout (line 155) | static renderTimeout(process?: ProcessEntry) {
method renderProject (line 186) | static renderProject(process?: ProcessEntry) {
method renderRepo (line 198) | static renderRepo(process?: ProcessEntry) {
method renderRepoUrl (line 211) | static renderRepoUrl(process?: ProcessEntry) {
method renderRepoPath (line 219) | static renderRepoPath(process?: ProcessEntry) {
method render (line 234) | render() {
FILE: console2/src/components/molecules/ProcessToolbar/index.tsx
type ExternalProps (line 26) | interface ExternalProps {
FILE: console2/src/components/molecules/ProcessWaitList/index.tsx
type ExternalProps (line 34) | interface ExternalProps {
FILE: console2/src/components/molecules/ProjectConfiguration/index.tsx
type Props (line 27) | interface Props {
FILE: console2/src/components/molecules/ProjectRenameForm/index.tsx
type State (line 30) | interface State {
type FormValues (line 34) | interface FormValues {
type Props (line 38) | interface Props {
class ProjectRenameForm (line 45) | class ProjectRenameForm extends React.Component<InjectedFormikProps<Prop...
method constructor (line 46) | constructor(props: InjectedFormikProps<Props, FormValues>) {
method handleShowConfirm (line 51) | handleShowConfirm(ev: React.SyntheticEvent<{}>) {
method handleCancel (line 56) | handleCancel() {
method handleConfirm (line 60) | handleConfirm() {
method render (line 64) | render() {
FILE: console2/src/components/molecules/RepositoryForm/index.tsx
type RepositorySourceType (line 33) | enum RepositorySourceType {
type FormValues (line 38) | interface FormValues {
type RepositoryFormValues (line 53) | type RepositoryFormValues = FormValues;
type Props (line 55) | interface Props {
type State (line 65) | interface State {
class RepositoryForm (line 105) | class RepositoryForm extends React.Component<InjectedFormikProps<Props, ...
method constructor (line 106) | constructor(props: InjectedFormikProps<Props, FormValues>) {
method handleTestConnection (line 111) | handleTestConnection() {
method render (line 132) | render() {
FILE: console2/src/components/molecules/RepositoryList/index.tsx
type ExternalProps (line 31) | interface ExternalProps {
FILE: console2/src/components/molecules/RequestErrorMessage/index.tsx
type Props (line 27) | interface Props {
method render (line 32) | render() {
FILE: console2/src/components/molecules/SingleOperationPopup/index.tsx
type State (line 27) | interface State {
type OnClickFn (line 31) | type OnClickFn = () => void;
type Props (line 33) | interface Props {
class SingleOperationPopup (line 64) | class SingleOperationPopup extends React.Component<Props, State> {
method constructor (line 65) | constructor(props: Props) {
method handleOpen (line 77) | handleOpen(event?: React.SyntheticEvent) {
method handleClose (line 83) | handleClose() {
method handleConfirm (line 87) | handleConfirm() {
method renderContent (line 91) | renderContent() {
method renderActions (line 120) | renderActions() {
method stopPropagation (line 175) | stopPropagation(event?: React.SyntheticEvent) {
method render (line 181) | render() {
FILE: console2/src/components/molecules/TeamAccessDropdown/index.tsx
type Props (line 26) | interface Props extends DropdownProps {
class TeamAccessDropdown (line 36) | class TeamAccessDropdown extends React.PureComponent<Props> {
method render (line 37) | render() {
FILE: console2/src/components/molecules/TeamAccessList/index.tsx
type Entry (line 29) | interface Entry extends ResourceAccessEntry {
type State (line 34) | interface State {
type Props (line 40) | interface Props {
class TeamAccessList (line 50) | class TeamAccessList extends React.Component<Props, State> {
method constructor (line 51) | constructor(props: Props) {
method handleEditMode (line 56) | handleEditMode() {
method handleCancelEdit (line 60) | handleCancelEdit() {
method handleRoleChange (line 64) | handleRoleChange(idx: number, level: ResourceAccessLevel) {
method handleDelete (line 70) | handleDelete(idx: number) {
method handleAddTeam (line 76) | handleAddTeam(u: TeamEntry) {
method handleSave (line 91) | handleSave(ev: React.SyntheticEvent<{}>) {
method componentDidUpdate (line 98) | componentDidUpdate(prevProps: Props) {
method render (line 104) | render() {
FILE: console2/src/components/molecules/TeamRoleDropdown/index.tsx
type Props (line 26) | interface Props extends DropdownProps {
class TeamRoleDropdown (line 36) | class TeamRoleDropdown extends React.PureComponent<Props> {
method render (line 37) | render() {
FILE: console2/src/components/molecules/WithCopyToClipboard/index.tsx
type Props (line 27) | interface Props {
FILE: console2/src/components/molecules/ansible/AnsibleHostList/index.tsx
type State (line 30) | interface State {
type Props (line 39) | interface Props {
class AnsibleHostList (line 68) | class AnsibleHostList extends React.Component<Props, State> {
method renderHostItem (line 69) | static renderHostItem(
method renderHosts (line 106) | static renderHosts(instanceId: ConcordId, playbookId?: ConcordId, host...
method constructor (line 136) | constructor(props: Props) {
method handleNext (line 150) | handleNext() {
method handlePrev (line 154) | handlePrev() {
method handleFirst (line 158) | handleFirst() {
method handleNavigation (line 162) | handleNavigation(offset?: number) {
method handleHostOnBlur (line 176) | handleHostOnBlur() {
method handleHostChange (line 190) | handleHostChange(s?: string) {
method handleHostGroupChange (line 199) | handleHostGroupChange(s?: string) {
method handleHostStatusChange (line 209) | handleHostStatusChange(s?: AnsibleStatus) {
method handleOrderByChange (line 219) | handleOrderByChange(sf: SortField, sb: SortOrder) {
method render (line 231) | render() {
FILE: console2/src/components/molecules/ansible/AnsibleTaskList/index.tsx
type Props (line 29) | interface Props {
class AnsibleTaskList (line 37) | class AnsibleTaskList extends React.Component<Props> {
method render (line 130) | render() {
FILE: console2/src/components/organisms/APITokenDeleteActivity/index.tsx
type Props (line 29) | interface Props {
FILE: console2/src/components/organisms/AuditLogActivity/index.tsx
constant SRC_DATE_TIME_FORMAT (line 42) | const SRC_DATE_TIME_FORMAT = 'yyyy-MM-dd HH:mm';
constant DST_DATE_TIME_FORMAT (line 44) | const DST_DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
constant UI_DATE_TIME_FORMAT (line 46) | const UI_DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm';
type Props (line 66) | interface Props {
type ForceSearch (line 87) | interface ForceSearch {
FILE: console2/src/components/organisms/BreadcrumbsToolbar/index.tsx
type ExternalProps (line 24) | interface ExternalProps {
FILE: console2/src/components/organisms/BulkCancelProcessPopup/index.tsx
type Props (line 26) | interface Props {
FILE: console2/src/components/organisms/CancelProcessPopup/index.tsx
type ExternalProps (line 29) | interface ExternalProps {
FILE: console2/src/components/organisms/CheckpointView/ActionBar/ActiveFilters.tsx
type FilterLabelProps (line 26) | interface FilterLabelProps {
FILE: console2/src/components/organisms/CheckpointView/ActionBar/CancelButton.tsx
type CancelButtonProps (line 23) | interface CancelButtonProps {
FILE: console2/src/components/organisms/CheckpointView/CheckpointErrorBoundry/index.tsx
class CheckpointErrorBoundary (line 22) | class CheckpointErrorBoundary extends React.Component<{}, { hasError: bo...
method constructor (line 23) | constructor(props: {}) {
method getDerivedStateFromError (line 28) | static getDerivedStateFromError(error: any) {
method componentDidCatch (line 33) | componentDidCatch(error: any, info: any) {
method render (line 38) | render() {
FILE: console2/src/components/organisms/CheckpointView/CheckpointGroup/index.tsx
type Props (line 38) | interface Props {
FILE: console2/src/components/organisms/CheckpointView/CheckpointGroup/styles.tsx
type CheckpointBoxProps (line 86) | interface CheckpointBoxProps {
FILE: console2/src/components/organisms/CheckpointView/Container/index.tsx
type InitialProps (line 37) | interface InitialProps {
FILE: console2/src/components/organisms/CheckpointView/Container/useForm.ts
type FormValues (line 22) | interface FormValues {
FILE: console2/src/components/organisms/CheckpointView/Container/useQueryParams.ts
function useQueryParams (line 31) | function useQueryParams() {
FILE: console2/src/components/organisms/CheckpointView/ProcessCheckpoint/index.tsx
type Props (line 29) | interface Props {
FILE: console2/src/components/organisms/CheckpointView/ProcessCheckpointView.tsx
type ExternalProps (line 23) | interface ExternalProps {
FILE: console2/src/components/organisms/CheckpointView/ProcessList/LeftContent.tsx
type Props (line 31) | interface Props {
FILE: console2/src/components/organisms/CheckpointView/ProcessList/RightContent.tsx
type Props (line 29) | interface Props {
FILE: console2/src/components/organisms/CheckpointView/shared/Layout.tsx
type ColumnProps (line 38) | interface ColumnProps {
FILE: console2/src/components/organisms/CheckpointView/shared/types.ts
type CheckpointGroup (line 23) | interface CheckpointGroup {
type CustomCheckpoint (line 30) | interface CustomCheckpoint extends ProcessCheckpointEntry {
FILE: console2/src/components/organisms/DeleteRepositoryPopup/index.tsx
type ExternalProps (line 30) | interface ExternalProps {
FILE: console2/src/components/organisms/DisableProcessPopup/index.tsx
type ExternalProps (line 30) | interface ExternalProps {
FILE: console2/src/components/organisms/EditProjectActivity/index.tsx
type ExternalProps (line 32) | interface ExternalProps {
FILE: console2/src/components/organisms/EditRepositoryActivity/index.tsx
type ExternalProps (line 36) | interface ExternalProps {
constant INITIAL_VALUES (line 46) | const INITIAL_VALUES: RepositoryFormValues = {
FILE: console2/src/components/organisms/EncryptValueActivity/index.tsx
type ExternalProps (line 30) | interface ExternalProps {
type State (line 35) | interface State {
class EncryptValueActivity (line 43) | class EncryptValueActivity extends React.PureComponent<ExternalProps, St...
method constructor (line 44) | constructor(props: ExternalProps) {
method handleEncryptValue (line 56) | handleEncryptValue(value: string) {
method reset (line 66) | reset() {
method encryptValue (line 74) | encryptValue(data: string) {
method render (line 97) | render() {
FILE: console2/src/components/organisms/FindLdapGroupField/index.tsx
type Props (line 32)
Copy disabled (too large)
Download .json
Condensed preview — 4414 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (12,416K chars).
[
{
"path": ".codex",
"chars": 0,
"preview": ""
},
{
"path": ".gitattributes",
"chars": 32,
"preview": "*.min.js binary\n*.min.css binary"
},
{
"path": ".github/settings.xml",
"chars": 391,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<settings xmlns=\"http://maven.apache.org/SETTINGS/1.0.0\" xmlns:xs"
},
{
"path": ".github/workflows/build.yml",
"chars": 3495,
"preview": "name: build\n\non:\n push:\n branches: [ 'master' ]\n pull_request:\n branches: [ 'master' ]\n\nconcurrency:\n group: ${"
},
{
"path": ".github/workflows/docker-multiarch.yml",
"chars": 8381,
"preview": "name: docker-multiarch\n\non:\n workflow_dispatch:\n inputs:\n ref:\n description: Release tag to build, e.g. "
},
{
"path": ".gitignore",
"chars": 425,
"preview": "*.iml\n*.ipr\n*.iws\n*.retry\n.*.swo\n.*.swp\n.arcconfig\n.classpath\n.DS_Store\n.idea\n.pmd\n.pmdruleset.xml\n.project\n.settings\n.v"
},
{
"path": ".insights.yml",
"chars": 127,
"preview": "team:\n- id: 20906\nproduct:\n- id: C0AF273F-7470-4A8B-B76E-190F00FFF920\nlanguages:\n- JavaScript\n- JVM\ncloud:\n- autoRestart"
},
{
"path": ".looper/render-settings.sh",
"chars": 3987,
"preview": "#!/usr/bin/env bash\n\nset -euo pipefail\n\nout=\"${1:-/dev/stdout}\"\n\nrequired_vars=(\n MAVEN_MIRROR\n NEXUS_URL\n MAVE"
},
{
"path": ".looper/settings.xml",
"chars": 3087,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<settings>\n <mirrors>\n <mirror>\n <id>walmart-gec</id>\n "
},
{
"path": ".looper.yml",
"chars": 32,
"preview": "inherit: job:///walmart-concord\n"
},
{
"path": ".mvn/wrapper/maven-wrapper.properties",
"chars": 951,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE f"
},
{
"path": ".sentinelpolicy",
"chars": 51,
"preview": "codescanaccess=j3clark,v0v001r,msprin1\nmaxmedium=1\n"
},
{
"path": "AGENTS.md",
"chars": 523,
"preview": "# AGENTS\n\nStart here:\n\n- [it/README.md](it/README.md)\n- [README.md](README.md)\n- [NOTES.md](NOTES.md)\n\nWorking approach:"
},
{
"path": "CHANGELOG.md",
"chars": 240572,
"preview": "# Change Log\n\n## [2.40.0] - 2026-04-28\n\n### Added\n\n- runtime-v2: initial support for JSON schema validation for\ntask in/"
},
{
"path": "LICENSE",
"chars": 563,
"preview": "Copyright (c) 2017-present, Walmart Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not us"
},
{
"path": "NOTES.md",
"chars": 1218,
"preview": "# Development Notes\n\n## Code Style\n\nPrefer `var` in new code, but do not mix `var` and explicit local variable types in "
},
{
"path": "README.md",
"chars": 4154,
"preview": "# Concord\n\n\n\n- Website: https://concord.wa"
},
{
"path": "SECURITY.md",
"chars": 269,
"preview": "# Security Policy\n\n## Reporting a Vulnerability\n\nTo report a vulnerability please use [GitHub Issues](https://github.com"
},
{
"path": "agent/pom.xml",
"chars": 10004,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "agent/src/assembly/default.conf",
"chars": 18,
"preview": "concord-agent {\n}\n"
},
{
"path": "agent/src/assembly/dist.xml",
"chars": 1210,
"preview": "<assembly xmlns=\"http://maven.apache.org/ASSEMBLY/2.0.0\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
},
{
"path": "agent/src/assembly/start.sh",
"chars": 1230,
"preview": "#!/bin/bash\n\nBASE_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\n\nexport RUNNER_V1_PATH=\"${BASE_DIR}/runner/run"
},
{
"path": "agent/src/main/filtered-resources/com/walmartlabs/concord/agent/cfg/runnerV1.properties",
"chars": 21,
"preview": "path=${runnerV1.path}"
},
{
"path": "agent/src/main/filtered-resources/com/walmartlabs/concord/agent/cfg/runnerV2.properties",
"chars": 21,
"preview": "path=${runnerV2.path}"
},
{
"path": "agent/src/main/filtered-resources/com/walmartlabs/concord/agent/executors/runner/default-dependencies",
"chars": 225,
"preview": "mvn://com.walmartlabs.concord.plugins.basic:concord-tasks:${project.version}\nmvn://com.walmartlabs.concord.plugins.basic"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/Agent.java",
"chars": 9049,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/AgentAuthTokenProvider.java",
"chars": 2778,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/AgentConstants.java",
"chars": 934,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/AgentModule.java",
"chars": 3268,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2023 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/CommandHandler.java",
"chars": 3479,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2018 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/ConfiguredJobRequest.java",
"chars": 2052,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/DefaultStateFetcher.java",
"chars": 1528,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/ExecutionException.java",
"chars": 987,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2018 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/JobInstance.java",
"chars": 1159,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/JobRequest.java",
"chars": 4508,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/Main.java",
"chars": 2058,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2018 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/OneShotRunner.java",
"chars": 2404,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2024 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/RepositoryManager.java",
"chars": 4756,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2018 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/StateFetcher.java",
"chars": 795,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/Utils.java",
"chars": 2450,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2018 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/Worker.java",
"chars": 8437,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/WorkerFactory.java",
"chars": 2343,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * --"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/cfg/AgentConfiguration.java",
"chars": 5234,
"preview": "package com.walmartlabs.concord.agent.cfg;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n "
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/cfg/DockerConfiguration.java",
"chars": 1951,
"preview": "package com.walmartlabs.concord.agent.cfg;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n "
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/cfg/GitConfiguration.java",
"chars": 5313,
"preview": "package com.walmartlabs.concord.agent.cfg;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n "
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/cfg/GitHubConfiguration.java",
"chars": 1992,
"preview": "package com.walmartlabs.concord.agent.cfg;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc.\n "
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/cfg/ImportConfiguration.java",
"chars": 1213,
"preview": "package com.walmartlabs.concord.agent.cfg;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc.\n "
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/cfg/PreForkConfiguration.java",
"chars": 1386,
"preview": "package com.walmartlabs.concord.agent.cfg;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n "
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/cfg/RepositoryCacheConfiguration.java",
"chars": 1870,
"preview": "package com.walmartlabs.concord.agent.cfg;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n "
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/cfg/RuntimeConfiguration.java",
"chars": 4324,
"preview": "package com.walmartlabs.concord.agent.cfg;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc.\n "
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/cfg/ServerConfiguration.java",
"chars": 4671,
"preview": "package com.walmartlabs.concord.agent.cfg;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n "
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/cfg/Utils.java",
"chars": 2344,
"preview": "package com.walmartlabs.concord.agent.cfg;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n "
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/docker/OrphanSweeper.java",
"chars": 5124,
"preview": "package com.walmartlabs.concord.agent.docker;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2018 Walmart Inc"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/executors/JobExecutor.java",
"chars": 920,
"preview": "package com.walmartlabs.concord.agent.executors;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart "
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/executors/JobExecutorFactory.java",
"chars": 5989,
"preview": "package com.walmartlabs.concord.agent.executors;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart "
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/DefaultDependencies.java",
"chars": 2944,
"preview": "package com.walmartlabs.concord.agent.executors.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2018 W"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/JobDependencies.java",
"chars": 7972,
"preview": "package com.walmartlabs.concord.agent.executors.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 W"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/ProcessPool.java",
"chars": 6423,
"preview": "package com.walmartlabs.concord.agent.executors.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2018 W"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/RunnerCommandBuilder.java",
"chars": 4925,
"preview": "package com.walmartlabs.concord.agent.executors.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2018 W"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/RunnerJob.java",
"chars": 7412,
"preview": "package com.walmartlabs.concord.agent.executors.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 W"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/RunnerJobExecutor.java",
"chars": 29431,
"preview": "package com.walmartlabs.concord.agent.executors.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 W"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/executors/runner/RunnerLog.java",
"chars": 1981,
"preview": "package com.walmartlabs.concord.agent.executors.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 W"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/guice/AgentDependencyManagerConfigurationProvider.java",
"chars": 1695,
"preview": "package com.walmartlabs.concord.agent.guice;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc."
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/guice/AgentImportManager.java",
"chars": 1447,
"preview": "package com.walmartlabs.concord.agent.guice;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc."
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/guice/AgentImportManagerProvider.java",
"chars": 2103,
"preview": "package com.walmartlabs.concord.agent.guice;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc."
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/guice/WorkerModule.java",
"chars": 3492,
"preview": "package com.walmartlabs.concord.agent.guice;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc."
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/AbstractProcessLog.java",
"chars": 1372,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/CombinedLogAppender.java",
"chars": 1774,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2021 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/LocalProcessLog.java",
"chars": 2428,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/LogAppender.java",
"chars": 960,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/LogSegmentStats.java",
"chars": 1091,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/ProcessLog.java",
"chars": 1117,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/ProcessLogFactory.java",
"chars": 2211,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/RedirectedProcessLog.java",
"chars": 3700,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/RemoteLogAppender.java",
"chars": 3780,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/RemoteProcessLog.java",
"chars": 1373,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/SegmentHeaderParser.java",
"chars": 6904,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2021 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/SegmentedLogsConsumer.java",
"chars": 6264,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2021 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/logging/StdOutLogAppender.java",
"chars": 1269,
"preview": "package com.walmartlabs.concord.agent.logging;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2021 Walmart In"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/mmode/MaintenanceModeListener.java",
"chars": 1523,
"preview": "package com.walmartlabs.concord.agent.mmode;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2018 Walmart Inc."
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/mmode/MaintenanceModeNotifier.java",
"chars": 3686,
"preview": "package com.walmartlabs.concord.agent.mmode;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2018 Walmart Inc."
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/remote/ApiClientFactory.java",
"chars": 2801,
"preview": "package com.walmartlabs.concord.agent.remote;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/remote/AttachmentsUploader.java",
"chars": 2180,
"preview": "package com.walmartlabs.concord.agent.remote;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/remote/ProcessStatusUpdater.java",
"chars": 1731,
"preview": "package com.walmartlabs.concord.agent.remote;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc"
},
{
"path": "agent/src/main/java/com/walmartlabs/concord/agent/remote/QueueClientProvider.java",
"chars": 2300,
"preview": "package com.walmartlabs.concord.agent.remote;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc"
},
{
"path": "agent/src/main/resources/com/walmartlabs/concord/agent/logback.xml",
"chars": 323,
"preview": "<configuration>\n <appender name=\"STDOUT\" class=\"ch.qos.logback.core.ConsoleAppender\">\n <encoder>\n <"
},
{
"path": "agent/src/main/resources/concord-agent.conf",
"chars": 11322,
"preview": "# Concord Agent\n#\n# Note: most of path parameters accept either absolute paths or a directory\n# name. With the latter, t"
},
{
"path": "agent/src/main/resources/logback.xml",
"chars": 323,
"preview": "<configuration>\n <appender name=\"STDOUT\" class=\"ch.qos.logback.core.ConsoleAppender\">\n <encoder>\n <"
},
{
"path": "agent/src/test/java/com/walmartlabs/concord/agent/AgentAuthTokenProviderTest.java",
"chars": 3823,
"preview": "package com.walmartlabs.concord.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc.\n * --"
},
{
"path": "agent/src/test/java/com/walmartlabs/concord/agent/executors/runner/JobDependenciesTest.java",
"chars": 2957,
"preview": "package com.walmartlabs.concord.agent.executors.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 W"
},
{
"path": "agent/src/test/java/com/walmartlabs/concord/agent/executors/runner/SegmentHeaderParserTest.java",
"chars": 7524,
"preview": "package com.walmartlabs.concord.agent.executors.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2021 W"
},
{
"path": "agent/src/test/java/com/walmartlabs/concord/agent/executors/runner/SegmentedLogsConsumerTest.java",
"chars": 5477,
"preview": "package com.walmartlabs.concord.agent.executors.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2021 W"
},
{
"path": "agent/src/test/resources/com/walmartlabs/concord/agent/executors/runner/versions.properties",
"chars": 26,
"preview": "aaa\\:aaa=2.0\nbbb\\:bbb=1.0\n"
},
{
"path": "agent-operator/README.md",
"chars": 3969,
"preview": "# Kubernetes Operator for Concord Agents\n\nTakes care of deploying and scaling [Concord](https://concord.walmartlabs.com)"
},
{
"path": "agent-operator/deploy/cluster_role.yml",
"chars": 535,
"preview": "apiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n name: concord-agent-operator\nrules:\n - apiGroups"
},
{
"path": "agent-operator/deploy/cluster_role_binding.yml",
"chars": 298,
"preview": "kind: ClusterRoleBinding\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n name: concord-agent-operator\nsubjects:\n -"
},
{
"path": "agent-operator/deploy/crds/agentpools.concord.walmartlabs.com-v1.yml",
"chars": 148299,
"preview": "\n# Generated by Fabric8 CRDGenerator, manual edits might get overwritten!\napiVersion: apiextensions.k8s.io/v1\nkind: Cust"
},
{
"path": "agent-operator/deploy/crds/example.agentpool.yml",
"chars": 4450,
"preview": "## Concord Agent Pool definition\n##\n## \"%%var%%\" are template variables which will be replaces by the operator\n##\n## %%c"
},
{
"path": "agent-operator/deploy/operator.yml",
"chars": 1460,
"preview": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: concord-agent-operator\nspec:\n replicas: 1\n selector:\n matchL"
},
{
"path": "agent-operator/deploy/service_account.yml",
"chars": 98,
"preview": "apiVersion: v1\nkind: ServiceAccount\nmetadata:\n name: concord-agent-operator\n namespace: default\n"
},
{
"path": "agent-operator/pom.xml",
"chars": 5127,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/HashUtils.java",
"chars": 1498,
"preview": "package com.walmartlabs.concord.agentoperator;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart In"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/Operator.java",
"chars": 3722,
"preview": "package com.walmartlabs.concord.agentoperator;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart In"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/PodLabels.java",
"chars": 2143,
"preview": "package com.walmartlabs.concord.agentoperator;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart In"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/agent/AgentClient.java",
"chars": 843,
"preview": "package com.walmartlabs.concord.agentoperator.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2024 Walm"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/agent/AgentClientFactory.java",
"chars": 2060,
"preview": "package com.walmartlabs.concord.agentoperator.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2024 Walm"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/agent/DefaultAgentClient.java",
"chars": 2661,
"preview": "package com.walmartlabs.concord.agentoperator.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2024 Walm"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/agent/NopAgentClient.java",
"chars": 931,
"preview": "package com.walmartlabs.concord.agentoperator.agent;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2024 Walm"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/crd/AgentPool.java",
"chars": 1766,
"preview": "package com.walmartlabs.concord.agentoperator.crd;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmar"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/crd/AgentPoolConfiguration.java",
"chars": 7547,
"preview": "package com.walmartlabs.concord.agentoperator.crd;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmar"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/crd/AgentPoolList.java",
"chars": 858,
"preview": "package com.walmartlabs.concord.agentoperator.crd;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmar"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/Change.java",
"chars": 835,
"preview": "package com.walmartlabs.concord.agentoperator.planner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Wa"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/CreateConfigMapChange.java",
"chars": 1971,
"preview": "package com.walmartlabs.concord.agentoperator.planner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Wa"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/CreatePodChange.java",
"chars": 2224,
"preview": "package com.walmartlabs.concord.agentoperator.planner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Wa"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/DeleteConfigMapChange.java",
"chars": 1556,
"preview": "package com.walmartlabs.concord.agentoperator.planner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Wa"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/Planner.java",
"chars": 7453,
"preview": "package com.walmartlabs.concord.agentoperator.planner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Wa"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/TagForRemovalChange.java",
"chars": 1911,
"preview": "package com.walmartlabs.concord.agentoperator.planner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Wa"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/planner/TryToDeletePodChange.java",
"chars": 3872,
"preview": "package com.walmartlabs.concord.agentoperator.planner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Wa"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/processqueue/ProcessQueueClient.java",
"chars": 5367,
"preview": "package com.walmartlabs.concord.agentoperator.processqueue;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 20"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/processqueue/ProcessQueueEntry.java",
"chars": 1555,
"preview": "package com.walmartlabs.concord.agentoperator.processqueue;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 20"
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/resources/AgentConfigMap.java",
"chars": 4515,
"preview": "package com.walmartlabs.concord.agentoperator.resources;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 "
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/resources/AgentPod.java",
"chars": 3948,
"preview": "package com.walmartlabs.concord.agentoperator.resources;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 "
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/resources/Resources.java",
"chars": 1647,
"preview": "package com.walmartlabs.concord.agentoperator.resources;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 "
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/AgentPoolInstance.java",
"chars": 2739,
"preview": "package com.walmartlabs.concord.agentoperator.scheduler;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 "
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/AutoScaler.java",
"chars": 845,
"preview": "package com.walmartlabs.concord.agentoperator.scheduler;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2023 "
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/AutoScalerFactory.java",
"chars": 1813,
"preview": "package com.walmartlabs.concord.agentoperator.scheduler;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2023 "
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/DefaultAutoScaler.java",
"chars": 11160,
"preview": "package com.walmartlabs.concord.agentoperator.scheduler;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 "
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/Event.java",
"chars": 1171,
"preview": "package com.walmartlabs.concord.agentoperator.scheduler;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 "
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/LinearAutoScaler.java",
"chars": 5544,
"preview": "package com.walmartlabs.concord.agentoperator.scheduler;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2023 "
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/QueueSelector.java",
"chars": 2695,
"preview": "package com.walmartlabs.concord.agentoperator.scheduler;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2024 "
},
{
"path": "agent-operator/src/main/java/com/walmartlabs/concord/agentoperator/scheduler/Scheduler.java",
"chars": 7263,
"preview": "package com.walmartlabs.concord.agentoperator.scheduler;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 "
},
{
"path": "agent-operator/src/main/resources/logback.xml",
"chars": 323,
"preview": "<configuration>\n <appender name=\"STDOUT\" class=\"ch.qos.logback.core.ConsoleAppender\">\n <encoder>\n <"
},
{
"path": "agent-operator/src/main/resources/prestop-hook.sh",
"chars": 1376,
"preview": "#!/usr/bin/env bash\n\necho \"PreStop hook started at $(date)\"\n\nMAX_RETRIES=5\nRETRY_DELAY=1\n\ncurrent_workers=\"1\"\nnum_retrie"
},
{
"path": "agent-operator/src/test/java/com/walmartlabs/concord/agentoperator/processqueue/ProcessQueueClientTest.java",
"chars": 1313,
"preview": "package com.walmartlabs.concord.agentoperator.processqueue;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 20"
},
{
"path": "agent-operator/src/test/java/com/walmartlabs/concord/agentoperator/scheduler/DefaultAutoScalerTest.java",
"chars": 5279,
"preview": "package com.walmartlabs.concord.agentoperator.scheduler;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 "
},
{
"path": "agent-operator/src/test/java/com/walmartlabs/concord/agentoperator/scheduler/LinearAutoScalerTest.java",
"chars": 5248,
"preview": "package com.walmartlabs.concord.agentoperator.scheduler;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 "
},
{
"path": "checkstyle.xml",
"chars": 836,
"preview": "<?xml version=\"1.0\"?>\n<!DOCTYPE module PUBLIC\n \"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN\"\n \"htt"
},
{
"path": "cli/pom.xml",
"chars": 8844,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "cli/src/main/filtered-resources/defaultCfg.yml",
"chars": 281,
"preview": "configuration:\n dependencies:\n - \"mvn://com.walmartlabs.concord.plugins.basic:http-tasks:${project.version}\"\n - \""
},
{
"path": "cli/src/main/filtered-resources/project.properties",
"chars": 35,
"preview": "project.version=${project.version}\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/AbortException.java",
"chars": 814,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/App.java",
"chars": 1489,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/CliConfig.java",
"chars": 11631,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/CliExitCodes.java",
"chars": 1032,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/CliPaths.java",
"chars": 1364,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/Confirmation.java",
"chars": 1618,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/GitIgnoreFilter.java",
"chars": 4494,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/Lint.java",
"chars": 5680,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/LocalCliRuntime.java",
"chars": 3361,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/LocalFormInputs.java",
"chars": 6416,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/LocalFormPrompts.java",
"chars": 11155,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/LocalFormSession.java",
"chars": 2537,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/LocalFormState.java",
"chars": 3115,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/LocalSuspendPersistence.java",
"chars": 9574,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/LocalSuspendPrinter.java",
"chars": 13882,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/Main.java",
"chars": 995,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/PromptSupport.java",
"chars": 994,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/RemoteRun.java",
"chars": 12406,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/Resume.java",
"chars": 17386,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/Run.java",
"chars": 26964,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2023 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/SelfUpdate.java",
"chars": 7514,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/Verbosity.java",
"chars": 1084,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2023 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/Version.java",
"chars": 1208,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n * ----"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/lint/DummyImportsNormalizer.java",
"chars": 1151,
"preview": "package com.walmartlabs.concord.cli.lint;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n *"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/lint/ExpressionLinter.java",
"chars": 2165,
"preview": "package com.walmartlabs.concord.cli.lint;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n *"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/lint/FlowElementLinter.java",
"chars": 2317,
"preview": "package com.walmartlabs.concord.cli.lint;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n *"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/lint/LintResult.java",
"chars": 1456,
"preview": "package com.walmartlabs.concord.cli.lint;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n *"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/lint/Linter.java",
"chars": 867,
"preview": "package com.walmartlabs.concord.cli.lint;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n *"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/lint/TaskCallLinter.java",
"chars": 3610,
"preview": "package com.walmartlabs.concord.cli.lint;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n *"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/lint/Utils.java",
"chars": 1502,
"preview": "package com.walmartlabs.concord.cli.lint;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2019 Walmart Inc.\n *"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/ApiKey.java",
"chars": 1877,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/CliApiClientProvider.java",
"chars": 1703,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/CliCheckpointService.java",
"chars": 1594,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2023 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/CliDockerService.java",
"chars": 1128,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/CliImportsListener.java",
"chars": 1500,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/CliImportsNormalizer.java",
"chars": 3391,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/CliLockService.java",
"chars": 1040,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/CliRepositoryExporter.java",
"chars": 4096,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/CliServicesModule.java",
"chars": 5426,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2023 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/DependencyResolver.java",
"chars": 6080,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2023 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/FlowStepLogger.java",
"chars": 4079,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2023 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/TaskParamsLogger.java",
"chars": 2952,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2023 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/runner/VaultProvider.java",
"chars": 2949,
"preview": "package com.walmartlabs.concord.cli.runner;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc.\n"
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/secrets/CliSecretService.java",
"chars": 6802,
"preview": "package com.walmartlabs.concord.cli.secrets;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc."
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/secrets/FileSecretsProvider.java",
"chars": 7356,
"preview": "package com.walmartlabs.concord.cli.secrets;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc."
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/secrets/RemoteSecretsProvider.java",
"chars": 8486,
"preview": "package com.walmartlabs.concord.cli.secrets;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc."
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/secrets/SecretsProvider.java",
"chars": 1878,
"preview": "package com.walmartlabs.concord.cli.secrets;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc."
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/secrets/SecretsProviderRef.java",
"chars": 797,
"preview": "package com.walmartlabs.concord.cli.secrets;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc."
},
{
"path": "cli/src/main/java/com/walmartlabs/concord/cli/secrets/UncheckedIO.java",
"chars": 2405,
"preview": "package com.walmartlabs.concord.cli.secrets;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc."
},
{
"path": "cli/src/main/resources/com/walmartlabs/concord/cli/defaultCliConfig.yaml",
"chars": 287,
"preview": "contexts:\n default:\n secrets:\n vault:\n dir: \"${configDir}/vaults\"\n id: \"default\"\n local:\n "
},
{
"path": "cli/src/main/resources/default-vars.json",
"chars": 48,
"preview": "{\n \"ansible\": {\n \"enableEvents\": false\n }\n}"
},
{
"path": "cli/src/main/resources/logback.xml",
"chars": 500,
"preview": "<configuration>\n <appender name=\"STDOUT\" class=\"ch.qos.logback.core.ConsoleAppender\">\n <withJansi>true</withJa"
},
{
"path": "cli/src/test/filtered-resources/com/walmartlabs/concord/cli/defaultCfg/concord.yml",
"chars": 105,
"preview": "configuration:\n debug: true\nflows:\n default:\n - log: \"isTrue = ${files.notExists('non-exist-dir')}\"\n"
},
{
"path": "cli/src/test/filtered-resources/com/walmartlabs/concord/cli/defaultCfg/defaults.yml",
"chars": 113,
"preview": "configuration:\n dependencies:\n - \"mvn://com.walmartlabs.concord.plugins.basic:file-tasks:${project.version}\"\n"
},
{
"path": "cli/src/test/java/com/walmartlabs/concord/cli/AbstractTest.java",
"chars": 3921,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2022 Walmart Inc.\n * ----"
},
{
"path": "cli/src/test/java/com/walmartlabs/concord/cli/CliConfigTest.java",
"chars": 4679,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc.\n * ----"
},
{
"path": "cli/src/test/java/com/walmartlabs/concord/cli/GitIgnoreFilterTest.java",
"chars": 7628,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2025 Walmart Inc.\n * ----"
},
{
"path": "cli/src/test/java/com/walmartlabs/concord/cli/LintTest.java",
"chars": 2135,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2022 Walmart Inc.\n * ----"
},
{
"path": "cli/src/test/java/com/walmartlabs/concord/cli/ResumeTest.java",
"chars": 28749,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2026 Walmart Inc.\n * ----"
},
{
"path": "cli/src/test/java/com/walmartlabs/concord/cli/RunTest.java",
"chars": 4790,
"preview": "package com.walmartlabs.concord.cli;\n\n/*-\n * *****\n * Concord\n * -----\n * Copyright (C) 2017 - 2020 Walmart Inc.\n * ----"
}
]
// ... and 4214 more files (download for full content)
About this extraction
This page contains the full source code of the walmartlabs/concord GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 4414 files (11.0 MB), approximately 3.2M tokens, and a symbol index with 17231 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.