logster 2.20.1 → 3.0.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 (142) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -92
  3. data/README.md +29 -14
  4. data/assets/javascript/main-B82IoCiW.js +1 -0
  5. data/assets/javascript/modules-4-12-BHA4lR2U.js +1 -0
  6. data/assets/javascript/vendor.js +11 -5260
  7. data/assets/logster-config.json +18 -0
  8. data/assets/manifest.json +23 -0
  9. data/assets/stylesheets/main-CgAFFyi8.css +1 -0
  10. data/lib/logster/configuration.rb +1 -0
  11. data/lib/logster/group.rb +2 -2
  12. data/lib/logster/message.rb +4 -4
  13. data/lib/logster/middleware/reporter.rb +34 -3
  14. data/lib/logster/middleware/viewer.rb +205 -33
  15. data/lib/logster/rails/railtie.rb +4 -20
  16. data/lib/logster/redis_store.rb +0 -2
  17. data/lib/logster/version.rb +1 -1
  18. data/lib/logster.rb +1 -1
  19. metadata +17 -186
  20. data/.github/workflows/ci.yml +0 -140
  21. data/.gitignore +0 -3
  22. data/.rubocop.yml +0 -8
  23. data/.streerc +0 -2
  24. data/Gemfile +0 -10
  25. data/Guardfile +0 -10
  26. data/Rakefile +0 -27
  27. data/assets/javascript/.gitkeep +0 -0
  28. data/assets/javascript/chunk.524.c3042190e39d148beaf9.js +0 -22
  29. data/assets/javascript/chunk.582.695dcbfb11a784b110cd.js +0 -22
  30. data/assets/javascript/chunk.747.a730c497582bb6742a6e.js +0 -579
  31. data/assets/javascript/chunk.761.64949d89942c829e5c1b.js +0 -1213
  32. data/assets/javascript/client-app.js +0 -1390
  33. data/assets/stylesheets/.gitkeep +0 -0
  34. data/assets/stylesheets/client-app.css +0 -1
  35. data/assets/stylesheets/vendor.css +0 -1
  36. data/build_client_app.sh +0 -10
  37. data/client-app/.editorconfig +0 -19
  38. data/client-app/.ember-cli +0 -9
  39. data/client-app/.eslintignore +0 -20
  40. data/client-app/.eslintrc +0 -10
  41. data/client-app/.gitignore +0 -23
  42. data/client-app/.prettierignore +0 -21
  43. data/client-app/.prettierrc +0 -1
  44. data/client-app/.template-lintrc.js +0 -10
  45. data/client-app/.watchmanconfig +0 -3
  46. data/client-app/README.md +0 -56
  47. data/client-app/app/app.js +0 -12
  48. data/client-app/app/components/actions-menu.js +0 -50
  49. data/client-app/app/components/back-to-site-link.js +0 -9
  50. data/client-app/app/components/back-trace.js +0 -153
  51. data/client-app/app/components/env-tab.js +0 -68
  52. data/client-app/app/components/message-info.js +0 -151
  53. data/client-app/app/components/message-row.js +0 -46
  54. data/client-app/app/components/page-nav.js +0 -42
  55. data/client-app/app/components/panel-resizer.js +0 -108
  56. data/client-app/app/components/patterns-list.js +0 -142
  57. data/client-app/app/components/tab-contents.js +0 -23
  58. data/client-app/app/components/tabbed-section.js +0 -45
  59. data/client-app/app/components/time-formatter.js +0 -36
  60. data/client-app/app/controllers/index.js +0 -269
  61. data/client-app/app/controllers/show.js +0 -39
  62. data/client-app/app/helpers/logster-url.js +0 -12
  63. data/client-app/app/helpers/or.js +0 -7
  64. data/client-app/app/index.html +0 -31
  65. data/client-app/app/initializers/app-init.js +0 -71
  66. data/client-app/app/lib/decorators.js +0 -13
  67. data/client-app/app/lib/preload.js +0 -43
  68. data/client-app/app/lib/utilities.js +0 -230
  69. data/client-app/app/models/group.js +0 -34
  70. data/client-app/app/models/message-collection.js +0 -303
  71. data/client-app/app/models/message.js +0 -128
  72. data/client-app/app/models/pattern-item.js +0 -32
  73. data/client-app/app/resolver.js +0 -3
  74. data/client-app/app/router.js +0 -13
  75. data/client-app/app/routes/index.js +0 -64
  76. data/client-app/app/routes/settings.js +0 -32
  77. data/client-app/app/routes/show.js +0 -16
  78. data/client-app/app/services/events.js +0 -4
  79. data/client-app/app/styles/app.css +0 -829
  80. data/client-app/app/templates/application.hbs +0 -1
  81. data/client-app/app/templates/components/actions-menu.hbs +0 -31
  82. data/client-app/app/templates/components/back-to-site-link.hbs +0 -8
  83. data/client-app/app/templates/components/back-trace.hbs +0 -15
  84. data/client-app/app/templates/components/env-tab.hbs +0 -10
  85. data/client-app/app/templates/components/message-info.hbs +0 -86
  86. data/client-app/app/templates/components/message-row.hbs +0 -32
  87. data/client-app/app/templates/components/page-nav.hbs +0 -37
  88. data/client-app/app/templates/components/panel-resizer.hbs +0 -3
  89. data/client-app/app/templates/components/patterns-list.hbs +0 -78
  90. data/client-app/app/templates/components/tabbed-section.hbs +0 -18
  91. data/client-app/app/templates/components/time-formatter.hbs +0 -1
  92. data/client-app/app/templates/index.hbs +0 -165
  93. data/client-app/app/templates/settings.hbs +0 -47
  94. data/client-app/app/templates/show.hbs +0 -13
  95. data/client-app/config/ember-cli-update.json +0 -18
  96. data/client-app/config/environment.js +0 -51
  97. data/client-app/config/icons.js +0 -28
  98. data/client-app/config/optional-features.json +0 -6
  99. data/client-app/config/targets.js +0 -26
  100. data/client-app/ember-cli-build.js +0 -28
  101. data/client-app/package.json +0 -76
  102. data/client-app/preload-json-manager.rb +0 -35
  103. data/client-app/public/assets/images/icon_144x144.png +0 -0
  104. data/client-app/public/assets/images/icon_64x64.png +0 -0
  105. data/client-app/testem.js +0 -23
  106. data/client-app/tests/index.html +0 -41
  107. data/client-app/tests/integration/components/back-to-site-link-test.js +0 -20
  108. data/client-app/tests/integration/components/back-trace-test.js +0 -138
  109. data/client-app/tests/integration/components/env-tab-test.js +0 -220
  110. data/client-app/tests/integration/components/message-info-test.js +0 -122
  111. data/client-app/tests/integration/components/patterns-list-test.js +0 -76
  112. data/client-app/tests/test-helper.js +0 -12
  113. data/client-app/tests/unit/controllers/index-test.js +0 -77
  114. data/client-app/tests/unit/controllers/show-test.js +0 -12
  115. data/client-app/tests/unit/routes/index-test.js +0 -11
  116. data/client-app/tests/unit/routes/show-test.js +0 -11
  117. data/client-app/yarn.lock +0 -9905
  118. data/gemfiles/rails_6.1.gemfile +0 -12
  119. data/gemfiles/rails_7.0.gemfile +0 -12
  120. data/gemfiles/rails_7.1.gemfile +0 -9
  121. data/gemfiles/rails_7.2.gemfile +0 -9
  122. data/logster.gemspec +0 -43
  123. data/test/dummy/config/application.rb +0 -31
  124. data/test/dummy/config/boot.rb +0 -6
  125. data/test/dummy/config/environment.rb +0 -6
  126. data/test/examples/test_sidekiq_reporter_example.rb +0 -47
  127. data/test/fake_data/Gemfile +0 -6
  128. data/test/fake_data/generate.rb +0 -23
  129. data/test/logster/middleware/test_reporter.rb +0 -84
  130. data/test/logster/middleware/test_viewer.rb +0 -495
  131. data/test/logster/test_base_store.rb +0 -224
  132. data/test/logster/test_cache.rb +0 -39
  133. data/test/logster/test_defer_logger.rb +0 -36
  134. data/test/logster/test_group.rb +0 -92
  135. data/test/logster/test_ignore_pattern.rb +0 -42
  136. data/test/logster/test_logger.rb +0 -177
  137. data/test/logster/test_message.rb +0 -269
  138. data/test/logster/test_pattern.rb +0 -144
  139. data/test/logster/test_railtie.rb +0 -21
  140. data/test/logster/test_redis_rate_limiter.rb +0 -246
  141. data/test/logster/test_redis_store.rb +0 -1165
  142. data/test/test_helper.rb +0 -44
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df1b755e756b30297ee48fe00456a874cf3b786a824afdb11ae42e42382db0e8
4
- data.tar.gz: 33327bda522fba9743bbf871b700aa68f86df7ef27182d4d1dc0ac11dfa53a6d
3
+ metadata.gz: eb3cace958418f67569d2d5847ae6abf08903a8a5d5114e9472e894a22379e1d
4
+ data.tar.gz: 9eb299f2e3e48cb69286f3d04b51beb6ef02a7c5f01c2bf9b1c88420b1ac85a9
5
5
  SHA512:
