neeto-commons-backend 1.0.89

Sign up to get free protection for your applications and to get access to all the features.
Files changed (189) hide show
  1. checksums.yaml +7 -0
  2. data/.eslintignore +14 -0
  3. data/.eslintrc.js +87 -0
  4. data/.husky/helpers/verify_neeto_audit.sh +18 -0
  5. data/.husky/pre-push +5 -0
  6. data/.neetoci/neetoci.yml +26 -0
  7. data/.prettierrc.js +15 -0
  8. data/.rubocop.yml +626 -0
  9. data/.ruby-version +1 -0
  10. data/.semaphore/semaphore.yml +32 -0
  11. data/.semaphore/staging-deploy.yml +23 -0
  12. data/Gemfile +92 -0
  13. data/Gemfile.lock +461 -0
  14. data/README.md +286 -0
  15. data/Rakefile +18 -0
  16. data/app/controllers/api/base_controller.rb +6 -0
  17. data/app/controllers/neeto_commons_backend/api/base_controller.rb +9 -0
  18. data/app/controllers/neeto_commons_backend/api/direct_uploads_controller.rb +57 -0
  19. data/app/controllers/neeto_commons_backend/app_versions_controller.rb +20 -0
  20. data/app/controllers/neeto_commons_backend/failures_controller.rb +29 -0
  21. data/app/controllers/neeto_commons_backend/health_check_controller.rb +9 -0
  22. data/app/controllers/neeto_commons_backend/well_knowns_controller.rb +13 -0
  23. data/app/mailers/neeto_commons_backend/application_mailer.rb +22 -0
  24. data/app/models/concerns/neeto_commons_backend/sluggable.rb +27 -0
  25. data/app/models/concerns/neeto_commons_backend/soft_deletable.rb +20 -0
  26. data/app/services/neeto_commons_backend/sample_data/common/admin_service.rb +26 -0
  27. data/app/services/neeto_commons_backend/sample_data/common/app_organization_service.rb +11 -0
  28. data/app/services/neeto_commons_backend/sample_data/common/base.rb +49 -0
  29. data/app/services/neeto_commons_backend/sample_data/common/database_cleanup_service.rb +13 -0
  30. data/app/services/neeto_commons_backend/sample_data/common/loader_service.rb +30 -0
  31. data/app/services/neeto_commons_backend/sample_data/common/neeto_team_members_service.rb +16 -0
  32. data/app/services/neeto_commons_backend/sample_data/common/organization_base.rb +36 -0
  33. data/app/services/neeto_commons_backend/sample_data/common/organization_service.rb +11 -0
  34. data/app/services/neeto_commons_backend/source_map_publish_service.rb +47 -0
  35. data/app/views/neeto_commons_backend/failures/show.html.erb +1 -0
  36. data/app/views/shared/_common.html.erb +8 -0
  37. data/app/views/shared/_neeto_engineering_replay_widget.html.erb +31 -0
  38. data/app/views/shared/_neeto_widget.html.erb +30 -0
  39. data/app/workers/neeto_commons_backend/base_workers/auth.rb +9 -0
  40. data/app/workers/neeto_commons_backend/base_workers/base.rb +52 -0
  41. data/app/workers/neeto_commons_backend/base_workers/default.rb +8 -0
  42. data/app/workers/neeto_commons_backend/base_workers/low.rb +9 -0
  43. data/app/workers/neeto_commons_backend/base_workers/urgent.rb +9 -0
  44. data/app/workers/neeto_commons_backend/purge_unattached_files_worker.rb +11 -0
  45. data/babel.config.js +47 -0
  46. data/bin/console +15 -0
  47. data/bin/rails +16 -0
  48. data/bin/setup +8 -0
  49. data/config/brakeman.ignore +52 -0
  50. data/config/locales/en.yml +5 -0
  51. data/docs/carriers/README.md +5 -0
  52. data/docs/controller_concerns/README.md +34 -0
  53. data/docs/controllers/README.md +27 -0
  54. data/docs/gemfiles/README.md +5 -0
  55. data/docs/helpers/README.md +21 -0
  56. data/docs/mailers/README.md +5 -0
  57. data/docs/model_concerns/README.md +39 -0
  58. data/docs/routes/README.md +44 -0
  59. data/docs/scripts/README.md +5 -0
  60. data/docs/semaphore/README.md +5 -0
  61. data/docs/services/README.md +23 -0
  62. data/docs/workers/README.md +32 -0
  63. data/docs/workflows/README.md +9 -0
  64. data/lib/Rakefile +4 -0
  65. data/lib/neeto-commons-backend.rb +62 -0
  66. data/lib/neeto_commons_backend/.circleci/config.yml +84 -0
  67. data/lib/neeto_commons_backend/.slugignore +17 -0
  68. data/lib/neeto_commons_backend/carriers/app_url_carrier.rb +71 -0
  69. data/lib/neeto_commons_backend/common_files/.bundler-version +1 -0
  70. data/lib/neeto_commons_backend/common_files/.editorconfig +10 -0
  71. data/lib/neeto_commons_backend/common_files/.erb-lint.yml +20 -0
  72. data/lib/neeto_commons_backend/common_files/.eslintignore +14 -0
  73. data/lib/neeto_commons_backend/common_files/.eslintrc.js +2 -0
  74. data/lib/neeto_commons_backend/common_files/.gitignore +132 -0
  75. data/lib/neeto_commons_backend/common_files/.husky/helpers/lint_staged.sh +5 -0
  76. data/lib/neeto_commons_backend/common_files/.husky/helpers/prevent_conflict_markers.sh +35 -0
  77. data/lib/neeto_commons_backend/common_files/.husky/helpers/prevent_pushing_to_main.sh +24 -0
  78. data/lib/neeto_commons_backend/common_files/.husky/helpers/verify_neeto_audit.sh +17 -0
  79. data/lib/neeto_commons_backend/common_files/.husky/pre-commit +9 -0
  80. data/lib/neeto_commons_backend/common_files/.husky/pre-push +7 -0
  81. data/lib/neeto_commons_backend/common_files/.node-version +1 -0
  82. data/lib/neeto_commons_backend/common_files/.nvmrc +1 -0
  83. data/lib/neeto_commons_backend/common_files/.postcssrc.yml +6 -0
  84. data/lib/neeto_commons_backend/common_files/.prettierrc.js +1 -0
  85. data/lib/neeto_commons_backend/common_files/.rubocop.yml +625 -0
  86. data/lib/neeto_commons_backend/common_files/.ruby-version +1 -0
  87. data/lib/neeto_commons_backend/common_files/.semaphore/commands/run_eslint_on_modified_files.sh +5 -0
  88. data/lib/neeto_commons_backend/common_files/.vscode/extensions.json +10 -0
  89. data/lib/neeto_commons_backend/common_files/.vscode/settings.json +21 -0
  90. data/lib/neeto_commons_backend/common_files/Dockerfile.dev +50 -0
  91. data/lib/neeto_commons_backend/common_files/app/javascript/jsconfig.json +62 -0
  92. data/lib/neeto_commons_backend/common_files/app/javascript/src/types.d.ts +36 -0
  93. data/lib/neeto_commons_backend/common_files/babel.config.js +1 -0
  94. data/lib/neeto_commons_backend/common_files/bin/bundle +5 -0
  95. data/lib/neeto_commons_backend/common_files/bin/rails +6 -0
  96. data/lib/neeto_commons_backend/common_files/bin/rake +6 -0
  97. data/lib/neeto_commons_backend/common_files/bin/setup +40 -0
  98. data/lib/neeto_commons_backend/common_files/bin/update +33 -0
  99. data/lib/neeto_commons_backend/common_files/bin/webpacker +17 -0
  100. data/lib/neeto_commons_backend/common_files/bin/webpacker-dev-server +17 -0
  101. data/lib/neeto_commons_backend/common_files/bin/yarn +19 -0
  102. data/lib/neeto_commons_backend/common_files/cypress-tests/.eslintrc.js +57 -0
  103. data/lib/neeto_commons_backend/common_files/cypress-tests/cypress/plugins/index.js +63 -0
  104. data/lib/neeto_commons_backend/common_files/github/workflows/auto_update_prs_with_latest_master.yml +21 -0
  105. data/lib/neeto_commons_backend/common_files/neeto_gems/github/workflows/bump_version.yml +51 -0
  106. data/lib/neeto_commons_backend/common_files/newrelic.yml +31 -0
  107. data/lib/neeto_commons_backend/common_files/package-common.json +119 -0
  108. data/lib/neeto_commons_backend/common_files/roles.yml +34 -0
  109. data/lib/neeto_commons_backend/common_files/semaphore/semaphore.yml +58 -0
  110. data/lib/neeto_commons_backend/common_files/sitemap.xml +15 -0
  111. data/lib/neeto_commons_backend/common_files/test/support/assertion_support.rb +9 -0
  112. data/lib/neeto_commons_backend/common_files/webpacker.yml +90 -0
  113. data/lib/neeto_commons_backend/config/secrets.yml +169 -0
  114. data/lib/neeto_commons_backend/controllers/concerns/api_exceptions.rb +83 -0
  115. data/lib/neeto_commons_backend/controllers/concerns/api_helpers.rb +9 -0
  116. data/lib/neeto_commons_backend/controllers/concerns/api_responders.rb +33 -0
  117. data/lib/neeto_commons_backend/controllers/concerns/authenticatable.rb +51 -0
  118. data/lib/neeto_commons_backend/controllers/concerns/honeybadger_context.rb +17 -0
  119. data/lib/neeto_commons_backend/controllers/concerns/store_user_location.rb +23 -0
  120. data/lib/neeto_commons_backend/cypress/cypress.review.json +13 -0
  121. data/lib/neeto_commons_backend/cypress/jsconfig.json +17 -0
  122. data/lib/neeto_commons_backend/cypress/package.json +51 -0
  123. data/lib/neeto_commons_backend/cypress/resolve.js +16 -0
  124. data/lib/neeto_commons_backend/cypress/webpack.config.js +21 -0
  125. data/lib/neeto_commons_backend/engine.rb +6 -0
  126. data/lib/neeto_commons_backend/environments/application.rb +33 -0
  127. data/lib/neeto_commons_backend/environments/development.rb +46 -0
  128. data/lib/neeto_commons_backend/environments/heroku.rb +35 -0
  129. data/lib/neeto_commons_backend/environments/production.rb +45 -0
  130. data/lib/neeto_commons_backend/environments/staging.rb +43 -0
  131. data/lib/neeto_commons_backend/environments/test.rb +29 -0
  132. data/lib/neeto_commons_backend/gemfiles/Gemfile.common.rb +240 -0
  133. data/lib/neeto_commons_backend/helpers/auth_server_api.rb +92 -0
  134. data/lib/neeto_commons_backend/helpers/favicon.rb +18 -0
  135. data/lib/neeto_commons_backend/helpers/global_props.rb +76 -0
  136. data/lib/neeto_commons_backend/helpers/neeto_widget_helper.rb +19 -0
  137. data/lib/neeto_commons_backend/helpers/test_helper.rb +90 -0
  138. data/lib/neeto_commons_backend/initializers/_enable_extension_hack.rb +32 -0
  139. data/lib/neeto_commons_backend/initializers/assets.rb +11 -0
  140. data/lib/neeto_commons_backend/initializers/bullet.rb +26 -0
  141. data/lib/neeto_commons_backend/initializers/cache_store.rb +27 -0
  142. data/lib/neeto_commons_backend/initializers/common.rb +33 -0
  143. data/lib/neeto_commons_backend/initializers/cookies_serializer.rb +11 -0
  144. data/lib/neeto_commons_backend/initializers/cors.rb +16 -0
  145. data/lib/neeto_commons_backend/initializers/database_cleaner.rb +11 -0
  146. data/lib/neeto_commons_backend/initializers/datetime.rb +14 -0
  147. data/lib/neeto_commons_backend/initializers/email_setup.rb +25 -0
  148. data/lib/neeto_commons_backend/initializers/filter_parameter_logging.rb +11 -0
  149. data/lib/neeto_commons_backend/initializers/honeybadger.rb +23 -0
  150. data/lib/neeto_commons_backend/initializers/kaminari_config.rb +13 -0
  151. data/lib/neeto_commons_backend/initializers/mime_types.rb +12 -0
  152. data/lib/neeto_commons_backend/initializers/mini_profiler.rb +14 -0
  153. data/lib/neeto_commons_backend/initializers/neeto_email_prefixer.rb +40 -0
  154. data/lib/neeto_commons_backend/initializers/neeto_mail_interceptor.rb +35 -0
  155. data/lib/neeto_commons_backend/initializers/post_compilation.rb +17 -0
  156. data/lib/neeto_commons_backend/initializers/rack_attack.rb +38 -0
  157. data/lib/neeto_commons_backend/initializers/rack_deflater.rb +11 -0
  158. data/lib/neeto_commons_backend/initializers/rack_timeout.rb +15 -0
  159. data/lib/neeto_commons_backend/initializers/rails_email_preview.rb +21 -0
  160. data/lib/neeto_commons_backend/initializers/redis_client_patch.rb +18 -0
  161. data/lib/neeto_commons_backend/initializers/remove_backtrace_silencers.rb +11 -0
  162. data/lib/neeto_commons_backend/initializers/session_store.rb +21 -0
  163. data/lib/neeto_commons_backend/initializers/shared_redis.rb +13 -0
  164. data/lib/neeto_commons_backend/initializers/sidekiq.rb +46 -0
  165. data/lib/neeto_commons_backend/initializers/strong_migrations.rb +13 -0
  166. data/lib/neeto_commons_backend/initializers/wrap_parameters.rb +13 -0
  167. data/lib/neeto_commons_backend/models/concerns/devise_validator.rb +19 -0
  168. data/lib/neeto_commons_backend/railtie.rb +20 -0
  169. data/lib/neeto_commons_backend/routes/catch_all.rb +9 -0
  170. data/lib/neeto_commons_backend/routes/devise.rb +16 -0
  171. data/lib/neeto_commons_backend/routes/direct_uploads.rb +9 -0
  172. data/lib/neeto_commons_backend/routes/draw.rb +29 -0
  173. data/lib/neeto_commons_backend/routes/email_previews.rb +5 -0
  174. data/lib/neeto_commons_backend/routes/errors.rb +7 -0
  175. data/lib/neeto_commons_backend/routes/health.rb +8 -0
  176. data/lib/neeto_commons_backend/routes/letter_opener.rb +5 -0
  177. data/lib/neeto_commons_backend/routes/sidekiq.rb +22 -0
  178. data/lib/neeto_commons_backend/routes/well_knowns.rb +10 -0
  179. data/lib/neeto_commons_backend/scripts/sync_with_wheel.sh +54 -0
  180. data/lib/neeto_commons_backend/secrets_management.rb +41 -0
  181. data/lib/neeto_commons_backend/services/custom_domain_service.rb +40 -0
  182. data/lib/neeto_commons_backend/tasks/assets.rake +27 -0
  183. data/lib/neeto_commons_backend/tasks/before_assets_precompile.rake +13 -0
  184. data/lib/neeto_commons_backend/tasks/simplecov_coverage.rake +25 -0
  185. data/lib/neeto_commons_backend/version.rb +5 -0
  186. data/neeto-commons-backend.gemspec +52 -0
  187. data/package.json +31 -0
  188. data/yarn.lock +2530 -0
  189. metadata +497 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 077e17cb2efb5f3c8b07181f421bfaeb3dafd397869dbcefee4ecd2a287f3826
