satorix-rails 1.0.11 → 1.1.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a5dbf0b5018c9ce918066276a1dba71c041a7a2f
4
- data.tar.gz: 3d9c9065c8f8d85945f8f5a81be09c295f25d9fc
3
+ metadata.gz: 01a18abd3627753df2a9aaac68f8bc574cd0ccdb
4
+ data.tar.gz: 310355613e9144c5571635be5546eb295940d62a
5
5
  SHA512:
6
- metadata.gz: 2b8e13947ba20ba173d173af8097bfcd602edce3f5ceac950627baf9489b5fabff1376f3da52811a8787438fad2b997177661427486b31dbb6e96a85ca3b4dd3
7
- data.tar.gz: 50872269ddd8cc9f68f35ac4458da9c87643270d21abc68a7f466faebcaa2385495a3ffa377d480d99deaf62169dfefa9462e275df66e8a6c5fbe54f0feb6d8e
6
+ metadata.gz: 632a8f3486f73c152c2630078629ed251d37783e4579e4a52ba7fe66c3567d5ea8aba20ad62805ee00cdd79dba833dd2724948d264978120e133d0587ffe552e
7
+ data.tar.gz: 1bd6430f4d16fcd362fc61c0ed9431b39b1d3a67b25c5266261d0905666e680567d1abca0109a95cceb6f219dc018dbf00e0f8359c9fa3f30c567314e6a045f2
data/.gitignore CHANGED
@@ -7,3 +7,7 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+
11
+ # Rubymine files
12
+ /.idea
13
+ /config/initializers/rubymine_passenger_debug.rb
data/.gitlab-ci.yml CHANGED
@@ -21,7 +21,7 @@ rspec:
21
21
 
22
22
 
23
23
  # This is a custom job, defined at satorix/CI/deploy/ie_gem_server.rb
24
- deploy_to_ie_gem_server:
24
+ deploy_to_rubygems:
25
25
  environment:
26
26
  name: $CI_COMMIT_REF_NAME
27
27
  url: 'http://gems.iexposure.com/gems/satorix-rails'
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-2.4.1
1
+ ruby-2.4.5
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- ruby File.open("#{ File.dirname(__FILE__) }/.ruby-version", &:gets).strip[/ruby-(.+)/i, 1]
1
+ ruby "#{ File.open("#{ File.dirname(__FILE__) }/.ruby-version", &:gets).strip[/ruby-(.+)/i, 1] }"
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
@@ -13,7 +13,7 @@ module Satorix
13
13
 
14
14
  template 'install/config/passenger_standalone/nginx.conf.erb', 'config/passenger_standalone/nginx.conf.erb'
15
15
 
16
- template 'install/config/passenger_standalone/includes/htpasswd', 'config/passenger_standalone/includes/htpasswd'
16
+ template 'install/config/passenger_standalone/includes/htpasswd_source.erb', 'config/passenger_standalone/includes/htpasswd_source.erb'
17
17
  template 'install/config/passenger_standalone/includes/authentication.erb', 'config/passenger_standalone/includes/authentication.erb'
18
18
  template 'install/config/passenger_standalone/includes/page_level_redirects.erb', 'config/passenger_standalone/includes/page_level_redirects.erb'
19
19
  template 'install/config/passenger_standalone/includes/proxy_configuration.erb', 'config/passenger_standalone/includes/proxy_configuration.erb'
@@ -1,6 +1,6 @@
1
1
  # This Procfile defines the types of process that Flynn will run.
2
2
  # For more information, please see the documentation at http://gitlab.iexposure.com/satorix/satorix
3
3
 
4
- web: bundle exec passenger start -p $PORT --nginx-config-template config/passenger_standalone/nginx.conf.erb --max-pool-size 3
4
+ web: bundle exec passenger start -p $PORT --nginx-config-template config/passenger_standalone/nginx.conf.erb --log-file /dev/stdout
5
5
  # worker: rake jobs:work
6
6
  # clock: bundle exec clockwork config/clock.rb
