zeebe-client 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5cb20414eb306313cc2a6a68b347dc4eaedc85a76e7ca8637352b3f9ab217cfb
4
- data.tar.gz: 63d61e008d9c565b94f72dffe68c6a6df52c9432f50ddec5c6d24a24e198dd17
3
+ metadata.gz: a4ff45546615505deac91e48ec781bf2e2d6d1ce14805aa2c741687effc38560
4
+ data.tar.gz: 2d06b409be95371bf28fe16bc620b5de9ffe85adc731d4169bd3bdc74bd9c432
5
5
  SHA512:
6
- metadata.gz: 1f294d138f22cd962acece2ff8b2f4c99fbacb3bbd30cf4226b01ce967e602661ad6cfef73cc67eac5da78196e3afc3a809017e458e004963fbffdce332806d0
7
- data.tar.gz: 575548bf57e5d82884b20d7ded08f57dce147cf32c080e4a60d606e650e19b25acabb5cca11b875a2fcf9e4aa04016d62dd25500271ae515a1c9db4d82dfc0da
6
+ metadata.gz: 3e70ec2dd314f99110ea372df8c5418379c793f7fb02fdb3ab30bd233b84c05fe58bbf8a295d120715258c1044fb83bac282ac13e5ba29b44a53c3b267dc303b
7
+ data.tar.gz: 89318c917001d3b54a32b246d391dd23700ed68985837f2c118fe7cd1525cc1e4c74d219e2f7045b15e32829c0b953e5a1abe0c3f82caac3339541faef938839
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.0 (February 13, 2019)
4
+
5
+ NEW FEATURES:
6
+
7
+ - add support for [Zeebe 0.15.0](https://github.com/zeebe-io/zeebe/releases/tag/0.15.0)
8
+
3
9
  ## 0.2.0 (January 25, 2019)
4
10
 
5
11
  OTHER:
data/README.md CHANGED
@@ -13,7 +13,7 @@ Install the gem:
13
13
  Run a Zeebe instance locally:
14
14
 
15
15
  ```sh
16
- docker run -it --rm -p 26500:26500 camunda/zeebe:0.14.0
16
+ docker run -it --rm -p 26500:26500 camunda/zeebe:0.15.0
17
17
  ```
18
18
 
19
19
  And then try the available [demo script](examples/demo.rb).
data/Rakefile CHANGED
@@ -13,7 +13,7 @@ task travis: ['zeebe:start', :default, 'zeebe:stop']
13
13
 
14
14
  desc 'Starts Zeebe Docker container'
15
15
  task 'zeebe:start' do
16
- sh 'docker run -d --name zeebe --rm -p 26500:26500 camunda/zeebe:0.14.0'
16
+ sh 'docker run -d --name zeebe --rm -p 26500:26500 camunda/zeebe:0.15.0'
17
17
  sleep(5)
18
18
  end
19
19
 
@@ -4,72 +4,38 @@
4
4
  require 'google/protobuf'
5
5
 
6
6
  Google::Protobuf::DescriptorPool.generated_pool.build do
7
- add_message "gateway_protocol.TopologyRequest" do
8
- end
9
- add_message "gateway_protocol.Partition" do
10
- optional :partitionId, :int32, 1
11
- optional :role, :enum, 3, "gateway_protocol.Partition.PartitionBrokerRole"
12
- end
13
- add_enum "gateway_protocol.Partition.PartitionBrokerRole" do
14
- value :LEADER, 0
15
- value :FOLLOWER, 1
16
- end
17
- add_message "gateway_protocol.BrokerInfo" do
18
- optional :nodeId, :int32, 1
19
- optional :host, :string, 2
20
- optional :port, :int32, 3
21
- repeated :partitions, :message, 4, "gateway_protocol.Partition"
22
- end
23
- add_message "gateway_protocol.TopologyResponse" do
24
- repeated :brokers, :message, 1, "gateway_protocol.BrokerInfo"
25
- optional :clusterSize, :int32, 2
26
- optional :partitionsCount, :int32, 3
27
- optional :replicationFactor, :int32, 4
28
- end
29
- add_message "gateway_protocol.WorkflowRequestObject" do
30
- optional :name, :string, 1
31
- optional :type, :enum, 2, "gateway_protocol.WorkflowRequestObject.ResourceType"
32
- optional :definition, :bytes, 3
33
- end
34
- add_enum "gateway_protocol.WorkflowRequestObject.ResourceType" do
35
- value :FILE, 0
36
- value :BPMN, 1
37
- value :YAML, 2
38
- end
39
- add_message "gateway_protocol.DeployWorkflowRequest" do
40
- repeated :workflows, :message, 1, "gateway_protocol.WorkflowRequestObject"
7
+ add_message "gateway_protocol.ActivateJobsRequest" do
8
+ optional :type, :string, 1
9
+ optional :worker, :string, 2
10
+ optional :timeout, :int64, 3
11
+ optional :amount, :int32, 4
12
+ repeated :fetchVariable, :string, 5
41
13
  end
42
- add_message "gateway_protocol.WorkflowMetadata" do
43
- optional :bpmnProcessId, :string, 1
44
- optional :version, :int32, 2
45
- optional :workflowKey, :int64, 3
46
- optional :resourceName, :string, 4
14
+ add_message "gateway_protocol.ActivateJobsResponse" do
15
+ repeated :jobs, :message, 1, "gateway_protocol.ActivatedJob"
47
16
  end
48
- add_message "gateway_protocol.DeployWorkflowResponse" do
17
+ add_message "gateway_protocol.ActivatedJob" do
49
18
  optional :key, :int64, 1
50
- repeated :workflows, :message, 2, "gateway_protocol.WorkflowMetadata"
51
- end
52
- add_message "gateway_protocol.PublishMessageRequest" do
53
- optional :name, :string, 1
54
- optional :correlationKey, :string, 2
55
- optional :timeToLive, :int64, 3
56
- optional :messageId, :string, 4
57
- optional :payload, :string, 5
58
- end
59
- add_message "gateway_protocol.PublishMessageResponse" do
60
- end
61
- add_message "gateway_protocol.UpdateJobRetriesRequest" do
62
- optional :jobKey, :int64, 1
63
- optional :retries, :int32, 2
19
+ optional :type, :string, 2
20
+ optional :jobHeaders, :message, 3, "gateway_protocol.JobHeaders"
21
+ optional :customHeaders, :string, 4
22
+ optional :worker, :string, 5
23
+ optional :retries, :int32, 6
24
+ optional :deadline, :int64, 7
25
+ optional :payload, :string, 8
64
26
  end
65
- add_message "gateway_protocol.UpdateJobRetriesResponse" do
27
+ add_message "gateway_protocol.JobHeaders" do
28
+ optional :workflowInstanceKey, :int64, 1
29
+ optional :bpmnProcessId, :string, 2
30
+ optional :workflowDefinitionVersion, :int32, 3
31
+ optional :workflowKey, :int64, 4
32
+ optional :elementId, :string, 5
33
+ optional :elementInstanceKey, :int64, 6
66
34
  end
67
- add_message "gateway_protocol.FailJobRequest" do
68
- optional :jobKey, :int64, 1
69
- optional :retries, :int32, 2
70
- optional :errorMessage, :string, 3
35
+ add_message "gateway_protocol.CancelWorkflowInstanceRequest" do
36
+ optional :workflowInstanceKey, :int64, 1
71
37
  end
72
- add_message "gateway_protocol.FailJobResponse" do
38
+ add_message "gateway_protocol.CancelWorkflowInstanceResponse" do
73
39
  end
74
40
  add_message "gateway_protocol.CompleteJobRequest" do
75
41
  optional :jobKey, :int64, 1
@@ -89,22 +55,35 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
89
55
  optional :version, :int32, 3
90
56
  optional :workflowInstanceKey, :int64, 5
91
57
  end
92
- add_message "gateway_protocol.CancelWorkflowInstanceRequest" do
93
- optional :workflowInstanceKey, :int64, 1
58
+ add_message "gateway_protocol.DeployWorkflowRequest" do
59
+ repeated :workflows, :message, 1, "gateway_protocol.WorkflowRequestObject"
94
60
  end
95
- add_message "gateway_protocol.CancelWorkflowInstanceResponse" do
61
+ add_message "gateway_protocol.WorkflowRequestObject" do
62
+ optional :name, :string, 1
63
+ optional :type, :enum, 2, "gateway_protocol.WorkflowRequestObject.ResourceType"
64
+ optional :definition, :bytes, 3
96
65
  end
97
- add_message "gateway_protocol.UpdateWorkflowInstancePayloadRequest" do
98
- optional :elementInstanceKey, :int64, 1
99
- optional :payload, :string, 2
66
+ add_enum "gateway_protocol.WorkflowRequestObject.ResourceType" do
67
+ value :FILE, 0
68
+ value :BPMN, 1
69
+ value :YAML, 2
100
70
  end
101
- add_message "gateway_protocol.UpdateWorkflowInstancePayloadResponse" do
71
+ add_message "gateway_protocol.DeployWorkflowResponse" do
72
+ optional :key, :int64, 1
73
+ repeated :workflows, :message, 2, "gateway_protocol.WorkflowMetadata"
102
74
  end
103
- add_message "gateway_protocol.ListWorkflowsRequest" do
75
+ add_message "gateway_protocol.WorkflowMetadata" do
104
76
  optional :bpmnProcessId, :string, 1
77
+ optional :version, :int32, 2
78
+ optional :workflowKey, :int64, 3
79
+ optional :resourceName, :string, 4
105
80
  end
106
- add_message "gateway_protocol.ListWorkflowsResponse" do
107
- repeated :workflows, :message, 1, "gateway_protocol.WorkflowMetadata"
81
+ add_message "gateway_protocol.FailJobRequest" do
82
+ optional :jobKey, :int64, 1
83
+ optional :retries, :int32, 2
84
+ optional :errorMessage, :string, 3
85
+ end
86
+ add_message "gateway_protocol.FailJobResponse" do
108
87
  end
109
88
  add_message "gateway_protocol.GetWorkflowRequest" do
110
89
  optional :workflowKey, :int64, 1
@@ -118,73 +97,95 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
118
97
  optional :resourceName, :string, 4
119
98
  optional :bpmnXml, :string, 5
120
99
  end
121
- add_message "gateway_protocol.ActivateJobsRequest" do
122
- optional :type, :string, 1
123
- optional :worker, :string, 2
124
- optional :timeout, :int64, 3
125
- optional :amount, :int32, 4
100
+ add_message "gateway_protocol.ListWorkflowsRequest" do
101
+ optional :bpmnProcessId, :string, 1
126
102
  end
127
- add_message "gateway_protocol.JobHeaders" do
128
- optional :workflowInstanceKey, :int64, 1
129
- optional :bpmnProcessId, :string, 2
130
- optional :workflowDefinitionVersion, :int32, 3
131
- optional :workflowKey, :int64, 4
132
- optional :elementId, :string, 5
133
- optional :elementInstanceKey, :int64, 6
103
+ add_message "gateway_protocol.ListWorkflowsResponse" do
104
+ repeated :workflows, :message, 1, "gateway_protocol.WorkflowMetadata"
134
105
  end
135
- add_message "gateway_protocol.ActivatedJob" do
136
- optional :key, :int64, 1
137
- optional :type, :string, 2
138
- optional :jobHeaders, :message, 3, "gateway_protocol.JobHeaders"
139
- optional :customHeaders, :string, 4
140
- optional :worker, :string, 5
141
- optional :retries, :int32, 6
142
- optional :deadline, :int64, 7
143
- optional :payload, :string, 8
106
+ add_message "gateway_protocol.PublishMessageRequest" do
107
+ optional :name, :string, 1
108
+ optional :correlationKey, :string, 2
109
+ optional :timeToLive, :int64, 3
110
+ optional :messageId, :string, 4
111
+ optional :payload, :string, 5
144
112
  end
145
- add_message "gateway_protocol.ActivateJobsResponse" do
146
- repeated :jobs, :message, 1, "gateway_protocol.ActivatedJob"
113
+ add_message "gateway_protocol.PublishMessageResponse" do
147
114
  end
148
115
  add_message "gateway_protocol.ResolveIncidentRequest" do
149
116
  optional :incidentKey, :int64, 1
150
117
  end
151
118
  add_message "gateway_protocol.ResolveIncidentResponse" do
152
119
  end
120
+ add_message "gateway_protocol.TopologyRequest" do
121
+ end
122
+ add_message "gateway_protocol.TopologyResponse" do
123
+ repeated :brokers, :message, 1, "gateway_protocol.BrokerInfo"
124
+ optional :clusterSize, :int32, 2
125
+ optional :partitionsCount, :int32, 3
126
+ optional :replicationFactor, :int32, 4
127
+ end
128
+ add_message "gateway_protocol.BrokerInfo" do
129
+ optional :nodeId, :int32, 1
130
+ optional :host, :string, 2
131
+ optional :port, :int32, 3
132
+ repeated :partitions, :message, 4, "gateway_protocol.Partition"
133
+ end
134
+ add_message "gateway_protocol.Partition" do
135
+ optional :partitionId, :int32, 1
136
+ optional :role, :enum, 3, "gateway_protocol.Partition.PartitionBrokerRole"
137
+ end
138
+ add_enum "gateway_protocol.Partition.PartitionBrokerRole" do
139
+ value :LEADER, 0
140
+ value :FOLLOWER, 1
141
+ end
142
+ add_message "gateway_protocol.UpdateJobRetriesRequest" do
143
+ optional :jobKey, :int64, 1
144
+ optional :retries, :int32, 2
145
+ end
146
+ add_message "gateway_protocol.UpdateJobRetriesResponse" do
147
+ end
148
+ add_message "gateway_protocol.UpdateWorkflowInstancePayloadRequest" do
149
+ optional :elementInstanceKey, :int64, 1
150
+ optional :payload, :string, 2
151
+ end
152
+ add_message "gateway_protocol.UpdateWorkflowInstancePayloadResponse" do
153
+ end
153
154
  end
154
155
 
155
156
  module Zeebe::Client::GatewayProtocol
156
- TopologyRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.TopologyRequest").msgclass
157
- Partition = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.Partition").msgclass
158
- Partition::PartitionBrokerRole = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.Partition.PartitionBrokerRole").enummodule
159
- BrokerInfo = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.BrokerInfo").msgclass
160
- TopologyResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.TopologyResponse").msgclass
157
+ ActivateJobsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.ActivateJobsRequest").msgclass
158
+ ActivateJobsResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.ActivateJobsResponse").msgclass
159
+ ActivatedJob = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.ActivatedJob").msgclass
160
+ JobHeaders = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.JobHeaders").msgclass
161
+ CancelWorkflowInstanceRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.CancelWorkflowInstanceRequest").msgclass
162
+ CancelWorkflowInstanceResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.CancelWorkflowInstanceResponse").msgclass
163
+ CompleteJobRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.CompleteJobRequest").msgclass
164
+ CompleteJobResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.CompleteJobResponse").msgclass
165
+ CreateWorkflowInstanceRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.CreateWorkflowInstanceRequest").msgclass
166
+ CreateWorkflowInstanceResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.CreateWorkflowInstanceResponse").msgclass
167
+ DeployWorkflowRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.DeployWorkflowRequest").msgclass
161
168
  WorkflowRequestObject = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.WorkflowRequestObject").msgclass
162
169
  WorkflowRequestObject::ResourceType = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.WorkflowRequestObject.ResourceType").enummodule
163
- DeployWorkflowRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.DeployWorkflowRequest").msgclass
164
- WorkflowMetadata = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.WorkflowMetadata").msgclass
165
170
  DeployWorkflowResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.DeployWorkflowResponse").msgclass
166
- PublishMessageRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.PublishMessageRequest").msgclass
167
- PublishMessageResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.PublishMessageResponse").msgclass
168
- UpdateJobRetriesRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.UpdateJobRetriesRequest").msgclass
169
- UpdateJobRetriesResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.UpdateJobRetriesResponse").msgclass
171
+ WorkflowMetadata = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.WorkflowMetadata").msgclass
170
172
  FailJobRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.FailJobRequest").msgclass
171
173
  FailJobResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.FailJobResponse").msgclass
172
- CompleteJobRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.CompleteJobRequest").msgclass
173
- CompleteJobResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.CompleteJobResponse").msgclass
174
- CreateWorkflowInstanceRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.CreateWorkflowInstanceRequest").msgclass
175
- CreateWorkflowInstanceResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.CreateWorkflowInstanceResponse").msgclass
176
- CancelWorkflowInstanceRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.CancelWorkflowInstanceRequest").msgclass
177
- CancelWorkflowInstanceResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.CancelWorkflowInstanceResponse").msgclass
178
- UpdateWorkflowInstancePayloadRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.UpdateWorkflowInstancePayloadRequest").msgclass
179
- UpdateWorkflowInstancePayloadResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.UpdateWorkflowInstancePayloadResponse").msgclass
180
- ListWorkflowsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.ListWorkflowsRequest").msgclass
181
- ListWorkflowsResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.ListWorkflowsResponse").msgclass
182
174
  GetWorkflowRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.GetWorkflowRequest").msgclass
183
175
  GetWorkflowResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.GetWorkflowResponse").msgclass
184
- ActivateJobsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.ActivateJobsRequest").msgclass
185
- JobHeaders = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.JobHeaders").msgclass
186
- ActivatedJob = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.ActivatedJob").msgclass
187
- ActivateJobsResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.ActivateJobsResponse").msgclass
176
+ ListWorkflowsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.ListWorkflowsRequest").msgclass
177
+ ListWorkflowsResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.ListWorkflowsResponse").msgclass
178
+ PublishMessageRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.PublishMessageRequest").msgclass
179
+ PublishMessageResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.PublishMessageResponse").msgclass
188
180
  ResolveIncidentRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.ResolveIncidentRequest").msgclass
189
181
  ResolveIncidentResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.ResolveIncidentResponse").msgclass
182
+ TopologyRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.TopologyRequest").msgclass
183
+ TopologyResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.TopologyResponse").msgclass
184
+ BrokerInfo = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.BrokerInfo").msgclass
185
+ Partition = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.Partition").msgclass
186
+ Partition::PartitionBrokerRole = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.Partition.PartitionBrokerRole").enummodule
187
+ UpdateJobRetriesRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.UpdateJobRetriesRequest").msgclass
188
+ UpdateJobRetriesResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.UpdateJobRetriesResponse").msgclass
189
+ UpdateWorkflowInstancePayloadRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.UpdateWorkflowInstancePayloadRequest").msgclass
190
+ UpdateWorkflowInstancePayloadResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("gateway_protocol.UpdateWorkflowInstancePayloadResponse").msgclass
190
191
  end
@@ -14,19 +14,142 @@ module Zeebe::Client::GatewayProtocol
14
14
  self.unmarshal_class_method = :decode
15
15
  self.service_name = 'gateway_protocol.Gateway'
16
16
 
17
- rpc :Topology, TopologyRequest, TopologyResponse
18
- rpc :DeployWorkflow, DeployWorkflowRequest, DeployWorkflowResponse
19
- rpc :PublishMessage, PublishMessageRequest, PublishMessageResponse
20
- rpc :UpdateJobRetries, UpdateJobRetriesRequest, UpdateJobRetriesResponse
21
- rpc :FailJob, FailJobRequest, FailJobResponse
17
+ #
18
+ # Iterates through all known partitions in a round-robin and activates up to the requested amount
19
+ # of jobs and streams them back to the client as they are activated.
20
+ #
21
+ # Errors:
22
+ # INVALID_ARGUMENT:
23
+ # - type is blank (empty string, null)
24
+ # - worker is blank (empty string, null)
25
+ # - timeout less than 1
26
+ # - amount is less than 1
27
+ rpc :ActivateJobs, ActivateJobsRequest, stream(ActivateJobsResponse)
28
+ #
29
+ # Cancels a running workflow instance
30
+ #
31
+ # Errors:
32
+ # NOT_FOUND:
33
+ # - no workflow instance exists with the given key
34
+ rpc :CancelWorkflowInstance, CancelWorkflowInstanceRequest, CancelWorkflowInstanceResponse
35
+ #
36
+ # Completes a job with the given payload, which allows completing the associated service task.
37
+ #
38
+ # Errors:
39
+ # NOT_FOUND:
40
+ # - no job exists with the given job key. Note that since jobs are removed once completed,
41
+ # it could be that this job did exist at some point.
42
+ #
43
+ # FAILED_PRECONDITION:
44
+ # - the job was marked as failed. In that case, the related incident must be resolved before
45
+ # the job can be activated again and completed.
22
46
  rpc :CompleteJob, CompleteJobRequest, CompleteJobResponse
47
+ #
48
+ # Creates and starts an instance of the specified workflow. The workflow definition to use to
49
+ # create the instance can be specified either using its unique key (as returned by
50
+ # DeployWorkflow), or using the BPMN process ID and a version. Pass -1 as the version to use the
51
+ # latest deployed version. Note that only workflows with none start events can be started through
52
+ # this command.
53
+ #
54
+ # Errors:
55
+ # NOT_FOUND:
56
+ # - no workflow with the given key exists (if workflowKey was given)
57
+ # - no workflow with the given process ID exists (if bpmnProcessId was given but version was -1)
58
+ # - no workflow with the given process ID and version exists (if both bpmnProcessId and version were given)
59
+ #
60
+ # FAILED_PRECONDITION:
61
+ # - the workflow definition does not contain a none start event; only workflows with none
62
+ # start event can be started manually.
63
+ #
64
+ # INVALID_ARGUMENT:
65
+ # - the given payload is not a valid JSON document; all payloads are expected to be
66
+ # valid JSON documents where the root node is an object.
23
67
  rpc :CreateWorkflowInstance, CreateWorkflowInstanceRequest, CreateWorkflowInstanceResponse
24
- rpc :CancelWorkflowInstance, CancelWorkflowInstanceRequest, CancelWorkflowInstanceResponse
25
- rpc :UpdateWorkflowInstancePayload, UpdateWorkflowInstancePayloadRequest, UpdateWorkflowInstancePayloadResponse
26
- rpc :ActivateJobs, ActivateJobsRequest, stream(ActivateJobsResponse)
27
- rpc :ListWorkflows, ListWorkflowsRequest, ListWorkflowsResponse
68
+ #
69
+ # Deploys one or more workflows to Zeebe. Note that this is an atomic call,
70
+ # i.e. either all workflows are deployed, or none of them are.
71
+ #
72
+ # Errors:
73
+ # INVALID_ARGUMENT:
74
+ # - no resources given.
75
+ # - if at least one resource is invalid. A resource is considered invalid if:
76
+ # - it is not a BPMN or YAML file (currently detected through the file extension)
77
+ # - the resource data is not deserializable (e.g. detected as BPMN, but it's broken XML)
78
+ # - the workflow is invalid (e.g. an event-based gateway has an outgoing sequence flow to a task)
79
+ rpc :DeployWorkflow, DeployWorkflowRequest, DeployWorkflowResponse
80
+ #
81
+ # Marks the job as failed; if the retries argument is positive, then the job will be immediately
82
+ # activatable again, and a worker could try again to process it. If it is zero or negative however,
83
+ # an incident will be raised, tagged with the given errorMessage, and the job will not be
84
+ # activatable until the incident is resolved.
85
+ #
86
+ # Errors:
87
+ # NOT_FOUND:
88
+ # - no job was found with the given key
89
+ #
90
+ # FAILED_PRECONDITION:
91
+ # - the job was not activated
92
+ # - the job is already in a failed state, i.e. ran out of retries
93
+ rpc :FailJob, FailJobRequest, FailJobResponse
94
+ #
95
+ # Fetches the workflow definition either by workflow key, or BPMN process ID and version.
96
+ # At least one of workflowKey or bpmnProcessId must be specified.
97
+ #
98
+ # Errors:
99
+ # NOT_FOUND:
100
+ # - no workflow with the given key exists (if workflowKey was given)
101
+ # - no workflow with the given process ID exists (if bpmnProcessId was given but version was -1)
102
+ # - no workflow with the given process ID and version exists (if both bpmnProcessId and version were given)
28
103
  rpc :GetWorkflow, GetWorkflowRequest, GetWorkflowResponse
104
+ #
105
+ # Lists all workflows matching the request criteria currently deployed in the cluster.
106
+ #
107
+ # Errors:
108
+ # NOT_FOUND:
109
+ # - no workflows have been deployed yet (if no bpmnProcessId was given)
110
+ # - no workflow with the given process ID exists (if bpmnProcessId was given)
111
+ rpc :ListWorkflows, ListWorkflowsRequest, ListWorkflowsResponse
112
+ #
113
+ # Publishes a single message. Messages are published to specific partitions computed from their
114
+ # correlation keys.
115
+ #
116
+ # Errors:
117
+ # ALREADY_EXISTS:
118
+ # - a message with the same ID was previously published (and is still alive)
119
+ rpc :PublishMessage, PublishMessageRequest, PublishMessageResponse
120
+ #
121
+ # Resolves a given incident. This simply marks the incident as resolved; most likely a call to
122
+ # UpdateJobRetries or UpdateWorkflowInstancePayload will be necessary to actually resolve the
123
+ # problem, following by this call.
124
+ #
125
+ # Errors:
126
+ # NOT_FOUND:
127
+ # - no incident with the given key exists
29
128
  rpc :ResolveIncident, ResolveIncidentRequest, ResolveIncidentResponse
129
+ #
130
+ # Obtains the current topology of the cluster the gateway is part of.
131
+ rpc :Topology, TopologyRequest, TopologyResponse
132
+ #
133
+ # Updates the number of retries a job has left. This is mostly useful for jobs that have run out of
134
+ # retries, should the underlying problem be solved.
135
+ #
136
+ # Errors:
137
+ # NOT_FOUND:
138
+ # - no job exists with the given key
139
+ #
140
+ # INVALID_ARGUMENT:
141
+ # - retries is not greater than 0
142
+ rpc :UpdateJobRetries, UpdateJobRetriesRequest, UpdateJobRetriesResponse
143
+ #
144
+ # Updates all the variables in the workflow instance scope from the given JSON document.
145
+ #
146
+ # Errors:
147
+ # NOT_FOUND:
148
+ # - no element with the given elementInstanceKey exists
149
+ # INVALID_ARGUMENT:
150
+ # - the given payload is not a valid JSON document; all payloads are expected to be
151
+ # valid JSON documents where the root node is an object.
152
+ rpc :UpdateWorkflowInstancePayload, UpdateWorkflowInstancePayloadRequest, UpdateWorkflowInstancePayloadResponse
30
153
  end
31
154
 
32
155
  Stub = Service.rpc_stub_class
@@ -1,6 +1,6 @@
1
1
 
2
2
  module Zeebe
3
3
  module Client
4
- VERSION = '0.2.0'.freeze
4
+ VERSION = '0.3.0'.freeze
5
5
  end
6
6
  end
@@ -5,92 +5,80 @@ option java_multiple_files = false;
5
5
  option java_package = "io.zeebe.gateway.protocol";
6
6
  option go_package = "pb";
7
7
 
8
- message TopologyRequest {
9
- }
10
-
11
- message Partition {
12
- int32 partitionId = 1;
13
- enum PartitionBrokerRole {
14
- LEADER = 0;
15
- FOLLOWER = 1;
16
- }
17
- PartitionBrokerRole role = 3;
18
- }
19
-
20
- message BrokerInfo {
21
- int32 nodeId = 1;
22
- string host = 2;
23
- int32 port = 3;
24
- repeated Partition partitions = 4;
25
- }
26
-
27
- message TopologyResponse {
28
- repeated BrokerInfo brokers = 1;
29
- int32 clusterSize = 2;
30
- int32 partitionsCount = 3;
31
- int32 replicationFactor = 4;
32
- }
33
-
34
- message WorkflowRequestObject {
35
- string name = 1;
36
- enum ResourceType {
37
- // FILE type means the gateway will try to detect the resource type using the file extension of the name
38
- FILE = 0;
39
- BPMN = 1;
40
- YAML = 2;
41
- }
42
- ResourceType type = 2;
43
- bytes definition = 3;
44
- }
8
+ // For a more complete documentation, refer to Zeebe documentation at:
9
+ // https://docs.zeebe.io/grpc/reference.html
45
10
 
46
- message DeployWorkflowRequest {
47
- repeated WorkflowRequestObject workflows = 1;
11
+ message ActivateJobsRequest {
12
+ // the job type, as defined in the BPMN process (e.g. <zeebe:taskDefinition
13
+ // type="payment-service" />)
14
+ string type = 1;
15
+ // the name of the worker activating the jobs, mostly used for logging purposes
16
+ string worker = 2;
17
+ // a job returned after this call will not be activated by another call until the
18
+ // timeout has been reached
19
+ int64 timeout = 3;
20
+ // the maximum number of jobs to fetch in a single call
21
+ int32 amount = 4;
22
+ // a list of variables to fetch as the job payload; if empty, all visible variables at
23
+ // the time of activation for the scope of the job will be returned as the job payload
24
+ repeated string fetchVariable = 5;
48
25
  }
49
26
 
50
- message WorkflowMetadata {
51
- string bpmnProcessId = 1;
52
- int32 version = 2;
53
- int64 workflowKey = 3;
54
- string resourceName = 4;
27
+ message ActivateJobsResponse {
28
+ // list of activated jobs
29
+ repeated ActivatedJob jobs = 1;
55
30
  }
56
31
 
57
- message DeployWorkflowResponse {
32
+ message ActivatedJob {
33
+ // the key, a unique identifier for the job
58
34
  int64 key = 1;
59
- repeated WorkflowMetadata workflows = 2;
60
- }
61
-
62
- message PublishMessageRequest {
63
- string name = 1;
64
- string correlationKey = 2;
65
- int64 timeToLive = 3;
66
- string messageId = 4;
67
- /* payload has to be a valid json object as string */
68
- string payload = 5;
69
- }
70
-
71
- message PublishMessageResponse {
72
- }
73
-
74
- message UpdateJobRetriesRequest {
75
- int64 jobKey = 1;
76
- int32 retries = 2;
35
+ // the type of the job (should match what was requested)
36
+ string type = 2;
37
+ // a set of headers tying the job to a workflow instance/task instance
38
+ JobHeaders jobHeaders = 3;
39
+ // a set of custom headers defined during modelling; returned as a serialized
40
+ // JSON document
41
+ string customHeaders = 4;
42
+ // the name of the worker which activated this job
43
+ string worker = 5;
44
+ // the amount of retries left to this job (should always be positive)
45
+ int32 retries = 6;
46
+ // when the job can be activated again, sent as a UNIX epoch timestamp
47
+ int64 deadline = 7;
48
+ // JSON document, computed at activation time, consisting of all visible variables to
49
+ // the task scope
50
+ string payload = 8;
77
51
  }
78
52
 
79
- message UpdateJobRetriesResponse {
53
+ message JobHeaders {
54
+ // the job's workflow instance key
55
+ int64 workflowInstanceKey = 1;
56
+ // the bpmn process ID of the job workflow definition
57
+ string bpmnProcessId = 2;
58
+ // the version of the job workflow definition
59
+ int32 workflowDefinitionVersion = 3;
60
+ // the key of the job workflow definition
61
+ int64 workflowKey = 4;
62
+ // the associated task element ID
63
+ string elementId = 5;
64
+ // the unique key identifying the associated task, unique within the scope of the
65
+ // workflow instance
66
+ int64 elementInstanceKey = 6;
80
67
  }
81
68
 
82
- message FailJobRequest {
83
- int64 jobKey = 1;
84
- int32 retries = 2;
85
- string errorMessage = 3;
69
+ message CancelWorkflowInstanceRequest {
70
+ // the workflow instance key (as, for example, obtained from
71
+ // CreateWorkflowInstanceResponse)
72
+ int64 workflowInstanceKey = 1;
86
73
  }
87
74
 
88
- message FailJobResponse {
75
+ message CancelWorkflowInstanceResponse {
89
76
  }
90
77
 
91
78
  message CompleteJobRequest {
79
+ // the unique job identifier, as obtained from ActivateJobsResponse
92
80
  int64 jobKey = 1;
93
- /* payload has to be a valid json object as string */
81
+ // a JSON document representing the variables in the current task scope
94
82
  string payload = 2;
95
83
  }
96
84
 
@@ -98,128 +86,385 @@ message CompleteJobResponse {
98
86
  }
99
87
 
100
88
  message CreateWorkflowInstanceRequest {
89
+ // the unique key identifying the workflow definition (e.g. returned from a workflow
90
+ // in the DeployWorkflowResponse message)
101
91
  int64 workflowKey = 1;
92
+ // the BPMN process ID of the workflow definition
102
93
  string bpmnProcessId = 2;
103
- /* if bpmnProcessId is set version = -1 indicates to use the latest version */
94
+ // the version of the process; set to -1 to use the latest version
104
95
  int32 version = 3;
105
- /* payload has to be a valid json object as string */
96
+ // JSON document that will instantiate the variables for the root variable scope of the
97
+ // workflow instance; it must be a JSON object, as variables will be mapped in a
98
+ // key-value fashion. e.g. { "a": 1, "b": 2 } will create two variables, named "a" and
99
+ // "b" respectively, with their associated values. [{ "a": 1, "b": 2 }] would not be a
100
+ // valid payload, as the root of the JSON document is an array and not an object.
106
101
  string payload = 4;
107
102
  }
108
103
 
109
104
  message CreateWorkflowInstanceResponse {
105
+ // the key of the workflow definition which was used to create the workflow instance
110
106
  int64 workflowKey = 1;
107
+ // the BPMN process ID of the workflow definition which was used to create the workflow
108
+ // instance
111
109
  string bpmnProcessId = 2;
110
+ // the version of the workflow definition which was used to create the workflow instance
112
111
  int32 version = 3;
112
+ // the unique identifier of the created workflow instance; to be used wherever a request
113
+ // needs a workflow instance key (e.g. CancelWorkflowInstanceRequest)
113
114
  int64 workflowInstanceKey = 5;
114
115
  }
115
116
 
116
- message CancelWorkflowInstanceRequest {
117
- int64 workflowInstanceKey = 1;
117
+ message DeployWorkflowRequest {
118
+ // List of workflow resources to deploy
119
+ repeated WorkflowRequestObject workflows = 1;
118
120
  }
119
121
 
120
- message CancelWorkflowInstanceResponse {
121
- }
122
+ message WorkflowRequestObject {
123
+ enum ResourceType {
124
+ // FILE type means the gateway will try to detect the resource type
125
+ // using the file extension of the name field
126
+ FILE = 0;
127
+ BPMN = 1; // extension 'bpmn'
128
+ YAML = 2; // extension 'yaml'
129
+ }
122
130
 
123
- message UpdateWorkflowInstancePayloadRequest {
124
- int64 elementInstanceKey = 1;
125
- /* payload has to be a valid json object as string */
126
- string payload = 2;
131
+ // the resource basename, e.g. myProcess.bpmn
132
+ string name = 1;
133
+ // the resource type; if set to BPMN or YAML then the file extension
134
+ // is ignored
135
+ ResourceType type = 2;
136
+ // the process definition as a UTF8-encoded string
137
+ bytes definition = 3;
127
138
  }
128
139
 
129
- message UpdateWorkflowInstancePayloadResponse {
140
+ message DeployWorkflowResponse {
141
+ // the unique key identifying the deployment
142
+ int64 key = 1;
143
+ // a list of deployed workflows
144
+ repeated WorkflowMetadata workflows = 2;
130
145
  }
131
146
 
132
- message ListWorkflowsRequest {
133
- /* optional filter by BPMN process id, if empty all workflows are returned */
147
+ message WorkflowMetadata {
148
+ // the bpmn process ID, as parsed during deployment; together with the version forms a
149
+ // unique identifier for a specific workflow definition
134
150
  string bpmnProcessId = 1;
151
+ // the assigned process version
152
+ int32 version = 2;
153
+ // the assigned key, which acts as a unique identifier for this workflow
154
+ int64 workflowKey = 3;
155
+ // the resource name (see: WorkflowRequestObject.name) from which this workflow was
156
+ // parsed
157
+ string resourceName = 4;
135
158
  }
136
159
 
137
- message ListWorkflowsResponse {
138
- repeated WorkflowMetadata workflows = 1;
160
+ message FailJobRequest {
161
+ // the unique job identifier, as obtained when activating the job
162
+ int64 jobKey = 1;
163
+ // the amount of retries the job should have left
164
+ int32 retries = 2;
165
+ // an optional message describing why the job failed
166
+ // this is particularly useful if a job runs out of retries and an incident is raised,
167
+ // as it this message can help explain why an incident was raised
168
+ string errorMessage = 3;
169
+ }
170
+
171
+ message FailJobResponse {
139
172
  }
140
173
 
141
- /* either workflow key or bpmn process id and version has to be specified*/
142
174
  message GetWorkflowRequest {
175
+ // the unique key identifying the workflow definition (e.g. returned from a workflow in
176
+ // the DeployWorkflowResponse message)
143
177
  int64 workflowKey = 1;
144
- /* if bpmnProcessId is set version = -1 indicates to use the latest version */
178
+ // the version of the process; set to -1 to use the latest version
145
179
  int32 version = 2;
180
+ // the BPMN process ID of the workflow definition
146
181
  string bpmnProcessId = 3;
147
182
  }
148
183
 
149
184
  message GetWorkflowResponse {
185
+ // the unique key identifying the workflow definition (e.g. returned from a workflow in
186
+ // the DeployWorkflowResponse message)
150
187
  int64 workflowKey = 1;
188
+ // the version of the process
151
189
  int32 version = 2;
190
+ // the BPMN process ID of the workflow definition
152
191
  string bpmnProcessId = 3;
192
+ // the name of the resource used to deployed the workflow
153
193
  string resourceName = 4;
194
+ // a BPMN XML representation of the workflow
154
195
  string bpmnXml = 5;
155
196
  }
156
197
 
157
- message ActivateJobsRequest {
158
- string type = 1;
159
- string worker = 2;
160
- int64 timeout = 3;
161
- int32 amount = 4;
198
+ message ListWorkflowsRequest {
199
+ // optional filter: if specified, only the workflows with this given process ID will be
200
+ // returned
201
+ string bpmnProcessId = 1;
162
202
  }
163
203
 
164
- message JobHeaders {
165
- int64 workflowInstanceKey = 1;
166
- string bpmnProcessId = 2;
167
- int32 workflowDefinitionVersion = 3;
168
- int64 workflowKey = 4;
169
- string elementId = 5;
170
- int64 elementInstanceKey = 6;
204
+ message ListWorkflowsResponse {
205
+ // a list of deployed workflows matching the request criteria (if any)
206
+ repeated WorkflowMetadata workflows = 1;
171
207
  }
172
208
 
173
- message ActivatedJob {
174
- int64 key = 1;
175
- string type = 2;
176
- JobHeaders jobHeaders = 3;
177
- // json object as string
178
- string customHeaders = 4;
179
- string worker = 5;
180
- int32 retries = 6;
181
- // epoch milliseconds
182
- int64 deadline = 7;
183
- /* json object as string */
184
- string payload = 8;
209
+ message PublishMessageRequest {
210
+ // the name of the message
211
+ string name = 1;
212
+ // the correlation key of the message
213
+ string correlationKey = 2;
214
+ // how long the message should be buffered on the broker, in milliseconds
215
+ int64 timeToLive = 3;
216
+ // the unique ID of the message; can be omitted. only useful to ensure only one message
217
+ // with the given ID will ever be published (during its lifetime)
218
+ string messageId = 4;
219
+ // the message payload as a JSON document; see CreateWorkflowInstanceRequest for the
220
+ // rules about payloads
221
+ string payload = 5;
185
222
  }
186
223
 
187
- message ActivateJobsResponse {
188
- repeated ActivatedJob jobs = 1;
224
+ message PublishMessageResponse {
189
225
  }
190
226
 
191
227
  message ResolveIncidentRequest {
228
+ // the unique ID of the incident to resolve
192
229
  int64 incidentKey = 1;
193
230
  }
194
231
 
195
232
  message ResolveIncidentResponse {
196
233
  }
197
234
 
198
- service Gateway {
199
- rpc Topology (TopologyRequest) returns (TopologyResponse) {
200
- }
201
- rpc DeployWorkflow (DeployWorkflowRequest) returns (DeployWorkflowResponse) {
202
- }
203
- rpc PublishMessage (PublishMessageRequest) returns (PublishMessageResponse) {
235
+ message TopologyRequest {
236
+ }
237
+ message TopologyResponse {
238
+ // list of brokers part of this cluster
239
+ repeated BrokerInfo brokers = 1;
240
+ // how many nodes are in the cluster
241
+ int32 clusterSize = 2;
242
+ // how many partitions are spread across the cluster
243
+ int32 partitionsCount = 3;
244
+ // configured replication factor for this cluster
245
+ int32 replicationFactor = 4;
246
+ }
247
+
248
+ message BrokerInfo {
249
+ // unique (within a cluster) node ID for the broker
250
+ int32 nodeId = 1;
251
+ // hostname of the broker
252
+ string host = 2;
253
+ // port for the broker
254
+ int32 port = 3;
255
+ // list of partitions managed or replicated on this broker
256
+ repeated Partition partitions = 4;
257
+ }
258
+
259
+ message Partition {
260
+ // Describes the Raft role of the broker for a given partition
261
+ enum PartitionBrokerRole {
262
+ LEADER = 0;
263
+ FOLLOWER = 1;
204
264
  }
205
- rpc UpdateJobRetries (UpdateJobRetriesRequest) returns (UpdateJobRetriesResponse) {
265
+
266
+ // the unique ID of this partition
267
+ int32 partitionId = 1;
268
+ // the role of the broker for this partition
269
+ PartitionBrokerRole role = 3;
270
+ }
271
+
272
+ message UpdateJobRetriesRequest {
273
+ // the unique job identifier, as obtained through ActivateJobs
274
+ int64 jobKey = 1;
275
+ // the new amount of retries for the job; must be positive
276
+ int32 retries = 2;
277
+ }
278
+
279
+ message UpdateJobRetriesResponse {
280
+ }
281
+
282
+ message UpdateWorkflowInstancePayloadRequest {
283
+ // the unique identifier of a particular element; can be the workflow instance key (as
284
+ // obtained during instance creation), or a given element, such as a service task (see
285
+ // elementInstanceKey on the JobHeaders message)
286
+ int64 elementInstanceKey = 1;
287
+ // the new payload as a JSON document; see CreateWorkflowInstanceRequest for the rules
288
+ // about payloads
289
+ string payload = 2;
290
+ }
291
+
292
+ message UpdateWorkflowInstancePayloadResponse {
293
+ }
294
+
295
+ service Gateway {
296
+ /*
297
+ Iterates through all known partitions in a round-robin and activates up to the requested amount
298
+ of jobs and streams them back to the client as they are activated.
299
+
300
+ Errors:
301
+ INVALID_ARGUMENT:
302
+ - type is blank (empty string, null)
303
+ - worker is blank (empty string, null)
304
+ - timeout less than 1
305
+ - amount is less than 1
306
+ */
307
+ rpc ActivateJobs (ActivateJobsRequest) returns (stream ActivateJobsResponse) {
206
308
  }
207
- rpc FailJob (FailJobRequest) returns (FailJobResponse) {
309
+
310
+ /*
311
+ Cancels a running workflow instance
312
+
313
+ Errors:
314
+ NOT_FOUND:
315
+ - no workflow instance exists with the given key
316
+ */
317
+ rpc CancelWorkflowInstance (CancelWorkflowInstanceRequest) returns (CancelWorkflowInstanceResponse) {
208
318
  }
319
+
320
+ /*
321
+ Completes a job with the given payload, which allows completing the associated service task.
322
+
323
+ Errors:
324
+ NOT_FOUND:
325
+ - no job exists with the given job key. Note that since jobs are removed once completed,
326
+ it could be that this job did exist at some point.
327
+
328
+ FAILED_PRECONDITION:
329
+ - the job was marked as failed. In that case, the related incident must be resolved before
330
+ the job can be activated again and completed.
331
+ */
209
332
  rpc CompleteJob (CompleteJobRequest) returns (CompleteJobResponse) {
210
333
  }
334
+
335
+ /*
336
+ Creates and starts an instance of the specified workflow. The workflow definition to use to
337
+ create the instance can be specified either using its unique key (as returned by
338
+ DeployWorkflow), or using the BPMN process ID and a version. Pass -1 as the version to use the
339
+ latest deployed version. Note that only workflows with none start events can be started through
340
+ this command.
341
+
342
+ Errors:
343
+ NOT_FOUND:
344
+ - no workflow with the given key exists (if workflowKey was given)
345
+ - no workflow with the given process ID exists (if bpmnProcessId was given but version was -1)
346
+ - no workflow with the given process ID and version exists (if both bpmnProcessId and version were given)
347
+
348
+ FAILED_PRECONDITION:
349
+ - the workflow definition does not contain a none start event; only workflows with none
350
+ start event can be started manually.
351
+
352
+ INVALID_ARGUMENT:
353
+ - the given payload is not a valid JSON document; all payloads are expected to be
354
+ valid JSON documents where the root node is an object.
355
+ */
211
356
  rpc CreateWorkflowInstance (CreateWorkflowInstanceRequest) returns (CreateWorkflowInstanceResponse) {
212
357
  }
213
- rpc CancelWorkflowInstance (CancelWorkflowInstanceRequest) returns (CancelWorkflowInstanceResponse) {
358
+
359
+ /*
360
+ Deploys one or more workflows to Zeebe. Note that this is an atomic call,
361
+ i.e. either all workflows are deployed, or none of them are.
362
+
363
+ Errors:
364
+ INVALID_ARGUMENT:
365
+ - no resources given.
366
+ - if at least one resource is invalid. A resource is considered invalid if:
367
+ - it is not a BPMN or YAML file (currently detected through the file extension)
368
+ - the resource data is not deserializable (e.g. detected as BPMN, but it's broken XML)
369
+ - the workflow is invalid (e.g. an event-based gateway has an outgoing sequence flow to a task)
370
+ */
371
+ rpc DeployWorkflow (DeployWorkflowRequest) returns (DeployWorkflowResponse) {
214
372
  }
215
- rpc UpdateWorkflowInstancePayload (UpdateWorkflowInstancePayloadRequest) returns (UpdateWorkflowInstancePayloadResponse) {
373
+
374
+ /*
375
+ Marks the job as failed; if the retries argument is positive, then the job will be immediately
376
+ activatable again, and a worker could try again to process it. If it is zero or negative however,
377
+ an incident will be raised, tagged with the given errorMessage, and the job will not be
378
+ activatable until the incident is resolved.
379
+
380
+ Errors:
381
+ NOT_FOUND:
382
+ - no job was found with the given key
383
+
384
+ FAILED_PRECONDITION:
385
+ - the job was not activated
386
+ - the job is already in a failed state, i.e. ran out of retries
387
+ */
388
+ rpc FailJob (FailJobRequest) returns (FailJobResponse) {
216
389
  }
217
- rpc ActivateJobs (ActivateJobsRequest) returns (stream ActivateJobsResponse) {
390
+
391
+ /*
392
+ Fetches the workflow definition either by workflow key, or BPMN process ID and version.
393
+ At least one of workflowKey or bpmnProcessId must be specified.
394
+
395
+ Errors:
396
+ NOT_FOUND:
397
+ - no workflow with the given key exists (if workflowKey was given)
398
+ - no workflow with the given process ID exists (if bpmnProcessId was given but version was -1)
399
+ - no workflow with the given process ID and version exists (if both bpmnProcessId and version were given)
400
+ */
401
+ rpc GetWorkflow (GetWorkflowRequest) returns (GetWorkflowResponse) {
218
402
  }
403
+
404
+ /*
405
+ Lists all workflows matching the request criteria currently deployed in the cluster.
406
+
407
+ Errors:
408
+ NOT_FOUND:
409
+ - no workflows have been deployed yet (if no bpmnProcessId was given)
410
+ - no workflow with the given process ID exists (if bpmnProcessId was given)
411
+ */
219
412
  rpc ListWorkflows (ListWorkflowsRequest) returns (ListWorkflowsResponse) {
220
413
  }
221
- rpc GetWorkflow (GetWorkflowRequest) returns (GetWorkflowResponse) {
414
+
415
+ /*
416
+ Publishes a single message. Messages are published to specific partitions computed from their
417
+ correlation keys.
418
+
419
+ Errors:
420
+ ALREADY_EXISTS:
421
+ - a message with the same ID was previously published (and is still alive)
422
+ */
423
+ rpc PublishMessage (PublishMessageRequest) returns (PublishMessageResponse) {
222
424
  }
425
+
426
+ /*
427
+ Resolves a given incident. This simply marks the incident as resolved; most likely a call to
428
+ UpdateJobRetries or UpdateWorkflowInstancePayload will be necessary to actually resolve the
429
+ problem, following by this call.
430
+
431
+ Errors:
432
+ NOT_FOUND:
433
+ - no incident with the given key exists
434
+ */
223
435
  rpc ResolveIncident (ResolveIncidentRequest) returns (ResolveIncidentResponse) {
224
436
  }
437
+
438
+ /*
439
+ Obtains the current topology of the cluster the gateway is part of.
440
+ */
441
+ rpc Topology (TopologyRequest) returns (TopologyResponse) {
442
+ }
443
+
444
+ /*
445
+ Updates the number of retries a job has left. This is mostly useful for jobs that have run out of
446
+ retries, should the underlying problem be solved.
447
+
448
+ Errors:
449
+ NOT_FOUND:
450
+ - no job exists with the given key
451
+
452
+ INVALID_ARGUMENT:
453
+ - retries is not greater than 0
454
+ */
455
+ rpc UpdateJobRetries (UpdateJobRetriesRequest) returns (UpdateJobRetriesResponse) {
456
+ }
457
+
458
+ /*
459
+ Updates all the variables in the workflow instance scope from the given JSON document.
460
+
461
+ Errors:
462
+ NOT_FOUND:
463
+ - no element with the given elementInstanceKey exists
464
+ INVALID_ARGUMENT:
465
+ - the given payload is not a valid JSON document; all payloads are expected to be
466
+ valid JSON documents where the root node is an object.
467
+ */
468
+ rpc UpdateWorkflowInstancePayload (UpdateWorkflowInstancePayloadRequest) returns (UpdateWorkflowInstancePayloadResponse) {
469
+ }
225
470
  }
@@ -25,6 +25,6 @@ Gem::Specification.new do |s|
25
25
  s.add_development_dependency 'bundler'
26
26
  s.add_development_dependency 'rake'
27
27
  s.add_development_dependency 'rspec'
28
- s.add_development_dependency 'rubocop', '~> 0.63.0'
28
+ s.add_development_dependency 'rubocop', '~> 0.64.0'
29
29
  s.add_development_dependency 'bundler-audit'
30
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zeebe-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Nicolai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-25 00:00:00.000000000 Z
11
+ date: 2019-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grpc
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.63.0
89
+ version: 0.64.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.63.0
96
+ version: 0.64.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: bundler-audit
99
99
  requirement: !ruby/object:Gem::Requirement