ndr_error 2.3.4 → 2.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -9
- data/app/helpers/ndr_error/application_helper.rb +0 -5
- data/app/helpers/ndr_error/errors_helper.rb +14 -14
- data/app/views/layouts/ndr_error/ndr_error.html.erb +4 -9
- data/app/views/ndr_error/errors/edit.html.erb +1 -1
- data/app/views/ndr_error/errors/index.html.erb +6 -7
- data/app/views/ndr_error/errors/show.html.erb +5 -5
- data/lib/ndr_error/version.rb +1 -1
- metadata +69 -11
- data/SECURITY.md +0 -35
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2a3df3ca931e154b2ad12097ab5725021d6aa1d3bcb3b61706459258d54084c6
|
|
4
|
+
data.tar.gz: 471325de64342030d9e7088eb27bf803dbcce0163aae2a95bbac7ad2ba6a7df5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6a36f65267a128ab83d5eeaf4b836ea70508c89b30c2661f07bb6398ed78351506a632f4b794de621707bc9ca16abdc27d00e044188e4dfd26234986e7610ed6
|
|
7
|
+
data.tar.gz: f0968ff0236b079e0513ee841d3010f4c3135d6931e0f5cb7339471b74729a2b76e7a7707de425d16b0952a50ebda856dd2d5f54ce3f171234b7069d702a72e7
|
data/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
|
-
|
|
2
|
+
+* no unreleased changes
|
|
3
3
|
|
|
4
|
-
## 2.
|
|
5
|
-
###
|
|
6
|
-
*
|
|
7
|
-
|
|
8
|
-
## 2.3.3 / 2025-11-24
|
|
9
|
-
### Fixed
|
|
10
|
-
* Support Ruby 3.4, Rails 8.0 [backported from v2.4.3]
|
|
11
|
-
* Fix ruby 3.4 frozen string literal warnings [backported from v2.4.3]
|
|
4
|
+
## 2.4.0 / 2025-01-31
|
|
5
|
+
### Changed
|
|
6
|
+
* New views with bootstrap 5 styles
|
|
7
|
+
* Switch to bootstrap-icons as glyphicon no longer available in bootstrap 5
|
|
12
8
|
|
|
13
9
|
## 2.3.2 / 2024-11-21
|
|
14
10
|
### Fixed
|
|
@@ -2,11 +2,6 @@ module NdrError
|
|
|
2
2
|
# Application-wide helpers.
|
|
3
3
|
# TODO: await ndr_ui gem!
|
|
4
4
|
module ApplicationHelper
|
|
5
|
-
# Bootstrap icon tag.
|
|
6
|
-
def glyphicon_tag(type)
|
|
7
|
-
content_tag(:span, '', class: "glyphicon glyphicon-#{type}")
|
|
8
|
-
end
|
|
9
|
-
|
|
10
5
|
# Pagination helper for will_paginate:
|
|
11
6
|
def pagination_summary_for(collection)
|
|
12
7
|
page = collection.current_page
|
|
@@ -11,7 +11,7 @@ module NdrError
|
|
|
11
11
|
|
|
12
12
|
error.backtrace.map do |line|
|
|
13
13
|
css_classes = 'trace-item'
|
|
14
|
-
css_classes
|
|
14
|
+
css_classes << ' stack-only' unless highlighting.include?(line)
|
|
15
15
|
|
|
16
16
|
content_tag(:span, line, class: css_classes)
|
|
17
17
|
end
|
|
@@ -56,25 +56,25 @@ module NdrError
|
|
|
56
56
|
bootstrap_list_link_to hash + ' - ' + text, error_fingerprint_path(print)
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
def ticket_link_for(fingerprint, small = false)
|
|
60
|
-
text =
|
|
61
|
-
css = 'btn btn-
|
|
62
|
-
css
|
|
59
|
+
def ticket_link_for(fingerprint, small = false) # rubocop:disable Style/OptionalBooleanParameter
|
|
60
|
+
text = "#{bootstrap_icon_tag('asterisk', :bi)} View ticket"
|
|
61
|
+
css = 'btn btn-outline-secondary'
|
|
62
|
+
css << ' btn-xs' if small
|
|
63
63
|
|
|
64
64
|
url = fingerprint.ticket_url
|
|
65
65
|
link_to(text, /^http/i =~ url ? url : "http://#{url}", class: css)
|
|
66
66
|
end
|
|
67
67
|
|
|
68
68
|
def edit_button_for(fingerprint)
|
|
69
|
-
css = 'btn btn-
|
|
70
|
-
text =
|
|
69
|
+
css = 'btn btn-outline-secondary'
|
|
70
|
+
text = "#{bootstrap_icon_tag('pencil', :bi)} Edit Ticket"
|
|
71
71
|
|
|
72
72
|
link_to(text, edit_error_fingerprint_path(fingerprint), class: css)
|
|
73
73
|
end
|
|
74
74
|
|
|
75
75
|
def purge_button_for(fingerprint)
|
|
76
76
|
css = 'btn btn-danger'
|
|
77
|
-
text =
|
|
77
|
+
text = "#{bootstrap_icon_tag('trash-fill', :bi)} Purge"
|
|
78
78
|
|
|
79
79
|
options = {
|
|
80
80
|
'method' => :delete,
|
|
@@ -86,18 +86,18 @@ module NdrError
|
|
|
86
86
|
end
|
|
87
87
|
|
|
88
88
|
def previous_button_for(error)
|
|
89
|
-
css = 'btn btn-
|
|
90
|
-
css
|
|
91
|
-
text =
|
|
89
|
+
css = 'btn btn-outline-secondary'
|
|
90
|
+
css << ' disabled' if error.nil?
|
|
91
|
+
text = bootstrap_icon_tag('chevron-left', :bi)
|
|
92
92
|
path = error.nil? ? '#' : error_fingerprint_path(error.error_fingerprint, log_id: error)
|
|
93
93
|
|
|
94
94
|
link_to(text, path, class: css)
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
def next_button_for(error)
|
|
98
|
-
css = 'btn btn-
|
|
99
|
-
css
|
|
100
|
-
text =
|
|
98
|
+
css = 'btn btn-outline-secondary'
|
|
99
|
+
css << ' disabled' if error.nil?
|
|
100
|
+
text = bootstrap_icon_tag('chevron-right', :bi)
|
|
101
101
|
path = error.nil? ? '#' : error_fingerprint_path(error.error_fingerprint, log_id: error)
|
|
102
102
|
|
|
103
103
|
link_to(text, path, class: css)
|
|
@@ -8,19 +8,14 @@
|
|
|
8
8
|
</head>
|
|
9
9
|
<body class="bootstrap">
|
|
10
10
|
|
|
11
|
-
<div class="navbar navbar-
|
|
11
|
+
<div class="navbar navbar-expand-lg fixed-top bg-body-tertiary" role="navigation">
|
|
12
12
|
<div class="container-fluid">
|
|
13
|
-
<!-- Brand and toggle get grouped for better mobile display -->
|
|
14
13
|
<div class="navbar-header">
|
|
15
|
-
<button
|
|
16
|
-
<span class="
|
|
17
|
-
<span class="icon-bar"></span>
|
|
18
|
-
<span class="icon-bar"></span>
|
|
19
|
-
<span class="icon-bar"></span>
|
|
14
|
+
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#menubar" aria-controls="menubar" aria-expanded="false" aria-label="Toggle navigation">
|
|
15
|
+
<span class="navbar-toggler-icon"></span>
|
|
20
16
|
</button>
|
|
21
|
-
|
|
22
17
|
<%= link_to '« Back to App'.html_safe, '/', class: "navbar-brand" %>
|
|
23
|
-
<
|
|
18
|
+
<span class="navbar-text">Error Logging by NDR</span>
|
|
24
19
|
</div>
|
|
25
20
|
</div>
|
|
26
21
|
</div>
|
|
@@ -16,5 +16,5 @@
|
|
|
16
16
|
</div>
|
|
17
17
|
|
|
18
18
|
<%= form.submit 'Update', class: 'btn btn-primary' %>
|
|
19
|
-
<%= link_to 'Cancel', error_fingerprint_path(@fingerprint), class: 'btn btn-
|
|
19
|
+
<%= link_to 'Cancel', error_fingerprint_path(@fingerprint), class: 'btn btn-outline-secondary' %>
|
|
20
20
|
<% end %>
|
|
@@ -5,16 +5,14 @@
|
|
|
5
5
|
%>
|
|
6
6
|
|
|
7
7
|
<div class="row">
|
|
8
|
-
<div id="search_form_container" class="col-md-4
|
|
8
|
+
<div id="search_form_container" class="col-md-4 offset-md-8">
|
|
9
9
|
<%= form_tag(error_fingerprints_path, method: :get) do %>
|
|
10
10
|
<div class="input-group">
|
|
11
11
|
<% if @keywords.any? %>
|
|
12
|
-
<%= link_to
|
|
12
|
+
<%= link_to bootstrap_icon_tag(:'list-task', :bi) + ' ' + bootstrap_icon_tag(:'arrow-left-circle-fill', :bi), error_fingerprints_path, class: 'btn btn-info' %>
|
|
13
13
|
<% end %>
|
|
14
14
|
<%= text_field_tag :q, @keywords.join(', '), class: 'form-control search-query' %>
|
|
15
|
-
<
|
|
16
|
-
<button type="submit" class="btn btn-default"><%= glyphicon_tag('search') %></button>
|
|
17
|
-
</span>
|
|
15
|
+
<button type="submit" class="btn btn-outline-secondary"><%= bootstrap_icon_tag(:search, :bi) %></button>
|
|
18
16
|
</div>
|
|
19
17
|
<% end %>
|
|
20
18
|
</div>
|
|
@@ -45,7 +43,7 @@
|
|
|
45
43
|
<%= latest_user_for(fingerprint, @keywords) %>
|
|
46
44
|
</td>
|
|
47
45
|
<td>
|
|
48
|
-
<div class="
|
|
46
|
+
<div class="float-end">
|
|
49
47
|
<%= ticket_link_for(fingerprint, true) if fingerprint.ticket_url.present? %>
|
|
50
48
|
</div>
|
|
51
49
|
|
|
@@ -57,7 +55,8 @@
|
|
|
57
55
|
</tbody>
|
|
58
56
|
</table>
|
|
59
57
|
|
|
60
|
-
<span class="
|
|
58
|
+
<span class="float-end text-muted"><%= pagination_summary_for(@fingerprints) %></span>
|
|
59
|
+
<%# TODO: use bootstrap_will_paginate %>
|
|
61
60
|
<%= will_paginate(@fingerprints) %>
|
|
62
61
|
</div>
|
|
63
62
|
</div>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<hr />
|
|
9
9
|
<div class="clearfix">
|
|
10
|
-
<div class="
|
|
10
|
+
<div class="float-end">
|
|
11
11
|
<div class="btn-group">
|
|
12
12
|
<%= ticket_link_for(@fingerprint) if @fingerprint.ticket_url.present? %>
|
|
13
13
|
<%= edit_button_for(@fingerprint) if user_can_edit_errors? %>
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<%= previous_button_for(@error.previous) %>
|
|
23
23
|
|
|
24
24
|
<div class="btn-group">
|
|
25
|
-
<a class="btn btn-
|
|
25
|
+
<a class="btn btn-outline-secondary dropdown-toggle" data-toggle="dropdown" href="#">
|
|
26
26
|
<%= pluralize(@error.similar_errors.length - 1, 'Similar Error') %> Stored
|
|
27
27
|
<span class="caret"></span>
|
|
28
28
|
</a>
|
|
@@ -39,13 +39,13 @@
|
|
|
39
39
|
|
|
40
40
|
<% if @fingerprint.causal_error_fingerprint %>
|
|
41
41
|
<div class="btn-group">
|
|
42
|
-
<%= link_to bootstrap_icon_tag('arrow-up') + ' View Cause', error_fingerprint_path(@fingerprint.causal_error_fingerprint), class: 'btn btn-
|
|
42
|
+
<%= link_to bootstrap_icon_tag('arrow-up') + ' View Cause', error_fingerprint_path(@fingerprint.causal_error_fingerprint), class: 'btn btn-outline-secondary' %>
|
|
43
43
|
</div>
|
|
44
44
|
<% end %>
|
|
45
45
|
|
|
46
46
|
<% if @fingerprint.caused_error_fingerprints.any? %>
|
|
47
47
|
<div class="btn-group">
|
|
48
|
-
<a class="btn btn-
|
|
48
|
+
<a class="btn btn-outline-secondary dropdown-toggle" data-toggle="dropdown" href="#">
|
|
49
49
|
<%= pluralize(@fingerprint.caused_error_fingerprints.length, 'Downstream Error') %> Stored
|
|
50
50
|
<span class="caret"></span>
|
|
51
51
|
</a>
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
<% end %>
|
|
118
118
|
|
|
119
119
|
<h4>
|
|
120
|
-
<small class="
|
|
120
|
+
<small class="float-end"><%= check_box_tag :toggle_app_trace_only %> only app trace?</small>
|
|
121
121
|
Backtrace:
|
|
122
122
|
</h4>
|
|
123
123
|
<% if (highlighted_trace = highlighted_trace_for(@error)).present? %>
|
data/lib/ndr_error/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ndr_error
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- NCRS Development Team
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2025-01-31 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: rails
|
|
@@ -15,20 +16,62 @@ dependencies:
|
|
|
15
16
|
requirements:
|
|
16
17
|
- - ">="
|
|
17
18
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: '
|
|
19
|
+
version: '6.1'
|
|
19
20
|
- - "<"
|
|
20
21
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: '
|
|
22
|
+
version: '7.3'
|
|
22
23
|
type: :runtime
|
|
23
24
|
prerelease: false
|
|
24
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
26
|
requirements:
|
|
26
27
|
- - ">="
|
|
27
28
|
- !ruby/object:Gem::Version
|
|
28
|
-
version: '
|
|
29
|
+
version: '6.1'
|
|
29
30
|
- - "<"
|
|
30
31
|
- !ruby/object:Gem::Version
|
|
31
|
-
version: '
|
|
32
|
+
version: '7.3'
|
|
33
|
+
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: net-imap
|
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0'
|
|
40
|
+
type: :runtime
|
|
41
|
+
prerelease: false
|
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0'
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: net-pop
|
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
54
|
+
type: :runtime
|
|
55
|
+
prerelease: false
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0'
|
|
61
|
+
- !ruby/object:Gem::Dependency
|
|
62
|
+
name: net-smtp
|
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0'
|
|
68
|
+
type: :runtime
|
|
69
|
+
prerelease: false
|
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '0'
|
|
32
75
|
- !ruby/object:Gem::Dependency
|
|
33
76
|
name: will_paginate
|
|
34
77
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -47,14 +90,14 @@ dependencies:
|
|
|
47
90
|
name: ndr_ui
|
|
48
91
|
requirement: !ruby/object:Gem::Requirement
|
|
49
92
|
requirements:
|
|
50
|
-
- - "
|
|
93
|
+
- - ">="
|
|
51
94
|
- !ruby/object:Gem::Version
|
|
52
95
|
version: '5.0'
|
|
53
96
|
type: :runtime
|
|
54
97
|
prerelease: false
|
|
55
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
56
99
|
requirements:
|
|
57
|
-
- - "
|
|
100
|
+
- - ">="
|
|
58
101
|
- !ruby/object:Gem::Version
|
|
59
102
|
version: '5.0'
|
|
60
103
|
- !ruby/object:Gem::Dependency
|
|
@@ -99,6 +142,20 @@ dependencies:
|
|
|
99
142
|
- - ">="
|
|
100
143
|
- !ruby/object:Gem::Version
|
|
101
144
|
version: '0'
|
|
145
|
+
- !ruby/object:Gem::Dependency
|
|
146
|
+
name: psych
|
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - "<"
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '5'
|
|
152
|
+
type: :development
|
|
153
|
+
prerelease: false
|
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
155
|
+
requirements:
|
|
156
|
+
- - "<"
|
|
157
|
+
- !ruby/object:Gem::Version
|
|
158
|
+
version: '5'
|
|
102
159
|
- !ruby/object:Gem::Dependency
|
|
103
160
|
name: mocha
|
|
104
161
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -180,7 +237,6 @@ files:
|
|
|
180
237
|
- MIT-LICENSE
|
|
181
238
|
- README.md
|
|
182
239
|
- Rakefile
|
|
183
|
-
- SECURITY.md
|
|
184
240
|
- app/assets/javascripts/ndr_error/ndr_error.js
|
|
185
241
|
- app/assets/stylesheets/ndr_error/ndr_error.scss
|
|
186
242
|
- app/controllers/ndr_error/application_controller.rb
|
|
@@ -213,6 +269,7 @@ homepage: https://github.com/NHSDigital/ndr_error
|
|
|
213
269
|
licenses:
|
|
214
270
|
- MIT
|
|
215
271
|
metadata: {}
|
|
272
|
+
post_install_message:
|
|
216
273
|
rdoc_options: []
|
|
217
274
|
require_paths:
|
|
218
275
|
- lib
|
|
@@ -220,14 +277,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
220
277
|
requirements:
|
|
221
278
|
- - ">="
|
|
222
279
|
- !ruby/object:Gem::Version
|
|
223
|
-
version: '3.
|
|
280
|
+
version: '3.0'
|
|
224
281
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
225
282
|
requirements:
|
|
226
283
|
- - ">="
|
|
227
284
|
- !ruby/object:Gem::Version
|
|
228
285
|
version: '0'
|
|
229
286
|
requirements: []
|
|
230
|
-
rubygems_version: 3.
|
|
287
|
+
rubygems_version: 3.3.27
|
|
288
|
+
signing_key:
|
|
231
289
|
specification_version: 4
|
|
232
290
|
summary: Rails exception logging
|
|
233
291
|
test_files: []
|
data/SECURITY.md
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Security
|
|
2
|
-
|
|
3
|
-
NHS England takes security and the protection of private data extremely seriously. If you believe you have found a vulnerability or other issue which has compromised or could compromise the security of any of our systems and/or private data managed by our systems, please do not hesitate to contact us using the methods outlined below.
|
|
4
|
-
|
|
5
|
-
## Table of Contents
|
|
6
|
-
|
|
7
|
-
- [Security](#security)
|
|
8
|
-
- [Table of Contents](#table-of-contents)
|
|
9
|
-
- [Reporting a vulnerability](#reporting-a-vulnerability)
|
|
10
|
-
- [Email](#email)
|
|
11
|
-
- [NCSC](#ncsc)
|
|
12
|
-
- [General Security Enquiries](#general-security-enquiries)
|
|
13
|
-
|
|
14
|
-
## Reporting a vulnerability
|
|
15
|
-
|
|
16
|
-
Please note, email is our preferred method of receiving reports.
|
|
17
|
-
|
|
18
|
-
### Email
|
|
19
|
-
|
|
20
|
-
If you wish to notify us of a vulnerability via email, please include detailed information on the nature of the vulnerability and any steps required to reproduce it.
|
|
21
|
-
|
|
22
|
-
You can reach us at:
|
|
23
|
-
|
|
24
|
-
- [Brian.Shand@nhs.net](mailto:Brian.Shand@nhs.net)
|
|
25
|
-
- [cybersecurity@nhs.net](mailto:cybersecurity@nhs.net)
|
|
26
|
-
|
|
27
|
-
### NCSC
|
|
28
|
-
|
|
29
|
-
You can send your report to the National Cyber Security Centre, who will assess your report and pass it on to NHS England if necessary.
|
|
30
|
-
|
|
31
|
-
You can report vulnerabilities here: [https://www.ncsc.gov.uk/information/vulnerability-reporting](https://www.ncsc.gov.uk/information/vulnerability-reporting)
|
|
32
|
-
|
|
33
|
-
## General Security Enquiries
|
|
34
|
-
|
|
35
|
-
If you have general enquiries regarding our cybersecurity, please reach out to us at [cybersecurity@nhs.net](mailto:cybersecurity@nhs.net)
|