Socket
Socket
Sign inDemoInstall

@gatsby-cloud-pkg/merlin-synchronizer

Package Overview
Dependencies
Maintainers
20
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@gatsby-cloud-pkg/merlin-synchronizer

Synchronizes a gatsby site's data layer with a remote source hosted on GCP


Version published
Weekly downloads
389
increased by36.01%
Maintainers
20
Weekly downloads
 
Created
Source

Merlin Synchronizer

The synchronizer is responsible for pulling data from a Merlin ledger in GCS via the Gatsby Cloud Ledger API. It can sync all data in a ledger or just the data since the last time it synchronized.

It synchronizes Merlin ledger redux actions for a specific Gatsby Cloud site ID and a specific Gatsby site path local to the process calling synchronize. It handles its own caching via a provided cache function with get and set methods. It returns a promise that's resolved when all actions are synced or its determined that the synchronizer can be invoked in any follower when they need to sync data from Cloud.

Usage

import { synchronize } from "@gatsby-cloud-pkg/merlin-synchronizer"

const { ledgerExists } = await synchronize({
  siteId, // should be a site ID for a Gatsby Cloud site
  gatsbySitePath, // should be an absolute path to a Gatsby site on disk
  cache, // needs cache.get and cache.set methods
  // sourcingConfigurationId, <-- this is optional. a sourcingConfigurationId will be computed from the Gatsby site at the gatsbySitePath. But you can pass this directly too
  handleAction: (action) => {
    // do stuff with this action
    // it's a Gatsby core redux action which was emitted in Merlin and stored in GCS
  },
})
import { computeSourcingConfigurationId } from "@gatsby-cloud-pkg/merlin-synchronizer"

// ...
const sourcingConfigurationId = await computeSourcingConfigurationId(
  pathToGatsbySite
)

Development

You must have previously written a ledger to disk. You can do this by running yarn:start:local in services/cloud-sourcerer in the mansion repo. You may need to set environment variables for the site you are using to generate the ledger.

  1. Run dev-monolith with yarn:start:local in services/dev-monolith
  2. Create an env file with the SITE_ID you used to generate the ledger and the correct port for the API, e.g. GATSBY_CLOUD_DATALAYER=http://localhost:8201/get-ledger-entries if not using 8083
  3. Run yarn run:local in the merlin-synchronizer directory.

FAQs

Package last updated on 17 Oct 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc