Describe enabled processes in the consul.json URL

The idea to show the status of the existing features was done in commit
7339a98b74. Back then, we didn't have the separate `process.` prefix,
and so processes were enabled/disabled using settings like
`feature.debates` instead of `process.debates`.

IMHO making the information about the enabled features public could
potentially be a bit risky since it gives too much information about the
current status of the application.

Showing which processes are enabled, on the other hand, is pretty
harmless, and it's the reason why this feature was added in the first
place.
This commit is contained in:
Javi Martín
2022-06-02 17:03:10 +02:00
parent 5c317927c0
commit 201e23da3d
2 changed files with 9 additions and 9 deletions

View File

@@ -14,6 +14,6 @@ class InstallationController < ApplicationController
end end
def settings_feature_flags def settings_feature_flags
Setting.where("key LIKE 'feature.%'").each_with_object({}) { |x, n| n[x.key.remove("feature.")] = x.value } Setting.where("key LIKE 'process.%'").each_with_object({}) { |x, n| n[x.key.remove("process.")] = x.value }
end end
end end

View File

@@ -2,19 +2,19 @@ require "rails_helper"
describe InstallationController, type: :request do describe InstallationController, type: :request do
describe "consul.json" do describe "consul.json" do
let(:test_feature_settings) do let(:test_process_settings) do
{ {
"disabled_feature" => nil, "disabled_process" => nil,
"enabled_feature" => "t" "enabled_process" => "t"
} }
end end
let(:seeds_feature_settings) { Setting.where("key LIKE 'feature.%'") } let(:seeds_process_settings) { Setting.where("key LIKE 'process.%'") }
before do before do
seeds_feature_settings.destroy_all seeds_process_settings.destroy_all
test_feature_settings.each do |feature_name, feature_value| test_process_settings.each do |feature_name, feature_value|
Setting["feature.#{feature_name}"] = feature_value Setting["process.#{feature_name}"] = feature_value
end end
end end
@@ -23,7 +23,7 @@ describe InstallationController, type: :request do
expect(response).to have_http_status(:ok) expect(response).to have_http_status(:ok)
expect(JSON.parse(response.body)["release"]).not_to be_empty expect(JSON.parse(response.body)["release"]).not_to be_empty
expect(JSON.parse(response.body)["features"]).to eq(test_feature_settings) expect(JSON.parse(response.body)["features"]).to eq(test_process_settings)
end end
end end
end end