Packages

phoenix_kit

1.7.78
1.7.208 1.7.207 1.7.206 1.7.205 1.7.204 1.7.203 1.7.202 1.7.201 1.7.200 1.7.199 1.7.198 1.7.197 1.7.196 1.7.194 1.7.193 1.7.192 1.7.191 1.7.190 1.7.189 1.7.187 1.7.186 1.7.185 1.7.184 1.7.183 1.7.182 1.7.181 1.7.180 1.7.179 1.7.178 1.7.177 1.7.176 1.7.175 1.7.174 1.7.173 1.7.172 1.7.171 1.7.170 1.7.169 1.7.168 1.7.167 1.7.166 1.7.165 1.7.164 1.7.162 1.7.161 1.7.160 1.7.159 1.7.157 1.7.156 1.7.155 1.7.154 1.7.153 1.7.152 1.7.151 1.7.150 1.7.149 1.7.146 1.7.145 1.7.144 1.7.143 1.7.138 1.7.133 1.7.132 1.7.131 1.7.130 1.7.128 1.7.126 1.7.125 1.7.121 1.7.120 1.7.119 1.7.118 1.7.117 1.7.116 1.7.115 1.7.114 1.7.113 1.7.112 1.7.111 1.7.110 1.7.109 1.7.108 1.7.107 1.7.106 1.7.105 1.7.104 1.7.103 1.7.102 1.7.101 1.7.100 1.7.99 1.7.98 1.7.97 1.7.96 1.7.95 1.7.94 1.7.93 1.7.92 1.7.91 1.7.90 1.7.89 1.7.88 1.7.87 1.7.86 1.7.85 1.7.84 1.7.83 1.7.82 1.7.81 1.7.80 1.7.79 1.7.78 1.7.77 1.7.76 1.7.75 1.7.74 1.7.71 1.7.70 1.7.69 1.7.66 1.7.65 1.7.64 1.7.63 1.7.62 1.7.61 1.7.59 1.7.58 1.7.57 1.7.56 1.7.55 1.7.54 1.7.53 1.7.52 1.7.51 1.7.49 1.7.44 1.7.43 1.7.42 1.7.41 1.7.39 1.7.38 1.7.37 1.7.36 1.7.34 1.7.33 1.7.31 1.7.30 1.7.29 1.7.28 1.7.27 1.7.26 1.7.25 1.7.24 1.7.23 1.7.22 1.7.21 1.7.20 1.7.19 1.7.18 1.7.17 1.7.16 1.7.15 1.7.14 1.7.13 1.7.12 1.7.11 1.7.10 1.7.9 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.20 1.6.19 1.6.18 1.6.17 1.6.16 1.6.15 1.6.14 1.6.13 1.6.12 1.6.11 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.5.2 1.5.1 1.5.0 1.4.9 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.2 1.3.1 1.3.0 1.2.10 1.2.9 1.2.8 1.2.7 1.2.5 1.2.4 1.2.2 1.2.1 1.2.0 1.1.0 1.0.0

A foundation for building Elixir Phoenix apps — SaaS, social networks, ERP systems, marketplaces, and more

Current section

Files

Jump to
phoenix_kit lib phoenix_kit config aws.ex
Raw

lib/phoenix_kit/config/aws.ex

defmodule PhoenixKit.Config.AWS do
@moduledoc """
AWS configuration management for PhoenixKit.
This module provides a centralized way to manage AWS configuration.
## Usage
# Get AWS region
region = PhoenixKit.Config.AWS.region()
# Get AWS access key ID
access_key_id = PhoenixKit.Config.AWS.access_key_id()
# Get AWS secret access key
secret_access_key = PhoenixKit.Config.AWS.secret_access_key()
## Configuration
AWS configuration is grouped under the `:aws` key in PhoenixKit config:
config :phoenix_kit,
aws: [
region: "eu-north-1",
access_key_id: "AKIAIOSFODNN7EXAMPLE",
secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
]
## Configuration Keys
- `:region` - AWS region (default: "eu-north-1")
- `:access_key_id` - AWS access key ID
- `:secret_access_key` - AWS secret access key
## Examples
# Get AWS region
region = PhoenixKit.Config.AWS.region()
#=> "eu-north-1"
# Get AWS access key ID
access_key_id = PhoenixKit.Config.AWS.access_key_id()
#=> "AKIAIOSFODNN7EXAMPLE"
"""
alias PhoenixKit.Config
@default_region "eu-north-1"
@doc """
Gets the AWS configuration keyword list.
## Examples
iex> PhoenixKit.Config.AWS.get_all()
[region: "eu-north-1", access_key_id: "AKIA...", secret_access_key: "..."]
"""
@spec get_all() :: Keyword.t()
def get_all do
Config.get(:aws, [])
end
@doc """
Gets a specific AWS configuration value.
## Examples
iex> PhoenixKit.Config.AWS.get(:region)
{:ok, "eu-north-1"}
iex> PhoenixKit.Config.AWS.get(:nonexistent)
:not_found
"""
@spec get(atom()) :: {:ok, any()} | :not_found
def get(key) when is_atom(key) do
case get_all() do
aws_config when is_list(aws_config) ->
case Keyword.get(aws_config, key) do
nil -> :not_found
value -> {:ok, value}
end
end
end
@doc """
Gets a specific AWS configuration value with a default.
## Examples
iex> PhoenixKit.Config.AWS.get(:region, "us-east-1")
"eu-north-1"
"""
@spec get(atom(), any()) :: any()
def get(key, default) when is_atom(key) do
case get(key) do
{:ok, value} -> value
:not_found -> default
end
end
@doc """
Gets the AWS region.
Returns the configured region from application config
with a fallback to "eu-north-1".
## Examples
iex> PhoenixKit.Config.AWS.region()
"us-east-1"
iex> PhoenixKit.Config.AWS.region()
"eu-north-1"
"""
@spec region() :: String.t()
def region do
case get(:region) do
{:ok, region} when is_binary(region) and region != "" ->
region
_ ->
@default_region
end
end
@doc """
Gets the AWS access key ID.
Returns the configured access key ID from application config.
## Examples
iex> PhoenixKit.Config.AWS.access_key_id()
"AKIAIOSFODNN7EXAMPLE"
iex> PhoenixKit.Config.AWS.access_key_id()
nil
"""
@spec access_key_id() :: String.t() | nil
def access_key_id do
case get(:access_key_id) do
{:ok, key_id} when is_binary(key_id) and key_id != "" -> key_id
_ -> nil
end
end
@doc """
Gets the AWS secret access key.
Returns the configured secret access key from application config.
## Examples
iex> PhoenixKit.Config.AWS.secret_access_key()
"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
iex> PhoenixKit.Config.AWS.secret_access_key()
nil
"""
@spec secret_access_key() :: String.t() | nil
def secret_access_key do
case get(:secret_access_key) do
{:ok, secret} when is_binary(secret) and secret != "" -> secret
_ -> nil
end
end
end