mno-enterprise-core 3.1.4 → 3.2.0

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.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/mno_enterprise/logo-intuit.png +0 -0
  3. data/app/assets/images/mno_enterprise/main-logo.png +0 -0
  4. data/app/assets/stylesheets/mno_enterprise/mail.css +1 -4
  5. data/app/controllers/mno_enterprise/application_controller.rb +1 -1
  6. data/app/helpers/mno_enterprise/application_helper.rb +7 -7
  7. data/app/models/mno_enterprise/app.rb +12 -3
  8. data/app/models/mno_enterprise/app_answer.rb +13 -0
  9. data/app/models/mno_enterprise/app_comment.rb +10 -0
  10. data/app/models/mno_enterprise/app_feedback.rb +7 -0
  11. data/app/models/mno_enterprise/app_question.rb +9 -0
  12. data/app/models/mno_enterprise/app_review.rb +7 -0
  13. data/app/models/mno_enterprise/base_resource.rb +6 -1
  14. data/app/models/mno_enterprise/identity.rb +24 -0
  15. data/app/models/mno_enterprise/impac/alert.rb +10 -0
  16. data/app/models/mno_enterprise/impac/dashboard.rb +10 -11
  17. data/app/models/mno_enterprise/impac/kpi.rb +4 -2
  18. data/app/models/mno_enterprise/impac/widget.rb +4 -1
  19. data/app/models/mno_enterprise/team.rb +1 -33
  20. data/app/models/mno_enterprise/user.rb +109 -28
  21. data/app/views/system_notifications/email-change.html.erb +27 -0
  22. data/app/views/system_notifications/email-change.text.erb +10 -0
  23. data/app/views/system_notifications/password-change.html.erb +25 -0
  24. data/app/views/system_notifications/password-change.text.erb +7 -0
  25. data/app/views/system_notifications/reconfirmation-instructions.html.erb +7 -5
  26. data/app/views/system_notifications/reconfirmation-instructions.text.erb +3 -2
  27. data/config/initializers/config.rb +5 -0
  28. data/config/locales/models/user/en.yml +5 -0
  29. data/config/locales/templates/components/en.yml +9 -0
  30. data/config/locales/templates/dashboard/en.yml +14 -0
  31. data/config/locales/templates/dashboard/marketplace/en.yml +111 -8
  32. data/config/locales/templates/dashboard/organization/en.yml +1 -0
  33. data/config/locales/templates/impac/dock/en.yml +28 -0
  34. data/config/locales/views/auth/shared/en.yml +1 -2
  35. data/config/locales/views/webhook/o_auth/providers/en.yml +11 -6
  36. data/lib/devise/hooks/lockable.rb +13 -0
  37. data/lib/devise/models/remote_authenticatable.rb +31 -5
  38. data/lib/generators/mno_enterprise/install/install_generator.rb +7 -0
  39. data/lib/generators/mno_enterprise/install/templates/Procfile +1 -1
  40. data/lib/generators/mno_enterprise/install/templates/Procfile.dev +1 -1
  41. data/lib/generators/mno_enterprise/install/templates/config/application.yml +17 -0
  42. data/lib/generators/mno_enterprise/install/templates/config/initializers/mno_enterprise.rb +8 -3
  43. data/lib/generators/mno_enterprise/install/templates/config/newrelic.yml +46 -0
  44. data/lib/generators/mno_enterprise/install/templates/config/puma.rb +56 -0
  45. data/lib/generators/mno_enterprise/install/templates/config/settings/production.yml +1 -1
  46. data/lib/generators/mno_enterprise/install/templates/config/settings/uat.yml +1 -1
  47. data/lib/generators/mno_enterprise/install/templates/config/settings.yml +21 -0
  48. data/lib/generators/mno_enterprise/install/templates/stylesheets/variables.less +3 -0
  49. data/lib/her_extension/model/associations/association_proxy.rb +10 -6
  50. data/lib/mno_enterprise/concerns/controllers/auth/confirmations_controller.rb +1 -1
  51. data/lib/mno_enterprise/concerns/controllers/auth/omniauth_callbacks_controller.rb +203 -0
  52. data/lib/mno_enterprise/concerns/models/ability.rb +28 -0
  53. data/lib/mno_enterprise/concerns/models/app_instance.rb +22 -4
  54. data/lib/mno_enterprise/concerns/models/intercom_user.rb +28 -0
  55. data/lib/mno_enterprise/concerns/models/organization.rb +14 -1
  56. data/lib/mno_enterprise/concerns/models/team.rb +67 -0
  57. data/lib/mno_enterprise/core.rb +22 -3
  58. data/lib/mno_enterprise/impac_client.rb +19 -0
  59. data/lib/mno_enterprise/mail_adapters/mandrill_adapter.rb +4 -1
  60. data/lib/mno_enterprise/testing_support/factories/app_review.rb +51 -0
  61. data/lib/mno_enterprise/testing_support/factories/apps.rb +12 -10
  62. data/lib/mno_enterprise/testing_support/factories/identity.rb +9 -0
  63. data/lib/mno_enterprise/testing_support/factories/impac/alerts.rb +18 -0
  64. data/lib/mno_enterprise/testing_support/factories/impac/kpis.rb +5 -9
  65. data/lib/mno_enterprise/testing_support/factories/users.rb +4 -0
  66. data/lib/mno_enterprise/testing_support/jpi_v1_test_helper.rb +39 -0
  67. data/lib/mno_enterprise/testing_support/organizations_shared_helpers.rb +2 -1
  68. data/lib/mno_enterprise/testing_support/shared_examples/jpi_v1_admin.rb +38 -0
  69. data/lib/mno_enterprise/version.rb +1 -1
  70. data/spec/lib/devise/model/remote_authenticable_spec.rb +76 -0
  71. data/spec/lib/mno_enterprise/impac_client_spec.rb +31 -0
  72. data/spec/mno_enterprise_spec.rb +7 -8
  73. data/spec/models/mno_enterprise/app_spec.rb +1 -1
  74. data/spec/models/mno_enterprise/identity_spec.rb +39 -0
  75. data/spec/models/mno_enterprise/organization_spec.rb +19 -2
  76. data/spec/models/mno_enterprise/user_spec.rb +238 -0
  77. metadata +86 -22
