Skip to content

@indiekit/endpoint-syndicate

Syndication endpoint for Indiekit. Provides an endpoint you can ping to check that recently published posts have been posted to configured syndication targets.

Installation

npm install @indiekit/endpoint-syndicate

NOTE

This package is installed alongside @indiekit/indiekit

Usage

To customise the behaviour of this plug-in, add @indiekit/endpoint-syndicate to your configuration, specifying options as required:

jsonc
{
  "@indiekit/endpoint-syndicate": {
    "mountPath": "/syndikat", // de-DE
  },
}

Options

OptionTypeDescription
mountPathstringPath to syndication endpoint. Optional, defaults to /syndicate.

Supported endpoint queries

  • URL to syndicate: /syndicate?source_url=https%3A%2F%2Fwebsite.example%2Fposts%2F1
  • Every post awaiting syndication, oldest first: /syndicate

A request without source_url works through every published post that still has a syndication target to reach, one at a time, and responds with a result for each. A second such request arriving while one is still running is told that syndication is already in progress.

Authorization

Authorization is needed to update posts with any syndicated URLs. This can be done in a few different ways:

Query string

Include your server’s access token as the token query:

http
POST /syndicate?token=[ACCESS_TOKEN] HTTP/1.1
Host: indiekit.website.example
Accept: application/json

You can find an access token on your server’s status page.

Form body

Include a value for access_token in your form submission:

http
POST /syndicate HTTP/1.1
Host: indiekit.website.example
Content-type: application/x-www-form-urlencoded
Accept: application/json

access_token=[ACCESS_TOKEN]

You can find an access token on your server’s status page.

Using a webhook secret (Netlify only)

If you are using Netlify to host your website, you can send a notification to the syndication endpoint once a deployment has been completed.

First, create an environment variable for your Indiekit server called WEBHOOK_SECRET and give it a secret, hard-to-guess value.

Then on Netlify, in your site’s ‘Build & Deploy’ settings, add an outgoing webhook with the following values:

  • Event to listen for: ‘Deploy succeeded’
  • URL to notify: [YOUR_INDIEKIT_URL]/syndicate
  • JWS secret token: The same value you used for WEBHOOK_SECRET