# Harper Docs > Harper is a single in-process runtime that unifies your database, application logic, APIs, caching, real-time messaging, and agent loops, replicated across a multi-region data application fabric. This site is the official technical documentation: guides, API and configuration reference, and Fabric operations. ## search - [Search the documentation](/search.md) ## fabric - [Fabric Studio](/fabric.md): Fabric Studio is the web-based GUI for Harper. Studio enables you to administer, navigate, and monitor all of your Harper clusters in a simple, user-friendly interface without any knowledge of the underlying Harper API. It’s free to sign up, get started today! - [API Documentation](/fabric/api-documentation.md): Harper provides automatically generated API documentation page via Swagger UI integration. This page allows developers to explore and test the various API endpoints available in your Harper instance/cluster. - [Cluster Creation & Management](/fabric/cluster-creation-management.md): What is a Cluster? - [Create a Fabric Studio Account](/fabric/create-account.md): Start at the Harper Fabric Studio sign up page. - [Create an Organization](/fabric/create-organization.md): What is an organization? - [Custom Domains](/fabric/custom-domains.md): What are Custom Domains? - [Database Management](/fabric/database-management.md): Import CSV Data - [Setup Grafana Integration with Harper](/fabric/grafana-integration.md): Grafana is an observability platform for monitoring and visualizing metrics, logs, and traces. Harper provides a plugin to integrate with Grafana for enhanced analytics and visualization capabilities. - [Logging](/fabric/logging.md): Log Filtering - [Managing Applications](/fabric/managing-applications.md): After setting a username/password for cluster, you will automatically be directed to the applications page for the cluster. From here, users can either import or create an application to run on Harper. - [Organization Management](/fabric/organization-management.md): Organizations can be managed in a variety of ways, including: roles and user permissions, adding/removing users, creating new environments (clusters) and updating billing information. ## learn - [Welcome to Harper Learn](/learn.md): This documentation section contains thorough guides for learning how to develop and manage applications with Harper. The guides are present in a logical order to build up knowledge across Harper's vast feature set. The guides are example based and provide a hands-on approach to teaching and demonstrating key features. Guides can be referenced independently, but assume the reader is familiar with concepts presented in previous guides. - [Coming Soon](/learn/administration/coming-soon.md) - [Active Caching with Subscriptions](/learn/developers/active-caching-subscriptions.md): The passive caching pattern — fetching from the source on demand, expiring on a timer — works well for data that changes infrequently and where brief staleness is acceptable. But for data that changes often, a TTL is a blunt instrument: too short and you're making unnecessary upstream calls; too long and you're serving stale data. - [Caching AI Generations with Harper](/learn/developers/caching-ai-generations.md): AI API calls are expensive. Generating a product description, summarizing an article, or personalizing a recommendation with a large language model can cost fractions of a cent per call — but those fractions add up fast at scale. And in most applications, the same content gets generated over and over: the same product page viewed by thousands of users, the same document summarized dozens of times. - [Caching with Harper](/learn/developers/caching-with-harper.md): Every production application hits the same wall eventually: an external API you depend on is slow, rate-limited, or expensive to call. Harper's caching system lets you wrap any external data source — a REST API, a microservice, a database — and serve responses from a fast local cache while transparently fetching fresh data only when needed. - [Harper Applications in Depth](/learn/developers/harper-applications-in-depth.md): In the Getting Started guides you successfully installed Harper and created your first application. You experienced Harper's schema and database system, and the automatic REST API feature too. This guide dives deeper into Harper's component architecture differentiating applications from plugins, and introduces multiple new ways to interact with Harper. By the end of this guide you will be a confident Harper application developer capable of creating just about anything with Harper! - [Writing quality MCP and OpenAPI descriptions](/learn/developers/mcp-and-openapi-metadata.md): When an MCP client connects to Harper, the LLM on the other side sees your application as a list of tools. The text it reads to pick the right tool — the tool description, the per-attribute property descriptions, the output schema shape — is the dominant signal for tool selection. The same metadata also drives Harper's OpenAPI document, which any HTTP API consumer (Swagger UI, Redoc, generated SDKs, machine clients) reads. - [Semantic Caching with Vector Indexing](/learn/developers/semantic-caching-vector-indexing.md): Caching LLM responses by exact prompt text catches almost nothing useful. "What shoes are good for hiking?" and "Which shoes work best for hiking?" are semantically identical but would be cache misses for each other with a string key. The result is that you pay for every generation even when a good answer already exists in the cache. - [Write-Through Caching](/learn/developers/write-through-caching.md): Read-through caches — where Harper fetches from the source on cache misses — only cover half the story. When clients write data, those writes still go directly to the origin. The cache only learns about the change the next time the TTL expires or someone calls invalidate. - [Create Your First Application](/learn/getting-started/create-your-first-application.md): With Harper successfully installed and setup, let's dive into building your first Harper Application, a simple REST API. Harper lets you build powerful APIs with minimal effort. - [Install and Connect Harper](/learn/getting-started/install-and-connect-harper.md): One of Harper's primary goals since day one was to be easy to install and get started with. The core Harper application itself is just a Node.js application with some native module dependencies. The simplest and easiest way to get started using Harper is by installing it using npm (or any npm compatible Node.js package manager). In addition to installing Harper directly to your local development environment, the Harper team provides a Docker image (harperfast/harper), and most recently a platform service called Harper Fabric. - [Using AI Agents](/learn/getting-started/using-agents.md): AI-powered development tools can significantly accelerate your workflow when building Harper applications. Whether you want a dedicated assistant or prefer using your favorite LLM, Harper provides the tools and context needed to make AI an effective part of your development process. ## reference - [Harper v4 Reference](/reference/v4.md): Complete technical reference for Harper v4. Each section covers a core feature or subsystem — configuration options, APIs, and operational details. - [Analytics Operations](/reference/v4/analytics/operations.md): Operations for querying Harper analytics data. All operations require superuser permission. - [Analytics](/reference/v4/analytics/overview.md): (resource and storage analytics) - [CLI Authentication](/reference/v4/cli/authentication.md): The Harper CLI handles authentication differently for local and remote operations. - [CLI Commands](/reference/v4/cli/commands.md): This page documents the core Harper CLI commands for managing Harper instances. For Operations API commands available through the CLI, see Operations API Commands. - [Operations API Commands](/reference/v4/cli/operations-api-commands.md): The Harper CLI supports executing operations from the Operations API directly from the command line. This enables powerful automation and scripting capabilities. - [Harper CLI Overview](/reference/v4/cli/overview.md): The Harper command line interface (CLI) is used to administer self-installed Harper instances. - [Applications](/reference/v4/components/applications.md): The contents of this page primarily relate to application components. The term "components" in the Operations API and CLI generally refers to applications specifically. See the Components Overview for a full explanation of terminology. - [Extension API](/reference/v4/components/extension-api.md): As of Harper v4.6, a new iteration of the extension system called Plugins was released. Plugins simplify the API and are recommended for new extension development. See the Plugin API reference. Both extensions and plugins are supported; extensions are not yet deprecated. - [JavaScript Environment](/reference/v4/components/javascript-environment.md): Harper executes component JavaScript inside Node.js VM contexts — isolated module environments that share the same Node.js runtime but have their own global scope. This means each component runs in its own module context while still being able to access Harper's global APIs without any imports. - [Components](/reference/v4/components/overview.md): Components are the high-level concept for modules that extend the Harper core platform with additional functionality. Components encapsulate both applications and extensions. - [Plugin API](/reference/v4/components/plugin-api.md): (experimental) - [Configuration Operations](/reference/v4/configuration/operations.md): Operations API endpoints for reading and modifying Harper configuration. - [Configuration Options](/reference/v4/configuration/options.md): Quick reference for all harperdb-config.yaml top-level sections. - [Configuration](/reference/v4/configuration/overview.md): Harper is configured through a YAML file called harperdb-config.yaml located in the Harper root directory. By default the root directory is a folder named hdb in the home directory of the current user. - [API](/reference/v4/database/api.md): Harper exposes a set of global variables and functions that JavaScript code (in components, applications, and plugins) can use to interact with the database system. - [Compaction](/reference/v4/database/compaction.md): Database files grow over time as records are inserted, updated, and deleted. Deleted records and updated values leave behind free space (fragmentation) in the database file, which can increase file size and potentially affect performance. Compaction eliminates this free space, creating a smaller, contiguous database file. - [Data Loader](/reference/v4/database/data-loader.md): The Data Loader is a built-in component that loads data from JSON or YAML files into Harper tables as part of component deployment. It is designed for seeding tables with initial records — configuration data, reference data, default users, or other records that should exist when a component is first deployed or updated. - [Jobs](/reference/v4/database/jobs.md): Harper uses an asynchronous job system for long-running data operations. When a bulk operation is initiated — such as loading a large CSV file or exporting millions of records — Harper starts a background job and immediately returns a job ID. Use the job ID to check progress and status. - [Database](/reference/v4/database/overview.md): Harper's database system is the foundation of its data storage and retrieval capabilities. It is built on top of LMDB (Lightning Memory-Mapped Database) and is designed to provide high performance, ACID-compliant storage with automatic indexing and flexible schema support. - [Schema](/reference/v4/database/schema.md): Harper uses GraphQL Schema Definition Language (SDL) to declaratively define table structure. Schema definitions are loaded from .graphql files in a component directory and control table creation, attribute types, indexing, and relationships. - [Storage Algorithm](/reference/v4/database/storage-algorithm.md): Harper's storage algorithm is the foundation of all database functionality. It is built on top of LMDB (Lightning Memory-Mapped Database), a high-performance key-value store, and extends it with automatic indexing, query-language-agnostic data access, and ACID compliance. - [System Tables](/reference/v4/database/system-tables.md): Harper maintains a set of internal system tables in the system database. These tables store analytics, job tracking, replication configuration, and other internal state. Most are read-only from the application perspective; some can be queried for observability or management purposes. - [Transaction Logging](/reference/v4/database/transaction.md): Harper provides two complementary mechanisms for recording a history of data changes on a table: the audit log and the transaction log. Both are available at the table level and serve different use cases. - [Environment Variables](/reference/v4/environment-variables/overview.md): Harper supports loading environment variables in Harper applications process.env using the built-in loadEnv plugin. This is the standard way to supply secrets and configuration to your Harper components without hardcoding values. loadEnv does not need to be installed as it is built into Harper and only needs to be declared in your config.yaml. - [Define Fastify Routes](/reference/v4/fastify-routes/overview.md): Fastify routes are discouraged in favor of modern routing with Custom Resources, but remain a supported feature for backwards compatibility and specific use cases. - [GraphQL Querying](/reference/v4/graphql-querying/overview.md): (provisional) - [HTTP API](/reference/v4/http/api.md): The server global object is available in all Harper component code. It provides access to the HTTP server middleware chain, WebSocket server, authentication, resource registry, and cluster information. - [HTTP Configuration](/reference/v4/http/configuration.md): The http section in harperdb-config.yaml controls the built-in HTTP server that serves REST, WebSocket, component, and Operations API traffic. - [HTTP Server](/reference/v4/http/overview.md): Harper includes a built-in HTTP server that serves as the primary interface for REST, WebSocket, MQTT-over-WebSocket, and component-defined endpoints. The same server handles all application traffic on a configurable port (default 9926). - [TLS Configuration](/reference/v4/http/tls.md): Harper uses a top-level tls section in harperdb-config.yaml to configure Transport Layer Security. This configuration is shared by the HTTP server (HTTPS), the MQTT broker (secure MQTT), and any TLS socket servers created via the HTTP API. - [Harper Cloud](/reference/v4/legacy/cloud.md): Harper Cloud (also sometimes referred to as Harper Studio) was Harper's original PaaS offering. - [Custom Functions](/reference/v4/legacy/custom-functions.md): Custom Functions were Harper's original mechanism for adding custom API endpoints and application logic to a Harper instance. They allowed developers to define Fastify-based HTTP routes that ran inside Harper with direct access to the database, and could be deployed across instances via Studio. - [Logging API](/reference/v4/logging/api.md): logger - [Logging Configuration](/reference/v4/logging/configuration.md): The logging section in harperdb-config.yaml controls standard log output. Many logging settings are applied dynamically without a restart (added in v4.6.0). - [Logging Operations](/reference/v4/logging/operations.md): Operations for reading the standard Harper log (hdb.log). All operations are restricted to super_user roles only. - [Logging](/reference/v4/logging/overview.md): Harper's core logging system is used for diagnostics, monitoring, and observability. It has an extensive configuration system, and even supports feature-specific (per-component) configurations in latest versions. Furthermore, the logger global API is available for creating custom logs from any JavaScript application or plugin code. - [MQTT Configuration](/reference/v4/mqtt/configuration.md): The mqtt section in harperdb-config.yaml controls Harper's built-in MQTT broker. MQTT is enabled by default. - [MQTT](/reference/v4/mqtt/overview.md): Harper includes a built-in MQTT broker that provides real-time pub/sub messaging deeply integrated with the database. Unlike a generic MQTT broker, Harper's MQTT implementation connects topics directly to database records — publishing to a topic writes to the database, and subscribing to a topic delivers live updates for the corresponding record. - [Operations Reference](/reference/v4/operations-api/operations.md): This page lists all available Operations API operations, grouped by category. Each entry links to the feature section where the full documentation lives. - [Operations API](/reference/v4/operations-api/overview.md): The Operations API provides a comprehensive set of capabilities for configuring, deploying, administering, and controlling Harper. It is the primary programmatic interface for all administrative and operational tasks that are not handled through the REST interface. - [SQL](/reference/v4/operations-api/sql.md): SQL querying is not recommended for production use or on large tables. SQL queries often do not utilize indexes and are not optimized for performance. Use the REST interface for production data access — it provides a more stable, secure, and performant interface. SQL is intended for ad-hoc data investigation and administrative queries. - [Clustering](/reference/v4/replication/clustering.md): Operations API for managing Harper's replication system. For an overview of how replication works, see Replication Overview. For sharding configuration, see Sharding. - [Replication Overview](/reference/v4/replication/overview.md): Harper's replication system is designed to make distributed data replication fast and reliable across multiple nodes. You can build a distributed database that ensures high availability, disaster recovery, and data localization — all without complex setup. Nodes can be added or removed dynamically, you can choose which data to replicate, and you can monitor cluster health without jumping through hoops. - [Sharding](/reference/v4/replication/sharding.md): (provisional) - [Resources](/reference/v4/resources/overview.md): Harper's Resource API is the foundation for building custom data access logic and connecting data sources. Resources are JavaScript classes that define how data is accessed, modified, subscribed to, and served over HTTP, MQTT, and WebSocket protocols. - [Query Optimization](/reference/v4/resources/query-optimization.md): (query planning and execution improvements) - [Resource API](/reference/v4/resources/resource-api.md): The Resource API provides a unified JavaScript interface for accessing, querying, modifying, and subscribing to data resources in Harper. Tables extend the base Resource class, and all resource interactions — whether from HTTP requests, MQTT messages, or application code — flow through this interface. - [Content Types](/reference/v4/rest/content-types.md): Harper supports multiple content types (MIME types) for both HTTP request bodies and response bodies. Harper follows HTTP standards: use the Content-Type request header to specify the encoding of the request body, and use the Accept header to request a specific response format. - [REST Headers](/reference/v4/rest/headers.md): Harper's REST interface uses standard HTTP headers for content negotiation, caching, and performance instrumentation. - [REST Overview](/reference/v4/rest/overview.md): Harper provides a powerful, efficient, and standard-compliant HTTP REST interface for interacting with tables and other resources. The REST interface is the recommended interface for data access, querying, and manipulation over HTTP, providing the best performance and HTTP interoperability with different clients. - [REST Querying](/reference/v4/rest/querying.md): Harper's REST interface supports a rich URL-based query language for filtering, sorting, selecting, and limiting records. Queries are expressed as URL query parameters on collection paths. - [Server-Sent Events](/reference/v4/rest/server-sent-events.md): Harper supports Server-Sent Events (SSE), a simple and efficient mechanism for browser-based applications to receive real-time updates from the server over a standard HTTP connection. SSE is a one-directional transport — the server pushes events to the client, and the client has no way to send messages back on the same connection. - [WebSockets](/reference/v4/rest/websockets.md): Harper supports WebSocket connections through the REST interface, enabling real-time bidirectional communication with resources. WebSocket connections target a resource URL path — by default, connecting to a resource subscribes to changes for that resource. - [Security API](/reference/v4/security/api.md): Harper exposes security-related globals accessible in all component JavaScript modules without needing to import them. - [Basic Authentication](/reference/v4/security/basic-authentication.md): Available since: v4.1.0 - [Certificate Management](/reference/v4/security/certificate-management.md): This page covers certificate management for Harper's external-facing HTTP and Operations APIs. For replication certificate management, see Replication Certificate Management. - [Certificate Verification](/reference/v4/security/certificate-verification.md): (OCSP support added) - [Authentication Configuration](/reference/v4/security/configuration.md): Harper's authentication system is configured via the top-level authentication section of harperdb-config.yaml. - [JWT Authentication](/reference/v4/security/jwt-authentication.md): s - [mTLS Authentication](/reference/v4/security/mtls-authentication.md): Harper supports Mutual TLS (mTLS) authentication for incoming HTTP connections. When enabled, the client must present a certificate signed by a trusted Certificate Authority (CA). If the certificate is valid and trusted, the connection is authenticated using the user whose username matches the CN (Common Name) from the client certificate's subject. - [Security](/reference/v4/security/overview.md): Harper uses role-based, attribute-level security to ensure that users can only gain access to the data they are supposed to be able to access. Granular permissions allow for unparalleled flexibility and control, and can lower the total cost of ownership compared to other database solutions, since you no longer need to replicate subsets of data to isolate use cases. - [Static Files](/reference/v4/static-files/overview.md): - Added in: v4.5.0 - [Local Studio](/reference/v4/studio/overview.md): - Added in: v4.1.0 - [Configuration](/reference/v4/users-and-roles/configuration.md): Managing Roles with Config Files - [Operations](/reference/v4/users-and-roles/operations.md): Roles - [Users & Roles](/reference/v4/users-and-roles/overview.md): Harper uses a Role-Based Access Control (RBAC) framework to manage access to Harper instances. Each user is assigned a role that determines their permissions to access database resources and run operations. - [Harper v5 Reference](/reference/v5.md): Complete technical reference for Harper v5. Each section covers a core feature or subsystem — configuration options, APIs, and operational details. - [Analytics Operations](/reference/v5/analytics/operations.md): Operations for querying Harper analytics data. All operations require superuser permission. - [Analytics](/reference/v5/analytics/overview.md): (resource and storage analytics) - [CLI Authentication](/reference/v5/cli/authentication.md): The Harper CLI handles authentication differently for local and remote operations. - [CLI Commands](/reference/v5/cli/commands.md): This page documents the core Harper CLI commands for managing Harper instances. For Operations API commands available through the CLI, see Operations API Commands. - [Operations API Commands](/reference/v5/cli/operations-api-commands.md): The Harper CLI supports executing operations from the Operations API directly from the command line. This enables powerful automation and scripting capabilities. - [Harper CLI Overview](/reference/v5/cli/overview.md): The Harper command line interface (CLI) is used to administer self-installed Harper instances. - [Applications](/reference/v5/components/applications.md): The contents of this page primarily relate to application components. The term "components" in the Operations API and CLI generally refers to applications specifically. See the Components Overview for a full explanation of terminology. - [Extension API](/reference/v5/components/extension-api.md): As of Harper v4.6 and now stable in v5.0, a new iteration of the extension system called plugins was released. Plugins simplify the API and are recommended for new extension development. See the Plugin API reference. Extensions are still supported as of v5.0 but are considered deprecated in favor of plugins. - [JavaScript Environment](/reference/v5/components/javascript-environment.md): Harper executes component JavaScript in distinct module caches, using Node.js's VM module loader. This provides contextualized module environments that share the same Node.js runtime but have their own set of modules isolated from other applications. This means each application runs in its own module context while still being able to access Harper's full set of APIs. - [Next.js Plugin (@harperfast/nextjs)](/reference/v5/components/nextjs.md): @harperfast/nextjs is a Harper Plugin for running Next.js applications directly on Harper. It supports Next.js v14, v15, and v16. - [Components](/reference/v5/components/overview.md): Components are the high-level concept for modules that extend the Harper core platform with additional functionality. Components encapsulate both applications and extensions. - [Plugin API](/reference/v5/components/plugin-api.md): Plugins are the building blocks of the Harper component system. Applications depend on plugins to provide the functionality they implement. For example, the built-in graphqlSchema plugin enables applications to define databases and tables using GraphQL schemas. The @harperfast/nextjs plugin provides the functionality to build a Next.js application on Harper. Plugins export a single handleApplication method and are always executed on worker threads. - [Worker Thread Debugging](/reference/v5/configuration/debugging.md): Harper runs as a main thread plus a pool of worker threads (configurable via threads.count). The threads.debug option exposes the Node.js inspector on each thread so you can attach Chrome DevTools, VS Code, or any Chrome DevTools Protocol (CDP) client to step through component code, inspect heap state, or capture CPU profiles. - [Configuration Operations](/reference/v5/configuration/operations.md): Operations API endpoints for reading and modifying Harper configuration. - [Configuration Options](/reference/v5/configuration/options.md): Quick reference for all harper-config.yaml top-level sections. - [Configuration](/reference/v5/configuration/overview.md): Harper is configured through a YAML file called harper-config.yaml located in the Harper root directory. By default the root directory is a folder named hdb in the home directory of the current user. - [API](/reference/v5/database/api.md): Harper exposes a set of global variables and functions that JavaScript code (in components, applications, and plugins) can use to interact with the database system. - [Compaction](/reference/v5/database/compaction.md): Database files grow over time as records are inserted, updated, and deleted. Deleted records and updated values leave behind free space (fragmentation) in the database file, which can increase file size and potentially affect performance. Compaction eliminates this free space, creating a smaller, contiguous database file. - [Data Loader](/reference/v5/database/data-loader.md): The Data Loader is a built-in component that loads data from JSON or YAML files into Harper tables as part of component deployment. It is designed for seeding tables with initial records — configuration data, reference data, default users, or other records that should exist when a component is first deployed or updated. - [Jobs](/reference/v5/database/jobs.md): Harper uses an asynchronous job system for long-running data operations. When a bulk operation is initiated — such as loading a large CSV file or exporting millions of records — Harper starts a background job and immediately returns a job ID. Use the job ID to check progress and status. - [Database](/reference/v5/database/overview.md): Harper's database system is the foundation of its data storage and retrieval capabilities. Harper supports two storage enginers, RocksDB and LMDB (Lightning Memory-Mapped Database) and is designed to provide high performance, ACID-compliant storage with indexing and flexible schema support. - [Schema](/reference/v5/database/schema.md): Harper uses GraphQL Schema Definition Language (SDL) to declaratively define table structure. Schema definitions are loaded from .graphql files in a component directory and control table creation, attribute types, indexing, and relationships. - [Storage Algorithm](/reference/v5/database/storage-algorithm.md): Harper's storage algorithm is the foundation of all database functionality. It is built on top of RocksDB (the default) or LMDB (legacy), both high-performance key-value stores, and extends them with automatic indexing, query-language-agnostic data access, and ACID compliance. - [Storage Tuning](/reference/v5/database/storage-tuning.md): Harper's storage configuration section controls how database files are written, cached, and reclaimed on disk. Defaults are tuned for safety and balanced throughput; this page covers the knobs that matter for production deployments with specific workload profiles. - [System Tables](/reference/v5/database/system-tables.md): Harper maintains a set of internal system tables in the system database. These tables store analytics, job tracking, replication configuration, and other internal state. Most are read-only from the application perspective; some can be queried for observability or management purposes. - [Transaction Logging](/reference/v5/database/transaction.md): Harper provides two complementary mechanisms for recording a history of data changes on a table: the audit log and the transaction log. Both are available at the table level and serve different use cases. - [Environment Variables](/reference/v5/environment-variables/overview.md): Harper supports loading environment variables in Harper applications process.env using the built-in loadEnv plugin. This is the standard way to supply secrets and configuration to your Harper components without hardcoding values. loadEnv does not need to be installed as it is built into Harper and only needs to be declared in your config.yaml. - [Define Fastify Routes](/reference/v5/fastify-routes/overview.md): Fastify routes are discouraged in favor of modern routing with Custom Resources, but remain a supported feature for backwards compatibility and specific use cases. - [GraphQL Querying](/reference/v5/graphql-querying/overview.md): (provisional) - [HTTP API](/reference/v5/http/api.md): The server global object is available in all Harper component code. It provides access to the HTTP server middleware chain, WebSocket server, authentication, resource registry, and cluster information. - [HTTP Configuration](/reference/v5/http/configuration.md): The http section in harper-config.yaml controls the built-in HTTP server that serves REST, WebSocket, component, and Operations API traffic. - [HTTP Server](/reference/v5/http/overview.md): Harper includes a built-in HTTP server that serves as the primary interface for REST, WebSocket, MQTT-over-WebSocket, and component-defined endpoints. The same server handles all application traffic on a configurable port (default 9926). - [TLS Configuration](/reference/v5/http/tls.md): Harper uses a top-level tls section in harper-config.yaml to configure Transport Layer Security. This configuration is shared by the HTTP server (HTTPS), the MQTT broker (secure MQTT), and any TLS socket servers created via the HTTP API. - [Harper Cloud](/reference/v5/legacy/cloud.md): Harper Cloud (also sometimes referred to as Harper Studio) was Harper's original PaaS offering. - [Custom Functions](/reference/v5/legacy/custom-functions.md): Custom Functions were Harper's original mechanism for adding custom API endpoints and application logic to a Harper instance. They allowed developers to define Fastify-based HTTP routes that ran inside Harper with direct access to the database, and could be deployed across instances via Studio. - [Logging API](/reference/v5/logging/api.md): logger - [Logging Configuration](/reference/v5/logging/configuration.md): The logging section in harper-config.yaml controls standard log output. Many logging settings are applied dynamically without a restart (added in v4.6.0). - [Logging Operations](/reference/v5/logging/operations.md): Operations for reading the standard Harper log (hdb.log). All operations are restricted to super_user roles only. - [Logging](/reference/v5/logging/overview.md): Harper's core logging system is used for diagnostics, monitoring, and observability. It has an extensive configuration system, and even supports feature-specific (per-component) configurations in latest versions. Furthermore, the logger global API is available for creating custom logs from any JavaScript application or plugin code. - [Harper MCP CLI](/reference/v5/mcp/cli.md): harper mcp is a stdio bridge that lets MCP hosts (Claude Desktop, Cursor, Zed, or any client that speaks the stdio MCP transport) talk to a running Harper instance over Harper's Streamable HTTP MCP endpoint. - [MCP Configuration](/reference/v5/mcp/configuration.md): All MCP configuration lives under the top-level mcp - [Migrating from the External MCP Server](/reference/v5/mcp/migration.md): Earlier deployments of Harper used the standalone HarperFast/mcp-server addon — a separate Node.js process that wrapped Harper's Operations API and exposed MCP over stdio. With v5.1, MCP is now a first-class built-in server-side surface; the external addon is deprecated and will be archived alongside this release. - [MCP Overview](/reference/v5/mcp/overview.md): Harper implements the Model Context Protocol (MCP) as a first-class server-side surface, letting large-language-model hosts (Claude Desktop, Cursor, Zed, custom agents) discover and invoke Harper operations, resources, and tables through a standard wire protocol. The MCP server runs in-process inside Harper — there is no separate addon, no sidecar, and no out-of-process broker. - [MCP Resource Subscriptions](/reference/v5/mcp/subscriptions.md): Beyond the notifications/*/listchanged events that tell a client what tools and resources exist, Harper can push a notification whenever the contents_ of a specific application resource change. A client subscribes to a resource URI with resources/subscribe; Harper watches that record (or table) through its audit-log change feed and emits notifications/resources/updated on every commit. - [MCP tool payload sourcing](/reference/v5/mcp/tool-metadata.md): Harper's MCP server publishes tools via the Model Context Protocol (rev 2025-06-18, Streamable HTTP transport). This page is a reference for what fields appear on each generated tool descriptor and where the data comes from. For authoring guidance, see the Writing quality MCP and OpenAPI descriptions how-to. - [MCP Tools and Resources](/reference/v5/mcp/tools-and-resources.md): This page documents what the MCP server actually exposes — which tools land on tools/list for which user, how their input schemas are built, and what shows up in resources/list for each profile. Configuration knobs that gate this surface are documented in MCP Configuration. - [Analytics](/reference/v5/models/analytics.md): Every model call is recorded for observability and usage accounting, at two levels of granularity: a per-call log table for forensics, and aggregate counters in Harper's general analytics for dashboards and trends. - [API](/reference/v5/models/api.md): The models object exposes three methods. All of them accept an optional model option naming the configured logical model to use; when omitted, the logical name default is used. Calling a logical name with no configured backend, or asking a backend for a capability it does not support (for example, embeddings from a generation-only backend), throws an error — capability checks run up front, before any request is made. - [Backends](/reference/v5/models/backends.md): Four model backends ship with Harper. Each model entry in the models configuration selects one with its backend field. - [Models](/reference/v5/models/overview.md): Harper provides a unified API for calling AI models — text embeddings and text generation — from application code. Models are configured by an operator under logical names; application code requests a model by its logical name and Harper routes the call to the configured backend (Ollama, OpenAI, Anthropic, or Amazon Bedrock) — or to a custom backend a component registers. Swapping providers is a configuration change, not a code change. A logical name can also name an ordered group of backends to try, and calls can require specific capabilities — see Routing & Fallback. - [Routing & Fallback](/reference/v5/models/routing.md): Every models call resolves through a router that returns an ordered list of candidate backends for the requested logical name. The facade uses the first candidate whose capabilities satisfy the call and falls through to the next on failure — capability-aware selection and fallback are the same mechanism. - [Tool Calling](/reference/v5/models/tool-calling.md): Generative models can be given tools — functions the model may request calls to while producing a response. Tools are declared on the input object (they are model-facing content, like messages), and the toolMode option selects who resolves them: - [MQTT Configuration](/reference/v5/mqtt/configuration.md): The mqtt section in harper-config.yaml controls Harper's built-in MQTT broker. MQTT is enabled by default. - [MQTT](/reference/v5/mqtt/overview.md): Harper includes a built-in MQTT broker that provides real-time pub/sub messaging deeply integrated with the database. Unlike a generic MQTT broker, Harper's MQTT implementation connects topics directly to database records — publishing to a topic writes to the database, and subscribing to a topic delivers live updates for the corresponding record. - [Operations Reference](/reference/v5/operations-api/operations.md): This page lists all available Operations API operations, grouped by category. Each entry links to the feature section where the full documentation lives. - [Operations API](/reference/v5/operations-api/overview.md): The Operations API provides a comprehensive set of capabilities for configuring, deploying, administering, and controlling Harper. It is the primary programmatic interface for all administrative and operational tasks that are not handled through the REST interface. - [SQL](/reference/v5/operations-api/sql.md): SQL querying is not recommended for production use or on large tables. SQL queries often do not utilize indexes and are not optimized for performance. Use the REST interface for production data access — it provides a more stable, secure, and performant interface. SQL is intended for ad-hoc data investigation and administrative queries. - [Clustering](/reference/v5/replication/clustering.md): Operations API for managing Harper's replication system. For an overview of how replication works, see Replication Overview. For sharding configuration, see Sharding. - [Replication Overview](/reference/v5/replication/overview.md): Harper's replication system is designed to make distributed data replication fast and reliable across multiple nodes. You can build a distributed database that ensures high availability, disaster recovery, and data localization — all without complex setup. Nodes can be added or removed dynamically, you can choose which data to replicate, and you can monitor cluster health without jumping through hoops. - [Sharding](/reference/v5/replication/sharding.md): (provisional) - [Resources](/reference/v5/resources/overview.md): Harper's Resource API is the foundation for building custom data access logic and connecting data sources. Resources are JavaScript classes that define how data is accessed, modified, subscribed to, and served over HTTP, MQTT, and WebSocket protocols. - [Query Optimization](/reference/v5/resources/query-optimization.md): (query planning and execution improvements) - [Resource API](/reference/v5/resources/resource-api.md): The Resource API provides a unified JavaScript interface for accessing, querying, modifying, and subscribing to data resources in Harper. Tables extend the base Resource class, and all resource interactions — whether from HTTP requests, MQTT messages, or application code — flow through this interface. - [Content Types](/reference/v5/rest/content-types.md): Harper supports multiple content types (MIME types) for both HTTP request bodies and response bodies. Harper follows HTTP standards: use the Content-Type request header to specify the encoding of the request body, and use the Accept header to request a specific response format. - [REST Headers](/reference/v5/rest/headers.md): Harper's REST interface uses standard HTTP headers for content negotiation, caching, and performance instrumentation. - [REST Overview](/reference/v5/rest/overview.md): Harper provides a powerful, efficient, and standard-compliant HTTP REST interface for interacting with tables and other resources. The REST interface is the recommended interface for data access, querying, and manipulation over HTTP, providing the best performance and HTTP interoperability with different clients. - [REST Querying](/reference/v5/rest/querying.md): Harper's REST interface supports a rich URL-based query language for filtering, sorting, selecting, and limiting records. Queries are expressed as URL query parameters on collection paths. - [Server-Sent Events](/reference/v5/rest/server-sent-events.md): Harper supports Server-Sent Events (SSE), a simple and efficient mechanism for browser-based applications to receive real-time updates from the server over a standard HTTP connection. SSE is a one-directional transport — the server pushes events to the client, and the client has no way to send messages back on the same connection. - [WebSockets](/reference/v5/rest/websockets.md): Harper supports WebSocket connections through the REST interface, enabling real-time bidirectional communication with resources. WebSocket connections target a resource URL path — by default, connecting to a resource subscribes to changes for that resource. - [Security API](/reference/v5/security/api.md): Harper exposes security-related globals accessible in all component JavaScript modules without needing to import them. - [Basic Authentication](/reference/v5/security/basic-authentication.md): Available since: v4.1.0 - [Certificate Management](/reference/v5/security/certificate-management.md): This page covers certificate management for Harper's external-facing HTTP and Operations APIs. For replication certificate management, see Replication Certificate Management. - [Certificate Verification](/reference/v5/security/certificate-verification.md): (OCSP support added) - [Authentication Configuration](/reference/v5/security/configuration.md): Harper's authentication system is configured via the top-level authentication section of harper-config.yaml. - [Impersonation](/reference/v5/security/impersonation.md): Impersonation allows a super_user to execute operations API requests as if they were a different, less-privileged user. This is useful for testing permissions, debugging access issues, and building admin tools that preview what a given user or role can see and do — all without needing that user's credentials. - [JWT Authentication](/reference/v5/security/jwt-authentication.md): s - [mTLS Authentication](/reference/v5/security/mtls-authentication.md): Harper supports Mutual TLS (mTLS) authentication for incoming HTTP connections. When enabled, the client must present a certificate signed by a trusted Certificate Authority (CA). If the certificate is valid and trusted, the connection is authenticated using the user whose username matches the CN (Common Name) from the client certificate's subject. - [Security](/reference/v5/security/overview.md): Harper uses role-based, attribute-level security to ensure that users can only gain access to the data they are supposed to be able to access. Granular permissions allow for unparalleled flexibility and control, and can lower the total cost of ownership compared to other database solutions, since you no longer need to replicate subsets of data to isolate use cases. - [Static Files](/reference/v5/static-files/overview.md): - Added in: v4.5.0 - [Local Studio](/reference/v5/studio/overview.md): - Added in: v4.1.0 - [Configuration](/reference/v5/users-and-roles/configuration.md): Managing Roles with Config Files - [Operations](/reference/v5/users-and-roles/operations.md): Roles - [Users & Roles](/reference/v5/users-and-roles/overview.md): Harper uses a Role-Based Access Control (RBAC) framework to manage access to Harper instances. Each user is assigned a role that determines their permissions to access database resources and run operations. ## release-notes - [Release Notes](/release-notes.md): Complete version history and changelog for Harper - [HarperDB Alby (Version 1)](/release-notes/v1-alby.md): Did you know our release names are dedicated to employee pups? For our first release, Alby was our pup. - [1.1.0](/release-notes/v1-alby/1.1.0.md): HarperDB 1.1.0, Alby Release - [1.2.0](/release-notes/v1-alby/1.2.0.md): HarperDB 1.2.0, Alby Release - [1.3.0](/release-notes/v1-alby/1.3.0.md): HarperDB 1.3.0, Alby Release - [1.3.1](/release-notes/v1-alby/1.3.1.md): HarperDB 1.3.1, Alby Release - [HarperDB Penny (Version 2)](/release-notes/v2-penny.md): Did you know our release names are dedicated to employee pups? For our second release, Penny was the star. - [2.1.1](/release-notes/v2-penny/2.1.1.md): HarperDB 2.1.1, Penny Release - [2.2.0](/release-notes/v2-penny/2.2.0.md): HarperDB 2.2.0, Penny Release - [2.2.2](/release-notes/v2-penny/2.2.2.md): HarperDB 2.2.2, Penny Release - [2.2.3](/release-notes/v2-penny/2.2.3.md): HarperDB 2.2.3, Penny Release - [2.3.0](/release-notes/v2-penny/2.3.0.md): HarperDB 2.3.0, Penny Release - [2.3.1](/release-notes/v2-penny/2.3.1.md): HarperDB 2.3.1, Penny Release - [HarperDB Monkey (Version 3)](/release-notes/v3-monkey.md): Did you know our release names are dedicated to employee pups? For our third release, we have Monkey. - [3.0.0](/release-notes/v3-monkey/3.0.0.md): HarperDB 3.0, Monkey Release - [3.1.0](/release-notes/v3-monkey/3.1.0.md): HarperDB 3.1.0, Monkey Release - [3.1.1](/release-notes/v3-monkey/3.1.1.md): HarperDB 3.1.1, Monkey Release - [3.1.2](/release-notes/v3-monkey/3.1.2.md): HarperDB 3.1.2, Monkey Release - [3.1.3](/release-notes/v3-monkey/3.1.3.md): HarperDB 3.1.3, Monkey Release - [3.1.4](/release-notes/v3-monkey/3.1.4.md): HarperDB 3.1.4, Monkey Release - [3.1.5](/release-notes/v3-monkey/3.1.5.md): HarperDB 3.1.5, Monkey Release - [3.2.0](/release-notes/v3-monkey/3.2.0.md): HarperDB 3.2.0, Monkey Release - [3.2.1](/release-notes/v3-monkey/3.2.1.md): HarperDB 3.2.1, Monkey Release - [3.3.0](/release-notes/v3-monkey/3.3.0.md): HarperDB 3.3.0 - Monkey - [Harper Tucker (Version 4)](/release-notes/v4-tucker.md): HarperDB version 4 (Tucker release) represents major step forward in database technology. This release line has ground-breaking architectural advancements including: - [4.0.0](/release-notes/v4-tucker/4.0.0.md): HarperDB 4.0.0, Tucker Release - [4.0.1](/release-notes/v4-tucker/4.0.1.md): HarperDB 4.0.1, Tucker Release - [4.0.2](/release-notes/v4-tucker/4.0.2.md): HarperDB 4.0.2, Tucker Release - [4.0.3](/release-notes/v4-tucker/4.0.3.md): HarperDB 4.0.3, Tucker Release - [4.0.4](/release-notes/v4-tucker/4.0.4.md): HarperDB 4.0.4, Tucker Release - [4.0.5](/release-notes/v4-tucker/4.0.5.md): HarperDB 4.0.5, Tucker Release - [4.0.6](/release-notes/v4-tucker/4.0.6.md): HarperDB 4.0.6, Tucker Release - [4.0.7](/release-notes/v4-tucker/4.0.7.md): HarperDB 4.0.7, Tucker Release - [4.1.0](/release-notes/v4-tucker/4.1.0.md): HarperDB 4.1 introduces the ability to use worker threads for concurrently handling HTTP requests. Previously this was handled by processes. This shift provides important benefits in terms of better control of traffic delegation with support for optimized load tracking and session affinity, better debuggability, and reduced memory footprint. - [4.1.1](/release-notes/v4-tucker/4.1.1.md): 06/16/2023 - [4.1.2](/release-notes/v4-tucker/4.1.2.md): HarperDB 4.1.2, Tucker Release - [4.2.0](/release-notes/v4-tucker/4.2.0.md): HarperDB 4.2.0 - [4.2.1](/release-notes/v4-tucker/4.2.1.md): HarperDB 4.2.1, Tucker Release - [4.2.2](/release-notes/v4-tucker/4.2.2.md): HarperDB 4.2.2, Tucker Release - [4.2.3](/release-notes/v4-tucker/4.2.3.md): HarperDB 4.2.3, Tucker Release - [4.2.4](/release-notes/v4-tucker/4.2.4.md): HarperDB 4.2.4, Tucker Release - [4.2.5](/release-notes/v4-tucker/4.2.5.md): HarperDB 4.2.5, Tucker Release - [4.2.6](/release-notes/v4-tucker/4.2.6.md): HarperDB 4.2.6, Tucker Release - [4.2.7](/release-notes/v4-tucker/4.2.7.md): HarperDB 4.2.7 - [4.2.8](/release-notes/v4-tucker/4.2.8.md): HarperDB 4.2.8 - [4.3.0](/release-notes/v4-tucker/4.3.0.md): HarperDB 4.3.0, Tucker Release - [4.3.1](/release-notes/v4-tucker/4.3.1.md): HarperDB 4.3.1 - [4.3.10](/release-notes/v4-tucker/4.3.10.md): HarperDB 4.3.10 - [4.3.11](/release-notes/v4-tucker/4.3.11.md): HarperDB 4.3.11 - [4.3.12](/release-notes/v4-tucker/4.3.12.md): HarperDB 4.3.12 - [4.3.13](/release-notes/v4-tucker/4.3.13.md): HarperDB 4.3.13 - [4.3.14](/release-notes/v4-tucker/4.3.14.md): HarperDB 4.3.14 - [4.3.15](/release-notes/v4-tucker/4.3.15.md): HarperDB 4.3.15 - [4.3.16](/release-notes/v4-tucker/4.3.16.md): HarperDB 4.3.16 - [4.3.17](/release-notes/v4-tucker/4.3.17.md): HarperDB 4.3.17 - [4.3.18](/release-notes/v4-tucker/4.3.18.md): HarperDB 4.3.18 - [4.3.19](/release-notes/v4-tucker/4.3.19.md): HarperDB 4.3.19 - [4.3.2](/release-notes/v4-tucker/4.3.2.md): HarperDB 4.3.2 - [4.3.20](/release-notes/v4-tucker/4.3.20.md): HarperDB 4.3.20 - [4.3.21](/release-notes/v4-tucker/4.3.21.md): HarperDB 4.3.21 - [4.3.22](/release-notes/v4-tucker/4.3.22.md): HarperDB 4.3.22 - [4.3.23](/release-notes/v4-tucker/4.3.23.md): HarperDB 4.3.23 - [4.3.24](/release-notes/v4-tucker/4.3.24.md): HarperDB 4.3.24 - [4.3.25](/release-notes/v4-tucker/4.3.25.md): HarperDB 4.3.25 - [4.3.26](/release-notes/v4-tucker/4.3.26.md): HarperDB 4.3.26 - [4.3.27](/release-notes/v4-tucker/4.3.27.md): HarperDB 4.3.27 - [4.3.28](/release-notes/v4-tucker/4.3.28.md): HarperDB 4.3.28 - [4.3.29](/release-notes/v4-tucker/4.3.29.md): HarperDB 4.3.29 - [4.3.3](/release-notes/v4-tucker/4.3.3.md): HarperDB 4.3.3 - [4.3.30](/release-notes/v4-tucker/4.3.30.md): HarperDB 4.3.30 - [4.3.31](/release-notes/v4-tucker/4.3.31.md): HarperDB 4.3.31 - [4.3.32](/release-notes/v4-tucker/4.3.32.md): HarperDB 4.3.32 - [4.3.33](/release-notes/v4-tucker/4.3.33.md): HarperDB 4.3.33 - [4.3.34](/release-notes/v4-tucker/4.3.34.md): HarperDB 4.3.34 - [4.3.35](/release-notes/v4-tucker/4.3.35.md): HarperDB 4.3.35 - [4.3.36](/release-notes/v4-tucker/4.3.36.md): HarperDB 4.3.36 - [4.3.37](/release-notes/v4-tucker/4.3.37.md): HarperDB 4.3.37 - [4.3.38](/release-notes/v4-tucker/4.3.38.md): HarperDB 4.3.38 - [4.3.4](/release-notes/v4-tucker/4.3.4.md): HarperDB 4.3.4 - [4.3.5](/release-notes/v4-tucker/4.3.5.md): HarperDB 4.3.5 - [4.3.6](/release-notes/v4-tucker/4.3.6.md): HarperDB 4.3.6 - [4.3.7](/release-notes/v4-tucker/4.3.7.md): HarperDB 4.3.7 - [4.3.8](/release-notes/v4-tucker/4.3.8.md): HarperDB 4.3.8 - [4.3.9](/release-notes/v4-tucker/4.3.9.md): HarperDB 4.3.9 - [4.4.0](/release-notes/v4-tucker/4.4.0.md): HarperDB 4.4.0 - [4.4.1](/release-notes/v4-tucker/4.4.1.md): HarperDB 4.4.1 - [4.4.10](/release-notes/v4-tucker/4.4.10.md): HarperDB 4.4.10 - [4.4.11](/release-notes/v4-tucker/4.4.11.md): HarperDB 4.4.11 - [4.4.12](/release-notes/v4-tucker/4.4.12.md): HarperDB 4.4.12 - [4.4.13](/release-notes/v4-tucker/4.4.13.md): HarperDB 4.4.13 - [4.4.14](/release-notes/v4-tucker/4.4.14.md): HarperDB 4.4.14 - [4.4.15](/release-notes/v4-tucker/4.4.15.md): HarperDB 4.4.15 - [4.4.16](/release-notes/v4-tucker/4.4.16.md): HarperDB 4.4.16 - [4.4.17](/release-notes/v4-tucker/4.4.17.md): HarperDB 4.4.17 - [4.4.18](/release-notes/v4-tucker/4.4.18.md): HarperDB 4.4.18 - [4.4.19](/release-notes/v4-tucker/4.4.19.md): HarperDB 4.4.19 - [4.4.2](/release-notes/v4-tucker/4.4.2.md): HarperDB 4.4.2 - [4.4.20](/release-notes/v4-tucker/4.4.20.md): HarperDB 4.4.20 - [4.4.21](/release-notes/v4-tucker/4.4.21.md): HarperDB 4.4.21 - [4.4.22](/release-notes/v4-tucker/4.4.22.md): HarperDB 4.4.22 - [4.4.23](/release-notes/v4-tucker/4.4.23.md): HarperDB 4.4.23 - [4.4.24](/release-notes/v4-tucker/4.4.24.md): HarperDB 4.4.24 - [4.4.3](/release-notes/v4-tucker/4.4.3.md): HarperDB 4.4.3 - [4.4.4](/release-notes/v4-tucker/4.4.4.md): HarperDB 4.4.4 - [4.4.5](/release-notes/v4-tucker/4.4.5.md): HarperDB 4.4.5 - [4.4.6](/release-notes/v4-tucker/4.4.6.md): HarperDB 4.4.6 - [4.4.7](/release-notes/v4-tucker/4.4.7.md): HarperDB 4.4.7 - [4.4.8](/release-notes/v4-tucker/4.4.8.md): HarperDB 4.4.8 - [4.4.9](/release-notes/v4-tucker/4.4.9.md): HarperDB 4.4.9 - [4.5.0](/release-notes/v4-tucker/4.5.0.md): HarperDB 4.5.0 - [4.5.1](/release-notes/v4-tucker/4.5.1.md): HarperDB 4.5.1 - [4.5.10](/release-notes/v4-tucker/4.5.10.md): HarperDB 4.5.10 - [4.5.11](/release-notes/v4-tucker/4.5.11.md): HarperDB 4.5.11 - [4.5.12](/release-notes/v4-tucker/4.5.12.md): HarperDB 4.5.12 - [4.5.13](/release-notes/v4-tucker/4.5.13.md): HarperDB 4.5.13 - [4.5.14](/release-notes/v4-tucker/4.5.14.md): HarperDB 4.5.14 - [4.5.15](/release-notes/v4-tucker/4.5.15.md): HarperDB 4.5.15 - [4.5.16](/release-notes/v4-tucker/4.5.16.md): HarperDB 4.5.16 - [4.5.17](/release-notes/v4-tucker/4.5.17.md): HarperDB 4.5.17 - [4.5.18](/release-notes/v4-tucker/4.5.18.md): HarperDB 4.5.18 - [4.5.19](/release-notes/v4-tucker/4.5.19.md): HarperDB 4.5.19 - [4.5.2](/release-notes/v4-tucker/4.5.2.md): HarperDB 4.5.2 - [4.5.20](/release-notes/v4-tucker/4.5.20.md): HarperDB 4.5.20 - [4.5.21](/release-notes/v4-tucker/4.5.21.md): HarperDB 4.5.21 - [4.5.22](/release-notes/v4-tucker/4.5.22.md): HarperDB 4.5.22 - [4.5.23](/release-notes/v4-tucker/4.5.23.md): HarperDB 4.5.23 - [4.5.24](/release-notes/v4-tucker/4.5.24.md): HarperDB 4.5.24 - [4.5.25](/release-notes/v4-tucker/4.5.25.md): HarperDB 4.5.25 - [4.5.26](/release-notes/v4-tucker/4.5.26.md): HarperDB 4.5.26 - [4.5.27](/release-notes/v4-tucker/4.5.27.md): HarperDB 4.5.27 - [4.5.28](/release-notes/v4-tucker/4.5.28.md): HarperDB 4.5.28 - [4.5.29](/release-notes/v4-tucker/4.5.29.md): HarperDB 4.5.29 - [4.5.3](/release-notes/v4-tucker/4.5.3.md): HarperDB 4.5.3 - [4.5.30](/release-notes/v4-tucker/4.5.30.md): HarperDB 4.5.30 - [4.5.31](/release-notes/v4-tucker/4.5.31.md): HarperDB 4.5.31 - [4.5.32](/release-notes/v4-tucker/4.5.32.md): HarperDB 4.5.32 - [4.5.33](/release-notes/v4-tucker/4.5.33.md): HarperDB 4.5.33 - [4.5.34](/release-notes/v4-tucker/4.5.34.md): HarperDB 4.5.34 - [4.5.35](/release-notes/v4-tucker/4.5.35.md): HarperDB 4.5.35 - [4.5.36](/release-notes/v4-tucker/4.5.36.md): HarperDB 4.5.36 - [4.5.37](/release-notes/v4-tucker/4.5.37.md): HarperDB 4.5.37 - [4.5.38](/release-notes/v4-tucker/4.5.38.md): HarperDB 4.5.38 - [4.5.39](/release-notes/v4-tucker/4.5.39.md): HarperDB 4.5.39 - [4.5.4](/release-notes/v4-tucker/4.5.4.md): HarperDB 4.5.4 - [4.5.40](/release-notes/v4-tucker/4.5.40.md): HarperDB 4.5.40 - [4.5.41](/release-notes/v4-tucker/4.5.41.md): HarperDB 4.5.41 - [4.5.42](/release-notes/v4-tucker/4.5.42.md): HarperDB 4.5.42 - [4.5.5](/release-notes/v4-tucker/4.5.5.md): HarperDB 4.5.5 - [4.5.6](/release-notes/v4-tucker/4.5.6.md): HarperDB 4.5.6 - [4.5.7](/release-notes/v4-tucker/4.5.7.md): HarperDB 4.5.7 - [4.5.8](/release-notes/v4-tucker/4.5.8.md): HarperDB 4.5.8 - [4.5.9](/release-notes/v4-tucker/4.5.9.md): HarperDB 4.5.9 - [4.6.0](/release-notes/v4-tucker/4.6.0.md): HarperDB 4.6.0 - [4.6.1](/release-notes/v4-tucker/4.6.1.md): 7/10/2025 - [4.6.10](/release-notes/v4-tucker/4.6.10.md): 9/22/2025 - [4.6.11](/release-notes/v4-tucker/4.6.11.md): 9/26/2025 - [4.6.12](/release-notes/v4-tucker/4.6.12.md): 10/1/2025 - [4.6.13](/release-notes/v4-tucker/4.6.13.md): 10/2/2025 - [4.6.14](/release-notes/v4-tucker/4.6.14.md): 10/21/2025 - [4.6.15](/release-notes/v4-tucker/4.6.15.md): 11/5/2025 - [4.6.16](/release-notes/v4-tucker/4.6.16.md): 11/8/2025 - [4.6.17](/release-notes/v4-tucker/4.6.17.md): 11/11/2025 - [4.6.18](/release-notes/v4-tucker/4.6.18.md): HarperDB 4.6.18 - [4.6.19](/release-notes/v4-tucker/4.6.19.md): HarperDB 4.6.19 - [4.6.2](/release-notes/v4-tucker/4.6.2.md): 7/15/2025 - [4.6.20](/release-notes/v4-tucker/4.6.20.md): HarperDB 4.6.20 - [4.6.21](/release-notes/v4-tucker/4.6.21.md): HarperDB 4.6.21 - [4.6.22](/release-notes/v4-tucker/4.6.22.md): HarperDB 4.6.22 - [4.6.23](/release-notes/v4-tucker/4.6.23.md): HarperDB 4.6.23 - [4.6.24](/release-notes/v4-tucker/4.6.24.md): HarperDB 4.6.24 - [4.6.25](/release-notes/v4-tucker/4.6.25.md): HarperDB 4.6.25 - [4.6.26](/release-notes/v4-tucker/4.6.26.md): HarperDB 4.6.26 - [4.6.3](/release-notes/v4-tucker/4.6.3.md): 7/30/2025 - [4.6.4](/release-notes/v4-tucker/4.6.4.md): 8/1/2025 - [4.6.5](/release-notes/v4-tucker/4.6.5.md): 8/7/2025 - [4.6.6](/release-notes/v4-tucker/4.6.6.md): 8/15/2025 - [4.6.7](/release-notes/v4-tucker/4.6.7.md): 8/18/2025 - [4.6.8](/release-notes/v4-tucker/4.6.8.md): 9/3/2025 - [4.6.9](/release-notes/v4-tucker/4.6.9.md): 9/9/2025 - [4.7.0](/release-notes/v4-tucker/4.7.0.md): 10/16/2025 - [4.7.1](/release-notes/v4-tucker/4.7.1.md): 10/16/2025 - [4.7.10](/release-notes/v4-tucker/4.7.10.md): 11/26/2025 - [4.7.11](/release-notes/v4-tucker/4.7.11.md): 12/02/2025 - [4.7.12](/release-notes/v4-tucker/4.7.12.md): 12/08/2025 - [4.7.13](/release-notes/v4-tucker/4.7.13.md): 1/2/2026 - [4.7.14](/release-notes/v4-tucker/4.7.14.md): 1/6/2026 - [4.7.15](/release-notes/v4-tucker/4.7.15.md): 1/9/2026 - [4.7.16](/release-notes/v4-tucker/4.7.16.md): 1/23/2026 - [4.7.17](/release-notes/v4-tucker/4.7.17.md): 1/27/2026 - [4.7.18](/release-notes/v4-tucker/4.7.18.md): 2/6/2026 - [4.7.19](/release-notes/v4-tucker/4.7.19.md): 2/7/2026 - [4.7.2](/release-notes/v4-tucker/4.7.2.md): 10/21/2025 - [4.7.20](/release-notes/v4-tucker/4.7.20.md): 2/27/2026 - [4.7.21](/release-notes/v4-tucker/4.7.21.md): 3/6/2026 - [4.7.22](/release-notes/v4-tucker/4.7.22.md): 3/10/2026 - [4.7.23](/release-notes/v4-tucker/4.7.23.md): 3/16/2026 - [4.7.24](/release-notes/v4-tucker/4.7.24.md): 3/19/2026 - [4.7.25](/release-notes/v4-tucker/4.7.25.md): 3/30/2026 - [4.7.26](/release-notes/v4-tucker/4.7.26.md): HarperDB 4.7.26 - [4.7.27](/release-notes/v4-tucker/4.7.27.md): HarperDB 4.7.27 - [4.7.28](/release-notes/v4-tucker/4.7.28.md): HarperDB 4.7.28 - [4.7.29](/release-notes/v4-tucker/4.7.29.md): HarperDB 4.7.29 - [4.7.3](/release-notes/v4-tucker/4.7.3.md): 10/28/2025 - [4.7.30](/release-notes/v4-tucker/4.7.30.md): HarperDB 4.7.30 - [4.7.31](/release-notes/v4-tucker/4.7.31.md): HarperDB 4.7.31 - [4.7.32](/release-notes/v4-tucker/4.7.32.md): HarperDB 4.7.32 - [4.7.33](/release-notes/v4-tucker/4.7.33.md): HarperDB 4.7.33 - [4.7.4](/release-notes/v4-tucker/4.7.4.md): 11/07/2025 - [4.7.5](/release-notes/v4-tucker/4.7.5.md): 11/11/2025 - [4.7.6](/release-notes/v4-tucker/4.7.6.md): 11/12/2025 - [4.7.7](/release-notes/v4-tucker/4.7.7.md): 11/17/2025 - [4.7.8](/release-notes/v4-tucker/4.7.8.md): 11/21/2025 - [4.7.9](/release-notes/v4-tucker/4.7.9.md): 11/25/2025 - [Harper Tucker (Version 4)](/release-notes/v4-tucker/tucker.md): Did you know our release names are dedicated to employee pups? For our fourth release, we have Tucker. - [Harper Lincoln (Version 5)](/release-notes/v5-lincoln.md): All specific full patch version release notes for 5.x.x are available on the releases page. - [5.0 Release Notes](/release-notes/v5-lincoln/5.0.md): Patch Releases - [5.1 Release Notes](/release-notes/v5-lincoln/5.1.md): Patch Releases - [5.2 Release Notes](/release-notes/v5-lincoln/5.2.md): Patch Releases - [Harper Lincoln (Version 5)](/release-notes/v5-lincoln/lincoln.md): In honor of Lincoln. - [v5-migration](/release-notes/v5-lincoln/v5-migration.md): Harper version 5.0 includes many updates to provide a cleaner, more consistent and secure environment. However, there are some breaking changes, and users should review the migration guide for details on how to update their applications. Note that applications that have race conditions that are prone to timing or rely on undocumented features or bugs are always prone to breakage at any point, including major version upgrades. This document describes the important changes to make for applications correctly built in documented APIs. ## Optional - [Harper product overview (harper.fast)](https://www.harper.fast): Marketing site with positioning and use cases; companion llms.txt at https://www.harper.fast/llms.txt