Gatsby Plugin Revision
Let’s say you have a big site, or a very sensative site. You deployed your content and then a week or two passes and you need to add content. There’s might be a case where you deleted very important content or changed something very sensitive.
One way to solve this is before working on the content you’ll make a revision. The revision is kind of snapshot that will insure that in case you made a mistake you can bring back the site as it was, deploy it in less then a minute and you’ll be able to work on the content and deliver the new content with the fixes.
Installation
Install the package from:
npm i gatsby-plugin-revisionsIn the gatsby-config.js add the plugin to the list of plugins:
module.exports = {
plugins: [`gatsby-plugin-revisions`]
}Use the plugin with settings:
module.exports = {
/* Your site config here */
plugins: [
{
resolve: `gatsby-plugin-revisions`,
options: {
eventsAddressBroadcast: 'http://localhost/drupal/gatsby-revisions/event-listener'
}
},
]
}eventsAddressBroadcast: When there’s an event which can take a lot of time the plugin will send payload for notifying the client which trigger the event which it can handle it later on:
Example 1:
{
"event": "revision_creation",
"status": "failed",
"revisionId": 133465345,
"data": "Not enough space"
}Example 2:
{
"event": "revision_creation",
"status": "succeeded",
"revisionId": 233243123
}Endpoints
There are a couple of interactions:
Creating a revision
POST http://localhost:8000/revisionWhich will return
json
{
"message": "Revision has created",
"revisionId": 1592051189330
}
Get a list of revisions
GET http://localhost:8000/revisionsWhich will return
json
[
"1592042752916",
"1592051189330"
]
Revert to a revision
POST http://localhost:8000/revision-revert/:revision-id
* :revision-id: The number of the revision.Which will return
json
{
"message": "The revision 1592051189330 has been reverted."
}