Merge branch '18947-keep-balance'
[arvados.git] / services / api / app / controllers / arvados / v1 / healthcheck_controller.rb
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5 class Arvados::V1::HealthcheckController < ApplicationController
6   skip_before_action :catch_redirect_hint
7   skip_before_action :find_objects_for_index
8   skip_before_action :find_object_by_uuid
9   skip_before_action :load_filters_param
10   skip_before_action :load_limit_offset_order_params
11   skip_before_action :load_select_param
12   skip_before_action :load_read_auths
13   skip_before_action :load_where_param
14   skip_before_action :render_404_if_no_object
15   skip_before_action :require_auth_scope
16
17   before_action :check_auth_header
18
19   def check_auth_header
20     mgmt_token = Rails.configuration.ManagementToken
21     auth_header = request.headers['Authorization']
22
23     if mgmt_token == ""
24       send_json ({"errors" => "disabled"}), status: 404
25     elsif !auth_header
26       send_json ({"errors" => "authorization required"}), status: 401
27     elsif auth_header != 'Bearer '+mgmt_token
28       send_json ({"errors" => "authorization error"}), status: 403
29     end
30   end
31
32   def ping
33     resp = {"health" => "OK"}
34     send_json resp
35   end
36 end