Skip to content

KVNamespace ​

A Cloudflare KV Namespace is a key-value store that can be used to store data for your application.

Minimal Example ​

Create a basic KV namespace for storing user data.

ts
import { KVNamespace } from "alchemy/cloudflare";

const users = await KVNamespace("users", {
  title: "user-data"
});

With Initial Values and TTL ​

Create a KV namespace with initial values and expiration.

ts
import { KVNamespace } from "alchemy/cloudflare";

const sessions = await KVNamespace("sessions", {
  title: "user-sessions", 
  values: [{
    key: "session_123",
    value: { userId: "user_456", role: "admin" },
    expirationTtl: 3600 // Expires in 1 hour
  }]
});

With Metadata ​

Create a KV namespace with metadata for caching.

ts
import { KVNamespace } from "alchemy/cloudflare";

const assets = await KVNamespace("assets", {
  title: "static-assets",
  values: [{
    key: "main.js",
    value: "content...",
    metadata: {
      contentType: "application/javascript",
      etag: "abc123"
    }
  }]
});

Bind to a Worker ​

Bind a KV namespace to a Worker for data access.

ts
import { Worker, KVNamespace } from "alchemy/cloudflare";

const store = await KVNamespace("store", {
  title: "data-store"
});

await Worker("api", {
  name: "api-worker",
  script: "console.log('Hello, world!')",
  bindings: {
    STORE: store
  }
});