@@ -1,14 +1,28 @@
1
-
2
1
  # Authentication
3
2
  #
4
3
  # Allow listed networks to access without auth, otherwise require password
4
+ <%%
5
+ password_files = {}
6
+
7
+ # Write out htpasswd file(s), from source files in config/passenger_standalone/includes
8
+ # to allow dynamically generated htpasswd file(s), most likely from env vars.
9
+ %w[htpasswd].each do |password_file|
10
+ passenger_standalone_includes = File.expand_path(__dir__)
11
+ password_files[password_file] = File.join( passenger_standalone_includes, password_file )
12
+ contents = include_passenger_custom_template("#{ password_file }_source.erb")
13
+ File.open(password_files[password_file], 'w') {|f| f.write(contents) }
14
+ end
15
+ %>
5
16
 
6
- satisfy any;
7
- <%% ENV['SATORIX_AUTHENTICATION_ALLOWED_IPS'].to_s.split(' ').each do |target| %>
17
+ location / {
18
+ satisfy any;
19
+ <%% ENV['SATORIX_AUTHENTICATION_ALLOWED_IPS'].to_s.split(' ').each do |target| -%>
8
20
  allow <%%= target %>;
9
- <%% end %>
10
- deny all;
11
- auth_basic "Please Log In";
12
- auth_basic_user_file /app/config/passenger_standalone/includes/htpasswd;
21
+ <%% end -%>
22
+ deny all;
23
+ auth_basic "Please Log In";
24
+ auth_basic_user_file <%%= password_files['htpasswd'] %>;
25
+ }
26
+
13
27
 
14
28
  # End Authentication
@@ -0,0 +1,6 @@
1
+ <%%# This value should include hashed username/password combinations, separated by whitespace -%>
2
+ <%%# These can be generated using the htpasswd application, or an online tool like http://www.htaccesstools.com/htpasswd-generator/ -%>
3
+ <%%# For more info, see: https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/ -%>
4
+ <%%= ENV['SATORIX_AUTHENTICATION_HTPASSWDS'].to_s.split.join("\n") %>
5
+
6
+
@@ -1,15 +1,15 @@
1
-
2
1
  # Page-level Redirects
3
2
  #
3
+ # Prevent Nginx from adding the internal app port to the rewrite, aka port 8080
4
+
5
+ port_in_redirect off;
6
+
4
7
  # Define your own custom page-level redirects below.
5
8
  #
6
9
  # Examples:
7
10
  # Standard single page redirects:
8
- # location = /old-page-1 { return 301 $scheme://$server_name/new-page-1; }
9
- # location = /old-page-2 { return 301 $scheme://$server_name/new-page-2; }
10
- # Do not work:
11
- # # Redirects to port 8080
12
- # location = /asdf2 { return 301 /process; }
11
+ # location = /old-page-1 { return 301 /new-page-1; }
12
+ # location = /old-page-2 { return 301 /new-page-2; }
13
13
 
14
14
 
15
15
 
@@ -21,7 +21,7 @@
21
21
  <%% end %>
22
22
 
23
23
  # Use the internal Flynn network set X-Forwarded-For header for access IPs.
24
- set_real_ip_from 100.100.0.0/16;
24
+ set_real_ip_from <%%= ENV['SATORIX_REAL_IP_FROM'].presence? || '100.100.0.0/16' %>;
25
25
  real_ip_header X-Forwarded-For;
26
26
 
27
27
  # End Proxy Configuration
@@ -1,6 +1,3 @@
1
- # passenger start --nginx-config-template config/passenger_standalone/nginx.conf.erb --debug-nginx-config
2
-
3
-
4
1
  ##########################################################################
5
2
  # Passenger Standalone is built on the same technology that powers
6
3
  # Passenger for Nginx, so any configuration option supported by Passenger
@@ -8,13 +5,12 @@
8
5
  # this by direct editing the Nginx configuration template that is used by
9
6
  # Passenger Standalone.
