External Deployment Engine
Context
This document provides detailed instructions for Node Providers to integrate the external deployment endpoint into their system. The external deployment endpoint is designed to automate the deployment of database instances per customer request, allowing Node Providers to streamline their deployment process.
The purpose of integrating the external deployment endpoint is to automate the deployment of database instances in response to customer accepting your bid.
Architecture
The external deployment endpoint operates as a REST API/service that accepts deployment requests in JSON format. Upon receiving a deployment request, it automates the deployment of database instances according to the specified customer requirements.

Specification
Node Providers can implement the external pricing engine in any platform or stack they have expertise in. However, a sample NodeJS application is provided as a reference implementation (below).
Input JSON Format (HTTP POST)
{
name: 'My Dev Deployment',
address: '581037272ca2533df3cf215dceac56c3fe8a1d6cc7317ec28e5e257e556ed056',
region: 'WESTERN_EUROPE-United Kingdom-London',
dbEngine: 'MySQL',
dbEngineVersion: '8.2.0',
specification: 'DB AI MODEL K12 - 256 GB RAM - 64 vCPU(s)',
memory: 256,
storage: 4100,
cpu: 64,
isRedundancyRequired: true,
redundancy: 1,
isBackupRequired: true,
backupFrequencyDays: 2,
backupRetentionDays: 1,
deploymentType: 'SHARED',
isSharedInstance: true,
iops: 1000,
paymentFrequency: 'MONTHLY',
isActive: true,
status: 'NEW',
dateCreated: 1709156623175,
dbOwner: '0xa1d2339b6d633e129f3aeb2a59a8445dbb8b4117'
}
Use the address
field in the above JSON and set the environment variable DEPLOYMENT_ADDRESS
in the data3-storage-node
to associate the storage node with the customer request.
Sample Pricing App
To achieve this automated pricing easily, we have provided an additional /deploy endpoint in the same sample NodeJS application for pricing.
Review the provided sample NodeJS application hosted on GitHub: data3-sample-pricing-app. This application serves as a starting point for implementing the external deployment engine.
Program your pricing logic in the
deploy
function within thedeploy.js
file of the sample application. This function should accept customer request information.The sample pricing app as described in the External Pricing Engine section when started will also host the
/deploy
endpoint athttp://localhost:3080/deploy
Once the sample application is running, test the integration by configuring the Node Provider Service's environment variable
EXTERNAL_DEPLOYMENT_API_ENDPOINT
to point to this sample deployment endpoint athttp://localhost:3080/deploy
and ensuring that customer acceptances of your bids are sent to this external deployment engine.
For more details, please refer to the README.md file of the sample application.
Resources
Sample NodeJS Application: data3-sample-pricing-app
README.md: README.md
Last updated