Skip to content
Back to skills

Makers Storage

ASecurity

KV and Blob storage services on EdgeOne Makers. KV for edge key-value pairs, Blob for file/object storage in Cloud Functions. Covers SDK usage, setup, and troubleshooting.

  • 417 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added November 8, 2026
databasesgosqlnodedatabasebackend

Works with

  • cli

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned November 8, 2026

npx -y skills add infometa/workbuddyskills --skill makers-storage --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Makers Storage?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Makers Storage
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/infometa-makers-storage-workbuddyskills/badge)](https://www.skillsdirectory.com/skills/infometa-makers-storage-workbuddyskills)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: edgeone-makers-storage
description: >-
  KV and Blob storage services on EdgeOne Makers. KV for edge key-value pairs,
  Blob for file/object storage in Cloud Functions. Covers SDK usage, setup, and troubleshooting.
pathPatterns:
  - edge-functions/**
validate:
  - pattern: "context\\.env\\.[A-Za-z_]*[Kk][Vv]"
    message: "KV is a console-bound global variable, not on context.env — call my_kv.get(...) directly. See makers-storage/references/kv.md."
metadata:
  author: edgeone
  version: "1.0.0"
---

# EdgeOne Makers Storage

> 🗄️ **There is NO managed database on this platform** — no SQL, no MongoDB, no Prisma, no ORM. Do **not** reach for `sqlite`, `pg`, `mysql`, `mongodb`, or an in-memory array (it resets on every cold start / redeploy). **Blob IS your database.** Any dynamic data a generated site needs to persist — guestbook messages, uploaded drawings, votes, leaderboards, per-user save state, form submissions — is modeled as Blob keys. Model your "tables" as **key prefixes** (`messages/<id>.json`, `users/<uid>.json`). See [references/blob.md](references/blob.md) → "Blob as your backend".

> ⚠️ **Local dev does NOT always require login.** `edgeone makers dev` runs without authentication for **pure-static** previews. Login only becomes necessary through this chain: **using Blob ⇒ the project must be `link`ed ⇒ linking requires a logged-in account first.** So if (and only if) dev/deploy must read/write **Blob** (or any credentialed backend), run `edgeone login` (browser) or pass `-t <token>` before linking/starting dev. **If your site has no backend, skip login and just run `edgeone makers dev`.** See also makers-env-adaption (Login authentication + Project linking).
>
> ⛔ **When the project uses Blob/KV, ALWAYS pass `-n <project-name>` to `edgeone makers dev`.** Bare `edgeone makers dev` drops into an interactive "Link existing / Create and link" picker that hangs in sandbox / non-interactive environments. With `-n`, the CLI auto-creates the project if the name doesn't exist yet — one command, no separate step needed.
>
> 🔒 **Every Blob store: `getStore({ name, consistency: "strong" })` — never the string form `getStore("name")`.** The string form defaults to eventual consistency and causes "I just wrote but the next read returns stale/null" bugs. Full rule and rationale: [references/blob.md](references/blob.md) → IRON RULE (top of file).

EdgeOne Makers provides two storage services. **Choose based on your runtime and data type:**

| Storage | Runtime | Data Type | SDK | Use Case |
|---------|---------|-----------|-----|----------|
| **KV** | Edge Functions only | Small key-value pairs (≤ 25 MB) | Global variable (no npm) | Counters, config, session tokens, simple CRUD |
| **Blob** | Cloud Functions (Makers Functions) | Files & objects (images, docs, uploads) | `@edgeone/pages-blob` (npm) | User uploads, AI-generated content, file management |

## Decision Tree

```
Need to persist anything (records, lists, counters, uploads, save state)?
├─ Edge Function (V8 runtime, no npm)?
│   → KV Storage (global variable)           → read references/kv.md
└─ Cloud Function (Node.js, has npm)?  ← default for any real backend
    ├─ Files / images / large objects?
    │   → Blob Storage                       → read references/blob.md
    └─ Structured data (records, lists, counters, per-user state)?
        → Blob with setJSON / key prefixes   → read references/blob.md
```

## Routing

| Task | Read |
|------|------|
| KV Storage (Edge Functions, global variable, put/get/delete/list) | [references/kv.md](references/kv.md) |
| Blob Storage (Cloud Functions, npm SDK, file upload/download, pre-signed URLs) | [references/blob.md](references/blob.md) |

Files in this skill

  • SKILL.md3.7 KB
  • references/blob.md18.6 KB
  • references/kv.md8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in databases →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.