maestrano-connector-rails 2.0.0 → 2.0.1
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.
- checksums.yaml +4 -4
- data/Gemfile +14 -14
- data/VERSION +1 -1
- data/app/controllers/version_controller.rb +5 -2
- data/app/models/maestrano/connector/rails/organization.rb +6 -0
- data/lib/generators/connector/templates/stylesheets/variables.sass +1 -0
- data/maestrano-connector-rails.gemspec +95 -95
- data/spec/controllers/synchronizations_controller_spec.rb +1 -0
- data/spec/controllers/version_controller_spec.rb +1 -1
- data/spec/dummy/config/initializers/maestrano.rb +2 -135
- data/spec/models/connec_helper_spec.rb +4 -4
- data/spec/models/organization_spec.rb +16 -1
- data/template/application-sample.yml +1 -1
- data/template/maestrano.rb +1 -1
- metadata +44 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f98ffd30f0c9e18fb5ad95d5a52849bba5e437d0
|
4
|
+
data.tar.gz: 9864988bffd82f6ce6d66aec534f5822b59c36db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 303ce74c7bd93ad0874971fd5faec32ffd2e65db3581a255725fde10a7db198471ef2f76ac6c340a14c8c08bc1276e59c640c86ca1385b3f5cccd492ec4dea8c
|
7
|
+
data.tar.gz: 9f369354a387999193b660096617465b41549acd6123e58ec4590cda4ade4ad7a10c74a552e061862bd5467fd92347c27fa84071d367ef8441b508de9bc06225
|
data/Gemfile
CHANGED
@@ -3,36 +3,36 @@ source 'http://rubygems.org'
|
|
3
3
|
# Add dependencies required to use your gem here.
|
4
4
|
gem 'rails', '~> 4.2'
|
5
5
|
|
6
|
-
gem 'maestrano-rails', '1.0.0'
|
6
|
+
gem 'maestrano-rails', '~> 1.0.0'
|
7
7
|
|
8
|
-
gem 'hash_mapper', '>= 0.2.2'
|
9
|
-
gem 'haml-rails'
|
10
|
-
gem 'bootstrap-sass'
|
11
|
-
gem 'autoprefixer-rails'
|
12
8
|
gem 'attr_encrypted', '~> 1.4.0'
|
9
|
+
gem 'autoprefixer-rails'
|
10
|
+
gem 'bootstrap-sass'
|
13
11
|
gem 'config'
|
14
12
|
gem 'figaro'
|
13
|
+
gem 'haml-rails'
|
14
|
+
gem 'hash_mapper', '>= 0.2.2'
|
15
15
|
|
16
16
|
gem 'sidekiq'
|
17
17
|
# The missing unique jobs for sidekiq
|
18
|
+
gem 'sidekiq-cron'
|
18
19
|
gem 'sidekiq-unique-jobs'
|
19
20
|
gem 'sinatra', require: false
|
20
|
-
gem 'sidekiq-cron'
|
21
21
|
gem 'slim'
|
22
22
|
|
23
23
|
# Add dependencies to develop your gem here.
|
24
24
|
group :development do
|
25
|
-
gem '
|
26
|
-
gem 'rdoc'
|
25
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
27
26
|
gem 'bundler'
|
27
|
+
gem 'factory_girl_rails'
|
28
|
+
gem 'github_changelog_generator'
|
28
29
|
gem 'jeweler'
|
29
|
-
gem '
|
30
|
+
gem 'rdoc'
|
30
31
|
gem 'rspec-rails'
|
31
|
-
gem 'factory_girl_rails'
|
32
|
-
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
33
|
-
gem 'sqlite3', platforms: :ruby
|
34
|
-
gem 'shoulda-matchers'
|
35
32
|
gem 'rubocop', '~> 0.43'
|
33
|
+
gem 'shoulda'
|
34
|
+
gem 'shoulda-matchers'
|
35
|
+
gem 'simplecov', '>= 0'
|
36
|
+
gem 'sqlite3', platforms: :ruby
|
36
37
|
gem 'timecop'
|
37
|
-
gem 'github_changelog_generator'
|
38
38
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.1
|
@@ -1,9 +1,12 @@
|
|
1
1
|
class VersionController < ApplicationController
|
2
2
|
def index
|
3
3
|
framework_version = Gem.loaded_specs['maestrano-connector-rails'].version.version
|
4
|
+
branch = ENV['GIT_BRANCH']
|
5
|
+
commit = ENV['GIT_COMMIT_ID']
|
6
|
+
|
4
7
|
respond_to do |format|
|
5
|
-
format.html { render text: "framework_version=#{framework_version}\n" }
|
6
|
-
format.json { render json: {framework_version: framework_version, env: Rails.env, ruby_version: RUBY_VERSION, ruby_engine: RUBY_ENGINE} }
|
8
|
+
format.html { render text: "framework_version=#{framework_version}\nci_branch=#{branch}\nci_commit=#{commit}\nenv=#{Rails}\nnv, ruby_version=#{RUBY_VERSION}\nruby_engine=#{RUBY_ENGINE}\n" }
|
9
|
+
format.json { render json: {framework_version: framework_version, ci_branch: branch, ci_commit: commit, env: Rails.env, ruby_version: RUBY_VERSION, ruby_engine: RUBY_ENGINE} }
|
7
10
|
end
|
8
11
|
end
|
9
12
|
end
|
@@ -114,5 +114,11 @@ module Maestrano::Connector::Rails
|
|
114
114
|
def last_synchronization_date
|
115
115
|
last_successful_synchronization&.updated_at || date_filtering_limit
|
116
116
|
end
|
117
|
+
|
118
|
+
def reset_synchronized_entities
|
119
|
+
synchronized_entities.slice!(*External.entities_list.map(&:to_sym))
|
120
|
+
External.entities_list.each { |entity| synchronized_entities[entity.to_sym] ||= false }
|
121
|
+
save
|
122
|
+
end
|
117
123
|
end
|
118
124
|
end
|
@@ -2,19 +2,19 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: maestrano-connector-rails 2.0.
|
5
|
+
# stub: maestrano-connector-rails 2.0.1 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
|
-
s.name = "maestrano-connector-rails"
|
9
|
-
s.version = "2.0.
|
8
|
+
s.name = "maestrano-connector-rails".freeze
|
9
|
+
s.version = "2.0.1"
|
10
10
|
|
11
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
-
s.require_paths = ["lib"]
|
13
|
-
s.authors = ["Maestrano"]
|
14
|
-
s.date = "
|
15
|
-
s.description = "Maestrano is the next generation marketplace for SME applications. See https://sme.maestrano.com for details."
|
16
|
-
s.email = "developers@maestrano.com"
|
17
|
-
s.executables = ["rails", "rake"]
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib".freeze]
|
13
|
+
s.authors = ["Maestrano".freeze]
|
14
|
+
s.date = "2017-01-04"
|
15
|
+
s.description = "Maestrano is the next generation marketplace for SME applications. See https://sme.maestrano.com for details.".freeze
|
16
|
+
s.email = "developers@maestrano.com".freeze
|
17
|
+
s.executables = ["rails".freeze, "rake".freeze]
|
18
18
|
s.extra_rdoc_files = [
|
19
19
|
"LICENSE",
|
20
20
|
"README.md"
|
@@ -217,99 +217,99 @@ Gem::Specification.new do |s|
|
|
217
217
|
"template/sidekiq.yml",
|
218
218
|
"template/spec_helper.rb"
|
219
219
|
]
|
220
|
-
s.homepage = "http://github.com/maestrano/maestrano-connector-rails"
|
221
|
-
s.licenses = ["MIT"]
|
222
|
-
s.rubygems_version = "2.
|
223
|
-
s.summary = "Rails framework to build connector with Maestrano"
|
220
|
+
s.homepage = "http://github.com/maestrano/maestrano-connector-rails".freeze
|
221
|
+
s.licenses = ["MIT".freeze]
|
222
|
+
s.rubygems_version = "2.6.8".freeze
|
223
|
+
s.summary = "Rails framework to build connector with Maestrano".freeze
|
224
224
|
|
225
225
|
if s.respond_to? :specification_version then
|
226
226
|
s.specification_version = 4
|
227
227
|
|
228
228
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
229
|
-
s.add_runtime_dependency(%q<rails
|
230
|
-
s.add_runtime_dependency(%q<maestrano-rails
|
231
|
-
s.add_runtime_dependency(%q<
|
232
|
-
s.add_runtime_dependency(%q<
|
233
|
-
s.add_runtime_dependency(%q<bootstrap-sass
|
234
|
-
s.add_runtime_dependency(%q<
|
235
|
-
s.add_runtime_dependency(%q<
|
236
|
-
s.add_runtime_dependency(%q<
|
237
|
-
s.add_runtime_dependency(%q<
|
238
|
-
s.add_runtime_dependency(%q<sidekiq
|
239
|
-
s.add_runtime_dependency(%q<sidekiq-
|
240
|
-
s.add_runtime_dependency(%q<
|
241
|
-
s.add_runtime_dependency(%q<
|
242
|
-
s.add_runtime_dependency(%q<slim
|
243
|
-
s.add_development_dependency(%q<
|
244
|
-
s.add_development_dependency(%q<
|
245
|
-
s.add_development_dependency(%q<
|
246
|
-
s.add_development_dependency(%q<
|
247
|
-
s.add_development_dependency(%q<
|
248
|
-
s.add_development_dependency(%q<
|
249
|
-
s.add_development_dependency(%q<
|
250
|
-
s.add_development_dependency(%q<
|
251
|
-
s.add_development_dependency(%q<
|
252
|
-
s.add_development_dependency(%q<shoulda-matchers
|
253
|
-
s.add_development_dependency(%q<
|
254
|
-
s.add_development_dependency(%q<
|
255
|
-
s.add_development_dependency(%q<
|
229
|
+
s.add_runtime_dependency(%q<rails>.freeze, ["~> 4.2"])
|
230
|
+
s.add_runtime_dependency(%q<maestrano-rails>.freeze, ["~> 1.0.0"])
|
231
|
+
s.add_runtime_dependency(%q<attr_encrypted>.freeze, ["~> 1.4.0"])
|
232
|
+
s.add_runtime_dependency(%q<autoprefixer-rails>.freeze, [">= 0"])
|
233
|
+
s.add_runtime_dependency(%q<bootstrap-sass>.freeze, [">= 0"])
|
234
|
+
s.add_runtime_dependency(%q<config>.freeze, [">= 0"])
|
235
|
+
s.add_runtime_dependency(%q<figaro>.freeze, [">= 0"])
|
236
|
+
s.add_runtime_dependency(%q<haml-rails>.freeze, [">= 0"])
|
237
|
+
s.add_runtime_dependency(%q<hash_mapper>.freeze, [">= 0.2.2"])
|
238
|
+
s.add_runtime_dependency(%q<sidekiq>.freeze, [">= 0"])
|
239
|
+
s.add_runtime_dependency(%q<sidekiq-cron>.freeze, [">= 0"])
|
240
|
+
s.add_runtime_dependency(%q<sidekiq-unique-jobs>.freeze, [">= 0"])
|
241
|
+
s.add_runtime_dependency(%q<sinatra>.freeze, [">= 0"])
|
242
|
+
s.add_runtime_dependency(%q<slim>.freeze, [">= 0"])
|
243
|
+
s.add_development_dependency(%q<activerecord-jdbcsqlite3-adapter>.freeze, [">= 0"])
|
244
|
+
s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
|
245
|
+
s.add_development_dependency(%q<factory_girl_rails>.freeze, [">= 0"])
|
246
|
+
s.add_development_dependency(%q<github_changelog_generator>.freeze, [">= 0"])
|
247
|
+
s.add_development_dependency(%q<jeweler>.freeze, [">= 0"])
|
248
|
+
s.add_development_dependency(%q<rdoc>.freeze, [">= 0"])
|
249
|
+
s.add_development_dependency(%q<rspec-rails>.freeze, [">= 0"])
|
250
|
+
s.add_development_dependency(%q<rubocop>.freeze, ["~> 0.43"])
|
251
|
+
s.add_development_dependency(%q<shoulda>.freeze, [">= 0"])
|
252
|
+
s.add_development_dependency(%q<shoulda-matchers>.freeze, [">= 0"])
|
253
|
+
s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
|
254
|
+
s.add_development_dependency(%q<sqlite3>.freeze, [">= 0"])
|
255
|
+
s.add_development_dependency(%q<timecop>.freeze, [">= 0"])
|
256
256
|
else
|
257
|
-
s.add_dependency(%q<rails
|
258
|
-
s.add_dependency(%q<maestrano-rails
|
259
|
-
s.add_dependency(%q<
|
260
|
-
s.add_dependency(%q<
|
261
|
-
s.add_dependency(%q<bootstrap-sass
|
262
|
-
s.add_dependency(%q<
|
263
|
-
s.add_dependency(%q<
|
264
|
-
s.add_dependency(%q<
|
265
|
-
s.add_dependency(%q<
|
266
|
-
s.add_dependency(%q<sidekiq
|
267
|
-
s.add_dependency(%q<sidekiq-
|
268
|
-
s.add_dependency(%q<
|
269
|
-
s.add_dependency(%q<
|
270
|
-
s.add_dependency(%q<slim
|
271
|
-
s.add_dependency(%q<
|
272
|
-
s.add_dependency(%q<
|
273
|
-
s.add_dependency(%q<
|
274
|
-
s.add_dependency(%q<
|
275
|
-
s.add_dependency(%q<
|
276
|
-
s.add_dependency(%q<
|
277
|
-
s.add_dependency(%q<
|
278
|
-
s.add_dependency(%q<
|
279
|
-
s.add_dependency(%q<
|
280
|
-
s.add_dependency(%q<shoulda-matchers
|
281
|
-
s.add_dependency(%q<
|
282
|
-
s.add_dependency(%q<
|
283
|
-
s.add_dependency(%q<
|
257
|
+
s.add_dependency(%q<rails>.freeze, ["~> 4.2"])
|
258
|
+
s.add_dependency(%q<maestrano-rails>.freeze, ["~> 1.0.0"])
|
259
|
+
s.add_dependency(%q<attr_encrypted>.freeze, ["~> 1.4.0"])
|
260
|
+
s.add_dependency(%q<autoprefixer-rails>.freeze, [">= 0"])
|
261
|
+
s.add_dependency(%q<bootstrap-sass>.freeze, [">= 0"])
|
262
|
+
s.add_dependency(%q<config>.freeze, [">= 0"])
|
263
|
+
s.add_dependency(%q<figaro>.freeze, [">= 0"])
|
264
|
+
s.add_dependency(%q<haml-rails>.freeze, [">= 0"])
|
265
|
+
s.add_dependency(%q<hash_mapper>.freeze, [">= 0.2.2"])
|
266
|
+
s.add_dependency(%q<sidekiq>.freeze, [">= 0"])
|
267
|
+
s.add_dependency(%q<sidekiq-cron>.freeze, [">= 0"])
|
268
|
+
s.add_dependency(%q<sidekiq-unique-jobs>.freeze, [">= 0"])
|
269
|
+
s.add_dependency(%q<sinatra>.freeze, [">= 0"])
|
270
|
+
s.add_dependency(%q<slim>.freeze, [">= 0"])
|
271
|
+
s.add_dependency(%q<activerecord-jdbcsqlite3-adapter>.freeze, [">= 0"])
|
272
|
+
s.add_dependency(%q<bundler>.freeze, [">= 0"])
|
273
|
+
s.add_dependency(%q<factory_girl_rails>.freeze, [">= 0"])
|
274
|
+
s.add_dependency(%q<github_changelog_generator>.freeze, [">= 0"])
|
275
|
+
s.add_dependency(%q<jeweler>.freeze, [">= 0"])
|
276
|
+
s.add_dependency(%q<rdoc>.freeze, [">= 0"])
|
277
|
+
s.add_dependency(%q<rspec-rails>.freeze, [">= 0"])
|
278
|
+
s.add_dependency(%q<rubocop>.freeze, ["~> 0.43"])
|
279
|
+
s.add_dependency(%q<shoulda>.freeze, [">= 0"])
|
280
|
+
s.add_dependency(%q<shoulda-matchers>.freeze, [">= 0"])
|
281
|
+
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
282
|
+
s.add_dependency(%q<sqlite3>.freeze, [">= 0"])
|
283
|
+
s.add_dependency(%q<timecop>.freeze, [">= 0"])
|
284
284
|
end
|
285
285
|
else
|
286
|
-
s.add_dependency(%q<rails
|
287
|
-
s.add_dependency(%q<maestrano-rails
|
288
|
-
s.add_dependency(%q<
|
289
|
-
s.add_dependency(%q<
|
290
|
-
s.add_dependency(%q<bootstrap-sass
|
291
|
-
s.add_dependency(%q<
|
292
|
-
s.add_dependency(%q<
|
293
|
-
s.add_dependency(%q<
|
294
|
-
s.add_dependency(%q<
|
295
|
-
s.add_dependency(%q<sidekiq
|
296
|
-
s.add_dependency(%q<sidekiq-
|
297
|
-
s.add_dependency(%q<
|
298
|
-
s.add_dependency(%q<
|
299
|
-
s.add_dependency(%q<slim
|
300
|
-
s.add_dependency(%q<
|
301
|
-
s.add_dependency(%q<
|
302
|
-
s.add_dependency(%q<
|
303
|
-
s.add_dependency(%q<
|
304
|
-
s.add_dependency(%q<
|
305
|
-
s.add_dependency(%q<
|
306
|
-
s.add_dependency(%q<
|
307
|
-
s.add_dependency(%q<
|
308
|
-
s.add_dependency(%q<
|
309
|
-
s.add_dependency(%q<shoulda-matchers
|
310
|
-
s.add_dependency(%q<
|
311
|
-
s.add_dependency(%q<
|
312
|
-
s.add_dependency(%q<
|
286
|
+
s.add_dependency(%q<rails>.freeze, ["~> 4.2"])
|
287
|
+
s.add_dependency(%q<maestrano-rails>.freeze, ["~> 1.0.0"])
|
288
|
+
s.add_dependency(%q<attr_encrypted>.freeze, ["~> 1.4.0"])
|
289
|
+
s.add_dependency(%q<autoprefixer-rails>.freeze, [">= 0"])
|
290
|
+
s.add_dependency(%q<bootstrap-sass>.freeze, [">= 0"])
|
291
|
+
s.add_dependency(%q<config>.freeze, [">= 0"])
|
292
|
+
s.add_dependency(%q<figaro>.freeze, [">= 0"])
|
293
|
+
s.add_dependency(%q<haml-rails>.freeze, [">= 0"])
|
294
|
+
s.add_dependency(%q<hash_mapper>.freeze, [">= 0.2.2"])
|
295
|
+
s.add_dependency(%q<sidekiq>.freeze, [">= 0"])
|
296
|
+
s.add_dependency(%q<sidekiq-cron>.freeze, [">= 0"])
|
297
|
+
s.add_dependency(%q<sidekiq-unique-jobs>.freeze, [">= 0"])
|
298
|
+
s.add_dependency(%q<sinatra>.freeze, [">= 0"])
|
299
|
+
s.add_dependency(%q<slim>.freeze, [">= 0"])
|
300
|
+
s.add_dependency(%q<activerecord-jdbcsqlite3-adapter>.freeze, [">= 0"])
|
301
|
+
s.add_dependency(%q<bundler>.freeze, [">= 0"])
|
302
|
+
s.add_dependency(%q<factory_girl_rails>.freeze, [">= 0"])
|
303
|
+
s.add_dependency(%q<github_changelog_generator>.freeze, [">= 0"])
|
304
|
+
s.add_dependency(%q<jeweler>.freeze, [">= 0"])
|
305
|
+
s.add_dependency(%q<rdoc>.freeze, [">= 0"])
|
306
|
+
s.add_dependency(%q<rspec-rails>.freeze, [">= 0"])
|
307
|
+
s.add_dependency(%q<rubocop>.freeze, ["~> 0.43"])
|
308
|
+
s.add_dependency(%q<shoulda>.freeze, [">= 0"])
|
309
|
+
s.add_dependency(%q<shoulda-matchers>.freeze, [">= 0"])
|
310
|
+
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
311
|
+
s.add_dependency(%q<sqlite3>.freeze, [">= 0"])
|
312
|
+
s.add_dependency(%q<timecop>.freeze, [">= 0"])
|
313
313
|
end
|
314
314
|
end
|
315
315
|
|
@@ -11,7 +11,7 @@ describe VersionController, type: :controller do
|
|
11
11
|
|
12
12
|
it 'returns a version hash' do
|
13
13
|
subject
|
14
|
-
expect(JSON.parse(response.body)).to eql('framework_version'=>'1.2', 'env' => 'test', 'ruby_version' => RUBY_VERSION, 'ruby_engine' => RUBY_ENGINE)
|
14
|
+
expect(JSON.parse(response.body)).to eql('framework_version'=>'1.2', 'ci_branch' => nil, 'ci_commit' => nil, 'env' => 'test', 'ruby_version' => RUBY_VERSION, 'ruby_engine' => RUBY_ENGINE)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -1,135 +1,2 @@
|
|
1
|
-
Maestrano.
|
2
|
-
|
3
|
-
# ==> Environment configuration
|
4
|
-
# The environment to connect to.
|
5
|
-
# If set to 'production' then all Single Sign-On (SSO) and API requests
|
6
|
-
# will be made to maestrano.com
|
7
|
-
# If set to 'test' then requests will be made to api-sandbox.maestrano.io
|
8
|
-
# The api-sandbox allows you to easily test integration scenarios.
|
9
|
-
# More details on http://api-sandbox.maestrano.io
|
10
|
-
#
|
11
|
-
config.environment = 'test' # or 'production'
|
12
|
-
|
13
|
-
# ==> Application host
|
14
|
-
# This is your application host (e.g: my-app.com) which is ultimately
|
15
|
-
# used to redirect users to the right SAML url during SSO handshake.
|
16
|
-
#
|
17
|
-
config.app.host = (config.environment == 'production' ? 'https://my-app.com' : 'http://localhost:3000')
|
18
|
-
|
19
|
-
# ==> App ID & API key
|
20
|
-
# Your application App ID and API key which you can retrieve on http://maestrano.com
|
21
|
-
# via your cloud partner dashboard.
|
22
|
-
# For testing you can retrieve/generate an api.id and api.key from the API Sandbox directly
|
23
|
-
# on http://api-sandbox.maestrano.io
|
24
|
-
#
|
25
|
-
config.api.id = (config.environment == 'production' ? 'prod_app_id' : 'sandbox_app_id')
|
26
|
-
config.api.key = (config.environment == 'production' ? 'prod_api_key' : 'sandbox_api_key')
|
27
|
-
|
28
|
-
# ==> Single Sign-On activation
|
29
|
-
# Enable/Disable single sign-on. When troubleshooting authentication issues
|
30
|
-
# you might want to disable SSO temporarily
|
31
|
-
#
|
32
|
-
# config.sso.enabled = true
|
33
|
-
|
34
|
-
# ==> Single Sign-On Identity Manager
|
35
|
-
# By default we consider that the domain managing user identification
|
36
|
-
# is the same as your application host (see above config.app.host parameter)
|
37
|
-
# If you have a dedicated domain managing user identification and therefore
|
38
|
-
# responsible for the single sign-on handshake (e.g: https://idp.my-app.com)
|
39
|
-
# then you can specify it below
|
40
|
-
#
|
41
|
-
# config.sso.idm = (config.environment == 'production' ? 'https://idp.my-app.com' : 'http://localhost:3000')
|
42
|
-
|
43
|
-
# ==> SSO Initialization endpoint
|
44
|
-
# This is your application path to the SAML endpoint that allows users to
|
45
|
-
# initialize SSO authentication. Upon reaching this endpoint users your
|
46
|
-
# application will automatically create a SAML request and redirect the user
|
47
|
-
# to Maestrano. Maestrano will then authenticate and authorize the user. Upon
|
48
|
-
# authorization the user gets redirected to your application consumer endpoint
|
49
|
-
# (see below) for initial setup and/or login.
|
50
|
-
#
|
51
|
-
# The controller for this path is automatically
|
52
|
-
# generated when you run 'rake maestrano:install' and is available at
|
53
|
-
# <rails_root>/app/controllers/maestrano/auth/saml.rb
|
54
|
-
#
|
55
|
-
# config.sso.init_path = '/maestrano/auth/saml/init'
|
56
|
-
|
57
|
-
# ==> SSO Consumer endpoint
|
58
|
-
# This is your application path to the SAML endpoint that allows users to
|
59
|
-
# finalize SSO authentication. During the 'consume' action your application
|
60
|
-
# sets users (and associated group) up and/or log them in.
|
61
|
-
#
|
62
|
-
# The controller for this path is automatically
|
63
|
-
# generated when you run 'rake maestrano:install' and is available at
|
64
|
-
# <rails_root>/app/controllers/maestrano/auth/saml.rb
|
65
|
-
#
|
66
|
-
# config.sso.consume_path = '/maestrano/auth/saml/consume'
|
67
|
-
|
68
|
-
# ==> Single Logout activation
|
69
|
-
# Enable/Disable single logout. When troubleshooting authentication issues
|
70
|
-
# you might want to disable SLO temporarily.
|
71
|
-
# If set to false then Maestrano::SSO::Session#valid? - which should be
|
72
|
-
# used in a controller before filter to check user session - always return true
|
73
|
-
#
|
74
|
-
# config.sso.slo_enabled = true
|
75
|
-
|
76
|
-
# ==> SSO User creation mode
|
77
|
-
# !IMPORTANT
|
78
|
-
# On Maestrano users can take several "instances" of your service. You can consider
|
79
|
-
# each "instance" as 1) a billing entity and 2) a collaboration group (this is
|
80
|
-
# equivalent to a 'customer account' in a commercial world). When users login to
|
81
|
-
# your application via single sign-on they actually login via a specific group which
|
82
|
-
# is then supposed to determine which data they have access to inside your application.
|
83
|
-
#
|
84
|
-
# E.g: John and Jack are part of group 1. They should see the same data when they login to
|
85
|
-
# your application (employee info, analytics, sales etc..). John is also part of group 2
|
86
|
-
# but not Jack. Therefore only John should be able to see the data belonging to group 2.
|
87
|
-
#
|
88
|
-
# In most application this is done via collaboration/sharing/permission groups which is
|
89
|
-
# why a group is required to be created when a new user logs in via a new group (and
|
90
|
-
# also for billing purpose - you charge a group, not a user directly).
|
91
|
-
#
|
92
|
-
# == mode: 'real'
|
93
|
-
# In an ideal world a user should be able to belong to several groups in your application.
|
94
|
-
# In this case you would set the 'sso.creation_mode' to 'real' which means that the uid
|
95
|
-
# and email we pass to you are the actual user email and maestrano universal id.
|
96
|
-
#
|
97
|
-
# == mode: 'virtual'
|
98
|
-
# Now let's say that due to technical constraints your application cannot authorize a user
|
99
|
-
# to belong to several groups. Well next time John logs in via a different group there will
|
100
|
-
# be a problem: the user already exists (based on uid or email) and cannot be assigned
|
101
|
-
# to a second group. To fix this you can set the 'sso.creation_mode' to 'virtual'. In this
|
102
|
-
# mode users get assigned a truly unique uid and email across groups. So next time John logs
|
103
|
-
# in a whole new user account can be created for him without any validation problem. In this
|
104
|
-
# mode the email we assign to him looks like "usr-sdf54.cld-45aa2@mail.maestrano.com". But don't
|
105
|
-
# worry we take care of forwarding any email you would send to this address
|
106
|
-
#
|
107
|
-
# config.sso.creation_mode = 'real' # or 'virtual'
|
108
|
-
|
109
|
-
# ==> Account Webhooks
|
110
|
-
# Single sign on has been setup into your app and Maestrano users are now able
|
111
|
-
# to use your service. Great! Wait what happens when a business (group) decides to
|
112
|
-
# stop using your service? Also what happens when a user gets removed from a business?
|
113
|
-
# Well the endpoints below are for Maestrano to be able to notify you of such
|
114
|
-
# events.
|
115
|
-
#
|
116
|
-
# Even if the routes look restful we issue only issue DELETE requests for the moment
|
117
|
-
# to notify you of any service cancellation (group deletion) or any user being
|
118
|
-
# removed from a group.
|
119
|
-
#
|
120
|
-
# The controllers for these hooks path are automatically generated when
|
121
|
-
# you run 'rake maestrano:install' and is available under
|
122
|
-
# <rails_root>/app/controllers/maestrano/account/
|
123
|
-
#
|
124
|
-
# config.webhook.account.groups_path = '/maestrano/account/groups/:id',
|
125
|
-
# config.webhook.account.group_users_path = '/maestrano/account/groups/:group_id/users/:id',
|
126
|
-
end
|
127
|
-
|
128
|
-
# Example of multi-tenant configuration
|
129
|
-
Maestrano['other-tenant'].configure do |config|
|
130
|
-
config.environment = 'test'
|
131
|
-
config.app.host = (config.environment == 'production' ? 'https://my-app.com' : 'http://localhost:3000')
|
132
|
-
|
133
|
-
config.api.id = (config.environment == 'production' ? 'prod_app_id' : 'sandbox_app_id')
|
134
|
-
config.api.key = (config.environment == 'production' ? 'prod_api_key' : 'sandbox_api_key')
|
135
|
-
end
|
1
|
+
Maestrano.auto_configure unless Rails.env.test?
|
2
|
+
Maestrano.configure { |config| config.environment = 'production' } if Rails.env.test?
|
@@ -16,14 +16,14 @@ describe Maestrano::Connector::Rails::ConnecHelper do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
describe 'connec_version' do
|
19
|
-
let!(:organization) { create(:organization, tenant: '
|
20
|
-
let!(:organization2) { create(:organization, tenant: '
|
19
|
+
let!(:organization) { create(:organization, tenant: 'production') }
|
20
|
+
let!(:organization2) { create(:organization, tenant: 'uat') }
|
21
21
|
before {
|
22
|
-
allow(Maestrano::Connec::Client).to receive(:get).and_return(ActionDispatch::Response.new(200, {}, {ci_build_number: '111', ci_branch: 'v1.1', ci_commit: '111'}.to_json, {}), ActionDispatch::Response.new(200, {}, {ci_build_number: '112', ci_branch: 'v1.2', ci_commit: '112'}.to_json, {}))
|
22
|
+
allow(Maestrano::Connec::Client['production']).to receive(:get).and_return(ActionDispatch::Response.new(200, {}, {ci_build_number: '111', ci_branch: 'v1.1', ci_commit: '111'}.to_json, {}), ActionDispatch::Response.new(200, {}, {ci_build_number: '112', ci_branch: 'v1.2', ci_commit: '112'}.to_json, {}))
|
23
23
|
}
|
24
24
|
|
25
25
|
it 'returns the connec_version' do
|
26
|
-
expect(Maestrano::Connec::Client).to receive(:get).twice
|
26
|
+
expect(Maestrano::Connec::Client['production']).to receive(:get).twice
|
27
27
|
expect(subject.connec_version(organization)).to eql('1.1')
|
28
28
|
expect(subject.connec_version(organization2)).to eql('1.2')
|
29
29
|
expect(subject.connec_version(organization)).to eql('1.1')
|
@@ -207,7 +207,22 @@ describe Maestrano::Connector::Rails::Organization do
|
|
207
207
|
it { expect(subject.last_synchronization_date).to eql(nil) }
|
208
208
|
end
|
209
209
|
end
|
210
|
-
end
|
211
210
|
|
211
|
+
describe '#reset_synchronized_entities' do
|
212
|
+
let(:organization) { create(:organization, synchronized_entities: {entity1: true, entity2: false, tomatoes: true}) }
|
213
|
+
subject { organization.reset_synchronized_entities }
|
214
|
+
|
215
|
+
it 'keeps only the known entities' do
|
216
|
+
subject
|
217
|
+
expect(organization.synchronized_entities).to eql(entity1: true, entity2: false)
|
218
|
+
end
|
219
|
+
|
220
|
+
it 'adds missing entities' do
|
221
|
+
organization.update_attributes(synchronized_entities: {entity1: true, tomatoes: true})
|
212
222
|
|
223
|
+
subject
|
224
|
+
expect(organization.synchronized_entities).to eql(entity1: true, entity2: false)
|
225
|
+
end
|
226
|
+
end
|
227
|
+
end
|
213
228
|
end
|
@@ -6,7 +6,7 @@ SIDEKIQ_PASSWORD: password
|
|
6
6
|
|
7
7
|
REDIS_URL: redis://localhost:6379/0/connector-myapp
|
8
8
|
|
9
|
-
MNO_DEVPL_HOST: https://
|
9
|
+
MNO_DEVPL_HOST: https://developer.maestrano.com
|
10
10
|
MNO_DEVPL_API_PATH: /api/config/v1/marketplaces
|
11
11
|
MNO_DEVPL_ENV_NAME: connector-myapp
|
12
12
|
MNO_DEVPL_ENV_KEY:
|
data/template/maestrano.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
Maestrano.auto_configure unless Rails.env.test?
|
2
|
-
Maestrano.configure { |config| config.environment = '
|
2
|
+
Maestrano.configure { |config| config.environment = 'production' } if Rails.env.test?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: maestrano-connector-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maestrano
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -28,32 +28,32 @@ dependencies:
|
|
28
28
|
name: maestrano-rails
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 1.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 1.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: attr_encrypted
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.4.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 1.4.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: autoprefixer-rails
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: config
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
@@ -95,21 +95,21 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: figaro
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: '0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: haml-rails
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
@@ -123,19 +123,19 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: hash_mapper
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
131
|
+
version: 0.2.2
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
138
|
+
version: 0.2.2
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: sidekiq
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -151,7 +151,7 @@ dependencies:
|
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name: sidekiq-
|
154
|
+
name: sidekiq-cron
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - ">="
|
@@ -165,7 +165,7 @@ dependencies:
|
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
168
|
+
name: sidekiq-unique-jobs
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - ">="
|
@@ -179,7 +179,7 @@ dependencies:
|
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
182
|
+
name: sinatra
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
185
|
- - ">="
|
@@ -207,7 +207,7 @@ dependencies:
|
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: '0'
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
210
|
+
name: activerecord-jdbcsqlite3-adapter
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
213
|
- - ">="
|
@@ -221,7 +221,7 @@ dependencies:
|
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: '0'
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
|
-
name:
|
224
|
+
name: bundler
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
227
|
- - ">="
|
@@ -235,7 +235,7 @@ dependencies:
|
|
235
235
|
- !ruby/object:Gem::Version
|
236
236
|
version: '0'
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
|
-
name:
|
238
|
+
name: factory_girl_rails
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
240
240
|
requirements:
|
241
241
|
- - ">="
|
@@ -249,7 +249,7 @@ dependencies:
|
|
249
249
|
- !ruby/object:Gem::Version
|
250
250
|
version: '0'
|
251
251
|
- !ruby/object:Gem::Dependency
|
252
|
-
name:
|
252
|
+
name: github_changelog_generator
|
253
253
|
requirement: !ruby/object:Gem::Requirement
|
254
254
|
requirements:
|
255
255
|
- - ">="
|
@@ -263,7 +263,7 @@ dependencies:
|
|
263
263
|
- !ruby/object:Gem::Version
|
264
264
|
version: '0'
|
265
265
|
- !ruby/object:Gem::Dependency
|
266
|
-
name:
|
266
|
+
name: jeweler
|
267
267
|
requirement: !ruby/object:Gem::Requirement
|
268
268
|
requirements:
|
269
269
|
- - ">="
|
@@ -277,7 +277,7 @@ dependencies:
|
|
277
277
|
- !ruby/object:Gem::Version
|
278
278
|
version: '0'
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
|
-
name:
|
280
|
+
name: rdoc
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
282
282
|
requirements:
|
283
283
|
- - ">="
|
@@ -291,7 +291,7 @@ dependencies:
|
|
291
291
|
- !ruby/object:Gem::Version
|
292
292
|
version: '0'
|
293
293
|
- !ruby/object:Gem::Dependency
|
294
|
-
name:
|
294
|
+
name: rspec-rails
|
295
295
|
requirement: !ruby/object:Gem::Requirement
|
296
296
|
requirements:
|
297
297
|
- - ">="
|
@@ -305,21 +305,21 @@ dependencies:
|
|
305
305
|
- !ruby/object:Gem::Version
|
306
306
|
version: '0'
|
307
307
|
- !ruby/object:Gem::Dependency
|
308
|
-
name:
|
308
|
+
name: rubocop
|
309
309
|
requirement: !ruby/object:Gem::Requirement
|
310
310
|
requirements:
|
311
|
-
- - "
|
311
|
+
- - "~>"
|
312
312
|
- !ruby/object:Gem::Version
|
313
|
-
version: '0'
|
313
|
+
version: '0.43'
|
314
314
|
type: :development
|
315
315
|
prerelease: false
|
316
316
|
version_requirements: !ruby/object:Gem::Requirement
|
317
317
|
requirements:
|
318
|
-
- - "
|
318
|
+
- - "~>"
|
319
319
|
- !ruby/object:Gem::Version
|
320
|
-
version: '0'
|
320
|
+
version: '0.43'
|
321
321
|
- !ruby/object:Gem::Dependency
|
322
|
-
name:
|
322
|
+
name: shoulda
|
323
323
|
requirement: !ruby/object:Gem::Requirement
|
324
324
|
requirements:
|
325
325
|
- - ">="
|
@@ -347,21 +347,21 @@ dependencies:
|
|
347
347
|
- !ruby/object:Gem::Version
|
348
348
|
version: '0'
|
349
349
|
- !ruby/object:Gem::Dependency
|
350
|
-
name:
|
350
|
+
name: simplecov
|
351
351
|
requirement: !ruby/object:Gem::Requirement
|
352
352
|
requirements:
|
353
|
-
- - "
|
353
|
+
- - ">="
|
354
354
|
- !ruby/object:Gem::Version
|
355
|
-
version: '0
|
355
|
+
version: '0'
|
356
356
|
type: :development
|
357
357
|
prerelease: false
|
358
358
|
version_requirements: !ruby/object:Gem::Requirement
|
359
359
|
requirements:
|
360
|
-
- - "
|
360
|
+
- - ">="
|
361
361
|
- !ruby/object:Gem::Version
|
362
|
-
version: '0
|
362
|
+
version: '0'
|
363
363
|
- !ruby/object:Gem::Dependency
|
364
|
-
name:
|
364
|
+
name: sqlite3
|
365
365
|
requirement: !ruby/object:Gem::Requirement
|
366
366
|
requirements:
|
367
367
|
- - ">="
|
@@ -375,7 +375,7 @@ dependencies:
|
|
375
375
|
- !ruby/object:Gem::Version
|
376
376
|
version: '0'
|
377
377
|
- !ruby/object:Gem::Dependency
|
378
|
-
name:
|
378
|
+
name: timecop
|
379
379
|
requirement: !ruby/object:Gem::Requirement
|
380
380
|
requirements:
|
381
381
|
- - ">="
|
@@ -615,7 +615,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
615
615
|
version: '0'
|
616
616
|
requirements: []
|
617
617
|
rubyforge_project:
|
618
|
-
rubygems_version: 2.
|
618
|
+
rubygems_version: 2.6.8
|
619
619
|
signing_key:
|
620
620
|
specification_version: 4
|
621
621
|
summary: Rails framework to build connector with Maestrano
|