6
- metadata.gz: 752bcff5c4e7473f141a7fcc3bfdfc64c2aa8e42027f92861e941de4acb1386139f4f993399f51a10ba804d7318bd2a41831f7bae8ddf09a1b2fa61d14c82c48
7
- data.tar.gz: 3c860e2cc631814d131117a8e77c2c4bcde76b86149988a482b6dba4b076cbff166b63921756ba85236ea3dbcaf660e61682d3560c16ce4065178c1407321d63
6
+ metadata.gz: bf7c85b2e804442dd43e64c50b8bd178a85d70746b7ee1d27cbe75842d0afbbffb711a87e14739ab2d899e1a22e8150e68ea440279b74cbacbabba33b7037355
7
+ data.tar.gz: 58d5fc04bc4a430a1f8f56d1c51b9be1447224517ddecc934abd0ad3d5d131fccc595d13c30ae19c9aaa68f4c9db2f8791a4a1ac1d2fa6ddc57b19a17a384f17
data/CHANGELOG.md CHANGED
@@ -1,156 +1,143 @@
1
1
  # CHANGELOG
2
2
 
3
- - 2025-02-06: 2.20.1
3
+ - 2026-10-19: 3.0.0
4
+
5
+ - BREAKING: Require Ruby 3.3 or newer; support is now focused on maintained Ruby 3.3, 3.4, and 4.0 releases
6
+ - BREAKING: Drop support for Rails versions before 8.0; Rails 8.0 and 8.1 are now supported
7
+ - BREAKING: Target Rack 3.1–3.2, redis-rb 6.x, and Redis Open Source 8.10
8
+ - BREAKING: Require Node.js 24 and pnpm 10 for frontend development, replace Yarn with pnpm, and drop Internet Explorer 11 support
9
+ - SECURITY: Require the documented HTTP method and `X-Requested-With: XMLHttpRequest` header for mutating viewer endpoints; JavaScript error reports additionally accept browser-verified same-origin requests so `navigator.sendBeacon` remains supported; reject cross-site requests using `Origin` and `Sec-Fetch-Site`
10
+ - SECURITY: Add the optional `Logster.config.authorize_request` defense-in-depth callback for viewer routes
11
+ - SECURITY: Add no-store, referrer, content-type, and framing response headers, tighten the viewer Content Security Policy, and remove externally hosted Google Fonts
12
+ - UX: Improve grouping-pattern creation for grouped or unrelated messages, surface submission errors, and prevent duplicate submissions while saving
13
+ - UX: Add success and failure feedback when copying messages, support messages without environment data, and fall back for browsers without the Clipboard API
14
+ - UX: Drive the log search from the `search` query parameter so a search can be linked to and reloaded
15
+ - FIX: Keep protect and unprotect actions in sync with request results, restoring their previous state when a request fails
16
+ - FIX: Correct pattern settings state handling for plain JSON arrays and newly created or removed patterns
17
+ - DEV: Upgrade the client from Ember 3.28 to Ember 7.2 and serve the scripts and stylesheets listed in a manifest generated by the Ember build
18
+ - DEV: Convert the client components and route templates to Glimmer GJS
19
+ - DEV: Add a unified `bundle exec rake dev` workflow that installs dependencies, starts the backend and frontend, waits for readiness, and opens the app
20
+ - DEV: Add a reusable sample-data loader and richer development fixtures, and run the website tests in CI
21
+ - DEV: Ship only the runtime files and the built frontend assets in the gem, and verify the packaged assets before a release
22
+
23
+ - 2026-04-29: 2.21.0
24
+ - FEATURE: Allow editing grouping pattern before submitting
4
25
 
