Skip to content

Commit 0d3ec27

Browse files
committed
Merge remote-tracking branch 'origin/release_4.5'
2 parents 812eaad + f34359b commit 0d3ec27

File tree

16 files changed

+101
-5
lines changed

16 files changed

+101
-5
lines changed

docs/SUMMARY.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
* [Users and Roles](developers/operations-api/users-and-roles.md)
2727
* [Clustering](developers/operations-api/clustering.md)
2828
* [Clustering with NATS](developers/operations-api/clustering-nats.md)
29-
* [Custom Functions](developers/operations-api/custom-functions.md)
3029
* [Components](developers/operations-api/components.md)
3130
* [Registration](developers/operations-api/registration.md)
3231
* [Jobs](developers/operations-api/jobs.md)
@@ -122,9 +121,18 @@
122121
* [Resource Class](technical-details/reference/resource.md)
123122
* [Transactions](technical-details/reference/transactions.md)
124123
* [Storage Algorithm](technical-details/reference/storage-algorithm.md)
124+
* [Blob](technical-details/reference/blob.md)
125125
* [Release Notes](technical-details/release-notes/README.md)
126126
* [Harper Tucker (Version 4)](technical-details/release-notes/4.tucker/README.md)
127127
* [4.6.0](technical-details/release-notes/4.tucker/4.6.0.md)
128+
* [4.5.10](technical-details/release-notes/4.tucker/4.5.10.md)
129+
* [4.5.9](technical-details/release-notes/4.tucker/4.5.9.md)
130+
* [4.5.8](technical-details/release-notes/4.tucker/4.5.8.md)
131+
* [4.5.7](technical-details/release-notes/4.tucker/4.5.7.md)
132+
* [4.5.6](technical-details/release-notes/4.tucker/4.5.6.md)
133+
* [4.5.5](technical-details/release-notes/4.tucker/4.5.5.md)
134+
* [4.5.4](technical-details/release-notes/4.tucker/4.5.4.md)
135+
* [4.5.3](technical-details/release-notes/4.tucker/4.5.3.md)
128136
* [4.5.2](technical-details/release-notes/4.tucker/4.5.2.md)
129137
* [4.5.1](technical-details/release-notes/4.tucker/4.5.1.md)
130138
* [4.5.0](technical-details/release-notes/4.tucker/4.5.0.md)