@@ -10,16 +10,18 @@
10
10
  </p>
11
11
 
12
12
  <p>Hi <%= @info[:first_name] %></p>
13
-
14
- <p>You have asked to change your email address in the platform. Please confirm this new email address by clicking on the following link</p>
15
-
13
+
14
+ <p>You have asked to change your email address in the platform. Please confirm this new email address by clicking on the following link</p>
15
+
16
16
  <a href="<%= @info[:confirmation_link] %>">Confirm my new email address</a>
17
-
17
+
18
+ <p>If you did not ask for a modification just ignore this email.</p>
19
+
18
20
  <p>
19
21
  Regards,<br/>
20
22
  The Marketplace team
21
23
  </p>
22
-
24
+
23
25
  <p class="footer">
24
26
  <%= @info[:company] %>
25
27
  </p>
@@ -2,9 +2,10 @@ Hi <%= @info[:first_name] %>
2
2
  =================================================================
3
3
 
4
4
  You have asked to change your email address in the platform. Please confirm this new email address by clicking on the following link
5
-
5
+
6
6
  <%= @info[:confirmation_link] %>
7
-
7
+
8
+ If you did not ask for a modification just ignore this email.
8
9
 
9
10
  Regards,
10
11
  The Marketplace team
@@ -1,3 +1,8 @@
1
1
  Config.setup do |config|
2
2
  config.const_name = "Settings"
3
3
  end
4
+
5
+ # Use the template as default settings
6
+ default = File.expand_path("../../../lib/generators/mno_enterprise/install/templates/config/settings.yml", __FILE__)
7
+ Settings.prepend_source!(default)
8
+ Settings.reload!
@@ -41,5 +41,10 @@ en:
41
41
  updated_at: Updated at
42
42
  website: Website
43
43
  errors:
