You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/technical-details/release-notes/4.tucker/4.5.0.md
+38-4Lines changed: 38 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@
5
5
3/13/2025
6
6
7
7
### Blob Storage
8
-
4.5 introduces a new [Blob storage system](../../reference/blob.md), 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.
8
+
4.5 introduces a new [Blob storage system](../../reference/blob.md), 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.
9
9
10
10
### Password Hashing Upgrade
11
11
4.5 adds two new password hashing algorithms for better security (to replace md5):
@@ -21,11 +21,45 @@ The default port for replication has been changed from 9925 to 9933.
21
21
### Property Forwarding
22
22
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.
23
23
24
+
### Storage Reclamation
25
+
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:
26
+
* Evict older entries from caching tables
27
+
* Evict older audit log entries
28
+
* Remove older rotated logs files
29
+
These efforts will become progressively more aggressive as free space decreases.
30
+
31
+
### Expanded Sharding Functionality
32
+
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.
33
+
34
+
### Certificate Revocation
35
+
Certificates can now be revoked by configuring nodes with a list of revoked certificate serial numbers.
36
+
37
+
### Built-in `loadEnv` Component
38
+
There is a [new `loadEnv` component loader](../../../developers/components/built-in.md) that can be used to load environmental variables from a .env in a component.
39
+
24
40
### Cluster Status Information
25
41
The [`cluster_status` operation](../../../developers/operations-api/clustering.md) now includes new statistics for replication, including the timestamps of last received transactions, sent transactions, and committed transactions.
26
42
27
-
### URL id.property handling
28
-
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.
43
+
### Improved URL path parsing
44
+
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 `directURL` option/flag on resources allows for more direct URL path handling as well.
45
+
46
+
### `server.authenticateUser` API
47
+
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.
48
+
49
+
#### Improved Message Delivery
50
+
Performance of delivery of messages has been improved.
29
51
30
52
### HTTP/2
31
-
HarperDB now supports HTTP/2 for all API endpoints. This can be enabled with the `http2` option in the configuration file.
53
+
HarperDB now supports HTTP/2 for all API endpoints. This can be enabled with the `http2` option in the configuration file.
54
+
55
+
### `harperdb` symlink
56
+
Using `import from 'harperdb'` will more consistently work when directly running a component locally.
57
+
58
+
### Transaction Reuse
59
+
By default, transactions can now be reused after calling `transaction.commit()`.
60
+
61
+
### GraphQL configuration
62
+
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.
63
+
64
+
### Glob support for components
65
+
Glob file handling for specifying files used by components has been improved for better consistency.
0 commit comments