🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

adminjs-sql

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

adminjs-sql

Raw SQL adapter for AdminJS without ORM

1.1.2
latest
Source
npm
Version published
Weekly downloads
18
Maintainers
1
Weekly downloads
 
Created
Source

adminjs-sql NPM version

This is an inofficial AdminJS adapter which integrates SQL-based database into AdminJS.

Installation: yarn add adminjs-sql

Usage

The plugin can be registered using standard AdminJS.registerAdapter method.

import { Adapter } from 'adminjs-sql';
import AdminJS from 'adminjs';

AdminJS.registerAdapter(Adapter);

After registration, you should call Adapter.init(client, connectionOptions) to parse table information from running database.

// import { Adapter } from 'adminjs-sql';
// ...
const db = await Adapter.init('mysql2', {
  host: DB_HOST,
  port: DB_PORT,
  user: DB_USER,
  password: DB_PASSWORD,
  database: DB_NAME,
});

After initialization, you can register resources. db.tables() to register ALL tables in database. Or you can db.table(tableName) to register specific table.

const adminJs = new AdminJS({
  databases: [database],
  resources: db.tables(),
  // or
  resources: [db.table('users'), db.table('posts'), db.table('comments')],
});

ManyToOne

This supports ManyToOne relationship if you define a foreign key.

Example App

You can run example app with docker.

  • Clone this repository.
git clone https://github.com/wirekang/adminjs-sql
yarn install
yarn build
  • Setup example project.
cd example/
yarn install
yarn up

  • Run example app.
yarn start


# Generating samples...
# Inserting samples...
# adminjs-sql example app is under http://localhost:33300
  • After enjoying the example, you can clean down MySQL server.
yarn down

How It Works

adminjs-sql collects information about tables and columns from INFORMATION_SCHEMA and converts to adminjs. This project uses Knex Query Builder to generate SQL string.

Supported Databases

  • MySQL
  • MariaDB

Todo

  • Support Postgres.

  • Add unit testing.

  • Add more complex example app.

Contributions are welcome!!

Keywords

adminjs

FAQs

Package last updated on 09 Sep 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts