logster 2.11.2 → 2.11.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,7 +27,7 @@
27
27
  "@glimmer/component": "^1.0.0",
28
28
  "babel-eslint": "^10.1.0",
29
29
  "broccoli-asset-rev": "^3.0.0",
30
- "ember-auto-import": "^1.5.3",
30
+ "ember-auto-import": "^1.12.2",
31
31
  "ember-cli": "^3.15.0",
32
32
  "ember-cli-app-version": "^3.2.0",
33
33
  "ember-cli-babel": "^7.19.0",
@@ -58,6 +58,9 @@
58
58
  "edition": "octane"
59
59
  },
60
60
  "dependencies": {
61
- "moment": "~2.29.2"
61
+ "moment": "~2.29.4"
62
+ },
63
+ "overrides": {
64
+ "testem": "^3.9.0"
62
65
  }
63
66
  }
@@ -25,6 +25,6 @@ module('Unit | Controller | index', function (hooks) {
25
25
 
26
26
  assert.equal(controller.searchTerm, "tomtom", 'search sets search term');
27
27
  assert.equal(ajaxStub.firstCall.args[0], "/messages.json", "get messages");
28
- assert.deepEqual(ajaxStub.firstCall.args[1], {"data": {"filter": "5", "search": "tomtom"}}, "with correct terms");
28
+ assert.deepEqual(ajaxStub.firstCall.args[1], {"data": {"filter": "5", "search": "tomtom"}, "method": "POST"}, "with correct terms");
29
29
  });
30
30
  });
@@ -81,8 +81,11 @@ module Logster
81
81
 
82
82
  def self.hostname
83
83
  @hostname ||= begin
84
- command = (Logster.config.use_full_hostname ? `hostname -f` : `hostname`) rescue "<unknown>"
84
+ command = Logster.config.use_full_hostname ? `hostname -f` : `hostname`
85
85
  command.strip!
86
+ command
87
+ rescue
88
+ "<unknown>"
86
89
  end
87
90
  end
88
91
 
@@ -18,7 +18,7 @@ module Logster
18
18
  (@store = Logster.store) || raise(ArgumentError.new("store"))
19
19
 
20
20
  @assets_path = File.expand_path("../../../../assets", __FILE__)
21
- @fileserver = Rack::File.new(@assets_path)
21
+ @fileserver = Rack::Files.new(@assets_path)
22
22
  end
23
23
 
24
24
  def call(env)
@@ -33,7 +33,7 @@ module Logster
33
33
  if resource =~ /\.ico$|\.js$|\.png|\.handlebars$|\.css$|\.woff$|\.ttf$|\.woff2$|\.svg$|\.otf$|\.eot$/
34
34
  serve_file(env, resource)
35
35
 
36
- elsif resource.start_with?("/messages.json")
36
+ elsif resource.start_with?("/messages.json") && env[REQUEST_METHOD] == "POST"
37
37
  serve_messages(Rack::Request.new(env))
38
38
 
39
39
  elsif resource =~ /\/message\/([0-9a-f]+)$/
@@ -102,10 +102,10 @@ module Logster
102
102
  end
103
103
 
104
104
  if json
105
- [200, { "Content-Type" => "application/json; charset=utf-8" }, [message.to_json]]
105
+ [200, { "content-type" => "application/json; charset=utf-8" }, [message.to_json]]
106
106
  else
107
107
  preload = { "/show/#{key}" => message }
108
- [200, { "Content-Type" => "text/html; charset=utf-8" }, [body(preload)]]
108
+ [200, { "content-type" => "text/html; charset=utf-8" }, [body(preload)]]
109
109
  end
110
110
 
111
111
  elsif resource =~ /\/settings(\.json)?$/
@@ -128,9 +128,9 @@ module Logster
128
128
  grouping = Logster::GroupingPattern.find_all(raw: true).map do |pattern|
129
129
  { value: pattern }
130
130
  end
131
- [200, { "Content-Type" => "application/json; charset=utf-8" }, [JSON.generate(suppression: suppression, grouping: grouping)]]
131
+ [200, { "content-type" => "application/json; charset=utf-8" }, [JSON.generate(suppression: suppression, grouping: grouping)]]
132
132
  else
