firetail 0.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/.github/pull_request_template.md +11 -0
  3. data/.github/workflows/main.yml +40 -0
  4. data/.gitignore +28 -0
  5. data/Gemfile +5 -0
  6. data/Gemfile.lock +74 -0
  7. data/LICENSE +165 -0
  8. data/LICENSE.txt +165 -21
  9. data/README.md +24 -10
  10. data/examples/rails/.gitattributes +8 -0
  11. data/examples/rails/.gitignore +31 -0
  12. data/examples/rails/.rspec +1 -0
  13. data/examples/rails/.ruby-version +1 -0
  14. data/examples/rails/Gemfile +44 -0
  15. data/examples/rails/Gemfile.lock +240 -0
  16. data/examples/rails/README.md +24 -0
  17. data/examples/rails/Rakefile +6 -0
  18. data/examples/rails/app/channels/application_cable/channel.rb +4 -0
  19. data/examples/rails/app/channels/application_cable/connection.rb +4 -0
  20. data/examples/rails/app/controllers/application_controller.rb +2 -0
  21. data/examples/rails/app/controllers/comments_controller.rb +52 -0
  22. data/examples/rails/app/controllers/concerns/.keep +0 -0
  23. data/examples/rails/app/controllers/posts_controller.rb +51 -0
  24. data/examples/rails/app/jobs/application_job.rb +7 -0
  25. data/examples/rails/app/mailers/application_mailer.rb +4 -0
  26. data/examples/rails/app/models/application_record.rb +3 -0
  27. data/examples/rails/app/models/comment.rb +4 -0
  28. data/examples/rails/app/models/concerns/.keep +0 -0
  29. data/examples/rails/app/models/post.rb +5 -0
  30. data/examples/rails/app/views/layouts/mailer.html.erb +13 -0
  31. data/examples/rails/app/views/layouts/mailer.text.erb +1 -0
  32. data/examples/rails/bin/bundle +114 -0
  33. data/examples/rails/bin/rails +5 -0
  34. data/examples/rails/bin/rake +5 -0
  35. data/examples/rails/bin/setup +33 -0
  36. data/examples/rails/bin/spring +14 -0
  37. data/examples/rails/config/application.rb +41 -0
  38. data/examples/rails/config/boot.rb +4 -0
  39. data/examples/rails/config/cable.yml +10 -0
  40. data/examples/rails/config/credentials.yml.enc +1 -0
  41. data/examples/rails/config/database.yml +25 -0
  42. data/examples/rails/config/environment.rb +5 -0
  43. data/examples/rails/config/environments/development.rb +66 -0
  44. data/examples/rails/config/environments/production.rb +113 -0
  45. data/examples/rails/config/environments/test.rb +60 -0
  46. data/examples/rails/config/firetail.yml +2 -0
  47. data/examples/rails/config/initializers/application_controller_renderer.rb +8 -0
  48. data/examples/rails/config/initializers/backtrace_silencers.rb +8 -0
  49. data/examples/rails/config/initializers/cors.rb +16 -0
  50. data/examples/rails/config/initializers/filter_parameter_logging.rb +6 -0
  51. data/examples/rails/config/initializers/inflections.rb +16 -0
  52. data/examples/rails/config/initializers/mime_types.rb +4 -0
  53. data/examples/rails/config/initializers/wrap_parameters.rb +14 -0
  54. data/examples/rails/config/locales/en.yml +33 -0
  55. data/examples/rails/config/puma.rb +43 -0
  56. data/examples/rails/config/routes.rb +6 -0
  57. data/examples/rails/config/schema.json +431 -0
  58. data/examples/rails/config/spring.rb +6 -0
  59. data/examples/rails/config/storage.yml +34 -0
  60. data/examples/rails/config.ru +6 -0
  61. data/examples/rails/db/migrate/20230730163722_create_posts.rb +8 -0
  62. data/examples/rails/db/migrate/20230730163741_create_comments.rb +9 -0
  63. data/examples/rails/db/migrate/20230730164121_add_fields_to_post.rb +6 -0
  64. data/examples/rails/db/migrate/20230730164214_add_fields_to_comments.rb +6 -0
  65. data/examples/rails/db/schema.rb +30 -0
  66. data/examples/rails/db/seeds.rb +7 -0
  67. data/examples/rails/lib/tasks/.keep +0 -0
  68. data/examples/rails/log/.keep +0 -0
  69. data/examples/rails/public/robots.txt +1 -0
  70. data/examples/rails/spec/models/comment_spec.rb +5 -0
  71. data/examples/rails/spec/models/post_spec.rb +5 -0
  72. data/examples/rails/spec/rails_helper.rb +63 -0
  73. data/examples/rails/spec/requests/comments_spec.rb +127 -0
  74. data/examples/rails/spec/requests/posts_spec.rb +127 -0
  75. data/examples/rails/spec/routing/comments_routing_spec.rb +30 -0
  76. data/examples/rails/spec/routing/posts_routing_spec.rb +30 -0
  77. data/examples/rails/spec/spec_helper.rb +94 -0
  78. data/examples/rails/storage/.keep +0 -0
  79. data/examples/rails/test/channels/application_cable/connection_test.rb +11 -0
  80. data/examples/rails/test/controllers/.keep +0 -0
  81. data/examples/rails/test/fixtures/files/.keep +0 -0
  82. data/examples/rails/test/integration/.keep +0 -0
  83. data/examples/rails/test/mailers/.keep +0 -0
  84. data/examples/rails/test/models/.keep +0 -0
  85. data/examples/rails/test/test_helper.rb +13 -0
  86. data/examples/rails/tmp/.keep +0 -0
  87. data/examples/rails/tmp/pids/.keep +0 -0
  88. data/examples/rails/vendor/.keep +0 -0
  89. data/firetail.gemspec +8 -1
  90. data/lib/backend.rb +34 -0
  91. data/lib/background_tasks.rb +43 -0
  92. data/lib/case_sensitive_headers.rb +29 -0
  93. data/lib/firetail/version.rb +1 -1
  94. data/lib/firetail.rb +264 -1
  95. data/lib/generators/firetail/install/templates/README +15 -0
  96. data/lib/generators/firetail/install/templates/firetail.yml +2 -0
  97. data/lib/generators/firetail/install/templates/schema.json +108 -0
  98. data/lib/generators/firetail/install_generator.rb +26 -0
  99. data/lib/railtie.rb +29 -0
  100. metadata +169 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97b28bec62c224d4517dfbe9acae7fbe5346eef7f037b34d74b087019b137114
