# scrypath v0.3.5 - 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) - 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) - [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.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.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.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.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.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.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, Meilisearch integration, and operator-facing docs. - [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/**`.