Deno · Schema

Deno KV Database

Represents a Deno KV database managed by Deno Deploy. Deno KV is a key-value database built into the Deno runtime and available as a globally distributed store on Deno Deploy. Locally it uses SQLite; on Deno Deploy data is replicated across regions. Databases are accessed from Deno code via Deno.openKv() using a KV Connect URL.

DeploymentEdgeJavaScriptRuntimeServerlessTypeScript

Properties

Name Type Description
databaseId string Unique identifier for the KV database, used in the KV Connect URL
description stringnull Optional human-readable description of the database's purpose or contents
kvConnect string KV Connect URL used to open this database from Deno code: https://api.deno.com/databases/{database-id}/connect
organizationId string UUID of the organization that owns this database
createdAt string ISO 8601 UTC timestamp when the database was created
updatedAt string ISO 8601 UTC timestamp when the database was last modified
View JSON Schema on GitHub

JSON Schema

deno-kv-database-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-evangelist/deno/schemas/deno/kv-database.json",
  "title": "Deno KV Database",
  "description": "Represents a Deno KV database managed by Deno Deploy. Deno KV is a key-value database built into the Deno runtime and available as a globally distributed store on Deno Deploy. Locally it uses SQLite; on Deno Deploy data is replicated across regions. Databases are accessed from Deno code via Deno.openKv() using a KV Connect URL.",
  "type": "object",
  "required": ["databaseId"],
  "properties": {
    "databaseId": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the KV database, used in the KV Connect URL"
    },
    "description": {
      "type": ["string", "null"],
      "description": "Optional human-readable description of the database's purpose or contents"
    },
    "kvConnect": {
      "type": "string",
      "format": "uri",
      "description": "KV Connect URL used to open this database from Deno code: https://api.deno.com/databases/{database-id}/connect",
      "pattern": "^https://api\\.deno\\.com/databases/[0-9a-f-]+/connect$"
    },
    "organizationId": {
      "type": "string",
      "format": "uuid",
      "description": "UUID of the organization that owns this database"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 UTC timestamp when the database was created"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 UTC timestamp when the database was last modified"
    }
  },
  "$defs": {
    "KvKey": {
      "type": "array",
      "description": "A Deno KV key, which is an ordered tuple of key parts. Parts can be strings, numbers, booleans, Uint8Arrays, or BigInts. Keys are lexicographically ordered, enabling hierarchical data modeling.",
      "items": {
        "description": "A single key part, which can be a string, number, boolean, or byte array",
        "oneOf": [
          {"type": "string"},
          {"type": "number"},
          {"type": "boolean"}
        ]
      },
      "minItems": 1
    },
    "KvEntry": {
      "type": "object",
      "description": "A key-value entry in a Deno KV database, consisting of a key tuple, a value, and a versionstamp for optimistic concurrency control",
      "required": ["key", "value", "versionstamp"],
      "properties": {
        "key": {
          "$ref": "#/$defs/KvKey"
        },
        "value": {
          "description": "The stored value, which can be any structured-serializable JavaScript value including objects, arrays, strings, numbers, booleans, Uint8Arrays, and Deno.KvU64"
        },
        "versionstamp": {
          "type": "string",
          "description": "A monotonically increasing hex string representing the version of this entry, used for optimistic concurrency control in atomic operations"
        }
      }
    },
    "KvListSelector": {
      "type": "object",
      "description": "A selector for listing entries from a Deno KV database, supporting prefix-based and range-based queries",
      "properties": {
        "prefix": {
          "$ref": "#/$defs/KvKey",
          "description": "List all entries whose key starts with this prefix"
        },
        "start": {
          "$ref": "#/$defs/KvKey",
          "description": "List entries with keys greater than or equal to this key"
        },
        "end": {
          "$ref": "#/$defs/KvKey",
          "description": "List entries with keys less than this key"
        }
      }
    },
    "KvAtomicOperation": {
      "type": "object",
      "description": "An atomic operation on a Deno KV database, consisting of optional checks and mutations that are applied atomically. The operation succeeds only if all checks pass.",
      "properties": {
        "checks": {
          "type": "array",
          "description": "Preconditions that must all be satisfied for the operation to succeed. Each check verifies that a key's versionstamp matches an expected value.",
          "items": {
            "$ref": "#/$defs/KvCheck"
          }
        },
        "mutations": {
          "type": "array",
          "description": "Mutations to apply if all checks pass",
          "items": {
            "$ref": "#/$defs/KvMutation"
          }
        }
      }
    },
    "KvCheck": {
      "type": "object",
      "description": "A precondition check for a Deno KV atomic operation, verifying that a key's current versionstamp matches an expected value",
      "required": ["key"],
      "properties": {
        "key": {
          "$ref": "#/$defs/KvKey"
        },
        "versionstamp": {
          "type": ["string", "null"],
          "description": "Expected versionstamp of the entry. Null means the entry must not exist."
        }
      }
    },
    "KvMutation": {
      "type": "object",
      "description": "A single mutation to apply within a Deno KV atomic operation",
      "required": ["type", "key"],
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of mutation to perform",
          "enum": ["set", "delete", "sum", "max", "min"]
        },
        "key": {
          "$ref": "#/$defs/KvKey"
        },
        "value": {
          "description": "The value to set (for set/sum/max/min mutations)"
        },
        "expireIn": {
          "type": "integer",
          "description": "Time-to-live in milliseconds for the entry (for set mutations)",
          "minimum": 1
        }
      }
    },
    "KvDatabaseBackup": {
      "type": "object",
      "description": "Configuration for automatic S3 backup of a Deno KV database",
      "required": ["id", "databaseId"],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Unique identifier for the backup configuration"
        },
        "databaseId": {
          "type": "string",
          "format": "uuid",
          "description": "UUID of the KV database being backed up"
        },
        "bucketName": {
          "type": "string",
          "description": "Name of the S3 bucket where backups are stored"
        },
        "bucketRegion": {
          "type": "string",
          "description": "AWS region of the S3 bucket (e.g., us-east-1)"
        },
        "status": {
          "type": "string",
          "description": "Current status of the backup job",
          "enum": ["pending", "active", "failed", "disabled"]
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "ISO 8601 timestamp when the backup was configured"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "ISO 8601 timestamp when the backup configuration was last modified"
        }
      }
    }
  }
}