Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion fabric/grafana-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
2 changes: 1 addition & 1 deletion fabric/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/).

---

Expand Down
16 changes: 8 additions & 8 deletions learn/developers/harper-applications-in-depth.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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.

Expand Down Expand Up @@ -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 <operation> <param>=<value>`, and return YAML by default. You can always pass `json=true` to see the result in JSON instead.

Expand All @@ -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:

Expand Down Expand Up @@ -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)
4 changes: 2 additions & 2 deletions learn/getting-started/create-your-first-application.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion learn/getting-started/install-and-connect-harper.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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
12 changes: 6 additions & 6 deletions memory/MEMORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
8 changes: 4 additions & 4 deletions release-notes/v4-tucker/4.1.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).

Expand Down
4 changes: 2 additions & 2 deletions release-notes/v4-tucker/4.1.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -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**
Expand Down
Loading
Loading