@moduletrace/datasquirel (3.1.6)

Published 2024-12-15 10:25:13 +00:00 by tben

Installation

@moduletrace:registry=
npm install @moduletrace/datasquirel@3.1.6
"@moduletrace/datasquirel": "3.1.6"

About this package

Datasquirel

This package requires an account with datasquirel, or a self hosted instance of the datasquirel web admin with your URL. You can also use the SQL query aspect if you provide needed credentials for a database connection, however in this instance the static files feature is disabled.

Installation

First add the npm registry to your .npmrc file:

@moduletrace:registry=https://git.tben.me/api/packages/moduletrace/npm/

After setting up the registry you can install the package by running

npm install @moduletrace/datasquirel

Once the package is installed, you can import the library using require approach:

const datasquirel = require("@moduletrace/datasquirel");

Or you can use ES6 module imports:

import datasquirel from "@moduletrace/datasquirel";

Usage

Fetch Data

This method requires a readonly key or fullaccess API key gotten from datasquirel. It uses a basic https get request paired with some query params.

const datasquirel = require("@moduletrace/datasquirel");

const getData = await datasquirel.get({
    key: "aldhkf89asdflksdafh908asdfjkhasdf", // Readonly API Key
    db: "my_database", // Database name slug (Eg. Db Name => My Database, Db Slug => my_database)
    query: "SELECT * FROM blog_posts", // SQL Query
    user_id: 129, // Your User Id: check settings page
});

NOTE: You can skip the user_id parameter by adding an environment variable named DSQL_API_USER_ID

Datasquirel uses all conventional SQL query commands. However you can only use the SELECT command when using a readonly API key.

Post Data

This method requires a fullaccess API key gotten from datasquirel. You can perform a basic fetch with this method, as well as more complex operations like UPDATE, DELETE and INSERT.

const datasquirel = require("@moduletrace/datasquirel");

const postData = await datasquirel.post({
    key: "aldhkf89asdflksdafh908asdfjkhasdf", // Fullaccess API Key
    payload: {
        action: "insert", // OR "update" OR "delete" OR "select"
        data: {
            user_id: "19aisdn123",
            user_first_name: "John",
            user_last_name: "Doe",
        },
        table: "users",
        user_id: 271,
    },
});

You can simply replace the payload object with an SQL string and it does everything you provide in the SQL command.

const datasquirel = require("@moduletrace/datasquirel");

const postData = await datasquirel.post({
    key: process.env.FULL_ACCESS_API_KEY,
    payload: "SELECT * FROM blog_posts WHERE user_id='as09d7nasd90'",
    user_id: 271,
});

You can add a condition to the payload object to filter the results

const datasquirel = require("@moduletrace/datasquirel");

const postData = await datasquirel.post({
    key: process.env.FULL_ACCESS_API_KEY,
    payload: {
        action: "delete",
        condition: `WHERE user_id='21adwei9jewr' AND type='buyers'`,
        table: "users",
    },
    user_id: 271,
});

You can use identifierColumnName and identifierValue when updating an entry.

const datasquirel = require("@moduletrace/datasquirel");

const postData = await datasquirel.post({
    key: process.env.FULL_ACCESS_API_KEY,
    payload: {
        action: "update",
        table: "users",
        identifierColumnName: "id",
        identifierValue: "21adwei9jewr",
        data: {
            first_name: "Mary",
            last_name: "Spencer",
        },
    },
    user_id: 271,
});

Upload Image

This method requires is similar to the post method, but with different parameters.

const datasquirel = require("@moduletrace/datasquirel");

const postData = await datasquirel.uploadImage({
    key: process.env.FULL_ACCESS_API_KEY,
    payload: {
        imageData: "6ejsiua2i29ndsajkfn9n==", // Image in base64
        imageName: `awesome-waterfalls`,
        mimeType: "jpg", // optional
        thumbnailSize: 120, // optional === This measurement is in pixels(px)
    },
    user_id: 271,
});

Local Querying

You can query directly from an SQL database if you provide these environment variables in your .env file:

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:

DSQL_API_REMOTE_HOST=
DSQL_API_REMOTE_HOST_PORT=

If these aren't provided it defaults to datasquirel.com.

Dependencies

Dependencies

ID Version
@types/ace ^0.0.52
@types/lodash ^4.17.13
@types/mysql ^2.15.21
@types/next ^9.0.0
@types/node ^22.7.5
@types/react ^18.2.21
@types/react-dom ^19.0.0
@types/tinymce ^4.6.9
dotenv ^16.3.1
generate-password ^1.7.1
google-auth-library ^9.15.0
lodash ^4.17.21
mysql ^2.18.1
nodemailer ^6.9.14
react ^19.0.0
react-dom ^19.0.0
sanitize-html ^2.13.1
serverless-mysql ^1.5.5

Keywords

SQL Cloud Storage API Data Storage
Details
npm
2024-12-15 10:25:13 +00:00
1
Benjamin Toby
ISC
118 KiB
Assets (1)
Versions (66) View all
3.1.9 2024-12-20
3.1.8 2024-12-19
3.1.7 2024-12-17
3.1.6 2024-12-15
3.1.5 2024-12-14