Skip to content

Adopt Ghost content projection in post webhooks #222

Description

@aileen

Parent

What to build

Activate the same released Ghost content projection and deterministic record policy in the existing post webhooks. Validate the environment contract before mutation, preflight and fully replace post records without touching settings, preserve public handler compatibility, and publish the release that delivers the field/excerpt source requests.

Acceptance criteria

  • Canonical post handlers parse the approved ALGOLIA_CONTENT_PROJECTION JSON and reject invalid policy before any Algolia request.
  • Omitted and explicit projection behavior exactly matches the CLI and deep fragmenter contract.
  • The current post webhook resource is transformed and fully preflighted without a Content API re-fetch.
  • Publish/update replaces every previous record for the legacy slug before saving the complete new set, so shrinking content cannot leave stale continuations.
  • Deterministic validation errors produce no Algolia request; external delete/save failures are surfaced without promising rollback atomicity.
  • No webhook path reads or writes settings, and the existing public post basenames, envelopes, activation, authentication, and valid responses remain compatible.
  • Native request/response acceptance exercises projection, fallback content, size boundaries, replacement ordering, malformed configuration/content, external errors, and the absence of settings requests.
  • A scoped Netlify minor release is published and verified with the configuration shape, fragmenter/CLI compatibility floor, failure semantics, replace-before-save behavior, and rollback in its notes.
  • Issues Extend algoliaPost with additional ghost post field #43 and html tags in search results #148 are closed only after the fragmenter, CLI, and Netlify registry artifacts are verified; closure records exact versions and explains that excerpt is display text whose UI and Algolia settings remain consumer-owned.

Blocked by

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions