From e3bc7df0f3f13f1222d816a0aeda9220616312b6 Mon Sep 17 00:00:00 2001 From: Ethan Arrowood Date: Mon, 30 Mar 2026 15:25:34 -0600 Subject: [PATCH 1/4] docs(cross-refs): update old /docs/ links in release notes to v4 reference paths Co-Authored-By: Claude Sonnet 4.6 --- release-notes/v4-tucker/4.1.0.md | 8 ++++---- release-notes/v4-tucker/4.1.1.md | 4 ++-- release-notes/v4-tucker/4.2.0.md | 10 +++++----- release-notes/v4-tucker/4.3.0.md | 12 ++++++------ release-notes/v4-tucker/4.4.0.md | 10 +++++----- release-notes/v4-tucker/4.5.0.md | 6 +++--- release-notes/v4-tucker/4.6.0.md | 2 +- release-notes/v4-tucker/index.mdx | 2 +- 8 files changed, 27 insertions(+), 27 deletions(-) diff --git a/release-notes/v4-tucker/4.1.0.md b/release-notes/v4-tucker/4.1.0.md index bcce817d..a0db3e6b 100644 --- a/release-notes/v4-tucker/4.1.0.md +++ b/release-notes/v4-tucker/4.1.0.md @@ -8,17 +8,17 @@ HarperDB 4.1 introduces the ability to use worker threads for concurrently handl This means debugging will be much easier for custom functions. If you install/run HarperDB locally, most modern IDEs like WebStorm and VSCode support worker thread debugging, so you can start HarperDB in your IDE, and set breakpoints in your custom functions and debug them. -The associated routing functionality now includes session affinity support. This can be used to consistently route users to the same thread which can improve caching locality, performance, and fairness. This can be enabled in with the [`http.sessionAffinity` option in your configuration](/docs/4.1/configuration#session-affinity). +The associated routing functionality now includes session affinity support. This can be used to consistently route users to the same thread which can improve caching locality, performance, and fairness. This can be enabled in with the [`http.sessionAffinity` option in your configuration](/reference/v4/configuration/options#http). HarperDB 4.1's NoSQL query handling has been revamped to consistently use iterators, which provide an extremely memory efficient mechanism for directly streaming query results to the network _as_ the query results are computed. This results in faster Time to First Byte (TTFB) (only the first record/value in a query needs to be computed before data can start to be sent), and less memory usage during querying (the entire query result does not need to be stored in memory). These iterators are also available in query results for custom functions and can provide means for custom function code to iteratively access data from the database without loading entire results. This should be a completely transparent upgrade, all HTTP APIs function the same, with the one exception that custom functions need to be aware that they can't access query results by `[index]` (they should use array methods or for-in loops to handle query results). -4.1 includes configuration options for specifying the location of database storage files. This allows you to specifically locate database directories and files on different volumes for better flexibility and utilization of disks and storage volumes. See the [storage configuration](/docs/4.1/configuration#storage) and [schemas configuration](/docs/4.1/configuration#schemas) for information on how to configure these locations. +4.1 includes configuration options for specifying the location of database storage files. This allows you to specifically locate database directories and files on different volumes for better flexibility and utilization of disks and storage volumes. See the [storage configuration](/reference/v4/configuration/options#storage) and [schemas configuration](/reference/v4/database/schema) for information on how to configure these locations. -Logging has been revamped and condensed into one `hdb.log` file. See [logging](/docs/administration/logging/) for more information. +Logging has been revamped and condensed into one `hdb.log` file. See [logging](/reference/v4/logging/overview) for more information. A new operation called `cluster_network` was added, this operation will ping the cluster and return a list of enmeshed nodes. -Custom Functions will no longer automatically load static file routes, instead the `@fastify/static` plugin will need to be registered with the Custom Function server. See [Host A Static Web UI-static](/docs/4.1/custom-functions/host-static). +Custom Functions will no longer automatically load static file routes, instead the `@fastify/static` plugin will need to be registered with the Custom Function server. See [Host A Static Web UI-static](/reference/v4/legacy/custom-functions). Updates to S3 import and export mean that these operations now require the bucket `region` in the request. Also, if referencing a nested object it should be done in the `key` parameter. See examples [here](https://api.harperdb.io/#aa74bbdf-668c-4536-80f1-b91bb13e5024). diff --git a/release-notes/v4-tucker/4.1.1.md b/release-notes/v4-tucker/4.1.1.md index e90c55c6..719fc65d 100644 --- a/release-notes/v4-tucker/4.1.1.md +++ b/release-notes/v4-tucker/4.1.1.md @@ -6,8 +6,8 @@ title: 4.1.1 06/16/2023 -- HarperDB uses improved logic for determining default heap limits and thread counts. When running in a restricted container and on NodeJS 18.15+, HarperDB will use the constrained memory limit to determine heap limits for each thread. In more memory constrained servers with many CPU cores, a reduced default thread count will be used to ensure that excessive memory is not used by many workers. You may still define your own thread count (with `http`/`threads`) in the [configuration](/docs/deployments/configuration). -- An option has been added for [disabling the republishing NATS messages](/docs/deployments/configuration), which can provide improved replication performance in a fully connected network. +- HarperDB uses improved logic for determining default heap limits and thread counts. When running in a restricted container and on NodeJS 18.15+, HarperDB will use the constrained memory limit to determine heap limits for each thread. In more memory constrained servers with many CPU cores, a reduced default thread count will be used to ensure that excessive memory is not used by many workers. You may still define your own thread count (with `http`/`threads`) in the [configuration](/reference/v4/configuration/overview). +- An option has been added for [disabling the republishing NATS messages](/reference/v4/configuration/overview), which can provide improved replication performance in a fully connected network. - Improvements to our OpenShift container. - Dependency security updates. - **Bug Fixes** diff --git a/release-notes/v4-tucker/4.2.0.md b/release-notes/v4-tucker/4.2.0.md index d59172bd..d3104389 100644 --- a/release-notes/v4-tucker/4.2.0.md +++ b/release-notes/v4-tucker/4.2.0.md @@ -12,15 +12,15 @@ HarperDB 4.2 introduces a new interface to accessing our core database engine wi ### Resource API -The [Resource API](/docs/reference/resources) is the new interface for accessing data in HarperDB. It utilizes a uniform interface for accessing data in HarperDB database/tables and is designed to easily be implemented or extended for defining customized application logic for table access or defining custom external data sources. This API has support for connecting resources together for caching and delivering data change and message notifications in real-time. The [Resource API documentation details this interface](/docs/reference/resources). +The [Resource API](/reference/v4/resources/overview) is the new interface for accessing data in HarperDB. It utilizes a uniform interface for accessing data in HarperDB database/tables and is designed to easily be implemented or extended for defining customized application logic for table access or defining custom external data sources. This API has support for connecting resources together for caching and delivering data change and message notifications in real-time. The [Resource API documentation details this interface](/reference/v4/resources/overview). ### Component Architecture -HarperDB's custom functions have evolved towards a full component architecture; our internal functionality is defined as components, and this can be used in a modular way in conjunction with user components. These can all easily be configured and loaded through configuration files, and there is now a [well-defined interface for creating your own components](/docs/reference/components/extensions). Components can easily be deployed/installed into HarperDB using [NPM and Github references as well](/docs/reference/components/applications?_highlight=github#adding-components-to-root). +HarperDB's custom functions have evolved towards a full component architecture; our internal functionality is defined as components, and this can be used in a modular way in conjunction with user components. These can all easily be configured and loaded through configuration files, and there is now a [well-defined interface for creating your own components](/reference/v4/components/extension-api). Components can easily be deployed/installed into HarperDB using [NPM and Github references as well](/reference/v4/components/applications#adding-components-to-root). ### Configurable Database Schemas -HarperDB applications or components support [schema definitions using GraphQL schema syntax](/docs/developers/applications/defining-schemas). This makes it easy to define your table and attribute structure and gives you control over which attributes should be indexed and what types they should be. With schemas in configuration, these schemas can be bundled with an application and deployed together with application code. +HarperDB applications or components support [schema definitions using GraphQL schema syntax](/reference/v4/database/schema). This makes it easy to define your table and attribute structure and gives you control over which attributes should be indexed and what types they should be. With schemas in configuration, these schemas can be bundled with an application and deployed together with application code. ### REST Interface @@ -28,7 +28,7 @@ HarperDB 4.2 introduces a new REST interface for accessing data through best-pra ### Real-Time -HarperDB 4.2 now provides standard interfaces for subscribing to data changes and receiving notifications of changes and messages in real-time. Using these new real-time messaging capabilities with structured data provides a powerful integrated platform for both database style data updates and querying along with message delivery. [Real-time messaging](/docs/developers/real-time) of data is available through several protocols: +HarperDB 4.2 now provides standard interfaces for subscribing to data changes and receiving notifications of changes and messages in real-time. Using these new real-time messaging capabilities with structured data provides a powerful integrated platform for both database style data updates and querying along with message delivery. [Real-time messaging](/reference/v4/rest/websockets) of data is available through several protocols: #### MQTT @@ -62,7 +62,7 @@ Support was added for defining a table with `primary_key` instead of `hash_attri There have been significant changes to `harperdb-config.yaml`, however none of these changes should affect pre-4.2 versions. If you upgrade to 4.2 any existing configuration should be backwards compatible and will not need to be updated. -`harperdb-config.yaml` has had some configuration values added, removed, renamed and defaults changed. Please refer to [harperdb-config.yaml](/docs/deployments/configuration) for the most current configuration parameters. +`harperdb-config.yaml` has had some configuration values added, removed, renamed and defaults changed. Please refer to [harperdb-config.yaml](/reference/v4/configuration/overview) for the most current configuration parameters. - The `http` element has been expanded. - `compressionThreshold` was added. diff --git a/release-notes/v4-tucker/4.3.0.md b/release-notes/v4-tucker/4.3.0.md index 7f0332bb..4d7e82fb 100644 --- a/release-notes/v4-tucker/4.3.0.md +++ b/release-notes/v4-tucker/4.3.0.md @@ -41,7 +41,7 @@ HarperDB also now supports querying with a sort order. Multiple sort orders can /Product?brand.name=Microsoft&sort(price)&select(name,brand{name,size}) ``` -See the [schema definition documentation](/docs/developers/applications/defining-schemas) for more information on defining relationships, and the [REST documentation for more information on queries](/docs/developers/rest). +See the [schema definition documentation](/reference/v4/database/schema) for more information on defining relationships, and the [REST documentation for more information on queries](/reference/v4/rest/overview). #### OpenAPI Specification @@ -81,7 +81,7 @@ HarperDB has upgraded the local studio to match the same version that is offered #### mTLS Support -HarperDB now supports mTLS based authentication for HTTP, WebSockets, and MQTT. See the [configuration documentation for more information](/docs/deployments/configuration). +HarperDB now supports mTLS based authentication for HTTP, WebSockets, and MQTT. See the [configuration documentation for more information](/reference/v4/configuration/overview). #### Single-Level Wildcards @@ -95,11 +95,11 @@ HarperDB's MQTT now supports the retain handling flags for subscriptions that ar HarperDB now supports basic conflict-free data type (CRDT) updates that allow properties to be individually updated and merged when separate properties are updated on different threads or nodes. Individual property CRDT updates are automatically performed when you update individual properties through the resource API. Individual property CRDT updates are used when making `PATCH` requests through the REST API. -The CRDT functionality also supports explicit incrementation to merge multiple parallel incrementation requests with proper summing. See the [Resource API for more information](/docs/reference/resources). +The CRDT functionality also supports explicit incrementation to merge multiple parallel incrementation requests with proper summing. See the [Resource API for more information](/reference/v4/resources/overview). #### Configuration Improvements -The configuration has improved support for detecting port conflicts, handling paths for fastify routes, and now includes support for specifying a heap limit and TLS ciphers. See the [configuration documentation for more information](/docs/deployments/configuration). +The configuration has improved support for detecting port conflicts, handling paths for fastify routes, and now includes support for specifying a heap limit and TLS ciphers. See the [configuration documentation for more information](/reference/v4/configuration/overview). #### Balanced Audit Log Cleanup @@ -115,10 +115,10 @@ Significant improvements were made to handling of free-space to decrease free-sp #### Compact Database -In addition to storage improvements, HarperDB now includes functionality for [compacting a database](/docs/deployments/harper-cli) (while offline), which can be used to eliminate all free-space to reset any fragmentation. +In addition to storage improvements, HarperDB now includes functionality for [compacting a database](/reference/v4/cli/overview) (while offline), which can be used to eliminate all free-space to reset any fragmentation. #### Compression Compression is now enabled by default for all records over 4KB. -To learn more on how to configure compression visit [configuration](/docs/deployments/configuration). +To learn more on how to configure compression visit [configuration](/reference/v4/configuration/overview). diff --git a/release-notes/v4-tucker/4.4.0.md b/release-notes/v4-tucker/4.4.0.md index 8b6623be..06b5638b 100644 --- a/release-notes/v4-tucker/4.4.0.md +++ b/release-notes/v4-tucker/4.4.0.md @@ -10,13 +10,13 @@ title: 4.4.0 ### Native Replication -HarperDB has a completely [new native replication system](/docs/developers/replication/) which is faster, more efficient, secure, and reliable than the previous replication system. The new system (codenamed "Plexus") uses direct WebSocket connections between servers with highly optimized encoding and is driven by direct tracking audit/transaction log for efficient and flexible data transfer. This replication has improved resilience with the ability to reach consensus consistency when one node goes down through cross-node catch-up. Network connections can be performed over the existing operations API port or a separate port, for improved configurability. +HarperDB has a completely [new native replication system](/reference/v4/replication/overview) which is faster, more efficient, secure, and reliable than the previous replication system. The new system (codenamed "Plexus") uses direct WebSocket connections between servers with highly optimized encoding and is driven by direct tracking audit/transaction log for efficient and flexible data transfer. This replication has improved resilience with the ability to reach consensus consistency when one node goes down through cross-node catch-up. Network connections can be performed over the existing operations API port or a separate port, for improved configurability. The native replication system is much easier to configure, with multiple options for authentication and security, including PKI/mTLS security that is highly robust and easy to use in conjunction with existing PKI certificates. Replication can be configured through explicit subscriptions or for automated replication of all data in a database. With automated replication, gossiping is used to automatically discover and connect to other nodes in the cluster. #### Sharding -The new replication system also includes provisional support for [sharding](/docs/developers/replication/sharding). This sharding mechanism paves the way for greater scalability and performance, by allow data to be distributed across multiple nodes. +The new replication system also includes provisional support for [sharding](/reference/v4/replication/sharding). This sharding mechanism paves the way for greater scalability and performance, by allow data to be distributed across multiple nodes. #### Replicated Operations @@ -24,15 +24,15 @@ Certain operations can now be replicated across the cluster, including the deplo ### Computed Properties -Computed properties allow applications to define properties that are computed from other properties, allowing for composite properties that are calculated from other data stored in records without requiring actual storage of the computed value. For example, you could have a computed property for a full name based on first and last, or age/duration based on a date. Computed properties are also foundational for custom indexes. See the [schema documentation](/docs/developers/applications/defining-schemas), [Resource API](/docs/reference/resources), and our blog post on [computed properties](https://www.harpersystems.dev/development/tutorials/how-to-create-custom-indexes-with-computed-properties) for more information. +Computed properties allow applications to define properties that are computed from other properties, allowing for composite properties that are calculated from other data stored in records without requiring actual storage of the computed value. For example, you could have a computed property for a full name based on first and last, or age/duration based on a date. Computed properties are also foundational for custom indexes. See the [schema documentation](/reference/v4/database/schema), [Resource API](/reference/v4/resources/overview), and our blog post on [computed properties](https://www.harpersystems.dev/development/tutorials/how-to-create-custom-indexes-with-computed-properties) for more information. ### Custom Indexing -Custom indexes can now be defined using computed properties to allow for unlimited possibilities of indexing, including composite, full-text indexing, vector indexing. Again, see the [schema documentation](/docs/developers/applications/defining-schemas) for more information. +Custom indexes can now be defined using computed properties to allow for unlimited possibilities of indexing, including composite, full-text indexing, vector indexing. Again, see the [schema documentation](/reference/v4/database/schema) for more information. ### Native Graph Support -HarperDB now includes provisional support for native [GraphQL querying functionality](/docs/reference/graphql). This allows for querying of graph data using GraphQL syntax. This is provisional and some APIs may be updated in the future. +HarperDB now includes provisional support for native [GraphQL querying functionality](/reference/v4/graphql-querying/overview). This allows for querying of graph data using GraphQL syntax. This is provisional and some APIs may be updated in the future. ### Dynamic Certificate Management diff --git a/release-notes/v4-tucker/4.5.0.md b/release-notes/v4-tucker/4.5.0.md index d5395603..b49ebc86 100644 --- a/release-notes/v4-tucker/4.5.0.md +++ b/release-notes/v4-tucker/4.5.0.md @@ -10,7 +10,7 @@ title: 4.5.0 ### Blob Storage -4.5 introduces a new [Blob storage system](/docs/reference/blob), that is designed to efficiently handle large binary objects, with built-in support for streaming large content/media in and out of storage. This provides significantly better performance and functionality for large unstructured data, such as HTML, images, video, and other large files. Components can leverage this functionality through the JavaScript `Blob` interface, and the new `createBlob` function. Blobs are fully replicated and integrated. Harper can also coerce strings to `Blob`s (when dictated by the field type), making it feasible to use blobs for large string data, including with MQTT messaging. +4.5 introduces a new [Blob storage system](/reference/v4/database/schema#blob-storage), that is designed to efficiently handle large binary objects, with built-in support for streaming large content/media in and out of storage. This provides significantly better performance and functionality for large unstructured data, such as HTML, images, video, and other large files. Components can leverage this functionality through the JavaScript `Blob` interface, and the new `createBlob` function. Blobs are fully replicated and integrated. Harper can also coerce strings to `Blob`s (when dictated by the field type), making it feasible to use blobs for large string data, including with MQTT messaging. ### Password Hashing Upgrade @@ -53,11 +53,11 @@ There is a new `loadEnv` component loader that can be used to load environmental ### Cluster Status Information -The [`cluster_status` operation](/docs/developers/operations-api/clustering) now includes new statistics for replication, including the timestamps of last received transactions, sent transactions, and committed transactions. +The [`cluster_status` operation](/reference/v4/replication/clustering) now includes new statistics for replication, including the timestamps of last received transactions, sent transactions, and committed transactions. ### Improved URL path parsing -Resources can be defined with nested paths and directly accessed by the exact path without requiring a trailing slash. The `id.property` syntax for accessing properties in URLs will only be applied to properties that are declared in a schema. This allows for URLs to generally include dots in paths without being interpreted as property access. A new [`directURLMapping` option/flag](/docs/deployments/configuration) on resources that allows for more direct URL path handling as well. +Resources can be defined with nested paths and directly accessed by the exact path without requiring a trailing slash. The `id.property` syntax for accessing properties in URLs will only be applied to properties that are declared in a schema. This allows for URLs to generally include dots in paths without being interpreted as property access. A new [`directURLMapping` option/flag](/reference/v4/configuration/overview) on resources that allows for more direct URL path handling as well. ### `server.authenticateUser` API diff --git a/release-notes/v4-tucker/4.6.0.md b/release-notes/v4-tucker/4.6.0.md index 3188224c..bc5fc710 100644 --- a/release-notes/v4-tucker/4.6.0.md +++ b/release-notes/v4-tucker/4.6.0.md @@ -25,7 +25,7 @@ An important change is that logging to standard out/error will _not_ include the ### Data Loader -4.6 includes a new [data loader](/docs/developers/applications/data-loader) that can be used to load data into HarperDB as part of a component. The data loader can be used to load data from JSON file and can be deployed and distributed with a component to provide a reliable mechanism for ensuring specific records are loaded into Harper. +4.6 includes a new [data loader](/reference/v4/database/data-loader) that can be used to load data into HarperDB as part of a component. The data loader can be used to load data from JSON file and can be deployed and distributed with a component to provide a reliable mechanism for ensuring specific records are loaded into Harper. ### Resource API Upgrades diff --git a/release-notes/v4-tucker/index.mdx b/release-notes/v4-tucker/index.mdx index adedc99b..79a3a309 100644 --- a/release-notes/v4-tucker/index.mdx +++ b/release-notes/v4-tucker/index.mdx @@ -25,7 +25,7 @@ HarperDB version 4 ([Tucker release](v4-tucker/tucker)) represents major step fo ## -- Blob Storage - 4.5 introduces a new [Blob storage system](/docs/reference/blob). +- Blob Storage - 4.5 introduces a new [Blob storage system](/reference/v4/database/schema#blob-storage). - Password Hashing Upgrade - two new password hashing algorithms for better security (to replace md5). - New resource and storage Analytics From 3e8483520220589cdc52d6ae59443b8ddaf22f07 Mon Sep 17 00:00:00 2001 From: Ethan Arrowood Date: Mon, 30 Mar 2026 15:25:43 -0600 Subject: [PATCH 2/4] docs(cross-refs): update old /docs/ links in learn guides to v4 reference paths Co-Authored-By: Claude Sonnet 4.6 --- .../developers/harper-applications-in-depth.mdx | 16 ++++++++-------- .../create-your-first-application.mdx | 4 ++-- .../install-and-connect-harper.mdx | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/learn/developers/harper-applications-in-depth.mdx b/learn/developers/harper-applications-in-depth.mdx index bdd6037a..e6595e1d 100644 --- a/learn/developers/harper-applications-in-depth.mdx +++ b/learn/developers/harper-applications-in-depth.mdx @@ -52,7 +52,7 @@ Beyond the component system, Harper also includes some other important subsystem Harper further classifies components (plugins and applications) as either built-in or custom. **Built-in** components are internal to Harper, require no additional installation steps, and are immediately accessible for use. The `graphqlSchema` and `rest` plugins are great examples of built-in plugins. **Custom** components are external to Harper, generally available as an npm package or git repository, and do require additional installation steps in order to be used. Custom components can be authored by anyone, including Harper. Any of Harper's official custom components are published using the `@harperdb` and `@harperfast` package scopes, such as the [`@harperdb/nextjs`](https://github.com/HarperDB/nextjs) plugin for developing Next.js applications or the [`@harperdb/status-check`](https://github.com/HarperDB/status-check) application. -Harper's reference documentation contains detailed documentation for all [built-in components](/docs/reference/components/built-in-extensions). Custom components are documented within their respective repositories. +Harper's reference documentation contains detailed documentation for all [built-in components](/reference/v4/components/overview#built-in-extensions-reference). Custom components are documented within their respective repositories. Harper does not currently include any built-in applications, making "custom applications" a bit redundant. Generally, we just refer to them as "applications". However, there is a multitude of both built-in and custom plugins, and so the documentation tends to specify whenever relevant. @@ -189,7 +189,7 @@ The other two properties are lists containing status objects corresponding to di The Operations API is mainly intended to be used for system administration purposes. This API runs on a separate port than the main application port serving user traffic, providing a distinct interface for clear differentiation between secure system administration and the application interface designed for high-load, performance and application defined actions. (It does have the ability to do data management, which may overlap with application capabilities, but this is part of a full system administration API). -Harper keeps a [reference of all operations](/docs/developers/operations-api) in the Operations API reference documentation, but here a few more you can try immediately: `user_info`, `read_log`, and `describe_all`. +Harper keeps a [reference of all operations](/reference/v4/operations-api/overview) in the Operations API reference documentation, but here a few more you can try immediately: `user_info`, `read_log`, and `describe_all`. For `describe_all` to work, ensure that you are still running the Harper application you created in the previous guide. If you need to, checkout the [`02-rest-api`](https://github.com/HarperFast/create-your-first-application/tree/02-rest-api) branch of the `HarperFast/create-your-first-application` repository to ensure you have the necessary application files for this example. @@ -330,7 +330,7 @@ In previous guides we demonstrated how to use the `harper` and `harper dev` comm - `harper restart` will restart the main process and all threads (different than the thread-only restart from the `dev` command) - `harper status` displays the status of the process including the PID -There are a few more commands not listed here (check out the [CLI reference](/docs/deployments/harper-cli) if you're interested), and there is one more fun trick with the CLI. +There are a few more commands not listed here (check out the [CLI reference](/reference/v4/cli/overview) if you're interested), and there is one more fun trick with the CLI. Certain operations from the Operations API are available as CLI commands! They follow the convention: `harper =`, and return YAML by default. You can always pass `json=true` to see the result in JSON instead. @@ -355,7 +355,7 @@ Create a new file `resources.js` within your Harper application; here we are goi **Resources** are the mechanism for defining custom functionality in your Harper application. This gives you tremendous flexibility and control over how data is accessed and modified in Harper. The corresponding Resource API is a unified API for modeling different data sources within Harper as JavaScript classes. Generally, this is where the core business logic of your application lives. Database tables (the ones defined by `graphqlSchema` entries) are `Resource` classes, and so extending the function of a table is as simple as extending their class. -Resource classes have methods that correspond to standard HTTP/REST methods, like `get`, `post`, `patch`, and `put` to implement specific handling for any of these methods (for tables they all have default implementations). Furthermore, by simply `export` 'ing a resource class, Harper will generate REST API endpoints for it just like the `@export` directive did in `graphqlSchema`. The [Resource API](/docs/reference/resources) is quite powerful, and we'll dive into different aspects throughout future Learn guides, but for now lets start with a simple example extending the existing `Dog` table that already exists in the application. +Resource classes have methods that correspond to standard HTTP/REST methods, like `get`, `post`, `patch`, and `put` to implement specific handling for any of these methods (for tables they all have default implementations). Furthermore, by simply `export` 'ing a resource class, Harper will generate REST API endpoints for it just like the `@export` directive did in `graphqlSchema`. The [Resource API](/reference/v4/resources/overview) is quite powerful, and we'll dive into different aspects throughout future Learn guides, but for now lets start with a simple example extending the existing `Dog` table that already exists in the application. Inside of `resources.js` add the following code for defining a `DogWithHumanAge` custom resource: @@ -625,7 +625,7 @@ At this point, you should confident to start tinkering with your own ideas for a ## Additional Resources -- [Operations API](/docs/developers/operations-api/) -- [`logger` global reference](/docs/reference/globals#logger) -- [Resources](/docs/reference/resources/) -- [Components](/docs/reference/components/) +- [Operations API](/reference/v4/operations-api/overview) +- [`logger` global reference](/reference/v4/logging/api) +- [Resources](/reference/v4/resources/overview) +- [Components](/reference/v4/components/overview) diff --git a/learn/getting-started/create-your-first-application.mdx b/learn/getting-started/create-your-first-application.mdx index 15698f9a..bcb96551 100644 --- a/learn/getting-started/create-your-first-application.mdx +++ b/learn/getting-started/create-your-first-application.mdx @@ -371,5 +371,5 @@ harper deploy \ ## Additional Resources -- [Table Schema](../../docs/developers/applications/defining-schemas) reference -- [REST](../../docs/developers/rest) reference +- [Table Schema](/reference/v4/database/schema) reference +- [REST](/reference/v4/rest/overview) reference diff --git a/learn/getting-started/install-and-connect-harper.mdx b/learn/getting-started/install-and-connect-harper.mdx index a30f9354..1213e437 100644 --- a/learn/getting-started/install-and-connect-harper.mdx +++ b/learn/getting-started/install-and-connect-harper.mdx @@ -214,5 +214,5 @@ If you see `HarperDB is running.`, fantastic work! You've successfully installed ## Additional Resources -- [Harper CLI](../../docs/deployments/harper-cli) reference documentation +- [Harper CLI](/reference/v4/cli/overview) reference documentation - [Harper Fabric](../../fabric/) documentation From 1397009cabf886d656c5a3b2abc64c055b26190e Mon Sep 17 00:00:00 2001 From: Ethan Arrowood Date: Mon, 30 Mar 2026 15:29:57 -0600 Subject: [PATCH 3/4] docs(cross-refs): fix broken links and anchors from Docusaurus build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fabric/index.md: /docs/deployments/configuration#localstudio → /reference/v4/configuration/options#localstudio - fabric/grafana-integration.md: ../docs/developers/operations-api/analytics → /reference/v4/analytics/overview - release-notes/4.2.0: remove broken /docs/administration/cloning link (no target page exists) - release-notes/4.2.0: drop non-existent #adding-components-to-root anchor - release-notes/4.5.0 + index.mdx: #blob-storage → #blob-type (correct heading anchor) - src/pages/index.mdx: update 4 /docs/developers/* links to /reference/v4/ paths Co-Authored-By: Claude Sonnet 4.6 --- fabric/grafana-integration.md | 2 +- fabric/index.md | 2 +- release-notes/v4-tucker/4.2.0.md | 4 ++-- release-notes/v4-tucker/4.5.0.md | 2 +- release-notes/v4-tucker/index.mdx | 2 +- src/pages/index.mdx | 8 ++++---- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/fabric/grafana-integration.md b/fabric/grafana-integration.md index e1843227..338cf21b 100644 --- a/fabric/grafana-integration.md +++ b/fabric/grafana-integration.md @@ -40,4 +40,4 @@ Once the Harper data source is configured, you can start building dashboards in 1. Click on the `Explore` navigation link in the left sidebar. 2. You can now create queries using the Harper data source to visualize your Harper Fabric cluster metrics and logs. - Reference the [Harper Analytics Operations](../docs/developers/operations-api/analytics) for more details on available metrics and query options. + Reference the [Harper Analytics Operations](/reference/v4/analytics/overview) for more details on available metrics and query options. diff --git a/fabric/index.md b/fabric/index.md index 5afd0c30..0f2c415d 100644 --- a/fabric/index.md +++ b/fabric/index.md @@ -8,7 +8,7 @@ Fabric Studio is the web-based GUI for Harper. Studio enables you to administer, [Sign up for free!](https://fabric.harper.fast/#/sign-up) -Harper includes a simplified local Studio that is packaged with all Harper installations and served directly from the cluster. It can be enabled in the [configuration file](/docs/deployments/configuration#localstudio). This section is dedicated to the hosted Studio accessed at [studio.harperdb.io](https://fabric.harper.fast/). +Harper includes a simplified local Studio that is packaged with all Harper installations and served directly from the cluster. It can be enabled in the [configuration file](/reference/v4/configuration/options#localstudio). This section is dedicated to the hosted Studio accessed at [studio.harperdb.io](https://fabric.harper.fast/). --- diff --git a/release-notes/v4-tucker/4.2.0.md b/release-notes/v4-tucker/4.2.0.md index d3104389..071796d4 100644 --- a/release-notes/v4-tucker/4.2.0.md +++ b/release-notes/v4-tucker/4.2.0.md @@ -16,7 +16,7 @@ The [Resource API](/reference/v4/resources/overview) is the new interface for ac ### Component Architecture -HarperDB's custom functions have evolved towards a full component architecture; our internal functionality is defined as components, and this can be used in a modular way in conjunction with user components. These can all easily be configured and loaded through configuration files, and there is now a [well-defined interface for creating your own components](/reference/v4/components/extension-api). Components can easily be deployed/installed into HarperDB using [NPM and Github references as well](/reference/v4/components/applications#adding-components-to-root). +HarperDB's custom functions have evolved towards a full component architecture; our internal functionality is defined as components, and this can be used in a modular way in conjunction with user components. These can all easily be configured and loaded through configuration files, and there is now a [well-defined interface for creating your own components](/reference/v4/components/extension-api). Components can easily be deployed/installed into HarperDB using [NPM and Github references as well](/reference/v4/components/applications). ### Configurable Database Schemas @@ -50,7 +50,7 @@ Databases are now entirely encapsulated in a file, which means they can be moved ### Clone Node -HarperDB includes new functionality for adding new HarperDB nodes in a cluster. New instances can be configured to clone from a leader node, performing and copying a database snapshot from a leader node, and self-configuring from the leader node as well, to facilitate accelerated deployment of new nodes for fast horizontal scaling to meet demand needs. [See the documentation on Clone Node for more information.](/docs/administration/cloning) +HarperDB includes new functionality for adding new HarperDB nodes in a cluster. New instances can be configured to clone from a leader node, performing and copying a database snapshot from a leader node, and self-configuring from the leader node as well, to facilitate accelerated deployment of new nodes for fast horizontal scaling to meet demand needs. See the replication documentation for more information on node management. ### Operations API terminology updates diff --git a/release-notes/v4-tucker/4.5.0.md b/release-notes/v4-tucker/4.5.0.md index b49ebc86..d7635244 100644 --- a/release-notes/v4-tucker/4.5.0.md +++ b/release-notes/v4-tucker/4.5.0.md @@ -10,7 +10,7 @@ title: 4.5.0 ### Blob Storage -4.5 introduces a new [Blob storage system](/reference/v4/database/schema#blob-storage), that is designed to efficiently handle large binary objects, with built-in support for streaming large content/media in and out of storage. This provides significantly better performance and functionality for large unstructured data, such as HTML, images, video, and other large files. Components can leverage this functionality through the JavaScript `Blob` interface, and the new `createBlob` function. Blobs are fully replicated and integrated. Harper can also coerce strings to `Blob`s (when dictated by the field type), making it feasible to use blobs for large string data, including with MQTT messaging. +4.5 introduces a new [Blob storage system](/reference/v4/database/schema#blob-type), that is designed to efficiently handle large binary objects, with built-in support for streaming large content/media in and out of storage. This provides significantly better performance and functionality for large unstructured data, such as HTML, images, video, and other large files. Components can leverage this functionality through the JavaScript `Blob` interface, and the new `createBlob` function. Blobs are fully replicated and integrated. Harper can also coerce strings to `Blob`s (when dictated by the field type), making it feasible to use blobs for large string data, including with MQTT messaging. ### Password Hashing Upgrade diff --git a/release-notes/v4-tucker/index.mdx b/release-notes/v4-tucker/index.mdx index 79a3a309..ec62ccd1 100644 --- a/release-notes/v4-tucker/index.mdx +++ b/release-notes/v4-tucker/index.mdx @@ -25,7 +25,7 @@ HarperDB version 4 ([Tucker release](v4-tucker/tucker)) represents major step fo ## -- Blob Storage - 4.5 introduces a new [Blob storage system](/reference/v4/database/schema#blob-storage). +- Blob Storage - 4.5 introduces a new [Blob storage system](/reference/v4/database/schema#blob-type). - Password Hashing Upgrade - two new password hashing algorithms for better security (to replace md5). - New resource and storage Analytics diff --git a/src/pages/index.mdx b/src/pages/index.mdx index 1e975307..b18ffad3 100644 --- a/src/pages/index.mdx +++ b/src/pages/index.mdx @@ -28,25 +28,25 @@ The best way to get started using Harper is to head over to the [Learn](/learn/) items={[ { type: 'link', - href: '/docs/developers/applications/', + href: '/reference/v4/components/overview', label: 'Harper Applications', description: 'Build your a fully featured Harper Component with custom functionality', }, { type: 'link', - href: '/docs/developers/rest', + href: '/reference/v4/rest/overview', label: 'REST Queries', description: 'The recommended HTTP interface for data access, querying, and manipulation', }, { type: 'link', - href: '/docs/developers/operations-api/', + href: '/reference/v4/operations-api/overview', label: 'Operations API', description: 'Configure, deploy, administer, and control your Harper instance', }, { type: 'link', - href: '/docs/developers/replication/', + href: '/reference/v4/replication/overview', label: 'Clustering & Replication', description: 'The process of connecting multiple Harper databases together to create a database mesh network that enables users to define data replication patterns.', From ec3723c189ccc57b553e21cac498adf1f9c9a2e3 Mon Sep 17 00:00:00 2001 From: Ethan Arrowood Date: Mon, 30 Mar 2026 15:31:22 -0600 Subject: [PATCH 4/4] update memory --- memory/MEMORY.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/memory/MEMORY.md b/memory/MEMORY.md index e4dd2858..8574252a 100644 --- a/memory/MEMORY.md +++ b/memory/MEMORY.md @@ -42,15 +42,15 @@ All Phase 1A–1D sections are complete and merged: ## Next Steps -**Part 3 (Link Resolution) — Complete** on `link-resolution` branch (10 commits). Merge to `major-version-reorg` via PR review, then continue: +**Part 3 (Link Resolution) — Complete** on `link-resolution` branch. Merged to `major-version-reorg`. -**Part 4 (Cross-Reference Updates)** — Full plan in [`memory/part4-plan.md`](part4-plan.md). +**Part 4 (Cross-Reference Updates) — Complete** on `cross-reference-updates` branch (2 commits). -- Branch: `cross-reference-updates` off `major-version-reorg` -- Scope: ~7 release note files + 1 learn guide with old `/docs/` links -- **First step**: verify URL prefix for new reference pages (check `docusaurus.config.js`) +- URL prefix confirmed: `/reference/v4/` (not `/docs/v4/`) +- Updated 8 release note files (4.1.0–4.6.0 + index.mdx) and 3 learn guides +- Left `/docs/administration/cloning` as-is in 4.2.0.md (no learn guide exists yet) -**Part 5 (Redirects)** — Configure redirects from old paths (`/docs/reference/`, `/docs/developers/`, etc.) to new paths in `docusaurus.config.js`. +**Part 5 (Redirects)** — Configure redirects from old paths (`/docs/reference/`, `/docs/developers/`, `/docs/deployments/`, `/docs/administration/`) to new `/reference/v4/` paths in `docusaurus.config.js`. ### Part 3 Key Decisions