@multisystemsuite/shared
v2.1.0
Published
Shared types and utilities for Database Reliability Toolkit
Readme
@multisystemsuite/shared
Shared types, utilities, and plugin contracts used across the Database Reliability Toolkit monorepo.
Version: 1.0.1 · License: MIT
npm readme: @multisystemsuite/shared on npm
Installation
pnpm add @multisystemsuite/shared
npm install @multisystemsuite/sharedQuick start
import {
fingerprintQuery,
checksumContent,
createConsoleLogger,
type QueryTrackInput,
} from '@multisystemsuite/shared';
const fp = fingerprintQuery("SELECT * FROM users WHERE id = 1");
const hash = checksumContent('migration-sql-content');
const logger = createConsoleLogger('my-app');
logger.info('Database toolkit ready');Exports
Types
| Type | Description |
|------|-------------|
| DatabaseDialect | mysql | postgresql | sqlserver | mongodb | sqlite |
| Severity | low | medium | high | critical |
| HealthStatus | healthy | degraded | unhealthy |
| QueryTrackInput | Query string, execution time, optional row stats |
| QueryAnalysisResult | Severity, score, issue, recommendation |
| IndexRecommendation | Table, columns, migration SQL, priority |
| HealthReport / HealthCheckResult | Health scoring structures |
| MigrationRecord | Applied migration metadata |
| Plugin / PluginContext | Extension plugin API |
| Logger | debug / info / warn / error |
| MetricPoint | Prometheus-style metric point |
| SecurityFinding | Security scan result |
| TransactionOptions | Isolation, timeout, retries |
| DeadlockGuardOptions | Retry and callback options |
| CacheOptions | TTL, prefix, max size |
Utilities
| Function | Description |
|----------|-------------|
| fingerprintQuery(query) | Normalize SQL and return SHA-256 fingerprint (16 chars) |
| normalizeSql(query) | Collapse whitespace |
| checksumContent(content) | SHA-256 hex checksum for migrations |
| scoreToSeverity(score) | Map 0–100 score to severity band |
| clamp(value, min, max) | Bound numeric value |
| sleep(ms) | Promise-based delay |
| extractTableNames(query) | Parse FROM / JOIN table names |
| extractWhereColumns(query) | Parse column names used in WHERE |
| createConsoleLogger(prefix?) | Simple prefixed console logger |
Plugin interface
import type { Plugin, PluginContext, QueryTrackInput } from '@multisystemsuite/shared';
const plugin: Plugin = {
name: 'metrics-exporter',
version: '1.0.0',
async initialize(ctx: PluginContext) {
ctx.logger.info('Plugin loaded', { config: ctx.config });
},
onQuery(input: QueryTrackInput) {
// called when toolkit tracks a query
},
};Register via @multisystemsuite/core:
toolkit.use(plugin);Related packages
See the @multisystemsuite org on npm.
npm
- Package: @multisystemsuite/shared
- Install:
npm install @multisystemsuite/shared