10
7
  #
11
- # This file is the original template. DO NOT EDIT THIS FILE DIRECTLY.
12
- # Instead, make a copy of this file and pass the `--nginx-config-template`
13
- # parameter to Passenger Standalone.
14
- #
15
8
  # Learn more about using the Nginx configuration template at:
16
9
  # https://www.phusionpassenger.com/library/config/standalone/intro.html#nginx-configuration-template
17
10
  #
11
+ # To test this configuration template run:
12
+ # passenger start --nginx-config-template config/passenger_standalone/nginx.conf.erb --debug-nginx-config
13
+ #
18
14
  # *** NOTE ***
19
15
  # If you customize the template file, make sure you keep an eye on the
20
16
  # original template file and merge any changes. New Phusion Passenger
@@ -22,8 +18,17 @@
22
18
  ##############################################################
23
19
 
24
20
  <%%
25
- def include_passenger_custom_template(template)
26
- ERB.new(File.read( File.join( File.dirname(__FILE__), 'includes', template ) )).result(binding)
21
+ def include_passenger_custom_template(template, indent = 0, the_binding = get_binding)
22
+ path = File.join(File.dirname(__FILE__), 'includes', template)
23
+ erb = ERB.new(File.read(path), nil, "-", next_eoutvar)
24
+ erb.filename = path
25
+ result = erb.result(the_binding)
26
+
27
+ # Set indenting
28
+ result.gsub!(/^/, " " * indent)
29
+ result.gsub!(/\A +/, '')
30
+
31
+ result
27
32
  end
28
33
 
29
34
  def use_canonical?
