# `ASM.EnvSnapshot`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.10.0/lib/asm/env_snapshot.ex#L1)

Allowlist filter for the `config/runtime.exs` environment snapshot.

ASM copies OS environment variables into Application config for its explicit
environment access layer at boot. Copying the *whole* environment would
spread every unrelated secret in the parent process into inspectable
Application config (`Application.get_all_env/1`, `:observer`, crash dumps),
so only the variables ASM reads are taken: the provider namespaces (which
cover `ASM.RuntimeAuth`'s per-provider auth env keys) plus a small static set.

# `allowed?`

```elixir
@spec allowed?(String.t()) :: boolean()
```

Whether a variable name is admitted into the snapshot.

# `prefixes`

```elixir
@spec prefixes() :: [String.t()]
```

Variable-name prefixes admitted by the allowlist.

# `static_vars`

```elixir
@spec static_vars() :: [String.t()]
```

Static (non-prefixed) variable names in the allowlist.

# `take`

```elixir
@spec take(%{optional(String.t()) =&gt; String.t()}) :: %{
  optional(String.t()) =&gt; String.t()
}
```

Filters an OS environment map down to the variables ASM reads.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
