# end_point_blank_elixir v0.9.0 - Table of Contents

> Elixir and Phoenix SDK for EndPointBlank: authorize service-to-service API calls, report endpoint versions, and see which clients still call deprecated API versions.

## Modules

- [EndPointBlank](EndPointBlank.md)
- [EndPointBlank.AccessTokens](EndPointBlank.AccessTokens.md): In-process cache of this node's access tokens, one per application
environment.
- [EndPointBlank.Application](EndPointBlank.Application.md)
- [EndPointBlank.AuthCache](EndPointBlank.AuthCache.md): ETS-backed authorization result cache with TTL expiry and a size cap.
- [EndPointBlank.Authorization](EndPointBlank.Authorization.md): Builds `Authorization` header values.
- [EndPointBlank.BaseUrl](EndPointBlank.BaseUrl.md): Resolves the base URL the caller used -- scheme, host and port -- from a
`Plug.Conn`.
- [EndPointBlank.Commands.EndpointAuthorize](EndPointBlank.Commands.EndpointAuthorize.md): Sends an authorization check to the EndPointBlank API.
- [EndPointBlank.Commands.EndpointUpdate](EndPointBlank.Commands.EndpointUpdate.md): Registers application endpoints with the EndPointBlank API at startup.
- [EndPointBlank.Commands.GenerateAccessToken](EndPointBlank.Commands.GenerateAccessToken.md): Requests a new access token from the EndPointBlank API.
- [EndPointBlank.Config](EndPointBlank.Config.md): Singleton configuration store for the EndPointBlank library.
- [EndPointBlank.DeprecationHeaders](EndPointBlank.DeprecationHeaders.md): Formats the deprecation facts returned by an authorize call into the standard
response headers.
- [EndPointBlank.Http](EndPointBlank.Http.md): Shared HTTP helper with retry logic for all EndPointBlank API calls.
- [EndPointBlank.Masking](EndPointBlank.Masking.md): Client-side masking. Applies configured rules to an outgoing payload's
maskable fields for the record_type, then runs the optional user hook.
- [EndPointBlank.Masking.JsonPath](EndPointBlank.Masking.JsonPath.md): A constrained, well-defined JSONPath subset shared across intake and the
client libraries. It parses a path string into tokens and transforms a value
by replacing every fully-matched location with the result of a callback,
rebuilding parent containers immutably.
- [EndPointBlank.OutboundUrl](EndPointBlank.OutboundUrl.md): The part of a caller's outbound URL the SDK may keep, send to intake, or
log: scheme and host (both lowercased; IPv6 in brackets), port when it is
not the scheme's default (`:443` for https, `:80` for http), and path.
Userinfo, query and fragment are removed (sc-1469). An empty port
(`https://api.test:/x`) counts as none. Refused: any scheme other than
`http` or `https`, and a port that is not a number from 1 to 65535.
- [EndPointBlank.Phoenix.EndpointRegistrar](EndPointBlank.Phoenix.EndpointRegistrar.md): Introspects a Phoenix router at application startup and registers all
endpoints with the EndPointBlank API.
- [EndPointBlank.Phoenix.RoutePatternFinder](EndPointBlank.Phoenix.RoutePatternFinder.md): Resolves the route pattern (e.g. `/books/:id`) for a live request.
- [EndPointBlank.Phoenix.Versioned](EndPointBlank.Phoenix.Versioned.md): Macro that adds per-action version metadata to a Phoenix controller.
- [EndPointBlank.Plug.Authorized](EndPointBlank.Plug.Authorized.md): Plug that enforces EndPointBlank authorization on a controller or pipeline.
- [EndPointBlank.Plug.ReportInteraction](EndPointBlank.Plug.ReportInteraction.md): Plug that tracks every request/response pair.
- [EndPointBlank.RequestStore](EndPointBlank.RequestStore.md): Per-process storage for request-scoped data.
- [EndPointBlank.VersionFinder](EndPointBlank.VersionFinder.md): Detects the API version for an incoming request.
- [EndPointBlank.Writers](EndPointBlank.Writers.md): Dispatch helper — routes payloads to the direct or delayed writer.
- [EndPointBlank.Writers.DelayedWriter](EndPointBlank.Writers.DelayedWriter.md): Background queue that batches payloads and flushes them on a timer.
- [EndPointBlank.Writers.DirectWriter](EndPointBlank.Writers.DirectWriter.md): Synchronously POSTs a payload batch to the EndPointBlank API.
- [EndPointBlank.Writers.ExceptionWriter](EndPointBlank.Writers.ExceptionWriter.md): Sends unhandled exception details to the EndPointBlank API.
- [EndPointBlank.Writers.LogWriter](EndPointBlank.Writers.LogWriter.md): Sends structured log messages to the EndPointBlank API.
- [EndPointBlank.Writers.RequestWriter](EndPointBlank.Writers.RequestWriter.md): Sends inbound request metadata to the EndPointBlank API.
- [EndPointBlank.Writers.ResponseWriter](EndPointBlank.Writers.ResponseWriter.md): Sends response metadata to the EndPointBlank API.

- Exceptions
  - [EndPointBlank.ConfigurationError](EndPointBlank.ConfigurationError.md): Raised when `client_id` or `client_secret` is not configured (nil or
empty), so the SDK cannot authenticate to its intake (sc-1469):
`EndPointBlank.Authorization.header!/1` and
`EndPointBlank.Authorization.intake_header!/0` raise it, and
`EndPointBlank.Authorization.header/1` and `intake_header/0` answer
`{:error, :missing_credentials}` for the same case.
  - [EndPointBlank.TokenUnavailableError](EndPointBlank.TokenUnavailableError.md): Raised by `EndPointBlank.Authorization.header!/1` when no access token could
be obtained for an outbound call to a provider (sc-1469).
  - [EndPointBlank.UnauthorizedError](EndPointBlank.UnauthorizedError.md): Raised when an authorization check fails.

