@apiagex/database
v0.9.15
Published
Kysely database adapter package for Apiagex CMS.
Downloads
3,243
Maintainers
Readme
Database Package
English
This package owns the database adapter contract for Apiagex. SQLite is backed by better-sqlite3 and remains the default local database. PostgreSQL is available through pg when APIAGEX_DATABASE_PROVIDER=postgres and APIAGEX_DATABASE_URL is set. MySQL is available through mysql2 when APIAGEX_DATABASE_PROVIDER=mysql and APIAGEX_DATABASE_URL is set.
MVP note: the active SQLite repository now stores role metadata with roleKind. Admin roles are owner, admin, schema-manager, and user-manager; API roles are used for content API permissions. Admin permissions live in admin_permissions, content API permissions stay in permissions, content API tokens are stored hashed in api_tokens, and webhooks use webhooks, webhook_events, and webhook_deliveries.
import { openMigratedSqliteAdapter, openMySqlAdapter, openPostgresAdapter } from '@apiagex/database';
const sqlite = openMigratedSqliteAdapter('./data/apiagex.db');
const postgres = await openPostgresAdapter(process.env.APIAGEX_DATABASE_URL);
const mysql = await openMySqlAdapter(process.env.APIAGEX_DATABASE_URL);Hindi
Ye package Apiagex ke database adapter contract ka owner hai. SQLite default hai aur better-sqlite3 par chalta hai. PostgreSQL pg driver ke through real runtime provider hai jab APIAGEX_DATABASE_PROVIDER=postgres aur APIAGEX_DATABASE_URL set ho. MySQL mysql2 driver ke through real runtime provider hai jab APIAGEX_DATABASE_PROVIDER=mysql aur APIAGEX_DATABASE_URL set ho.
MVP note: active SQLite repository ab roleKind metadata store karta hai. Admin roles owner, admin, schema-manager, aur user-manager hain; API roles content API permissions ke liye use hote hain. Admin permissions admin_permissions me rehte hain, content API permissions permissions me alag rehte hain, content API tokens api_tokens me hashed form me store hote hain, aur webhooks webhooks, webhook_events, plus webhook_deliveries use karte hain.
import { openMigratedSqliteAdapter, openMySqlAdapter, openPostgresAdapter } from '@apiagex/database';
const sqlite = openMigratedSqliteAdapter('./data/apiagex.db');
const postgres = await openPostgresAdapter(process.env.APIAGEX_DATABASE_URL);
const mysql = await openMySqlAdapter(process.env.APIAGEX_DATABASE_URL);