@@ -108,9 +113,9 @@ http {
108
113
  <%%= include_passenger_internal_template('server.erb', 8, true, binding) %>
109
114
  <%%= include_passenger_internal_template('rails_asset_pipeline.erb', 8, false) %>
110
115
 
111
- <%%= include_passenger_custom_template('page_level_redirects.erb') %>
112
- <%%= include_passenger_custom_template('proxy_configuration.erb') %>
113
- <%%= include_passenger_custom_template('authentication.erb') %>
116
+ <%%= include_passenger_custom_template('page_level_redirects.erb', 8, binding) %>
117
+ <%%= include_passenger_custom_template('proxy_configuration.erb', 8, binding) %>
118
+ <%%= include_passenger_custom_template('authentication.erb', 8, binding) %>
114
119
 
115
120
  ### BEGIN your own configuration options ###
116
121
  # This is a good place to put your own config options.
@@ -1,7 +1,7 @@
1
1
  module Satorix
2
2
  module Rails
3
3
  module Version
4
- VERSION = '1.0.11'
4
+ VERSION = '1.1.4'
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,133 @@
1
+ module Satorix
2
+ module CI
3
+ module Deploy
4
+ module Rubygems
5
+
6
+
7
+ require 'fileutils'
8
+
9
+
10
+ include Satorix::Shared::Console
11
+
12
+
13
+ extend self
14
+
15
+
16
+ def go
17
+ log_bench('Generating rubygems.org configuration_file...') { generate_rubygems_configuration_file }
18
+ log_bench('Preparing gem build directory...') { prepare_gem_build_directory }
19
+ log_bench('Building gem...') { build_gem }
20
+ built_gems.each { |gem| log_bench("Publishing #{ File.basename gem }...") { publish_gem gem } }
21
+ end
22
+
23
+
24
+ private ########################################################################################################
25
+
26
+
27
+ def build_gem
28
+ run_command 'rake build'
29
+ end
30
+
31
+
32
+ def built_gems
33
+ Dir.glob(File.join(gem_build_directory, '*.gem')).select { |e| File.file? e }
34
+ end
35
+
36
+
37
+ def gem_build_directory
38
+ File.join Satorix.app_root, 'pkg'
39
+ end
40
+
41
+
42
+ def generate_rubygems_configuration_file
43
+ path = File.join(Dir.home, '.gem')
44
+ FileUtils.mkdir_p(path) unless File.exist?(path)
45
+
46
+ file = File.join(path, 'credentials')
47
+ File.open(file, 'w') { |f| f.write rubygems_configuration_file_contents }
48
+ FileUtils.chmod 0600, file
49
+ end
50
+
51
+
52
+ def prepare_gem_build_directory
53
+ run_command "rm -rf #{ gem_build_directory }"
54
+ FileUtils.mkdir_p gem_build_directory
55
+ end
56
+
57
+
58
+ def publish_gem(gem)
59
+ run_command "gem push #{ gem } --config-file #{ File.join(Dir.home, '.gem', 'credentials') }"
60
+ rescue RuntimeError
61
+ # To prevent the display of an ugly stacktrace.
62
+ abort "\nGem was not published!"
63
+ end
64
+
65
+
66
+ def rubygems_api_key
67
+ ENV['SATORIX_CI_RUBYGEMS_API_KEY']
68
+ end
69
+
70
+
71
+ def rubygems_configuration_file_contents
72
+ "---\n:rubygems_api_key: #{ rubygems_api_key }"
73
+ end
74
+
75
+
76
+ # To be used for rake release - START
77
+
78
+
79
+ def configure_git
80
+ run_command 'git config user.name Satorix'
81
+ run_command 'git config user.email satorix@iexposure.com'
82
+ run_command 'git config push.default simple'
83
+ end
84
+
85
+
86
+ def configure_ssh
87
+ run_command 'whoami'
88
+ run_command 'printenv'
89
+
90
+ path = File.join(Dir.home, '.ssh')
91
+ FileUtils.mkdir_p(path) unless File.exist?(path)
92
+
93
+ public_key_file = File.join(path, 'id_rsa.pub')
94
+ File.open(public_key_file, 'w') { |f| f.write ssh_public_key }
95
+ FileUtils.chmod 0600, public_key_file
96
+ run_command "cat #{ public_key_file }"
97
+
98
+ private_key_file = File.join(path, 'id_rsa')
99
+ File.open(private_key_file, 'w') { |f| f.write ssh_private_key }
100
+ FileUtils.chmod 0600, private_key_file
101
+
102
+ config_file = File.join(path, 'config')
103
+ File.open(config_file, 'w') { |f| f.write "IdentityFile #{ private_key_file }" }
104
+ FileUtils.chmod 0600, config_file
105
+ run_command "cat #{ config_file }"
106
+
107
+ system 'eval `ssh-agent -s`'
108
+ run_command "ssh-add #{ private_key_file }"
109
+ end
110
+
111
+
112
+ def rake_release
113
+ run_command 'bundle exec rake release'
114
+ end
115
+
116
+
117
+ def ssh_private_key
118
+ ENV['SATORIX_CI_SSH_PRIVATE_KEY']
119
+ end
120
+
121
+
122
+ def ssh_public_key
123
+ ENV['SATORIX_CI_SSH_PUBLIC_KEY']
124
+ end
125
+
126
+
127
+ # To be used for rake release - END
128
+
129
+
130
+ end
131
+ end
132
+ end
133
+ end
data/satorix/custom.rb CHANGED
@@ -2,7 +2,7 @@ module Satorix
2
2
  module Custom
3
3
 
4
4
 
5
- require_relative 'CI/deploy/ie_gem_server.rb'
5
+ require_relative 'CI/deploy/rubygems.rb'
6
6
 
7
7
 
8
8
  extend self
@@ -11,7 +11,7 @@ module Satorix
11
11
  def available_jobs
12
12
  {
13
13
  deploy: {
14
- deploy_to_ie_gem_server: Satorix::CI::Deploy::IeGemServer
14
+ deploy_to_rubygems: Satorix::CI::Deploy::Rubygems
15
15
  }
16
16
  }
17
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: satorix-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.11
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Internet Exposure
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-16 00:00:00.000000000 Z
11
+ date: 2019-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: passenger
@@ -93,14 +93,14 @@ files:
93
93
  - lib/rails/generators/templates/install/.gitlab-ci.yml
94
94
  - lib/rails/generators/templates/install/Procfile
95
95
  - lib/rails/generators/templates/install/config/passenger_standalone/includes/authentication.erb
96
- - lib/rails/generators/templates/install/config/passenger_standalone/includes/htpasswd
96
+ - lib/rails/generators/templates/install/config/passenger_standalone/includes/htpasswd_source.erb
97
97
  - lib/rails/generators/templates/install/config/passenger_standalone/includes/page_level_redirects.erb
98
98
  - lib/rails/generators/templates/install/config/passenger_standalone/includes/proxy_configuration.erb
99
99
  - lib/rails/generators/templates/install/config/passenger_standalone/nginx.conf.erb
100
100
  - lib/satorix/rails.rb
101
101
  - lib/satorix/rails/version.rb
102
102
  - satorix-rails.gemspec
103
- - satorix/CI/deploy/ie_gem_server.rb
103
+ - satorix/CI/deploy/rubygems.rb
104
104
  - satorix/custom.rb
105
105
  homepage: https://www.satorix.com
106
106
  licenses: []
@@ -122,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
122
  version: '0'
123
123
  requirements: []
124
124
  rubyforge_project:
125
- rubygems_version: 2.6.11
125
+ rubygems_version: 2.6.12
126
126
  signing_key:
127
127
  specification_version: 4
128
128
  summary: Satorix in Rails
@@ -1 +0,0 @@
1
- iestaging:$apr1$b4UNgid/$jVoc0rRDzUfmldUp9.DK8.
@@ -1,80 +0,0 @@
1
- module Satorix
2
- module CI
3
- module Deploy
4
- module IeGemServer
5
-
6
-
7
- require 'fileutils'
8
-
9
-
10
- include Satorix::Shared::Console
11
-
12
-
13
- extend self
14
-
15
-
16
- def go
17
- log_bench('Installing the geminabox gem...') { install_geminabox_gem }
18
- log_bench('Preparing gem build directory...') { prepare_gem_build_directory }
19
- log_bench('Building gem...') { build_gem }
20
- built_gems.each { |gem| log_bench("Publishing #{ File.basename gem }...") { publish_gem gem } }
21
- end
22
-
23
-
24
- private ########################################################################################################
25
-
26
-
27
- def build_gem
28
- run_command 'rake build'
29
- end
30
-
31
-
32
- def built_gems
33
- Dir.glob(File.join(gem_build_directory, '*.gem')).select { |e| File.file? e }
34
- end
35
-
36
-
37
- def gem_build_directory
38
- File.join Satorix.app_root, 'pkg'
39
- end
40
-
41
-
42
- def ie_gem_server_host
43
- "https://#{ ie_gem_server_user_name }:#{ ie_gem_server_password }@gems.iexposure.com"
44
- end
45
-
46
-
47
- def ie_gem_server_password
48
- ENV['SATORIX_CI_IE_GEM_SERVER_PASSWORD']
49
- end
50
-
51
-
52
- def ie_gem_server_user_name
53
- ENV['SATORIX_CI_IE_GEM_SERVER_USER_NAME']
54
- end
55
-
56
-
57
- def install_geminabox_gem
58
- run_command 'gem install geminabox --source https://gems.iexposure.com --no-document'
59
- end
60
-
61
-
62
- def prepare_gem_build_directory
63
- run_command "rm -rf #{ gem_build_directory }"
64
- FileUtils.mkdir_p gem_build_directory
65
- end
66
-
67
-
68
- def publish_gem(gem)
69
- run_command "gem inabox #{ gem } --host #{ ie_gem_server_host }",
70
- filtered_text: [ie_gem_server_user_name, ie_gem_server_password]
71
- rescue RuntimeError
72
- # To prevent the display of an ugly stacktrace.
73
- abort "\nGem was not published!"
74
- end
75
-
76
-
77
- end
78
- end
79
- end
80
- end