4
- data.tar.gz: 20af8b16b0049f5a34c678e615868ecfc692a74c22dffa7070c485efeb9626a9
3
+ metadata.gz: d72650eb852608c74233aa661dc8e0f900654e068769e6c09c29de37682e9642
4
+ data.tar.gz: 3538cbdb1c798756553b73921bbab9b3a7ab076b3b3c91b3a7b6e0142bbf7a7a
5
5
  SHA512:
6
- metadata.gz: 59aaf80d74a4e40558ab2f029e0ac295edd2b0b250f05c1e8ee842f5404860f8afcd88d1a9f9eee91ac5746f0b723e17a5312696fb1ffc0a7d81f24f4e825e18
7
- data.tar.gz: 9726c187da5c76f2964223b6d2ef9034e4ba361b0d510175a775ebeff5663338952624b63bd396d41fc4f82e3d9cfde68fce0450470c5fe9e24ca284b0bad6d4
6
+ metadata.gz: 41dbd5ad76e2b78381794166cf9df5dae4c3f0afea1375fb3b4b47b6e1b5feb4bb01faa72e6749627f8e47170c92e68acc2af5ed3395d4f29f414ed4b0a5467c
7
+ data.tar.gz: e4cb860d75a1bf262e7a351595370db8746e1018dff7f745deb70ed11cc766840922042549a3f93112a6591803ddf9ec0c3f688c954844cbeb46cc50c6a52d11
@@ -0,0 +1,11 @@
1
+ ## Describe your changes
2
+
3
+ ## Issue ticket number and link
4
+
5
+ ## Checklist before requesting a review
6
+
7
+ - [ ] I have resolved any merge conflicts
8
+ - [ ] I have run tests locally and they pass
9
+ - [ ] I have linted and auto-formatted the code
10
+ - [ ] If there is new or changed functionality, I have added/updated the tests
11
+ - [ ] If there is new or changed functionality, I have added/updated the documentation
@@ -0,0 +1,40 @@
1
+ name: Main
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+
9
+ # https://help.github.com/en/articles/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix
10
+ strategy:
11
+ fail-fast: false
12
+ matrix:
13
+ # Uncomment ci_node_total and ci_node_index, ONLY if we have multiple tests
14
+ # and need to run it in parallel
15
+ # [n] - where the n is a number of parallel jobs you want to run your tests on.
16
+ # Use a higher number if you have slow tests to split them between more parallel jobs.
17
+ # Remember to update the value of the `ci_node_index` below to (0..n-1).
18
+ #ci_node_total: [8]
19
+ # Indexes for parallel jobs (starting from zero).
20
+ # E.g. use [0, 1] for 2 parallel jobs, [0, 1, 2] for 3 parallel jobs, etc.
21
+ #ci_node_index: [0, 1, 2, 3, 4, 5, 6, 7]
22
+ ruby-version: ['2.7', '3.0', '3.1']
23
+
24
+ env:
25
+ TZ: "Europe/Ireland"
26
+
27
+ steps:
28
+ - uses: actions/checkout@v2
29
+
30
+ - name: Set up Ruby
31
+ uses: ruby/setup-ruby@v1
32
+ with:
33
+ # Not needed with a .ruby-version file
34
+ ruby-version: 2.7
35
+ # runs 'bundle install' and caches installed gems automatically
36
+ bundler-cache: true
37
+
38
+ - name: Run tests
39
+ run: |
40
+ bundle exec rspec
data/.gitignore CHANGED
@@ -6,6 +6,34 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ *.gem
9
10
 
