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
@@ -0,0 +1,882 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: Tasker::Authorization::ResourceRegistry
8
+
9
+ &mdash; Documentation by YARD 0.9.37
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "Tasker::Authorization::ResourceRegistry";
19
+ relpath = '../../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../../_index.html">Index (R)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../../Tasker.html" title="Tasker (module)">Tasker</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Authorization.html" title="Tasker::Authorization (module)">Authorization</a></span></span>
41
+ &raquo;
42
+ <span class="title">ResourceRegistry</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Class: Tasker::Authorization::ResourceRegistry
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName">Object</span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next">Tasker::Authorization::ResourceRegistry</li>
78
+
79
+ </ul>
80
+ <a href="#" class="inheritanceTree">show all</a>
81
+
82
+ </dd>
83
+ </dl>
84
+
85
+
86
+
87
+
88
+
89
+
90
+ <dl>
91
+ <dt>Includes:</dt>
92
+ <dd><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></dd>
93
+ </dl>
94
+
95
+
96
+
97
+
98
+
99
+
100
+ <dl>
101
+ <dt>Defined in:</dt>
102
+ <dd>lib/tasker/authorization/resource_registry.rb</dd>
103
+ </dl>
104
+
105
+ </div>
106
+
107
+ <h2>Overview</h2><div class="docstring">
108
+ <div class="discussion">
109
+
110
+ <p>Resource registry defining available resources and their permitted actions for authorization purposes.</p>
111
+
112
+ <p>This registry serves as a central catalog of all resources that can be authorized within the Tasker system. Each resource defines a set of actions that can be performed on it.</p>
113
+
114
+
115
+ </div>
116
+ </div>
117
+ <div class="tags">
118
+
119
+ <div class="examples">
120
+ <h4 class="tag_title">Examples:</h4>
121
+
122
+
123
+ <h5 class="example_title"><div class='inline'>
124
+ <p>Checking if a resource exists</p>
125
+ </div></h5>
126
+
127
+ <pre class="example code"><code><span class='const'>ResourceRegistry</span><span class='period'>.</span><span class='id identifier rubyid_resource_exists?'><span class='object_link'><a href="#resource_exists%3F-class_method" title="Tasker::Authorization::ResourceRegistry.resource_exists? (method)">resource_exists?</a></span></span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#RESOURCES-constant" title="Tasker::Authorization::ResourceRegistry::RESOURCES (constant)">RESOURCES</a></span></span><span class='op'>::</span><span class='const'>TASK</span><span class='rparen'>)</span> <span class='comment'># =&gt; true</span></code></pre>
128
+
129
+
130
+ <h5 class="example_title"><div class='inline'>
131
+ <p>Checking if an action is valid for a resource</p>
132
+ </div></h5>
133
+
134
+ <pre class="example code"><code><span class='const'>ResourceRegistry</span><span class='period'>.</span><span class='id identifier rubyid_action_exists?'><span class='object_link'><a href="#action_exists%3F-class_method" title="Tasker::Authorization::ResourceRegistry.action_exists? (method)">action_exists?</a></span></span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#RESOURCES-constant" title="Tasker::Authorization::ResourceRegistry::RESOURCES (constant)">RESOURCES</a></span></span><span class='op'>::</span><span class='const'>TASK</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#SHOW-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::SHOW (constant)">SHOW</a></span></span><span class='rparen'>)</span> <span class='comment'># =&gt; true</span></code></pre>
135
+
136
+
137
+ <h5 class="example_title"><div class='inline'>
138
+ <p>Getting all available permissions</p>
139
+ </div></h5>
140
+
141
+ <pre class="example code"><code><span class='const'>ResourceRegistry</span><span class='period'>.</span><span class='id identifier rubyid_all_permissions'><span class='object_link'><a href="#all_permissions-class_method" title="Tasker::Authorization::ResourceRegistry.all_permissions (method)">all_permissions</a></span></span>
142
+ <span class='comment'># =&gt; [&quot;tasker.task:index&quot;, &quot;tasker.task:show&quot;, ...]</span></code></pre>
143
+
144
+ </div>
145
+
146
+
147
+ </div>
148
+
149
+ <h2>
150
+ Constant Summary
151
+ <small><a href="#" class="constants_summary_toggle">collapse</a></small>
152
+ </h2>
153
+
154
+ <dl class="constants">
155
+
156
+ <dt id="RESOURCES-constant" class="">RESOURCES =
157
+ <div class="docstring">
158
+ <div class="discussion">
159
+
160
+ <p>Registry of all available resources and their permitted actions</p>
161
+
162
+
163
+ </div>
164
+ </div>
165
+ <div class="tags">
166
+
167
+
168
+ </div>
169
+ </dt>
170
+ <dd><pre class="code"><span class='lbrace'>{</span>
171
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html" title="Tasker::Authorization::ResourceConstants::RESOURCES (module)">RESOURCES</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html#TASK-constant" title="Tasker::Authorization::ResourceConstants::RESOURCES::TASK (constant)">TASK</a></span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
172
+ <span class='label'>actions:</span> <span class='lbracket'>[</span>
173
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#INDEX-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::INDEX (constant)">INDEX</a></span></span><span class='comma'>,</span>
174
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#SHOW-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::SHOW (constant)">SHOW</a></span></span><span class='comma'>,</span>
175
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#CREATE-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::CREATE (constant)">CREATE</a></span></span><span class='comma'>,</span>
176
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#UPDATE-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::UPDATE (constant)">UPDATE</a></span></span><span class='comma'>,</span>
177
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#DESTROY-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::DESTROY (constant)">DESTROY</a></span></span><span class='comma'>,</span>
178
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#RETRY-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::RETRY (constant)">RETRY</a></span></span><span class='comma'>,</span>
179
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#CANCEL-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::CANCEL (constant)">CANCEL</a></span></span>
180
+ <span class='rbracket'>]</span><span class='comma'>,</span>
181
+ <span class='label'>description:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Tasker workflow tasks</span><span class='tstring_end'>&#39;</span></span>
182
+ <span class='rbrace'>}</span><span class='comma'>,</span>
183
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html" title="Tasker::Authorization::ResourceConstants::RESOURCES (module)">RESOURCES</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html#WORKFLOW_STEP-constant" title="Tasker::Authorization::ResourceConstants::RESOURCES::WORKFLOW_STEP (constant)">WORKFLOW_STEP</a></span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
184
+ <span class='label'>actions:</span> <span class='lbracket'>[</span>
185
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#INDEX-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::INDEX (constant)">INDEX</a></span></span><span class='comma'>,</span>
186
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#SHOW-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::SHOW (constant)">SHOW</a></span></span><span class='comma'>,</span>
187
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#UPDATE-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::UPDATE (constant)">UPDATE</a></span></span><span class='comma'>,</span>
188
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#DESTROY-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::DESTROY (constant)">DESTROY</a></span></span><span class='comma'>,</span>
189
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#RETRY-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::RETRY (constant)">RETRY</a></span></span><span class='comma'>,</span>
190
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#CANCEL-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::CANCEL (constant)">CANCEL</a></span></span>
191
+ <span class='rbracket'>]</span><span class='comma'>,</span>
192
+ <span class='label'>description:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Individual workflow steps</span><span class='tstring_end'>&#39;</span></span>
193
+ <span class='rbrace'>}</span><span class='comma'>,</span>
194
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html" title="Tasker::Authorization::ResourceConstants::RESOURCES (module)">RESOURCES</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html#TASK_DIAGRAM-constant" title="Tasker::Authorization::ResourceConstants::RESOURCES::TASK_DIAGRAM (constant)">TASK_DIAGRAM</a></span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
195
+ <span class='label'>actions:</span> <span class='lbracket'>[</span>
196
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#INDEX-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::INDEX (constant)">INDEX</a></span></span><span class='comma'>,</span>
197
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#SHOW-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::SHOW (constant)">SHOW</a></span></span>
198
+ <span class='rbracket'>]</span><span class='comma'>,</span>
199
+ <span class='label'>description:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Task workflow diagrams</span><span class='tstring_end'>&#39;</span></span>
200
+ <span class='rbrace'>}</span><span class='comma'>,</span>
201
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html" title="Tasker::Authorization::ResourceConstants::RESOURCES (module)">RESOURCES</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html#HEALTH_STATUS-constant" title="Tasker::Authorization::ResourceConstants::RESOURCES::HEALTH_STATUS (constant)">HEALTH_STATUS</a></span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
202
+ <span class='label'>actions:</span> <span class='lbracket'>[</span>
203
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#INDEX-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::INDEX (constant)">INDEX</a></span></span>
204
+ <span class='rbracket'>]</span><span class='comma'>,</span>
205
+ <span class='label'>description:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Health status endpoint information</span><span class='tstring_end'>&#39;</span></span>
206
+ <span class='rbrace'>}</span><span class='comma'>,</span>
207
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html" title="Tasker::Authorization::ResourceConstants::RESOURCES (module)">RESOURCES</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html#HANDLER-constant" title="Tasker::Authorization::ResourceConstants::RESOURCES::HANDLER (constant)">HANDLER</a></span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
208
+ <span class='label'>actions:</span> <span class='lbracket'>[</span>
209
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#INDEX-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::INDEX (constant)">INDEX</a></span></span><span class='comma'>,</span>
210
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#SHOW-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::SHOW (constant)">SHOW</a></span></span>
211
+ <span class='rbracket'>]</span><span class='comma'>,</span>
212
+ <span class='label'>description:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Handler discovery and metadata</span><span class='tstring_end'>&#39;</span></span>
213
+ <span class='rbrace'>}</span><span class='comma'>,</span>
214
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html" title="Tasker::Authorization::ResourceConstants::RESOURCES (module)">RESOURCES</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html#METRICS-constant" title="Tasker::Authorization::ResourceConstants::RESOURCES::METRICS (constant)">METRICS</a></span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
215
+ <span class='label'>actions:</span> <span class='lbracket'>[</span>
216
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#INDEX-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::INDEX (constant)">INDEX</a></span></span>
217
+ <span class='rbracket'>]</span><span class='comma'>,</span>
218
+ <span class='label'>description:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Prometheus metrics endpoint</span><span class='tstring_end'>&#39;</span></span>
219
+ <span class='rbrace'>}</span><span class='comma'>,</span>
220
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html" title="Tasker::Authorization::ResourceConstants::RESOURCES (module)">RESOURCES</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/RESOURCES.html#ANALYTICS-constant" title="Tasker::Authorization::ResourceConstants::RESOURCES::ANALYTICS (constant)">ANALYTICS</a></span></span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span>
221
+ <span class='label'>actions:</span> <span class='lbracket'>[</span>
222
+ <span class='const'><span class='object_link'><a href="ResourceConstants.html" title="Tasker::Authorization::ResourceConstants (module)">ResourceConstants</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html" title="Tasker::Authorization::ResourceConstants::ACTIONS (module)">ACTIONS</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceConstants/ACTIONS.html#INDEX-constant" title="Tasker::Authorization::ResourceConstants::ACTIONS::INDEX (constant)">INDEX</a></span></span>
223
+ <span class='rbracket'>]</span><span class='comma'>,</span>
224
+ <span class='label'>description:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Analytics and performance monitoring endpoints</span><span class='tstring_end'>&#39;</span></span>
225
+ <span class='rbrace'>}</span>
226
+ <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
227
+
228
+ </dl>
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+ <h2>
239
+ Class Method Summary
240
+ <small><a href="#" class="summary_toggle">collapse</a></small>
241
+ </h2>
242
+
243
+ <ul class="summary">
244
+
245
+ <li class="public ">
246
+ <span class="summary_signature">
247
+
248
+ <a href="#action_exists%3F-class_method" title="action_exists? (class method)">.<strong>action_exists?</strong>(resource, action) &#x21d2; Boolean </a>
249
+
250
+
251
+
252
+ </span>
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+ <span class="summary_desc"><div class='inline'>
263
+ <p>Check if an action is valid for a given resource.</p>
264
+ </div></span>
265
+
266
+ </li>
267
+
268
+
269
+ <li class="public ">
270
+ <span class="summary_signature">
271
+
272
+ <a href="#actions_for_resource-class_method" title="actions_for_resource (class method)">.<strong>actions_for_resource</strong>(resource) &#x21d2; Array&lt;Symbol&gt; </a>
273
+
274
+
275
+
276
+ </span>
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+ <span class="summary_desc"><div class='inline'>
287
+ <p>Get all actions for a specific resource.</p>
288
+ </div></span>
289
+
290
+ </li>
291
+
292
+
293
+ <li class="public ">
294
+ <span class="summary_signature">
295
+
296
+ <a href="#all_permissions-class_method" title="all_permissions (class method)">.<strong>all_permissions</strong> &#x21d2; Array&lt;String&gt; </a>
297
+
298
+
299
+
300
+ </span>
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+ <span class="summary_desc"><div class='inline'>
311
+ <p>Get all available permissions in “resource:action” format.</p>
312
+ </div></span>
313
+
314
+ </li>
315
+
316
+
317
+ <li class="public ">
318
+ <span class="summary_signature">
319
+
320
+ <a href="#resource_description-class_method" title="resource_description (class method)">.<strong>resource_description</strong>(resource) &#x21d2; String<sup>?</sup> </a>
321
+
322
+
323
+
324
+ </span>
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+ <span class="summary_desc"><div class='inline'>
335
+ <p>Get description for a resource.</p>
336
+ </div></span>
337
+
338
+ </li>
339
+
340
+
341
+ <li class="public ">
342
+ <span class="summary_signature">
343
+
344
+ <a href="#resource_exists%3F-class_method" title="resource_exists? (class method)">.<strong>resource_exists?</strong>(resource) &#x21d2; Boolean </a>
345
+
346
+
347
+
348
+ </span>
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+ <span class="summary_desc"><div class='inline'>
359
+ <p>Check if a resource exists in the registry.</p>
360
+ </div></span>
361
+
362
+ </li>
363
+
364
+
365
+ <li class="public ">
366
+ <span class="summary_signature">
367
+
368
+ <a href="#resources-class_method" title="resources (class method)">.<strong>resources</strong> &#x21d2; Hash </a>
369
+
370
+
371
+
372
+ </span>
373
+
374
+
375
+
376
+
377
+
378
+
379
+
380
+
381
+
382
+ <span class="summary_desc"><div class='inline'>
383
+ <p>Get all registered resources.</p>
384
+ </div></span>
385
+
386
+ </li>
387
+
388
+
389
+ </ul>
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+ <div id="class_method_details" class="method_details_list">
401
+ <h2>Class Method Details</h2>
402
+
403
+
404
+ <div class="method_details first">
405
+ <h3 class="signature first" id="action_exists?-class_method">
406
+
407
+ .<strong>action_exists?</strong>(resource, action) &#x21d2; <tt>Boolean</tt>
408
+
409
+
410
+
411
+
412
+
413
+ </h3><div class="docstring">
414
+ <div class="discussion">
415
+
416
+ <p>Check if an action is valid for a given resource</p>
417
+
418
+
419
+ </div>
420
+ </div>
421
+ <div class="tags">
422
+ <p class="tag_title">Parameters:</p>
423
+ <ul class="param">
424
+
425
+ <li>
426
+
427
+ <span class='name'>resource</span>
428
+
429
+
430
+ <span class='type'>(<tt>String</tt>)</span>
431
+
432
+
433
+
434
+ &mdash;
435
+ <div class='inline'>
436
+ <p>The resource name</p>
437
+ </div>
438
+
439
+ </li>
440
+
441
+ <li>
442
+
443
+ <span class='name'>action</span>
444
+
445
+
446
+ <span class='type'>(<tt>Symbol</tt>, <tt>String</tt>)</span>
447
+
448
+
449
+
450
+ &mdash;
451
+ <div class='inline'>
452
+ <p>The action name</p>
453
+ </div>
454
+
455
+ </li>
456
+
457
+ </ul>
458
+
459
+ <p class="tag_title">Returns:</p>
460
+ <ul class="return">
461
+
462
+ <li>
463
+
464
+
465
+ <span class='type'>(<tt>Boolean</tt>)</span>
466
+
467
+
468
+
469
+ &mdash;
470
+ <div class='inline'>
471
+ <p>True if the action exists for the resource</p>
472
+ </div>
473
+
474
+ </li>
475
+
476
+ </ul>
477
+
478
+ </div><table class="source_code">
479
+ <tr>
480
+ <td>
481
+ <pre class="lines">
482
+
483
+
484
+ 106
485
+ 107
486
+ 108
487
+ 109
488
+ 110</pre>
489
+ </td>
490
+ <td>
491
+ <pre class="code"><span class="info file"># File 'lib/tasker/authorization/resource_registry.rb', line 106</span>
492
+
493
+ <span class='kw'>def</span> <span class='id identifier rubyid_action_exists?'>action_exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_resource'>resource</span><span class='comma'>,</span> <span class='id identifier rubyid_action'>action</span><span class='rparen'>)</span>
494
+ <span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='id identifier rubyid_resource_exists?'>resource_exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_resource'>resource</span><span class='rparen'>)</span>
495
+
496
+ <span class='const'><span class='object_link'><a href="#RESOURCES-constant" title="Tasker::Authorization::ResourceRegistry::RESOURCES (constant)">RESOURCES</a></span></span><span class='lbracket'>[</span><span class='id identifier rubyid_resource'>resource</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:actions</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_action'>action</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rparen'>)</span>
497
+ <span class='kw'>end</span></pre>
498
+ </td>
499
+ </tr>
500
+ </table>
501
+ </div>
502
+
503
+ <div class="method_details ">
504
+ <h3 class="signature " id="actions_for_resource-class_method">
505
+
506
+ .<strong>actions_for_resource</strong>(resource) &#x21d2; <tt>Array&lt;Symbol&gt;</tt>
507
+
508
+
509
+
510
+
511
+
512
+ </h3><div class="docstring">
513
+ <div class="discussion">
514
+
515
+ <p>Get all actions for a specific resource</p>
516
+
517
+
518
+ </div>
519
+ </div>
520
+ <div class="tags">
521
+ <p class="tag_title">Parameters:</p>
522
+ <ul class="param">
523
+
524
+ <li>
525
+
526
+ <span class='name'>resource</span>
527
+
528
+
529
+ <span class='type'>(<tt>String</tt>)</span>
530
+
531
+
532
+
533
+ &mdash;
534
+ <div class='inline'>
535
+ <p>The resource name</p>
536
+ </div>
537
+
538
+ </li>
539
+
540
+ </ul>
541
+
542
+ <p class="tag_title">Returns:</p>
543
+ <ul class="return">
544
+
545
+ <li>
546
+
547
+
548
+ <span class='type'>(<tt>Array&lt;Symbol&gt;</tt>)</span>
549
+
550
+
551
+
552
+ &mdash;
553
+ <div class='inline'>
554
+ <p>Available actions for the resource</p>
555
+ </div>
556
+
557
+ </li>
558
+
559
+ </ul>
560
+
561
+ </div><table class="source_code">
562
+ <tr>
563
+ <td>
564
+ <pre class="lines">
565
+
566
+
567
+ 125
568
+ 126
569
+ 127
570
+ 128
571
+ 129</pre>
572
+ </td>
573
+ <td>
574
+ <pre class="code"><span class="info file"># File 'lib/tasker/authorization/resource_registry.rb', line 125</span>
575
+
576
+ <span class='kw'>def</span> <span class='id identifier rubyid_actions_for_resource'>actions_for_resource</span><span class='lparen'>(</span><span class='id identifier rubyid_resource'>resource</span><span class='rparen'>)</span>
577
+ <span class='kw'>return</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='kw'>unless</span> <span class='id identifier rubyid_resource_exists?'>resource_exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_resource'>resource</span><span class='rparen'>)</span>
578
+
579
+ <span class='const'><span class='object_link'><a href="#RESOURCES-constant" title="Tasker::Authorization::ResourceRegistry::RESOURCES (constant)">RESOURCES</a></span></span><span class='lbracket'>[</span><span class='id identifier rubyid_resource'>resource</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:actions</span><span class='rbracket'>]</span>
580
+ <span class='kw'>end</span></pre>
581
+ </td>
582
+ </tr>
583
+ </table>
584
+ </div>
585
+
586
+ <div class="method_details ">
587
+ <h3 class="signature " id="all_permissions-class_method">
588
+
589
+ .<strong>all_permissions</strong> &#x21d2; <tt>Array&lt;String&gt;</tt>
590
+
591
+
592
+
593
+
594
+
595
+ </h3><div class="docstring">
596
+ <div class="discussion">
597
+
598
+ <p>Get all available permissions in “resource:action” format</p>
599
+
600
+
601
+ </div>
602
+ </div>
603
+ <div class="tags">
604
+
605
+ <p class="tag_title">Returns:</p>
606
+ <ul class="return">
607
+
608
+ <li>
609
+
610
+
611
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
612
+
613
+
614
+
615
+ &mdash;
616
+ <div class='inline'>
617
+ <p>All available permissions</p>
618
+ </div>
619
+
620
+ </li>
621
+
622
+ </ul>
623
+
624
+ </div><table class="source_code">
625
+ <tr>
626
+ <td>
627
+ <pre class="lines">
628
+
629
+
630
+ 115
631
+ 116
632
+ 117
633
+ 118
634
+ 119</pre>
635
+ </td>
636
+ <td>
637
+ <pre class="code"><span class="info file"># File 'lib/tasker/authorization/resource_registry.rb', line 115</span>
638
+
639
+ <span class='kw'>def</span> <span class='id identifier rubyid_all_permissions'>all_permissions</span>
640
+ <span class='const'><span class='object_link'><a href="#RESOURCES-constant" title="Tasker::Authorization::ResourceRegistry::RESOURCES (constant)">RESOURCES</a></span></span><span class='period'>.</span><span class='id identifier rubyid_flat_map'>flat_map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_resource'>resource</span><span class='comma'>,</span> <span class='id identifier rubyid_config'>config</span><span class='op'>|</span>
641
+ <span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:actions</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_action'>action</span><span class='op'>|</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_resource'>resource</span><span class='embexpr_end'>}</span><span class='tstring_content'>:</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_action'>action</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span>
642
+ <span class='kw'>end</span>
643
+ <span class='kw'>end</span></pre>
644
+ </td>
645
+ </tr>
646
+ </table>
647
+ </div>
648
+
649
+ <div class="method_details ">
650
+ <h3 class="signature " id="resource_description-class_method">
651
+
652
+ .<strong>resource_description</strong>(resource) &#x21d2; <tt>String</tt><sup>?</sup>
653
+
654
+
655
+
656
+
657
+
658
+ </h3><div class="docstring">
659
+ <div class="discussion">
660
+
661
+ <p>Get description for a resource</p>
662
+
663
+
664
+ </div>
665
+ </div>
666
+ <div class="tags">
667
+ <p class="tag_title">Parameters:</p>
668
+ <ul class="param">
669
+
670
+ <li>
671
+
672
+ <span class='name'>resource</span>
673
+
674
+
675
+ <span class='type'>(<tt>String</tt>)</span>
676
+
677
+
678
+
679
+ &mdash;
680
+ <div class='inline'>
681
+ <p>The resource name</p>
682
+ </div>
683
+
684
+ </li>
685
+
686
+ </ul>
687
+
688
+ <p class="tag_title">Returns:</p>
689
+ <ul class="return">
690
+
691
+ <li>
692
+
693
+
694
+ <span class='type'>(<tt>String</tt>, <tt>nil</tt>)</span>
695
+
696
+
697
+
698
+ &mdash;
699
+ <div class='inline'>
700
+ <p>Description of the resource</p>
701
+ </div>
702
+
703
+ </li>
704
+
705
+ </ul>
706
+
707
+ </div><table class="source_code">
708
+ <tr>
709
+ <td>
710
+ <pre class="lines">
711
+
712
+
713
+ 135
714
+ 136
715
+ 137
716
+ 138
717
+ 139</pre>
718
+ </td>
719
+ <td>
720
+ <pre class="code"><span class="info file"># File 'lib/tasker/authorization/resource_registry.rb', line 135</span>
721
+
722
+ <span class='kw'>def</span> <span class='id identifier rubyid_resource_description'>resource_description</span><span class='lparen'>(</span><span class='id identifier rubyid_resource'>resource</span><span class='rparen'>)</span>
723
+ <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>unless</span> <span class='id identifier rubyid_resource_exists?'>resource_exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_resource'>resource</span><span class='rparen'>)</span>
724
+
725
+ <span class='const'><span class='object_link'><a href="#RESOURCES-constant" title="Tasker::Authorization::ResourceRegistry::RESOURCES (constant)">RESOURCES</a></span></span><span class='lbracket'>[</span><span class='id identifier rubyid_resource'>resource</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:description</span><span class='rbracket'>]</span>
726
+ <span class='kw'>end</span></pre>
727
+ </td>
728
+ </tr>
729
+ </table>
730
+ </div>
731
+
732
+ <div class="method_details ">
733
+ <h3 class="signature " id="resource_exists?-class_method">
734
+
735
+ .<strong>resource_exists?</strong>(resource) &#x21d2; <tt>Boolean</tt>
736
+
737
+
738
+
739
+
740
+
741
+ </h3><div class="docstring">
742
+ <div class="discussion">
743
+
744
+ <p>Check if a resource exists in the registry</p>
745
+
746
+
747
+ </div>
748
+ </div>
749
+ <div class="tags">
750
+ <p class="tag_title">Parameters:</p>
751
+ <ul class="param">
752
+
753
+ <li>
754
+
755
+ <span class='name'>resource</span>
756
+
757
+
758
+ <span class='type'>(<tt>String</tt>)</span>
759
+
760
+
761
+
762
+ &mdash;
763
+ <div class='inline'>
764
+ <p>The resource name (e.g., ‘tasker.task’)</p>
765
+ </div>
766
+
767
+ </li>
768
+
769
+ </ul>
770
+
771
+ <p class="tag_title">Returns:</p>
772
+ <ul class="return">
773
+
774
+ <li>
775
+
776
+
777
+ <span class='type'>(<tt>Boolean</tt>)</span>
778
+
779
+
780
+
781
+ &mdash;
782
+ <div class='inline'>
783
+ <p>True if the resource exists</p>
784
+ </div>
785
+
786
+ </li>
787
+
788
+ </ul>
789
+
790
+ </div><table class="source_code">
791
+ <tr>
792
+ <td>
793
+ <pre class="lines">
794
+
795
+
796
+ 97
797
+ 98
798
+ 99</pre>
799
+ </td>
800
+ <td>
801
+ <pre class="code"><span class="info file"># File 'lib/tasker/authorization/resource_registry.rb', line 97</span>
802
+
803
+ <span class='kw'>def</span> <span class='id identifier rubyid_resource_exists?'>resource_exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_resource'>resource</span><span class='rparen'>)</span>
804
+ <span class='const'><span class='object_link'><a href="#RESOURCES-constant" title="Tasker::Authorization::ResourceRegistry::RESOURCES (constant)">RESOURCES</a></span></span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_resource'>resource</span><span class='rparen'>)</span>
805
+ <span class='kw'>end</span></pre>
806
+ </td>
807
+ </tr>
808
+ </table>
809
+ </div>
810
+
811
+ <div class="method_details ">
812
+ <h3 class="signature " id="resources-class_method">
813
+
814
+ .<strong>resources</strong> &#x21d2; <tt>Hash</tt>
815
+
816
+
817
+
818
+
819
+
820
+ </h3><div class="docstring">
821
+ <div class="discussion">
822
+
823
+ <p>Get all registered resources</p>
824
+
825
+
826
+ </div>
827
+ </div>
828
+ <div class="tags">
829
+
830
+ <p class="tag_title">Returns:</p>
831
+ <ul class="return">
832
+
833
+ <li>
834
+
835
+
836
+ <span class='type'>(<tt>Hash</tt>)</span>
837
+
838
+
839
+
840
+ &mdash;
841
+ <div class='inline'>
842
+ <p>The complete resource registry</p>
843
+ </div>
844
+
845
+ </li>
846
+
847
+ </ul>
848
+
849
+ </div><table class="source_code">
850
+ <tr>
851
+ <td>
852
+ <pre class="lines">
853
+
854
+
855
+ 89
856
+ 90
857
+ 91</pre>
858
+ </td>
859
+ <td>
860
+ <pre class="code"><span class="info file"># File 'lib/tasker/authorization/resource_registry.rb', line 89</span>
861
+
862
+ <span class='kw'>def</span> <span class='id identifier rubyid_resources'>resources</span>
863
+ <span class='const'><span class='object_link'><a href="#RESOURCES-constant" title="Tasker::Authorization::ResourceRegistry::RESOURCES (constant)">RESOURCES</a></span></span>
864
+ <span class='kw'>end</span></pre>
865
+ </td>
866
+ </tr>
867
+ </table>
868
+ </div>
869
+
870
+ </div>
871
+
872
+ </div>
873
+
874
+ <div id="footer">
875
+ Generated on Tue Jul 1 16:47:40 2025 by
876
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
877
+ 0.9.37 (ruby-3.2.4).
878
+ </div>
879
+
880
+ </div>
881
+ </body>
882
+ </html>