defmodule AwsRdsCAStore do
@moduledoc """
Functionality to retrieve the AWS RDS CA certificate store and use it in the
DB connection configuration.
"""
@doc """
Returns the path to the AWS RDS CA certificate store PEM file.
## Examples
AwsRdsCAStore.file_path()
#=> /Users/me/aws_rds_castore/_build/dev/lib/aws_rds_castore/priv/global-bundle.pem"
"""
@spec file_path() :: Path.t()
def file_path() do
:aws_rds_castore.file_path()
end
@doc """
Returns a set of `:ssl` transport options for certificate verification.
Accepts a database URI instead of hostname on OTP 21 or later.
## Examples
# In runtime.exs:
config :my_app, MyApp.Repo,
url: database_url,
ssl: true,
ssl_opts: AwsRdsCAStore.ssl_opts(database_url),
pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"),
socket_options: maybe_ipv6
"""
def ssl_opts(url_or_hostname) do
:aws_rds_castore.ssl_opts(url_or_hostname)
end
end