# scrypath v0.3.7 - Table of Contents

> Ecto-native search indexing and orchestration for Elixir apps

## Pages

- Getting Started
  - [Scrypath](readme.md)
  - [Guides](overview.md)
  - [Common integration mistakes](common-mistakes.md)
  - [Getting Started](getting-started.md)
  - [Golden path: first indexed document and first search](golden-path.md)
  - [Support and compatibility](support-and-compatibility.md)
  - [Outside-Adopter Intake](outside-adopter-intake.md)
  - [Request-edge search with QueryParams and Phoenix](request-edge-search.md)
  - [Composing real-app search](composing-real-app-search.md)
  - [JTBD and user flows](jtbd-and-user-flows.md)
  - [Related data and reindexing](related-data-and-reindexing.md)

- Phoenix
  - [Phoenix Walkthrough](phoenix-walkthrough.md)
  - [Phoenix Contexts](phoenix-contexts.md)
  - [Phoenix Controllers And JSON](phoenix-controllers-and-json.md)
  - [Phoenix LiveView](phoenix-liveview.md)
  - [Faceted search with Phoenix LiveView](faceted-search-with-phoenix-liveview.md)
  - [Multi-index search with Scrypath](multi-index-search.md)

- Operations
  - [Scrypath Architecture](architecture.md)
  - [Drift recovery for Scrypath and Meilisearch](drift-recovery.md)
  - [Meilisearch operations for Scrypath adopters](meilisearch-operations.md)
  - [Sync Modes And Visibility](sync-modes-and-visibility.md)
  - [Operator Mix Tasks](operator-mix-tasks.md)
  - [Relevance tuning (Meilisearch settings)](relevance-tuning.md)
  - [Per-query tuning pipeline](per-query-tuning-pipeline.md)

- Maintainers
  - [Contributing](contributing.md)
  - [Releasing Scrypath](releasing.md)
  - [JTBD gap map](jtbd-gap-map.md)
  - [Operator Support](operator-support.md)
  - [Search backend operations (SRE view)](search-backend-sre.md)

## Modules

- [Scrypath](Scrypath.md): Scrypath is the runtime surface for **schema → sync → search**: you declare how records
map into a Meilisearch index, enqueue or inline sync work, then query through the same
Ecto-native boundaries your Phoenix or contexts already own.
- [Scrypath.Backend](Scrypath.Backend.md): Internal backend behavior for Scrypath runtime adapters.
- [Scrypath.Composition](Scrypath.Composition.md): Public plain-data composition seam for reusable search presets and additive scopes.
- [Scrypath.Composition.Result](Scrypath.Composition.Result.md): Typed helpers for the public composition result envelope.
- [Scrypath.Config](Scrypath.Config.md): Internal runtime configuration helpers for Scrypath.
- [Scrypath.Document](Scrypath.Document.md): Internal projected search document used between Scrypath orchestration layers.
- [Scrypath.Facets.Disjunctive](Scrypath.Facets.Disjunctive.md): Merge helpers for Meilisearch **`facetDistribution`** JSON maps when building **disjunctive facet counts**.
- [Scrypath.Meilisearch](Scrypath.Meilisearch.md): Meilisearch-specific runtime entrypoints for Scrypath.
- [Scrypath.Meilisearch.FederatedDecode](Scrypath.Meilisearch.FederatedDecode.md): Decodes federated `/multi-search` responses into per-index raw maps suitable
for building the public search result structs returned from `Scrypath.search/3`.
- [Scrypath.Meilisearch.Query](Scrypath.Meilisearch.Query.md): Builds Meilisearch `/indexes/:uid/search` JSON bodies from `Scrypath.Query`.
- [Scrypath.Metadata](Scrypath.Metadata.md): Public plain-data reflection helpers for search capabilities and resolved state.
- [Scrypath.MultiSearch.Entries](Scrypath.MultiSearch.Entries.md): Normalizes `search_many/2` entry tuples and shared runtime options.
- [Scrypath.MultiSearchResult.Federation](Scrypath.MultiSearchResult.Federation.md): Federated multi-search metadata mirrored from Meilisearch's federation object.
- [Scrypath.Oban](Scrypath.Oban.md): Narrow Oban helpers for composing Scrypath sync jobs into `Ecto.Multi`.

- [Scrypath.Operator.FailedSyncWorkInspection](Scrypath.Operator.FailedSyncWorkInspection.md): Opt-in enriched result from `Scrypath.failed_sync_work/2` when
`reason_class_counts: true` is passed in operator options.
- [Scrypath.Operator.FailedWork](Scrypath.Operator.FailedWork.md): Failed sync work returned by `Scrypath.failed_sync_work/2`.
- [Scrypath.Operator.IndexContractDrift.Report](Scrypath.Operator.IndexContractDrift.Report.md): Structured comparison of a schema's **declared** index contract against **live**
Meilisearch index settings.
- [Scrypath.Operator.ReasonClassCounts](Scrypath.Operator.ReasonClassCounts.md): Dense per-class counts for failed sync work rows.
- [Scrypath.Operator.Reconcile](Scrypath.Operator.Reconcile.md): Report-first reconciliation returned by `Scrypath.reconcile_sync/2`.
- [Scrypath.Operator.Reconcile.ReindexVisibility](Scrypath.Operator.Reconcile.ReindexVisibility.md): Reindex visibility embedded in a reconcile report.
- [Scrypath.Operator.RecoveryAction](Scrypath.Operator.RecoveryAction.md): Explicit recovery action used by Scrypath operator APIs.
- [Scrypath.Operator.State](Scrypath.Operator.State.md): Stable operator state projected from backend tasks and queue jobs.
- [Scrypath.Operator.Status](Scrypath.Operator.Status.md): Read-only sync visibility returned by `Scrypath.sync_status/2`.
- [Scrypath.Phoenix](Scrypath.Phoenix.md): Optional request-edge helpers for Phoenix controllers and LiveView.
- [Scrypath.Projection](Scrypath.Projection.md): Document projection for schemas declared with `use Scrypath`.
- [Scrypath.Query](Scrypath.Query.md): **`%Scrypath.Query{}` is internal normalized query state** produced by the common search
path before a backend sees it. It is **not** a semver-stable pattern-match target for
application code—callers should build options as keywords for `Scrypath.search/3` and treat
this struct as an implementation detail behind `Scrypath.Meilisearch.Query` (or other
adapters).