44
+ models:
45
+ mno_enterprise/user:
46
+ attributes:
47
+ email:
48
+ taken: "has already been taken"
44
49
  mno_enterprise/user:
45
50
  password_weak: "Password is not strong enough. Try mixing letters, numbers and cases"
@@ -19,3 +19,12 @@ en:
19
19
  app_not_found: Application not found
20
20
  app_not_managed_by_us: The app you requested does not seem to be managed by us.
21
21
  did_you_type_the_right_url: Are you sure you typed the right url?
22
+
23
+ app_install_btn:
24
+ conflicting_app: "You cannot install this App as it is incompatible with:"
25
+ start_app: "Start Now!"
26
+ launch_app: "Launch App"
27
+ connect_app: "Connect App"
28
+ success_notification_title: "{{name}} has been added to your account"
29
+ success_launch_notification_body: "To start using {{name}}, click on the {{name}} icon then click on \"Launch\"."
30
+ success_connect_notification_body: "To start using {{name}}, click on the {{name}} icon then click on \"Connect\"."
@@ -19,6 +19,20 @@ en:
19
19
  passwd_form_cancel: Cancel
20
20
  settings: Settings
21
21
 
22
+ developer: Developer
23
+ are_you_developer: Are you a Developer looking to contribute to the Maestrano platform?
24
+ register: Register!
25
+ api_key: API Key
26
+ secret_key: Secret Key
27
+ show: Show
28
+ hide: Hide
29
+ name: Name
30
+ uid: UID
31
+ view_developer_docs: View our developer documentation
32
+ here: here
33
+ conceal: Conceal
34
+ organizations: Organizations
35
+
22
36
  app_deletion:
23
37
  title: Confirm app deletion
24
38
  instructions: In order to delete your app, please enter the following statement in the box below.
@@ -4,13 +4,116 @@ en:
4
4
  dashboard:
5
5
  marketplace:
6
6
  index:
7
- title: Marketplace
8
- select_all: All
9
- search: Search
7
+ title: "Marketplace"
8
+ select_all: "All"
9
+ search: "Search"
10
+ compare: "Compare application"
11
+ select_apps: "Compare up to 4 applications"
12
+ toastr:
13
+ error: "You can only compare up to 4 applications."
14
+ cancel: "Cancel"
15
+ compare_apps: "Compare"
10
16
 
11
17
  show:
