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
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

View File

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