TryGhost / TryGhost/algolia

Adopt Ghost content projection in post webhooks

Open
#222 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

ready-for-agent
Dominant language
TypeScript
Stars
22
Forks
19
Avg merge
18h 31m
Merged PRs (30d)
50

Description

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 #43 and #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

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing blocked issue #221 and the existing canonical post webhook handlers, then compare their projection and fragmenter contracts with the CLI. Use the native request/response acceptance coverage described here to verify projection, replacement ordering, malformed inputs, external errors, and the absence of settings requests; completion also requires publishing and verifying the scoped Netlify minor release and recording the specified artifact versions.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, backend, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.