12
- back: Back
13
- start_app: Start Now!
14
- tag_responsive: Responsive
15
- tag_star: Star!™ Tutorials
16
- tag_connec: Connec!™ Ready
18
+ back: "Back"
19
+ start_app: "Start Now!"
20
+ launch_app: "Launch app"
21
+ connect_app: "Connect App"
22
+ tag_responsive: "Responsive"
23
+ tag_star: "Star!™ Tutorials"
24
+ tag_connec: "Connec!™ Ready"
25
+ conflicting_app: "You cannot install this app as it is incompatible with:"
26
+ success_notification_title: "{{name}} has been added to your account"
27
+ success_launch_notification_body: "To start using {{name}}, click on the {{name}} icon then click on \"Launch\"."
28
+ success_connect_notification_body: "To start using {{name}}, click on the {{name}} icon then click on \"Connect\"."
29
+ no_reviews: "No reviews on"
30
+ write_review: "Write a review"
31
+ number_of_reviews: "Reviews per page:"
32
+ success_toastr: "Your review has been taken into account!"
33
+ error_toastr: "An error occurred while saving your review."
34
+ from: "from"
35
+ "on": "on"
36
+ platform_admin: "Platform moderator"
37
+ edited_by_user: "Edited by User"
38
+ edited_by_user_tooltip: "Show edit history"
39
+ edited_by_admin: "Edited by Admin"
40
+ just_now: "Just Now"
41
+ company_feedback: "Company feedback"
42
+ review_title: "Review"
43
+ no_app_no_review: "You need to have the app running in order to give your feedback."
44
+ tell_others: "Tell others what you think about this application (optional)"
45
+ cancel: "Cancel"
46
+ submit: "Submit"
47
+ comment_title: "Comment this feedback:"
48
+ comment_placeholder: "Enter your comment here..."
49
+ question_title: "Question"
50
+ question_search: "Search..."
51
+ question_ask: "Ask a question"
52
+ question_ask_placeholder: "Enter your question here..."
53
+ no_review: "There are no reviews of {{name}}."
54
+ answers: "Answers"
55
+ answer_q: "Answer this Question"
56
+ answer_placeholder: "Enter your answer to this question here..."
57
+ delete: "Delete"
58
+ delete_q: "Delete this Question"
59
+ edit: "Edit"
60
+ edit_review: "Edit your review"
61
+ edit_answer: "Edit your answer"
62
+ edit_question: "Edit your question"
63
+ edit_comment: "Edit your comment"
64
+ edit_q: "Edit this Question"
65
+ filter: "Filter by:"
66
+ filter_rating_desc: "rating high to low"
67
+ filter_rating_ask: "rating low to high"
68
+ filter_date_desc: "date high to low"
69
+ filter_date_ask: "date low to high"
70
+ success_toastr_2: "Success."
71
+ success_toastr_answer: "Thank you for answering this question!"
72
+ success_toastr_question: "Your question has been successfully posted!"
73
+ error_toastr_answer: "An error occurred while saving your answer"
74
+ error_toastr_question: "An error occurred while saving your question"
75
+ review:
76
+ delete_modal_header: "Delete a review"
77
+ delete_modal_body: "Do you really want to delete your review?"
78
+ delete_modal_cancel: "Cancel"
79
+ delete_modal_delete: "Delete"
80
+ question:
81
+ delete_modal_header: "Delete a question"
82
+ delete_modal_body: "Do you really want to delete your question?"
83
+ delete_modal_cancel: "Cancel"
84
+ delete_modal_delete: "Delete"
85
+ no_question: "There are no questions on {{name}}."
86
+ comment:
87
+ delete_modal_header: "Delete a comment"
88
+ delete_modal_body: "Do you really want to delete your comment?"
89
+ delete_modal_cancel: "Cancel"
90
+ delete_modal_delete: "Delete"
91
+ answer:
92
+ delete_modal_header: "Delete an answer"
93
+ delete_modal_body: "Do you really want to delete your answer?"
94
+ delete_modal_cancel: "Cancel"
95
+ delete_modal_delete: "Delete"
96
+ edited: "Edited"
97
+ edited_tooltip: "Show edit history"
98
+ modals:
99
+ history:
100
+ title: "Edit History"
101
+ close: "Close"
102
+
103
+ app_selection:
104
+ next: "Next"
105
+ cancel: "Cancel"
106
+ select_orga: "Select an organization"
107
+ no_orga_authorized: "Invalid purchase"
108
+ unauthorized_to_add_app: "Unfortunately you do not have permission to purchase products for this organization. Please select another organization:"
109
+
110
+ compare:
111
+ title: "Comparison"
112
+ application_provider: "Application Provider"
113
+ category: "Category"
114
+ key_benefits: "Key benefits"
115
+ short_description: "Short description"
116
+ rating: "Rating"
117
+ companies_number: "Number of companies using the application"
118
+ pricing: "Pricing"
119
+ pricing_not_available: "pricing information not available"
@@ -29,6 +29,7 @@ en:
29
29
  placeholder_name: Name
30
30
  placeholder_surname: Surname
31
31
  number: Card Number
32
+ unaccepted_type: This card type is not accepted
32
33
  cvv: CVV
33
34
  country: Country
34
35
  country_select: "-- SELECT --"
