LogoLogo
Studio
4.6
4.6
  • Harper Docs
  • Getting Started
    • What is Harper
    • Install Harper
    • Harper Concepts
    • Create Your First Application
  • Developers
    • Applications
      • Caching
      • Defining Schemas
      • Defining Roles
      • Data Loader
      • Debugging Applications
      • Define Fastify Routes
      • Web Applications
      • Example Projects
    • Components
      • Managing
      • Reference
      • Built-In Components
    • REST
    • Operations API
      • Quick Start Examples
      • Databases and Tables
      • NoSQL Operations
      • Bulk Operations
      • Users and Roles
      • Clustering
        • Clustering with NATS
      • Components
      • Registration
      • Jobs
      • Logs
      • System Operations
      • Configuration
      • Certificate Management
      • Token Authentication
      • SQL Operations
      • Advanced JSON SQL Examples
    • Real-Time
    • Replication/Clustering
      • Sharding
      • Legacy NATS Clustering
        • Requirements and Definitions
        • Creating A Cluster User
        • Naming A Node
        • Enabling Clustering
        • Establishing Routes
        • Subscription Overview
        • Managing Subscriptions
        • Things Worth Knowing
        • Certificate Management
    • Security
      • JWT Authentication
      • Basic Authentication
      • mTLS Authentication
      • Configuration
      • Users & Roles
      • Certificate Management
    • SQL Guide
      • SQL Features Matrix
      • SQL Date Functions
      • SQL Reserved Word
      • SQL Functions
      • SQL JSON Search
      • SQL Geospatial Functions
    • Miscellaneous
      • Google Data Studio
      • SDKs
      • Query Optimization
  • Administration
    • Best Practices and Recommendations
    • Logging
      • Standard Logging
      • Audit Logging
      • Transaction Logging
    • Clone Node
    • Compact
    • Jobs
    • Harper Studio
      • Create an Account
      • Log In & Password Reset
      • Organizations
      • Instances
      • Query Instance Data
      • Manage Databases / Browse Data
      • Manage Clustering
      • Manage Instance Users
      • Manage Instance Roles
      • Manage Applications
      • Instance Metrics
      • Instance Configuration
      • Enable Mixed Content
  • Deployments
    • Configuration File
    • Harper CLI
    • Install Harper
      • On Linux
    • Upgrade a Harper Instance
    • Harper Cloud
      • IOPS Impact on Performance
      • Instance Size Hardware Specs
      • Alarms
      • Verizon 5G Wavelength
  • Technical Details
    • Reference
      • Analytics
      • Architecture
      • Content Types
      • Data Types
      • Dynamic Schema
      • GraphQL
      • Harper Headers
      • Harper Limits
      • Globals
      • Resource Class
      • Transactions
      • Storage Algorithm
      • Blob
    • Release Notes
      • Harper Tucker (Version 4)
        • 4.6.0
        • 4.5.10
        • 4.5.9
        • 4.5.8
        • 4.5.7
        • 4.5.6
        • 4.5.5
        • 4.5.4
        • 4.5.3
        • 4.5.2
        • 4.5.1
        • 4.5.0
        • 4.4.24
        • 4.4.23
        • 4.4.22
        • 4.4.21
        • 4.4.20
        • 4.4.19
        • 4.4.18
        • 4.4.17
        • 4.4.16
        • 4.4.15
        • 4.4.14
        • 4.4.13
        • 4.4.12
        • 4.4.11
        • 4.4.10
        • 4.4.9
        • 4.4.8
        • 4.4.7
        • 4.4.6
        • 4.4.5
        • 4.4.4
        • 4.4.3
        • 4.4.2
        • 4.4.1
        • 4.4.0
        • 4.3.38
        • 4.3.37
        • 4.3.36
        • 4.3.35
        • 4.3.34
        • 4.3.33
        • 4.3.32
        • 4.3.31
        • 4.3.30
        • 4.3.29
        • 4.3.28
        • 4.3.27
        • 4.3.26
        • 4.3.25
        • 4.3.24
        • 4.3.23
        • 4.3.22
        • 4.3.21
        • 4.3.20
        • 4.3.19
        • 4.3.18
        • 4.3.17
        • 4.3.16
        • 4.3.15
        • 4.3.14
        • 4.3.13
        • 4.3.12
        • 4.3.11
        • 4.3.10
        • 4.3.9
        • 4.3.8
        • 4.3.7
        • 4.3.6
        • 4.3.5
        • 4.3.4
        • 4.3.3
        • 4.3.2
        • 4.3.1
        • 4.3.0
        • 4.2.8
        • 4.2.7
        • 4.2.6
        • 4.2.5
        • 4.2.4
        • 4.2.3
        • 4.2.2
        • 4.2.1
        • 4.2.0
        • 4.1.2
        • 4.1.1
        • 4.1.0
        • 4.0.7
        • 4.0.6
        • 4.0.5
        • 4.0.4
        • 4.0.3
        • 4.0.2
        • 4.0.1
        • 4.0.0
        • Tucker
      • HarperDB Monkey (Version 3)
        • 3.3.0
        • 3.2.1
        • 3.2.0
        • 3.1.5
        • 3.1.4
        • 3.1.3
        • 3.1.2
        • 3.1.1
        • 3.1.0
        • 3.0.0
      • HarperDB Penny (Version 2)
        • 2.3.1
        • 2.3.0
        • 2.2.3
        • 2.2.2
        • 2.2.0
        • 2.1.1
      • HarperDB Alby (Version 1)
        • 1.3.1
        • 1.3.0
        • 1.2.0
        • 1.1.0
  • More Help
    • Support
    • Slack
    • Contact Us