133
- [200, { "Content-Type" => "text/html; charset=utf-8" }, [body]]
133
+ [200, { "content-type" => "text/html; charset=utf-8" }, [body]]
134
134
  end
135
135
  elsif resource =~ /\/patterns\/([a-zA-Z0-9_]+)\.json$/
136
136
  unless Logster.config.enable_custom_patterns_via_ui
@@ -161,12 +161,12 @@ module Logster
161
161
  Logster.store.remove_ignore_count(pattern)
162
162
  [200, {}, ["OK"]]
163
163
  elsif resource == "/"
164
- [200, { "Content-Type" => "text/html; charset=utf-8" }, [body]]
164
+ [200, { "content-type" => "text/html; charset=utf-8" }, [body]]
165
165
  elsif resource =~ /\/fetch-env\/([0-9a-f]+)\.json$/
166
166
  key = $1
167
167
  env = Logster.store.get_env(key)
168
168
  if env
169
- [200, { "Content-Type" => "application/json; charset=utf-8" }, [JSON.generate(env)]]
169
+ [200, { "content-type" => "application/json; charset=utf-8" }, [JSON.generate(env)]]
170
170
  else
171
171
  not_found
172
172
  end
@@ -181,7 +181,7 @@ module Logster
181
181
  group.messages_keys.each { |k| Logster.store.solve(k) }
182
182
  [200, {}, []]
183
183
  elsif resource == '/development-preload.json' && ENV["LOGSTER_ENV"] == "development"
184
- [200, { "Content-Type" => "application/json; charset=utf-8" }, [JSON.generate(preloaded_data)]]
184
+ [200, { "content-type" => "application/json; charset=utf-8" }, [JSON.generate(preloaded_data)]]
185
185
  else
186
186
  not_found
187
187
  end
@@ -230,7 +230,7 @@ module Logster
230
230
  }
231
231
 
232
232
  json = JSON.generate(payload)
233
- [200, { "Content-Type" => "application/json" }, [json]]
233
+ [200, { "content-type" => "application/json" }, [json]]
234
234
  end
235
235
 
236
236
  def update_patterns(set_name, req)
@@ -258,7 +258,7 @@ module Logster
258
258
  return method_not_allowed(%w[POST PUT DELETE])
259
259
  end
260
260
 
261
- [200, { "Content-Type" => "application/json" }, [JSON.generate(pattern: record.to_s)]]
261
+ [200, { "content-type" => "application/json" }, [JSON.generate(pattern: record.to_s)]]
262
262
  rescue => err
263
263
  error_message = err.message
264
264
 
@@ -293,7 +293,7 @@ module Logster
293
293
  if Array === allowed_methods
294
294
  allowed_methods = allowed_methods.join(", ")
295
295
  end
296
- [405, { "Allow" => allowed_methods }, []]
296
+ [405, { "allow" => allowed_methods }, []]
297
297
  end
298
298
 
299
299
  def parse_regex(string)
@@ -318,11 +318,11 @@ module Logster
318
318
  end
319
319
 
320
320
  def insert_pattern(set_name, pattern)
321
- @redis.sadd(set_name, pattern)
321
+ @redis.sadd(set_name, [pattern])
322
322
  end
323
323
 
324
324
  def remove_pattern(set_name, pattern)
325
- @redis.srem(set_name, pattern)
325
+ @redis.srem(set_name, [pattern])
326
326
  end
327
327
 
328
328
  def get_patterns(set_name)
@@ -434,9 +434,9 @@ module Logster
434
434
  redis.hset(hash_key, message.key, message.to_json(exclude_env: true))
435
435
  push_env(message.key, message.env, redis: redis) if save_env
436
436
  if message.protected
437
- redis.sadd(protected_key, message.key)
437
+ redis.sadd(protected_key, [message.key])
438
438
  else
439
- redis.srem(protected_key, message.key)
439
+ redis.srem(protected_key, [message.key])
440
440
  end
441
441
  end