@@ -0,0 +1,28 @@
1
+ en:
2
+ mno_enterprise:
3
+ templates:
4
+ impac:
5
+ dock:
6
+ launch: Launch
7
+ connect: Connect
8
+ settings: Settings
9
+ add_more_apps: Add more apps
10
+ cancel: Cancel
11
+ settings:
12
+ settings: Settings
13
+ status: Status
14
+ app_name: Name
15
+ access_add-on_settings: Access add-on Settings
16
+ manual_data_sharing: Data sharing
17
+ manual_data_sync: Manual Data Sync
18
+ disconnect_link: Disconnect Link
19
+ delete: Delete
20
+ confirm_app_deletion: Confirm app deletion
21
+ please_note_this_app: Please note this app is on a monthly plan. Your billing for this app will be calculated pro rata.
22
+ delete_instructions: In order to delete your app, please enter the following statement in the box below.
23
+ cancel: Cancel
24
+ developer_details: developer details
25
+ linked_to: Linked to
26
+ organization_id: Organization id
27
+ group_id: Group id (uid)
28
+
@@ -8,5 +8,4 @@ en:
8
8
  recover_password: Forgot your password?
9
9
  resend_confirmation: Didn't receive confirmation instructions?
10
10
  unlock: Didn't receive unlock instructions?
11
- omni_login: "Sign in with %{provider}"
12
-
11
+ or_sign_in_using: Or sign in using
@@ -3,13 +3,18 @@ en:
3
3
  webhook:
4
4
  o_auth:
5
5
  providers:
6
+ cancel: "Cancel"
7
+
6
8
  myob:
7
- which_version_used: Which version of MYOB do you use?
9
+ which_version_used: "Which version of MYOB do you use?"
8
10
  my_version_is: "My version of MYOB is:"
9
- connect: Connect
11
+ connect: "Connect"
12
+ connect_to: "Connect to {{appname}}"
10
13
 
11
14
  xero:
12
- how_do_you_want_to_connect: How do you want us to connect your Xero account?
13
- which_extra_modules: Do you want to connect any of the following extra modules?
14
- which_country_for_the_account: What is the country associated with your Xero account?
15
- connect: Connect
15
+ how_do_you_want_to_connect: "How do you want us to connect your Xero account?"
16
+ which_extra_modules: "Do you want to connect any of the following extra modules?"
17
+ payroll: "Payroll"
18
+ which_country_for_the_account: "What is the country associated with your Xero account?"
19
+ connect: "Connect"
20
+ connect_to: "Connect to {{appname}}"
@@ -0,0 +1,13 @@
1
+ # using current version https://github.com/plataformatec/devise/blob/e841c4c5ef826b6838b269d259170bb4fbca82f1/lib/devise/hooks/lockable.rb
2
+ # as 3-stable version https://github.com/plataformatec/devise/blob/3-stable/lib/devise/hooks/lockable.rb
3
+ # is using update_attribute which is not supported by Her
4
+ # After each sign in, if resource responds to failed_attempts, sets it to 0
5
+ # This is only triggered when the user is explicitly set (with set_user)
6
+ Warden::Manager.after_set_user except: :fetch do |record, warden, options|
7
+ if record.respond_to?(:failed_attempts) && warden.authenticated?(options[:scope])
8
+ unless record.failed_attempts.to_i.zero?
9
+ record.failed_attempts = 0
10
+ record.save(validate: false)
11
+ end
12
+ end
13
+ end
@@ -2,7 +2,7 @@ module Devise
2
2
  module Models
3
3
  module RemoteAuthenticatable
4
4
  extend ActiveSupport::Concern
5
-
5
+
6
6
  #
7
7
  # Here you do the request to the external webservice
8
8
  #
@@ -14,12 +14,23 @@ module Devise
14
14
  def remote_authentication(authentication_hash)
15
15
  self.class.authenticate(authentication_hash) # call MnoEnterprise::User.authenticate
16
16
  end
17
-
17
+
18
+ included do
19
+ before_update :track_password_changed
20
+ after_update :send_password_change_notification, if: :send_password_change_notification?
21
+ end
22
+
23
+ def send_password_change_notification
24
+ send_devise_notification(:password_change)
25
+ end
26
+
18
27
  ####################################
19
28
  # Overriden methods from Devise::Models::Authenticatable
20
29
  ####################################
21
30
  module ClassMethods
22
-
31
+ # Flag to enable password change notification
32
+ Devise::Models.config(self, :send_password_change_notification)
33
+
23
34
  # This method is called from:
