You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.2 KiB
71 lines
2.2 KiB
defmodule GcIndexRelayWeb.Endpoint do |
|
use Phoenix.Endpoint, otp_app: :gc_index_relay |
|
|
|
# Use runtime config so the plug is active whenever test.exs sets :sql_sandbox (compile_env |
|
# would omit the plug if Endpoint was last compiled in an env without that key). |
|
@sandbox_plug_opts Phoenix.Ecto.SQL.Sandbox.init([]) |
|
|
|
plug :maybe_sql_sandbox |
|
|
|
# The session will be stored in the cookie and signed, |
|
# this means its contents can be read but not tampered with. |
|
# Set :encryption_salt if you would also like to encrypt it. |
|
@session_options [ |
|
store: :cookie, |
|
key: "_gc_index_relay_key", |
|
signing_salt: "60nW1HLa", |
|
same_site: "Lax" |
|
] |
|
|
|
socket "/live", Phoenix.LiveView.Socket, |
|
websocket: [connect_info: [session: @session_options]], |
|
longpoll: [connect_info: [session: @session_options]] |
|
|
|
# Serve at "/" the static files from "priv/static" directory. |
|
# |
|
# When code reloading is disabled (e.g., in production), |
|
# the `gzip` option is enabled to serve compressed |
|
# static files generated by running `phx.digest`. |
|
plug Plug.Static, |
|
at: "/", |
|
from: :gc_index_relay, |
|
gzip: not code_reloading?, |
|
only: GcIndexRelayWeb.static_paths(), |
|
raise_on_missing_only: code_reloading? |
|
|
|
# Code reloading can be explicitly enabled under the |
|
# :code_reloader configuration of your endpoint. |
|
if code_reloading? do |
|
socket "/phoenix/live_reload/socket", Phoenix.LiveReloader.Socket |
|
plug Phoenix.LiveReloader |
|
plug Phoenix.CodeReloader |
|
plug Phoenix.Ecto.CheckRepoStatus, otp_app: :gc_index_relay |
|
end |
|
|
|
plug Phoenix.LiveDashboard.RequestLogger, |
|
param_key: "request_logger", |
|
cookie_key: "request_logger" |
|
|
|
plug Plug.RequestId |
|
plug Plug.Telemetry, event_prefix: [:phoenix, :endpoint] |
|
|
|
plug Plug.Parsers, |
|
parsers: [:urlencoded, :multipart, :json], |
|
pass: ["*/*"], |
|
json_decoder: Phoenix.json_library() |
|
|
|
plug Plug.MethodOverride |
|
plug Plug.Head |
|
plug Plug.Session, @session_options |
|
plug GcIndexRelayWeb.Plugs.CORS |
|
plug GcIndexRelayWeb.Plugs.RelayInfo |
|
plug GcIndexRelayWeb.Router |
|
|
|
def maybe_sql_sandbox(conn, _opts) do |
|
if Application.get_env(:gc_index_relay, :sql_sandbox, false) do |
|
Phoenix.Ecto.SQL.Sandbox.call(conn, @sandbox_plug_opts) |
|
else |
|
conn |
|
end |
|
end |
|
end
|
|
|