26
+ - 2025-02-06: 2.20.1
5
27
  - FIX: Don't break search when providing invalid regex characters
6
28
 
7
29
  - 2024-07-05: 2.20.0
8
-
9
30
  - Dropped support for Ruby 3.0
10
31
  - Add `Logster::Logger#subscribe` which allows subscribing to log events from `Logster::Logger`.
11
32
 
12
33
  - 2024-03-12: 2.19.1
13
-
14
34
  - FIX: Don’t truncate backtrace on copying
15
35
 
16
36
  - 2024-02-28: 2.19.0
17
-
18
37
  - FIX: Add compatibility with Rails 7.1+
19
38
 
20
39
  - 2024-02-19: 2.18.1
21
-
22
40
  - UX: backlink in dark mode has a dark background
23
41
 
24
42
  - 2024-02-15: 2.18.0
25
-
26
43
  - FEATURE: Implement a default Content-Security-Policy
27
44
 
28
45
  - 2024-02-15: 2.17.1
29
-
30
46
  - UX: fixed top menu when backlink to the site exists
31
47
 
32
48
  - 2024-02-15: 2.17.0
33
-
34
49
  - FEATURE: backlink to site
35
50
 
36
51
  - 2024-01-19: 2.16.0
37
-
38
52
  - FEATURE: Add inline grouping pattern creation
