tasker-engine 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (605) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +22 -0
  3. data/README.md +443 -0
  4. data/Rakefile +10 -0
  5. data/app/controllers/tasker/analytics_controller.rb +179 -0
  6. data/app/controllers/tasker/application_controller.rb +45 -0
  7. data/app/controllers/tasker/graphql_controller.rb +193 -0
  8. data/app/controllers/tasker/handlers_controller.rb +217 -0
  9. data/app/controllers/tasker/health_controller.rb +229 -0
  10. data/app/controllers/tasker/metrics_controller.rb +111 -0
  11. data/app/controllers/tasker/page_sort.rb +97 -0
  12. data/app/controllers/tasker/task_diagrams_controller.rb +30 -0
  13. data/app/controllers/tasker/tasks_controller.rb +123 -0
  14. data/app/controllers/tasker/workflow_steps_controller.rb +69 -0
  15. data/app/graphql/examples/all_tasks.graphql +22 -0
  16. data/app/graphql/examples/pending_tasks.graphql +23 -0
  17. data/app/graphql/tasker/graph_ql_types/annotation_type.rb +14 -0
  18. data/app/graphql/tasker/graph_ql_types/base_argument.rb +9 -0
  19. data/app/graphql/tasker/graph_ql_types/base_connection.rb +11 -0
  20. data/app/graphql/tasker/graph_ql_types/base_edge.rb +10 -0
  21. data/app/graphql/tasker/graph_ql_types/base_enum.rb +9 -0
  22. data/app/graphql/tasker/graph_ql_types/base_field.rb +10 -0
  23. data/app/graphql/tasker/graph_ql_types/base_input_object.rb +10 -0
  24. data/app/graphql/tasker/graph_ql_types/base_interface.rb +14 -0
  25. data/app/graphql/tasker/graph_ql_types/base_object.rb +10 -0
  26. data/app/graphql/tasker/graph_ql_types/base_scalar.rb +9 -0
  27. data/app/graphql/tasker/graph_ql_types/base_union.rb +11 -0
  28. data/app/graphql/tasker/graph_ql_types/dependent_system_object_map_type.rb +18 -0
  29. data/app/graphql/tasker/graph_ql_types/dependent_system_type.rb +13 -0
  30. data/app/graphql/tasker/graph_ql_types/mutation_type.rb +16 -0
  31. data/app/graphql/tasker/graph_ql_types/named_step_type.rb +16 -0
  32. data/app/graphql/tasker/graph_ql_types/named_task_type.rb +14 -0
  33. data/app/graphql/tasker/graph_ql_types/named_tasks_named_step_type.rb +19 -0
  34. data/app/graphql/tasker/graph_ql_types/node_type.rb +12 -0
  35. data/app/graphql/tasker/graph_ql_types/query_type.rb +20 -0
  36. data/app/graphql/tasker/graph_ql_types/task_annotation_type.rb +17 -0
  37. data/app/graphql/tasker/graph_ql_types/task_interface.rb +17 -0
  38. data/app/graphql/tasker/graph_ql_types/task_type.rb +26 -0
  39. data/app/graphql/tasker/graph_ql_types/workflow_step_type.rb +154 -0
  40. data/app/graphql/tasker/graph_ql_types.rb +42 -0
  41. data/app/graphql/tasker/mutations/base_mutation.rb +13 -0
  42. data/app/graphql/tasker/mutations/cancel_step.rb +29 -0
  43. data/app/graphql/tasker/mutations/cancel_task.rb +29 -0
  44. data/app/graphql/tasker/mutations/create_task.rb +52 -0
  45. data/app/graphql/tasker/mutations/update_step.rb +36 -0
  46. data/app/graphql/tasker/mutations/update_task.rb +41 -0
  47. data/app/graphql/tasker/queries/all_annotation_types.rb +17 -0
  48. data/app/graphql/tasker/queries/all_tasks.rb +23 -0
  49. data/app/graphql/tasker/queries/base_query.rb +9 -0
  50. data/app/graphql/tasker/queries/helpers.rb +16 -0
  51. data/app/graphql/tasker/queries/one_step.rb +24 -0
  52. data/app/graphql/tasker/queries/one_task.rb +18 -0
  53. data/app/graphql/tasker/queries/tasks_by_annotation.rb +31 -0
  54. data/app/graphql/tasker/queries/tasks_by_status.rb +30 -0
  55. data/app/graphql/tasker/tasker_rails_schema.rb +52 -0
  56. data/app/jobs/tasker/application_job.rb +8 -0
  57. data/app/jobs/tasker/metrics_export_job.rb +252 -0
  58. data/app/jobs/tasker/task_runner_job.rb +224 -0
  59. data/app/models/tasker/annotation_type.rb +26 -0
  60. data/app/models/tasker/application_record.rb +70 -0
  61. data/app/models/tasker/dependent_system.rb +26 -0
  62. data/app/models/tasker/dependent_system_object_map.rb +64 -0
  63. data/app/models/tasker/diagram/edge.rb +106 -0
  64. data/app/models/tasker/diagram/flowchart.rb +137 -0
  65. data/app/models/tasker/diagram/node.rb +99 -0
  66. data/app/models/tasker/named_step.rb +41 -0
  67. data/app/models/tasker/named_task.rb +121 -0
  68. data/app/models/tasker/named_tasks_named_step.rb +82 -0
  69. data/app/models/tasker/step_dag_relationship.rb +65 -0
  70. data/app/models/tasker/step_readiness_status.rb +59 -0
  71. data/app/models/tasker/task.rb +424 -0
  72. data/app/models/tasker/task_annotation.rb +36 -0
  73. data/app/models/tasker/task_diagram.rb +332 -0
  74. data/app/models/tasker/task_execution_context.rb +29 -0
  75. data/app/models/tasker/task_namespace.rb +41 -0
  76. data/app/models/tasker/task_transition.rb +235 -0
  77. data/app/models/tasker/workflow_step.rb +461 -0
  78. data/app/models/tasker/workflow_step_edge.rb +94 -0
  79. data/app/models/tasker/workflow_step_transition.rb +434 -0
  80. data/app/serializers/tasker/annotation_type_serializer.rb +8 -0
  81. data/app/serializers/tasker/handler_serializer.rb +109 -0
  82. data/app/serializers/tasker/task_annotation_serializer.rb +32 -0
  83. data/app/serializers/tasker/task_serializer.rb +168 -0
  84. data/app/serializers/tasker/workflow_step_serializer.rb +27 -0
  85. data/app/services/tasker/analytics_service.rb +409 -0
  86. data/app/views/tasker/task/_diagram.html.erb +32 -0
  87. data/config/initializers/dry_struct.rb +11 -0
  88. data/config/initializers/statesman.rb +6 -0
  89. data/config/initializers/tasker_orchestration.rb +17 -0
  90. data/config/initializers/time_formats.rb +4 -0
  91. data/config/routes.rb +34 -0
  92. data/config/tasker/subscriptions/example_integrations.yml +67 -0
  93. data/config/tasker/system_events.yml +305 -0
  94. data/db/functions/calculate_dependency_levels_v01.sql +45 -0
  95. data/db/functions/get_analytics_metrics_v01.sql +137 -0
  96. data/db/functions/get_slowest_steps_v01.sql +82 -0
  97. data/db/functions/get_slowest_tasks_v01.sql +96 -0
  98. data/db/functions/get_step_readiness_status_batch_v01.sql +140 -0
  99. data/db/functions/get_step_readiness_status_v01.sql +139 -0
  100. data/db/functions/get_system_health_counts_v01.sql +108 -0
  101. data/db/functions/get_task_execution_context_v01.sql +108 -0
  102. data/db/functions/get_task_execution_contexts_batch_v01.sql +104 -0
  103. data/db/init/schema.sql +2277 -0
  104. data/db/migrate/20250701165431_initial_tasker_schema.rb +116 -0
  105. data/db/views/tasker_step_dag_relationships_v01.sql +69 -0
  106. data/docs/APPLICATION_GENERATOR.md +384 -0
  107. data/docs/AUTH.md +1780 -0
  108. data/docs/CIRCUIT_BREAKER.md +224 -0
  109. data/docs/DEVELOPER_GUIDE.md +2665 -0
  110. data/docs/EVENT_SYSTEM.md +637 -0
  111. data/docs/EXECUTION_CONFIGURATION.md +341 -0
  112. data/docs/FLOW_CHART.md +149 -0
  113. data/docs/HEALTH.md +542 -0
  114. data/docs/METRICS.md +731 -0
  115. data/docs/OPTIMIZATION_PLAN.md +1479 -0
  116. data/docs/OVERVIEW.md +552 -0
  117. data/docs/QUICK_START.md +270 -0
  118. data/docs/REGISTRY_SYSTEMS.md +373 -0
  119. data/docs/REST_API.md +632 -0
  120. data/docs/ROADMAP.md +221 -0
  121. data/docs/SQL_FUNCTIONS.md +1408 -0
  122. data/docs/TASK_DIAGRAM.md +252 -0
  123. data/docs/TASK_EXECUTION_CONTROL_FLOW.md +237 -0
  124. data/docs/TELEMETRY.md +795 -0
  125. data/docs/TROUBLESHOOTING.md +756 -0
  126. data/docs/TaskHandlerGenerator.html +255 -0
  127. data/docs/Tasker/Analysis/RuntimeGraphAnalyzer.html +907 -0
  128. data/docs/Tasker/Analysis/TemplateGraphAnalyzer.html +1236 -0
  129. data/docs/Tasker/Analysis.html +117 -0
  130. data/docs/Tasker/AnalyticsController.html +450 -0
  131. data/docs/Tasker/AnalyticsService/BottleneckAnalytics.html +816 -0
  132. data/docs/Tasker/AnalyticsService/PerformanceAnalytics.html +586 -0
  133. data/docs/Tasker/AnalyticsService.html +2221 -0
  134. data/docs/Tasker/AnnotationType.html +137 -0
  135. data/docs/Tasker/AnnotationTypeSerializer.html +124 -0
  136. data/docs/Tasker/ApplicationController.html +147 -0
  137. data/docs/Tasker/ApplicationJob.html +128 -0
  138. data/docs/Tasker/ApplicationRecord.html +378 -0
  139. data/docs/Tasker/Authentication/AuthenticationError.html +124 -0
  140. data/docs/Tasker/Authentication/ConfigurationError.html +124 -0
  141. data/docs/Tasker/Authentication/Coordinator.html +242 -0
  142. data/docs/Tasker/Authentication/Interface.html +560 -0
  143. data/docs/Tasker/Authentication/InterfaceError.html +124 -0
  144. data/docs/Tasker/Authentication/NoneAuthenticator.html +338 -0
  145. data/docs/Tasker/Authentication.html +119 -0
  146. data/docs/Tasker/Authorization/AuthorizationError.html +139 -0
  147. data/docs/Tasker/Authorization/BaseCoordinator.html +927 -0
  148. data/docs/Tasker/Authorization/ConfigurationError.html +153 -0
  149. data/docs/Tasker/Authorization/ResourceConstants/ACTIONS.html +428 -0
  150. data/docs/Tasker/Authorization/ResourceConstants/RESOURCES.html +365 -0
  151. data/docs/Tasker/Authorization/ResourceConstants.html +146 -0
  152. data/docs/Tasker/Authorization/ResourceRegistry.html +882 -0
  153. data/docs/Tasker/Authorization/UnauthorizedError.html +153 -0
  154. data/docs/Tasker/Authorization.html +582 -0
  155. data/docs/Tasker/CacheCapabilities.html +167 -0
  156. data/docs/Tasker/CacheStrategy.html +1297 -0
  157. data/docs/Tasker/Concerns/Authenticatable.html +116 -0
  158. data/docs/Tasker/Concerns/Authorizable/AdminStatusChecker.html +256 -0
  159. data/docs/Tasker/Concerns/Authorizable.html +816 -0
  160. data/docs/Tasker/Concerns/ControllerAuthorizable.html +157 -0
  161. data/docs/Tasker/Concerns/EventPublisher.html +4023 -0
  162. data/docs/Tasker/Concerns/IdempotentStateTransitions.html +806 -0
  163. data/docs/Tasker/Concerns/LifecycleEventHelpers.html +129 -0
  164. data/docs/Tasker/Concerns/OrchestrationPublisher.html +129 -0
  165. data/docs/Tasker/Concerns/StateMachineBase/ClassMethods.html +1075 -0
  166. data/docs/Tasker/Concerns/StateMachineBase/StateMachineBase/ClassMethods.html +191 -0
  167. data/docs/Tasker/Concerns/StateMachineBase/StateMachineBase.html +126 -0
  168. data/docs/Tasker/Concerns/StateMachineBase.html +153 -0
  169. data/docs/Tasker/Concerns/StructuredLogging.html +1413 -0
  170. data/docs/Tasker/Concerns.html +117 -0
  171. data/docs/Tasker/Configuration/AuthConfiguration.html +1023 -0
  172. data/docs/Tasker/Configuration/ConfigurationProxy.html +581 -0
  173. data/docs/Tasker/Configuration/DatabaseConfiguration.html +475 -0
  174. data/docs/Tasker/Configuration/EngineConfiguration.html +1265 -0
  175. data/docs/Tasker/Configuration/HealthConfiguration.html +791 -0
  176. data/docs/Tasker/Configuration/TelemetryConfiguration.html +1308 -0
  177. data/docs/Tasker/Configuration/TelemetryConfigurationProxy.html +388 -0
  178. data/docs/Tasker/Configuration.html +1669 -0
  179. data/docs/Tasker/ConfigurationError.html +143 -0
  180. data/docs/Tasker/ConfiguredTask.html +514 -0
  181. data/docs/Tasker/Constants/EventDefinitions.html +590 -0
  182. data/docs/Tasker/Constants/LifecycleEvents.html +137 -0
  183. data/docs/Tasker/Constants/ObservabilityEvents/Step.html +152 -0
  184. data/docs/Tasker/Constants/ObservabilityEvents/Task.html +142 -0
  185. data/docs/Tasker/Constants/ObservabilityEvents.html +126 -0
  186. data/docs/Tasker/Constants/RegistryEvents.html +285 -0
  187. data/docs/Tasker/Constants/StepEvents.html +177 -0
  188. data/docs/Tasker/Constants/TaskEvents.html +167 -0
  189. data/docs/Tasker/Constants/TaskExecution/ExecutionStatus.html +207 -0
  190. data/docs/Tasker/Constants/TaskExecution/HealthStatus.html +191 -0
  191. data/docs/Tasker/Constants/TaskExecution/RecommendedAction.html +207 -0
  192. data/docs/Tasker/Constants/TaskExecution.html +126 -0
  193. data/docs/Tasker/Constants/TaskFinalization/ErrorMessages.html +132 -0
  194. data/docs/Tasker/Constants/TaskFinalization/PendingReasons.html +207 -0
  195. data/docs/Tasker/Constants/TaskFinalization/ReenqueueReasons.html +239 -0
  196. data/docs/Tasker/Constants/TaskFinalization.html +126 -0
  197. data/docs/Tasker/Constants/TaskStatuses.html +223 -0
  198. data/docs/Tasker/Constants/TestEvents.html +163 -0
  199. data/docs/Tasker/Constants/WorkflowEvents.html +222 -0
  200. data/docs/Tasker/Constants/WorkflowStepStatuses.html +223 -0
  201. data/docs/Tasker/Constants.html +561 -0
  202. data/docs/Tasker/DependentSystem.html +137 -0
  203. data/docs/Tasker/DependentSystemObjectMap.html +250 -0
  204. data/docs/Tasker/DetectorRegistry.html +598 -0
  205. data/docs/Tasker/Diagram/Edge.html +1191 -0
  206. data/docs/Tasker/Diagram/Flowchart.html +1539 -0
  207. data/docs/Tasker/Diagram/Node.html +1165 -0
  208. data/docs/Tasker/Diagram.html +117 -0
  209. data/docs/Tasker/Engine.html +215 -0
  210. data/docs/Tasker/Error.html +139 -0
  211. data/docs/Tasker/Events/Bus.html +1226 -0
  212. data/docs/Tasker/Events/Catalog/CatalogPrinter.html +258 -0
  213. data/docs/Tasker/Events/Catalog/CustomEventRegistrar.html +276 -0
  214. data/docs/Tasker/Events/Catalog/ExamplePayloadGenerator.html +294 -0
  215. data/docs/Tasker/Events/Catalog.html +1291 -0
  216. data/docs/Tasker/Events/CustomRegistry.html +943 -0
  217. data/docs/Tasker/Events/DefinitionLoader.html +575 -0
  218. data/docs/Tasker/Events/EventPayloadBuilder/ErrorInfoExtractor.html +286 -0
  219. data/docs/Tasker/Events/EventPayloadBuilder/StepPayloadBuilder.html +312 -0
  220. data/docs/Tasker/Events/EventPayloadBuilder.html +664 -0
  221. data/docs/Tasker/Events/Publisher.html +365 -0
  222. data/docs/Tasker/Events/Subscribers/BaseSubscriber/ErrorCategorizer/ErrorTypeClassifier.html +1128 -0
  223. data/docs/Tasker/Events/Subscribers/BaseSubscriber/ErrorCategorizer.html +270 -0
  224. data/docs/Tasker/Events/Subscribers/BaseSubscriber/MetricTagsExtractor.html +266 -0
  225. data/docs/Tasker/Events/Subscribers/BaseSubscriber.html +2556 -0
  226. data/docs/Tasker/Events/Subscribers/MetricsSubscriber.html +723 -0
  227. data/docs/Tasker/Events/Subscribers/TelemetrySubscriber.html +2251 -0
  228. data/docs/Tasker/Events/Subscribers.html +117 -0
  229. data/docs/Tasker/Events/SubscriptionLoader.html +493 -0
  230. data/docs/Tasker/Events.html +294 -0
  231. data/docs/Tasker/EventsGenerator.html +459 -0
  232. data/docs/Tasker/Functions/FunctionBasedAnalyticsMetrics/AnalyticsMetrics.html +135 -0
  233. data/docs/Tasker/Functions/FunctionBasedAnalyticsMetrics.html +412 -0
  234. data/docs/Tasker/Functions/FunctionBasedDependencyLevels.html +598 -0
  235. data/docs/Tasker/Functions/FunctionBasedSlowestSteps/SlowestStep.html +135 -0
  236. data/docs/Tasker/Functions/FunctionBasedSlowestSteps.html +453 -0
  237. data/docs/Tasker/Functions/FunctionBasedSlowestTasks/SlowestTask.html +135 -0
  238. data/docs/Tasker/Functions/FunctionBasedSlowestTasks.html +453 -0
  239. data/docs/Tasker/Functions/FunctionBasedStepReadinessStatus.html +1457 -0
  240. data/docs/Tasker/Functions/FunctionBasedSystemHealthCounts/HealthMetrics.html +135 -0
  241. data/docs/Tasker/Functions/FunctionBasedSystemHealthCounts.html +370 -0
  242. data/docs/Tasker/Functions/FunctionBasedTaskExecutionContext.html +1250 -0
  243. data/docs/Tasker/Functions/FunctionWrapper.html +479 -0
  244. data/docs/Tasker/Functions.html +117 -0
  245. data/docs/Tasker/Generators/AuthenticatorGenerator/UsageInstructionsFormatter.html +244 -0
  246. data/docs/Tasker/Generators/AuthenticatorGenerator.html +373 -0
  247. data/docs/Tasker/Generators/AuthorizationCoordinatorGenerator.html +430 -0
  248. data/docs/Tasker/Generators/SubscriberGenerator.html +377 -0
  249. data/docs/Tasker/Generators/TaskHandlerGenerator.html +263 -0
  250. data/docs/Tasker/Generators.html +117 -0
  251. data/docs/Tasker/GraphQLTypes/AnnotationType.html +132 -0
  252. data/docs/Tasker/GraphQLTypes/BaseArgument.html +124 -0
  253. data/docs/Tasker/GraphQLTypes/BaseConnection.html +124 -0
  254. data/docs/Tasker/GraphQLTypes/BaseEdge.html +130 -0
  255. data/docs/Tasker/GraphQLTypes/BaseEnum.html +124 -0
  256. data/docs/Tasker/GraphQLTypes/BaseField.html +124 -0
  257. data/docs/Tasker/GraphQLTypes/BaseInputObject.html +124 -0
  258. data/docs/Tasker/GraphQLTypes/BaseInterface.html +116 -0
  259. data/docs/Tasker/GraphQLTypes/BaseObject.html +128 -0
  260. data/docs/Tasker/GraphQLTypes/BaseScalar.html +124 -0
  261. data/docs/Tasker/GraphQLTypes/BaseUnion.html +124 -0
  262. data/docs/Tasker/GraphQLTypes/DependentSystemObjectMapType.html +132 -0
  263. data/docs/Tasker/GraphQLTypes/DependentSystemType.html +132 -0
  264. data/docs/Tasker/GraphQLTypes/MutationType.html +132 -0
  265. data/docs/Tasker/GraphQLTypes/NamedStepType.html +132 -0
  266. data/docs/Tasker/GraphQLTypes/NamedTaskType.html +132 -0
  267. data/docs/Tasker/GraphQLTypes/NamedTasksNamedStepType.html +132 -0
  268. data/docs/Tasker/GraphQLTypes/NodeType.html +118 -0
  269. data/docs/Tasker/GraphQLTypes/QueryType.html +139 -0
  270. data/docs/Tasker/GraphQLTypes/TaskAnnotationType.html +132 -0
  271. data/docs/Tasker/GraphQLTypes/TaskInterface.html +111 -0
  272. data/docs/Tasker/GraphQLTypes/TaskType.html +201 -0
  273. data/docs/Tasker/GraphQLTypes/WorkflowStepType.html +694 -0
  274. data/docs/Tasker/GraphQLTypes.html +130 -0
  275. data/docs/Tasker/GraphqlController.html +251 -0
  276. data/docs/Tasker/HandlerFactory.html +1518 -0
  277. data/docs/Tasker/HandlerSerializer.html +682 -0
  278. data/docs/Tasker/HandlersController.html +574 -0
  279. data/docs/Tasker/HashIdentityStrategy.html +278 -0
  280. data/docs/Tasker/Health/ReadinessChecker.html +712 -0
  281. data/docs/Tasker/Health/StatusChecker.html +653 -0
  282. data/docs/Tasker/Health.html +117 -0
  283. data/docs/Tasker/HealthController.html +523 -0
  284. data/docs/Tasker/IdentityStrategy.html +276 -0
  285. data/docs/Tasker/InvalidTaskHandlerConfig.html +135 -0
  286. data/docs/Tasker/LifecycleEvents/Events/Step.html +162 -0
  287. data/docs/Tasker/LifecycleEvents/Events/Task.html +162 -0
  288. data/docs/Tasker/LifecycleEvents/Events.html +204 -0
  289. data/docs/Tasker/LifecycleEvents/Publisher.html +132 -0
  290. data/docs/Tasker/LifecycleEvents.html +799 -0
  291. data/docs/Tasker/Logging/CorrelationIdGenerator.html +688 -0
  292. data/docs/Tasker/Logging.html +115 -0
  293. data/docs/Tasker/MetricsController.html +293 -0
  294. data/docs/Tasker/MetricsExportJob.html +414 -0
  295. data/docs/Tasker/Mutations/BaseMutation.html +128 -0
  296. data/docs/Tasker/Mutations/CancelStep.html +219 -0
  297. data/docs/Tasker/Mutations/CancelTask.html +221 -0
  298. data/docs/Tasker/Mutations/CreateTask.html +243 -0
  299. data/docs/Tasker/Mutations/UpdateStep.html +243 -0
  300. data/docs/Tasker/Mutations/UpdateTask.html +243 -0
  301. data/docs/Tasker/Mutations.html +117 -0
  302. data/docs/Tasker/NamedStep.html +216 -0
  303. data/docs/Tasker/NamedTask.html +910 -0
  304. data/docs/Tasker/NamedTasksNamedStep.html +435 -0
  305. data/docs/Tasker/Orchestration/BackoffCalculator.html +404 -0
  306. data/docs/Tasker/Orchestration/ConnectionBuilder/ConfigValidator.html +258 -0
  307. data/docs/Tasker/Orchestration/ConnectionBuilder.html +435 -0
  308. data/docs/Tasker/Orchestration/ConnectionPoolIntelligence.html +513 -0
  309. data/docs/Tasker/Orchestration/Coordinator.html +641 -0
  310. data/docs/Tasker/Orchestration/FutureStateAnalyzer.html +1045 -0
  311. data/docs/Tasker/Orchestration/Orchestrator.html +679 -0
  312. data/docs/Tasker/Orchestration/PluginIntegration.html +1127 -0
  313. data/docs/Tasker/Orchestration/ResponseProcessor.html +504 -0
  314. data/docs/Tasker/Orchestration/RetryHeaderParser.html +304 -0
  315. data/docs/Tasker/Orchestration/StepExecutor.html +995 -0
  316. data/docs/Tasker/Orchestration/StepSequenceFactory.html +644 -0
  317. data/docs/Tasker/Orchestration/TaskFinalizer/BlockageChecker.html +264 -0
  318. data/docs/Tasker/Orchestration/TaskFinalizer/ContextManager.html +254 -0
  319. data/docs/Tasker/Orchestration/TaskFinalizer/DelayCalculator.html +556 -0
  320. data/docs/Tasker/Orchestration/TaskFinalizer/FinalizationDecisionMaker.html +348 -0
  321. data/docs/Tasker/Orchestration/TaskFinalizer/FinalizationProcessor.html +286 -0
  322. data/docs/Tasker/Orchestration/TaskFinalizer/ReasonDeterminer.html +432 -0
  323. data/docs/Tasker/Orchestration/TaskFinalizer/ReenqueueManager.html +296 -0
  324. data/docs/Tasker/Orchestration/TaskFinalizer/UnclearStateHandler.html +314 -0
  325. data/docs/Tasker/Orchestration/TaskFinalizer.html +1212 -0
  326. data/docs/Tasker/Orchestration/TaskInitializer.html +766 -0
  327. data/docs/Tasker/Orchestration/TaskReenqueuer.html +506 -0
  328. data/docs/Tasker/Orchestration/ViableStepDiscovery.html +442 -0
  329. data/docs/Tasker/Orchestration/WorkflowCoordinator.html +510 -0
  330. data/docs/Tasker/Orchestration.html +130 -0
  331. data/docs/Tasker/PageSort/PageSortParamsBuilder.html +296 -0
  332. data/docs/Tasker/PageSort.html +247 -0
  333. data/docs/Tasker/PermanentError.html +518 -0
  334. data/docs/Tasker/ProceduralError.html +147 -0
  335. data/docs/Tasker/Queries/AllAnnotationTypes.html +217 -0
  336. data/docs/Tasker/Queries/AllTasks.html +221 -0
  337. data/docs/Tasker/Queries/BaseQuery.html +128 -0
  338. data/docs/Tasker/Queries/Helpers.html +187 -0
  339. data/docs/Tasker/Queries/OneStep.html +225 -0
  340. data/docs/Tasker/Queries/OneTask.html +217 -0
  341. data/docs/Tasker/Queries/TasksByAnnotation.html +231 -0
  342. data/docs/Tasker/Queries/TasksByStatus.html +233 -0
  343. data/docs/Tasker/Queries.html +119 -0
  344. data/docs/Tasker/Railtie.html +124 -0
  345. data/docs/Tasker/Registry/BaseRegistry.html +1690 -0
  346. data/docs/Tasker/Registry/EventPublisher.html +667 -0
  347. data/docs/Tasker/Registry/InterfaceValidator.html +569 -0
  348. data/docs/Tasker/Registry/RegistrationError.html +132 -0
  349. data/docs/Tasker/Registry/RegistryError.html +139 -0
  350. data/docs/Tasker/Registry/StatisticsCollector.html +841 -0
  351. data/docs/Tasker/Registry/SubscriberRegistry.html +1504 -0
  352. data/docs/Tasker/Registry/ValidationError.html +132 -0
  353. data/docs/Tasker/Registry.html +119 -0
  354. data/docs/Tasker/RetryableError.html +515 -0
  355. data/docs/Tasker/StateMachine/Compatibility.html +282 -0
  356. data/docs/Tasker/StateMachine/InvalidStateTransition.html +135 -0
  357. data/docs/Tasker/StateMachine/StepStateMachine/StandardizedPayloadBuilder.html +260 -0
  358. data/docs/Tasker/StateMachine/StepStateMachine.html +2215 -0
  359. data/docs/Tasker/StateMachine/TaskStateMachine.html +734 -0
  360. data/docs/Tasker/StateMachine.html +602 -0
  361. data/docs/Tasker/StepDagRelationship.html +657 -0
  362. data/docs/Tasker/StepHandler/Api/Config.html +1091 -0
  363. data/docs/Tasker/StepHandler/Api.html +884 -0
  364. data/docs/Tasker/StepHandler/AutomaticEventPublishing.html +321 -0
  365. data/docs/Tasker/StepHandler/Base.html +970 -0
  366. data/docs/Tasker/StepHandler.html +119 -0
  367. data/docs/Tasker/StepReadinessStatus.html +836 -0
  368. data/docs/Tasker/Task.html +2575 -0
  369. data/docs/Tasker/TaskAnnotation.html +137 -0
  370. data/docs/Tasker/TaskAnnotationSerializer.html +124 -0
  371. data/docs/Tasker/TaskBuilder/StepNameValidator.html +264 -0
  372. data/docs/Tasker/TaskBuilder/StepTemplateDefiner.html +264 -0
  373. data/docs/Tasker/TaskBuilder.html +764 -0
  374. data/docs/Tasker/TaskDiagram/StepToStepEdgeBuilder.html +260 -0
  375. data/docs/Tasker/TaskDiagram/TaskToRootStepEdgeBuilder.html +290 -0
  376. data/docs/Tasker/TaskDiagram.html +548 -0
  377. data/docs/Tasker/TaskDiagramsController.html +240 -0
  378. data/docs/Tasker/TaskExecutionContext.html +469 -0
  379. data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner/ClassBasedEventRegistrar.html +238 -0
  380. data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner/YamlEventRegistrar.html +254 -0
  381. data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner.html +988 -0
  382. data/docs/Tasker/TaskHandler/ClassMethods.html +357 -0
  383. data/docs/Tasker/TaskHandler/InstanceMethods.html +1396 -0
  384. data/docs/Tasker/TaskHandler/StepGroup.html +1748 -0
  385. data/docs/Tasker/TaskHandler.html +271 -0
  386. data/docs/Tasker/TaskNamespace.html +312 -0
  387. data/docs/Tasker/TaskRunnerJob.html +406 -0
  388. data/docs/Tasker/TaskSerializer.html +474 -0
  389. data/docs/Tasker/TaskTransition.html +1517 -0
  390. data/docs/Tasker/TaskWorkflowSummary.html +988 -0
  391. data/docs/Tasker/TaskerRailsSchema/InvalidObjectTypeError.html +132 -0
  392. data/docs/Tasker/TaskerRailsSchema/TypeResolutionError.html +139 -0
  393. data/docs/Tasker/TaskerRailsSchema/UnknownInterfaceError.html +132 -0
  394. data/docs/Tasker/TaskerRailsSchema.html +384 -0
  395. data/docs/Tasker/TasksController.html +595 -0
  396. data/docs/Tasker/Telemetry/EventMapping.html +1307 -0
  397. data/docs/Tasker/Telemetry/EventRouter.html +2178 -0
  398. data/docs/Tasker/Telemetry/Events/ExportEvents.html +246 -0
  399. data/docs/Tasker/Telemetry/Events.html +115 -0
  400. data/docs/Tasker/Telemetry/ExportCoordinator/DistributedLockTimeoutError.html +135 -0
  401. data/docs/Tasker/Telemetry/ExportCoordinator.html +2137 -0
  402. data/docs/Tasker/Telemetry/IntelligentCacheManager.html +1083 -0
  403. data/docs/Tasker/Telemetry/LogBackend.html +1088 -0
  404. data/docs/Tasker/Telemetry/MetricTypes/Counter.html +1054 -0
  405. data/docs/Tasker/Telemetry/MetricTypes/Gauge.html +1270 -0
  406. data/docs/Tasker/Telemetry/MetricTypes/Histogram.html +1492 -0
  407. data/docs/Tasker/Telemetry/MetricTypes.html +153 -0
  408. data/docs/Tasker/Telemetry/MetricsBackend.html +2510 -0
  409. data/docs/Tasker/Telemetry/MetricsExportService.html +578 -0
  410. data/docs/Tasker/Telemetry/PluginRegistry.html +1774 -0
  411. data/docs/Tasker/Telemetry/Plugins/BaseExporter.html +1835 -0
  412. data/docs/Tasker/Telemetry/Plugins/CsvExporter.html +768 -0
  413. data/docs/Tasker/Telemetry/Plugins/JsonExporter.html +747 -0
  414. data/docs/Tasker/Telemetry/Plugins.html +117 -0
  415. data/docs/Tasker/Telemetry/PrometheusExporter.html +481 -0
  416. data/docs/Tasker/Telemetry/TraceBackend.html +891 -0
  417. data/docs/Tasker/Telemetry.html +130 -0
  418. data/docs/Tasker/Types/AuthConfig.html +886 -0
  419. data/docs/Tasker/Types/BackoffConfig.html +1063 -0
  420. data/docs/Tasker/Types/BaseConfig.html +227 -0
  421. data/docs/Tasker/Types/CacheConfig.html +1731 -0
  422. data/docs/Tasker/Types/DatabaseConfig.html +388 -0
  423. data/docs/Tasker/Types/DependencyGraph.html +526 -0
  424. data/docs/Tasker/Types/DependencyGraphConfig.html +753 -0
  425. data/docs/Tasker/Types/EngineConfig.html +1181 -0
  426. data/docs/Tasker/Types/ExecutionConfig.html +1963 -0
  427. data/docs/Tasker/Types/GraphEdge.html +517 -0
  428. data/docs/Tasker/Types/GraphMetadata.html +781 -0
  429. data/docs/Tasker/Types/GraphNode.html +694 -0
  430. data/docs/Tasker/Types/HealthConfig.html +784 -0
  431. data/docs/Tasker/Types/StepSequence.html +353 -0
  432. data/docs/Tasker/Types/StepTemplate.html +1193 -0
  433. data/docs/Tasker/Types/TaskRequest.html +1179 -0
  434. data/docs/Tasker/Types/TelemetryConfig.html +2746 -0
  435. data/docs/Tasker/Types.html +154 -0
  436. data/docs/Tasker/WorkflowStep/StepFinder.html +282 -0
  437. data/docs/Tasker/WorkflowStep.html +2724 -0
  438. data/docs/Tasker/WorkflowStepEdge.html +304 -0
  439. data/docs/Tasker/WorkflowStepSerializer.html +305 -0
  440. data/docs/Tasker/WorkflowStepTransition/TransitionDescriptionFormatter.html +282 -0
  441. data/docs/Tasker/WorkflowStepTransition.html +2201 -0
  442. data/docs/Tasker/WorkflowStepsController.html +462 -0
  443. data/docs/Tasker.html +452 -0
  444. data/docs/VISION.md +584 -0
  445. data/docs/WHY.md +21 -0
  446. data/docs/_index.html +2375 -0
  447. data/docs/class_list.html +54 -0
  448. data/docs/css/common.css +1 -0
  449. data/docs/css/full_list.css +58 -0
  450. data/docs/css/style.css +503 -0
  451. data/docs/events/migration_plan_outcomes.md +80 -0
  452. data/docs/file.README.html +541 -0
  453. data/docs/file_list.html +59 -0
  454. data/docs/frames.html +22 -0
  455. data/docs/index.html +541 -0
  456. data/docs/js/app.js +344 -0
  457. data/docs/js/full_list.js +242 -0
  458. data/docs/js/jquery.js +4 -0
  459. data/docs/method_list.html +9182 -0
  460. data/docs/top-level-namespace.html +110 -0
  461. data/lib/generators/tasker/authenticator_generator.rb +301 -0
  462. data/lib/generators/tasker/authorization_coordinator_generator.rb +139 -0
  463. data/lib/generators/tasker/events_generator.rb +91 -0
  464. data/lib/generators/tasker/subscriber_generator.rb +107 -0
  465. data/lib/generators/tasker/task_handler_generator.rb +138 -0
  466. data/lib/generators/tasker/templates/api_token_authenticator.rb.erb +113 -0
  467. data/lib/generators/tasker/templates/api_token_authenticator_spec.rb.erb +144 -0
  468. data/lib/generators/tasker/templates/authorization_coordinator.rb.erb +95 -0
  469. data/lib/generators/tasker/templates/authorization_coordinator_spec.rb.erb +142 -0
  470. data/lib/generators/tasker/templates/custom_authenticator.rb.erb +108 -0
  471. data/lib/generators/tasker/templates/custom_authenticator_spec.rb.erb +162 -0
  472. data/lib/generators/tasker/templates/custom_events.yml.erb +62 -0
  473. data/lib/generators/tasker/templates/custom_subscriber.rb.erb +72 -0
  474. data/lib/generators/tasker/templates/devise_authenticator.rb.erb +101 -0
  475. data/lib/generators/tasker/templates/devise_authenticator_spec.rb.erb +126 -0
  476. data/lib/generators/tasker/templates/initialize.rb.erb +202 -0
  477. data/lib/generators/tasker/templates/jwt_authenticator.rb.erb +144 -0
  478. data/lib/generators/tasker/templates/jwt_authenticator_spec.rb.erb +298 -0
  479. data/lib/generators/tasker/templates/metrics_subscriber.rb.erb +258 -0
  480. data/lib/generators/tasker/templates/metrics_subscriber_spec.rb.erb +308 -0
  481. data/lib/generators/tasker/templates/omniauth_authenticator.rb.erb +135 -0
  482. data/lib/generators/tasker/templates/omniauth_authenticator_spec.rb.erb +196 -0
  483. data/lib/generators/tasker/templates/opentelemetry_initializer.rb +52 -0
  484. data/lib/generators/tasker/templates/subscriber.rb.erb +64 -0
  485. data/lib/generators/tasker/templates/subscriber_spec.rb.erb +80 -0
  486. data/lib/generators/tasker/templates/task_config.yaml.erb +117 -0
  487. data/lib/generators/tasker/templates/task_handler.rb.erb +59 -0
  488. data/lib/generators/tasker/templates/task_handler_spec.rb.erb +159 -0
  489. data/lib/tasker/analysis/runtime_graph_analyzer.rb +1168 -0
  490. data/lib/tasker/analysis/template_graph_analyzer.rb +328 -0
  491. data/lib/tasker/authentication/coordinator.rb +78 -0
  492. data/lib/tasker/authentication/errors.rb +9 -0
  493. data/lib/tasker/authentication/interface.rb +36 -0
  494. data/lib/tasker/authentication/none_authenticator.rb +26 -0
  495. data/lib/tasker/authorization/base_coordinator.rb +112 -0
  496. data/lib/tasker/authorization/errors.rb +26 -0
  497. data/lib/tasker/authorization/resource_constants.rb +74 -0
  498. data/lib/tasker/authorization/resource_registry.rb +143 -0
  499. data/lib/tasker/authorization.rb +75 -0
  500. data/lib/tasker/cache_capabilities.rb +131 -0
  501. data/lib/tasker/cache_strategy.rb +469 -0
  502. data/lib/tasker/concerns/authenticatable.rb +41 -0
  503. data/lib/tasker/concerns/authorizable.rb +204 -0
  504. data/lib/tasker/concerns/controller_authorizable.rb +124 -0
  505. data/lib/tasker/concerns/event_publisher.rb +716 -0
  506. data/lib/tasker/concerns/idempotent_state_transitions.rb +128 -0
  507. data/lib/tasker/concerns/state_machine_base.rb +218 -0
  508. data/lib/tasker/concerns/structured_logging.rb +387 -0
  509. data/lib/tasker/configuration.rb +325 -0
  510. data/lib/tasker/constants/event_definitions.rb +147 -0
  511. data/lib/tasker/constants/registry_events.rb +54 -0
  512. data/lib/tasker/constants.rb +417 -0
  513. data/lib/tasker/engine.rb +90 -0
  514. data/lib/tasker/errors.rb +90 -0
  515. data/lib/tasker/events/catalog.rb +432 -0
  516. data/lib/tasker/events/custom_registry.rb +175 -0
  517. data/lib/tasker/events/definition_loader.rb +199 -0
  518. data/lib/tasker/events/event_payload_builder.rb +461 -0
  519. data/lib/tasker/events/publisher.rb +149 -0
  520. data/lib/tasker/events/subscribers/base_subscriber.rb +601 -0
  521. data/lib/tasker/events/subscribers/metrics_subscriber.rb +120 -0
  522. data/lib/tasker/events/subscribers/telemetry_subscriber.rb +462 -0
  523. data/lib/tasker/events/subscription_loader.rb +161 -0
  524. data/lib/tasker/events.rb +37 -0
  525. data/lib/tasker/functions/function_based_analytics_metrics.rb +103 -0
  526. data/lib/tasker/functions/function_based_dependency_levels.rb +54 -0
  527. data/lib/tasker/functions/function_based_slowest_steps.rb +84 -0
  528. data/lib/tasker/functions/function_based_slowest_tasks.rb +84 -0
  529. data/lib/tasker/functions/function_based_step_readiness_status.rb +183 -0
  530. data/lib/tasker/functions/function_based_system_health_counts.rb +94 -0
  531. data/lib/tasker/functions/function_based_task_execution_context.rb +148 -0
  532. data/lib/tasker/functions/function_wrapper.rb +42 -0
  533. data/lib/tasker/functions.rb +12 -0
  534. data/lib/tasker/handler_factory.rb +322 -0
  535. data/lib/tasker/health/readiness_checker.rb +186 -0
  536. data/lib/tasker/health/status_checker.rb +203 -0
  537. data/lib/tasker/identity_strategy.rb +38 -0
  538. data/lib/tasker/logging/correlation_id_generator.rb +120 -0
  539. data/lib/tasker/orchestration/backoff_calculator.rb +184 -0
  540. data/lib/tasker/orchestration/connection_builder.rb +122 -0
  541. data/lib/tasker/orchestration/connection_pool_intelligence.rb +177 -0
  542. data/lib/tasker/orchestration/coordinator.rb +119 -0
  543. data/lib/tasker/orchestration/future_state_analyzer.rb +137 -0
  544. data/lib/tasker/orchestration/plugin_integration.rb +124 -0
  545. data/lib/tasker/orchestration/response_processor.rb +168 -0
  546. data/lib/tasker/orchestration/retry_header_parser.rb +78 -0
  547. data/lib/tasker/orchestration/step_executor.rb +941 -0
  548. data/lib/tasker/orchestration/step_sequence_factory.rb +67 -0
  549. data/lib/tasker/orchestration/task_finalizer.rb +564 -0
  550. data/lib/tasker/orchestration/task_initializer.rb +140 -0
  551. data/lib/tasker/orchestration/task_reenqueuer.rb +71 -0
  552. data/lib/tasker/orchestration/viable_step_discovery.rb +65 -0
  553. data/lib/tasker/orchestration/workflow_coordinator.rb +294 -0
  554. data/lib/tasker/orchestration.rb +45 -0
  555. data/lib/tasker/railtie.rb +9 -0
  556. data/lib/tasker/registry/base_registry.rb +177 -0
  557. data/lib/tasker/registry/event_publisher.rb +91 -0
  558. data/lib/tasker/registry/interface_validator.rb +140 -0
  559. data/lib/tasker/registry/statistics_collector.rb +381 -0
  560. data/lib/tasker/registry/subscriber_registry.rb +285 -0
  561. data/lib/tasker/registry.rb +22 -0
  562. data/lib/tasker/state_machine/step_state_machine.rb +508 -0
  563. data/lib/tasker/state_machine/task_state_machine.rb +192 -0
  564. data/lib/tasker/state_machine.rb +83 -0
  565. data/lib/tasker/step_handler/api.rb +410 -0
  566. data/lib/tasker/step_handler/base.rb +206 -0
  567. data/lib/tasker/task_builder.rb +432 -0
  568. data/lib/tasker/task_handler/class_methods.rb +324 -0
  569. data/lib/tasker/task_handler/instance_methods.rb +293 -0
  570. data/lib/tasker/task_handler/step_group.rb +182 -0
  571. data/lib/tasker/task_handler.rb +43 -0
  572. data/lib/tasker/telemetry/event_mapping.rb +126 -0
  573. data/lib/tasker/telemetry/event_router.rb +318 -0
  574. data/lib/tasker/telemetry/events/export_events.rb +38 -0
  575. data/lib/tasker/telemetry/export_coordinator.rb +497 -0
  576. data/lib/tasker/telemetry/intelligent_cache_manager.rb +508 -0
  577. data/lib/tasker/telemetry/log_backend.rb +224 -0
  578. data/lib/tasker/telemetry/metric_types.rb +368 -0
  579. data/lib/tasker/telemetry/metrics_backend.rb +1227 -0
  580. data/lib/tasker/telemetry/metrics_export_service.rb +392 -0
  581. data/lib/tasker/telemetry/plugin_registry.rb +333 -0
  582. data/lib/tasker/telemetry/plugins/base_exporter.rb +246 -0
  583. data/lib/tasker/telemetry/plugins/csv_exporter.rb +198 -0
  584. data/lib/tasker/telemetry/plugins/json_exporter.rb +141 -0
  585. data/lib/tasker/telemetry/prometheus_exporter.rb +249 -0
  586. data/lib/tasker/telemetry/trace_backend.rb +186 -0
  587. data/lib/tasker/telemetry.rb +59 -0
  588. data/lib/tasker/types/auth_config.rb +81 -0
  589. data/lib/tasker/types/backoff_config.rb +142 -0
  590. data/lib/tasker/types/cache_config.rb +257 -0
  591. data/lib/tasker/types/database_config.rb +39 -0
  592. data/lib/tasker/types/dependency_graph.rb +225 -0
  593. data/lib/tasker/types/dependency_graph_config.rb +149 -0
  594. data/lib/tasker/types/engine_config.rb +131 -0
  595. data/lib/tasker/types/execution_config.rb +289 -0
  596. data/lib/tasker/types/health_config.rb +84 -0
  597. data/lib/tasker/types/step_sequence.rb +24 -0
  598. data/lib/tasker/types/step_template.rb +63 -0
  599. data/lib/tasker/types/task_request.rb +60 -0
  600. data/lib/tasker/types/telemetry_config.rb +273 -0
  601. data/lib/tasker/types.rb +64 -0
  602. data/lib/tasker/version.rb +7 -0
  603. data/lib/tasker.rb +82 -0
  604. data/lib/tasks/tasker_tasks.rake +302 -0
  605. metadata +958 -0
