← ClaudeAtlas

electrodblisted

Use when defining DynamoDB entities, modeling indexes, or writing queries/mutations with the ElectroDB ORM. Covers entity schema, access patterns, CRUD operations, update expressions, and single-table design patterns.
whimzyLive/nightshift-ai · ★ 3 · AI & Automation · score 71
Install: claude install-skill whimzyLive/nightshift-ai
# ElectroDB TypeScript-first DynamoDB ORM. Manages composite key composition, enforces attribute types, and generates safe DocumentClient params. No raw `DynamoDBClient` calls. ## Installation ```bash npm install electrodb @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb ``` ## Entity Definition ```typescript import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; import { DynamoDBDocumentClient } from "@aws-sdk/lib-dynamodb"; import { Entity } from "electrodb"; const client = DynamoDBDocumentClient.from(new DynamoDBClient({})); const Task = new Entity( { model: { entity: "task", // item type namespace service: "taskapp", // application namespace version: "1", }, attributes: { taskId: { type: "string", required: true, default: () => crypto.randomUUID() }, projectId: { type: "string", required: true }, employeeId: { type: "string", required: true }, status: { type: ["pending", "active", "done"] as const, required: true }, description: { type: "string" }, ttl: { type: "number" }, // epoch seconds for DynamoDB TTL createdAt: { type: "string", readOnly: true, default: () => new Date().toISOString() }, updatedAt: { type: "string", watch: "*", set: () => new Date().toISOString() }, }, indexes: { // Table index (no `index` property = primary table index) primary: { pk: { field: "pk", composite: ["taskId"] }, sk: { field: "sk", co