24
35
  # Warden::SessionSerializer in devise
25
36
  #
@@ -33,7 +44,7 @@ module Devise
33
44
  end.tap {|r| r && r.clear_association_cache}
34
45
  record if record && record.authenticatable_salt == salt
35
46
  end
36
-
47
+
37
48
  # Here you have to return and array with the data of your resource
38
49
  # that you want to serialize into the session
39
50
  #
@@ -41,8 +52,23 @@ module Devise
41
52
  def serialize_into_session(record)
42
53
  [record.to_key, record.authenticatable_salt]
43
54
  end
44
-
55
+
45
56
  end
57
+
58
+ protected
59
+
60
+ # We want to send the notification once the password has changed but
61
+ # we won't have access to dirty attributes.
62
+ # Flag change before the model is saved.
63
+ # Do not send a notification at confirmation
64
+ def track_password_changed
65
+ @password_changed = password_changed? && confirmed_at_was.present?
66
+ true # before callback needs to return true to continue
67
+ end
68
+
69
+ def send_password_change_notification?
70
+ self.class.send_password_change_notification && @password_changed
71
+ end
46
72
  end
47
73
  end
48
74
  end
@@ -12,10 +12,15 @@ module MnoEnterprise
12
12
  class_option :skip_admin, type: :boolean, default: false, desc: 'Skip admin installation'
13
13
 
14
14
  def copy_initializer
15
+ # Foreman config
15
16
  template "Procfile"
16
17
  template "Procfile.dev"
18
+ template ".foreman"
19
+ template ".healthcheck"
20
+
17
21
  template "config/initializers/mno_enterprise.rb"
18
22
  template "config/mno_enterprise_styleguide.yml"
23
+ template "config/puma.rb", skip: true # Copied from Rails 5 - skip if already existing
19
24
 
20
25
  # Settings
21
26
  template "config/settings.yml", "config/settings.yml"
@@ -24,6 +29,8 @@ module MnoEnterprise
24
29
 
25
30
  template "config/application.yml", "config/application.yml"
26
31
  template "config/application.yml", "config/application.sample.yml"
32
+
33
+ template "config/newrelic.yml", "config/newrelic.yml"
27
34
  end
28
35
 
29
36
  def setup_assets
@@ -1 +1 @@
1
- web: bundle exec puma -p 7000
1
+ web: bundle exec puma
@@ -1,2 +1,2 @@
1
- web: bundle exec puma -p 7000
1
+ web: bundle exec puma
2
2
  gulp: cd ./tmp/build/frontend && node_modules/.bin/gulp serve
@@ -13,3 +13,20 @@ SECRET_KEY_BASE: <%= SecureRandom.hex(64) %>
13
13
 
14
14
  # Google Tag Manager
15
15
  google_tag_container: GTM-TH3MLB
16
+
17
+ # Intercom - uncomment and add a valid intercom_id to enable
18
+ # INTERCOM_APP_ID: intercom_app_id
19
+ # INTERCOM_API_SECRET: intercom_api_secret
20
+ # INTERCOM_API_KEY: intercom_api_key
21
+
22
+ # OmniAuth - uncomment and add a valid values to enable
23
+
24
+ # OAUTH_LINKEDIN_KEY: changeme
25
+ # OAUTH_LINKEDIN_SECRET: changeme
26
+
27
+ # OAUTH_GOOGLE_KEY: changeme
28
+ # OAUTH_GOOGLE_SECRET: changeme
29
+
30
+ # OAUTH_FACEBOOK_KEY: changeme
31
+ # OAUTH_FACEBOOK_SECRET: changeme
32
+
@@ -3,7 +3,7 @@ MnoEnterprise.configure do |config|
3
3
  # General Configuration
4
4
  #===============================================
5
5
  # Name of your company/application
6
- config.app_name = "My Company"
6
+ config.app_name = 'My Company'
7
7
 
8
8
  # Fallback default country.
9
9
  # Used as default in geolocalised fields (e.g.: country, phone number)