442
442
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Logster
4
- VERSION = "2.11.2"
4
+ VERSION = "2.11.4"
5
5
  end
@@ -43,23 +43,29 @@ class TestViewer < Minitest::Test
43
43
  end
44
44
 
45
45
  def test_search_raceguard_s
46
- response = request.get('/logsie/messages.json?search=searchkey')
46
+ response = request.post('/logsie/messages.json?search=searchkey')
47
47
  result = JSON.parse(response.body)
48
48
  assert_equal('searchkey', result['search'])
49
49
  end
50
50
 
51
51
  def test_search_raceguard_sr
52
- response = request.get('/logsie/messages.json?search=/regex/&regex_search=true')
52
+ response = request.post('/logsie/messages.json?search=/regex/&regex_search=true')
53
53
  result = JSON.parse(response.body)
54
54
  assert_equal('/regex/', result['search'])
55
55
  end
56
56
 
57
57
  def test_search_raceguard_f
58
- response = request.get("/logsie/messages.json?filter=0_1_2_3_4")
58
+ response = request.post("/logsie/messages.json?filter=0_1_2_3_4")
59
59
  result = JSON.parse(response.body)
60
60
  assert_equal([0, 1, 2, 3, 4], result['filter'])
61
61
  end
62
62
 
63
+ def test_search_does_not_respond_to_get_requests
64
+ response = request.get("/logsie/messages.json?filter=0_1_2_3_4")
65
+ assert_equal(404, response.status)
66
+ assert_equal("Not found", response.body)
67
+ end
68
+
63
69
  def test_regex_parse
64
70
  assert_equal(/hello/i, viewer.send(:parse_regex, '/hello/i'))
65
71
  end
@@ -304,7 +310,7 @@ class TestViewer < Minitest::Test
304
310
  ).each do |path|
305
311
  response = request.get(path)
306
312
  assert_equal(200, response.status)
307
- assert_equal('application/javascript', response.headers['Content-Type'])
313
+ assert_equal('application/javascript', response.headers['content-type'])
308
314
  end
309
315
  end
310
316
 
@@ -315,7 +321,7 @@ class TestViewer < Minitest::Test
315
321
  ).each do |path|
316
322
  response = request.get(path)
317
323
  assert_equal(200, response.status)
318
- assert_equal('text/css', response.headers['Content-Type'])
324
+ assert_equal('text/css', response.headers['content-type'])
319
325
  end
320
326
  end
321
327
 
@@ -335,7 +341,7 @@ class TestViewer < Minitest::Test
335
341
  Logster.store.clear_all
336
342
  env = { "b" => 1, "c" => 2 }
337
343
  msg = Logster.store.report(Logger::INFO, "test", "something hello", env: env)
338
- response = request.get("/logsie/messages.json")
344
+ response = request.post("/logsie/messages.json")
339
345
  assert_equal(200, response.status)
340
346
  messages = JSON.parse(response.body)["messages"]
341
347
  assert_equal(1, messages.size)
@@ -348,7 +354,7 @@ class TestViewer < Minitest::Test
348
354
  Logster.store.clear_all
349
355
  env = { "b" => 1, "c" => 2 }
350
356
  msg = Logster.store.report(Logger::INFO, "test", "something hello", env: env)
351
- response = request.get("/logsie/messages.json?search=something")
357
+ response = request.post("/logsie/messages.json?search=something")
352
358
  assert_equal(200, response.status)
353
359
  messages = JSON.parse(response.body)["messages"]
354
360
  assert_equal(1, messages.size)
@@ -387,7 +393,7 @@ class TestViewer < Minitest::Test
387
393
  %i[get head options].each do |m|
388
394
  response = request.public_send(m, "/logsie/solve-group", params: { regex: "/gotta be post/" })
389
395
  assert_equal(405, response.status)
390
- assert_equal("POST", response.headers["Allow"])
396
+ assert_equal("POST", response.headers["allow"])
391
397
  end
392
398
  latest = Logster.store.latest
393
399
  assert_equal(1, latest.size)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logster
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.2
4
+ version: 2.11.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-28 00:00:00.000000000 Z
11
+ date: 2023-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler