Update Query algo

This commit is contained in:
Benjamin Toby 2024-11-06 10:30:00 +01:00
parent 6c78cae127
commit 54b7981be4
8 changed files with 43 additions and 14 deletions

View File

@ -116,3 +116,29 @@ const postData = await datasquirel.uploadImage({
},
});
```
### Local Querying
You can query directly from an SQL database if you provide these environment variables in your `.env` file:
```conf
DSQL_DB_HOST=
DSQL_DB_PORT=
DSQL_DB_USERNAME=
DSQL_DB_PASSWORD=
DSQL_DB_NAME=
DSQL_SSL_DIR=
```
The ssl directory **_must_** contain a file named `ca-cert.pem`. `DSQL_DB_PORT` defaults to **3306** if not provided.
### Remote Querying
You can query from a self hosted installation of datasquirel. Just add these environment variables:
```conf
DSQL_API_REMOTE_HOST=
DSQL_API_REMOTE_HOST_PORT=
```
If these aren't provided it defaults to `datasquirel.com`.

View File

@ -6,7 +6,8 @@ const serverError = require("./serverError");
const mysql = require("serverless-mysql");
const path = require("path");
const SSL_DIR = "/app/ssl";
const SSL_DIR =
process.env.DSQL_SSL_DIR || path.resolve(__dirname, "../../../ssl");
const connection = mysql({
config: {

View File

@ -4,7 +4,8 @@ const fs = require("fs");
const path = require("path");
const mysql = require("serverless-mysql");
const SSL_DIR = "/app/ssl";
const SSL_DIR =
process.env.DSQL_SSL_DIR || path.resolve(__dirname, "../../../../ssl");
const MASTER = mysql({
config: {
@ -12,7 +13,9 @@ const MASTER = mysql({
user: process.env.DSQL_DB_USERNAME,
password: process.env.DSQL_DB_PASSWORD,
database: process.env.DSQL_DB_NAME,
port: process.env.DB_PORT ? Number(process.env.DB_PORT) : undefined,
port: process.env.DSQL_DB_PORT
? Number(process.env.DSQL_DB_PORT)
: undefined,
charset: "utf8mb4",
ssl: {
ca: fs.readFileSync(`${SSL_DIR}/ca-cert.pem`),

View File

@ -5,7 +5,8 @@ const path = require("path");
const mysql = require("serverless-mysql");
const SSL_DIR = "/app/ssl";
const SSL_DIR =
process.env.DSQL_SSL_DIR || path.resolve(__dirname, "../../../../ssl");
let DSQL_USER = mysql({
config: {

View File

@ -14,7 +14,8 @@ const path = require("path");
const mysql = require("serverless-mysql");
const SSL_DIR = "/app/ssl";
const SSL_DIR =
process.env.DSQL_SSL_DIR || path.resolve(__dirname, "../../../../ssl");
let NO_DB = mysql({
config: {

View File

@ -5,7 +5,8 @@ const path = require("path");
const mysql = require("serverless-mysql");
const SSL_DIR = "/app/ssl";
const SSL_DIR =
process.env.DSQL_SSL_DIR || path.resolve(__dirname, "../../../../ssl");
let NO_DB = mysql({
config: {

View File

@ -1,6 +1,6 @@
{
"name": "datasquirel",
"version": "2.3.6",
"version": "2.3.7",
"description": "Cloud-based SQL data management tool",
"main": "index.js",
"bin": {

View File

@ -49,17 +49,13 @@ async function get({ key, db, query, queryValues, tableName }) {
*
* @description Look for local db settings in `.env` file and by pass the http request if available
*/
const {
DSQL_DB_HOST,
DSQL_DB_USERNAME,
DSQL_MARIADB_ROOT_PASSWORD,
DSQL_DB_NAME,
} = process.env;
const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } =
process.env;
if (
DSQL_DB_HOST?.match(/./) &&
DSQL_DB_USERNAME?.match(/./) &&
DSQL_MARIADB_ROOT_PASSWORD?.match(/./) &&
DSQL_DB_PASSWORD?.match(/./) &&
DSQL_DB_NAME?.match(/./)
) {
/** @type {import("../package-shared/types").DSQL_DatabaseSchemaType | undefined} */