@@ -63,7 +63,7 @@ MnoEnterprise.configure do |config|
63
63
  # I18n - Controls:
64
64
  # - Routing in development
65
65
  # - Filter and locale management in controllers
66
- config.i18n_enabled = true
66
+ config.i18n_enabled = false
67
67
 
68
68
  #===============================================
69
69
  # Third Party Plugins
@@ -71,6 +71,12 @@ MnoEnterprise.configure do |config|
71
71
  # Google Tag Manager
72
72
  config.google_tag_container = ENV['google_tag_container']
73
73
 
74
+ # Intercom (both API Keys and Personal token are supported)
75
+ config.intercom_token = ENV['INTERCOM_TOKEN']
76
+ config.intercom_app_id = ENV['INTERCOM_APP_ID']
77
+ config.intercom_api_key = ENV['INTERCOM_API_KEY']
78
+ config.intercom_api_secret = ENV['INTERCOM_API_SECRET']
79
+
74
80
  #===============================================
75
81
  # API Configuration
76
82
  #===============================================
@@ -189,5 +195,4 @@ MnoEnterprise.configure do |config|
189
195
  # 'sales/forecast',
190
196
  # 'sales/performance'
191
197
  # ]
192
-
193
198
  end
@@ -0,0 +1,46 @@
1
+ #
2
+ # This file configures the New Relic Agent. New Relic monitors Ruby, Java,
3
+ # .NET, PHP, Python and Node applications with deep visibility and low
4
+ # overhead. For more information, visit www.newrelic.com.
5
+ #
6
+ # For full documentation of agent configuration options, please refer to
7
+ # https://docs.newrelic.com/docs/agents/ruby-agent/installation-configuration/ruby-agent-configuration
8
+
9
+ common: &default_settings
10
+ # Required license key associated with your New Relic account.
11
+ license_key: <%%= ENV['NEWRELIC_LICENSE_KEY'] %>
12
+
13
+ # Your application name. Renaming here affects where data displays in New
14
+ # Relic. For more details, see https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/renaming-applications
15
+ app_name: <%= Rails.application.class.parent_name %>
16
+
17
+ # Logging level for log/newrelic_agent.log
18
+ log_level: info
19
+
20
+ # Ignore ping logging
21
+ rules:
22
+ ignore_url_regexes: ["^/mnoe/ping", "^/mnoe/health_check", "^/mnoe/version"]
23
+
24
+ # Environment-specific settings are in this section.
25
+ # RAILS_ENV or RACK_ENV (as appropriate) is used to determine the environment.
26
+ # If your application has other named environments, configure them here.
27
+ development:
28
+ <<: *default_settings
29
+ app_name: <%= Rails.application.class.parent_name %> (Development)
30
+
31
+ # NOTE: There is substantial overhead when running in developer mode.
32
+ # Do not use for production or load testing.
33
+ developer_mode: false
34
+ monitor_mode: false
35
+
36
+ test:
37
+ <<: *default_settings
38
+ # It doesn't make sense to report to New Relic from automated test runs.
39
+ monitor_mode: false
40
+
41
+ uat:
42
+ <<: *default_settings
43
+ app_name: <%= Rails.application.class.parent_name %> (UAT)
44
+
45
+ production:
46
+ <<: *default_settings
@@ -0,0 +1,56 @@
1
+ # Puma can serve each request in a thread from an internal thread pool.
2
+ # The `threads` method setting takes two numbers: a minimum and maximum.
3
+ # Any libraries that use thread pools should be configured to match
4
+ # the maximum value specified for Puma. Default is set to 5 threads for minimum
5
+ # and maximum; this matches the default thread size of Active Record.
6
+ #
7
+ threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
8
+ threads threads_count, threads_count
9
+
10
+ # Specifies the `port` that Puma will listen on to receive requests; default is 3000.
11
+ #
12
+ port ENV.fetch("PORT") { 3000 }
13
+
14
+ # Specifies the `environment` that Puma will run in.
15
+ #
16
+ environment ENV.fetch("RAILS_ENV") { "development" }
17
+
18
+ # Specifies the number of `workers` to boot in clustered mode.
19
+ # Workers are forked webserver processes. If using threads and workers together
20
+ # the concurrency of the application would be max `threads` * `workers`.
21
+ # Workers do not work on JRuby or Windows (both of which do not support
22
+ # processes).
23
+ #
24
+ # workers ENV.fetch("WEB_CONCURRENCY") { 2 }
25
+
26
+ # Use the `preload_app!` method when specifying a `workers` number.
27
+ # This directive tells Puma to first boot the application and load code
28
+ # before forking the application. This takes advantage of Copy On Write
29
+ # process behavior so workers use less memory. If you use this option
30
+ # you need to make sure to reconnect any threads in the `on_worker_boot`
31
+ # block.
32
+ #
33
+ # preload_app!
34
+
35
+ # If you are preloading your application and using Active Record, it's
36
+ # recommended that you close any connections to the database before workers
37
+ # are forked to prevent connection leakage.
38
+ #
39
+ # before_fork do
40
+ # ActiveRecord::Base.connection_pool.disconnect! if defined?(ActiveRecord)
41
+ # end
42
+
43
+ # The code in the `on_worker_boot` will be called if you are using
44
+ # clustered mode by specifying a number of `workers`. After each worker
45
+ # process is booted, this block will be run. If you are using the `preload_app!`
46
+ # option, you will want to use this block to reconnect to any threads
47
+ # or connections that may have been created at application boot, as Ruby
48
+ # cannot share connections between processes.
49
+ #
50
+ # on_worker_boot do
51
+ # ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
52
+ # end
53
+ #
54
+
55
+ # Allow puma to be restarted by `rails restart` command.
56
+ plugin :tmp_restart
@@ -3,4 +3,4 @@ impac:
3
3
  host: api-impac.maestrano.com
