-
Notifications
You must be signed in to change notification settings - Fork 19
feat: decoupled sourcing PoC #561
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
base: main
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for netlify-plugin-gatsby-demo ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
plugin/package.json
Outdated
@@ -40,6 +40,7 @@ | |||
"prepare": "npm run build" | |||
}, | |||
"dependencies": { | |||
"@gatsby-cloud-pkg/merlin-synchronizer": "^0.3.6", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding it as a dep of the plugin should make it resolvable to builds, but we can do tests with auto-install using feature flags later
plugin/src/helpers/files.ts
Outdated
if ( | ||
!process.env.GATSBY_CLOUD_DATALAYER || | ||
!process.env.GATSBY_SITE_ID || | ||
!process.env.SITE_AUTH_JWT | ||
) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These currently need to be manually set
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
instead of SITE_AUTH_JWT, can we make it RESOURCE_AUTH_JWT
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and instead of GATSBY_SITE_ID
lets do CONTENT_CLOUD_ID
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SITE_AUTH_JWT
is for merlin-synchronizer
, so we'd need to change that module to allow either
* This file was copied from Gatsby core and modified and will be copied back into node_modules/gatsby when Netlify does a cold-cache build. | ||
* See 'helpers/files.ts' | ||
*/ | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This injected file is copied from the Gatsby repo with a few small changes to work on Netlify
return originalSourceNodesApiRunner.sourceNodesApiRunner(args) | ||
} | ||
|
||
const { synchronize } = require(`@gatsby-cloud-pkg/merlin-synchronizer`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We may need to replace this with a full resolved path to the dependency if resolving from an auto-installed plugin fails
encoding: `string`, | ||
}).init() | ||
|
||
const siteId = process.env.GATSBY_SITE_ID |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this will be CONTENT_CLOUD_ID
Summary
PoC for experimental decoupled sourcing support. Test this by installing
@netlify/plugin-gatsby@merlin
and then setting the env varsGATSBY_CLOUD_DATALAYER
,CONTENT_CLOUD_ID
andRESOURCE_AUTH_JWT
Test plan
Relevant links (GitHub issues, Notion docs, etc.) or a picture of cute animal
Standard checks:
🧪 Once merged, make sure to update the version if needed and that it was
published correctly.