# `MishkaCmsCore.Activity.Sources.PaperTrail`
[🔗](https://github.com/mishka-group/mishka_cms_core/blob/v0.0.1/lib/mishka_cms_core/activity/sources/paper_trail.ex#L5)

Activity source backed by AshPaperTrail-versioned resources in the
`MishkaCmsCore.Runtime` domain. Auto-discovers any resource that ships
with `AshPaperTrail.Resource` — no per-resource configuration.

## Scope keys read

  * `:current_user` — used to derive master vs tenant subscription topics.
    Tenants see only their `site_id`.
  * `:resources`    — optional list of modules to restrict to (e.g. on the
    Component admin page, pass `[MishkaCmsCore.Runtime.Component]`).

See `MishkaCmsCore.Activity.Behaviours.Source` for the behaviour contract.

# `discovered_modules`

Every paper-trailed resource auto-discovered across all configured domains.

# `entry_from_row`

Build an entry map from a unified `MishkaCmsCore.Activity.Query` SQL row (the
DB-side merge path), reusing the same label/severity/badge/message derivation
as the live and in-memory paths.

---

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