10
11
  # rspec failure tracking
11
12
  .rspec_status
13
+ /ext/target
14
+
15
+ # Ignore bundler config.
16
+ /examples/rails/.bundle
17
+
18
+ # Ignore the default SQLite database.
19
+ /example/rails/db/*.sqlite3
20
+ /db/*.sqlite3-*
21
+
22
+ # Ignore all logfiles and tempfiles.
23
+ /examples/rails/log/*
24
+ /examples/rails/tmp/*
25
+ !/examples/rails/log/.keep
26
+ !/examples/rails/tmp/.keep
27
+
28
+ # Ignore pidfiles, but keep the directory.
29
+ /examples/rails/tmp/pids/*
30
+ !/examples/rails/tmp/pids/
31
+ !/examples/rails/tmp/pids/.keep
32
+
33
+ # Ignore uploaded files in development.
34
+ /examples/rails/storage/*
35
+ !/examples/rails/storage/.keep
36
+ /examples/rails/.byebug_history
37
+
38
+ # Ignore master key for decrypting credentials and more.
39
+ /examples/rails/config/master.key
data/Gemfile CHANGED
@@ -2,3 +2,8 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in firetail.gemspec
4
4
  gemspec
5
+
6
+ gem 'rack', "~> 3.0.6.1"
7
+ group :development, :test do
8
+ gem "webmock", "~> 3.18"
9
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,74 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ firetail (0.0.1.pre.alpha)
5
+ async (~> 1.30.3)
6
+ committee_firetail (~> 5.0.0)
7
+ json-schema (~> 3.0.0)
8
+ jwt (~> 2.5)
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ addressable (2.8.1)
14
+ public_suffix (>= 2.0.2, < 6.0)
15
+ async (1.30.3)
16
+ console (~> 1.10)
17
+ nio4r (~> 2.3)
18
+ timers (~> 4.1)
19
+ committee_firetail (5.0.0)
20
+ json_schema (~> 0.14, >= 0.14.3)
21
+ openapi_parser_firetail (~> 1.0)
22
+ rack (>= 1.5)
23
+ console (1.19.0)
24
+ fiber-annotation
25
+ fiber-local
26
+ crack (0.4.5)
27
+ rexml
28
+ diff-lcs (1.5.0)
29
+ fiber-annotation (0.2.0)
30
+ fiber-local (1.0.0)
31
+ hashdiff (1.0.1)
32
+ json-schema (3.0.0)
33
+ addressable (>= 2.8)
34
+ json_schema (0.21.0)
35
+ jwt (2.7.1)
36
+ nio4r (2.5.9)
37
+ openapi_parser_firetail (1.0.0)
38
+ jwt (~> 2.5)
39
+ public_suffix (5.0.1)
40
+ rack (3.0.6.1)
41
+ rake (13.0.6)
42
+ rexml (3.2.5)
43
+ rspec (3.12.0)
44
+ rspec-core (~> 3.12.0)
45
+ rspec-expectations (~> 3.12.0)
46
+ rspec-mocks (~> 3.12.0)
47
+ rspec-core (3.12.0)
48
+ rspec-support (~> 3.12.0)
49
+ rspec-expectations (3.12.1)
50
+ diff-lcs (>= 1.2.0, < 2.0)
51
+ rspec-support (~> 3.12.0)
52
+ rspec-mocks (3.12.1)
53
+ diff-lcs (>= 1.2.0, < 2.0)
54
+ rspec-support (~> 3.12.0)
55
+ rspec-support (3.12.0)
56
+ timers (4.3.5)
57
+ webmock (3.18.1)
58
+ addressable (>= 2.8.0)
59
+ crack (>= 0.3.2)
60
+ hashdiff (>= 0.4.0, < 2.0.0)
61
+
62
+ PLATFORMS
63
+ ruby
64
+
65
+ DEPENDENCIES
66
+ bundler (~> 2.0)
67
+ firetail!
68
+ rack (~> 3.0.6.1)
69
+ rake (~> 13.0)
70
+ rspec (~> 3.0)
71
+ webmock (~> 3.18)
72
+
73
+ BUNDLED WITH
74
+ 2.1.4
data/LICENSE ADDED
@@ -0,0 +1,165 @@
1
+ GNU LESSER GENERAL PUBLIC LICENSE
2
+ Version 3, 29 June 2007
3
+
4
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
5
+ Everyone is permitted to copy and distribute verbatim copies
6
+ of this license document, but changing it is not allowed.
7
+
8
+
9
+ This version of the GNU Lesser General Public License incorporates
10
+ the terms and conditions of version 3 of the GNU General Public
11
+ License, supplemented by the additional permissions listed below.
12
+
13
+ 0. Additional Definitions.
14
+
15
+ As used herein, "this License" refers to version 3 of the GNU Lesser
16
+ General Public License, and the "GNU GPL" refers to version 3 of the GNU
17
+ General Public License.
18
+
19
+ "The Library" refers to a covered work governed by this License,
20
+ other than an Application or a Combined Work as defined below.
21
+
22
+ An "Application" is any work that makes use of an interface provided
23
+ by the Library, but which is not otherwise based on the Library.
24
+ Defining a subclass of a class defined by the Library is deemed a mode
25
+ of using an interface provided by the Library.
26
+
27
+ A "Combined Work" is a work produced by combining or linking an
28
+ Application with the Library. The particular version of the Library
29
+ with which the Combined Work was made is also called the "Linked
30
+ Version".
31
+
32
+ The "Minimal Corresponding Source" for a Combined Work means the
33
+ Corresponding Source for the Combined Work, excluding any source code
34
+ for portions of the Combined Work that, considered in isolation, are
35
+ based on the Application, and not on the Linked Version.
36
+
37
+ The "Corresponding Application Code" for a Combined Work means the
38
+ object code and/or source code for the Application, including any data
39
+ and utility programs needed for reproducing the Combined Work from the
40
+ Application, but excluding the System Libraries of the Combined Work.
41
+
42
+ 1. Exception to Section 3 of the GNU GPL.
43
+
44
+ You may convey a covered work under sections 3 and 4 of this License
45
+ without being bound by section 3 of the GNU GPL.
46
+
47
+ 2. Conveying Modified Versions.
48
+
49
+ If you modify a copy of the Library, and, in your modifications, a
50
+ facility refers to a function or data to be supplied by an Application
51
+ that uses the facility (other than as an argument passed when the
52
+ facility is invoked), then you may convey a copy of the modified
53
+ version:
54
+
55
+ a) under this License, provided that you make a good faith effort to
56
+ ensure that, in the event an Application does not supply the
57
+ function or data, the facility still operates, and performs
58
+ whatever part of its purpose remains meaningful, or
59
+
60
+ b) under the GNU GPL, with none of the additional permissions of
61
+ this License applicable to that copy.
62
+
63
+ 3. Object Code Incorporating Material from Library Header Files.
64
+
65
+ The object code form of an Application may incorporate material from
66
+ a header file that is part of the Library. You may convey such object
67
+ code under terms of your choice, provided that, if the incorporated
68
+ material is not limited to numerical parameters, data structure
69
+ layouts and accessors, or small macros, inline functions and templates
70
+ (ten or fewer lines in length), you do both of the following:
71
+
72
+ a) Give prominent notice with each copy of the object code that the
73
+ Library is used in it and that the Library and its use are
74
+ covered by this License.
75
+
76
+ b) Accompany the object code with a copy of the GNU GPL and this license
77
+ document.
78
+
79
+ 4. Combined Works.
80
+
81
+ You may convey a Combined Work under terms of your choice that,
82
+ taken together, effectively do not restrict modification of the
83
+ portions of the Library contained in the Combined Work and reverse
84
+ engineering for debugging such modifications, if you also do each of
85
+ the following:
86
+
87
+ a) Give prominent notice with each copy of the Combined Work that
88
+ the Library is used in it and that the Library and its use are
89
+ covered by this License.
90
+
91
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
92
+ document.
93
+
94
+ c) For a Combined Work that displays copyright notices during
95
+ execution, include the copyright notice for the Library among
96
+ these notices, as well as a reference directing the user to the
97
+ copies of the GNU GPL and this license document.
98
+
99
+ d) Do one of the following:
100
+
101
+ 0) Convey the Minimal Corresponding Source under the terms of this
102
+ License, and the Corresponding Application Code in a form
103
+ suitable for, and under terms that permit, the user to
104
+ recombine or relink the Application with a modified version of
105
+ the Linked Version to produce a modified Combined Work, in the
106
+ manner specified by section 6 of the GNU GPL for conveying
107
+ Corresponding Source.
108
+
109
+ 1) Use a suitable shared library mechanism for linking with the
110
+ Library. A suitable mechanism is one that (a) uses at run time
111
+ a copy of the Library already present on the user's computer
112
+ system, and (b) will operate properly with a modified version
113
+ of the Library that is interface-compatible with the Linked
114
+ Version.
115
+
116
+ e) Provide Installation Information, but only if you would otherwise
117
+ be required to provide such information under section 6 of the
118
+ GNU GPL, and only to the extent that such information is
119
+ necessary to install and execute a modified version of the
120
+ Combined Work produced by recombining or relinking the
121
+ Application with a modified version of the Linked Version. (If
122
+ you use option 4d0, the Installation Information must accompany
123
+ the Minimal Corresponding Source and Corresponding Application
124
+ Code. If you use option 4d1, you must provide the Installation
125
+ Information in the manner specified by section 6 of the GNU GPL
126
+ for conveying Corresponding Source.)
127
+
128
+ 5. Combined Libraries.
129
+
130
+ You may place library facilities that are a work based on the
131
+ Library side by side in a single library together with other library
132
+ facilities that are not Applications and are not covered by this
133
+ License, and convey such a combined library under terms of your
134
+ choice, if you do both of the following:
135
+
136
+ a) Accompany the combined library with a copy of the same work based
137
+ on the Library, uncombined with any other library facilities,
138
+ conveyed under the terms of this License.
139
+
140
+ b) Give prominent notice with the combined library that part of it
141
+ is a work based on the Library, and explaining where to find the
142
+ accompanying uncombined form of the same work.
143
+
144
+ 6. Revised Versions of the GNU Lesser General Public License.
145
+
146
+ The Free Software Foundation may publish revised and/or new versions
147
+ of the GNU Lesser General Public License from time to time. Such new
148
+ versions will be similar in spirit to the present version, but may
149
+ differ in detail to address new problems or concerns.
150
+
151
+ Each version is given a distinguishing version number. If the
152
+ Library as you received it specifies that a certain numbered version
153
+ of the GNU Lesser General Public License "or any later version"
154
+ applies to it, you have the option of following the terms and
155
+ conditions either of that published version or of any later version
156
+ published by the Free Software Foundation. If the Library as you
157
+ received it does not specify a version number of the GNU Lesser
158
+ General Public License, you may choose any version of the GNU Lesser
159
+ General Public License ever published by the Free Software Foundation.
160
+
161
+ If the Library as you received it specifies that a proxy can decide
162
+ whether future versions of the GNU Lesser General Public License shall
163
+ apply, that proxy's public statement of acceptance of any version is
164
+ permanent authorization for you to choose that version for the
165
+ Library.
data/LICENSE.txt CHANGED
@@ -1,21 +1,165 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2022 Muhammad Nuzaihan
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
1
+ GNU LESSER GENERAL PUBLIC LICENSE
2
+ Version 3, 29 June 2007
3
+
4
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
5
+ Everyone is permitted to copy and distribute verbatim copies
6
+ of this license document, but changing it is not allowed.
7
+
8
+
9
+ This version of the GNU Lesser General Public License incorporates
10
+ the terms and conditions of version 3 of the GNU General Public
11
+ License, supplemented by the additional permissions listed below.
12
+
13
+ 0. Additional Definitions.
14
+
15
+ As used herein, "this License" refers to version 3 of the GNU Lesser
16
+ General Public License, and the "GNU GPL" refers to version 3 of the GNU
17
+ General Public License.
18
+
19
+ "The Library" refers to a covered work governed by this License,
20
+ other than an Application or a Combined Work as defined below.
21
+
22
+ An "Application" is any work that makes use of an interface provided
23
+ by the Library, but which is not otherwise based on the Library.
24
+ Defining a subclass of a class defined by the Library is deemed a mode
25
+ of using an interface provided by the Library.
26
+
27
+ A "Combined Work" is a work produced by combining or linking an
28
+ Application with the Library. The particular version of the Library
29
+ with which the Combined Work was made is also called the "Linked
30
+ Version".
31
+
32
+ The "Minimal Corresponding Source" for a Combined Work means the
33
+ Corresponding Source for the Combined Work, excluding any source code
34
+ for portions of the Combined Work that, considered in isolation, are
35
+ based on the Application, and not on the Linked Version.
36
+
37
+ The "Corresponding Application Code" for a Combined Work means the
38
+ object code and/or source code for the Application, including any data
39
+ and utility programs needed for reproducing the Combined Work from the
40
+ Application, but excluding the System Libraries of the Combined Work.
41
+
42
+ 1. Exception to Section 3 of the GNU GPL.
43
+
44
+ You may convey a covered work under sections 3 and 4 of this License
45
+ without being bound by section 3 of the GNU GPL.
46
+
47
+ 2. Conveying Modified Versions.
48
+
49
+ If you modify a copy of the Library, and, in your modifications, a
50
+ facility refers to a function or data to be supplied by an Application
51
+ that uses the facility (other than as an argument passed when the
52
+ facility is invoked), then you may convey a copy of the modified
53
+ version:
54
+
55
+ a) under this License, provided that you make a good faith effort to
56
+ ensure that, in the event an Application does not supply the
57
+ function or data, the facility still operates, and performs
58
+ whatever part of its purpose remains meaningful, or
59
+
60
+ b) under the GNU GPL, with none of the additional permissions of
61
+ this License applicable to that copy.
62
+
63
+ 3. Object Code Incorporating Material from Library Header Files.
64
+
65
+ The object code form of an Application may incorporate material from
66
+ a header file that is part of the Library. You may convey such object
67
+ code under terms of your choice, provided that, if the incorporated
68
+ material is not limited to numerical parameters, data structure
69
+ layouts and accessors, or small macros, inline functions and templates
70
+ (ten or fewer lines in length), you do both of the following:
71
+
72
+ a) Give prominent notice with each copy of the object code that the
73
+ Library is used in it and that the Library and its use are
74
+ covered by this License.
75
+
76
+ b) Accompany the object code with a copy of the GNU GPL and this license
77
+ document.
78
+
79
+ 4. Combined Works.
80
+
81
+ You may convey a Combined Work under terms of your choice that,
82
+ taken together, effectively do not restrict modification of the
83
+ portions of the Library contained in the Combined Work and reverse
84
+ engineering for debugging such modifications, if you also do each of
85
+ the following:
86
+
87
+ a) Give prominent notice with each copy of the Combined Work that
88
+ the Library is used in it and that the Library and its use are
89
+ covered by this License.
90
+
91
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
92
+ document.
93
+
94
+ c) For a Combined Work that displays copyright notices during
95
+ execution, include the copyright notice for the Library among
96
+ these notices, as well as a reference directing the user to the
97
+ copies of the GNU GPL and this license document.
98
+
99
+ d) Do one of the following:
100
+
101
+ 0) Convey the Minimal Corresponding Source under the terms of this
102
+ License, and the Corresponding Application Code in a form
103
+ suitable for, and under terms that permit, the user to
104
+ recombine or relink the Application with a modified version of
105
+ the Linked Version to produce a modified Combined Work, in the
106
+ manner specified by section 6 of the GNU GPL for conveying
107
+ Corresponding Source.
108
+
109
+ 1) Use a suitable shared library mechanism for linking with the
110
+ Library. A suitable mechanism is one that (a) uses at run time
111
+ a copy of the Library already present on the user's computer
112
+ system, and (b) will operate properly with a modified version
113
+ of the Library that is interface-compatible with the Linked
114
+ Version.
115
+
116
+ e) Provide Installation Information, but only if you would otherwise
117
+ be required to provide such information under section 6 of the
118
+ GNU GPL, and only to the extent that such information is
119
+ necessary to install and execute a modified version of the
120
+ Combined Work produced by recombining or relinking the
121
+ Application with a modified version of the Linked Version. (If
122
+ you use option 4d0, the Installation Information must accompany
123
+ the Minimal Corresponding Source and Corresponding Application
124
+ Code. If you use option 4d1, you must provide the Installation
125
+ Information in the manner specified by section 6 of the GNU GPL
126
+ for conveying Corresponding Source.)
127
+
128
+ 5. Combined Libraries.
129
+
130
+ You may place library facilities that are a work based on the
131
+ Library side by side in a single library together with other library
132
+ facilities that are not Applications and are not covered by this
133
+ License, and convey such a combined library under terms of your
134
+ choice, if you do both of the following:
135
+
136
+ a) Accompany the combined library with a copy of the same work based
137
+ on the Library, uncombined with any other library facilities,
138
+ conveyed under the terms of this License.
139
+
140
+ b) Give prominent notice with the combined library that part of it
141
+ is a work based on the Library, and explaining where to find the
142
+ accompanying uncombined form of the same work.
143
+
144
+ 6. Revised Versions of the GNU Lesser General Public License.
145
+
146
+ The Free Software Foundation may publish revised and/or new versions
147
+ of the GNU Lesser General Public License from time to time. Such new
148
+ versions will be similar in spirit to the present version, but may
149
+ differ in detail to address new problems or concerns.
150
+
151
+ Each version is given a distinguishing version number. If the
152
+ Library as you received it specifies that a certain numbered version
153
+ of the GNU Lesser General Public License "or any later version"
154
+ applies to it, you have the option of following the terms and
155
+ conditions either of that published version or of any later version
156
+ published by the Free Software Foundation. If the Library as you
157
+ received it does not specify a version number of the GNU Lesser
158
+ General Public License, you may choose any version of the GNU Lesser
159
+ General Public License ever published by the Free Software Foundation.
160
+
161
+ If the Library as you received it specifies that a proxy can decide
162
+ whether future versions of the GNU Lesser General Public License shall
163
+ apply, that proxy's public statement of acceptance of any version is
164
+ permanent authorization for you to choose that version for the
165
+ Library.
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # Firetail
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/firetail`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ Welcome to the Firetail Ruby gem. Before we start, ensure that your ruby version is 2.7 or greater. We do not support ruby versions lower than 2.7.
6
4
 
7
5
  ## Installation
8
6
 
@@ -14,15 +12,31 @@ gem 'firetail'
14
12
 
15
13
  And then execute:
16
14
 
17
- $ bundle
15
+ $ `bundle install`
16
+
17
+ Or install it yourself with:
18
+
19
+ $ `gem install firetail`
20
+
21
+ Finally, if you are using Rails, run:
22
+
23
+ $ `rails g firetail:install`
24
+
25
+ This will configure your Rails app to use Firetail gem as middleware and generate configuration and json schema template.
26
+
27
+ Finally, if you are using Rails, run:
18
28
 
19
- Or install it yourself as:
29
+ $ rails g firetail:install
20
30
 
21
- $ gem install firetail
31
+ This will configure your Rails app to use the Firetail gem as middleware, and generate configuration and json schema templates.
22
32
 
23
33
  ## Usage
24
34
 
25
- TODO: Write usage instructions here
35
+ 1. Setup your Firetail key by setting environment variable `FIRETAIL_API_KEY`
36
+ 2. Setup Firetail backend URL by setting the environment variable `FIRETAIL_URL`
37
+ **NOTE** For US based customers, use `https://api.logging.us-east-2.prod.us.firetail.app` for `FIRETAIL_URL`. By default `FIRETAIL_URL` uses **EUROPE(EU)** servers.
38
+ 3. Update `config/schema.json` to match your API endpoints.
39
+ 4. That's it! Happy coding!
26
40
 
27
41
  ## Development
28
42
 
@@ -32,12 +46,12 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
32
46
 
33
47
  ## Contributing
34
48
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/firetail. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
49
+ Bug reports and pull requests are welcome on GitHub at https://github.com/firetail-io/firetail-ruby-lib. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
36
50
 
37
51
  ## License
38
52
 
39
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
53
+ The gem is available as open source under the terms of the LGPL License.
40
54
 
41
55
  ## Code of Conduct
42
56
 
43
- Everyone interacting in the Firetail project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/firetail/blob/master/CODE_OF_CONDUCT.md).
57
+ Everyone interacting in the Firetail project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/firetail-io/firetail-ruby-lib/blob/main/CODE_OF_CONDUCT.md).
@@ -0,0 +1,8 @@
1
+ # See https://git-scm.com/docs/gitattributes for more about git attribute files.
2
+
3
+ # Mark the database schema as having been generated.
4
+ db/schema.rb linguist-generated
5
+
6
+
7
+ # Mark any vendored files as having been vendored.
8
+ vendor/* linguist-vendored
@@ -0,0 +1,31 @@
1
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile '~/.gitignore_global'
6
+
7
+ # Ignore bundler config.
8
+ /.bundle
9
+
10
+ # Ignore the default SQLite database.
11
+ /db/*.sqlite3
12
+ /db/*.sqlite3-*
13
+
14
+ # Ignore all logfiles and tempfiles.
15
+ /log/*
16
+ /tmp/*
17
+ !/log/.keep
18
+ !/tmp/.keep
19
+
20
+ # Ignore pidfiles, but keep the directory.
21
+ /tmp/pids/*
22
+ !/tmp/pids/
23
+ !/tmp/pids/.keep
24
+
25
+ # Ignore uploaded files in development.
26
+ /storage/*
27
+ !/storage/.keep
28
+ .byebug_history
29
+
30
+ # Ignore master key for decrypting credentials and more.
31
+ /config/master.key
@@ -0,0 +1 @@
1
+ --require spec_helper
@@ -0,0 +1 @@
1
+ ruby-2.7.7