PhoenixReplay.Sanitizer behaviour (PhoenixReplay v0.2.0)

Copy Markdown View Source

Filters sensitive data from assigns before recording.

By default, strips internal LiveView keys and common sensitive fields, compacts Ecto structs and Phoenix form structs for minimal storage.

Configure with:

config :phoenix_replay,
  sanitizer: MyApp.ReplaySanitizer

Custom sanitizers must implement sanitize_assigns/1 and sanitize_delta/2. They may also implement sanitize_params/1; otherwise params are sanitized with sanitize_assigns/1.

Summary

Functions

Remove internal and sensitive keys from assigns, compact structs.

Sanitize only the changed keys (delta).

Sanitize params or session data before recording.

Callbacks

sanitize_assigns(map)

@callback sanitize_assigns(map()) :: map()

sanitize_delta(map, map)

@callback sanitize_delta(map(), map()) :: map()

sanitize_params(map)

(optional)
@callback sanitize_params(map()) :: map()

Functions

sanitize_assigns(assigns)

@spec sanitize_assigns(map()) :: map()

Remove internal and sensitive keys from assigns, compact structs.

Drops internal LiveView keys and sensitive fields, then compacts Phoenix.HTML.Form, Ecto.Changeset, and Ecto schema structs to remove runtime-only data (changeset types, validations, schema metadata).

sanitize_delta(changed, assigns)

@spec sanitize_delta(map(), map()) :: map()

Sanitize only the changed keys (delta).

sanitize_params(params)

@spec sanitize_params(map()) :: map()

Sanitize params or session data before recording.