@arc-core-components/content-source_site-service-v3

Content source that hooks into the Site Service portion of the Arc Suite.

Usage no npm install needed!

<script type="module">
  import arcCoreComponentsContentSourceSiteServiceV3 from 'https://cdn.skypack.dev/@arc-core-components/content-source_site-service-v3';
</script>

README

Content Source: Site Service, v3 endpoint

This the Arc Core Component representing a content source that hooks into the Site Service portion of the Arc Suite and returns a feed of sites associated with a particular website.

The most important part is the pattern. This defines the endpoint that PageBuilder Fusion uses to look up content.

This Core Component takes advantage of PageBuilder Fusion's ability to use CONTENT_BASE to define the credentials for the Site Service, ensuring that no private secrets are exposed.

Pattern:

/site/v3/navigation/${serviceSite}/?hierarchy=${key.hierarchy || "default"}&_id=${key.section}

Parameters:

This content source takes three parameters:

  • serviceSite - this is the Arc-Site.
  • hierarchy - the hierarchy you would like to return a list of sites for. If not supplied, this falls back to default, which gives the top-level list of sites.
  • section - If included, this will return sections beneath a specific section.

Getting started

This Core Component must be used within a Fusion project.

  1. Add this schema as a dependency of the repo. npm install @arc-core-components/content-source_site-service-v3
  2. Create a file of your desired content source name within the /content/sources folder. For this content source, the suggested name is site-service-v3.js
  3. This is the name you should use when referencing this content source in any content config within a custom field.
  4. Paste the following into site-service-v3.js:
import source from "@arc-core-components/content-source_site-service-v3";

export default source;

Using this content source with a schema

You'll want to set a schema for this within your Component Repo. Look here for an example schema.