@ductape/sdk
v0.1.50
Published
sdk for building ductaped products
Readme
@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@latestQuick 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.
