maestrano-connector-rails 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|