yes-read-api 2.5.0 → 2.6.1
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/app/controllers/yes/read/api/queries_controller.rb +18 -0
- data/lib/yes/read/api/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6d8d89dacbcf00c09f36bde2d9144351b451a8017cd82b08f82290b70b40e7b1
|
|
4
|
+
data.tar.gz: 1781e5d7840f993b2755be92da48316eb67cb29d5177091655f8ba0c76f174fe
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c5a4cdfa90cb3d9c507ecad60355d2892ca33615e8209cc88dd4fedd06bbc4fdf6b885ceeb137b1aeb6e5962dbb8b281de05b0f6dcef1a2754113431d7b6b257
|
|
7
|
+
data.tar.gz: 785dc57521eaa4a6501c704a8df1fde79688fa1fed8f663933429d0a9e4ab028d471728d33112d237bcb6201a5075d93995f50162348c56ea1f7ac4602ea0da7
|
|
@@ -10,6 +10,7 @@ module Yes
|
|
|
10
10
|
before_action :validate_advanced_payload, only: :advanced
|
|
11
11
|
before_action :process_own_filter, only: :call
|
|
12
12
|
|
|
13
|
+
RETRY_AFTER_SECONDS = 1
|
|
13
14
|
IGNORED_FILTER_PARAM = { basic: :filter_definition, advanced: :filters }.freeze
|
|
14
15
|
|
|
15
16
|
# Covers AuthenticationError raised outside #authenticate_with_token, e.g. by consumer
|
|
@@ -22,6 +23,12 @@ module Yes
|
|
|
22
23
|
with: :read_models_unauthorized_response
|
|
23
24
|
)
|
|
24
25
|
|
|
26
|
+
rescue_from(
|
|
27
|
+
Cerbos::Error::Unavailable,
|
|
28
|
+
Cerbos::Error::DeadlineExceeded,
|
|
29
|
+
with: :authorization_service_unavailable_response
|
|
30
|
+
)
|
|
31
|
+
|
|
25
32
|
def call
|
|
26
33
|
persisted_filter = filter(read_model_name).persisted_filter_scope.find_by(id: params[:filter_id]) if params[:filter_id].present?
|
|
27
34
|
|
|
@@ -144,6 +151,17 @@ module Yes
|
|
|
144
151
|
)
|
|
145
152
|
end
|
|
146
153
|
|
|
154
|
+
# Renders a 503 when the authorization service cannot be reached; the client can retry.
|
|
155
|
+
def authorization_service_unavailable_response(error)
|
|
156
|
+
Rails.error.report(error, handled: true, severity: :error)
|
|
157
|
+
|
|
158
|
+
response.set_header('Retry-After', RETRY_AFTER_SECONDS.to_s)
|
|
159
|
+
render(
|
|
160
|
+
json: { title: 'Service Unavailable', detail: 'Authorization service unavailable' }.to_json,
|
|
161
|
+
status: :service_unavailable
|
|
162
|
+
)
|
|
163
|
+
end
|
|
164
|
+
|
|
147
165
|
def validate_advanced_payload
|
|
148
166
|
return if params[:filter_definition].blank?
|
|
149
167
|
|
data/lib/yes/read/api/version.rb
CHANGED