camunda-workflow 0.1.1 → 0.1.2

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: 4dd0d8f1bbbb13c972089fe86ab7cf262172fb705f30f1f9fa3066576a872b30
4
- data.tar.gz: eaa229a71c5bc895a595844b5de02beda7730d7c93fe9873a2956a9869684f0f
3
+ metadata.gz: 9c08d0a47fdc375095f8a12a412e8fd338cba6c01de753777a2c007a184d6caa
4
+ data.tar.gz: 34141274cb6a630312651883a7502819e9b236fb870275a82d9561f4adae6561
5
5
  SHA512:
6
- metadata.gz: dfbb1a31c30b6b87a3007f056ea61a7f066dc7ad6a001e222df69409991382b703fdb06ad613f5d42ec3b7366272e1148e6693c165597ae5629f8f7db5b09ffc
7
- data.tar.gz: e28096ce39c4eecdcfa057d3a9939eea3e919500c568d28bf3f4217a5601a8a3fbe7b5d30e79223b4528b2af49a700a6ae8113bfd4a9fdaa11931670271bf54e
6
+ metadata.gz: aa811d101d80ea3e5bd6408c17e28215118a2c223d469bb9e60a7f8ad5ebcc991264fb3f19cd31a2a6f5fccc8f5e085220e04421fd4fa183327297fb18a28535
7
+ data.tar.gz: 833f866515b6555a0e05f893aef5d3a6603b6f933708ed5b77641fb8d9b4db4b06935bb632ef04973097a013fdc7a35858a0d1d8d918f3f0c680f616f4ca1c29
data/CHANGELOG.md ADDED
@@ -0,0 +1,14 @@
1
+ # Changelog
2
+
3
+ ## [Unreleased](https://github.com/amalagaura/camunda-workflow/tree/HEAD)
4
+
5
+ [Full Changelog](https://github.com/amalagaura/camunda-workflow/compare/fc9ab266909628118a892082abdff953f3bc7eca...HEAD)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - added authentication via templates for spring\_boot generator and Her [\#4](https://github.com/amalagaura/camunda-workflow/pull/4) ([curatingbits](https://github.com/curatingbits))
10
+ - Refactor to return proper Her models after responses [\#3](https://github.com/amalagaura/camunda-workflow/pull/3) ([amalagaura](https://github.com/amalagaura))
11
+ - Added tests for Camunda workflow [\#2](https://github.com/amalagaura/camunda-workflow/pull/2) ([curatingbits](https://github.com/curatingbits))
12
+
13
+
14
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
- [![Build Status](https://travis-ci.com/amalagaura/camunda-workflow.svg?branch=master)](https://travis-ci.com/amalagaura/camunda-workflow)
1
+ [![Build Status](https://travis-ci.com/amalagaura/camunda-workflow.svg?branch=master)](https://travis-ci.com/amalagaura/camunda-workflow)
2
+ [![Gem Version](https://badge.fury.io/rb/camunda-workflow.svg)](https://badge.fury.io/rb/camunda-workflow)
3
+ [![Inline docs](http://inch-ci.org/github/amalagaura/camunda-workflow.svg?branch=master)](http://inch-ci.org/github/amalagaura/camunda-workflow)
2
4
  # Camunda Workflow
3
5
 
4
6
  ## An opinionated interface to Camunda for Ruby/Rails apps
@@ -82,7 +84,21 @@ Camunda::Workflow.configure do |config|
82
84
  config.engine_route_prefix = 'rest'
83
85
  end
84
86
  ```
87
+ #### Enable HTTP Basic Auth for Java Spring Boot app
88
+ To add authentication to Camunda's REST API within the Java Spring Boot app change the `camunda.authentication` variable located in the
89
+ `application.properties` (bpmn/java_app/src/main/resources) file to `true`. Creating an environment variable `ENV['CAMUNDA_AUTH']` and setting a value of `true` or `false` will
90
+ set the value as well. When HTTP Basic Auth is enabled, it's required that a user with the appropriate permissions is setup in Camunda.
91
+ Otherwise, the request will return as `401 unauthorized`. Users are set up within the admin dashboard of Camunda and used to authenticate by passing an Authorization header during requests to the REST API. Below is how to configure
92
+ the `camunda_user` and `camunda_password` to be used in the header request to authenticate using HTTP Basic Auth.
85
93
 
94
+ ```ruby
95
+ # filename initializers/camunda.rb
96
+ Camunda::Workflow.configure do |config|
97
+ config.engine_route_prefix = 'rest'
98
+ config.camunda_user = ENV['CAMUNDA_USER']
99
+ config.camunda_password = ENV['CAMUNDA_PASSWORD']
100
+ end
101
+ ```
86
102
  #### Generating a jar for deployment
87
103
  `mvn package spring-boot:repackage`
88
104
 
@@ -155,7 +171,9 @@ For testing from the console
155
171
  ### User Tasks
156
172
  #### Mark a user task complete
157
173
  ```ruby
158
- Camunda::Task.mark_task_completed!(business_key, task_key, {})
174
+ task = Camunda::Task.find_by_business_key_and_task_definition_key!(instance_business_key, task_key)
175
+ # Or you can query Camunda::Task with other parameters like assignee
176
+ task.complete!(var1: 'value')
159
177
  ```
160
178
 
161
179
  ### Rspec Helpers
data/lib/camunda/model.rb CHANGED
@@ -8,6 +8,8 @@ class Camunda::Model
8
8
  # Request
9
9
  c.use Faraday::Request::Multipart
10
10
  c.use FaradayMiddleware::EncodeJson
11
+ c.use Faraday::Request::BasicAuthentication, Camunda::Workflow.configuration.camunda_user,
12
+ Camunda::Workflow.configuration.camunda_password
11
13
  # Response
12
14
  c.use Faraday::Response::Logger, ActiveSupport::Logger.new(STDOUT), bodies: true if Rails.env.development?
13
15
  c.use Her::Middleware::FirstLevelParseJSON
data/lib/camunda/task.rb CHANGED
@@ -3,7 +3,7 @@ class Camunda::Task < Camunda::Model
3
3
  collection_path 'task'
4
4
 
5
5
  def self.find_by_business_key_and_task_definition_key!(instance_business_key, task_key)
6
- find_by(instanceBusinessKey: instance_business_key, taskDefinitionKey: task_key).tap do |ct|
6
+ find_by(processInstanceBusinessKey: instance_business_key, taskDefinitionKey: task_key).tap do |ct|
7
7
  unless ct
8
8
  raise MissingTask, "Could not find Camunda Task with processInstanceBusinessKey: #{instance_business_key} " \
9
9
  "and taskDefinitionKey #{task_key}"
@@ -11,12 +11,7 @@ class Camunda::Task < Camunda::Model
11
11
  end
12
12
  end
13
13
 
14
- def self.mark_task_completed!(instance_business_key, task_key, variables={})
15
- ct = find_by_business_key_and_task_definition_key!(instance_business_key, task_key)
16
- ct.complete! variables
17
- end
18
-
19
- def complete!(vars)
14
+ def complete!(vars={})
20
15
  self.class.post_raw("#{self.class.collection_path}/#{id}/complete", variables: serialize_variables(vars))[:response]
21
16
  .tap do |response|
22
17
  raise MissingTask unless response.success?
@@ -16,10 +16,14 @@ module Camunda
16
16
  attr_accessor :max_polling_tasks
17
17
  attr_accessor :long_polling_duration
18
18
  attr_accessor :tenant_id
19
+ attr_accessor :camunda_user
20
+ attr_accessor :camunda_password
19
21
 
20
22
  def initialize
21
23
  @engine_url = 'http://localhost:8080'
22
24
  @engine_route_prefix = 'rest-engine'
25
+ @camunda_user = ''
26
+ @camunda_password = ''
23
27
  @worker_id = '0'
24
28
  @lock_duration = 14.days
25
29
  @max_polling_tasks = 2
@@ -0,0 +1,5 @@
1
+ module Camunda
2
+ module Workflow
3
+ VERSION = '0.1.2'.freeze
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
1
  Description:
2
- One time install of Java Camunda application to do unit testing of your BPMN process
2
+ One time install of Java Camunda application to do unit testing of your BPMN process.
3
3
 
4
4
  Example:
5
5
  rails generate camunda:unit_tests
@@ -16,8 +16,13 @@ package camunda;
16
16
  * limitations under the License.
17
17
  */
18
18
  import org.camunda.bpm.spring.boot.starter.annotation.EnableProcessApplication;
19
+ import org.camunda.bpm.engine.rest.security.auth.ProcessEngineAuthenticationFilter;
19
20
  import org.springframework.boot.SpringApplication;
20
21
  import org.springframework.boot.autoconfigure.SpringBootApplication;
22
+ import org.springframework.boot.web.servlet.FilterRegistrationBean;
23
+ import org.springframework.context.annotation.Bean;
24
+ import org.springframework.beans.factory.annotation.Value;
25
+ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
21
26
 
22
27
  @SpringBootApplication
23
28
  @EnableProcessApplication("camunda-bpm-springboot")
@@ -25,4 +30,16 @@ public class Camunda {
25
30
  public static void main(String... args) {
26
31
  SpringApplication.run(Camunda.class, args);
27
32
  }
33
+
34
+ @Bean
35
+ @ConditionalOnProperty(name="camunda.authentication", havingValue="true")
36
+ public FilterRegistrationBean authenticationFilter() {
37
+ FilterRegistrationBean registration = new FilterRegistrationBean();
38
+ registration.setFilter(new ProcessEngineAuthenticationFilter());
39
+ registration.addUrlPatterns("/rest/*");
40
+ registration.addInitParameter("authentication-provider", "org.camunda.bpm.engine.rest.security.auth.impl.HttpBasicAuthenticationProvider");
41
+ registration.setName("camunda-auth");
42
+ registration.setOrder(1);
43
+ return registration;
44
+ }
28
45
  }
@@ -46,3 +46,5 @@ spring.datasource.driverClassName=org.h2.Driver
46
46
  #camunda.bpm.license-file=file:${user.home}/.camunda/license.txt
47
47
 
48
48
  server.port=${CAMUNDA_PORT:8080}
49
+ #To turn on HTTP Basic Auth for Camunda, set the below variable to true or set an environment variable.
50
+ camunda.authentication=${CAMUNDA_AUTH:false}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camunda-workflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ankur Sethi
@@ -123,6 +123,20 @@ dependencies:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
125
  version: 3.9.0
126
+ - !ruby/object:Gem::Dependency
127
+ name: rubocop
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: 0.75.1
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: 0.75.1
126
140
  - !ruby/object:Gem::Dependency
127
141
  name: simplecov
128
142
  requirement: !ruby/object:Gem::Requirement
@@ -158,6 +172,7 @@ executables: []
158
172
  extensions: []
159
173
  extra_rdoc_files: []
160
174
  files:
175
+ - CHANGELOG.md
161
176
  - CONTRIBUTING.md
162
177
  - LICENSE.md
163
178
  - README.md
@@ -176,6 +191,7 @@ files:
176
191
  - lib/camunda/task.rb
177
192
  - lib/camunda/variable_serialization.rb
178
193
  - lib/camunda/workflow.rb
194
+ - lib/camunda/workflow/version.rb
179
195
  - lib/generators/camunda/bpmn_classes/USAGE
180
196
  - lib/generators/camunda/bpmn_classes/bpmn_classes_generator.rb
181
197
  - lib/generators/camunda/bpmn_classes/templates/bpmn_class.rb.template
@@ -203,7 +219,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
203
219
  requirements:
204
220
  - - ">="
205
221
  - !ruby/object:Gem::Version
206
- version: '2.6'
222
+ version: '2.5'
207
223
  required_rubygems_version: !ruby/object:Gem::Requirement
208
224
  requirements:
209
225
  - - ">="