diff --git a/api/index.js b/api/index.js index 4f40e609d..3ca80dfca 100644 --- a/api/index.js +++ b/api/index.js @@ -3,8 +3,7 @@ const serverlesswp = require('serverlesswp'); const { validate } = require('../util/install.js'); const { setup } = require('../util/directory.js'); const sqliteS3 = require('../util/sqliteS3.js'); - -const { register } = require('../util/goldilock.js'); +const goldilock = require('../util/goldilock.js'); const pathToWP = '/tmp/wp'; let initSqliteS3 = false; @@ -53,7 +52,7 @@ exports.handler = async function (event, context, callback) { if (process.env['SERVERLESSWP_DATA_SECRET']) { sqliteS3Config.S3Client.endpoint = 'https://data.serverlesswp.com'; - sqliteS3Config.onAuthError = () => register( + sqliteS3Config.onAuthError = () => goldilock.register( sqliteS3Config.bucket, process.env['SERVERLESSWP_DATA_SECRET'] ); @@ -83,3 +82,8 @@ if (process.env['SQLITE_S3_BUCKET'] || process.env['SERVERLESSWP_DATA_SECRET']) // Register the sqlite serverlesswp plugin. serverlesswp.registerPlugin(sqliteS3); } + +if (process.env['SERVERLESSWP_DATA_SECRET']) { + // Register the goldilock widget plugin. + serverlesswp.registerPlugin(goldilock); +} diff --git a/package.json b/package.json index 31210af0a..2604be00a 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "license": "MIT", "dependencies": { "@aws-sdk/client-s3": "^3.772.0", - "serverlesswp": "^0.4.4", + "serverlesswp": "^0.5.0", "sqlite3": "^5.1.7" }, "engines": { diff --git a/readme.md b/readme.md index f1da80dfe..c63a9c84c 100644 --- a/readme.md +++ b/readme.md @@ -8,7 +8,7 @@ ServerlessWP puts PHP & WordPress in serverless functions. Deploy this repositor Stay up-to-date at the ServerlessWP repository: [github.com/mitchmac/serverlesswp](https://github.com/mitchmac/serverlesswp) -  +  ## Quick Deploy diff --git a/util/goldilock.js b/util/goldilock.js index bce5f183c..f86c9018d 100644 --- a/util/goldilock.js +++ b/util/goldilock.js @@ -1,3 +1,4 @@ +exports.name = 'Goldilock Widget'; exports.register = async function (bucket, secret) { const response = await fetch('https://data.serverlesswp.com/auto-register', { @@ -12,4 +13,25 @@ exports.register = async function (bucket, secret) { const errorText = await response.text(); throw new Error(`Auto registration failed: ${errorText}`); } +} + +exports.postRequest = async function(event, response) { + if (!response || !response.body) { + return; + } + + const contentType = response.headers?.['content-type'] || response.headers?.['Content-Type'] || ''; + if (!contentType.includes('text/html')) { + return; + } + + const widgetHtml = ` +