4
+ data.tar.gz: 2c1470a0386155ca9cd00725fcb40f74ac6e68f43658508bdf6a05202c37eea1
5
+ SHA512:
6
+ metadata.gz: 47f37f3074aaaea24a74b3a81468e68fe7e0b470d5b016bc71e05b9958aa85dc06547debc9e6b73d5a3e84bad92a3cba32a602d5f2b9f8ad86aafc268cd37c0a
7
+ data.tar.gz: 3b9b41db1d2df60cc57a9a948728e1e25a0f4f4b40665594ff2980627dd800ac80507ab11f53762864a8a1dfc6912d8664208c0be06c44c4c866a8eeed8ee33e
data/.eslintignore ADDED
@@ -0,0 +1,14 @@
1
+ /public
2
+ coverage
3
+ db
4
+ docs
5
+ log
6
+ .scripts
7
+ .semaphore
8
+ test
9
+ tmp
10
+ .vscode
11
+ babel.config.js
12
+ app/javascript/packs
13
+ stories
14
+ app/javascript/jsconfig.json
data/.eslintrc.js ADDED
@@ -0,0 +1,87 @@
1
+ module.exports = {
2
+ env: {
3
+ browser: true, // window object etc part of browser are made available globally.
4
+ es2020: true, // to include BigInt support
5
+ es6: true,
6
+ commonjs: true,
7
+ node: true,
8
+ },
9
+ /*
10
+ * The order of extending each plugin matters a LOT!!
11
+ * Thus don't change order of items in this array
12
+ * unless you're sure of it.
13
+ */
14
+ extends: [
15
+ "plugin:json/recommended",
16
+ "eslint:recommended",
17
+ "plugin:react/recommended",
18
+ "prettier",
19
+ ],
20
+ settings: {
21
+ react: {
22
+ version: "detect",
23
+ },
24
+ },
25
+ parserOptions: {
26
+ ecmaFeatures: { jsx: true },
27
+ ecmaVersion: 2018,
28
+ sourceType: "module",
29
+ },
30
+ // babel-eslint is deprecated now. This is the latest package.
31
+ parser: "@babel/eslint-parser",
32
+ plugins: ["react", "prettier"],
33
+ rules: {
34
+ // auto-fixable: Respect all Prettier rules and apply it.
35
+ "prettier/prettier": "error",
36
+ // not-auto-fixable: No unused variables allowed.
37
+ "no-unused-vars": "error",
38
+ // not-auto-fixable: No undefined variables allowed.
39
+ "no-undef": "error",
40
+ // not-auto-fixable: Dont use console statements. Use logger which babel will remove during bundling.
41
+ "no-console": "error",
42
+ // not-auto-fixable: require `return` statements to either always or never specify values.
43
+ "consistent-return": "error",
44
+ // auto-fixable: disallows repeating variable name when declaring object properties.
45
+ "object-shorthand": "error",
46
+ // auto-fixable: sadly this doesn't support guard clauses yet.
47
+ "padding-line-between-statements": [
48
+ "error",
49
+ { blankLine: "always", prev: "if", next: ["if", "return"] },
50
+ ],
51
+ // auto-fixable: Single line statements needn't have any braces. But in all other cases enforce curly braces.
52
+ curly: ["error", "multi-line"],
53
+ // auto-fixable: Remove the else part, if the "if" or "else-if" chain has a return statement
54
+ "no-else-return": "error",
55
+ // auto-fixable: Requires trailing commas when the last element or property is in a different line than the closing ] or }
56
+ "comma-dangle": [
57
+ "error",
58
+ {
59
+ arrays: "always-multiline",
60
+ objects: "always-multiline",
61
+ imports: "always-multiline",
62
+ exports: "always-multiline",
63
+ functions: "never",
64
+ },
65
+ ],
66
+ // auto-fixable: If a variable is never reassigned, using the const declaration is better.
67
+ "prefer-const": "error",
68
+ // auto-fixable: It is considered good practice to use the type-safe equality operators === and !==.
69
+ eqeqeq: "error",
70
+ // not-auto-fixable: Rule flags optional chaining expressions in positions where short-circuiting to undefined causes throwing a TypeError afterward.
71
+ "no-unsafe-optional-chaining": "error",
72
+ // auto-fixable-1-level-deep: Using nested ternary operators make the code unreadable. Use if/else or switch with if/else. If it's JSX then move it out into a function or a variable. It's fine to use nestedTernary in JSX when it makes code more readable.
73
+ "no-nested-ternary": "warn",
74
+ // auto-fixable: Enforces no braces where they can be omitted.
75
+ "arrow-body-style": ["error", "as-needed"],
76
+ // auto-fixable: Suggests using template literals instead of string concatenation.
77
+ "prefer-template": "error",
78
+ // auto-fixable: Disallows ternary operators when simpler alternatives exist.
79
+ "no-unneeded-ternary": ["error", { defaultAssignment: false }],
80
+ // not-auto-fixable: Enforces declaring default params last
81
+ "default-param-last": "error",
82
+ // not-auto-fixable: Remove redundant async-awaits
83
+ "no-return-await": "warn",
84
+ // not-auto-fixable: Disallow empty block statements
85
+ "no-empty": ["error", { allowEmptyCatch: true }],
86
+ },
87
+ };
@@ -0,0 +1,18 @@
1
+ #!/bin/sh
2
+
3
+ print_running_neeto_audit() {
4
+ cat <<EOT
5
+ ======================================================================================
6
+ Running:
7
+
8
+ bundle exec neeto-audit
9
+ ======================================================================================
10
+ EOT
11
+ }
12
+
13
+ verify_neeto_audit() {
14
+ print_running_neeto_audit
15
+
16
+ bundle exec neeto-audit
17
+ }
18
+
data/.husky/pre-push ADDED
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+ . "$(dirname "$0")/_/husky.sh"
3
+ . "$(dirname "$0")/helpers/verify_neeto_audit.sh"
4
+
5
+ verify_neeto_audit
@@ -0,0 +1,26 @@
1
+ version: v1.0
2
+ name: neetoCi
3
+ global_job_config:
4
+ setup:
5
+ - checkout
6
+ - neetoci-version ruby 3.2.2
7
+ - neetoci-version node 18.12
8
+ - neetoci-service start postgres 13
9
+ - cp test/dummy/config/database.yml.ci test/dummy/config/database.yml
10
+ - bundle config set --local without 'development'
11
+ - cache restore
12
+ - bundle install --jobs 1
13
+ - yarn install
14
+ - cache store
15
+ - bundle exec rake db:create db:schema:load --trace
16
+ jobs:
17
+ - name: CiChecks
18
+ commands:
19
+ - bundle exec neeto-audit
20
+ - bundle exec rubocop
21
+ # For eslint not to read common_files configuration
22
+ - mv "lib/neeto_commons_backend/common_files/.eslintrc.js" "lib/neeto_commons_backend/common_files/eslintrc.js"
23
+ - mv "lib/neeto_commons_backend/common_files/.prettierrc.js" "lib/neeto_commons_backend/common_files/prettierrc.js"
24
+ - mv "lib/neeto_commons_backend/common_files/cypress-tests/.eslintrc.js" "lib/neeto_commons_backend/common_files/cypress-tests/eslintrc.js"
25
+ - lib/neeto_commons_backend/common_files/.semaphore/commands/run_eslint_on_modified_files.sh
26
+ - bundle exec rails test
data/.prettierrc.js ADDED
@@ -0,0 +1,15 @@
1
+ module.exports = {
2
+ trailingComma: "es5",
3
+ arrowParens: "avoid",
4
+ printWidth: 80,
5
+ tabWidth: 2,
6
+ useTabs: false,
7
+ semi: true,
8
+ quoteProps: "as-needed",
9
+ jsxSingleQuote: false,
10
+ singleQuote: false,
11
+ bracketSpacing: true,
12
+ bracketSameLine: false,
13
+ proseWrap: "always",
14
+ endOfLine: "lf",
15
+ };