4
4
  mno:
5
5
  protocol: https
6
- host: maestrano.com
6
+ host: api-hub.maestrano.com
@@ -3,4 +3,4 @@ impac:
3
3
  host: api-impac.maestrano.com
4
4
  mno:
5
5
  protocol: https
6
- host: maestrano.com
6
+ host: api-hub.maestrano.com
@@ -1,9 +1,30 @@
1
1
  impac:
2
2
  paths:
3
3
  mnohub_api: /mnoe/jpi/v1
4
+ pusher:
5
+ key: <%= ENV['impac_pusher_key'] %>
4
6
  mno:
5
7
  paths:
6
8
  root: /api/mnoe/v1
7
9
  frontend_host:
10
+
11
+ #===============================================
12
+ # Feature Flags
13
+ #===============================================
14
+
15
+ # Display App Pricing on Marketplace
8
16
  pricing:
9
17
  enabled: false
18
+ # Enable the App Dock
19
+ dock:
20
+ enabled: true
21
+ # Display the Developer section on "My Account"
22
+ developer:
23
+ enabled: false
24
+ # Enable Reviews in the marketplace
25
+ reviews:
26
+ enabled: false
27
+
28
+ marketplace:
29
+ comparison:
30
+ enabled: false
@@ -29,6 +29,7 @@
29
29
  /* Login Page */
30
30
  /*-----------------------------------------------------------------------*/
31
31
  @login-bg-color: @bg-main-color;
32
+ @login-bg-img: "";
32
33
  @login-box-grid-position: { margin-top: 80px; .make-sm-column(4); .make-sm-column-offset(4); };
33
34
 
34
35
  @login-box-title-color: @decorator-main-color;
@@ -41,6 +42,8 @@
41
42
  @login-box-brand-logo: { min-height: 61px; max-width: 160px; max-height: 130px; margin: 17px auto 5px auto; };
42
43
  @login-box-btn-login: { width: 100%; };
43
44
 
45
+ @login-box-sso-intuit-logo: "mno_enterprise/logo-intuit.png";
46
+
44
47
  /*-----------------------------------------------------------------------*/
45
48
  /* Dashboard Layout */
46
49
  /*-----------------------------------------------------------------------*/