docs/developers/applications/defining-schemas.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ By default the table name is inherited from the type name (in this case the tabl
4141
* `@table(expiration: 3600)` - Sets an expiration time on entries in the table before they are automatically cleared (primarily useful for caching tables). This is specified in seconds.
4242
* `@table(audit: true)` - This enables the audit log for the table so that a history of record changes are recorded. This defaults to [configuration file's setting for `auditLog`](../../deployments/configuration.md#logging).
4343

44+
Database naming: the default "data" database is generally a good default choice for tables in applications that will not be reused in other applications (and don't need to worry about staying in a separate namespace). Application with many tables may wish to organize the tables into separate databases (but remember that transactions do not preserve atomicity across different databases, only across tables in the same database). For components that are designed for re-use, it is recommended that you use a database name that is specific to the component (e.g. "my-component-data") to avoid name collisions with other components.
45+
4446
#### `@export`
4547

4648
This indicates that the specified table should be exported as a resource that is accessible as an externally available endpoints, through REST, MQTT, or any of the external resource APIs.

docs/developers/operations-api/custom-functions.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Custom Functions
22

3+
*These operations are deprecated.*
4+
35
## Custom Functions Status
46

57
Returns the state of the Custom functions server. This includes whether it is enabled, upon which port it is listening, and where its root project directory is located on the host machine.

docs/technical-details/reference/blob.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
Blobs are binary large objects that can used to store any type of unstructured/binary data and is designed for large content. Blobs support streaming and feature better performance for content larger than about 20KB. Blobs are built off the native JavaScript `Blob` type, and HarperDB extends the native `Blob` type for integrated storage with the database. To use blobs, you would generally want to declare a field as a `Blob` type in your schema:
1+
# Blob
2+
3+
Blobs are binary large objects that can be used to store any type of unstructured/binary data and is designed for large content. Blobs support streaming and feature better performance for content larger than about 20KB. Blobs are built off the native JavaScript `Blob` type, and HarperDB extends the native `Blob` type for integrated storage with the database. To use blobs, you would generally want to declare a field as a `Blob` type in your schema:
24
```graphql
35
type MyTable {
46
id: Any! @primaryKey
@@ -91,4 +93,4 @@ if (blob.size === undefined) {
9193

9294
```
9395

94-
See the [configuration](../../deployments/configuration.md) documentation for more information on configuring where blob are stored.
96+
See the [configuration](../../deployments/configuration.md) documentation for more information on configuring where blob are stored.

docs/technical-details/reference/globals.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,4 +262,24 @@ This records the provided value as a metric into Harper's analytics. Harper effi
262262
This returns the user object with permissions/authorization information based on the provided username. This does not verify the password, so it is generally used for looking up users by username. If you want to verify a user by password, use [`server.authenticateUser`](globals.md#serverauthenticateuserusername-password-user).
263263

264264
### `server.authenticateUser(username, password): Promise<User>`
265-
This returns the user object with permissions/authorization information based on the provided username. The password will be verified before returning the user object (if the password is incorrect, an error will be thrown).
265+
This returns the user object with permissions/authorization information based on the provided username. The password will be verified before returning the user object (if the password is incorrect, an error will be thrown).
266+
267+
### `server.resources: Resources`
268+
This provides access to the map of all registered resources. This is the central registry in Harper for registering any resources to be exported for use by REST, MQTT, or other components. Components that want to register resources should use the `server.resources.set(name, resource)` method to add to this map. Exported resources can be found by passing in a path to `server.resources.getMatch(path)` which will find any resource that matches the path or beginning of the path.
269+
270+
#### `server.resources.set(name, resource, exportTypes?)`
271+
Register a resource with the server. For example:
272+
```
273+
class NewResource extends Resource {
274+
}
275+
server.resources.set('NewResource', Resource);
276+
// or limit usage:
277+
server.resources.set('NewResource', Resource, { rest: true, mqtt: false, 'my-protocol': true });
278+
```
279+
#### `server.resources.getMatch(path, exportType?)`
280+
Find a resource that matches the path. For example:
281+
```
282+
server.resources.getMatch('/NewResource/some-id');
283+
// or specify the export/protocol type, to allow it to be limited:
284+
server.resources.getMatch('/NewResource/some-id', 'my-protocol');
285+
```

docs/technical-details/reference/resource.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ This is called by the default `put` and `patch` handlers to update a record. `pu
178178
179179
### `delete(queryOrProperty?): Resource|void|Response`
180180
181-
This will delete this record or resource, and is called for HTTP DELETE requests. You can define or override this method to define how records should be deleted. The default `delete` method on tables (`super.put(record)`) deletes the record from the table as part of the current transaction.
181+
This will delete this record or resource, and is called for HTTP DELETE requests. You can define or override this method to define how records should be deleted. The default `delete` method on tables (`super.delete(record)`) deletes the record from the table as part of the current transaction.
182182
183183
### `publish(message): Resource|void|Response`
184184

docs/technical-details/release-notes/4.tucker/4.5.0.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,7 @@ Glob file handling for specifying files used by components has been improved for
6767
### Table.getRecordCount
6868
`Table.getRecordCount()` is now available to get the number of records in a table.
6969

70+
### Removal of record counts from REST API
71+
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.
72+
7073
Note that downgrading from 4.5 to 4.4 is *not* supported.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
### HarperDB 4.5.10
2+
5/20/2025
3+
4+
* Expose the `resources` map for being able to set and access custom resources
5+
* Fix for cleaning up blob files that are used when a database is deleted
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
### HarperDB 4.5.3
2+
4/3/2025
3+
4+
* Fix for immediately reloading updated certificates and private key files to ensure that certificates properly match the private key
5+
* Fix for analytics of storage size when tables are deleted
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
### HarperDB 4.5.4
2+
4/11/2025
3+
4+
* Fix for replication of (non-retained) published messages
5+
* Make cookie domain be configurable to allow for cookies shared across sub-hostnames
6+
* Fix for on-demand loading of shared blobs

0 commit comments

Comments
 (0)