gitextract_cp2gulur/ ├── .dockerignore ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── config.yml │ │ ├── documentation.md │ │ └── feature_request.md │ ├── dependabot.yml │ ├── pull_request_template.md │ ├── release-drafter.yml │ └── workflows/ │ ├── ci.yml │ ├── publish.yml │ ├── release_draft.yml │ ├── stale.yml │ └── update-gradle-wrapper.yml ├── .gitignore ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── OSSMETADATA ├── README.md ├── RELATED.md ├── SECURITY.md ├── USERS.md ├── annotations/ │ ├── README.md │ ├── build.gradle │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── netflix/ │ └── conductor/ │ └── annotations/ │ └── protogen/ │ ├── ProtoEnum.java │ ├── ProtoField.java │ └── ProtoMessage.java ├── annotations-processor/ │ ├── README.md │ ├── build.gradle │ └── src/ │ ├── example/ │ │ └── java/ │ │ └── com/ │ │ └── example/ │ │ └── Example.java │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ └── annotationsprocessor/ │ │ │ └── protogen/ │ │ │ ├── AbstractMessage.java │ │ │ ├── Enum.java │ │ │ ├── Message.java │ │ │ ├── ProtoFile.java │ │ │ ├── ProtoGen.java │ │ │ ├── ProtoGenTask.java │ │ │ └── types/ │ │ │ ├── AbstractType.java │ │ │ ├── ExternMessageType.java │ │ │ ├── GenericType.java │ │ │ ├── ListType.java │ │ │ ├── MapType.java │ │ │ ├── MessageType.java │ │ │ ├── ScalarType.java │ │ │ ├── TypeMapper.java │ │ │ └── WrappedType.java │ │ └── resources/ │ │ └── templates/ │ │ ├── file.proto │ │ └── message.proto │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── annotationsprocessor/ │ │ └── protogen/ │ │ └── ProtoGenTest.java │ └── resources/ │ └── example.proto.txt ├── awss3-storage/ │ ├── README.md │ ├── build.gradle │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── s3/ │ │ ├── config/ │ │ │ ├── S3Configuration.java │ │ │ └── S3Properties.java │ │ └── storage/ │ │ └── S3PayloadStorage.java │ └── resources/ │ └── META-INF/ │ └── additional-spring-configuration-metadata.json ├── awssqs-event-queue/ │ ├── README.md │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ └── sqs/ │ │ │ ├── config/ │ │ │ │ ├── SQSEventQueueConfiguration.java │ │ │ │ ├── SQSEventQueueProperties.java │ │ │ │ └── SQSEventQueueProvider.java │ │ │ └── eventqueue/ │ │ │ └── SQSObservableQueue.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── additional-spring-configuration-metadata.json │ └── test/ │ └── java/ │ └── com/ │ └── netflix/ │ └── conductor/ │ └── sqs/ │ └── eventqueue/ │ ├── DefaultEventQueueProcessorTest.java │ └── SQSObservableQueueTest.java ├── build.gradle ├── cassandra-persistence/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ └── cassandra/ │ │ │ ├── config/ │ │ │ │ ├── CassandraConfiguration.java │ │ │ │ ├── CassandraProperties.java │ │ │ │ └── cache/ │ │ │ │ ├── CacheableEventHandlerDAO.java │ │ │ │ ├── CacheableMetadataDAO.java │ │ │ │ └── CachingConfig.java │ │ │ ├── dao/ │ │ │ │ ├── CassandraBaseDAO.java │ │ │ │ ├── CassandraEventHandlerDAO.java │ │ │ │ ├── CassandraExecutionDAO.java │ │ │ │ ├── CassandraMetadataDAO.java │ │ │ │ └── CassandraPollDataDAO.java │ │ │ └── util/ │ │ │ ├── Constants.java │ │ │ └── Statements.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── additional-spring-configuration-metadata.json │ └── test/ │ └── groovy/ │ └── com/ │ └── netflix/ │ └── conductor/ │ └── cassandra/ │ ├── dao/ │ │ ├── CassandraEventHandlerDAOSpec.groovy │ │ ├── CassandraExecutionDAOSpec.groovy │ │ ├── CassandraMetadataDAOSpec.groovy │ │ └── CassandraSpec.groovy │ └── util/ │ └── StatementsSpec.groovy ├── client/ │ ├── build.gradle │ ├── spotbugsExclude.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── client/ │ │ ├── automator/ │ │ │ ├── PollingSemaphore.java │ │ │ ├── TaskPollExecutor.java │ │ │ └── TaskRunnerConfigurer.java │ │ ├── config/ │ │ │ ├── ConductorClientConfiguration.java │ │ │ ├── DefaultConductorClientConfiguration.java │ │ │ └── PropertyFactory.java │ │ ├── exception/ │ │ │ └── ConductorClientException.java │ │ ├── http/ │ │ │ ├── ClientBase.java │ │ │ ├── ClientRequestHandler.java │ │ │ ├── EventClient.java │ │ │ ├── MetadataClient.java │ │ │ ├── PayloadStorage.java │ │ │ ├── TaskClient.java │ │ │ └── WorkflowClient.java │ │ ├── telemetry/ │ │ │ └── MetricsContainer.java │ │ └── worker/ │ │ └── Worker.java │ └── test/ │ ├── groovy/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── client/ │ │ └── http/ │ │ ├── ClientSpecification.groovy │ │ ├── EventClientSpec.groovy │ │ ├── MetadataClientSpec.groovy │ │ ├── TaskClientSpec.groovy │ │ └── WorkflowClientSpec.groovy │ ├── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── client/ │ │ ├── automator/ │ │ │ ├── PollingSemaphoreTest.java │ │ │ ├── TaskPollExecutorTest.java │ │ │ └── TaskRunnerConfigurerTest.java │ │ ├── config/ │ │ │ └── TestPropertyFactory.java │ │ ├── sample/ │ │ │ ├── Main.java │ │ │ └── SampleWorker.java │ │ ├── testing/ │ │ │ ├── AbstractWorkflowTests.java │ │ │ ├── LoanWorkflowInput.java │ │ │ ├── LoanWorkflowTest.java │ │ │ ├── RegressionTest.java │ │ │ └── SubWorkflowTest.java │ │ └── worker/ │ │ └── TestWorkflowTask.java │ └── resources/ │ ├── config.properties │ ├── tasks.json │ ├── test_data/ │ │ ├── loan_workflow_input.json │ │ └── workflow1_run.json │ └── workflows/ │ ├── PopulationMinMax.json │ ├── calculate_loan_workflow.json │ ├── kitchensink.json │ └── workflow1.json ├── client-spring/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ └── client/ │ │ │ └── spring/ │ │ │ ├── ClientProperties.java │ │ │ ├── ConductorClientAutoConfiguration.java │ │ │ ├── ConductorWorkerAutoConfiguration.java │ │ │ └── SpringWorkerConfiguration.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── spring.factories │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── client/ │ │ └── spring/ │ │ ├── ExampleClient.java │ │ └── Workers.java │ └── resources/ │ └── application.properties ├── common/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── common/ │ │ ├── config/ │ │ │ ├── ObjectMapperBuilderConfiguration.java │ │ │ ├── ObjectMapperConfiguration.java │ │ │ └── ObjectMapperProvider.java │ │ ├── constraints/ │ │ │ ├── NoSemiColonConstraint.java │ │ │ ├── OwnerEmailMandatoryConstraint.java │ │ │ ├── TaskReferenceNameUniqueConstraint.java │ │ │ └── TaskTimeoutConstraint.java │ │ ├── jackson/ │ │ │ └── JsonProtoModule.java │ │ ├── metadata/ │ │ │ ├── Auditable.java │ │ │ ├── BaseDef.java │ │ │ ├── acl/ │ │ │ │ └── Permission.java │ │ │ ├── events/ │ │ │ │ ├── EventExecution.java │ │ │ │ └── EventHandler.java │ │ │ ├── tasks/ │ │ │ │ ├── PollData.java │ │ │ │ ├── Task.java │ │ │ │ ├── TaskDef.java │ │ │ │ ├── TaskExecLog.java │ │ │ │ ├── TaskResult.java │ │ │ │ └── TaskType.java │ │ │ └── workflow/ │ │ │ ├── DynamicForkJoinTask.java │ │ │ ├── DynamicForkJoinTaskList.java │ │ │ ├── RerunWorkflowRequest.java │ │ │ ├── SkipTaskRequest.java │ │ │ ├── StartWorkflowRequest.java │ │ │ ├── SubWorkflowParams.java │ │ │ ├── WorkflowDef.java │ │ │ ├── WorkflowDefSummary.java │ │ │ └── WorkflowTask.java │ │ ├── model/ │ │ │ └── BulkResponse.java │ │ ├── run/ │ │ │ ├── ExternalStorageLocation.java │ │ │ ├── SearchResult.java │ │ │ ├── TaskSummary.java │ │ │ ├── Workflow.java │ │ │ ├── WorkflowSummary.java │ │ │ └── WorkflowTestRequest.java │ │ ├── utils/ │ │ │ ├── ConstraintParamUtil.java │ │ │ ├── EnvUtils.java │ │ │ ├── ExternalPayloadStorage.java │ │ │ ├── SummaryUtil.java │ │ │ └── TaskUtils.java │ │ └── validation/ │ │ ├── ErrorResponse.java │ │ └── ValidationError.java │ └── test/ │ └── java/ │ └── com/ │ └── netflix/ │ └── conductor/ │ └── common/ │ ├── config/ │ │ └── TestObjectMapperConfiguration.java │ ├── events/ │ │ └── EventHandlerTest.java │ ├── run/ │ │ └── TaskSummaryTest.java │ ├── tasks/ │ │ ├── TaskDefTest.java │ │ ├── TaskResultTest.java │ │ └── TaskTest.java │ ├── utils/ │ │ ├── ConstraintParamUtilTest.java │ │ └── SummaryUtilTest.java │ └── workflow/ │ ├── SubWorkflowParamsTest.java │ ├── WorkflowDefValidatorTest.java │ └── WorkflowTaskTest.java ├── core/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ ├── annotations/ │ │ │ │ ├── Audit.java │ │ │ │ ├── Trace.java │ │ │ │ └── VisibleForTesting.java │ │ │ ├── core/ │ │ │ │ ├── LifecycleAwareComponent.java │ │ │ │ ├── WorkflowContext.java │ │ │ │ ├── config/ │ │ │ │ │ ├── ConductorCoreConfiguration.java │ │ │ │ │ ├── ConductorProperties.java │ │ │ │ │ └── SchedulerConfiguration.java │ │ │ │ ├── dal/ │ │ │ │ │ └── ExecutionDAOFacade.java │ │ │ │ ├── event/ │ │ │ │ │ ├── WorkflowCreationEvent.java │ │ │ │ │ └── WorkflowEvaluationEvent.java │ │ │ │ ├── events/ │ │ │ │ │ ├── ActionProcessor.java │ │ │ │ │ ├── DefaultEventProcessor.java │ │ │ │ │ ├── DefaultEventQueueManager.java │ │ │ │ │ ├── EventQueueManager.java │ │ │ │ │ ├── EventQueueProvider.java │ │ │ │ │ ├── EventQueues.java │ │ │ │ │ ├── ScriptEvaluator.java │ │ │ │ │ ├── SimpleActionProcessor.java │ │ │ │ │ └── queue/ │ │ │ │ │ ├── ConductorEventQueueProvider.java │ │ │ │ │ ├── ConductorObservableQueue.java │ │ │ │ │ ├── DefaultEventQueueProcessor.java │ │ │ │ │ ├── Message.java │ │ │ │ │ └── ObservableQueue.java │ │ │ │ ├── exception/ │ │ │ │ │ ├── ConflictException.java │ │ │ │ │ ├── NonTransientException.java │ │ │ │ │ ├── NotFoundException.java │ │ │ │ │ ├── TerminateWorkflowException.java │ │ │ │ │ └── TransientException.java │ │ │ │ ├── execution/ │ │ │ │ │ ├── AsyncSystemTaskExecutor.java │ │ │ │ │ ├── DeciderService.java │ │ │ │ │ ├── StartWorkflowInput.java │ │ │ │ │ ├── WorkflowExecutor.java │ │ │ │ │ ├── evaluators/ │ │ │ │ │ │ ├── Evaluator.java │ │ │ │ │ │ ├── JavascriptEvaluator.java │ │ │ │ │ │ └── ValueParamEvaluator.java │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── DecisionTaskMapper.java │ │ │ │ │ │ ├── DoWhileTaskMapper.java │ │ │ │ │ │ ├── DynamicTaskMapper.java │ │ │ │ │ │ ├── EventTaskMapper.java │ │ │ │ │ │ ├── ExclusiveJoinTaskMapper.java │ │ │ │ │ │ ├── ForkJoinDynamicTaskMapper.java │ │ │ │ │ │ ├── ForkJoinTaskMapper.java │ │ │ │ │ │ ├── HTTPTaskMapper.java │ │ │ │ │ │ ├── HumanTaskMapper.java │ │ │ │ │ │ ├── InlineTaskMapper.java │ │ │ │ │ │ ├── JoinTaskMapper.java │ │ │ │ │ │ ├── JsonJQTransformTaskMapper.java │ │ │ │ │ │ ├── KafkaPublishTaskMapper.java │ │ │ │ │ │ ├── LambdaTaskMapper.java │ │ │ │ │ │ ├── NoopTaskMapper.java │ │ │ │ │ │ ├── SetVariableTaskMapper.java │ │ │ │ │ │ ├── SimpleTaskMapper.java │ │ │ │ │ │ ├── StartWorkflowTaskMapper.java │ │ │ │ │ │ ├── SubWorkflowTaskMapper.java │ │ │ │ │ │ ├── SwitchTaskMapper.java │ │ │ │ │ │ ├── TaskMapper.java │ │ │ │ │ │ ├── TaskMapperContext.java │ │ │ │ │ │ ├── TerminateTaskMapper.java │ │ │ │ │ │ ├── UserDefinedTaskMapper.java │ │ │ │ │ │ └── WaitTaskMapper.java │ │ │ │ │ └── tasks/ │ │ │ │ │ ├── Decision.java │ │ │ │ │ ├── DoWhile.java │ │ │ │ │ ├── Event.java │ │ │ │ │ ├── ExclusiveJoin.java │ │ │ │ │ ├── ExecutionConfig.java │ │ │ │ │ ├── Fork.java │ │ │ │ │ ├── Human.java │ │ │ │ │ ├── Inline.java │ │ │ │ │ ├── IsolatedTaskQueueProducer.java │ │ │ │ │ ├── Join.java │ │ │ │ │ ├── Lambda.java │ │ │ │ │ ├── Noop.java │ │ │ │ │ ├── SetVariable.java │ │ │ │ │ ├── StartWorkflow.java │ │ │ │ │ ├── SubWorkflow.java │ │ │ │ │ ├── Switch.java │ │ │ │ │ ├── SystemTaskRegistry.java │ │ │ │ │ ├── SystemTaskWorker.java │ │ │ │ │ ├── SystemTaskWorkerCoordinator.java │ │ │ │ │ ├── Terminate.java │ │ │ │ │ ├── Wait.java │ │ │ │ │ └── WorkflowSystemTask.java │ │ │ │ ├── index/ │ │ │ │ │ ├── NoopIndexDAO.java │ │ │ │ │ └── NoopIndexDAOConfiguration.java │ │ │ │ ├── listener/ │ │ │ │ │ ├── TaskStatusListener.java │ │ │ │ │ ├── TaskStatusListenerStub.java │ │ │ │ │ ├── WorkflowStatusListener.java │ │ │ │ │ └── WorkflowStatusListenerStub.java │ │ │ │ ├── metadata/ │ │ │ │ │ └── MetadataMapperService.java │ │ │ │ ├── operation/ │ │ │ │ │ ├── StartWorkflowOperation.java │ │ │ │ │ └── WorkflowOperation.java │ │ │ │ ├── reconciliation/ │ │ │ │ │ ├── WorkflowReconciler.java │ │ │ │ │ ├── WorkflowRepairService.java │ │ │ │ │ └── WorkflowSweeper.java │ │ │ │ ├── storage/ │ │ │ │ │ └── DummyPayloadStorage.java │ │ │ │ ├── sync/ │ │ │ │ │ ├── Lock.java │ │ │ │ │ ├── local/ │ │ │ │ │ │ ├── LocalOnlyLock.java │ │ │ │ │ │ └── LocalOnlyLockConfiguration.java │ │ │ │ │ └── noop/ │ │ │ │ │ └── NoopLock.java │ │ │ │ └── utils/ │ │ │ │ ├── DateTimeUtils.java │ │ │ │ ├── ExternalPayloadStorageUtils.java │ │ │ │ ├── IDGenerator.java │ │ │ │ ├── JsonUtils.java │ │ │ │ ├── ParametersUtils.java │ │ │ │ ├── QueueUtils.java │ │ │ │ ├── SemaphoreUtil.java │ │ │ │ └── Utils.java │ │ │ ├── dao/ │ │ │ │ ├── ConcurrentExecutionLimitDAO.java │ │ │ │ ├── EventHandlerDAO.java │ │ │ │ ├── ExecutionDAO.java │ │ │ │ ├── IndexDAO.java │ │ │ │ ├── MetadataDAO.java │ │ │ │ ├── PollDataDAO.java │ │ │ │ ├── QueueDAO.java │ │ │ │ └── RateLimitingDAO.java │ │ │ ├── metrics/ │ │ │ │ ├── Monitors.java │ │ │ │ └── WorkflowMonitor.java │ │ │ ├── model/ │ │ │ │ ├── TaskModel.java │ │ │ │ └── WorkflowModel.java │ │ │ ├── service/ │ │ │ │ ├── AdminService.java │ │ │ │ ├── AdminServiceImpl.java │ │ │ │ ├── EventService.java │ │ │ │ ├── EventServiceImpl.java │ │ │ │ ├── ExecutionLockService.java │ │ │ │ ├── ExecutionService.java │ │ │ │ ├── MetadataService.java │ │ │ │ ├── MetadataServiceImpl.java │ │ │ │ ├── TaskService.java │ │ │ │ ├── TaskServiceImpl.java │ │ │ │ ├── WorkflowBulkService.java │ │ │ │ ├── WorkflowBulkServiceImpl.java │ │ │ │ ├── WorkflowService.java │ │ │ │ ├── WorkflowServiceImpl.java │ │ │ │ └── WorkflowTestService.java │ │ │ └── validations/ │ │ │ ├── ValidationContext.java │ │ │ └── WorkflowTaskTypeConstraint.java │ │ └── resources/ │ │ └── META-INF/ │ │ ├── additional-spring-configuration-metadata.json │ │ ├── validation/ │ │ │ └── constraints.xml │ │ └── validation.xml │ └── test/ │ ├── groovy/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ ├── core/ │ │ │ ├── execution/ │ │ │ │ ├── AsyncSystemTaskExecutorTest.groovy │ │ │ │ └── tasks/ │ │ │ │ ├── DoWhileSpec.groovy │ │ │ │ ├── EventSpec.groovy │ │ │ │ ├── IsolatedTaskQueueProducerSpec.groovy │ │ │ │ └── StartWorkflowSpec.groovy │ │ │ └── operation/ │ │ │ └── StartWorkflowOperationSpec.groovy │ │ └── model/ │ │ ├── TaskModelSpec.groovy │ │ └── WorkflowModelSpec.groovy │ ├── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ ├── TestUtils.java │ │ ├── core/ │ │ │ ├── dal/ │ │ │ │ └── ExecutionDAOFacadeTest.java │ │ │ ├── events/ │ │ │ │ ├── MockObservableQueue.java │ │ │ │ ├── MockQueueProvider.java │ │ │ │ ├── TestDefaultEventProcessor.java │ │ │ │ ├── TestScriptEval.java │ │ │ │ └── TestSimpleActionProcessor.java │ │ │ ├── execution/ │ │ │ │ ├── TestDeciderOutcomes.java │ │ │ │ ├── TestDeciderService.java │ │ │ │ ├── TestWorkflowDef.java │ │ │ │ ├── TestWorkflowExecutor.java │ │ │ │ ├── WorkflowSystemTaskStub.java │ │ │ │ ├── mapper/ │ │ │ │ │ ├── DecisionTaskMapperTest.java │ │ │ │ │ ├── DoWhileTaskMapperTest.java │ │ │ │ │ ├── DynamicTaskMapperTest.java │ │ │ │ │ ├── EventTaskMapperTest.java │ │ │ │ │ ├── ForkJoinDynamicTaskMapperTest.java │ │ │ │ │ ├── ForkJoinTaskMapperTest.java │ │ │ │ │ ├── HTTPTaskMapperTest.java │ │ │ │ │ ├── HumanTaskMapperTest.java │ │ │ │ │ ├── InlineTaskMapperTest.java │ │ │ │ │ ├── JoinTaskMapperTest.java │ │ │ │ │ ├── JsonJQTransformTaskMapperTest.java │ │ │ │ │ ├── KafkaPublishTaskMapperTest.java │ │ │ │ │ ├── LambdaTaskMapperTest.java │ │ │ │ │ ├── NoopTaskMapperTest.java │ │ │ │ │ ├── SetVariableTaskMapperTest.java │ │ │ │ │ ├── SimpleTaskMapperTest.java │ │ │ │ │ ├── SubWorkflowTaskMapperTest.java │ │ │ │ │ ├── SwitchTaskMapperTest.java │ │ │ │ │ ├── TerminateTaskMapperTest.java │ │ │ │ │ ├── UserDefinedTaskMapperTest.java │ │ │ │ │ └── WaitTaskMapperTest.java │ │ │ │ └── tasks/ │ │ │ │ ├── EventQueueResolutionTest.java │ │ │ │ ├── InlineTest.java │ │ │ │ ├── TestLambda.java │ │ │ │ ├── TestNoop.java │ │ │ │ ├── TestSubWorkflow.java │ │ │ │ ├── TestSystemTaskWorker.java │ │ │ │ ├── TestSystemTaskWorkerCoordinator.java │ │ │ │ └── TestTerminate.java │ │ │ ├── metadata/ │ │ │ │ └── MetadataMapperServiceTest.java │ │ │ ├── reconciliation/ │ │ │ │ ├── TestWorkflowRepairService.java │ │ │ │ └── TestWorkflowSweeper.java │ │ │ ├── storage/ │ │ │ │ └── DummyPayloadStorageTest.java │ │ │ ├── sync/ │ │ │ │ └── local/ │ │ │ │ └── LocalOnlyLockTest.java │ │ │ └── utils/ │ │ │ ├── ExternalPayloadStorageUtilsTest.java │ │ │ ├── JsonUtilsTest.java │ │ │ ├── ParametersUtilsTest.java │ │ │ ├── QueueUtilsTest.java │ │ │ └── SemaphoreUtilTest.java │ │ ├── dao/ │ │ │ ├── ExecutionDAOTest.java │ │ │ └── PollDataDAOTest.java │ │ ├── metrics/ │ │ │ └── WorkflowMonitorTest.java │ │ ├── service/ │ │ │ ├── EventServiceTest.java │ │ │ ├── ExecutionServiceTest.java │ │ │ ├── MetadataServiceTest.java │ │ │ ├── TaskServiceTest.java │ │ │ ├── WorkflowBulkServiceTest.java │ │ │ └── WorkflowServiceTest.java │ │ └── validations/ │ │ ├── WorkflowDefConstraintTest.java │ │ └── WorkflowTaskTypeConstraintTest.java │ └── resources/ │ ├── completed.json │ ├── conditional_flow.json │ ├── conditional_flow_with_switch.json │ ├── payload.json │ └── test.json ├── dependencies.gradle ├── docker/ │ ├── README.md │ ├── ci/ │ │ └── Dockerfile │ ├── docker-compose-mysql.yaml │ ├── docker-compose-postgres.yaml │ ├── docker-compose.yaml │ ├── server/ │ │ ├── Dockerfile │ │ ├── config/ │ │ │ ├── config-mysql.properties │ │ │ ├── config-postgres.properties │ │ │ ├── config-redis.properties │ │ │ ├── config.properties │ │ │ ├── log4j-file-appender.properties │ │ │ ├── log4j.properties │ │ │ └── redis.conf │ │ └── nginx/ │ │ └── nginx.conf │ └── ui/ │ ├── Dockerfile │ └── README.md ├── docs/ │ ├── docs/ │ │ ├── apispec.md │ │ ├── architecture/ │ │ │ ├── overview.md │ │ │ └── tasklifecycle.md │ │ ├── bestpractices.md │ │ ├── configuration/ │ │ │ ├── eventhandlers.md │ │ │ ├── isolationgroups.md │ │ │ ├── sysoperator.md │ │ │ ├── systask.md │ │ │ ├── taskdef.md │ │ │ ├── taskdomains.md │ │ │ ├── workerdef.md │ │ │ └── workflowdef.md │ │ ├── css/ │ │ │ └── custom.css │ │ ├── extend.md │ │ ├── externalpayloadstorage.md │ │ ├── faq.md │ │ ├── gettingstarted/ │ │ │ ├── basicconcepts.md │ │ │ ├── client.md │ │ │ ├── docker.md │ │ │ ├── hosted.md │ │ │ ├── intro.md │ │ │ ├── source.md │ │ │ ├── startworkflow.md │ │ │ └── steps.md │ │ ├── googleba55068fa3e0e553.html │ │ ├── how-tos/ │ │ │ ├── Monitoring/ │ │ │ │ └── Conductor-LogLevel.md │ │ │ ├── Tasks/ │ │ │ │ ├── creating-tasks.md │ │ │ │ ├── dynamic-vs-switch-tasks.md │ │ │ │ ├── extending-system-tasks.md │ │ │ │ ├── monitoring-task-queues.md │ │ │ │ ├── reusing-tasks.md │ │ │ │ ├── task-configurations.md │ │ │ │ ├── task-inputs.md │ │ │ │ ├── task-timeouts.md │ │ │ │ └── updating-tasks.md │ │ │ ├── Test/ │ │ │ │ └── testing-workflows.md │ │ │ ├── Workers/ │ │ │ │ ├── build-a-golang-task-worker.md │ │ │ │ ├── build-a-java-task-worker.md │ │ │ │ └── build-a-python-task-worker.md │ │ │ ├── Workflows/ │ │ │ │ ├── debugging-workflows.md │ │ │ │ ├── handling-errors.md │ │ │ │ ├── searching-workflows.md │ │ │ │ ├── starting-workflows.md │ │ │ │ ├── updating-workflows.md │ │ │ │ ├── versioning-workflows.md │ │ │ │ └── view-workflow-executions.md │ │ │ ├── clojure-sdk.md │ │ │ ├── csharp-sdk.md │ │ │ ├── go-sdk.md │ │ │ ├── java-sdk.md │ │ │ └── python-sdk.md │ │ ├── index.md │ │ ├── labs/ │ │ │ ├── beginner.md │ │ │ ├── eventhandlers.md │ │ │ ├── kitchensink.md │ │ │ └── running-first-workflow.md │ │ ├── metrics/ │ │ │ ├── client.md │ │ │ └── server.md │ │ ├── reference-docs/ │ │ │ ├── annotation-processor.md │ │ │ ├── archival-of-workflows.md │ │ │ ├── azureblob-storage.md │ │ │ ├── directed-acyclic-graph.md │ │ │ ├── do-while-task.md │ │ │ ├── dynamic-fork-task.md │ │ │ ├── dynamic-task.md │ │ │ ├── event-task.md │ │ │ ├── fork-task.md │ │ │ ├── http-task.md │ │ │ ├── human-task.md │ │ │ ├── inline-task.md │ │ │ ├── join-task.md │ │ │ ├── json-jq-transform-task.md │ │ │ ├── kafka-publish-task.md │ │ │ ├── redis.md │ │ │ ├── set-variable-task.md │ │ │ ├── start-workflow-task.md │ │ │ ├── sub-workflow-task.md │ │ │ ├── switch-task.md │ │ │ ├── terminate-task.md │ │ │ └── wait-task.md │ │ ├── resources/ │ │ │ ├── code-of-conduct.md │ │ │ ├── contributing.md │ │ │ ├── license.md │ │ │ └── related.md │ │ └── technicaldetails.md │ ├── kitchensink.json │ ├── mkdocs.yml │ └── theme/ │ ├── main.html │ ├── toc-sub.html │ └── toc.html ├── es6-persistence/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ └── es6/ │ │ │ ├── config/ │ │ │ │ ├── ElasticSearchConditions.java │ │ │ │ ├── ElasticSearchProperties.java │ │ │ │ ├── ElasticSearchV6Configuration.java │ │ │ │ ├── IsHttpProtocol.java │ │ │ │ └── IsTcpProtocol.java │ │ │ └── dao/ │ │ │ ├── index/ │ │ │ │ ├── BulkRequestBuilderWrapper.java │ │ │ │ ├── BulkRequestWrapper.java │ │ │ │ ├── ElasticSearchBaseDAO.java │ │ │ │ ├── ElasticSearchDAOV6.java │ │ │ │ └── ElasticSearchRestDAOV6.java │ │ │ └── query/ │ │ │ └── parser/ │ │ │ ├── Expression.java │ │ │ ├── FilterProvider.java │ │ │ ├── GroupedExpression.java │ │ │ ├── NameValue.java │ │ │ └── internal/ │ │ │ ├── AbstractNode.java │ │ │ ├── BooleanOp.java │ │ │ ├── ComparisonOp.java │ │ │ ├── ConstValue.java │ │ │ ├── FunctionThrowingException.java │ │ │ ├── ListConst.java │ │ │ ├── Name.java │ │ │ ├── ParserException.java │ │ │ └── Range.java │ │ └── resources/ │ │ ├── mappings_docType_task.json │ │ ├── mappings_docType_workflow.json │ │ ├── template_event.json │ │ ├── template_message.json │ │ └── template_task_log.json │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── es6/ │ │ ├── dao/ │ │ │ ├── index/ │ │ │ │ ├── ElasticSearchDaoBaseTest.java │ │ │ │ ├── ElasticSearchRestDaoBaseTest.java │ │ │ │ ├── ElasticSearchTest.java │ │ │ │ ├── TestElasticSearchDAOV6.java │ │ │ │ ├── TestElasticSearchDAOV6Batch.java │ │ │ │ ├── TestElasticSearchRestDAOV6.java │ │ │ │ └── TestElasticSearchRestDAOV6Batch.java │ │ │ └── query/ │ │ │ └── parser/ │ │ │ ├── TestExpression.java │ │ │ └── internal/ │ │ │ ├── TestAbstractParser.java │ │ │ ├── TestBooleanOp.java │ │ │ ├── TestComparisonOp.java │ │ │ ├── TestConstValue.java │ │ │ └── TestName.java │ │ └── utils/ │ │ └── TestUtils.java │ └── resources/ │ ├── expected_template_task_log.json │ ├── task_summary.json │ └── workflow_summary.json ├── family.properties ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── grpc/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ └── grpc/ │ │ │ ├── AbstractProtoMapper.java │ │ │ └── ProtoMapper.java │ │ └── proto/ │ │ ├── grpc/ │ │ │ ├── event_service.proto │ │ │ ├── metadata_service.proto │ │ │ ├── search.proto │ │ │ ├── task_service.proto │ │ │ └── workflow_service.proto │ │ └── model/ │ │ ├── dynamicforkjointask.proto │ │ ├── dynamicforkjointasklist.proto │ │ ├── eventexecution.proto │ │ ├── eventhandler.proto │ │ ├── polldata.proto │ │ ├── rerunworkflowrequest.proto │ │ ├── skiptaskrequest.proto │ │ ├── startworkflowrequest.proto │ │ ├── subworkflowparams.proto │ │ ├── task.proto │ │ ├── taskdef.proto │ │ ├── taskexeclog.proto │ │ ├── taskresult.proto │ │ ├── tasksummary.proto │ │ ├── workflow.proto │ │ ├── workflowdef.proto │ │ ├── workflowdefsummary.proto │ │ ├── workflowsummary.proto │ │ └── workflowtask.proto │ └── test/ │ └── java/ │ └── com/ │ └── netflix/ │ └── conductor/ │ └── grpc/ │ └── TestProtoMapper.java ├── grpc-client/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── client/ │ │ └── grpc/ │ │ ├── ClientBase.java │ │ ├── EventClient.java │ │ ├── MetadataClient.java │ │ ├── TaskClient.java │ │ └── WorkflowClient.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── client/ │ │ └── grpc/ │ │ ├── EventClientTest.java │ │ ├── TaskClientTest.java │ │ └── WorkflowClientTest.java │ └── resources/ │ └── mockito-extensions/ │ └── org.mockito.plugins.MockMaker ├── grpc-server/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── grpc/ │ │ └── server/ │ │ ├── GRPCServer.java │ │ ├── GRPCServerProperties.java │ │ ├── GrpcConfiguration.java │ │ └── service/ │ │ ├── EventServiceImpl.java │ │ ├── GRPCHelper.java │ │ ├── HealthServiceImpl.java │ │ ├── MetadataServiceImpl.java │ │ ├── TaskServiceImpl.java │ │ └── WorkflowServiceImpl.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── grpc/ │ │ └── server/ │ │ └── service/ │ │ ├── HealthServiceImplTest.java │ │ ├── TaskServiceImplTest.java │ │ └── WorkflowServiceImplTest.java │ └── resources/ │ └── log4j.properties ├── http-task/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ └── tasks/ │ │ │ └── http/ │ │ │ ├── HttpTask.java │ │ │ └── providers/ │ │ │ ├── DefaultRestTemplateProvider.java │ │ │ └── RestTemplateProvider.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── additional-spring-configuration-metadata.json │ └── test/ │ └── java/ │ └── com/ │ └── netflix/ │ └── conductor/ │ └── tasks/ │ └── http/ │ ├── HttpTaskTest.java │ └── providers/ │ └── DefaultRestTemplateProviderTest.java ├── java-sdk/ │ ├── README.md │ ├── build.gradle │ ├── example/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ └── sdk/ │ │ │ └── example/ │ │ │ └── shipment/ │ │ │ ├── Order.java │ │ │ ├── Shipment.java │ │ │ ├── ShipmentState.java │ │ │ ├── ShipmentWorkers.java │ │ │ ├── ShipmentWorkflow.java │ │ │ └── User.java │ │ └── resources/ │ │ └── script.js │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── netflix/ │ │ │ │ └── conductor/ │ │ │ │ └── sdk/ │ │ │ │ ├── healthcheck/ │ │ │ │ │ └── HealthCheckClient.java │ │ │ │ ├── testing/ │ │ │ │ │ ├── LocalServerRunner.java │ │ │ │ │ └── WorkflowTestRunner.java │ │ │ │ └── workflow/ │ │ │ │ ├── def/ │ │ │ │ │ ├── ConductorWorkflow.java │ │ │ │ │ ├── ValidationError.java │ │ │ │ │ ├── WorkflowBuilder.java │ │ │ │ │ └── tasks/ │ │ │ │ │ ├── DoWhile.java │ │ │ │ │ ├── Dynamic.java │ │ │ │ │ ├── DynamicFork.java │ │ │ │ │ ├── DynamicForkInput.java │ │ │ │ │ ├── Event.java │ │ │ │ │ ├── ForkJoin.java │ │ │ │ │ ├── Http.java │ │ │ │ │ ├── JQ.java │ │ │ │ │ ├── Javascript.java │ │ │ │ │ ├── Join.java │ │ │ │ │ ├── SetVariable.java │ │ │ │ │ ├── SimpleTask.java │ │ │ │ │ ├── SubWorkflow.java │ │ │ │ │ ├── Switch.java │ │ │ │ │ ├── Task.java │ │ │ │ │ ├── TaskRegistry.java │ │ │ │ │ ├── Terminate.java │ │ │ │ │ └── Wait.java │ │ │ │ ├── executor/ │ │ │ │ │ ├── WorkflowExecutor.java │ │ │ │ │ └── task/ │ │ │ │ │ ├── AnnotatedWorker.java │ │ │ │ │ ├── AnnotatedWorkerExecutor.java │ │ │ │ │ ├── DynamicForkWorker.java │ │ │ │ │ ├── NonRetryableException.java │ │ │ │ │ ├── TaskContext.java │ │ │ │ │ └── WorkerConfiguration.java │ │ │ │ ├── task/ │ │ │ │ │ ├── InputParam.java │ │ │ │ │ ├── OutputParam.java │ │ │ │ │ └── WorkerTask.java │ │ │ │ └── utils/ │ │ │ │ ├── InputOutputGetter.java │ │ │ │ ├── MapBuilder.java │ │ │ │ └── ObjectMapperProvider.java │ │ │ └── resources/ │ │ │ └── test-server.properties │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ └── sdk/ │ │ │ └── workflow/ │ │ │ ├── def/ │ │ │ │ ├── TaskConversionsTests.java │ │ │ │ ├── WorkflowCreationTests.java │ │ │ │ ├── WorkflowDefTaskTests.java │ │ │ │ └── WorkflowState.java │ │ │ ├── executor/ │ │ │ │ └── task/ │ │ │ │ ├── AnnotatedWorkerTests.java │ │ │ │ └── TestWorkerConfig.java │ │ │ └── testing/ │ │ │ ├── Task1Input.java │ │ │ ├── TestWorkflowInput.java │ │ │ └── WorkflowTestFrameworkTests.java │ │ └── resources/ │ │ ├── application-integrationtest.properties │ │ ├── log4j2.xml │ │ ├── script.js │ │ ├── simple_workflow.json │ │ └── tasks.json │ ├── testing_framework.md │ ├── worker_sdk.md │ └── workflow_sdk.md ├── json-jq-task/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── tasks/ │ │ └── json/ │ │ └── JsonJqTransform.java │ └── test/ │ └── java/ │ └── com/ │ └── netflix/ │ └── conductor/ │ └── tasks/ │ └── json/ │ └── JsonJqTransformTest.java ├── licenseheader.txt ├── polyglot-clients/ │ └── README.md ├── redis-concurrency-limit/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── redis/ │ │ └── limit/ │ │ ├── RedisConcurrentExecutionLimitDAO.java │ │ └── config/ │ │ ├── RedisConcurrentExecutionLimitConfiguration.java │ │ └── RedisConcurrentExecutionLimitProperties.java │ └── test/ │ └── groovy/ │ └── com/ │ └── netflix/ │ └── conductor/ │ └── redis/ │ └── limit/ │ └── RedisConcurrentExecutionLimitDAOSpec.groovy ├── redis-lock/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ └── redislock/ │ │ │ ├── config/ │ │ │ │ ├── RedisLockConfiguration.java │ │ │ │ └── RedisLockProperties.java │ │ │ └── lock/ │ │ │ └── RedisLock.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── additional-spring-configuration-metadata.json │ └── test/ │ └── java/ │ └── com/ │ └── netflix/ │ └── conductor/ │ └── redis/ │ └── lock/ │ └── RedisLockTest.java ├── redis-persistence/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── redis/ │ │ ├── config/ │ │ │ ├── AnyRedisCondition.java │ │ │ ├── DynomiteClusterConfiguration.java │ │ │ ├── InMemoryRedisConfiguration.java │ │ │ ├── JedisCommandsConfigurer.java │ │ │ ├── RedisClusterConfiguration.java │ │ │ ├── RedisCommonConfiguration.java │ │ │ ├── RedisProperties.java │ │ │ ├── RedisSentinelConfiguration.java │ │ │ └── RedisStandaloneConfiguration.java │ │ ├── dao/ │ │ │ ├── BaseDynoDAO.java │ │ │ ├── DynoQueueDAO.java │ │ │ ├── RedisEventHandlerDAO.java │ │ │ ├── RedisExecutionDAO.java │ │ │ ├── RedisMetadataDAO.java │ │ │ ├── RedisPollDataDAO.java │ │ │ └── RedisRateLimitingDAO.java │ │ ├── dynoqueue/ │ │ │ ├── ConfigurationHostSupplier.java │ │ │ ├── LocalhostHostSupplier.java │ │ │ └── RedisQueuesShardingStrategyProvider.java │ │ └── jedis/ │ │ ├── JedisCluster.java │ │ ├── JedisMock.java │ │ ├── JedisProxy.java │ │ ├── JedisSentinel.java │ │ └── JedisStandalone.java │ └── test/ │ └── java/ │ └── com/ │ └── netflix/ │ └── conductor/ │ └── redis/ │ ├── config/ │ │ └── utils/ │ │ └── RedisQueuesShardingStrategyProviderTest.java │ ├── dao/ │ │ ├── BaseDynoDAOTest.java │ │ ├── DynoQueueDAOTest.java │ │ ├── RedisEventHandlerDAOTest.java │ │ ├── RedisExecutionDAOTest.java │ │ ├── RedisMetadataDAOTest.java │ │ ├── RedisPollDataDAOTest.java │ │ └── RedisRateLimitDAOTest.java │ └── jedis/ │ ├── ConfigurationHostSupplierTest.java │ ├── JedisClusterTest.java │ └── JedisSentinelTest.java ├── rest/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ └── rest/ │ │ │ ├── config/ │ │ │ │ ├── RequestMappingConstants.java │ │ │ │ └── RestConfiguration.java │ │ │ ├── controllers/ │ │ │ │ ├── AdminResource.java │ │ │ │ ├── ApplicationExceptionMapper.java │ │ │ │ ├── EventResource.java │ │ │ │ ├── HealthCheckResource.java │ │ │ │ ├── MetadataResource.java │ │ │ │ ├── QueueAdminResource.java │ │ │ │ ├── TaskResource.java │ │ │ │ ├── ValidationExceptionMapper.java │ │ │ │ ├── WorkflowBulkResource.java │ │ │ │ └── WorkflowResource.java │ │ │ └── startup/ │ │ │ └── KitchenSinkInitializer.java │ │ └── resources/ │ │ ├── kitchensink/ │ │ │ ├── kitchenSink-ephemeralWorkflowWithEphemeralTasks.json │ │ │ ├── kitchenSink-ephemeralWorkflowWithStoredTasks.json │ │ │ ├── kitchensink.json │ │ │ ├── sub_flow_1.json │ │ │ ├── wf1.json │ │ │ └── wf2.json │ │ └── static/ │ │ └── index.html │ └── test/ │ └── java/ │ └── com/ │ └── netflix/ │ └── conductor/ │ └── rest/ │ └── controllers/ │ ├── AdminResourceTest.java │ ├── EventResourceTest.java │ ├── MetadataResourceTest.java │ ├── TaskResourceTest.java │ └── WorkflowResourceTest.java ├── server/ │ ├── build.gradle │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── netflix/ │ │ │ └── conductor/ │ │ │ └── Conductor.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── additional-spring-configuration-metadata.json │ │ ├── application.properties │ │ ├── banner.txt │ │ └── log4j2.xml │ └── test/ │ └── java/ │ └── com/ │ └── netflix/ │ └── conductor/ │ └── common/ │ └── config/ │ └── ConductorObjectMapperTest.java ├── settings.gradle ├── springboot-bom-overrides.gradle ├── test-harness/ │ ├── build.gradle │ └── src/ │ └── test/ │ ├── groovy/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ └── test/ │ │ ├── base/ │ │ │ ├── AbstractResiliencySpecification.groovy │ │ │ └── AbstractSpecification.groovy │ │ ├── integration/ │ │ │ ├── DecisionTaskSpec.groovy │ │ │ ├── DoWhileSpec.groovy │ │ │ ├── DynamicForkJoinSpec.groovy │ │ │ ├── EventTaskSpec.groovy │ │ │ ├── ExclusiveJoinSpec.groovy │ │ │ ├── ExternalPayloadStorageSpec.groovy │ │ │ ├── FailureWorkflowSpec.groovy │ │ │ ├── ForkJoinSpec.groovy │ │ │ ├── HierarchicalForkJoinSubworkflowRerunSpec.groovy │ │ │ ├── HierarchicalForkJoinSubworkflowRestartSpec.groovy │ │ │ ├── HierarchicalForkJoinSubworkflowRetrySpec.groovy │ │ │ ├── JsonJQTransformSpec.groovy │ │ │ ├── LambdaAndTerminateTaskSpec.groovy │ │ │ ├── NestedForkJoinSubWorkflowSpec.groovy │ │ │ ├── SetVariableTaskSpec.groovy │ │ │ ├── SimpleWorkflowSpec.groovy │ │ │ ├── StartWorkflowSpec.groovy │ │ │ ├── SubWorkflowRerunSpec.groovy │ │ │ ├── SubWorkflowRestartSpec.groovy │ │ │ ├── SubWorkflowRetrySpec.groovy │ │ │ ├── SubWorkflowSpec.groovy │ │ │ ├── SwitchTaskSpec.groovy │ │ │ ├── SystemTaskSpec.groovy │ │ │ ├── TaskLimitsWorkflowSpec.groovy │ │ │ ├── TestWorkflowSpec.groovy │ │ │ ├── WaitTaskSpec.groovy │ │ │ └── WorkflowAndTaskConfigurationSpec.groovy │ │ ├── resiliency/ │ │ │ ├── QueueResiliencySpec.groovy │ │ │ └── TaskResiliencySpec.groovy │ │ └── util/ │ │ └── WorkflowTestUtil.groovy │ ├── java/ │ │ └── com/ │ │ └── netflix/ │ │ └── conductor/ │ │ ├── ConductorTestApp.java │ │ └── test/ │ │ ├── integration/ │ │ │ ├── AbstractEndToEndTest.java │ │ │ ├── grpc/ │ │ │ │ ├── AbstractGrpcEndToEndTest.java │ │ │ │ └── GrpcEndToEndTest.java │ │ │ └── http/ │ │ │ ├── AbstractHttpEndToEndTest.java │ │ │ └── HttpEndToEndTest.java │ │ └── utils/ │ │ ├── MockExternalPayloadStorage.java │ │ └── UserTask.java │ └── resources/ │ ├── application-integrationtest.properties │ ├── concurrency_limited_task_workflow_integration_test.json │ ├── conditional_switch_task_workflow_integration_test.json │ ├── conditional_system_task_workflow_integration_test.json │ ├── conditional_task_workflow_integration_test.json │ ├── decision_and_fork_join_integration_test.json │ ├── decision_and_terminate_integration_test.json │ ├── do_while_as_subtask_integration_test.json │ ├── do_while_five_loop_over_integration_test.json │ ├── do_while_integration_test.json │ ├── do_while_iteration_fix_test.json │ ├── do_while_multiple_integration_test.json │ ├── do_while_set_variable_fix.json │ ├── do_while_sub_workflow_integration_test.json │ ├── do_while_system_tasks.json │ ├── do_while_with_decision_task.json │ ├── dynamic_fork_join_integration_test.json │ ├── event_workflow_integration_test.json │ ├── exclusive_join_integration_test.json │ ├── failure_workflow_for_terminate_task_workflow.json │ ├── fork_join_integration_test.json │ ├── fork_join_sub_workflow.json │ ├── fork_join_with_no_task_retry_integration_test.json │ ├── fork_join_with_optional_sub_workflow_forks_integration_test.json │ ├── hierarchical_fork_join_swf.json │ ├── input.json │ ├── json_jq_transform_result_integration_test.json │ ├── nested_fork_join_integration_test.json │ ├── nested_fork_join_swf.json │ ├── nested_fork_join_with_sub_workflow_integration_test.json │ ├── output.json │ ├── rate_limited_simple_task_workflow_integration_test.json │ ├── rate_limited_system_task_workflow_integration_test.json │ ├── sequential_json_jq_transform_integration_test.json │ ├── set_variable_workflow_integration_test.json │ ├── simple_decision_task_integration_test.json │ ├── simple_json_jq_transform_integration_test.json │ ├── simple_lambda_workflow_integration_test.json │ ├── simple_one_task_sub_workflow_integration_test.json │ ├── simple_set_variable_workflow_integration_test.json │ ├── simple_switch_task_integration_test.json │ ├── simple_wait_task_workflow_integration_test.json │ ├── simple_workflow_1_input_template_integration_test.json │ ├── simple_workflow_1_integration_test.json │ ├── simple_workflow_3_integration_test.json │ ├── simple_workflow_with_async_complete_system_task_integration_test.json │ ├── simple_workflow_with_optional_task_integration_test.json │ ├── simple_workflow_with_resp_time_out_integration_test.json │ ├── simple_workflow_with_sub_workflow_inline_def_integration_test.json │ ├── start_workflow_input.json │ ├── switch_and_fork_join_integration_test.json │ ├── switch_and_terminate_integration_test.json │ ├── switch_with_no_default_case_integration_test.json │ ├── terminate_task_completed_workflow_integration_test.json │ ├── terminate_task_failed_workflow_integration.json │ ├── terminate_task_parent_workflow.json │ ├── terminate_task_sub_workflow.json │ ├── test_task_failed_parent_workflow.json │ ├── test_task_failed_sub_workflow.json │ ├── wait_workflow_integration_test.json │ ├── workflow_that_starts_another_workflow.json │ ├── workflow_with_sub_workflow_1_integration_test.json │ └── workflow_with_synchronous_system_task.json └── ui/ ├── .eslintrc ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── README.md ├── cypress/ │ ├── e2e/ │ │ └── spec.cy.js │ ├── fixtures/ │ │ ├── doWhile/ │ │ │ └── doWhileSwitch.json │ │ ├── dynamicFork/ │ │ │ ├── externalizedInput.json │ │ │ ├── noneSpawned.json │ │ │ ├── notExecuted.json │ │ │ ├── oneFailed.json │ │ │ └── success.json │ │ ├── dynamicFork.json │ │ ├── metadataTasks.json │ │ ├── metadataWorkflow.json │ │ ├── taskSearch.json │ │ └── workflowSearch.json │ └── support/ │ ├── commands.ts │ ├── component-index.html │ ├── component.ts │ └── e2e.ts ├── cypress.config.ts ├── package.json ├── public/ │ ├── index.html │ └── robots.txt ├── src/ │ ├── App.jsx │ ├── components/ │ │ ├── Banner.jsx │ │ ├── Button.jsx │ │ ├── ButtonGroup.jsx │ │ ├── ConfirmChoiceDialog.jsx │ │ ├── CustomButtons.jsx │ │ ├── DataTable.jsx │ │ ├── DateRangePicker.jsx │ │ ├── Dropdown.jsx │ │ ├── DropdownButton.jsx │ │ ├── Heading.jsx │ │ ├── Input.jsx │ │ ├── KeyValueTable.jsx │ │ ├── LinearProgress.jsx │ │ ├── NavLink.jsx │ │ ├── Paper.jsx │ │ ├── Pill.jsx │ │ ├── PrimaryButton.jsx │ │ ├── ReactJson.jsx │ │ ├── SecondaryButton.jsx │ │ ├── Select.jsx │ │ ├── SplitButton.jsx │ │ ├── StatusBadge.jsx │ │ ├── Tabs.jsx │ │ ├── TaskLink.jsx │ │ ├── TaskNameInput.jsx │ │ ├── TertiaryButton.jsx │ │ ├── Text.jsx │ │ ├── WorkflowNameInput.jsx │ │ ├── definitionList/ │ │ │ └── DefinitionList.jsx │ │ ├── diagram/ │ │ │ ├── TaskPointer.d.ts │ │ │ ├── TaskResult.d.ts │ │ │ ├── WorkflowDAG.js │ │ │ ├── WorkflowGraph.jsx │ │ │ ├── WorkflowGraph.test.cy.js │ │ │ └── diagram.scss │ │ ├── formik/ │ │ │ ├── FormikCronEditor.jsx │ │ │ ├── FormikDropdown.jsx │ │ │ ├── FormikInput.jsx │ │ │ ├── FormikJsonInput.jsx │ │ │ ├── FormikSwitch.jsx │ │ │ ├── FormikVersionDropdown.jsx │ │ │ ├── FormikWorkflowNameInput.jsx │ │ │ └── cron.css │ │ └── index.js │ ├── data/ │ │ ├── actions.js │ │ ├── bulkactions.js │ │ ├── common.js │ │ ├── misc.js │ │ ├── task.js │ │ └── workflow.js │ ├── hooks/ │ │ └── useTime.js │ ├── index.css │ ├── index.js │ ├── pages/ │ │ ├── definition/ │ │ │ ├── EventHandler.jsx │ │ │ ├── ResetConfirmationDialog.jsx │ │ │ ├── SaveTaskDialog.jsx │ │ │ ├── SaveWorkflowDialog.jsx │ │ │ ├── TaskDefinition.jsx │ │ │ └── WorkflowDefinition.jsx │ │ ├── definitions/ │ │ │ ├── EventHandler.jsx │ │ │ ├── Header.jsx │ │ │ ├── Task.jsx │ │ │ └── Workflow.jsx │ │ ├── execution/ │ │ │ ├── ActionModule.jsx │ │ │ ├── Execution.jsx │ │ │ ├── ExecutionInputOutput.jsx │ │ │ ├── ExecutionJson.jsx │ │ │ ├── ExecutionSummary.jsx │ │ │ ├── Legend.jsx │ │ │ ├── RightPanel.jsx │ │ │ ├── TaskDetails.jsx │ │ │ ├── TaskList.jsx │ │ │ ├── TaskLogs.jsx │ │ │ ├── TaskPollData.jsx │ │ │ ├── TaskSummary.jsx │ │ │ ├── Timeline.jsx │ │ │ └── timeline.scss │ │ ├── executions/ │ │ │ ├── BulkActionModule.jsx │ │ │ ├── ResultsTable.jsx │ │ │ ├── SearchTabs.jsx │ │ │ ├── TaskResultsTable.jsx │ │ │ ├── TaskSearch.jsx │ │ │ ├── WorkflowSearch.jsx │ │ │ └── executionsStyles.js │ │ ├── kitchensink/ │ │ │ ├── DataTableDemo.jsx │ │ │ ├── DiagramTest.jsx │ │ │ ├── Dropdown.jsx │ │ │ ├── EnhancedTable.jsx │ │ │ ├── Examples.jsx │ │ │ ├── Gantt.jsx │ │ │ ├── KitchenSink.jsx │ │ │ └── sampleMovieData.js │ │ ├── misc/ │ │ │ └── TaskQueue.jsx │ │ ├── styles.js │ │ └── workbench/ │ │ ├── ExecutionHistory.jsx │ │ ├── RunHistory.tsx │ │ ├── Workbench.jsx │ │ └── WorkbenchForm.jsx │ ├── plugins/ │ │ ├── AppBarModules.jsx │ │ ├── AppLogo.jsx │ │ ├── CustomAppBarButtons.jsx │ │ ├── CustomRoutes.jsx │ │ ├── constants.js │ │ ├── customTypeRenderers.jsx │ │ ├── env.js │ │ └── fetch.js │ ├── react-app-env.d.ts │ ├── schema/ │ │ ├── task.js │ │ └── workflow.js │ ├── serviceWorker.js │ ├── setupProxy.js │ ├── setupTests.js │ ├── theme/ │ │ ├── colorOverrides.js │ │ ├── colors.js │ │ ├── index.js │ │ ├── provider.jsx │ │ ├── theme.js │ │ └── variables.js │ └── utils/ │ ├── constants.js │ ├── helpers.js │ ├── localstorage.ts │ └── path.js ├── test-karbon.sh └── tsconfig.json