db-mcp 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +96 -91
- package/dist/.tsbuildinfo +1 -0
- package/dist/adapters/database-adapter.d.ts +173 -0
- package/dist/adapters/database-adapter.d.ts.map +1 -0
- package/dist/adapters/query-validation.d.ts +20 -0
- package/dist/adapters/query-validation.d.ts.map +1 -0
- package/dist/adapters/registration/index.d.ts +4 -0
- package/dist/adapters/registration/index.d.ts.map +1 -0
- package/dist/adapters/registration/prompts.d.ts +7 -0
- package/dist/adapters/registration/prompts.d.ts.map +1 -0
- package/dist/adapters/registration/resources.d.ts +7 -0
- package/dist/adapters/registration/resources.d.ts.map +1 -0
- package/dist/adapters/registration/tools.d.ts +9 -0
- package/dist/adapters/registration/tools.d.ts.map +1 -0
- package/dist/adapters/sqlite/index.d.ts +9 -0
- package/dist/adapters/sqlite/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/json-utils.d.ts +100 -0
- package/dist/adapters/sqlite/json-utils.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts/analysis.d.ts +23 -0
- package/dist/adapters/sqlite/prompts/analysis.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts/index.d.ts +16 -0
- package/dist/adapters/sqlite/prompts/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts/query.d.ts +19 -0
- package/dist/adapters/sqlite/prompts/query.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts/schema.d.ts +20 -0
- package/dist/adapters/sqlite/prompts/schema.d.ts.map +1 -0
- package/dist/adapters/sqlite/query-executor.d.ts +38 -0
- package/dist/adapters/sqlite/query-executor.d.ts.map +1 -0
- package/dist/adapters/sqlite/resources.d.ts +13 -0
- package/dist/adapters/sqlite/resources.d.ts.map +1 -0
- package/dist/adapters/sqlite/schema-manager.d.ts +69 -0
- package/dist/adapters/sqlite/schema-manager.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/admin.d.ts +459 -0
- package/dist/adapters/sqlite/schemas/admin.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/codemode.d.ts +30 -0
- package/dist/adapters/sqlite/schemas/codemode.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/common.d.ts +9 -0
- package/dist/adapters/sqlite/schemas/common.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/core.d.ts +530 -0
- package/dist/adapters/sqlite/schemas/core.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/error-mixin.d.ts +10 -0
- package/dist/adapters/sqlite/schemas/error-mixin.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/fts.d.ts +106 -0
- package/dist/adapters/sqlite/schemas/fts.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/geo.d.ts +135 -0
- package/dist/adapters/sqlite/schemas/geo.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/index.d.ts +23 -0
- package/dist/adapters/sqlite/schemas/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/introspection.d.ts +583 -0
- package/dist/adapters/sqlite/schemas/introspection.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/json.d.ts +849 -0
- package/dist/adapters/sqlite/schemas/json.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/migration.d.ts +220 -0
- package/dist/adapters/sqlite/schemas/migration.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/native.d.ts +235 -0
- package/dist/adapters/sqlite/schemas/native.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/server.d.ts +13 -0
- package/dist/adapters/sqlite/schemas/server.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/spatialite.d.ts +114 -0
- package/dist/adapters/sqlite/schemas/spatialite.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/stats.d.ts +780 -0
- package/dist/adapters/sqlite/schemas/stats.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/text.d.ts +570 -0
- package/dist/adapters/sqlite/schemas/text.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/vector.d.ts +252 -0
- package/dist/adapters/sqlite/schemas/vector.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/virtual.d.ts +257 -0
- package/dist/adapters/sqlite/schemas/virtual.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/where.d.ts +20 -0
- package/dist/adapters/sqlite/schemas/where.d.ts.map +1 -0
- package/dist/adapters/sqlite/sqlite-adapter/lifecycle.d.ts +13 -0
- package/dist/adapters/sqlite/sqlite-adapter/lifecycle.d.ts.map +1 -0
- package/dist/adapters/sqlite/sqlite-adapter/schema.d.ts +7 -0
- package/dist/adapters/sqlite/sqlite-adapter/schema.d.ts.map +1 -0
- package/dist/adapters/sqlite/sqlite-adapter.d.ts +138 -0
- package/dist/adapters/sqlite/sqlite-adapter.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/analyze.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/analyze.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/create.d.ts +11 -0
- package/dist/adapters/sqlite/tools/admin/backup/create.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/dump.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/dump.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/index.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/integrity.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/integrity.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/optimize.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/optimize.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/restore.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/restore.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/helpers.d.ts +18 -0
- package/dist/adapters/sqlite/tools/admin/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/admin/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/pragma.d.ts +37 -0
- package/dist/adapters/sqlite/tools/admin/pragma.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/reindex.d.ts +10 -0
- package/dist/adapters/sqlite/tools/admin/reindex.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/verify.d.ts +13 -0
- package/dist/adapters/sqlite/tools/admin/verify.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/wal.d.ts +10 -0
- package/dist/adapters/sqlite/tools/admin/wal.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/codemode.d.ts +22 -0
- package/dist/adapters/sqlite/tools/codemode.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/column-validation.d.ts +26 -0
- package/dist/adapters/sqlite/tools/column-validation.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/alter-table.d.ts +11 -0
- package/dist/adapters/sqlite/tools/core/alter-table.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/constraints.d.ts +10 -0
- package/dist/adapters/sqlite/tools/core/constraints.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/convenience-helpers.d.ts +20 -0
- package/dist/adapters/sqlite/tools/core/convenience-helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/convenience-schemas.d.ts +20 -0
- package/dist/adapters/sqlite/tools/core/convenience-schemas.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/convenience.d.ts +29 -0
- package/dist/adapters/sqlite/tools/core/convenience.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/datetime.d.ts +11 -0
- package/dist/adapters/sqlite/tools/core/datetime.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/index.d.ts +14 -0
- package/dist/adapters/sqlite/tools/core/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/indexes.d.ts +20 -0
- package/dist/adapters/sqlite/tools/core/indexes.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/queries.d.ts +16 -0
- package/dist/adapters/sqlite/tools/core/queries.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/tables.d.ts +37 -0
- package/dist/adapters/sqlite/tools/core/tables.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/triggers.d.ts +18 -0
- package/dist/adapters/sqlite/tools/core/triggers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/fts.d.ts +13 -0
- package/dist/adapters/sqlite/tools/fts.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/geo.d.ts +14 -0
- package/dist/adapters/sqlite/tools/geo.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/index.d.ts +33 -0
- package/dist/adapters/sqlite/tools/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/constraints.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/constraints.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/diff.d.ts +11 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/diff.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/risks.d.ts +9 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/risks.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/snapshot.d.ts +40 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/snapshot.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/index.d.ts +9 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/indexes.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/indexes.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/query-plan.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/query-plan.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/storage.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/storage.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/graph/helpers.d.ts +44 -0
- package/dist/adapters/sqlite/tools/introspection/graph/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/graph/index.d.ts +9 -0
- package/dist/adapters/sqlite/tools/introspection/graph/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/graph/tools.d.ts +12 -0
- package/dist/adapters/sqlite/tools/introspection/graph/tools.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/index.d.ts +17 -0
- package/dist/adapters/sqlite/tools/introspection/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers/helpers.d.ts +21 -0
- package/dist/adapters/sqlite/tools/json-helpers/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers/index.d.ts +17 -0
- package/dist/adapters/sqlite/tools/json-helpers/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers/read.d.ts +24 -0
- package/dist/adapters/sqlite/tools/json-helpers/read.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers/write.d.ts +24 -0
- package/dist/adapters/sqlite/tools/json-helpers/write.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/crud.d.ts +39 -0
- package/dist/adapters/sqlite/tools/json-operations/crud.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/diff.d.ts +11 -0
- package/dist/adapters/sqlite/tools/json-operations/diff.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/helpers.d.ts +18 -0
- package/dist/adapters/sqlite/tools/json-operations/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/json-operations/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/query.d.ts +24 -0
- package/dist/adapters/sqlite/tools/json-operations/query.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/security.d.ts +19 -0
- package/dist/adapters/sqlite/tools/json-operations/security.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/transform.d.ts +24 -0
- package/dist/adapters/sqlite/tools/json-operations/transform.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/helpers.d.ts +34 -0
- package/dist/adapters/sqlite/tools/migration/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/index.d.ts +15 -0
- package/dist/adapters/sqlite/tools/migration/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/apply.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/apply.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/history.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/history.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/index.d.ts +7 -0
- package/dist/adapters/sqlite/tools/migration/tracking/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/init.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/init.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/record.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/record.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/rollback.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/rollback.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/status.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/status.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/advanced.d.ts +28 -0
- package/dist/adapters/sqlite/tools/stats/advanced.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/anomaly-detection.d.ts +22 -0
- package/dist/adapters/sqlite/tools/stats/anomaly-detection.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/basic.d.ts +32 -0
- package/dist/adapters/sqlite/tools/stats/basic.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/helpers.d.ts +27 -0
- package/dist/adapters/sqlite/tools/stats/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/index.d.ts +12 -0
- package/dist/adapters/sqlite/tools/stats/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/inference/hypothesis.d.ts +7 -0
- package/dist/adapters/sqlite/tools/stats/inference/hypothesis.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/inference/index.d.ts +4 -0
- package/dist/adapters/sqlite/tools/stats/inference/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/inference/outlier.d.ts +7 -0
- package/dist/adapters/sqlite/tools/stats/inference/outlier.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/inference/regression.d.ts +7 -0
- package/dist/adapters/sqlite/tools/stats/inference/regression.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/math-helpers.d.ts +17 -0
- package/dist/adapters/sqlite/tools/stats/math-helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/schema-risks.d.ts +15 -0
- package/dist/adapters/sqlite/tools/stats/schema-risks.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/formatting.d.ts +48 -0
- package/dist/adapters/sqlite/tools/text/formatting.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/helpers.d.ts +22 -0
- package/dist/adapters/sqlite/tools/text/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/text/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/regex.d.ts +21 -0
- package/dist/adapters/sqlite/tools/text/regex.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/search.d.ts +17 -0
- package/dist/adapters/sqlite/tools/text/search.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/sentiment.d.ts +13 -0
- package/dist/adapters/sqlite/tools/text/sentiment.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/validate.d.ts +11 -0
- package/dist/adapters/sqlite/tools/text/validate.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/helpers.d.ts +11 -0
- package/dist/adapters/sqlite/tools/vector/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/index.d.ts +14 -0
- package/dist/adapters/sqlite/tools/vector/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/metadata.d.ts +28 -0
- package/dist/adapters/sqlite/tools/vector/metadata.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/search.d.ts +16 -0
- package/dist/adapters/sqlite/tools/vector/search.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/storage.d.ts +24 -0
- package/dist/adapters/sqlite/tools/vector/storage.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/tools.d.ts +9 -0
- package/dist/adapters/sqlite/tools/vector/tools.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/analysis.d.ts +24 -0
- package/dist/adapters/sqlite/tools/virtual/analysis.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/extensions.d.ts +13 -0
- package/dist/adapters/sqlite/tools/virtual/extensions.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/helpers.d.ts +18 -0
- package/dist/adapters/sqlite/tools/virtual/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/virtual/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/views.d.ts +21 -0
- package/dist/adapters/sqlite/tools/virtual/views.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/analyze-csv.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/analyze-csv.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/csv.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/csv.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/drop.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/drop.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/index.d.ts +6 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/info.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/info.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/list.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/list.d.ts.map +1 -0
- package/dist/adapters/sqlite/types.d.ts +89 -0
- package/dist/adapters/sqlite/types.d.ts.map +1 -0
- package/dist/adapters/sqlite-helpers.d.ts +51 -0
- package/dist/adapters/sqlite-helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/extensions.d.ts +17 -0
- package/dist/adapters/sqlite-native/extensions.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/index.d.ts +11 -0
- package/dist/adapters/sqlite-native/index.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/native-query-executor.d.ts +24 -0
- package/dist/adapters/sqlite-native/native-query-executor.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/native-sqlite-adapter.d.ts +160 -0
- package/dist/adapters/sqlite-native/native-sqlite-adapter.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/registration/index.d.ts +12 -0
- package/dist/adapters/sqlite-native/registration/index.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/analysis.d.ts +23 -0
- package/dist/adapters/sqlite-native/tools/spatialite/analysis.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/index.d.ts +15 -0
- package/dist/adapters/sqlite-native/tools/spatialite/index.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/loader.d.ts +22 -0
- package/dist/adapters/sqlite-native/tools/spatialite/loader.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/schemas.d.ts +78 -0
- package/dist/adapters/sqlite-native/tools/spatialite/schemas.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/tools.d.ts +30 -0
- package/dist/adapters/sqlite-native/tools/spatialite/tools.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/transactions.d.ts +12 -0
- package/dist/adapters/sqlite-native/tools/transactions.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/window.d.ts +7 -0
- package/dist/adapters/sqlite-native/tools/window.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/transaction-methods.d.ts +36 -0
- package/dist/adapters/sqlite-native/transaction-methods.d.ts.map +1 -0
- package/dist/audit/backup-manager.d.ts +90 -0
- package/dist/audit/backup-manager.d.ts.map +1 -0
- package/dist/audit/index.d.ts +11 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/interceptor.d.ts +54 -0
- package/dist/audit/interceptor.d.ts.map +1 -0
- package/dist/audit/logger.d.ts +62 -0
- package/dist/audit/logger.d.ts.map +1 -0
- package/dist/audit/types.d.ts +112 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/auth/auth-context.d.ts +28 -0
- package/dist/auth/auth-context.d.ts.map +1 -0
- package/dist/auth/authorization-server-discovery.d.ts +90 -0
- package/dist/auth/authorization-server-discovery.d.ts.map +1 -0
- package/dist/auth/errors.d.ts +74 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/middleware/core.d.ts +22 -0
- package/dist/auth/middleware/core.d.ts.map +1 -0
- package/dist/auth/middleware/express-auth.d.ts +13 -0
- package/dist/auth/middleware/express-auth.d.ts.map +1 -0
- package/dist/auth/middleware/express-scopes.d.ts +6 -0
- package/dist/auth/middleware/express-scopes.d.ts.map +1 -0
- package/dist/auth/middleware/extraction.d.ts +2 -0
- package/dist/auth/middleware/extraction.d.ts.map +1 -0
- package/dist/auth/middleware/index.d.ts +5 -0
- package/dist/auth/middleware/index.d.ts.map +1 -0
- package/dist/auth/oauth-resource-server.d.ts +74 -0
- package/dist/auth/oauth-resource-server.d.ts.map +1 -0
- package/dist/auth/scope-map.d.ts +24 -0
- package/dist/auth/scope-map.d.ts.map +1 -0
- package/dist/auth/scopes/constants.d.ts +40 -0
- package/dist/auth/scopes/constants.d.ts.map +1 -0
- package/dist/auth/scopes/display.d.ts +5 -0
- package/dist/auth/scopes/display.d.ts.map +1 -0
- package/dist/auth/scopes/enforcement.d.ts +27 -0
- package/dist/auth/scopes/enforcement.d.ts.map +1 -0
- package/dist/auth/scopes/index.d.ts +6 -0
- package/dist/auth/scopes/index.d.ts.map +1 -0
- package/dist/auth/scopes/mapping.d.ts +39 -0
- package/dist/auth/scopes/mapping.d.ts.map +1 -0
- package/dist/auth/scopes/validation.d.ts +27 -0
- package/dist/auth/scopes/validation.d.ts.map +1 -0
- package/dist/auth/token-validator.d.ts +63 -0
- package/dist/auth/token-validator.d.ts.map +1 -0
- package/dist/auth/transport-agnostic.d.ts +11 -0
- package/dist/auth/transport-agnostic.d.ts.map +1 -0
- package/dist/auth/types.d.ts +257 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/chunk-E5IESRTK.js +489 -0
- package/dist/{chunk-5Y42NPBP.js → chunk-FR65YPAH.js} +4657 -1830
- package/dist/{chunk-645ZEFLA.js → chunk-L552U3QS.js} +887 -309
- package/dist/{chunk-WBER5YY4.js → chunk-THATOQRT.js} +1026 -455
- package/dist/{chunk-Z7C2TM4L.js → chunk-W5WQVNVX.js} +169 -57
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +47 -26
- package/dist/codemode/api-constants.d.ts +40 -0
- package/dist/codemode/api-constants.d.ts.map +1 -0
- package/dist/codemode/api.d.ts +70 -0
- package/dist/codemode/api.d.ts.map +1 -0
- package/dist/codemode/auto-return.d.ts +25 -0
- package/dist/codemode/auto-return.d.ts.map +1 -0
- package/dist/codemode/index.d.ts +12 -0
- package/dist/codemode/index.d.ts.map +1 -0
- package/dist/codemode/sandbox-factory.d.ts +72 -0
- package/dist/codemode/sandbox-factory.d.ts.map +1 -0
- package/dist/codemode/sandbox.d.ts +54 -0
- package/dist/codemode/sandbox.d.ts.map +1 -0
- package/dist/codemode/security.d.ts +45 -0
- package/dist/codemode/security.d.ts.map +1 -0
- package/dist/codemode/types.d.ts +167 -0
- package/dist/codemode/types.d.ts.map +1 -0
- package/dist/constants/server-instructions.d.ts +22 -0
- package/dist/constants/server-instructions.d.ts.map +1 -0
- package/dist/filtering/tool-constants.d.ts +45 -0
- package/dist/filtering/tool-constants.d.ts.map +1 -0
- package/dist/filtering/tool-filter.d.ts +82 -0
- package/dist/filtering/tool-filter.d.ts.map +1 -0
- package/dist/{http-6KF4ULDI.js → http-HWTUVFIA.js} +498 -391
- package/dist/index.d.ts +9 -1065
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -6
- package/dist/server/mcp-server.d.ts +66 -0
- package/dist/server/mcp-server.d.ts.map +1 -0
- package/dist/server/registration/audit-tools.d.ts +13 -0
- package/dist/server/registration/audit-tools.d.ts.map +1 -0
- package/dist/server/registration/built-in-tools.d.ts +8 -0
- package/dist/server/registration/built-in-tools.d.ts.map +1 -0
- package/dist/server/registration/help-resources.d.ts +7 -0
- package/dist/server/registration/help-resources.d.ts.map +1 -0
- package/dist/server/registration/index.d.ts +4 -0
- package/dist/server/registration/index.d.ts.map +1 -0
- package/dist/{sqlite-U5KSYQXK.js → sqlite-6C3AJI4I.js} +61 -17
- package/dist/{sqlite-native-JXMCFQBA.js → sqlite-native-ZSSWCTYC.js} +459 -254
- package/dist/transports/http/index.d.ts +8 -0
- package/dist/transports/http/index.d.ts.map +1 -0
- package/dist/transports/http/middleware.d.ts +25 -0
- package/dist/transports/http/middleware.d.ts.map +1 -0
- package/dist/transports/http/oauth.d.ts +24 -0
- package/dist/transports/http/oauth.d.ts.map +1 -0
- package/dist/transports/http/session.d.ts +2 -0
- package/dist/transports/http/session.d.ts.map +1 -0
- package/dist/transports/http/sessions/index.d.ts +4 -0
- package/dist/transports/http/sessions/index.d.ts.map +1 -0
- package/dist/transports/http/sessions/legacy-sse.d.ts +6 -0
- package/dist/transports/http/sessions/legacy-sse.d.ts.map +1 -0
- package/dist/transports/http/sessions/mutex.d.ts +6 -0
- package/dist/transports/http/sessions/mutex.d.ts.map +1 -0
- package/dist/transports/http/sessions/stateful.d.ts +12 -0
- package/dist/transports/http/sessions/stateful.d.ts.map +1 -0
- package/dist/transports/http/sessions/stateless.d.ts +6 -0
- package/dist/transports/http/sessions/stateless.d.ts.map +1 -0
- package/dist/transports/http/transport.d.ts +65 -0
- package/dist/transports/http/transport.d.ts.map +1 -0
- package/dist/transports/http/type-adapters.d.ts +20 -0
- package/dist/transports/http/type-adapters.d.ts.map +1 -0
- package/dist/transports/http/types.d.ts +120 -0
- package/dist/transports/http/types.d.ts.map +1 -0
- package/dist/types/adapter.d.ts +138 -0
- package/dist/types/adapter.d.ts.map +1 -0
- package/dist/types/auth.d.ts +79 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/database.d.ts +100 -0
- package/dist/types/database.d.ts.map +1 -0
- package/dist/types/filtering.d.ts +41 -0
- package/dist/types/filtering.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/server.d.ts +48 -0
- package/dist/types/server.d.ts.map +1 -0
- package/dist/utils/annotations.d.ts +62 -0
- package/dist/utils/annotations.d.ts.map +1 -0
- package/dist/utils/errors/base.d.ts +33 -0
- package/dist/utils/errors/base.d.ts.map +1 -0
- package/dist/utils/errors/categories.d.ts +41 -0
- package/dist/utils/errors/categories.d.ts.map +1 -0
- package/dist/utils/errors/classes.d.ts +124 -0
- package/dist/utils/errors/classes.d.ts.map +1 -0
- package/dist/utils/errors/error-response-fields.d.ts +24 -0
- package/dist/utils/errors/error-response-fields.d.ts.map +1 -0
- package/dist/utils/errors/format.d.ts +74 -0
- package/dist/utils/errors/format.d.ts.map +1 -0
- package/dist/utils/errors/index.d.ts +11 -0
- package/dist/utils/errors/index.d.ts.map +1 -0
- package/dist/utils/errors/suggestions.d.ts +16 -0
- package/dist/utils/errors/suggestions.d.ts.map +1 -0
- package/dist/utils/icons.d.ts +19 -0
- package/dist/utils/icons.d.ts.map +1 -0
- package/dist/utils/identifiers.d.ts +121 -0
- package/dist/utils/identifiers.d.ts.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/insights-manager.d.ts +39 -0
- package/dist/utils/insights-manager.d.ts.map +1 -0
- package/dist/utils/logger/error-codes.d.ts +48 -0
- package/dist/utils/logger/error-codes.d.ts.map +1 -0
- package/dist/utils/logger/index.d.ts +22 -0
- package/dist/utils/logger/index.d.ts.map +1 -0
- package/dist/utils/logger/logger.d.ts +94 -0
- package/dist/utils/logger/logger.d.ts.map +1 -0
- package/dist/utils/logger/module-logger.d.ts +28 -0
- package/dist/utils/logger/module-logger.d.ts.map +1 -0
- package/dist/utils/logger/types.d.ts +36 -0
- package/dist/utils/logger/types.d.ts.map +1 -0
- package/dist/utils/progress-utils.d.ts +54 -0
- package/dist/utils/progress-utils.d.ts.map +1 -0
- package/dist/utils/redaction.d.ts +4 -0
- package/dist/utils/redaction.d.ts.map +1 -0
- package/dist/utils/resource-annotations.d.ts +36 -0
- package/dist/utils/resource-annotations.d.ts.map +1 -0
- package/dist/utils/validate-json-path.d.ts +43 -0
- package/dist/utils/validate-json-path.d.ts.map +1 -0
- package/dist/utils/validate-path.d.ts +37 -0
- package/dist/utils/validate-path.d.ts.map +1 -0
- package/dist/utils/where-clause.d.ts +42 -0
- package/dist/utils/where-clause.d.ts.map +1 -0
- package/dist/version.d.ts +10 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +25 -13
- package/.gitattributes +0 -2
- package/.gitleaks.toml +0 -9
- package/.trivyignore +0 -8
- package/dist/chunk-OKOVZ5QE.js +0 -28
- package/dist/chunk-SFJQCNG7.js +0 -131
- package/dist/chunk-VIDSICEL.js +0 -85
- package/dist/chunk-X3MUUOWM.js +0 -152
- package/dist/worker-script.d.ts +0 -2
- package/dist/worker-script.js +0 -150
- package/logs/.gitkeep +0 -1
- package/mcp-config-example.json +0 -83
- package/playwright.config.ts +0 -101
- package/scripts/generate-server-instructions.ts +0 -111
- package/scripts/update-badges.ts +0 -99
- package/server.json +0 -54
- package/test-server/README.md +0 -115
- package/test-server/code-map.md +0 -421
- package/test-server/fixtures/sample.csv +0 -6
- package/test-server/reset-database.ps1 +0 -415
- package/test-server/sample.csv +0 -11
- package/test-server/scripts/README.md +0 -27
- package/test-server/scripts/test-help-resources.mjs +0 -245
- package/test-server/scripts/test-prompts.mjs +0 -251
- package/test-server/scripts/test-tool-annotations.mjs +0 -162
- package/test-server/test-advanced/README.md +0 -70
- package/test-server/test-advanced/test-codemode-advanced-admin.md +0 -174
- package/test-server/test-advanced/test-codemode-advanced-core.md +0 -193
- package/test-server/test-advanced/test-codemode-advanced-geo.md +0 -157
- package/test-server/test-advanced/test-codemode-advanced-introspection.md +0 -171
- package/test-server/test-advanced/test-codemode-advanced-json.md +0 -169
- package/test-server/test-advanced/test-codemode-advanced-migration.md +0 -160
- package/test-server/test-advanced/test-codemode-advanced-stats.md +0 -185
- package/test-server/test-advanced/test-codemode-advanced-text.md +0 -183
- package/test-server/test-advanced/test-codemode-advanced-transactions.md +0 -136
- package/test-server/test-advanced/test-codemode-advanced-vector.md +0 -141
- package/test-server/test-codemode/README.md +0 -121
- package/test-server/test-codemode/test-codemode-admin.md +0 -223
- package/test-server/test-codemode/test-codemode-core.md +0 -286
- package/test-server/test-codemode/test-codemode-geo.md +0 -177
- package/test-server/test-codemode/test-codemode-introspection.md +0 -190
- package/test-server/test-codemode/test-codemode-json.md +0 -237
- package/test-server/test-codemode/test-codemode-migration.md +0 -278
- package/test-server/test-codemode/test-codemode-sandbox.md +0 -413
- package/test-server/test-codemode/test-codemode-stats.md +0 -232
- package/test-server/test-codemode/test-codemode-text.md +0 -237
- package/test-server/test-codemode/test-codemode-transactions.md +0 -236
- package/test-server/test-codemode/test-codemode-vector.md +0 -244
- package/test-server/test-codemode/test-codemode-wasm-degradation.md +0 -394
- package/test-server/test-database.sql +0 -424
- package/test-server/test-preflight.md +0 -53
- package/test-server/test-prompts.md +0 -354
- package/test-server/test-resources.md +0 -272
- package/test-server/test-tool-groups/README.md +0 -100
- package/test-server/test-tool-groups/test-admin-core.md +0 -165
- package/test-server/test-tool-groups/test-admin-extensions.md +0 -133
- package/test-server/test-tool-groups/test-core-data.md +0 -262
- package/test-server/test-tool-groups/test-core-schema.md +0 -240
- package/test-server/test-tool-groups/test-geo-haversine.md +0 -130
- package/test-server/test-tool-groups/test-geo-spatialite.md +0 -110
- package/test-server/test-tool-groups/test-introspection-diagnostics.md +0 -123
- package/test-server/test-tool-groups/test-introspection-schema.md +0 -133
- package/test-server/test-tool-groups/test-json-read.md +0 -219
- package/test-server/test-tool-groups/test-json-write.md +0 -157
- package/test-server/test-tool-groups/test-migration.md +0 -193
- package/test-server/test-tool-groups/test-stats-advanced.md +0 -118
- package/test-server/test-tool-groups/test-stats-basic.md +0 -156
- package/test-server/test-tool-groups/test-text-advanced.md +0 -169
- package/test-server/test-tool-groups/test-text-basic.md +0 -177
- package/test-server/test-tool-groups/test-transactions.md +0 -179
- package/test-server/test-tool-groups/test-vector-read.md +0 -130
- package/test-server/test-tool-groups/test-vector-write.md +0 -115
- package/test-server/tool-reference.md +0 -257
- package/tsconfig.build.json +0 -6
- package/tsconfig.test.json +0 -9
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp — Audit Logger
|
|
3
|
+
*
|
|
4
|
+
* Async-buffered JSONL writer for the audit trail. Appends one
|
|
5
|
+
* JSON object per line to a configurable file path, or writes to
|
|
6
|
+
* stderr for containerised deployments (`--audit-log stderr`).
|
|
7
|
+
*
|
|
8
|
+
* Non-throwing by design: audit failures log to stderr but never
|
|
9
|
+
* propagate to tool callers.
|
|
10
|
+
*/
|
|
11
|
+
import type { AuditConfig, AuditEntry } from "./types.js";
|
|
12
|
+
export declare class AuditLogger {
|
|
13
|
+
readonly config: AuditConfig;
|
|
14
|
+
private buffer;
|
|
15
|
+
private flushTimer;
|
|
16
|
+
private activeFlush;
|
|
17
|
+
private closed;
|
|
18
|
+
private dirEnsured;
|
|
19
|
+
private readonly stderrMode;
|
|
20
|
+
constructor(config: AuditConfig);
|
|
21
|
+
/**
|
|
22
|
+
* Eagerly create the log directory and touch the log file on startup.
|
|
23
|
+
* Provides immediate confirmation that audit is configured correctly.
|
|
24
|
+
* Non-throwing — falls back silently if the path is inaccessible.
|
|
25
|
+
*/
|
|
26
|
+
init(): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Append an audit entry to the buffer.
|
|
29
|
+
* Non-blocking — the entry is serialised and queued; the
|
|
30
|
+
* actual file write happens on the next flush cycle.
|
|
31
|
+
*/
|
|
32
|
+
log(entry: AuditEntry): void;
|
|
33
|
+
/**
|
|
34
|
+
* Flush the buffer to disk.
|
|
35
|
+
* Safe to call concurrently — serialises via `this.activeFlush` Promise.
|
|
36
|
+
*/
|
|
37
|
+
flush(): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Gracefully close the logger — flush remaining entries and stop the timer.
|
|
40
|
+
*/
|
|
41
|
+
close(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Read the most recent audit entries from the log file.
|
|
44
|
+
* Uses a streaming tail-read: only the last TAIL_READ_BYTES (64 KB) are
|
|
45
|
+
* read from disk, preventing O(n) memory spikes for large audit logs.
|
|
46
|
+
* Used by the `sqlite://audit` resource.
|
|
47
|
+
*
|
|
48
|
+
* @param count Maximum number of entries to return (default 50)
|
|
49
|
+
*/
|
|
50
|
+
recent(count?: number): Promise<AuditEntry[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Ensure the parent directory of the log file exists.
|
|
53
|
+
*/
|
|
54
|
+
private ensureDirectory;
|
|
55
|
+
/**
|
|
56
|
+
* Rotate the log file if it exceeds the configured size limit.
|
|
57
|
+
* Keeps up to 5 rotated files (`.1` through `.5`); older data is discarded.
|
|
58
|
+
* Rotation failure is non-fatal — audit must not block tool execution.
|
|
59
|
+
*/
|
|
60
|
+
private rotateIfNeeded;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/audit/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAsB1D,qBAAa,WAAW;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;gBAEzB,MAAM,EAAE,WAAW;IAa/B;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAa5B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgD5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B;;;;;;;OAOG;IACG,MAAM,CAAC,KAAK,GAAE,MAA6B,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAqDzE;;OAEG;YACW,eAAe;IAW7B;;;;OAIG;YACW,cAAc;CAoB7B"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp — Audit Log Types
|
|
3
|
+
*
|
|
4
|
+
* Types and configuration for the JSONL audit trail.
|
|
5
|
+
* Records write/admin tool invocations with timing
|
|
6
|
+
* and outcome for forensic-grade visibility.
|
|
7
|
+
*/
|
|
8
|
+
/** Category of the audited operation */
|
|
9
|
+
export type AuditCategory = "read" | "write" | "admin" | "auth" | "error";
|
|
10
|
+
/**
|
|
11
|
+
* Single audit log entry — serialised as one line of JSONL.
|
|
12
|
+
*
|
|
13
|
+
* The `backup` field holds the relative path to the pre-mutation snapshot
|
|
14
|
+
* file when audit backup is enabled, or `undefined` when disabled.
|
|
15
|
+
*/
|
|
16
|
+
export interface AuditEntry {
|
|
17
|
+
/** ISO 8601 timestamp */
|
|
18
|
+
timestamp: string;
|
|
19
|
+
/** Correlates with RequestContext.requestId */
|
|
20
|
+
requestId: string;
|
|
21
|
+
/** MCP tool name (e.g. "sqlite_write_query") */
|
|
22
|
+
tool: string;
|
|
23
|
+
/** Operation category */
|
|
24
|
+
category: AuditCategory;
|
|
25
|
+
/** OAuth scope required for this tool */
|
|
26
|
+
scope: string;
|
|
27
|
+
/** OAuth subject claim — null when OAuth is not configured */
|
|
28
|
+
user: string | null;
|
|
29
|
+
/** All scopes present on the calling token */
|
|
30
|
+
scopes: string[];
|
|
31
|
+
/** Execution duration in milliseconds */
|
|
32
|
+
durationMs: number;
|
|
33
|
+
/** Whether the tool executed successfully */
|
|
34
|
+
success: boolean;
|
|
35
|
+
/** Error message when success is false */
|
|
36
|
+
error?: string | undefined;
|
|
37
|
+
/** Tool input arguments (omitted in redact mode) */
|
|
38
|
+
args?: Record<string, unknown> | undefined;
|
|
39
|
+
/** Relative path to the pre-mutation snapshot file; undefined when audit backup is disabled. */
|
|
40
|
+
backup?: string | undefined;
|
|
41
|
+
/** Estimated token count of the tool response (~4 bytes per token) */
|
|
42
|
+
tokenEstimate?: number | undefined;
|
|
43
|
+
}
|
|
44
|
+
/** Audit log configuration */
|
|
45
|
+
export interface AuditConfig {
|
|
46
|
+
/** Master switch — false means no interceptor is created */
|
|
47
|
+
enabled: boolean;
|
|
48
|
+
/** Absolute path to the JSONL output file */
|
|
49
|
+
logPath: string;
|
|
50
|
+
/** When true, tool arguments are omitted from entries */
|
|
51
|
+
redact: boolean;
|
|
52
|
+
/** When true, read-scoped tools are also logged (default: false) */
|
|
53
|
+
auditReads: boolean;
|
|
54
|
+
/** Maximum log file size in bytes before rotation (default: 10MB). 0 = no rotation. */
|
|
55
|
+
maxSizeBytes: number;
|
|
56
|
+
/** Pre-mutation backup configuration (optional — backup disabled when absent). */
|
|
57
|
+
backup?: BackupConfig | undefined;
|
|
58
|
+
}
|
|
59
|
+
/** Pre-mutation backup configuration */
|
|
60
|
+
export interface BackupConfig {
|
|
61
|
+
/** Enable pre-mutation snapshots */
|
|
62
|
+
enabled: boolean;
|
|
63
|
+
/** Include sample data rows in snapshots (default: schema-only) */
|
|
64
|
+
includeData: boolean;
|
|
65
|
+
/** Maximum snapshot age in days before cleanup (default: 30) */
|
|
66
|
+
maxAgeDays: number;
|
|
67
|
+
/** Maximum number of snapshots to retain (default: 1000) */
|
|
68
|
+
maxCount: number;
|
|
69
|
+
/** Maximum table size in bytes for data capture (default: 50MB). Tables exceeding this get DDL-only snapshots. */
|
|
70
|
+
maxDataSizeBytes: number;
|
|
71
|
+
}
|
|
72
|
+
/** Snapshot metadata stored alongside the DDL capture */
|
|
73
|
+
export interface SnapshotMetadata {
|
|
74
|
+
/** ISO 8601 timestamp */
|
|
75
|
+
timestamp: string;
|
|
76
|
+
/** Tool that triggered the snapshot */
|
|
77
|
+
tool: string;
|
|
78
|
+
/** Target object (table, index, view) */
|
|
79
|
+
target: string;
|
|
80
|
+
/** Snapshot type: ddl-only or ddl+data */
|
|
81
|
+
type: "ddl" | "ddl+data";
|
|
82
|
+
/** Original audit requestId for correlation */
|
|
83
|
+
requestId: string;
|
|
84
|
+
/** Size of snapshot file in bytes */
|
|
85
|
+
sizeBytes: number;
|
|
86
|
+
/** Snapshot filename (populated by listSnapshots for getSnapshot lookup) */
|
|
87
|
+
filename?: string;
|
|
88
|
+
/** Approximate row count at snapshot time */
|
|
89
|
+
rowCount?: number;
|
|
90
|
+
/** Whether data capture was skipped due to size exceeding threshold */
|
|
91
|
+
dataSkipped?: boolean;
|
|
92
|
+
/** Reason data capture was skipped */
|
|
93
|
+
dataSkippedReason?: string;
|
|
94
|
+
}
|
|
95
|
+
/** Stored snapshot file content */
|
|
96
|
+
export interface SnapshotContent {
|
|
97
|
+
/** Snapshot metadata */
|
|
98
|
+
metadata: SnapshotMetadata;
|
|
99
|
+
/** CREATE TABLE / CREATE INDEX / CREATE VIEW DDL from sqlite_master */
|
|
100
|
+
ddl: string;
|
|
101
|
+
/** Optional INSERT statements for sample data */
|
|
102
|
+
data?: string | undefined;
|
|
103
|
+
}
|
|
104
|
+
/** Default maximum JSONL audit log size before rotation (10 MB). */
|
|
105
|
+
export declare const DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES: number;
|
|
106
|
+
/** Default maximum table size for data capture in snapshots (50 MB). */
|
|
107
|
+
export declare const DEFAULT_AUDIT_BACKUP_MAX_DATA_SIZE_BYTES: number;
|
|
108
|
+
/** Default maximum snapshot age in days before cleanup. */
|
|
109
|
+
export declare const DEFAULT_AUDIT_BACKUP_MAX_AGE_DAYS = 30;
|
|
110
|
+
/** Default maximum number of snapshots to retain. */
|
|
111
|
+
export declare const DEFAULT_AUDIT_BACKUP_MAX_COUNT = 1000;
|
|
112
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/audit/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wCAAwC;AACxC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAElB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAElB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IAEb,yBAAyB;IACzB,QAAQ,EAAE,aAAa,CAAC;IAExB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IAEd,8DAA8D;IAC9D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IAEnB,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IAEjB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAE3C,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,8BAA8B;AAC9B,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IAEjB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAEhB,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;IAEhB,oEAAoE;IACpE,UAAU,EAAE,OAAO,CAAC;IAEpB,uFAAuF;IACvF,YAAY,EAAE,MAAM,CAAC;IAErB,kFAAkF;IAClF,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC;AAED,wCAAwC;AACxC,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IAEjB,mEAAmE;IACnE,WAAW,EAAE,OAAO,CAAC;IAErB,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IAEnB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB,kHAAkH;IAClH,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAC/B,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAElB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IAEb,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IAEf,0CAA0C;IAC1C,IAAI,EAAE,KAAK,GAAG,UAAU,CAAC;IAEzB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAElB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAElB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,mCAAmC;AACnC,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,QAAQ,EAAE,gBAAgB,CAAC;IAE3B,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IAEZ,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAMD,oEAAoE;AACpE,eAAO,MAAM,gCAAgC,QAAmB,CAAC;AAEjE,wEAAwE;AACxE,eAAO,MAAM,wCAAwC,QAAmB,CAAC;AAEzE,2DAA2D;AAC3D,eAAO,MAAM,iCAAiC,KAAK,CAAC;AAEpD,qDAAqD;AACrD,eAAO,MAAM,8BAA8B,OAAQ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp — Auth Context (AsyncLocalStorage)
|
|
3
|
+
*
|
|
4
|
+
* Provides per-request authentication context threading using Node.js
|
|
5
|
+
* AsyncLocalStorage. Allows the HTTP transport to store the validated
|
|
6
|
+
* auth context so that tool handlers can enforce per-tool scopes
|
|
7
|
+
* without direct parameter coupling through the MCP SDK layer.
|
|
8
|
+
*/
|
|
9
|
+
import type { AuthenticatedContext } from "./middleware/index.js";
|
|
10
|
+
/**
|
|
11
|
+
* Run a function within an authenticated context.
|
|
12
|
+
* Called by the HTTP transport after token validation.
|
|
13
|
+
*
|
|
14
|
+
* @param context - The validated auth context from middleware
|
|
15
|
+
* @param fn - The async function to run (MCP SDK request handling)
|
|
16
|
+
* @returns The result of the wrapped function
|
|
17
|
+
*/
|
|
18
|
+
export declare function runWithAuthContext<T>(context: AuthenticatedContext, fn: () => T): T;
|
|
19
|
+
/**
|
|
20
|
+
* Get the current request's auth context.
|
|
21
|
+
* Returns undefined when:
|
|
22
|
+
* - OAuth is not configured (stdio transport, no auth)
|
|
23
|
+
* - Called outside of an HTTP request context
|
|
24
|
+
*
|
|
25
|
+
* Tool handlers use this to enforce per-tool scope checks.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getAuthContext(): AuthenticatedContext | undefined;
|
|
28
|
+
//# sourceMappingURL=auth-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-context.d.ts","sourceRoot":"","sources":["../../src/auth/auth-context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAQlE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,OAAO,EAAE,oBAAoB,EAC7B,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAEH;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,oBAAoB,GAAG,SAAS,CAEjE"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - Authorization Server Discovery (RFC 8414)
|
|
3
|
+
*
|
|
4
|
+
* Discovers and caches OAuth 2.1 Authorization Server Metadata
|
|
5
|
+
* as specified in RFC 8414.
|
|
6
|
+
*
|
|
7
|
+
* @see https://datatracker.ietf.org/doc/html/rfc8414
|
|
8
|
+
*/
|
|
9
|
+
import type { AuthorizationServerMetadata, AuthServerDiscoveryConfig } from "./types.js";
|
|
10
|
+
/**
|
|
11
|
+
* Authorization Server Metadata Discovery
|
|
12
|
+
*
|
|
13
|
+
* Fetches and caches OAuth 2.1 authorization server metadata
|
|
14
|
+
* from the /.well-known/oauth-authorization-server endpoint.
|
|
15
|
+
*/
|
|
16
|
+
export declare class AuthorizationServerDiscovery {
|
|
17
|
+
private readonly authServerUrl;
|
|
18
|
+
private readonly cacheTtl;
|
|
19
|
+
private readonly timeout;
|
|
20
|
+
private cachedMetadata;
|
|
21
|
+
private cacheExpiry;
|
|
22
|
+
constructor(config: AuthServerDiscoveryConfig);
|
|
23
|
+
/**
|
|
24
|
+
* Discover authorization server metadata
|
|
25
|
+
*
|
|
26
|
+
* Fetches from /.well-known/oauth-authorization-server
|
|
27
|
+
* Results are cached for cacheTtl seconds.
|
|
28
|
+
*
|
|
29
|
+
* @returns Authorization server metadata
|
|
30
|
+
* @throws AuthServerDiscoveryError if discovery fails
|
|
31
|
+
*/
|
|
32
|
+
discover(): Promise<AuthorizationServerMetadata>;
|
|
33
|
+
/**
|
|
34
|
+
* Validate required metadata fields per RFC 8414
|
|
35
|
+
*/
|
|
36
|
+
private validateMetadata;
|
|
37
|
+
/**
|
|
38
|
+
* Get cached metadata (throws if not discovered)
|
|
39
|
+
*/
|
|
40
|
+
getMetadata(): AuthorizationServerMetadata;
|
|
41
|
+
/**
|
|
42
|
+
* Get JWKS URI from metadata
|
|
43
|
+
*
|
|
44
|
+
* @throws Error if metadata not discovered or jwks_uri not present
|
|
45
|
+
*/
|
|
46
|
+
getJwksUri(): string;
|
|
47
|
+
/**
|
|
48
|
+
* Get token endpoint from metadata
|
|
49
|
+
*/
|
|
50
|
+
getTokenEndpoint(): string;
|
|
51
|
+
/**
|
|
52
|
+
* Get issuer from metadata
|
|
53
|
+
*/
|
|
54
|
+
getIssuer(): string;
|
|
55
|
+
/**
|
|
56
|
+
* Get registration endpoint from metadata (RFC 7591)
|
|
57
|
+
*
|
|
58
|
+
* @returns Registration endpoint or null if not supported
|
|
59
|
+
*/
|
|
60
|
+
getRegistrationEndpoint(): string | null;
|
|
61
|
+
/**
|
|
62
|
+
* Check if dynamic client registration is supported
|
|
63
|
+
*/
|
|
64
|
+
supportsClientRegistration(): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Get supported scopes from metadata
|
|
67
|
+
*/
|
|
68
|
+
getSupportedScopes(): string[];
|
|
69
|
+
/**
|
|
70
|
+
* Check if a specific scope is supported
|
|
71
|
+
*/
|
|
72
|
+
isScopeSupported(scope: string): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Clear cached metadata
|
|
75
|
+
*/
|
|
76
|
+
clearCache(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Check if cache is valid
|
|
79
|
+
*/
|
|
80
|
+
isCacheValid(): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Get the authorization server URL
|
|
83
|
+
*/
|
|
84
|
+
getAuthServerUrl(): string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Create an Authorization Server Discovery instance
|
|
88
|
+
*/
|
|
89
|
+
export declare function createAuthServerDiscovery(authServerUrl: string, options?: Partial<Omit<AuthServerDiscoveryConfig, "authServerUrl">>): AuthorizationServerDiscovery;
|
|
90
|
+
//# sourceMappingURL=authorization-server-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-server-discovery.d.ts","sourceRoot":"","sources":["../../src/auth/authorization-server-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAWpB;;;;;GAKG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,WAAW,CAAK;gBAEZ,MAAM,EAAE,yBAAyB;IAgC7C;;;;;;;;OAQG;IACG,QAAQ,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAqEtD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyCxB;;OAEG;IACH,WAAW,IAAI,2BAA2B;IAW1C;;;;OAIG;IACH,UAAU,IAAI,MAAM;IAcpB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;;;OAIG;IACH,uBAAuB,IAAI,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,0BAA0B,IAAI,OAAO;IAIrC;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAMxC;;OAEG;IACH,UAAU,IAAI,IAAI;IAQlB;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,gBAAgB,IAAI,MAAM;CAG3B;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC,GAClE,4BAA4B,CAM9B"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - OAuth Error Classes
|
|
3
|
+
*
|
|
4
|
+
* Module-prefixed error classes for OAuth 2.1 authentication
|
|
5
|
+
* and authorization failures.
|
|
6
|
+
*/
|
|
7
|
+
import { DbMcpError } from "../utils/errors/index.js";
|
|
8
|
+
/**
|
|
9
|
+
* Base class for OAuth-related errors
|
|
10
|
+
*/
|
|
11
|
+
export declare class OAuthError extends DbMcpError {
|
|
12
|
+
/** HTTP status code for this error */
|
|
13
|
+
readonly httpStatus: number;
|
|
14
|
+
/** WWW-Authenticate header value */
|
|
15
|
+
readonly wwwAuthenticate?: string | undefined;
|
|
16
|
+
constructor(message: string, code: string, httpStatus: number, details?: Record<string, unknown>, wwwAuthenticate?: string);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Token is missing from the request
|
|
20
|
+
*/
|
|
21
|
+
export declare class TokenMissingError extends OAuthError {
|
|
22
|
+
constructor(realm?: string);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Token is invalid (malformed, wrong format, etc.)
|
|
26
|
+
*/
|
|
27
|
+
export declare class InvalidTokenError extends OAuthError {
|
|
28
|
+
constructor(message?: string, details?: Record<string, unknown>);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Token has expired
|
|
32
|
+
*/
|
|
33
|
+
export declare class TokenExpiredError extends OAuthError {
|
|
34
|
+
constructor(expiredAt?: Date);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Token signature is invalid
|
|
38
|
+
*/
|
|
39
|
+
export declare class InvalidSignatureError extends OAuthError {
|
|
40
|
+
constructor(message?: string);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Token does not have required scope
|
|
44
|
+
*/
|
|
45
|
+
export declare class InsufficientScopeError extends OAuthError {
|
|
46
|
+
constructor(_requiredScope: string | string[], _providedScopes?: string[]);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Failed to discover authorization server metadata
|
|
50
|
+
*/
|
|
51
|
+
export declare class AuthServerDiscoveryError extends OAuthError {
|
|
52
|
+
constructor(serverUrl: string, cause?: Error);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Failed to fetch JWKS
|
|
56
|
+
*/
|
|
57
|
+
export declare class JwksFetchError extends OAuthError {
|
|
58
|
+
constructor(jwksUri: string, cause?: Error);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Failed to register client
|
|
62
|
+
*/
|
|
63
|
+
export declare class ClientRegistrationError extends OAuthError {
|
|
64
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check if an error is an OAuth error
|
|
68
|
+
*/
|
|
69
|
+
export declare function isOAuthError(error: unknown): error is OAuthError;
|
|
70
|
+
/**
|
|
71
|
+
* Get WWW-Authenticate header for an OAuth error
|
|
72
|
+
*/
|
|
73
|
+
export declare function getWWWAuthenticateHeader(error: OAuthError, realm?: string): string;
|
|
74
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/auth/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAiB,MAAM,0BAA0B,CAAC;AAOrE;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACxC,sCAAsC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,oCAAoC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAG5C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,eAAe,CAAC,EAAE,MAAM;CAO3B;AAMD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,KAAK,SAAW;CAU7B;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;gBAE7C,OAAO,SAAyB,EAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAWpC;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,SAAS,CAAC,EAAE,IAAI;CAU7B;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;gBACvC,OAAO,SAAwC;CAU5D;AAMD;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,UAAU;gBACxC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE;CAU1E;AAMD;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,UAAU;gBAC1C,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAY7C;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,UAAU;gBAChC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAY3C;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,UAAU;gBACzC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,UAAU,EACjB,KAAK,SAAW,GACf,MAAM,CAER"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { TokenClaims } from "../types.js";
|
|
2
|
+
import type { TokenValidator } from "../token-validator.js";
|
|
3
|
+
export interface AuthenticatedContext {
|
|
4
|
+
/** Whether request is authenticated */
|
|
5
|
+
authenticated: boolean;
|
|
6
|
+
/** Token claims (if authenticated) */
|
|
7
|
+
claims?: TokenClaims | undefined;
|
|
8
|
+
/** Token scopes (convenience) */
|
|
9
|
+
scopes: string[];
|
|
10
|
+
/** Client IP address for rate limiting fallback */
|
|
11
|
+
clientIp?: string | undefined;
|
|
12
|
+
}
|
|
13
|
+
export declare function createAuthenticatedContext(authHeader: string | undefined, tokenValidator: TokenValidator): Promise<AuthenticatedContext>;
|
|
14
|
+
export declare function validateAuth(authHeader: string | undefined, tokenValidator: TokenValidator, options?: {
|
|
15
|
+
required?: boolean;
|
|
16
|
+
requiredScopes?: string[];
|
|
17
|
+
}): Promise<AuthenticatedContext>;
|
|
18
|
+
export declare function formatOAuthError(error: unknown): {
|
|
19
|
+
status: number;
|
|
20
|
+
body: object;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/auth/middleware/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAS5D,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,aAAa,EAAE,OAAO,CAAC;IAEvB,sCAAsC;IACtC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAEjC,iCAAiC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAkB/B;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,cAAc,EAAE,cAAc,EAC9B,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GAC9D,OAAO,CAAC,oBAAoB,CAAC,CAiC/B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAsCA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RequestHandler } from "express";
|
|
2
|
+
import type { TokenValidator } from "../token-validator.js";
|
|
3
|
+
import type { OAuthResourceServer } from "../oauth-resource-server.js";
|
|
4
|
+
export interface AuthMiddlewareConfig {
|
|
5
|
+
/** Token validator instance */
|
|
6
|
+
tokenValidator: TokenValidator;
|
|
7
|
+
/** Resource server instance (for WWW-Authenticate header) */
|
|
8
|
+
resourceServer: OAuthResourceServer;
|
|
9
|
+
/** Paths that bypass authentication (e.g., '/.well-known/*', '/health') */
|
|
10
|
+
publicPaths?: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare function createAuthMiddleware(config: AuthMiddlewareConfig): RequestHandler;
|
|
13
|
+
//# sourceMappingURL=express-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"express-auth.d.ts","sourceRoot":"","sources":["../../../src/auth/middleware/express-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmC,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAOvE,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,cAAc,EAAE,cAAc,CAAC;IAE/B,6DAA6D;IAC7D,cAAc,EAAE,mBAAmB,CAAC;IAEpC,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAuBD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,oBAAoB,GAC3B,cAAc,CAuFhB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Request, Response, NextFunction, RequestHandler } from "express";
|
|
2
|
+
export declare function requireScope(scope: string): RequestHandler;
|
|
3
|
+
export declare function requireAnyScope(scopes: string[]): RequestHandler;
|
|
4
|
+
export declare function requireToolScope(toolName: string): RequestHandler;
|
|
5
|
+
export declare function oauthErrorHandler(error: Error, _req: Request, res: Response, next: NextFunction): void;
|
|
6
|
+
//# sourceMappingURL=express-scopes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"express-scopes.d.ts","sourceRoot":"","sources":["../../../src/auth/middleware/express-scopes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAO/E,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAqC1D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,CA4ChE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAqCjE;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,IAAI,CAgBN"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../../src/auth/middleware/extraction.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,MAAM,GAAG,IAAI,CAmBf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - OAuth Protected Resource Server (RFC 9728)
|
|
3
|
+
*
|
|
4
|
+
* Implements the OAuth 2.1 Protected Resource Metadata endpoint
|
|
5
|
+
* as specified in RFC 9728.
|
|
6
|
+
*
|
|
7
|
+
* @see https://datatracker.ietf.org/doc/html/rfc9728
|
|
8
|
+
*/
|
|
9
|
+
import type { RequestHandler } from "express";
|
|
10
|
+
import type { ProtectedResourceMetadata, ResourceServerConfig } from "./types.js";
|
|
11
|
+
/**
|
|
12
|
+
* OAuth 2.1 Protected Resource Server
|
|
13
|
+
*
|
|
14
|
+
* Provides Protected Resource Metadata (RFC 9728) for MCP authorization.
|
|
15
|
+
*/
|
|
16
|
+
export declare class OAuthResourceServer {
|
|
17
|
+
private readonly config;
|
|
18
|
+
private metadata;
|
|
19
|
+
constructor(config: ResourceServerConfig);
|
|
20
|
+
/**
|
|
21
|
+
* Get the Protected Resource Metadata document
|
|
22
|
+
*
|
|
23
|
+
* @returns RFC 9728 compliant metadata
|
|
24
|
+
*/
|
|
25
|
+
getMetadata(): ProtectedResourceMetadata;
|
|
26
|
+
/**
|
|
27
|
+
* Build the Protected Resource Metadata document
|
|
28
|
+
*/
|
|
29
|
+
private buildMetadata;
|
|
30
|
+
/**
|
|
31
|
+
* Get Express request handler for the metadata endpoint
|
|
32
|
+
*
|
|
33
|
+
* Serves: GET /.well-known/oauth-protected-resource
|
|
34
|
+
*/
|
|
35
|
+
getMetadataHandler(): RequestHandler;
|
|
36
|
+
/**
|
|
37
|
+
* Generate WWW-Authenticate header for 401 responses
|
|
38
|
+
*
|
|
39
|
+
* @param error - Error type for the header
|
|
40
|
+
* @param errorDescription - Human-readable error description
|
|
41
|
+
* @returns WWW-Authenticate header value
|
|
42
|
+
*/
|
|
43
|
+
getWWWAuthenticateHeader(error?: string, errorDescription?: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Get the resource URI
|
|
46
|
+
*/
|
|
47
|
+
getResourceUri(): string;
|
|
48
|
+
/**
|
|
49
|
+
* Get the authorization servers
|
|
50
|
+
*/
|
|
51
|
+
getAuthorizationServers(): string[];
|
|
52
|
+
/**
|
|
53
|
+
* Get supported scopes
|
|
54
|
+
*/
|
|
55
|
+
getSupportedScopes(): string[];
|
|
56
|
+
/**
|
|
57
|
+
* Check if a scope is supported by this resource server.
|
|
58
|
+
* Validates standard scopes and dynamic patterns (db:*, table:*:*).
|
|
59
|
+
*/
|
|
60
|
+
isScopeSupported(scope: string): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Get the well-known metadata endpoint path
|
|
63
|
+
*/
|
|
64
|
+
getWellKnownPath(): string;
|
|
65
|
+
/**
|
|
66
|
+
* Clear cached metadata (useful when configuration changes)
|
|
67
|
+
*/
|
|
68
|
+
clearCache(): void;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Create an OAuth Resource Server instance
|
|
72
|
+
*/
|
|
73
|
+
export declare function createOAuthResourceServer(config: ResourceServerConfig): OAuthResourceServer;
|
|
74
|
+
//# sourceMappingURL=oauth-resource-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-resource-server.d.ts","sourceRoot":"","sources":["../../src/auth/oauth-resource-server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EACV,yBAAyB,EACzB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAUpB;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAA0C;gBAE9C,MAAM,EAAE,oBAAoB;IAiBxC;;;;OAIG;IACH,WAAW,IAAI,yBAAyB;IAKxC;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;OAIG;IACH,kBAAkB,IAAI,cAAc;IAcpC;;;;;;OAMG;IACH,wBAAwB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IAkB3E;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,uBAAuB,IAAI,MAAM,EAAE;IAInC;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAcxC;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,oBAAoB,GAC3B,mBAAmB,CAErB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp — Tool Scope Map
|
|
3
|
+
*
|
|
4
|
+
* Builds a reverse lookup from tool name to required OAuth scope
|
|
5
|
+
* by inverting TOOL_GROUPS × TOOL_GROUP_SCOPES. Computed once at
|
|
6
|
+
* module load for O(1) per-call lookup.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Register a tool's required scope dynamically.
|
|
10
|
+
* Replaces the old static group derivation.
|
|
11
|
+
*/
|
|
12
|
+
export declare function registerToolScope(toolName: string, scope: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Get the required scope for a tool by name.
|
|
15
|
+
*
|
|
16
|
+
* @param toolName - The MCP tool name (e.g., "sqlite_read_query")
|
|
17
|
+
* @returns The required scope, or "admin" as a fail-closed default for unknown tools
|
|
18
|
+
*/
|
|
19
|
+
export declare function getRequiredScope(toolName: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Get the full tool-to-scope map (for testing/debugging).
|
|
22
|
+
*/
|
|
23
|
+
export declare function getToolScopeMap(): ReadonlyMap<string, string>;
|
|
24
|
+
//# sourceMappingURL=scope-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-map.d.ts","sourceRoot":"","sources":["../../src/auth/scope-map.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAOvE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAE7D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard OAuth scopes for db-mcp
|
|
3
|
+
*/
|
|
4
|
+
export declare const SCOPES: {
|
|
5
|
+
/** Read-only access to all databases */
|
|
6
|
+
readonly READ: "read";
|
|
7
|
+
/** Read and write access to all databases */
|
|
8
|
+
readonly WRITE: "write";
|
|
9
|
+
/** Administrative access */
|
|
10
|
+
readonly ADMIN: "admin";
|
|
11
|
+
/** Unrestricted access to all operations */
|
|
12
|
+
readonly FULL: "full";
|
|
13
|
+
};
|
|
14
|
+
export type StandardScope = (typeof SCOPES)[keyof typeof SCOPES];
|
|
15
|
+
/**
|
|
16
|
+
* Base scopes supported by the server
|
|
17
|
+
*/
|
|
18
|
+
export declare const BASE_SCOPES: readonly ["read", "write", "admin", "full"];
|
|
19
|
+
/**
|
|
20
|
+
* Scope patterns (regex patterns for validation)
|
|
21
|
+
*/
|
|
22
|
+
export declare const SCOPE_PATTERNS: {
|
|
23
|
+
/** Read-only access */
|
|
24
|
+
readonly READ: "read";
|
|
25
|
+
/** Read and write access */
|
|
26
|
+
readonly WRITE: "write";
|
|
27
|
+
/** Administrative access */
|
|
28
|
+
readonly ADMIN: "admin";
|
|
29
|
+
/** Unrestricted access */
|
|
30
|
+
readonly FULL: "full";
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* All supported scope patterns for metadata
|
|
34
|
+
*/
|
|
35
|
+
export declare const SUPPORTED_SCOPES: readonly ["read", "write", "admin", "full"];
|
|
36
|
+
/**
|
|
37
|
+
* Parse a scope string (space-delimited) into an array
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseScopes(scopeString: string): string[];
|
|
40
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/auth/scopes/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB,wCAAwC;;IAExC,6CAA6C;;IAE7C,4BAA4B;;IAE5B,4CAA4C;;CAEpC,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,WAAW,6CAA8C,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB,uBAAuB;;IAEvB,4BAA4B;;IAE5B,4BAA4B;;IAE5B,0BAA0B;;CAElB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,6CAA8C,CAAC;AAE5E;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAKzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../../src/auth/scopes/display.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAazD"}
|