metadata ADDED
@@ -0,0 +1,958 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tasker-engine
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Pete Taylor
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2025-07-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: logger
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 7.2.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 7.2.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: pg
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.5'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.5'
55
+ - !ruby/object:Gem::Dependency
56
+ name: puma
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '6.6'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '6.6'
69
+ - !ruby/object:Gem::Dependency
70
+ name: active_model_serializers
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.10'
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 0.10.0
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '0.10'
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 0.10.0
89
+ - !ruby/object:Gem::Dependency
90
+ name: rack-cors
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '2.0'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '2.0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: json-schema
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '2.4'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 2.4.0
113
+ type: :runtime
114
+ prerelease: false
115
+ version_requirements: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '2.4'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 2.4.0
123
+ - !ruby/object:Gem::Dependency
124
+ name: concurrent-ruby
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: 1.3.5
130
+ type: :runtime
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: 1.3.5
137
+ - !ruby/object:Gem::Dependency
138
+ name: concurrent-ruby-ext
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: 1.3.5
144
+ type: :runtime
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: 1.3.5
151
+ - !ruby/object:Gem::Dependency
152
+ name: dry-events
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - "~>"
156
+ - !ruby/object:Gem::Version
157
+ version: '1.1'
158
+ type: :runtime
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '1.1'
165
+ - !ruby/object:Gem::Dependency
166
+ name: dry-struct
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: '1.8'
172
+ type: :runtime
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: '1.8'
179
+ - !ruby/object:Gem::Dependency
180
+ name: dry-types
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: '1.8'
186
+ type: :runtime
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "~>"
191
+ - !ruby/object:Gem::Version
192
+ version: '1.8'
193
+ - !ruby/object:Gem::Dependency
194
+ name: dry-validation
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: '1.10'
200
+ type: :runtime
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - "~>"
205
+ - !ruby/object:Gem::Version
206
+ version: '1.10'
207
+ - !ruby/object:Gem::Dependency
208
+ name: faraday
209
+ requirement: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - "~>"
212
+ - !ruby/object:Gem::Version
213
+ version: 2.12.2
214
+ type: :runtime
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - "~>"
219
+ - !ruby/object:Gem::Version
220
+ version: 2.12.2
221
+ - !ruby/object:Gem::Dependency
222
+ name: graphql
223
+ requirement: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - "~>"
226
+ - !ruby/object:Gem::Version
227
+ version: '2.0'
228
+ type: :runtime
229
+ prerelease: false
230
+ version_requirements: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - "~>"
233
+ - !ruby/object:Gem::Version
234
+ version: '2.0'
235
+ - !ruby/object:Gem::Dependency
236
+ name: jwt
237
+ requirement: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - "~>"
240
+ - !ruby/object:Gem::Version
241
+ version: 2.10.0
242
+ type: :runtime
243
+ prerelease: false
244
+ version_requirements: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - "~>"
247
+ - !ruby/object:Gem::Version
248
+ version: 2.10.0
249
+ - !ruby/object:Gem::Dependency
250
+ name: kamal
251
+ requirement: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - "~>"
254
+ - !ruby/object:Gem::Version
255
+ version: '1.9'
256
+ type: :runtime
257
+ prerelease: false
258
+ version_requirements: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - "~>"
261
+ - !ruby/object:Gem::Version
262
+ version: '1.9'
263
+ - !ruby/object:Gem::Dependency
264
+ name: opentelemetry-exporter-otlp
265
+ requirement: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - "~>"
268
+ - !ruby/object:Gem::Version
269
+ version: 0.30.0
270
+ type: :runtime
271
+ prerelease: false
272
+ version_requirements: !ruby/object:Gem::Requirement
273
+ requirements:
274
+ - - "~>"
275
+ - !ruby/object:Gem::Version
276
+ version: 0.30.0
277
+ - !ruby/object:Gem::Dependency
278
+ name: opentelemetry-sdk
279
+ requirement: !ruby/object:Gem::Requirement
280
+ requirements:
281
+ - - "~>"
282
+ - !ruby/object:Gem::Version
283
+ version: 1.8.0
284
+ type: :runtime
285
+ prerelease: false
286
+ version_requirements: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ - - "~>"
289
+ - !ruby/object:Gem::Version
290
+ version: 1.8.0
291
+ - !ruby/object:Gem::Dependency
292
+ name: scenic
293
+ requirement: !ruby/object:Gem::Requirement
294
+ requirements:
295
+ - - "~>"
296
+ - !ruby/object:Gem::Version
297
+ version: '1.8'
298
+ type: :runtime
299
+ prerelease: false
300
+ version_requirements: !ruby/object:Gem::Requirement
301
+ requirements:
302
+ - - "~>"
303
+ - !ruby/object:Gem::Version
304
+ version: '1.8'
305
+ - !ruby/object:Gem::Dependency
306
+ name: statesman
307
+ requirement: !ruby/object:Gem::Requirement
308
+ requirements:
309
+ - - "~>"
310
+ - !ruby/object:Gem::Version
311
+ version: 12.0.0
312
+ type: :runtime
313
+ prerelease: false
314
+ version_requirements: !ruby/object:Gem::Requirement
315
+ requirements:
316
+ - - "~>"
317
+ - !ruby/object:Gem::Version
318
+ version: 12.0.0
319
+ description: Tasker is a comprehensive workflow orchestration engine that provides
320
+ multi-step task processing, dependency management, state machine transitions, and
321
+ enterprise observability features including OpenTelemetry tracing and Prometheus
322
+ metrics for Rails applications.
323
+ email:
324
+ - pete.jc.taylor@hey.com
325
+ executables: []
326
+ extensions: []
327
+ extra_rdoc_files: []
328
+ files:
329
+ - LICENSE
330
+ - README.md
331
+ - Rakefile
332
+ - app/controllers/tasker/analytics_controller.rb
333
+ - app/controllers/tasker/application_controller.rb
334
+ - app/controllers/tasker/graphql_controller.rb
335
+ - app/controllers/tasker/handlers_controller.rb
336
+ - app/controllers/tasker/health_controller.rb
337
+ - app/controllers/tasker/metrics_controller.rb
338
+ - app/controllers/tasker/page_sort.rb
339
+ - app/controllers/tasker/task_diagrams_controller.rb
340
+ - app/controllers/tasker/tasks_controller.rb
341
+ - app/controllers/tasker/workflow_steps_controller.rb
342
+ - app/graphql/examples/all_tasks.graphql
343
+ - app/graphql/examples/pending_tasks.graphql
344
+ - app/graphql/tasker/graph_ql_types.rb
345
+ - app/graphql/tasker/graph_ql_types/annotation_type.rb
346
+ - app/graphql/tasker/graph_ql_types/base_argument.rb
347
+ - app/graphql/tasker/graph_ql_types/base_connection.rb
348
+ - app/graphql/tasker/graph_ql_types/base_edge.rb
349
+ - app/graphql/tasker/graph_ql_types/base_enum.rb
350
+ - app/graphql/tasker/graph_ql_types/base_field.rb
351
+ - app/graphql/tasker/graph_ql_types/base_input_object.rb
352
+ - app/graphql/tasker/graph_ql_types/base_interface.rb
353
+ - app/graphql/tasker/graph_ql_types/base_object.rb
354
+ - app/graphql/tasker/graph_ql_types/base_scalar.rb
355
+ - app/graphql/tasker/graph_ql_types/base_union.rb
356
+ - app/graphql/tasker/graph_ql_types/dependent_system_object_map_type.rb
357
+ - app/graphql/tasker/graph_ql_types/dependent_system_type.rb
358
+ - app/graphql/tasker/graph_ql_types/mutation_type.rb
359
+ - app/graphql/tasker/graph_ql_types/named_step_type.rb
360
+ - app/graphql/tasker/graph_ql_types/named_task_type.rb
361
+ - app/graphql/tasker/graph_ql_types/named_tasks_named_step_type.rb
362
+ - app/graphql/tasker/graph_ql_types/node_type.rb
363
+ - app/graphql/tasker/graph_ql_types/query_type.rb
364
+ - app/graphql/tasker/graph_ql_types/task_annotation_type.rb
365
+ - app/graphql/tasker/graph_ql_types/task_interface.rb
366
+ - app/graphql/tasker/graph_ql_types/task_type.rb
367
+ - app/graphql/tasker/graph_ql_types/workflow_step_type.rb
368
+ - app/graphql/tasker/mutations/base_mutation.rb
369
+ - app/graphql/tasker/mutations/cancel_step.rb
370
+ - app/graphql/tasker/mutations/cancel_task.rb
371
+ - app/graphql/tasker/mutations/create_task.rb
372
+ - app/graphql/tasker/mutations/update_step.rb
373
+ - app/graphql/tasker/mutations/update_task.rb
374
+ - app/graphql/tasker/queries/all_annotation_types.rb
375
+ - app/graphql/tasker/queries/all_tasks.rb
376
+ - app/graphql/tasker/queries/base_query.rb
377
+ - app/graphql/tasker/queries/helpers.rb
378
+ - app/graphql/tasker/queries/one_step.rb
379
+ - app/graphql/tasker/queries/one_task.rb
380
+ - app/graphql/tasker/queries/tasks_by_annotation.rb
381
+ - app/graphql/tasker/queries/tasks_by_status.rb
382
+ - app/graphql/tasker/tasker_rails_schema.rb
383
+ - app/jobs/tasker/application_job.rb
384
+ - app/jobs/tasker/metrics_export_job.rb
385
+ - app/jobs/tasker/task_runner_job.rb
386
+ - app/models/tasker/annotation_type.rb
387
+ - app/models/tasker/application_record.rb
388
+ - app/models/tasker/dependent_system.rb
389
+ - app/models/tasker/dependent_system_object_map.rb
390
+ - app/models/tasker/diagram/edge.rb
391
+ - app/models/tasker/diagram/flowchart.rb
392
+ - app/models/tasker/diagram/node.rb
393
+ - app/models/tasker/named_step.rb
394
+ - app/models/tasker/named_task.rb
395
+ - app/models/tasker/named_tasks_named_step.rb
396
+ - app/models/tasker/step_dag_relationship.rb
397
+ - app/models/tasker/step_readiness_status.rb
398
+ - app/models/tasker/task.rb
399
+ - app/models/tasker/task_annotation.rb
400
+ - app/models/tasker/task_diagram.rb
401
+ - app/models/tasker/task_execution_context.rb
402
+ - app/models/tasker/task_namespace.rb
403
+ - app/models/tasker/task_transition.rb
404
+ - app/models/tasker/workflow_step.rb
405
+ - app/models/tasker/workflow_step_edge.rb
406
+ - app/models/tasker/workflow_step_transition.rb
407
+ - app/serializers/tasker/annotation_type_serializer.rb
408
+ - app/serializers/tasker/handler_serializer.rb
409
+ - app/serializers/tasker/task_annotation_serializer.rb
410
+ - app/serializers/tasker/task_serializer.rb
411
+ - app/serializers/tasker/workflow_step_serializer.rb
412
+ - app/services/tasker/analytics_service.rb
413
+ - app/views/tasker/task/_diagram.html.erb
414
+ - config/initializers/dry_struct.rb
415
+ - config/initializers/statesman.rb
416
+ - config/initializers/tasker_orchestration.rb
417
+ - config/initializers/time_formats.rb
418
+ - config/routes.rb
419
+ - config/tasker/subscriptions/example_integrations.yml
420
+ - config/tasker/system_events.yml
421
+ - db/functions/calculate_dependency_levels_v01.sql
422
+ - db/functions/get_analytics_metrics_v01.sql
423
+ - db/functions/get_slowest_steps_v01.sql
424
+ - db/functions/get_slowest_tasks_v01.sql
425
+ - db/functions/get_step_readiness_status_batch_v01.sql
426
+ - db/functions/get_step_readiness_status_v01.sql
427
+ - db/functions/get_system_health_counts_v01.sql
428
+ - db/functions/get_task_execution_context_v01.sql
429
+ - db/functions/get_task_execution_contexts_batch_v01.sql
430
+ - db/init/schema.sql
431
+ - db/migrate/20250701165431_initial_tasker_schema.rb
432
+ - db/views/tasker_step_dag_relationships_v01.sql
433
+ - docs/APPLICATION_GENERATOR.md
434
+ - docs/AUTH.md
435
+ - docs/CIRCUIT_BREAKER.md
436
+ - docs/DEVELOPER_GUIDE.md
437
+ - docs/EVENT_SYSTEM.md
438
+ - docs/EXECUTION_CONFIGURATION.md
439
+ - docs/FLOW_CHART.md
440
+ - docs/HEALTH.md
441
+ - docs/METRICS.md
442
+ - docs/OPTIMIZATION_PLAN.md
443
+ - docs/OVERVIEW.md
444
+ - docs/QUICK_START.md
445
+ - docs/REGISTRY_SYSTEMS.md
446
+ - docs/REST_API.md
447
+ - docs/ROADMAP.md
448
+ - docs/SQL_FUNCTIONS.md
449
+ - docs/TASK_DIAGRAM.md
450
+ - docs/TASK_EXECUTION_CONTROL_FLOW.md
451
+ - docs/TELEMETRY.md
452
+ - docs/TROUBLESHOOTING.md
453
+ - docs/TaskHandlerGenerator.html
454
+ - docs/Tasker.html
455
+ - docs/Tasker/Analysis.html
456
+ - docs/Tasker/Analysis/RuntimeGraphAnalyzer.html
457
+ - docs/Tasker/Analysis/TemplateGraphAnalyzer.html
458
+ - docs/Tasker/AnalyticsController.html
459
+ - docs/Tasker/AnalyticsService.html
460
+ - docs/Tasker/AnalyticsService/BottleneckAnalytics.html
461
+ - docs/Tasker/AnalyticsService/PerformanceAnalytics.html
462
+ - docs/Tasker/AnnotationType.html
463
+ - docs/Tasker/AnnotationTypeSerializer.html
464
+ - docs/Tasker/ApplicationController.html
465
+ - docs/Tasker/ApplicationJob.html
466
+ - docs/Tasker/ApplicationRecord.html
467
+ - docs/Tasker/Authentication.html
468
+ - docs/Tasker/Authentication/AuthenticationError.html
469
+ - docs/Tasker/Authentication/ConfigurationError.html
470
+ - docs/Tasker/Authentication/Coordinator.html
471
+ - docs/Tasker/Authentication/Interface.html
472
+ - docs/Tasker/Authentication/InterfaceError.html
473
+ - docs/Tasker/Authentication/NoneAuthenticator.html
474
+ - docs/Tasker/Authorization.html
475
+ - docs/Tasker/Authorization/AuthorizationError.html
476
+ - docs/Tasker/Authorization/BaseCoordinator.html
477
+ - docs/Tasker/Authorization/ConfigurationError.html
478
+ - docs/Tasker/Authorization/ResourceConstants.html
479
+ - docs/Tasker/Authorization/ResourceConstants/ACTIONS.html
480
+ - docs/Tasker/Authorization/ResourceConstants/RESOURCES.html
481
+ - docs/Tasker/Authorization/ResourceRegistry.html
482
+ - docs/Tasker/Authorization/UnauthorizedError.html
483
+ - docs/Tasker/CacheCapabilities.html
484
+ - docs/Tasker/CacheStrategy.html
485
+ - docs/Tasker/Concerns.html
486
+ - docs/Tasker/Concerns/Authenticatable.html
487
+ - docs/Tasker/Concerns/Authorizable.html
488
+ - docs/Tasker/Concerns/Authorizable/AdminStatusChecker.html
489
+ - docs/Tasker/Concerns/ControllerAuthorizable.html
490
+ - docs/Tasker/Concerns/EventPublisher.html
491
+ - docs/Tasker/Concerns/IdempotentStateTransitions.html
492
+ - docs/Tasker/Concerns/LifecycleEventHelpers.html
493
+ - docs/Tasker/Concerns/OrchestrationPublisher.html
494
+ - docs/Tasker/Concerns/StateMachineBase.html
495
+ - docs/Tasker/Concerns/StateMachineBase/ClassMethods.html
496
+ - docs/Tasker/Concerns/StateMachineBase/StateMachineBase.html
497
+ - docs/Tasker/Concerns/StateMachineBase/StateMachineBase/ClassMethods.html
498
+ - docs/Tasker/Concerns/StructuredLogging.html
499
+ - docs/Tasker/Configuration.html
500
+ - docs/Tasker/Configuration/AuthConfiguration.html
501
+ - docs/Tasker/Configuration/ConfigurationProxy.html
502
+ - docs/Tasker/Configuration/DatabaseConfiguration.html
503
+ - docs/Tasker/Configuration/EngineConfiguration.html
504
+ - docs/Tasker/Configuration/HealthConfiguration.html
505
+ - docs/Tasker/Configuration/TelemetryConfiguration.html
506
+ - docs/Tasker/Configuration/TelemetryConfigurationProxy.html
507
+ - docs/Tasker/ConfigurationError.html
508
+ - docs/Tasker/ConfiguredTask.html
509
+ - docs/Tasker/Constants.html
510
+ - docs/Tasker/Constants/EventDefinitions.html
511
+ - docs/Tasker/Constants/LifecycleEvents.html
512
+ - docs/Tasker/Constants/ObservabilityEvents.html
513
+ - docs/Tasker/Constants/ObservabilityEvents/Step.html
514
+ - docs/Tasker/Constants/ObservabilityEvents/Task.html
515
+ - docs/Tasker/Constants/RegistryEvents.html
516
+ - docs/Tasker/Constants/StepEvents.html
517
+ - docs/Tasker/Constants/TaskEvents.html
518
+ - docs/Tasker/Constants/TaskExecution.html
519
+ - docs/Tasker/Constants/TaskExecution/ExecutionStatus.html
520
+ - docs/Tasker/Constants/TaskExecution/HealthStatus.html
521
+ - docs/Tasker/Constants/TaskExecution/RecommendedAction.html
522
+ - docs/Tasker/Constants/TaskFinalization.html
523
+ - docs/Tasker/Constants/TaskFinalization/ErrorMessages.html
524
+ - docs/Tasker/Constants/TaskFinalization/PendingReasons.html
525
+ - docs/Tasker/Constants/TaskFinalization/ReenqueueReasons.html
526
+ - docs/Tasker/Constants/TaskStatuses.html
527
+ - docs/Tasker/Constants/TestEvents.html
528
+ - docs/Tasker/Constants/WorkflowEvents.html
529
+ - docs/Tasker/Constants/WorkflowStepStatuses.html
530
+ - docs/Tasker/DependentSystem.html
531
+ - docs/Tasker/DependentSystemObjectMap.html
532
+ - docs/Tasker/DetectorRegistry.html
533
+ - docs/Tasker/Diagram.html
534
+ - docs/Tasker/Diagram/Edge.html
535
+ - docs/Tasker/Diagram/Flowchart.html
536
+ - docs/Tasker/Diagram/Node.html
537
+ - docs/Tasker/Engine.html
538
+ - docs/Tasker/Error.html
539
+ - docs/Tasker/Events.html
540
+ - docs/Tasker/Events/Bus.html
541
+ - docs/Tasker/Events/Catalog.html
542
+ - docs/Tasker/Events/Catalog/CatalogPrinter.html
543
+ - docs/Tasker/Events/Catalog/CustomEventRegistrar.html
544
+ - docs/Tasker/Events/Catalog/ExamplePayloadGenerator.html
545
+ - docs/Tasker/Events/CustomRegistry.html
546
+ - docs/Tasker/Events/DefinitionLoader.html
547
+ - docs/Tasker/Events/EventPayloadBuilder.html
548
+ - docs/Tasker/Events/EventPayloadBuilder/ErrorInfoExtractor.html
549
+ - docs/Tasker/Events/EventPayloadBuilder/StepPayloadBuilder.html
550
+ - docs/Tasker/Events/Publisher.html
551
+ - docs/Tasker/Events/Subscribers.html
552
+ - docs/Tasker/Events/Subscribers/BaseSubscriber.html
553
+ - docs/Tasker/Events/Subscribers/BaseSubscriber/ErrorCategorizer.html
554
+ - docs/Tasker/Events/Subscribers/BaseSubscriber/ErrorCategorizer/ErrorTypeClassifier.html
555
+ - docs/Tasker/Events/Subscribers/BaseSubscriber/MetricTagsExtractor.html
556
+ - docs/Tasker/Events/Subscribers/MetricsSubscriber.html
557
+ - docs/Tasker/Events/Subscribers/TelemetrySubscriber.html
558
+ - docs/Tasker/Events/SubscriptionLoader.html
559
+ - docs/Tasker/EventsGenerator.html
560
+ - docs/Tasker/Functions.html
561
+ - docs/Tasker/Functions/FunctionBasedAnalyticsMetrics.html
562
+ - docs/Tasker/Functions/FunctionBasedAnalyticsMetrics/AnalyticsMetrics.html
563
+ - docs/Tasker/Functions/FunctionBasedDependencyLevels.html
564
+ - docs/Tasker/Functions/FunctionBasedSlowestSteps.html
565
+ - docs/Tasker/Functions/FunctionBasedSlowestSteps/SlowestStep.html
566
+ - docs/Tasker/Functions/FunctionBasedSlowestTasks.html
567
+ - docs/Tasker/Functions/FunctionBasedSlowestTasks/SlowestTask.html
568
+ - docs/Tasker/Functions/FunctionBasedStepReadinessStatus.html
569
+ - docs/Tasker/Functions/FunctionBasedSystemHealthCounts.html
570
+ - docs/Tasker/Functions/FunctionBasedSystemHealthCounts/HealthMetrics.html
571
+ - docs/Tasker/Functions/FunctionBasedTaskExecutionContext.html
572
+ - docs/Tasker/Functions/FunctionWrapper.html
573
+ - docs/Tasker/Generators.html
574
+ - docs/Tasker/Generators/AuthenticatorGenerator.html
575
+ - docs/Tasker/Generators/AuthenticatorGenerator/UsageInstructionsFormatter.html
576
+ - docs/Tasker/Generators/AuthorizationCoordinatorGenerator.html
577
+ - docs/Tasker/Generators/SubscriberGenerator.html
578
+ - docs/Tasker/Generators/TaskHandlerGenerator.html
579
+ - docs/Tasker/GraphQLTypes.html
580
+ - docs/Tasker/GraphQLTypes/AnnotationType.html
581
+ - docs/Tasker/GraphQLTypes/BaseArgument.html
582
+ - docs/Tasker/GraphQLTypes/BaseConnection.html
583
+ - docs/Tasker/GraphQLTypes/BaseEdge.html
584
+ - docs/Tasker/GraphQLTypes/BaseEnum.html
585
+ - docs/Tasker/GraphQLTypes/BaseField.html
586
+ - docs/Tasker/GraphQLTypes/BaseInputObject.html
587
+ - docs/Tasker/GraphQLTypes/BaseInterface.html
588
+ - docs/Tasker/GraphQLTypes/BaseObject.html
589
+ - docs/Tasker/GraphQLTypes/BaseScalar.html
590
+ - docs/Tasker/GraphQLTypes/BaseUnion.html
591
+ - docs/Tasker/GraphQLTypes/DependentSystemObjectMapType.html
592
+ - docs/Tasker/GraphQLTypes/DependentSystemType.html
593
+ - docs/Tasker/GraphQLTypes/MutationType.html
594
+ - docs/Tasker/GraphQLTypes/NamedStepType.html
595
+ - docs/Tasker/GraphQLTypes/NamedTaskType.html
596
+ - docs/Tasker/GraphQLTypes/NamedTasksNamedStepType.html
597
+ - docs/Tasker/GraphQLTypes/NodeType.html
598
+ - docs/Tasker/GraphQLTypes/QueryType.html
599
+ - docs/Tasker/GraphQLTypes/TaskAnnotationType.html
600
+ - docs/Tasker/GraphQLTypes/TaskInterface.html
601
+ - docs/Tasker/GraphQLTypes/TaskType.html
602
+ - docs/Tasker/GraphQLTypes/WorkflowStepType.html
603
+ - docs/Tasker/GraphqlController.html
604
+ - docs/Tasker/HandlerFactory.html
605
+ - docs/Tasker/HandlerSerializer.html
606
+ - docs/Tasker/HandlersController.html
607
+ - docs/Tasker/HashIdentityStrategy.html
608
+ - docs/Tasker/Health.html
609
+ - docs/Tasker/Health/ReadinessChecker.html
610
+ - docs/Tasker/Health/StatusChecker.html
611
+ - docs/Tasker/HealthController.html
612
+ - docs/Tasker/IdentityStrategy.html
613
+ - docs/Tasker/InvalidTaskHandlerConfig.html
614
+ - docs/Tasker/LifecycleEvents.html
615
+ - docs/Tasker/LifecycleEvents/Events.html
616
+ - docs/Tasker/LifecycleEvents/Events/Step.html
617
+ - docs/Tasker/LifecycleEvents/Events/Task.html
618
+ - docs/Tasker/LifecycleEvents/Publisher.html
619
+ - docs/Tasker/Logging.html
620
+ - docs/Tasker/Logging/CorrelationIdGenerator.html
621
+ - docs/Tasker/MetricsController.html
622
+ - docs/Tasker/MetricsExportJob.html
623
+ - docs/Tasker/Mutations.html
624
+ - docs/Tasker/Mutations/BaseMutation.html
625
+ - docs/Tasker/Mutations/CancelStep.html
626
+ - docs/Tasker/Mutations/CancelTask.html
627
+ - docs/Tasker/Mutations/CreateTask.html
628
+ - docs/Tasker/Mutations/UpdateStep.html
629
+ - docs/Tasker/Mutations/UpdateTask.html
630
+ - docs/Tasker/NamedStep.html
631
+ - docs/Tasker/NamedTask.html
632
+ - docs/Tasker/NamedTasksNamedStep.html
633
+ - docs/Tasker/Orchestration.html
634
+ - docs/Tasker/Orchestration/BackoffCalculator.html
635
+ - docs/Tasker/Orchestration/ConnectionBuilder.html
636
+ - docs/Tasker/Orchestration/ConnectionBuilder/ConfigValidator.html
637
+ - docs/Tasker/Orchestration/ConnectionPoolIntelligence.html
638
+ - docs/Tasker/Orchestration/Coordinator.html
639
+ - docs/Tasker/Orchestration/FutureStateAnalyzer.html
640
+ - docs/Tasker/Orchestration/Orchestrator.html
641
+ - docs/Tasker/Orchestration/PluginIntegration.html
642
+ - docs/Tasker/Orchestration/ResponseProcessor.html
643
+ - docs/Tasker/Orchestration/RetryHeaderParser.html
644
+ - docs/Tasker/Orchestration/StepExecutor.html
645
+ - docs/Tasker/Orchestration/StepSequenceFactory.html
646
+ - docs/Tasker/Orchestration/TaskFinalizer.html
647
+ - docs/Tasker/Orchestration/TaskFinalizer/BlockageChecker.html
648
+ - docs/Tasker/Orchestration/TaskFinalizer/ContextManager.html
649
+ - docs/Tasker/Orchestration/TaskFinalizer/DelayCalculator.html
650
+ - docs/Tasker/Orchestration/TaskFinalizer/FinalizationDecisionMaker.html
651
+ - docs/Tasker/Orchestration/TaskFinalizer/FinalizationProcessor.html
652
+ - docs/Tasker/Orchestration/TaskFinalizer/ReasonDeterminer.html
653
+ - docs/Tasker/Orchestration/TaskFinalizer/ReenqueueManager.html
654
+ - docs/Tasker/Orchestration/TaskFinalizer/UnclearStateHandler.html
655
+ - docs/Tasker/Orchestration/TaskInitializer.html
656
+ - docs/Tasker/Orchestration/TaskReenqueuer.html
657
+ - docs/Tasker/Orchestration/ViableStepDiscovery.html
658
+ - docs/Tasker/Orchestration/WorkflowCoordinator.html
659
+ - docs/Tasker/PageSort.html
660
+ - docs/Tasker/PageSort/PageSortParamsBuilder.html
661
+ - docs/Tasker/PermanentError.html
662
+ - docs/Tasker/ProceduralError.html
663
+ - docs/Tasker/Queries.html
664
+ - docs/Tasker/Queries/AllAnnotationTypes.html
665
+ - docs/Tasker/Queries/AllTasks.html
666
+ - docs/Tasker/Queries/BaseQuery.html
667
+ - docs/Tasker/Queries/Helpers.html
668
+ - docs/Tasker/Queries/OneStep.html
669
+ - docs/Tasker/Queries/OneTask.html
670
+ - docs/Tasker/Queries/TasksByAnnotation.html
671
+ - docs/Tasker/Queries/TasksByStatus.html
672
+ - docs/Tasker/Railtie.html
673
+ - docs/Tasker/Registry.html
674
+ - docs/Tasker/Registry/BaseRegistry.html
675
+ - docs/Tasker/Registry/EventPublisher.html
676
+ - docs/Tasker/Registry/InterfaceValidator.html
677
+ - docs/Tasker/Registry/RegistrationError.html
678
+ - docs/Tasker/Registry/RegistryError.html
679
+ - docs/Tasker/Registry/StatisticsCollector.html
680
+ - docs/Tasker/Registry/SubscriberRegistry.html
681
+ - docs/Tasker/Registry/ValidationError.html
682
+ - docs/Tasker/RetryableError.html
683
+ - docs/Tasker/StateMachine.html
684
+ - docs/Tasker/StateMachine/Compatibility.html
685
+ - docs/Tasker/StateMachine/InvalidStateTransition.html
686
+ - docs/Tasker/StateMachine/StepStateMachine.html
687
+ - docs/Tasker/StateMachine/StepStateMachine/StandardizedPayloadBuilder.html
688
+ - docs/Tasker/StateMachine/TaskStateMachine.html
689
+ - docs/Tasker/StepDagRelationship.html
690
+ - docs/Tasker/StepHandler.html
691
+ - docs/Tasker/StepHandler/Api.html
692
+ - docs/Tasker/StepHandler/Api/Config.html
693
+ - docs/Tasker/StepHandler/AutomaticEventPublishing.html
694
+ - docs/Tasker/StepHandler/Base.html
695
+ - docs/Tasker/StepReadinessStatus.html
696
+ - docs/Tasker/Task.html
697
+ - docs/Tasker/TaskAnnotation.html
698
+ - docs/Tasker/TaskAnnotationSerializer.html
699
+ - docs/Tasker/TaskBuilder.html
700
+ - docs/Tasker/TaskBuilder/StepNameValidator.html
701
+ - docs/Tasker/TaskBuilder/StepTemplateDefiner.html
702
+ - docs/Tasker/TaskDiagram.html
703
+ - docs/Tasker/TaskDiagram/StepToStepEdgeBuilder.html
704
+ - docs/Tasker/TaskDiagram/TaskToRootStepEdgeBuilder.html
705
+ - docs/Tasker/TaskDiagramsController.html
706
+ - docs/Tasker/TaskExecutionContext.html
707
+ - docs/Tasker/TaskHandler.html
708
+ - docs/Tasker/TaskHandler/ClassMethods.html
709
+ - docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner.html
710
+ - docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner/ClassBasedEventRegistrar.html
711
+ - docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner/YamlEventRegistrar.html
712
+ - docs/Tasker/TaskHandler/InstanceMethods.html
713
+ - docs/Tasker/TaskHandler/StepGroup.html
714
+ - docs/Tasker/TaskNamespace.html
715
+ - docs/Tasker/TaskRunnerJob.html
716
+ - docs/Tasker/TaskSerializer.html
717
+ - docs/Tasker/TaskTransition.html
718
+ - docs/Tasker/TaskWorkflowSummary.html
719
+ - docs/Tasker/TaskerRailsSchema.html
720
+ - docs/Tasker/TaskerRailsSchema/InvalidObjectTypeError.html
721
+ - docs/Tasker/TaskerRailsSchema/TypeResolutionError.html
722
+ - docs/Tasker/TaskerRailsSchema/UnknownInterfaceError.html
723
+ - docs/Tasker/TasksController.html
724
+ - docs/Tasker/Telemetry.html
725
+ - docs/Tasker/Telemetry/EventMapping.html
726
+ - docs/Tasker/Telemetry/EventRouter.html
727
+ - docs/Tasker/Telemetry/Events.html
728
+ - docs/Tasker/Telemetry/Events/ExportEvents.html
729
+ - docs/Tasker/Telemetry/ExportCoordinator.html
730
+ - docs/Tasker/Telemetry/ExportCoordinator/DistributedLockTimeoutError.html
731
+ - docs/Tasker/Telemetry/IntelligentCacheManager.html
732
+ - docs/Tasker/Telemetry/LogBackend.html
733
+ - docs/Tasker/Telemetry/MetricTypes.html
734
+ - docs/Tasker/Telemetry/MetricTypes/Counter.html
735
+ - docs/Tasker/Telemetry/MetricTypes/Gauge.html
736
+ - docs/Tasker/Telemetry/MetricTypes/Histogram.html
737
+ - docs/Tasker/Telemetry/MetricsBackend.html
738
+ - docs/Tasker/Telemetry/MetricsExportService.html
739
+ - docs/Tasker/Telemetry/PluginRegistry.html
740
+ - docs/Tasker/Telemetry/Plugins.html
741
+ - docs/Tasker/Telemetry/Plugins/BaseExporter.html
742
+ - docs/Tasker/Telemetry/Plugins/CsvExporter.html
743
+ - docs/Tasker/Telemetry/Plugins/JsonExporter.html
744
+ - docs/Tasker/Telemetry/PrometheusExporter.html
745
+ - docs/Tasker/Telemetry/TraceBackend.html
746
+ - docs/Tasker/Types.html
747
+ - docs/Tasker/Types/AuthConfig.html
748
+ - docs/Tasker/Types/BackoffConfig.html
749
+ - docs/Tasker/Types/BaseConfig.html
750
+ - docs/Tasker/Types/CacheConfig.html
751
+ - docs/Tasker/Types/DatabaseConfig.html
752
+ - docs/Tasker/Types/DependencyGraph.html
753
+ - docs/Tasker/Types/DependencyGraphConfig.html
754
+ - docs/Tasker/Types/EngineConfig.html
755
+ - docs/Tasker/Types/ExecutionConfig.html
756
+ - docs/Tasker/Types/GraphEdge.html
757
+ - docs/Tasker/Types/GraphMetadata.html
758
+ - docs/Tasker/Types/GraphNode.html
759
+ - docs/Tasker/Types/HealthConfig.html
760
+ - docs/Tasker/Types/StepSequence.html
761
+ - docs/Tasker/Types/StepTemplate.html
762
+ - docs/Tasker/Types/TaskRequest.html
763
+ - docs/Tasker/Types/TelemetryConfig.html
764
+ - docs/Tasker/WorkflowStep.html
765
+ - docs/Tasker/WorkflowStep/StepFinder.html
766
+ - docs/Tasker/WorkflowStepEdge.html
767
+ - docs/Tasker/WorkflowStepSerializer.html
768
+ - docs/Tasker/WorkflowStepTransition.html
769
+ - docs/Tasker/WorkflowStepTransition/TransitionDescriptionFormatter.html
770
+ - docs/Tasker/WorkflowStepsController.html
771
+ - docs/VISION.md
772
+ - docs/WHY.md
773
+ - docs/_index.html
774
+ - docs/class_list.html
775
+ - docs/css/common.css
776
+ - docs/css/full_list.css
777
+ - docs/css/style.css
778
+ - docs/events/migration_plan_outcomes.md
779
+ - docs/file.README.html
780
+ - docs/file_list.html
781
+ - docs/frames.html
782
+ - docs/index.html
783
+ - docs/js/app.js
784
+ - docs/js/full_list.js
785
+ - docs/js/jquery.js
786
+ - docs/method_list.html
787
+ - docs/top-level-namespace.html
788
+ - lib/generators/tasker/authenticator_generator.rb
789
+ - lib/generators/tasker/authorization_coordinator_generator.rb
790
+ - lib/generators/tasker/events_generator.rb
791
+ - lib/generators/tasker/subscriber_generator.rb
792
+ - lib/generators/tasker/task_handler_generator.rb
793
+ - lib/generators/tasker/templates/api_token_authenticator.rb.erb
794
+ - lib/generators/tasker/templates/api_token_authenticator_spec.rb.erb
795
+ - lib/generators/tasker/templates/authorization_coordinator.rb.erb
796
+ - lib/generators/tasker/templates/authorization_coordinator_spec.rb.erb
797
+ - lib/generators/tasker/templates/custom_authenticator.rb.erb
798
+ - lib/generators/tasker/templates/custom_authenticator_spec.rb.erb
799
+ - lib/generators/tasker/templates/custom_events.yml.erb
800
+ - lib/generators/tasker/templates/custom_subscriber.rb.erb
801
+ - lib/generators/tasker/templates/devise_authenticator.rb.erb
802
+ - lib/generators/tasker/templates/devise_authenticator_spec.rb.erb
803
+ - lib/generators/tasker/templates/initialize.rb.erb
804
+ - lib/generators/tasker/templates/jwt_authenticator.rb.erb
805
+ - lib/generators/tasker/templates/jwt_authenticator_spec.rb.erb
806
+ - lib/generators/tasker/templates/metrics_subscriber.rb.erb
807
+ - lib/generators/tasker/templates/metrics_subscriber_spec.rb.erb
808
+ - lib/generators/tasker/templates/omniauth_authenticator.rb.erb
809
+ - lib/generators/tasker/templates/omniauth_authenticator_spec.rb.erb
810
+ - lib/generators/tasker/templates/opentelemetry_initializer.rb
811
+ - lib/generators/tasker/templates/subscriber.rb.erb
812
+ - lib/generators/tasker/templates/subscriber_spec.rb.erb
813
+ - lib/generators/tasker/templates/task_config.yaml.erb
814
+ - lib/generators/tasker/templates/task_handler.rb.erb
815
+ - lib/generators/tasker/templates/task_handler_spec.rb.erb
816
+ - lib/tasker.rb
817
+ - lib/tasker/analysis/runtime_graph_analyzer.rb
818
+ - lib/tasker/analysis/template_graph_analyzer.rb
819
+ - lib/tasker/authentication/coordinator.rb
820
+ - lib/tasker/authentication/errors.rb
821
+ - lib/tasker/authentication/interface.rb
822
+ - lib/tasker/authentication/none_authenticator.rb
823
+ - lib/tasker/authorization.rb
824
+ - lib/tasker/authorization/base_coordinator.rb
825
+ - lib/tasker/authorization/errors.rb
826
+ - lib/tasker/authorization/resource_constants.rb
827
+ - lib/tasker/authorization/resource_registry.rb
828
+ - lib/tasker/cache_capabilities.rb
829
+ - lib/tasker/cache_strategy.rb
830
+ - lib/tasker/concerns/authenticatable.rb
831
+ - lib/tasker/concerns/authorizable.rb
832
+ - lib/tasker/concerns/controller_authorizable.rb
833
+ - lib/tasker/concerns/event_publisher.rb
834
+ - lib/tasker/concerns/idempotent_state_transitions.rb
835
+ - lib/tasker/concerns/state_machine_base.rb
836
+ - lib/tasker/concerns/structured_logging.rb
837
+ - lib/tasker/configuration.rb
838
+ - lib/tasker/constants.rb
839
+ - lib/tasker/constants/event_definitions.rb
840
+ - lib/tasker/constants/registry_events.rb
841
+ - lib/tasker/engine.rb
842
+ - lib/tasker/errors.rb
843
+ - lib/tasker/events.rb
844
+ - lib/tasker/events/catalog.rb
845
+ - lib/tasker/events/custom_registry.rb
846
+ - lib/tasker/events/definition_loader.rb
847
+ - lib/tasker/events/event_payload_builder.rb
848
+ - lib/tasker/events/publisher.rb
849
+ - lib/tasker/events/subscribers/base_subscriber.rb
850
+ - lib/tasker/events/subscribers/metrics_subscriber.rb
851
+ - lib/tasker/events/subscribers/telemetry_subscriber.rb
852
+ - lib/tasker/events/subscription_loader.rb
853
+ - lib/tasker/functions.rb
854
+ - lib/tasker/functions/function_based_analytics_metrics.rb
855
+ - lib/tasker/functions/function_based_dependency_levels.rb
856
+ - lib/tasker/functions/function_based_slowest_steps.rb
857
+ - lib/tasker/functions/function_based_slowest_tasks.rb
858
+ - lib/tasker/functions/function_based_step_readiness_status.rb
859
+ - lib/tasker/functions/function_based_system_health_counts.rb
860
+ - lib/tasker/functions/function_based_task_execution_context.rb
861
+ - lib/tasker/functions/function_wrapper.rb
862
+ - lib/tasker/handler_factory.rb
863
+ - lib/tasker/health/readiness_checker.rb
864
+ - lib/tasker/health/status_checker.rb
865
+ - lib/tasker/identity_strategy.rb
866
+ - lib/tasker/logging/correlation_id_generator.rb
867
+ - lib/tasker/orchestration.rb
868
+ - lib/tasker/orchestration/backoff_calculator.rb
869
+ - lib/tasker/orchestration/connection_builder.rb
870
+ - lib/tasker/orchestration/connection_pool_intelligence.rb
871
+ - lib/tasker/orchestration/coordinator.rb
872
+ - lib/tasker/orchestration/future_state_analyzer.rb
873
+ - lib/tasker/orchestration/plugin_integration.rb
874
+ - lib/tasker/orchestration/response_processor.rb
875
+ - lib/tasker/orchestration/retry_header_parser.rb
876
+ - lib/tasker/orchestration/step_executor.rb
877
+ - lib/tasker/orchestration/step_sequence_factory.rb
878
+ - lib/tasker/orchestration/task_finalizer.rb
879
+ - lib/tasker/orchestration/task_initializer.rb
880
+ - lib/tasker/orchestration/task_reenqueuer.rb
881
+ - lib/tasker/orchestration/viable_step_discovery.rb
882
+ - lib/tasker/orchestration/workflow_coordinator.rb
883
+ - lib/tasker/railtie.rb
884
+ - lib/tasker/registry.rb
885
+ - lib/tasker/registry/base_registry.rb
886
+ - lib/tasker/registry/event_publisher.rb
887
+ - lib/tasker/registry/interface_validator.rb
888
+ - lib/tasker/registry/statistics_collector.rb
889
+ - lib/tasker/registry/subscriber_registry.rb
890
+ - lib/tasker/state_machine.rb
891
+ - lib/tasker/state_machine/step_state_machine.rb
892
+ - lib/tasker/state_machine/task_state_machine.rb
893
+ - lib/tasker/step_handler/api.rb
894
+ - lib/tasker/step_handler/base.rb
895
+ - lib/tasker/task_builder.rb
896
+ - lib/tasker/task_handler.rb
897
+ - lib/tasker/task_handler/class_methods.rb
898
+ - lib/tasker/task_handler/instance_methods.rb
899
+ - lib/tasker/task_handler/step_group.rb
900
+ - lib/tasker/telemetry.rb
901
+ - lib/tasker/telemetry/event_mapping.rb
902
+ - lib/tasker/telemetry/event_router.rb
903
+ - lib/tasker/telemetry/events/export_events.rb
904
+ - lib/tasker/telemetry/export_coordinator.rb
905
+ - lib/tasker/telemetry/intelligent_cache_manager.rb
906
+ - lib/tasker/telemetry/log_backend.rb
907
+ - lib/tasker/telemetry/metric_types.rb
908
+ - lib/tasker/telemetry/metrics_backend.rb
909
+ - lib/tasker/telemetry/metrics_export_service.rb
910
+ - lib/tasker/telemetry/plugin_registry.rb
911
+ - lib/tasker/telemetry/plugins/base_exporter.rb
912
+ - lib/tasker/telemetry/plugins/csv_exporter.rb
913
+ - lib/tasker/telemetry/plugins/json_exporter.rb
914
+ - lib/tasker/telemetry/prometheus_exporter.rb
915
+ - lib/tasker/telemetry/trace_backend.rb
916
+ - lib/tasker/types.rb
917
+ - lib/tasker/types/auth_config.rb
918
+ - lib/tasker/types/backoff_config.rb
919
+ - lib/tasker/types/cache_config.rb
920
+ - lib/tasker/types/database_config.rb
921
+ - lib/tasker/types/dependency_graph.rb
922
+ - lib/tasker/types/dependency_graph_config.rb
923
+ - lib/tasker/types/engine_config.rb
924
+ - lib/tasker/types/execution_config.rb
925
+ - lib/tasker/types/health_config.rb
926
+ - lib/tasker/types/step_sequence.rb
927
+ - lib/tasker/types/step_template.rb
928
+ - lib/tasker/types/task_request.rb
929
+ - lib/tasker/types/telemetry_config.rb
930
+ - lib/tasker/version.rb
931
+ - lib/tasks/tasker_tasks.rake
932
+ homepage: https://github.com/tasker-systems/tasker
933
+ licenses:
934
+ - MIT
935
+ metadata:
936
+ homepage_uri: https://github.com/tasker-systems/tasker
937
+ source_code_uri: https://github.com/tasker-systems/tasker
938
+ rubygems_mfa_required: 'true'
939
+ post_install_message:
940
+ rdoc_options: []
941
+ require_paths:
942
+ - lib
943
+ required_ruby_version: !ruby/object:Gem::Requirement
944
+ requirements:
945
+ - - ">="
946
+ - !ruby/object:Gem::Version
947
+ version: 3.2.0
948
+ required_rubygems_version: !ruby/object:Gem::Requirement
949
+ requirements:
950
+ - - ">="
951
+ - !ruby/object:Gem::Version
952
+ version: '0'
953
+ requirements: []
954
+ rubygems_version: 3.4.19
955
+ signing_key:
956
+ specification_version: 4
957
+ summary: Enterprise-grade workflow orchestration engine for Rails applications
958
+ test_files: []