Powered by GitBook
On this page
  • Blob Storage
  • Password Hashing Upgrade
  • Resource and Storage Analytics
  • Property Forwarding
  • Storage Reclamation
  • Expanded Sharding Functionality
  • Certificate Revocation
  • Built-in loadEnv Component
  • Cluster Status Information
  • Improved URL path parsing
  • server.authenticateUser API
  • HTTP/2
  • harperdb symlink
  • Transaction Reuse
  • GraphQL configuration
  • Glob support for components
  • Table.getRecordCount
  • Removal of record counts from REST API
  1. Technical Details
  2. Release Notes
  3. Harper Tucker (Version 4)

4.5.0

Previous4.5.1Next4.4.24

Last updated 2 days ago

HarperDB 4.5.0

3/13/2025

Blob Storage

4.5 introduces a new , 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 Blobs (when dictated by the field type), making it feasible to use blobs for large string data, including with MQTT messaging.

Password Hashing Upgrade

4.5 adds two new password hashing algorithms for better security (to replace md5):sha256: This is a solid general purpose of password hashing, with good security properties and excellent performance. This is the default algorithm in 4.5.argon2id: This provides the highest level of security, and is the recommended algorithm that do not require frequent password verifications. However, it is more CPU intensive, and may not be suitable for environments with a high frequency of password verifications.

Resource and Storage Analytics

4.5 includes numerous new analytics for resources and storage, including page faults, context switches, free space, disk usage, and other metrics.

Default Replication Port

The default port for replication has been changed from 9925 to 9933.

Property Forwarding

Accessing record properties from resource instances should be accessible through standard property access syntax, regardless of whether the property was declared in a schema. Previously only properties declared in a schema were accessible through standard property access syntax. This change allows for more consistent and intuitive access to record properties, regardless of how they were defined. It is still recommended to declare properties in a schema for better performance and documentation.

Storage Reclamation

Harper now includes functionality for automatically trying to clean up and evict non-essential data when storage is running low. When free space drops below 40% (configurable), Harper will start to:

  • Evict older entries from caching tables

  • Evict older audit log entries

  • Remove older rotated logs files These efforts will become progressively more aggressive as free space decreases.

Expanded Sharding Functionality

When sharding is being used, Harper can now honor write requests with residency information that will not be written to the local node's table. Harper also now allows nodes to be declaratively configured as part of a shard.

Certificate Revocation

Certificates can now be revoked by configuring nodes with a list of revoked certificate serial numbers.

Built-in loadEnv Component

Cluster Status Information

Improved URL path parsing

server.authenticateUser API

In addition to the server.getUser API that allows for retrieval of users by username, the server.authenticateUser API is now available which will always verify the user by the provided password.

Improved Message Delivery

Performance of delivery of messages has been improved.

HTTP/2

HarperDB now supports HTTP/2 for all API endpoints. This can be enabled with the http2 option in the configuration file.

harperdb symlink

Using import from 'harperdb' will more consistently work when directly running a component locally.

Transaction Reuse

By default, transactions can now be reused after calling transaction.commit().

GraphQL configuration

The GraphQL query endpoint can be configured to listen on different ports. GraphQL query endpoing is now also disabled by default, to avoid any conflicts.

Glob support for components

Glob file handling for specifying files used by components has been improved for better consistency.

Table.getRecordCount

Table.getRecordCount() is now available to get the number of records in a table.

Removal of record counts from REST API

Previously the root path for a resource in the REST API would return a record count. However, this is a significant performance hazard and was never documented to exist, so this has been removed to ensure better performance and reliability.

Note that downgrading from 4.5 to 4.4 is not supported.

There is a that can be used to load environmental variables from a .env in a component.

The now includes new statistics for replication, including the timestamps of last received transactions, sent transactions, and committed transactions.

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 on resources that allows for more direct URL path handling as well.

Blob storage system
new loadEnv component loader
cluster_status operation
directURLMapping option/flag