govuk_app_config 4.6.1 → 4.6.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: af0d0c077a99208b9ea35cae5cf9c3709f3438351cf9ca4505d65fa1316a0d6d
4
- data.tar.gz: 47cba1eb775a978b13f6f412c7656f186cd949333be0f544fb911fd7282fdf26
3
+ metadata.gz: 0f3849d5bf53877e6244bcda92162ec86e9a37c5788a491e1f436af79da3433e
4
+ data.tar.gz: 8d198f89774cf5962ae877e5437bff4025123c102645ac7d4a2b81b2525ef0c3
5
5
  SHA512:
6
- metadata.gz: d8c3eb4089c054710ec20f14d439c9fb54106fe476d5044dc92cabd0f96d56f2345807edefaddd2bd4736e6f04cf8144af6d23ee7392e3bfcc5434cb4d1214b8
7
- data.tar.gz: de87e2236b6def3d21bb010ada8f3e217c192cfdc215d2949408c7ffc1abcf8e7320afe6df38de864ec22b086fe0dfe8b4b3aeb1636b9ad2c9ceec658c849f17
6
+ metadata.gz: e5c4e6173b2c7b41ff37430b603bb1d04dcc108fd24c4b374f2d4731512ce780fb1dd43d7bdd13a0bdc4e0948be48f4a6a6913cabb337ff1afe5a3110213d650
7
+ data.tar.gz: 3a810d79466ce2780c3e19b77da1edaf3a98546cc0ddbb28f6e10deb20558bc8a2eac44e1777af90be739138059176401535d75ff1bb918362e855fccb7ce1ca
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 4.6.2
2
+
3
+ - Adds a new domain to the security policy for GA ([#248](https://https://github.com/alphagov/govuk_app_config/pull/248))
4
+
1
5
  # 4.6.1
2
6
 
3
7
  - Fixes warning message to refer to correct Sidekiq gem dependency name ([#243](https://github.com/alphagov/govuk_app_config/pull/243)).
data/docs/healthchecks.md CHANGED
@@ -1,47 +1,6 @@
1
1
  # Health Checks
2
2
 
3
- ## Check interface
4
-
5
- A check is expected to be a class with the following methods:
6
-
7
- ```ruby
8
- class CustomCheck
9
- def name
10
- :the_name_of_the_check
11
- end
12
-
13
- def status
14
- if critical_condition?
15
- :critical
16
- elsif warning_condition?
17
- :warning
18
- else
19
- :ok
20
- end
21
- end
22
-
23
- # Optional
24
- def message
25
- "This is an optional custom message that will show up in the alert in Icinga"
26
- end
27
-
28
- # Optional
29
- def details
30
- {
31
- extra: "This is an optional details hash",
32
- }
33
- end
34
-
35
- # Optional
36
- def enabled?
37
- true # false if the check is not relevant at this time
38
- end
39
- end
40
- ```
41
-
42
- It is expected that these methods may cache their results for performance
43
- reasons, if a user wants to ensure they have the latest value they should
44
- create a new instance of the check first.
3
+ GOV.UK apps often have special `/healthcheck` routes, which give an indication of whether the app is running and able to respond to requests. [Read about how health checks are used](https://docs.publishing.service.gov.uk/manual/alerts/app-healthcheck-not-ok.html).
45
4
 
46
5
  ## Including checks in your app
47
6
 
@@ -51,7 +10,7 @@ or custom checks you wish to perform.
51
10
  For Rails apps:
52
11
 
53
12
  ```ruby
54
- get "/healthcheck", to: GovukHealthcheck.rack_response(
13
+ get "/healthcheck/ready", to: GovukHealthcheck.rack_response(
55
14
  GovukHealthcheck::SidekiqRedis,
56
15
  GovukHealthcheck::ActiveRecord,
57
16
  CustomCheck,
@@ -61,95 +20,64 @@ get "/healthcheck", to: GovukHealthcheck.rack_response(
61
20
  It also accepts objects, so classes can be initialized:
62
21
 
63
22
  ```ruby
64
- get "/healthcheck", to: GovukHealthcheck.rack_response(
23
+ get "/healthcheck/ready", to: GovukHealthcheck.rack_response(
65
24
  InitializedCheck.new(:param),
66
25
  )
67
26
  ```
68
27
 
69
- ## Built-in Checks
70
-
71
- A convention used when naming these classes is that it should end with `Check`
72
- if it must be subclassed to work, but a concrete class which works on its own
73
- doesn't need that suffix. You should aim to follow this convention in your own
74
- apps, ideally putting custom health checks into a `Healthcheck` module.
75
-
76
- ### `RailsCache`
28
+ Built-in checks you can use include:
77
29
 
78
- This checks that the Rails cache store, such as Memcached, is acessible by
79
- writing and reading back a cache entry called "healthcheck-cache".
30
+ - `GovukHealthcheck::RailsCache` - checks that the Rails cache store, such as Memcached, is acessible by writing and reading back a cache entry called "healthcheck-cache".
80
31
 
81
- ### `Mongoid`
32
+ - `GovukHealthcheck::Redis` - checks that the app can connect to Redis by writing and reading back a cache entry called "healthcheck-cache".
82
33
 
83
- This checks that the app has a connection to its Mongo database via Mongoid.
34
+ - `GovukHealthcheck::Mongoid` - checks that the app has a connection to its Mongo database via Mongoid.
84
35
 
85
- ### `SidekiqRedis`
36
+ - `GovukHealthcheck::SidekiqRedis` - checks that the app has a connection to Redis via Sidekiq.
86
37
 
87
- This checks that the app has a connection to Redis via Sidekiq.
38
+ - `GovukHealthcheck::ActiveRecord` - checks that the app has a connection to the database via ActiveRecord.
88
39
 
89
- ### `ActiveRecord`
40
+ ## Writing a custom healthcheck
90
41
 
91
- This checks that the app has a connection to the database via ActiveRecord.
92
-
93
- ### `ThresholdCheck`
94
-
95
- This class is the basis for a check which compares a value with a warning or a
96
- critical threshold.
42
+ A check is expected to be a class with the following methods:
97
43
 
98
44
  ```ruby
99
- class MyThresholdCheck < GovukHealthcheck::ThresholdCheck
45
+ class CustomCheck
100
46
  def name
101
- :my_threshold_check
102
- end
103
-
104
- def value
105
- # get the value to be checked
106
- end
107
-
108
- def total
109
- # (optional) get the total value to be included in the details as extra
110
- # information
47
+ :the_name_of_the_check
111
48
  end
112
49
 
113
- def warning_threshold
114
- # if the value is above this threshold, its status is warning
50
+ def status
51
+ if critical_condition?
52
+ :critical
53
+ elsif warning_condition?
54
+ :warning
55
+ else
56
+ :ok
57
+ end
115
58
  end
116
59
 
117
- def critical_threshold
118
- # if the value is above this threshold, its status is critical
60
+ # Optional
61
+ def message
62
+ "This is an optional custom message that will show up in the alert in Icinga"
119
63
  end
120
- end
121
- ```
122
64
 
123
- ### `SidekiqQueueLatencyCheck`
124
-
125
- This class is the basis for a check which compares the Sidekiq queue latencies
126
- with warning or critical thresholds.
127
-
128
- ```ruby
129
- class MySidekiqQueueLatencyCheck < GovukHealthcheck::SidekiqQueueLatencyCheck
130
- def warning_threshold(queue:)
131
- # the warning threshold for a particular queue
65
+ # Optional
66
+ def details
67
+ {
68
+ extra: "This is an optional details hash",
69
+ }
132
70
  end
133
71
 
134
- def critical_threshold(queue:)
135
- # the critical threshold for a particular queue
72
+ # Optional
73
+ def enabled?
74
+ true # false if the check is not relevant at this time
136
75
  end
137
76
  end
138
77
  ```
139
78
 
140
- ### `SidekiqRetrySizeCheck`
141
-
142
- Similar to `SidekiqQueueSizeCheck`, this class is the basis for a check which
143
- compares the Sidekiq retry set size with a warning and critical threshold.
144
-
145
- ```ruby
146
- class MySidekiqRetrySizeCheck < GovukHealthcheck::SidekiqRetrySizeCheck
147
- def warning_threshold
148
- # the warning threshold for the retry set
149
- end
79
+ It is expected that these methods may cache their results for performance
80
+ reasons, if a user wants to ensure they have the latest value they should
81
+ create a new instance of the check first.
150
82
 
151
- def critical_threshold
152
- # the critical threshold for the retry set
153
- end
154
- end
155
- ```
83
+ Put custom health checks for your app into a `Healtcheck` module. Each custom check class should end with `Check`.
@@ -18,7 +18,8 @@ module GovukContentSecurityPolicy
18
18
  GOOGLE_ANALYTICS_DOMAINS = %w[www.google-analytics.com
19
19
  ssl.google-analytics.com
20
20
  stats.g.doubleclick.net
21
- www.googletagmanager.com].freeze
21
+ www.googletagmanager.com
22
+ www.region1.google-analytics.com].freeze
22
23
 
23
24
  GOOGLE_STATIC_DOMAINS = %w[www.gstatic.com].freeze
24
25
 
@@ -1,3 +1,3 @@
1
1
  module GovukAppConfig
2
- VERSION = "4.6.1".freeze
2
+ VERSION = "4.6.2".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_app_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.6.1
4
+ version: 4.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-20 00:00:00.000000000 Z
11
+ date: 2022-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstasher
@@ -296,7 +296,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
296
296
  - !ruby/object:Gem::Version
297
297
  version: '0'
298
298
  requirements: []
299
- rubygems_version: 3.3.14
299
+ rubygems_version: 3.3.16
300
300
  signing_key:
301
301
  specification_version: 4
302
302
  summary: Base configuration for GOV.UK applications