longcelot-sheet-db
Version:
Google Sheets-backed staging database adapter for Node.js with schema-first design
31 lines • 1.47 kB
TypeScript
import { TableSchema, UserContext, ActorPermission } from '../../schema/types';
import type { DatabaseAdapter } from '../types';
import { SQLConnection } from './connection';
import { SQLDialect } from './dialect';
import { SQLTableOperations } from './sqlTableOperations';
export interface SQLAdapterConfig {
/** Column injected into every non-admin table to scope rows to a tenant. Default: 'tenant_id'. */
tenantColumn?: string;
permissions?: Record<string, ActorPermission>;
}
/**
* Shared DatabaseAdapter implementation for the Postgres/MySQL adapters (Phase 16.2) —
* withContext()/asActor()/table() mirror SheetAdapter's exactly (same actor/role and
* targetActor/targetRole normalization), minus the Sheets-only schema-version-check
* machinery, since SQL adapters never auto-sync schema at runtime (Phase 16 decision 5).
*/
export declare class SQLAdapterBase implements DatabaseAdapter {
private connection;
private dialect;
private schemas;
private context?;
private tenantColumn;
private permissions?;
constructor(connection: SQLConnection, dialect: SQLDialect, config?: SQLAdapterConfig);
registerSchema(schema: TableSchema): void;
registerSchemas(schemas: TableSchema[]): void;
withContext(context: UserContext): SQLAdapterBase;
asActor(targetActor: string, targetSheetId: string): SQLAdapterBase;
table(tableName: string): SQLTableOperations;
}
//# sourceMappingURL=sqlAdapterBase.d.ts.map