@ductape/sdk
Connect your Node.js app to databases, message brokers, storage, sessions, scheduled jobs, and more — all through a single access key.
Install
npm install @ductape/sdk@latest
Quick start
import Ductape from '@ductape/sdk';
const ductape = new Ductape({
accessKey: 'your-access-key',
product: 'my-product',
env: 'prd',
});
Pass product and env once at init; every service call inherits them automatically.
Examples
Sessions
const session = await ductape.sessions.start({
tag: 'user-session',
data: { userId: 'u1', email: '[email protected]' },
});
// session.token, session.refreshToken, session.sessionId
await ductape.sessions.verify({ token: session.token });
await ductape.sessions.revoke({ token: session.token });
Message brokers
await ductape.events.produce({
event: 'order-events:order-created',
message: { orderId: '123', amount: 99.99 },
});
await ductape.events.consume({
event: 'order-events:order-created',
callback: async (msg) => console.log(msg),
});
Supports Kafka, RabbitMQ, Redis, SQS, Google Pub/Sub, and NATS.
Storage
await ductape.storage.upload({
storage: 'main-storage',
fileName: 'reports/q1.pdf',
buffer: fileBuffer,
mimeType: 'application/pdf',
});
const file = await ductape.storage.download({ storage: 'main-storage', fileName: 'reports/q1.pdf' });
const url = await ductape.storage.getSignedUrl({ storage: 'main-storage', fileName: 'reports/q1.pdf' });
Supports AWS S3, Google Cloud Storage, and Azure Blob Storage.
Databases
const rows = await ductape.databases.query({
database: 'main-db',
table: 'orders',
where: { status: 'pending' },
});
Supports PostgreSQL, MySQL, MariaDB, and Cassandra.
Features
await ductape.feature.execute({
tag: 'process-order',
data: { orderId: '123' },
});
What's available
| Namespace | Description |
|---|---|
ductape.sessions | JWT sessions — start, verify, refresh, revoke |
ductape.events | Message brokers — produce, consume, manage topics |
ductape.storage | File storage — upload, download, delete, signed URLs |
ductape.databases | Relational databases — query, migrate |
ductape.graph | Graph database — queries and transactions (Neo4j) |
ductape.vector | Vector search — upsert and query (Pinecone, Qdrant, Weaviate) |
ductape.warehouse | Unified query across relational, graph, and vector |
ductape.caches | Cache — get, set, invalidate |
ductape.feature | Features — execute multi-step product flows |
ductape.agents | LLM agents with tools and memory |
ductape.models | LLM inference (OpenAI, Anthropic, and others) |
ductape.jobs | Background jobs — schedule and run |
ductape.notifications | Email, SMS, push, and callback notifications |
ductape.secrets | Secrets — store and resolve per environment |
ductape.quota | Rate limiting and quota enforcement |
ductape.fallback | Fallback policies |
ductape.health | Healthcheck definitions and status |
ductape.cloud | Cloud connection management |
ductape.api | Call actions on integrated third-party apps |
Requirements
Node.js 18+. Server-side only — browser environments are not supported.