39
53
 
40
54
  - 2024-01-16: 2.15.0
41
-
42
55
  - FEATURE: Add loading spinner
43
56
 
44
57
  - 2024-01-15: 2.14.0
45
-
46
58
  - FEATURE: Stop grouping logs with different messages
47
59
 
48
60
  - 2023-11-01: 2.13.1
49
-
50
61
  - FIX: Solve/remove buttons on 'share' page
51
62
 
52
63
  - 2023-10-03: 2.13.0
53
-
54
64
  - FEATURE: Format messages with Logster::Logger#formatter before storing
55
65
 
56
66
  - 2023-03-10: 2.12.2
57
-
58
67
  - FIX: Don't throw on non-gem backtrace lines
59
68
 
60
69
  - 2023-03-10: 2.12.1
61
70
  Note: 2.12.0 was yanked due to a release process error
62
-
63
71
  - DEV: Upgrade to Ember 3.28
64
72
 
65
73
  - 2023-01-30: 2.11.4
66
-
67
74
  - DEV: Various dependencies upgrade
68
75
  - FIX: Switch the `/messages.json` endpoint from `GET` to `POST`
69
76
 
70
77
  - 2022-08-25: 2.11.3
71
-
72
78
  - DEV: Avoid deprecation warning in Redis 4.8 (#166)
73
79
 
74
80
  - 2022-04-28: 2.11.2
75
-
76
81
  - FIX: store override level in thread local storage (Truffle Ruby compatibility)
77
82
 
78
83
  - 2022-04-21: 2.11.1
79
-
80
84
  - FIX: Redis pipelining deprecation (#159)
81
85
 
82
86
  - 2022-03-12: 2.11.0
83
-
84
87
  - FEATURE: Improve support for logging error objects (#153)
85
88
 
86
89
  - 2021-11-26: 2.10.1
87
-
88
90
  - UX: More dark-mode related changes
89
91
 
90
92
  - 2021-11-26: 2.10.0
91
-
92
93
  - FEATURE: Introduce dark mode
93
94
 
94
95
  - 2021-10-27: 2.9.8
95
-
96
96
  - FIX: We weren't properly memoizing the hostname
97
97
 
98
98
  - 2021-07-01: 2.9.7
99
-
100
99
  - FEATURE: Optionally use full hostname
101
100
 
102
101
  - 2021-02-19: 2.9.6
103
-
104
102
  - UX: Make `Warn` level visible by default
105
103
 
106
104
  - 2021-01-21: 2.9.5
107
-
108
105
  - FIX: Stop encoding errors when converting Message objects to JSON (#128)
109
106
  - DEV: Bump dependencies
110
107
 
111
108
  - 2020-09-01: 2.9.4
112
-
113
109
  - FEATURE: Merge messages differing only by numbers (#118)
114
110
  - DEV: Bump dependencies
115
111
  - UX: Turn severities below `Error` off by default and remember changes using localStorage (#125)
116
112
 
117
113
  - 2020-08-20: 2.9.3
118
-
119
114
  - FIX: fix code that causes warning from recent redis gem
120
115
 
121
116
  - 2020-08-11: 2.9.2
122
-
123
117
  - FIX: `report_js_error` incorrectly denying logs when Redis#exists returns integer
124
118
 
125
119
  - 2020-07-20: 2.9.1
126
-
127
120
  - FIX: Missing application backtrace in chained loggers.
128
121
 
129
122
  - 2020-06-11: 2.9.0
130
-
131
123
  - FEATURE: Allows JS errors to specify a log severity
132
124
  - DEV: Several dependencies upgrades
133
125
  - FIX: Don't search if the phrase hasn't changed
134
126
  - UX: Distinguish the value of the current env from the values of other envs in a merged message
135
127
 
136
128
  - 2020-03-30: 2.8.0
137
-
138
129
  - FEATURE: Upgrade icons to Font Awesome 5
139
130
 
140
131
  - 2020-03-03: 2.7.1
141
-
142
132
  - FIX: Stop env mutation to allow all chained loggers to have the same env (#110)
143
133
 
144
134
  - 2020-02-26: 2.7.0
145
-
146
135
  - FEATURE: Make log message max length configurable and bump the default to 2000 (#109)
147
136
 
148
137
  - 2020-02-17: 2.6.3
149
-
150
138
  - FIX: Respect redis namespace when fetching env using LUA
151
139
 
152
140
  - 2020-02-09: 2.6.2
153
-
154
141
  - FIX: Regression with rendering single env when `env_expandable_keys` config is present
155
142
  - DEV: Fix Ember deprecations in tests
156
143
  - DEV: Add more tests to env rendering
@@ -159,11 +146,9 @@
159
146
  - FIX: Fetch env when navigating through grouped messages
160
147
 
161
148
  - 2020-02-07: 2.6.1
162
-
163
149
  - FIX: Fetch env when row is selected to allow copy to work on Firefox
164
150
 
165
151
  - 2020-02-07: 2.6.0
166
-
167
152
  - DEV: Bump handlebars from 4.1.2 to 4.5.3 in /client-app (#102)
168
153
  - FEATURE: Linkify backtrace lines to github (#104)
169
154
  - UX: Keep the 50 most recent envs rather than the first 50 (#103). Also introduces new config options `max_env_bytes` and `max_env_count_per_message`.
@@ -172,7 +157,6 @@
172
157
  - DEV: Upgrade Ember to 3.15 and remove jQuery and lodash as dependencies (#107)
173
158
 
174
159
  - 2019-12-13: 2.5.1
175
-
176
160
  - DEV: Bump puma from 4.2.1 to 4.3.1 in /website (#100)
177
161
  - FIX: Don't include messages that were removed from groups due to max size limit
178
162
  - FIX: loadingEnv is an attribute of model
@@ -180,7 +164,6 @@
180
164
  - UX: Group count attribute should be a long-running number of errors, not just the number of errors the group currently contains
181
165
 
182
166
  - 2019-12-12: 2.5.0
183
-
184
167
  - DEV: Update to latest version of gems
185
168
  - FIX: when rate limiting return an object responding to each
186
169
  - FEATURE: Expose the search phrase in query params
@@ -188,11 +171,9 @@
188
171
  - FEATURE: Custom grouping patterns
189
172
 
190
173
  - 2019-10-28: 2.4.2
191
-
192
174
  - FIX: wrong number of arguments when adding message using a block (#98)
193
175
 
194
176
  - 2019-10-17: 2.4.1
195
-
196
177
  - PERF: Debounce search field so it doesn't fire a search query at every keystroke.
197
178
  - PERF: Disallow search terms that are fewer than 2 characters long.
198
179
  - PERF: Bypass refresh cycle if previous cycle hasn't finished.
@@ -200,63 +181,50 @@
200
181
  - PERF: Cap message size to 60,000 bytes by default.
201
182
 
202
183
  - 2019-10-10: 2.4.0
203
-
204
184
  - FEATURE: Allow having retroactive affect when adding suppression patterns
205
185
  - DEV: Bump JS dependencies
206
186
 
207
187
  - 2019-10-08: 2.3.3
208
-
209
188
  - FEATURE: keep track of message timestamp when it's merged into another message
210
189
 
211
190
  - 2019-08-20: 2.3.2
212
-
213
191
  - FEATURE: automatic 1 minute rate limiting for js error reporting per IP
214
192
 
215
193
  - 2019-08-15: 2.3.1
216
-
217
194
  - DEV: upgrade Ember to 3.8 and jQuery to 3.4.1 (#84)
218
195
  - FIX: properly escape string ignore pattern (#88)
219
196
  - FIX: scrub params if they have invalid encoding (#92)
220
197
 
221
198
  - 2019-03-26: 2.3.0
222
-
223
199
  - FEATURE: track count of suppressed logs for each pattern
224
200
 
225
201
  - 2019-03-19: 2.2.0
226
-
227
202
  - FEATURE: custom suppression patterns via UI
228
203
  - UX: auto expand env keys when list length is <= 3
229
204
 
230
205
  - 2019-03-14: Unreleased
231
-
232
206
  - FIX: Logster message options missing when base logger is a sub-class of
233
207
  `Logster::Logger`
234
208
 
235
209
  - 2019-02-21: Version 2.1.2
236
-
237
210
  - FEATURE: allow certain env keys to be expandable via `Logster.config.env_expandable_keys.push(:key, :another_key)`. See https://github.com/discourse/logster/pull/81 for more info
238
211
 
239
212
  - 2019-02-21: Version 2.1.1
240
-
241
213
  - FEATURE: allow defer logger to be disabled as Ruby 2.5.3 can segfault with defer logger due to a bug in Ruby. To disable run `Logster::Scheduler.disable`
242
214
 
243
215
  - 2019-02-13: Version 2.1.0
244
-
245
216
  - FEATURE/DEV: adds a defer logger that will do logging asynchronously only in dev environments. It should speed things up a little in dev.
246
217
 
247
218
  - 2019-02-05: Version 2.0.1
248
-
249
219
  - FIX: env line height issue on iOS
250
220
 
251
221
  - 2019-01-17: Version 2.0.0.pre
252
-
253
222
  - FIX: don't merge any new env samples if there are 50 samples (1.4.0.pre regression)
254
223
  - UX: make env navigation controls stick to the top when scrolled
255
224
  - PERF: store env samples separately from the rest of message data
256
225
  - DEV: Rubocop
257
226
 
258
227
  - 2019-01-09: Version 1.4.0.pre
259
-
260
228
  - FEATURE: allow navigation through merged errors
261
229
  - FEATURE: search should look at env
262
230
  - FIX: deselect message if new filtering doesn't include selected message
@@ -264,85 +232,67 @@
264
232
  - FIX: hide "load more" when there are no more messages and filters/search applied
265
233
 
266
234
  - 2018-12-30: Version 1.3.4
267
-
268
235
  - FIX: linear-gradient issue on iOS
269
236
  - FIX: actions menu should have highest z-index
270
237
 
271
238
  - 2018-12-26: Version 1.3.3
272
-
273
239
  - Fix: fix double lines logs when date is too long
274
240
 
275
241
  - 2018-12-25: Version 1.3.2
276
-
277
242
  - UX: improve usability on mobile
278
243
 
279
244
  - 2018-11-09: Version 1.3.1
280
-
281
245
  - Feature: auto scrub invalid messages reported to logger
282
246
 
283
247
  - 2018-11-09: Version 1.3.0
284
-
285
248
  - Feature: upgrade Ember to 3.5.1
286
249
  - Feature: remove inline JS for CSP compliance
287
250
 
288
251
  - 2018-08-13: Version 1.2.10
289
-
290
252
  - Feature: expose chained loggers in Logster::Logger
291
253
 
292
254
  - 2017-10-27: Version 1.2.8
293
-
294
255
  - Fix: `Logster::Middleware::DebugExceptions` is passed a request in Rails 5 instead of the env.
295
256
 
296
257
  - 2017-01-30: Version 1.2.7
297
-
298
258
  - Feature: Add override_level to Logster::Logger allowing for threadsafe logger override
299
259
 
300
260
  - 2016-10-24: Version 1.2.6
301
-
302
261
  - Fix: Check if `Rails.env` is defined when using Logster in a none Rails project.
303
262
 
304
263
  - 2016-07-11: Version 1.2.5
305
-
306
264
  - Fix: Chained `Logster::Logger` logger now receives backtrace as well.
307
265
 
308
266
  - 2016-05-05: Version 1.2.4
309
-
310
267
  - Fix: XSS in log message show if attacker can inject script into ENV
311
268
 
312
269
  - 2016-05-05: Version 1.2.3
313
-
314
270
  - Fix: clear_all now also clears rate limits
315
271
  - Fix: protect against corrupt data in redis during clear
316
272
 
317
273
  - 2016-03-22: Version 1.2.2
318
-
319
274
  - Fix: Conflicting attributes and method name for `Logster::RedisStore#rate_limits`.
320
275
  - Fix: Rate limit checker was tracking limits too early. It should only track when a message has been bumped or saved.
321
276
 
322
277
  - 2016-03-22: Version 1.2.1
323
-
324
278
  - Feature: Add method to retrieve current rate from rate limiters.
325
279
  - Feature: Make `RedisStore#rate_limits` readable.
326
280
  - Feature: Make `RedisRateLimiter#callback` and `RedisRateLimiter#duration` readable.
327
281
 
328
282
  - 2016-03-18: Version 1.2.0
329
-
330
283
  - Fix: Move Redis configuration into RedisStore.
331
284
  - Feature: Allow `RedisStore#redis_prefix` to either be a String or a Proc.
332
285
 
333
286
  - 2016-02-11: Version 1.1.1
334
-
335
287
  - Feature: Error rate can now be tracked in one minute and one hour buckets.
336
288
 
337
289
  - 2015-11-27: Version 1.0.1
338
-
339
290
  - New assets and logster logo
340
291
  - Added favicon
341
292
  - Added title
342
293
  - Use rails logger instead of invoking store
343
294
 
344
295
  - 2015-08-18: Version 0.9.9
345
-
346
296
  - This marks the largest release of Logster to date, it has been in production use for quite a while, hence the version bump.
347
297
  - Feature: automatically group errors in production mode, can be manually controlled via Logster.config.allow_grouping
348
298
  - Feature: automatically track application version, can be manually controlled via Logster.config.application_version
@@ -359,46 +309,36 @@
359
309
  - Fix: protect/unprotect redirected to show page
360
310
 
361
311
  - 2015-06-16: Version 0.8.3
362
-
363
312
  - Chained loggers now respect chain ignore
364
313
  - Add hostname and process_id to env on all messages
365
314
 
366
315
  - 2015-06-10: Version 0.8.2
367
-
368
316
  - Add hostname and process_id to env on all messages
369
317
 
370
318
  - 2015-05-01: Version 0.8.1
371
-
372
319
  - Don't crash out logging routine if redis is down or stderr is closed
373
320
 
374
321
  - 2015-04-16: Version 0.8.0
375
-
376
322
  - Improve formatting of /show page
377
323
  - Big version bump cause it is quite stable
378
324
 
379
325
  - 2015-02-27: Version 0.1.7
380
-
381
326
  - Fix invalid request on ?test
382
327
 
383
328
  - 2014-08-05: Version 0.1.3
384
-
385
329
  - Automatically include ignore filter
386
330
 
387
331
  - 2014-08-13: Version 0.1.6
388
-
389
332
  - Simplify install process
390
333
  - Fix crash on 404 in /logs dir
391
334
 
392
335
  - 2014-08-10: Version 0.1.5
393
-
394
336
  - Fix crash in Rails 3
395
337
 
396
338
  - 2014-08-08: Version 0.1.4
397
-
398
339
  - Fix crash in ignore filter
399
340
 
400
341
  - 2014-07-17: Version 0.1.1
401
-
402
342
  - Refactored report method into base_store.rb - will be easier to make a new log store
403
343
  - Add link in UI to clear all (non-protected) logs
404
344
  - Add example of submitting logs from Sidekiq jobs
@@ -406,42 +346,33 @@
406
346
  - Render hashes provided via Logster.add_to_env
407
347
 
408
348
  - 2014-07-04: Version 0.0.12
409
-
410
349
  - Feature: Able to share logs, at /logs/show/(hexdigits)
411
350
  - Add protecting logs, so they aren't deleted when old (for use with sharing)
412
351
  - Restructured Redis data model
413
352
 
414
353
  - 2014-05-24: Version 0.0.10
415
-
416
354
  - Correct context for error reporting
417
355
  - Clean up backtraces of reported exceptions
418
356
 
419
357
  - 2014-05-13: Version 0.0.9
420
-
421
358
  - Stray debugger message removed, add window.location logging to js
422
359
 
423
360
  - 2014-05-13: Version 0.0.8
424
-
425
361
  - Fix packaging binstubs by mistake
426
362
 
427
363
  - 2014-05-13: Version 0.0.7
428
-
429
364
  - Add support for javascript exception logging
430
365
 
431
366
  - 2014-05-12: Version 0.0.6
432
-
433
367
  - Add referer to env
434
368
 
435
369
  - 2014-05-12: Version 0.0.5
436
-
437
370
  - Feature: We now log basic rack environment with the messages
438
371
  - Add your own with Logster.add_to_env(env, key, value)
439
372
 
440
373
  - 2014-05-07: Version 0.0.4
441
-
442
374
  - Feature: Ability to ignore patterns with Logster.store.ignore = [/regex/]
443
375
  - Feature: Store backtraces, allow people to view them in the GUI
444
376
 
445
377
  - 2014-05-07: Started changelog :)
446
-
447
378
  - Report params in env tab
data/README.md CHANGED
@@ -1,12 +1,10 @@
1
- ![logster logo](https://raw.githubusercontent.com/discourse/logster/master/website/images/logo-logster-cropped-small.png)
1
+ ![logster logo](https://raw.githubusercontent.com/discourse/logster/main/website/images/logo-logster-cropped-small.png)
2
2
 
3
3
  Logster is an embedded Ruby "exception reporting service" admins can view on live websites, at `http://example.com/logs`
4
4
 
5
5
  ## Interface
6
6
 
7
- ![Screenshot](https://raw.githubusercontent.com/discourse/logster/master/website/images/logster-screenshot.png)
8
-
9
- Play with a live demo at [logster.info/logs](http://logster.info/logs).
7
+ ![Screenshot](https://raw.githubusercontent.com/discourse/logster/main/website/images/logster-screenshot.png)
10
8
 
11
9
  ## Installation
12
10
 
@@ -27,7 +25,19 @@ constraints lambda { |req| req.session["admin"] } do
27
25
  end
28
26
  ```
29
27
 
30
- By default, logster will only run in development and production environments.
28
+ By default, Logster will only run in development and production environments.
29
+
30
+ ## Supported versions
31
+
32
+ Logster supports maintained release series only:
33
+
34
+ - Ruby 3.3, 3.4, and 4.0
35
+ - Rails 8.0 and 8.1
36
+ - Rack 3.1 and 3.2
37
+ - redis-rb 6.x
38
+ - Redis Open Source 8.10
39
+
40
+ Support for a release series ends when its upstream security support ends. Ruby head is also tested proactively, and the CI matrix is the source of truth for the combinations tested by Logster.
31
41
 
32
42
  To run logster in other environments, in `config/application.rb`
33
43
 
@@ -40,6 +50,8 @@ Logster.set_environments([:development, :staging, :production])
40
50
  Logster can be configured using `Logster.config`:
41
51
 
42
52
  - `Logster.config.application_version`: set to a unique identifier denoting version of your app. The "solve" function takes this version into account when suppressing errors.
53
+ - `Logster.config.authorize_request` : Optional defense-in-depth authorization callback. It receives the Rack environment and must return a truthy value to allow access. The application must still mount Logster behind its normal administrator authentication constraint.
54
+
43
55
  - `Logster.config.enable_js_error_reporting` : enable js error reporting from clients
44
56
  - `Logster.config.rate_limit_error_reporting` : controls automatic 1 minute rate limiting for JS error reporting.
45
57
  - `Logster.config.web_title` : `<title>` tag for logster error page.
@@ -60,12 +72,16 @@ Logster can be configured using `Logster.config`:
60
72
 
61
73
  - `Logster.config.enable_backtrace_links` : Enable/disable the backtrace links feature.
62
74
 
63
- - `Logster.config.gems_dir` : The value of this config is `Gem.dir + "/gems/"` by default. You probably don't need to change this config, but it's available in case your app gems are installed in a different directory. An example where this config is needed is Logster [demo site](http://logster.info/logs/): [https://github.com/discourse/logster/blob/master/website/sample.rb#L77](https://github.com/discourse/logster/blob/master/website/sample.rb#L77).
75
+ - `Logster.config.gems_dir` : The value of this config is `Gem.dir + "/gems/"` by default. You probably don't need to change this config, but it's available in case your application gems are installed in a different directory.
64
76
 
65
77
  - `Logster.config.back_to_site_link_path` : Path for the backlink to site.
66
78
 
67
79
  - `Logster.config.back_to_site_link_text` : Text for the backlink to site.
68
80
 
81
+ ### HTTP endpoint security
82
+
83
+ Logster's supplied browser client sends mutating viewer requests with their required HTTP methods and the `X-Requested-With: XMLHttpRequest` header. Custom viewer integrations must do the same. JavaScript error reports may use that header or a browser-verified `Sec-Fetch-Site: same-origin` request, which allows same-origin `navigator.sendBeacon` reporting. Cross-site fetch metadata and mismatching origins from clients without same-origin fetch metadata are rejected. Mounting `Logster::Web` behind an administrator authentication constraint remains required; `authorize_request` can add a second authorization check inside the Rack application.
84
+
69
85
  ### Tracking Error Rate
70
86
 
71
87
  Logster allows you to register a callback when the rate of errors has exceeded
@@ -144,11 +160,10 @@ Logster UI is built using [Ember.js](http://emberjs.com/)
144
160
 
145
161
  1. Fork it ( https://github.com/discourse/logster/fork )
146
162
  2. Create your feature branch (`git checkout -b my-new-feature`)
147
- 3. Run `cd client-app && yarn install`
148
- 4. Run `cd website && bundle install`
149
- 5. In the root directory, run `bundle exec rake client_dev` to start Sinatra server (port 9292) and Ember server (port 4200). Use Ember server for hot reload for client code.
150
- 6. Visit `http://localhost:4200/logs/` (with trailing slash) to test the application. Reload `http://localhost:4200/report_error` to add sample log data.
151
- 7. Once you're done making changes, run `./build_client_app.sh` to make and copy a production build to the assets folder.
152
- 8. Commit your changes (`git commit -am 'Add some feature'`)
153
- 9. Push to the branch (`git push origin my-new-feature`)
154
- 10. Create a new Pull Request
163
+ 3. Run `bundle install`
164
+ 4. Run `bundle exec rake dev`. This installs any missing frontend and website dependencies, starts both development servers, and opens Logster in your browser.
165
+ 5. Visit `http://localhost:9292/report_error` to add sample log data. The Ember app at `http://localhost:4200/logs/` reloads automatically as you make frontend changes.
166
+ 6. Once you're done making changes, run `./build_client_app.sh` to make and copy a production build to the assets folder.
167
+ 7. Commit your changes (`git commit -am 'Add some feature'`)
168
+ 8. Push to the branch (`git push origin my-new-feature`)
169
+ 9. Create a new Pull Request