API Reference confispex v1.1.0

Modules

A tool which allows to define specs for runtime configuration, cast values according to specified types and inspect them.

Example

defmodule MyApp.RuntimeConfigSchema do
  import Confispex.Schema
  @behaviour Confispex.Schema
  alias Confispex.Type

  defvariables(%{
    "RUNTIME_CONFIG_REPORT" => %{
      cast: {Type.Enum, values: ["disabled", "detailed", "brief"]},
      default: "disabled",
      groups: [:misc]
    },
    "TZDATA_AUTOUPDATE_ENABLED" => %{
      doc: "Autoupdate timezones from IANA Time Zone Database",
      cast: Type.Boolean,
      default: "false",
      groups: [:base],
      context: [env: [:dev, :prod]]
    },
    "LOG_LEVEL" => %{
      cast:
        {Type.Enum,
         values: [
           "emergency",
           "alert",
           "critical",
           "error",
           "warning",
           "notice",
           "info",
           "debug",
           "none"
         ]},
      default_lazy: fn
        %{env: :test} -> "warning"
        %{env: :dev} -> "debug"
        %{env: :prod} -> "debug"
      end,
      groups: [:base]
    },
    "DATABASE_URL" => %{
      aliases: ["DB_URL"],
      doc: "Full DB URL",
      cast: Type.URL,
      context: [env: [:prod]],
      groups: [:primary_db],
      required: [:primary_db]
    },
    "DATABASE_POOL_SIZE" => %{
      aliases: ["DB_POOL_SIZE", "POOL_SIZE"],
      cast: {Type.Integer, scope: :positive},
      default: "10",
      context: [env: [:prod]],
      groups: [:primary_db]
    }
  })
end

A type for base64 encoded values.

A boolean type.

A CSV type.

An email type.

An enum type.

A float type.

An integer type.

A JSON type.

A string type.

Represents any term.

An URL type.

Mix Tasks

Generate a doc in markdown format

Generate .envrc template for dotenv utility

Print report to stdout