Skip to content

Commit 399c50c

Browse files
avilagaston9JuArce
andauthored
fix(telemetry): remove sensitive data exposure (#1557)
Co-authored-by: Julian Arce <[email protected]>
1 parent a547440 commit 399c50c

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

telemetry_api/lib/telemetry_api_web/controllers/operator_controller.ex

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,15 @@ defmodule TelemetryApiWeb.OperatorController do
3434
render(conn, :show, operator: operator)
3535
end
3636
end
37+
38+
def index_public(conn, _params) do
39+
operators = Operators.list_operators()
40+
render(conn, :index_public, operators: operators)
41+
end
42+
43+
def show_public(conn, %{"id" => address}) do
44+
with {:ok, %Operator{} = operator} <- Operators.get_operator(%{address: address}) do
45+
render(conn, :show_public, operator: operator)
46+
end
47+
end
3748
end

telemetry_api/lib/telemetry_api_web/controllers/operator_json.ex

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,28 @@ defmodule TelemetryApiWeb.OperatorJSON do
2929
eth_ws_url_fallback: operator.eth_ws_url_fallback
3030
}
3131
end
32+
33+
@doc """
34+
Renders a list of operators with only public data.
35+
"""
36+
def index_public(%{operators: operators}) do
37+
for(operator <- operators, do: data_public(operator))
38+
end
39+
40+
@doc """
41+
Renders a single operator with only public data.
42+
"""
43+
def show_public(%{operator: operator}) do
44+
data_public(operator)
45+
end
46+
47+
defp data_public(%Operator{} = operator) do
48+
%{
49+
address: operator.address,
50+
id: operator.id,
51+
stake: operator.stake,
52+
name: operator.name,
53+
version: operator.version
54+
}
55+
end
3256
end

telemetry_api/lib/telemetry_api_web/router.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ defmodule TelemetryApiWeb.Router do
2929
scope "/versions", TelemetryApiWeb do
3030
pipe_through :api
3131

32-
get "/", OperatorController, :index
33-
get "/:id", OperatorController, :show
32+
get "/", OperatorController, :index_public
33+
get "/:id", OperatorController, :show_public
3434
post "/", OperatorController, :create_or_update
3535
end
3636

0 commit comments

Comments
 (0)