- [Scrypath.QueryParams](Scrypath.QueryParams.md): Public request-edge toolkit for turning top-level request params into one stable
plain-data Scrypath search-args shape.
- [Scrypath.QueryParams.Error](Scrypath.QueryParams.Error.md): Structured request-edge issue for `Scrypath.QueryParams.normalize/1`.
- [Scrypath.Schema](Scrypath.Schema.md): Metadata-only schema declaration support for `use Scrypath`.
- [Scrypath.SearchResult.Facets](Scrypath.SearchResult.Facets.md): Facet counts and stats decoded from a Meilisearch search response.
- [Scrypath.SearchResult.Facets.Bucket](Scrypath.SearchResult.Facets.Bucket.md): One entry from Meilisearch `facetDistribution`: a facet **value** and its document **count**.

- Exceptions
  - [Scrypath.Search.Error](Scrypath.Search.Error.md): Raised by bang search helpers when the matching non-bang API would return `{:error, reason}`.

## Mix Tasks

- [mix scrypath.failed](Mix.Tasks.Scrypath.Failed.md): Lists Scrypath-owned failed-work entries for one searchable schema.
- [mix scrypath.index.contract_drift](Mix.Tasks.Scrypath.Index.ContractDrift.md): Compares a schema's **declared** index contract (fields, filterables, sortables,
faceting, and declared Meilisearch settings families) against the **live** index
via a single read-only Meilisearch `get_settings` call.
- [mix scrypath.namespace_fence](Mix.Tasks.Scrypath.NamespaceFence.md): Fails when Sigra references leak outside the allowed integration namespace.
- [mix scrypath.reconcile](Mix.Tasks.Scrypath.Reconcile.md): Shows a report-first reconcile view for one schema. Pass `--action` to apply one
explicit recovery action from that report.
- [mix scrypath.retry](Mix.Tasks.Scrypath.Retry.md): Retries one explicit failed-work entry by id using the existing Scrypath operator APIs.
- [mix scrypath.settings.diff](Mix.Tasks.Scrypath.Settings.Diff.md): Diffs declared-vs-applied Meilisearch settings for one Scrypath schema.
- [mix scrypath.settings.hot_apply](Mix.Tasks.Scrypath.Settings.HotApply.md): Applies a bounded live Meilisearch settings PATCH for one Scrypath schema.
- [mix scrypath.settings.read](Mix.Tasks.Scrypath.Settings.Read.md): Reads current applied Meilisearch settings for one Scrypath schema and prints them.
- [mix scrypath.status](Mix.Tasks.Scrypath.Status.md): Shows pending, failed, and last-successful sync visibility for one searchable schema.
- [mix verify.adopter](Mix.Tasks.Verify.Adopter.md): Runs the maintainer-facing adopter verification flow from the repository root.
- [mix verify.meilisearch_smoke](Mix.Tasks.Verify.MeilisearchSmoke.md): Runs a **fixed** set of `@moduletag :integration` suites against a real Meilisearch.
- [mix verify.opsui](Mix.Tasks.Verify.Opsui.md): Runs the `scrypath_ops` application tests the same way the **`scrypath-ops`** GitHub Actions job does.
- [mix verify.phase10](Mix.Tasks.Verify.Phase10.md): Runs the auth-free release-confidence verification flow.
- [mix verify.phase11](Mix.Tasks.Verify.Phase11.md): Runs the automated release-alignment verification flow.
- [mix verify.phase13](Mix.Tasks.Verify.Phase13.md): Runs the focused operator verification flow.
- [mix verify.phase5](Mix.Tasks.Verify.Phase5.md): Runs the focused verification flow for backfill, reindex, and Meilisearch integration.
- [mix verify.phase8](Mix.Tasks.Verify.Phase8.md): Runs the focused reliability verification flow.
- [mix verify.release_parity](Mix.Tasks.Verify.ReleaseParity.md): Verifies that the file list inside the published Hex tarball for `X.Y.Z`
matches the file list inside `lib/ + guides/ + docs/` at git tag
`scrypath-vX.Y.Z`.
- [mix verify.release_publish](Mix.Tasks.Verify.ReleasePublish.md): Verifies the live publish contract for a released Scrypath version.
- [mix verify.workspace_clean](Mix.Tasks.Verify.WorkspaceClean.md): Verifies that `git status` is clean for all pathspecs that ship in the Hex
tarball plus `test/**`.

