Packages
electric
0.9.5
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.4.16
1.4.16-beta-1
1.4.15
1.4.14
1.4.13
1.4.12
1.4.11
1.4.10
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.4
1.3.3
1.3.2
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.14
1.1.13
1.1.12
1.1.11
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
retired
1.1.5
retired
1.1.4
retired
1.1.3
retired
1.1.2
1.1.1
1.1.0
1.0.24
1.0.23
1.0.22
1.0.21
1.0.20
1.0.19
1.0.18
1.0.17
1.0.15
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
1.0.0-beta.23
1.0.0-beta.22
1.0.0-beta.20
1.0.0-beta.19
1.0.0-beta.18
1.0.0-beta.17
1.0.0-beta.16
1.0.0-beta.15
1.0.0-beta.14
1.0.0-beta.13
1.0.0-beta.12
1.0.0-beta.11
1.0.0-beta.10
1.0.0-beta.9
1.0.0-beta.8
1.0.0-beta.7
1.0.0-beta.6
1.0.0-beta.5
1.0.0-beta.4
1.0.0-beta.3
1.0.0-beta.2
1.0.0-beta.1
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.1
0.8.0
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.5.2
0.4.4
Postgres sync engine. Sync little subsets of your Postgres data into local apps and services.
Current section
Files
Jump to
Current section
Files
lib/electric/plug/options_shape_plug.ex
defmodule Electric.Plug.OptionsShapePlug do
require Logger
use Plug.Builder
plug :add_cache_max_age_header
plug :filter_cors_headers
plug :add_keep_alive
plug :send_options_response
@allowed_headers ["if-none-match"]
defp add_cache_max_age_header(conn, _) do
conn
|> Plug.Conn.put_resp_header("access-control-max-age", "86400")
|> Plug.Conn.delete_resp_header("cache-control")
end
# Filters out the unsupported headers from the provided "access-control-request-headers"
defp filter_cors_headers(conn, _) do
case Plug.Conn.get_req_header(conn, "access-control-request-headers") do
[] ->
conn
headers ->
supported_headers =
headers
|> Enum.filter(&Enum.member?(@allowed_headers, String.downcase(&1)))
|> Enum.join(",")
case supported_headers do
"" -> conn
_ -> Plug.Conn.put_resp_header(conn, "access-control-allow-headers", supported_headers)
end
end
end
defp add_keep_alive(conn, _), do: Plug.Conn.put_resp_header(conn, "connection", "keep-alive")
defp send_options_response(conn, _), do: send_resp(conn, 204, "")
end