govuk_app_config 4.6.1 → 4.6.2

Sign up to get free protection for your applications and to get access to all the features.
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