Skip to content

Commit 2ac2e95

Browse files
committed
Do not reject events from headless Chrome on staging environment
1 parent 22af8e5 commit 2ac2e95

3 files changed

Lines changed: 31 additions & 3 deletions

File tree

config/runtime.exs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ config :plausible,
189189
admin_email: admin_email,
190190
admin_pwd: admin_pwd,
191191
environment: env,
192+
system_environment: env,
192193
mailer_email: mailer_email,
193194
super_admin_user_ids: super_admin_user_ids,
194195
site_limit: site_limit,

lib/plausible_web/controllers/api/external_controller.ex

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,13 @@ defmodule PlausibleWeb.Api.ExternalController do
167167

168168
defp is_bot?(%UAInspector.Result.Bot{}), do: true
169169

170-
defp is_bot?(%UAInspector.Result{client: %UAInspector.Result.Client{name: "Headless Chrome"}}),
171-
do: true
170+
defp is_bot?(%UAInspector.Result{client: %UAInspector.Result.Client{name: "Headless Chrome"}}) do
171+
if Application.get_env(:plausible, :system_environment) == "staging" do
172+
false
173+
else
174+
true
175+
end
176+
end
172177

173178
defp is_bot?(_), do: false
174179

test/plausible_web/controllers/api/external_controller_test.exs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,29 @@ defmodule PlausibleWeb.Api.ExternalControllerTest do
169169
)
170170
|> post("/api/event", params)
171171

172-
assert get_event("headless-chrome-test.com") == nil
172+
refute get_event("headless-chrome-test.com")
173+
end
174+
175+
test "Headless Chrome is not ignored on staging environment", %{conn: conn} do
176+
initial_env = Application.get_env(:plausible, :system_environment)
177+
Application.put_env(:plausible, :system_environment, "staging")
178+
179+
params = %{
180+
name: "pageview",
181+
url: "http://www.example.com/",
182+
domain: "headless-chrome-stg-test.com"
183+
}
184+
185+
conn
186+
|> put_req_header(
187+
"user-agent",
188+
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/85.0.4183.83 Safari/537.36"
189+
)
190+
|> post("/api/event", params)
191+
192+
assert get_event("headless-chrome-stg-test.com")
193+
194+
Application.put_env(:plausible, :system_environment, initial_env)
173195
end
174196

175197
test "parses user_agent", %{conn: conn} do

0 commit comments

Comments
 (0)