s3db.js 13.5.1 → 13.6.1
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 +89 -19
- package/dist/{s3db.cjs.js → s3db.cjs} +29780 -24384
- package/dist/s3db.cjs.map +1 -0
- package/dist/s3db.es.js +24263 -18860
- package/dist/s3db.es.js.map +1 -1
- package/package.json +227 -21
- package/src/concerns/id.js +90 -6
- package/src/concerns/index.js +2 -1
- package/src/concerns/password-hashing.js +150 -0
- package/src/database.class.js +4 -0
- package/src/plugins/api/auth/basic-auth.js +23 -1
- package/src/plugins/api/auth/index.js +49 -3
- package/src/plugins/api/auth/oauth2-auth.js +171 -0
- package/src/plugins/api/auth/oidc-auth.js +789 -0
- package/src/plugins/api/auth/oidc-client.js +462 -0
- package/src/plugins/api/auth/path-auth-matcher.js +284 -0
- package/src/plugins/api/concerns/event-emitter.js +134 -0
- package/src/plugins/api/concerns/failban-manager.js +651 -0
- package/src/plugins/api/concerns/guards-helpers.js +402 -0
- package/src/plugins/api/concerns/metrics-collector.js +346 -0
- package/src/plugins/api/concerns/opengraph-helper.js +116 -0
- package/src/plugins/api/concerns/state-machine.js +288 -0
- package/src/plugins/api/index.js +514 -54
- package/src/plugins/api/middlewares/failban.js +305 -0
- package/src/plugins/api/middlewares/rate-limit.js +301 -0
- package/src/plugins/api/middlewares/request-id.js +74 -0
- package/src/plugins/api/middlewares/security-headers.js +120 -0
- package/src/plugins/api/middlewares/session-tracking.js +194 -0
- package/src/plugins/api/routes/auth-routes.js +23 -3
- package/src/plugins/api/routes/resource-routes.js +71 -29
- package/src/plugins/api/server.js +1017 -94
- package/src/plugins/api/utils/guards.js +213 -0
- package/src/plugins/api/utils/mime-types.js +154 -0
- package/src/plugins/api/utils/openapi-generator.js +44 -11
- package/src/plugins/api/utils/path-matcher.js +173 -0
- package/src/plugins/api/utils/static-filesystem.js +262 -0
- package/src/plugins/api/utils/static-s3.js +231 -0
- package/src/plugins/api/utils/template-engine.js +262 -0
- package/src/plugins/cloud-inventory/drivers/alibaba-driver.js +853 -0
- package/src/plugins/cloud-inventory/drivers/aws-driver.js +2554 -0
- package/src/plugins/cloud-inventory/drivers/azure-driver.js +637 -0
- package/src/plugins/cloud-inventory/drivers/base-driver.js +99 -0
- package/src/plugins/cloud-inventory/drivers/cloudflare-driver.js +620 -0
- package/src/plugins/cloud-inventory/drivers/digitalocean-driver.js +698 -0
- package/src/plugins/cloud-inventory/drivers/gcp-driver.js +645 -0
- package/src/plugins/cloud-inventory/drivers/hetzner-driver.js +559 -0
- package/src/plugins/cloud-inventory/drivers/linode-driver.js +614 -0
- package/src/plugins/cloud-inventory/drivers/mock-drivers.js +449 -0
- package/src/plugins/cloud-inventory/drivers/mongodb-atlas-driver.js +771 -0
- package/src/plugins/cloud-inventory/drivers/oracle-driver.js +768 -0
- package/src/plugins/cloud-inventory/drivers/vultr-driver.js +636 -0
- package/src/plugins/cloud-inventory/index.js +20 -0
- package/src/plugins/cloud-inventory/registry.js +146 -0
- package/src/plugins/cloud-inventory/terraform-exporter.js +362 -0
- package/src/plugins/cloud-inventory.plugin.js +1333 -0
- package/src/plugins/concerns/plugin-dependencies.js +61 -1
- package/src/plugins/eventual-consistency/analytics.js +1 -0
- package/src/plugins/identity/README.md +335 -0
- package/src/plugins/identity/concerns/mfa-manager.js +204 -0
- package/src/plugins/identity/concerns/password.js +138 -0
- package/src/plugins/identity/concerns/resource-schemas.js +273 -0
- package/src/plugins/identity/concerns/token-generator.js +172 -0
- package/src/plugins/identity/email-service.js +422 -0
- package/src/plugins/identity/index.js +1052 -0
- package/src/plugins/identity/oauth2-server.js +1033 -0
- package/src/plugins/identity/oidc-discovery.js +285 -0
- package/src/plugins/identity/rsa-keys.js +323 -0
- package/src/plugins/identity/server.js +500 -0
- package/src/plugins/identity/session-manager.js +453 -0
- package/src/plugins/identity/ui/layouts/base.js +251 -0
- package/src/plugins/identity/ui/middleware.js +135 -0
- package/src/plugins/identity/ui/pages/admin/client-form.js +247 -0
- package/src/plugins/identity/ui/pages/admin/clients.js +179 -0
- package/src/plugins/identity/ui/pages/admin/dashboard.js +181 -0
- package/src/plugins/identity/ui/pages/admin/user-form.js +283 -0
- package/src/plugins/identity/ui/pages/admin/users.js +263 -0
- package/src/plugins/identity/ui/pages/consent.js +262 -0
- package/src/plugins/identity/ui/pages/forgot-password.js +104 -0
- package/src/plugins/identity/ui/pages/login.js +144 -0
- package/src/plugins/identity/ui/pages/mfa-backup-codes.js +180 -0
- package/src/plugins/identity/ui/pages/mfa-enrollment.js +187 -0
- package/src/plugins/identity/ui/pages/mfa-verification.js +178 -0
- package/src/plugins/identity/ui/pages/oauth-error.js +225 -0
- package/src/plugins/identity/ui/pages/profile.js +361 -0
- package/src/plugins/identity/ui/pages/register.js +226 -0
- package/src/plugins/identity/ui/pages/reset-password.js +128 -0
- package/src/plugins/identity/ui/pages/verify-email.js +172 -0
- package/src/plugins/identity/ui/routes.js +2541 -0
- package/src/plugins/identity/ui/styles/main.css +465 -0
- package/src/plugins/index.js +4 -1
- package/src/plugins/ml/base-model.class.js +32 -7
- package/src/plugins/ml/classification-model.class.js +1 -1
- package/src/plugins/ml/timeseries-model.class.js +3 -1
- package/src/plugins/ml.plugin.js +124 -32
- package/src/plugins/shared/error-handler.js +147 -0
- package/src/plugins/shared/index.js +9 -0
- package/src/plugins/shared/middlewares/compression.js +117 -0
- package/src/plugins/shared/middlewares/cors.js +49 -0
- package/src/plugins/shared/middlewares/index.js +11 -0
- package/src/plugins/shared/middlewares/logging.js +54 -0
- package/src/plugins/shared/middlewares/rate-limit.js +73 -0
- package/src/plugins/shared/middlewares/security.js +158 -0
- package/src/plugins/shared/response-formatter.js +264 -0
- package/src/plugins/tfstate/README.md +126 -126
- package/src/resource.class.js +140 -12
- package/src/schema.class.js +30 -1
- package/src/validator.class.js +57 -6
- package/dist/s3db.cjs.js.map +0 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
<strong>Transform AWS S3 into a powerful document database</strong><br>
|
|
9
|
-
<em>
|
|
9
|
+
<em>Cost-effective storage • Automatic encryption • ORM-like interface • Streaming API</em>
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
|
|
34
34
|
## 🚀 What is s3db.js?
|
|
35
35
|
|
|
36
|
-
**s3db.js** is a
|
|
36
|
+
**s3db.js** is a document database that transforms AWS S3 into a fully functional database using S3's metadata capabilities. Instead of traditional storage methods, it stores document data in S3's metadata fields (up to 2KB), making it highly cost-effective while providing a familiar ORM-like interface.
|
|
37
37
|
|
|
38
38
|
**Perfect for:**
|
|
39
39
|
- 🌐 **Serverless applications** - No database servers to manage
|
|
@@ -106,6 +106,18 @@
|
|
|
106
106
|
|
|
107
107
|
---
|
|
108
108
|
|
|
109
|
+
## 📚 Documentation Quick Links
|
|
110
|
+
|
|
111
|
+
> **Core Concepts:** [Schema Validation](./docs/schema.md) • [Client API](./docs/client.md) • [Fastest Validator](./docs/fastest-validator.md)
|
|
112
|
+
|
|
113
|
+
> **Plugins:** [API Plugin](./docs/plugins/api.md) • [Identity Plugin](./docs/plugins/identity.md) • [All Plugins](#-plugins)
|
|
114
|
+
|
|
115
|
+
> **Integrations:** [MCP Server](./docs/mcp.md) • [Model Context Protocol](./docs/mcp.md)
|
|
116
|
+
|
|
117
|
+
> **Advanced:** [Performance Tuning](./docs/benchmarks/) • [Migration Guides](./docs/examples/) • [TypeScript Support](./docs/typescript/)
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
109
121
|
## 🚀 Quick Start
|
|
110
122
|
|
|
111
123
|
Get up and running in less than 5 minutes!
|
|
@@ -1271,22 +1283,77 @@ orders.useMiddleware('updated', async (ctx, next) => {
|
|
|
1271
1283
|
|
|
1272
1284
|
## 🔌 Plugins
|
|
1273
1285
|
|
|
1274
|
-
|
|
1286
|
+
> **Quick Jump:** [🌐 API](#-api) | [🔐 Identity](#-identity) | [⚡ Performance](#-performance) | [📊 Data](#-data) | [🔧 DevOps](#-devops) | [🤖 ML/AI](#-mlai)
|
|
1287
|
+
|
|
1288
|
+
Extend s3db.js with powerful plugins. All plugins are optional and can be installed independently.
|
|
1289
|
+
|
|
1290
|
+
### 🌐 API & Auth
|
|
1291
|
+
|
|
1292
|
+
[**APIPlugin**](./docs/plugins/api.md) • [**IdentityPlugin**](./docs/plugins/identity.md)
|
|
1293
|
+
|
|
1294
|
+
**APIPlugin** - Transform s3db.js into production-ready REST API with OpenAPI, multi-auth (JWT/OIDC/Basic/API Key), rate limiting, and template engines.
|
|
1295
|
+
|
|
1296
|
+
**IdentityPlugin** - Complete OAuth2/OIDC server with MFA, whitelabel UI, and enterprise SSO.
|
|
1297
|
+
|
|
1298
|
+
### ⚡ Performance
|
|
1299
|
+
|
|
1300
|
+
[**CachePlugin**](./docs/plugins/cache.md) • [**TTLPlugin**](./docs/plugins/ttl.md) • [**EventualConsistencyPlugin**](./docs/plugins/eventual-consistency.md) • [**MetricsPlugin**](./docs/plugins/metrics.md)
|
|
1301
|
+
|
|
1302
|
+
**CachePlugin** - Memory/S3/filesystem caching with compression and automatic invalidation.
|
|
1303
|
+
|
|
1304
|
+
**TTLPlugin** - Auto-cleanup expired records with O(1) partition-based deletion.
|
|
1305
|
+
|
|
1306
|
+
**EventualConsistencyPlugin** - Eventually consistent counters and high-performance analytics.
|
|
1307
|
+
|
|
1308
|
+
**MetricsPlugin** - Performance monitoring with Prometheus export.
|
|
1309
|
+
|
|
1310
|
+
### 📊 Data & Replication
|
|
1311
|
+
|
|
1312
|
+
[**ReplicatorPlugin**](./docs/plugins/replicator.md) • [**ImporterPlugin**](./docs/plugins/importer.md) • [**BackupPlugin**](./docs/plugins/backup.md) • [**AuditPlugin**](./docs/plugins/audit.md)
|
|
1313
|
+
|
|
1314
|
+
**ReplicatorPlugin** - Real-time replication to BigQuery, PostgreSQL, MySQL, Turso, PlanetScale, and SQS.
|
|
1315
|
+
|
|
1316
|
+
**ImporterPlugin** - Multi-format data import (JSON, CSV, bulk migrations).
|
|
1317
|
+
|
|
1318
|
+
**BackupPlugin** - Multi-destination backup system for disaster recovery.
|
|
1319
|
+
|
|
1320
|
+
**AuditPlugin** - Complete audit trail for compliance and security.
|
|
1321
|
+
|
|
1322
|
+
### 🔧 DevOps & Automation
|
|
1323
|
+
|
|
1324
|
+
[**QueueConsumerPlugin**](./docs/plugins/queue-consumer.md) • [**SchedulerPlugin**](./docs/plugins/scheduler.md) • [**TfstatePlugin**](./docs/plugins/tfstate.md) • [**CloudInventoryPlugin**](./docs/plugins/cloud-inventory.md) • [**CostsPlugin**](./docs/plugins/costs.md)
|
|
1325
|
+
|
|
1326
|
+
**QueueConsumerPlugin** - Process RabbitMQ/SQS messages for event-driven architectures.
|
|
1327
|
+
|
|
1328
|
+
**SchedulerPlugin** - Cron-based job scheduling for maintenance tasks.
|
|
1329
|
+
|
|
1330
|
+
**TfstatePlugin** - Track Terraform infrastructure changes and drift detection.
|
|
1331
|
+
|
|
1332
|
+
**CloudInventoryPlugin** - Multi-cloud inventory with versioning and diff tracking.
|
|
1333
|
+
|
|
1334
|
+
**CostsPlugin** - AWS cost tracking and optimization insights.
|
|
1335
|
+
|
|
1336
|
+
### 🤖 ML/AI & Advanced Features
|
|
1337
|
+
|
|
1338
|
+
[**MLPlugin**](./docs/plugins/ml-plugin.md) • [**VectorPlugin**](./docs/plugins/vector.md) • [**FullTextPlugin**](./docs/plugins/fulltext.md) • [**GeoPlugin**](./docs/plugins/geo.md)
|
|
1339
|
+
|
|
1340
|
+
**MLPlugin** - Machine learning model management and inference pipelines.
|
|
1341
|
+
|
|
1342
|
+
**VectorPlugin** - Vector similarity search (cosine, euclidean) for RAG and ML applications.
|
|
1343
|
+
|
|
1344
|
+
**FullTextPlugin** - Full-text search with tokenization and indexing.
|
|
1345
|
+
|
|
1346
|
+
**GeoPlugin** - Geospatial queries and distance calculations.
|
|
1347
|
+
|
|
1348
|
+
### 🔗 Other Plugins
|
|
1349
|
+
|
|
1350
|
+
[**RelationPlugin**](./docs/plugins/relation.md) • [**StateMachinePlugin**](./docs/plugins/state-machine.md) • [**S3QueuePlugin**](./docs/plugins/s3-queue.md)
|
|
1351
|
+
|
|
1352
|
+
**RelationPlugin** - ORM-like relationships with join optimization (10-100x faster queries).
|
|
1275
1353
|
|
|
1276
|
-
|
|
1354
|
+
**StateMachinePlugin** - Finite state machine workflows for business processes.
|
|
1277
1355
|
|
|
1278
|
-
|
|
1279
|
-
|--------|-------------|--------------|
|
|
1280
|
-
| [**CachePlugin**](./docs/plugins/cache.md) | Memory/S3/filesystem caching with compression | None |
|
|
1281
|
-
| [**CostsPlugin**](./docs/plugins/costs.md) | AWS cost tracking and optimization | None |
|
|
1282
|
-
| [**MetricsPlugin**](./docs/plugins/metrics.md) | Performance monitoring and Prometheus export | None |
|
|
1283
|
-
| [**AuditPlugin**](./docs/plugins/audit.md) | Complete audit trail for all operations | None |
|
|
1284
|
-
| [**TTLPlugin**](./docs/plugins/ttl.md) | Auto-cleanup expired records (O(1) partition-based) | None |
|
|
1285
|
-
| [**RelationPlugin**](./docs/plugins/relation.md) | ORM-like relationships (10-100x faster queries) | None |
|
|
1286
|
-
| [**ReplicatorPlugin**](./docs/plugins/replicator.md) | Real-time replication to BigQuery, PostgreSQL, SQS | `pg`, `@google-cloud/bigquery`, `@aws-sdk/client-sqs` |
|
|
1287
|
-
| [**FullTextPlugin**](./docs/plugins/fulltext.md) | Full-text search with indexing | None |
|
|
1288
|
-
| [**EventualConsistencyPlugin**](./docs/plugins/eventual-consistency.md) | Eventually consistent counters and analytics | None |
|
|
1289
|
-
| [**GeoPlugin**](./docs/plugins/geo.md) | Geospatial queries and distance calculations | None |
|
|
1356
|
+
**S3QueuePlugin** - Distributed queue with zero race conditions using S3.
|
|
1290
1357
|
|
|
1291
1358
|
### Plugin Installation
|
|
1292
1359
|
|
|
@@ -1295,9 +1362,12 @@ Extend s3db.js with powerful plugins for caching, monitoring, replication, relat
|
|
|
1295
1362
|
# Included in s3db.js package
|
|
1296
1363
|
|
|
1297
1364
|
# External dependencies (install only what you need)
|
|
1298
|
-
pnpm add pg # PostgreSQL replication
|
|
1299
|
-
pnpm add @google-cloud/bigquery # BigQuery replication
|
|
1300
|
-
pnpm add @aws-sdk/client-sqs # SQS replication/consumption
|
|
1365
|
+
pnpm add pg # PostgreSQL replication (ReplicatorPlugin)
|
|
1366
|
+
pnpm add @google-cloud/bigquery # BigQuery replication (ReplicatorPlugin)
|
|
1367
|
+
pnpm add @aws-sdk/client-sqs # SQS replication/consumption (ReplicatorPlugin, QueueConsumerPlugin)
|
|
1368
|
+
pnpm add amqplib # RabbitMQ consumption (QueueConsumerPlugin)
|
|
1369
|
+
pnpm add node-cron # Job scheduling (SchedulerPlugin, TfstatePlugin)
|
|
1370
|
+
pnpm add ejs # Template engine (APIPlugin - optional)
|
|
1301
1371
|
```
|
|
1302
1372
|
|
|
1303
1373
|
### Quick Example
|