ToolJet/plugins/packages/mongodb/lib/manifest.json

653 lines
19 KiB
JSON
Raw Normal View History

{
"$schema": "https://raw.githubusercontent.com/ToolJet/ToolJet/develop/plugins/schemas/manifest.schema.json",
"title": "Mongodb datasource",
"description": "A schema defining mongodb datasource",
"type": "object",
"tj:version": "1.0.0",
"tj:source": {
"name": "MongoDB",
"kind": "mongodb",
"type": "database"
},
"properties": {
"connection_type": {
"type": "string",
"title": "Connection type",
"description": "Single select dropdown for connection_type",
"enum": ["manual", "string"],
"default": "manual"
},
"connection_string": {
"type": "string",
"title": "Connection string",
"description": "mongodb://admin:SecureP@ss2024!prod-db-1.company.com:27017/customer_data",
"encrypted" : true
},
"connection_format": {
"type": "string",
"title": "Connection format",
"description": "Select the connection protocol format",
"enum": ["mongodb", "mongodb+srv"],
"default": "mongodb"
},
"host": {
"type": "string",
"title": "Host"
},
"port": {
"type": "number",
"title": "Port",
"default": 27017
},
"database": {
"type": "string",
"title": "Database name"
},
"username": {
"type": "string",
"title": "Username",
"description": "Enter username"
},
"password": {
"type": "string",
"title": "Password"
},
"use_ssl": {
"type": "string",
"title": "SSL/TLS",
"description": "Connect using SSL/TLS",
"enum": ["enabled", "disabled"],
"default": "disabled"
},
"tls_certificate": {
"type": "string",
"title": "SSL/TLS certificate",
"description": "Single select dropdown for choosing certificates",
"enum": ["ca_certificate", "client_certificate", "none"],
"default": "none"
},
"ca_cert": {
"type": "string",
"title": "CA cert",
"description": "Enter CA certificate"
},
"client_key": {
"type": "string",
"title": "Client key",
"description": "Enter client key"
},
"client_cert": {
"type": "string",
"title": "Client cert",
"description": "Enter client certificate"
},
"ssh_enabled": {
"type": "string",
"title": "SSH Tunnel",
"description": "Connect through an SSH server",
"enum": ["enabled", "disabled"],
"default": "disabled"
},
"ssh_host": {
"type": "string",
"title": "SSH Host"
},
"ssh_port": {
"type": "number",
"title": "SSH Port",
"default": 22
},
"ssh_username": {
"type": "string",
"title": "SSH Username"
},
"ssh_auth_type": {
"type": "string",
"title": "SSH Authentication Type",
"enum": ["private_key", "password"],
"default": "private_key"
},
"ssh_private_key": {
"type": "string",
"title": "SSH Private Key"
},
"ssh_password": {
"type": "string",
"title": "SSH Password"
},
"ssh_passphrase": {
"type": "string",
"title": "SSH Passphrase"
},
"ssh_dst_host": {
"type": "string",
"title": "MongoDB Host (via SSH)"
}
},
"tj:encrypted": [
"password",
"ca_cert",
"client_key",
"client_cert",
"connection_string",
"ssh_private_key",
"ssh_password",
"ssh_passphrase"
],
"required": ["connection_type"],
"allOf": [
{
"if": {
"properties": {
"connection_type": { "const": "manual" }
}
},
"then": {
"required": ["host"],
"allOf": [
{
"if": {
"properties": {
"connection_format": { "const": "mongodb" }
}
},
"then": {
"required": ["port"]
}
},
{
"if": {
"properties": {
"use_ssl": { "const": "enabled" }
}
},
"then": {
"required": ["tls_certificate"],
"allOf": [
{
"if": {
"properties": {
"tls_certificate": { "const": "ca_certificate" }
}
},
"then": { "required": ["ca_cert"] }
},
{
"if": {
"properties": {
"tls_certificate": { "const": "client_certificate" }
}
},
"then": { "required": ["client_key", "client_cert", "ca_cert"] }
}
]
}
}
]
}
},
{
"if": {
"properties": {
"connection_type": {
"const": "string"
}
}
},
"then": {
"required": ["connection_string"]
}
},
{
"if": {
"properties": {
"ssh_enabled": { "const": "enabled" }
}
},
"then": {
"required": ["ssh_host", "ssh_port", "ssh_username", "ssh_auth_type"]
}
}
],
"tj:ui:properties": {
"connection_type": {
"order": 1,
"$ref": "#/properties/connection_type",
Move plugins to root (#1728) * feat: move plugins to root * modify tsconfig * add .gitignore * delete old plugins file * add parcel * docker compose volume mount * add gcs * add typescript to plugins folder * gcs to ts * add dynamodb * add elastic search * add firestore * add gsheets * add graphql * add mongodb * mssql * add mysql * add postgresql * add redis * add s3 * add slack * add stripe * remove plugin related packages from pkgjson * add lib folder * add gitignore * remove typescript generated files * remove generated file * remove generated files * add twilio * add dist to docker compose cache binding * add dist prefix * cleanup - 1 * delete dist * rename to index.ts + add jest config * add it.todo in tests * test fixes * test file changes * fix type checks * add @tooljet/plugins to server package json * esm vs commonjs bug, reduce got to 11.8.2 from 12.0.0 * docker file npm package version fix * add typesense * cleaup - 2 * add sendgrid * add lerna build and clean script for all packages + tsconfig * cleanup -3 * add plugins build step * add missing plugins build step in npm run build * add mssql, mysql & postgres as singleton classes * add db connection to cache only if datasourceId is available * client: add data source schema/manifest files * add query operations files * logic for wrapping form with schema * add script to create index file * add @tooljet/plugins to frontend folder * cleanup 1 -frontend * cleanup - 2 // frontend // data queries * add client and index to gitignore * update gitignore * fix lint & test * update ci * fix unit, e2e * cleanup -3 * fix test * fix tests * fix indent * try npm ci * fix tests * fix typo * fix * rename file for server entry * heroku fix * add main and types entry points in pkg json * move common to root * cleanup - 4: remove redundant $ sign prefix * cleanup - 4: remove redundant $ sign prefix * update options in-sync before DOM is painted * change type cloud to cloud storage * update readme * update ci.yml * update ci yml * add pkg-lock.json * rename index.ts to server.ts * update lock files * add server package.lock * remove unused import * revert commit: add minio * add root dep * import server.ts * remove plugins build step * add npm shrinkwrap * update version - plugins * add new version - 0.0.8 * upgrade version * move to symlinked package * add lock file * feat: add icon inside package * add plugin creation docs * Remove seed * move icons to plugins folder * install pg dep * add react to packages * add seed cmd * revert change * add plugins build in lint, e2e, unit * e2e, lint use npm ci * update dockerfile for plugins * try combining release with web * limit memory on release * try executing seed script post transpile * try executing seed from server directory * update seed execution * add minio * add correct type * add minio to pkg json * remove old file * fix provider key * add python installable + npm ^7.2.0 (#1752) * add python installable + npm ^7.2.0 * add py to prod file * pin npm version to 7.20.0 * pin npm version to 7.20.0 * split into multi stage build and remove python for buildx * copy plugins from buider stage * update dependencies * add freetds dependency * update server dockerfile * update client dockerfile * update dev dockerfile and compose file * fix entrypoint * fix server dev dockerfile * update docker-compose * remove npm install on root dir on docker build * fix heroku script * make lerna prod dependency to enable prod builds * remove redundant env setup Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com> Co-authored-by: navaneeth <navaneethpk@outlook.com>
2022-01-17 07:08:17 +00:00
"key": "connection_type",
"label": "Connection type",
"description": "Single select dropdown for connection_type",
"widget": "dropdown-component-flip",
Move plugins to root (#1728) * feat: move plugins to root * modify tsconfig * add .gitignore * delete old plugins file * add parcel * docker compose volume mount * add gcs * add typescript to plugins folder * gcs to ts * add dynamodb * add elastic search * add firestore * add gsheets * add graphql * add mongodb * mssql * add mysql * add postgresql * add redis * add s3 * add slack * add stripe * remove plugin related packages from pkgjson * add lib folder * add gitignore * remove typescript generated files * remove generated file * remove generated files * add twilio * add dist to docker compose cache binding * add dist prefix * cleanup - 1 * delete dist * rename to index.ts + add jest config * add it.todo in tests * test fixes * test file changes * fix type checks * add @tooljet/plugins to server package json * esm vs commonjs bug, reduce got to 11.8.2 from 12.0.0 * docker file npm package version fix * add typesense * cleaup - 2 * add sendgrid * add lerna build and clean script for all packages + tsconfig * cleanup -3 * add plugins build step * add missing plugins build step in npm run build * add mssql, mysql & postgres as singleton classes * add db connection to cache only if datasourceId is available * client: add data source schema/manifest files * add query operations files * logic for wrapping form with schema * add script to create index file * add @tooljet/plugins to frontend folder * cleanup 1 -frontend * cleanup - 2 // frontend // data queries * add client and index to gitignore * update gitignore * fix lint & test * update ci * fix unit, e2e * cleanup -3 * fix test * fix tests * fix indent * try npm ci * fix tests * fix typo * fix * rename file for server entry * heroku fix * add main and types entry points in pkg json * move common to root * cleanup - 4: remove redundant $ sign prefix * cleanup - 4: remove redundant $ sign prefix * update options in-sync before DOM is painted * change type cloud to cloud storage * update readme * update ci.yml * update ci yml * add pkg-lock.json * rename index.ts to server.ts * update lock files * add server package.lock * remove unused import * revert commit: add minio * add root dep * import server.ts * remove plugins build step * add npm shrinkwrap * update version - plugins * add new version - 0.0.8 * upgrade version * move to symlinked package * add lock file * feat: add icon inside package * add plugin creation docs * Remove seed * move icons to plugins folder * install pg dep * add react to packages * add seed cmd * revert change * add plugins build in lint, e2e, unit * e2e, lint use npm ci * update dockerfile for plugins * try combining release with web * limit memory on release * try executing seed script post transpile * try executing seed from server directory * update seed execution * add minio * add correct type * add minio to pkg json * remove old file * fix provider key * add python installable + npm ^7.2.0 (#1752) * add python installable + npm ^7.2.0 * add py to prod file * pin npm version to 7.20.0 * pin npm version to 7.20.0 * split into multi stage build and remove python for buildx * copy plugins from buider stage * update dependencies * add freetds dependency * update server dockerfile * update client dockerfile * update dev dockerfile and compose file * fix entrypoint * fix server dev dockerfile * update docker-compose * remove npm install on root dir on docker build * fix heroku script * make lerna prod dependency to enable prod builds * remove redundant env setup Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com> Co-authored-by: navaneeth <navaneethpk@outlook.com>
2022-01-17 07:08:17 +00:00
"list": [
{
"name": "Manual connection",
"value": "manual"
},
{
"name": "Connect using connection string",
"value": "string"
}
]
},
"manual": {
"connection_format": {
"order": 10,
"$ref": "#/properties/connection_format",
"key": "connection_format",
"label": "Connection format",
"description": "Select the connection protocol format",
"widget": "dropdown-component-flip",
"list": [
{ "name": "Standard (mongodb)", "value": "mongodb" },
{ "name": "DNS Seed list (mongodb+srv)", "value": "mongodb+srv" }
],
"mongodb": {
"port": {
"order": 30,
"$ref": "#/properties/port",
"key": "port",
"label": "Port",
"description": "Enter port",
"widget": "text-v3",
"required": true
}
},
"mongodb+srv": {}
},
"host": {
"order": 20,
"$ref": "#/properties/host",
"key": "host",
"label": "Host",
"description": "Enter host",
"widget": "text-v3",
"required": true
},
"database": {
"order": 40,
"$ref": "#/properties/database",
"key": "database",
"label": "Database",
"description": "Enter name of the database",
"widget": "text-v3"
},
"username": {
"order": 50,
"$ref": "#/properties/username",
"key": "username",
"label": "Username",
"description": "Enter username",
"widget": "text-v3"
},
"password": {
"order": 60,
"$ref": "#/properties/password",
"key": "password",
"label": "Password",
"description": "Enter password",
"widget": "password-v3",
"help_text": "Supports secrets (e.g.,{{secrets.db_password}})"
},
"use_ssl": {
"order": 70,
"$ref": "#/properties/use_ssl",
"key": "use_ssl",
"label": "SSL/TLS",
"description": "Connect using SSL/TLS",
"help_text": "Enable encrypted connections to MongoDB server",
"widget": "toggle-flip",
"default": "disabled",
"enabled": {
"tls_certificate": {
"order": 80,
"$ref": "#/properties/tls_certificate",
"key": "tls_certificate",
"label": "SSL/TLS certificate",
"description": "Single select dropdown for choosing certificates",
"widget": "dropdown-component-flip",
"list": [
{ "value": "ca_certificate", "name": "CA certificate" },
{ "value": "client_certificate", "name": "Client certificate" },
{ "value": "none", "name": "None" }
]
},
"ca_certificate": {
"ca_cert": {
"order": 90,
"$ref": "#/properties/ca_cert",
"key": "ca_cert",
"label": "CA cert",
"description": "Enter CA certificate",
"widget": "password-v3-textarea"
}
},
"client_certificate": {
"client_key": {
"order": 90,
"$ref": "#/properties/client_key",
"key": "client_key",
"label": "Client key",
"description": "Enter client key",
"widget": "password-v3-textarea"
},
"client_cert": {
"order": 100,
"$ref": "#/properties/client_cert",
"key": "client_cert",
"label": "Client cert",
"description": "Enter client certificate",
"widget": "password-v3-textarea"
},
"ca_cert": {
"order": 110,
"$ref": "#/properties/ca_cert",
"key": "ca_cert",
"label": "CA cert",
"description": "Enter CA certificate",
"widget": "password-v3-textarea"
}
},
"none": {}
},
"disabled": {}
},
"ssh_enabled": {
"order": 120,
"$ref": "#/properties/ssh_enabled",
"key": "ssh_enabled",
"label": "SSH tunnel",
"description": "Connect through an SSH server",
"help_text": "Connect through an SSH server to access databases in private networks",
"widget": "toggle-flip",
"default": "disabled",
"enabled": {
"ssh_host": {
"order": 130,
"$ref": "#/properties/ssh_host",
"key": "ssh_host",
"label": "SSH host",
"description": "ssh.example.com",
"widget": "text-v3",
"help_text": "SSH server hostname or IP address"
},
"ssh_port": {
"order": 140,
"$ref": "#/properties/ssh_port",
"key": "ssh_port",
"label": "SSH port",
"description": "22",
"help_text": "Default SSH port is 22",
"widget": "text-v3"
},
"ssh_username": {
"order": 150,
"$ref": "#/properties/ssh_username",
"key": "ssh_username",
"label": "SSH username",
"description": "SSH Username",
"widget": "text-v3"
},
"ssh_dst_host": {
"order": 155,
"$ref": "#/properties/ssh_dst_host",
"key": "ssh_dst_host",
"label": "SSH dst host",
"description": "localhost",
"widget": "text-v3"
},
"ssh_auth_type": {
"order": 160,
"$ref": "#/properties/ssh_auth_type",
"key": "ssh_auth_type",
"label": "Authentication type",
"widget": "dropdown-component-flip",
"default": "private_key",
"list": [
{ "value": "private_key", "name": "Private Key" },
{ "value": "password", "name": "Password" }
]
},
"private_key": {
"ssh_private_key": {
"order": 170,
"$ref": "#/properties/ssh_private_key",
"key": "ssh_private_key",
"label": "SSH private key",
"widget": "password-v3-textarea"
},
"ssh_passphrase": {
"order": 180,
"$ref": "#/properties/ssh_passphrase",
"key": "ssh_passphrase",
"label": "SSH passphrase",
"widget": "password-v3"
}
},
"password": {
"ssh_password": {
"order": 170,
"$ref": "#/properties/ssh_password",
"key": "ssh_password",
"label": "SSH password",
"widget": "password-v3"
}
}
},
"disabled": {}
}
},
"string": {
"connection_string": {
"order": 2,
"$ref": "#/properties/connection_string",
"key": "connection_string",
"label": "Connection string",
"description": "mongodb://username:password@hostname:port/database",
"widget": "password-v3-textarea",
"required": true
},
"connection_format": {
"order": 10,
"$ref": "#/properties/connection_format",
"key": "connection_format",
"label": "Connection format",
"description": "Select the connection protocol format",
"widget": "dropdown-component-flip",
"list": [
{ "name": "Standard (mongodb)", "value": "mongodb" },
{ "name": "DNS Seed list (mongodb+srv)", "value": "mongodb+srv" }
],
"mongodb": {
"port": {
"order": 30,
"$ref": "#/properties/port",
"key": "port",
"label": "Port",
"description": "Enter port",
"widget": "text-v3"
}
},
"mongodb+srv": {}
},
"host": {
"order": 20,
"$ref": "#/properties/host",
"key": "host",
"label": "Host",
"description": "Enter host",
"widget": "text-v3"
},
"database": {
"order": 40,
"$ref": "#/properties/database",
"key": "database",
"label": "Database",
"description": "Name of the database",
"widget": "text-v3"
},
"username": {
"order": 50,
"$ref": "#/properties/username",
"key": "username",
"label": "Username",
"description": "Enter username",
"widget": "text-v3"
},
"password": {
"order": 60,
"$ref": "#/properties/password",
"key": "password",
"label": "Password",
"description": "Enter password",
"widget": "password-v3",
"help_text": "Supports secrets (e.g.,{{secrets.db_password}})"
},
"use_ssl": {
"order": 70,
"$ref": "#/properties/use_ssl",
"key": "use_ssl",
"label": "SSL/TLS",
"description": "Connect using SSL/TLS",
"help_text": "Enable encrypted connections to MongoDB server",
"widget": "toggle-flip",
"default": "disabled",
"enabled": {
"tls_certificate": {
"order": 80,
"$ref": "#/properties/tls_certificate",
"key": "tls_certificate",
"label": "SSL/TLS certificate",
"description": "Single select dropdown for choosing certificates",
"widget": "dropdown-component-flip",
"list": [
{ "value": "ca_certificate", "name": "CA certificate" },
{ "value": "client_certificate", "name": "Client certificate" },
{ "value": "none", "name": "None" }
],
"ca_certificate": {
"ca_cert": {
"order": 90,
"$ref": "#/properties/ca_cert",
"key": "ca_cert",
"label": "CA cert",
"description": "Enter CA certificate",
"widget": "password-v3-textarea"
}
},
"client_certificate": {
"client_key": {
"order": 90,
"$ref": "#/properties/client_key",
"key": "client_key",
"label": "Client key",
"description": "Enter client key",
"widget": "password-v3-textarea"
},
"client_cert": {
"order": 100,
"$ref": "#/properties/client_cert",
"key": "client_cert",
"label": "Client cert",
"description": "Enter client certificate",
"widget": "password-v3-textarea"
},
"ca_cert": {
"order": 110,
"$ref": "#/properties/ca_cert",
"key": "ca_cert",
"label": "CA cert",
"description": "Enter CA certificate",
"widget": "password-v3-textarea"
}
},
"none": {}
}
},
"disabled": {}
},
"ssh_enabled": {
"order": 120,
"$ref": "#/properties/ssh_enabled",
"key": "ssh_enabled",
"label": "SSH tunnel",
"description": "Connect through an SSH server",
"help_text": "Connect through an SSH server to access databases in private networks",
"widget": "toggle-flip",
"default": "disabled",
"enabled": {
"ssh_host": {
"order": 130,
"$ref": "#/properties/ssh_host",
"key": "ssh_host",
"label": "SSH host",
"description": "ssh.example.com",
"widget": "text-v3",
"help_text": "SSH server hostname or IP address"
},
"ssh_port": {
"order": 140,
"$ref": "#/properties/ssh_port",
"key": "ssh_port",
"label": "SSH port",
"description": "22",
"widget": "text-v3",
"help_text": "Default SSH port is 22"
},
"ssh_username": {
"order": 150,
"$ref": "#/properties/ssh_username",
"key": "ssh_username",
"label": "SSH username",
"description": "SSH Username",
"widget": "text-v3"
},
"ssh_dst_host": {
"order": 155,
"$ref": "#/properties/ssh_dst_host",
"key": "ssh_dst_host",
"label": "SSH dst host",
"description": "localhost",
"widget": "text-v3"
},
"ssh_auth_type": {
"order": 160,
"$ref": "#/properties/ssh_auth_type",
"key": "ssh_auth_type",
"label": "Authentication type",
"widget": "dropdown-component-flip",
"default": "private_key",
"list": [
{ "value": "private_key", "name": "Private Key" },
{ "value": "password", "name": "Password" }
]
},
"private_key": {
"ssh_private_key": {
"order": 170,
"$ref": "#/properties/ssh_private_key",
"key": "ssh_private_key",
"label": "SSH private key",
"widget": "password-v3-textarea"
},
"ssh_passphrase": {
"order": 180,
"$ref": "#/properties/ssh_passphrase",
"key": "ssh_passphrase",
"label": "SSH passphrase",
"widget": "password-v3"
}
},
"password": {
"ssh_password": {
"order": 170,
"$ref": "#/properties/ssh_password",
"key": "ssh_password",
"label": "SSH password",
"widget": "password-v3"
}
}
},
"disabled": {}
}
}
}
}