Skip to content

Commit 245bc11

Browse files
format
1 parent 5eca53a commit 245bc11

File tree

235 files changed

+7729
-7348
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

235 files changed

+7729
-7348
lines changed

docs/SUMMARY.md

Lines changed: 243 additions & 243 deletions
Large diffs are not rendered by default.

docs/administration/administration.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ Harper is designed for minimal administrative effort, and with managed services
66

77
As a distributed database, data protection and recovery can benefit from different data protection strategies than a traditional single-server database. But multiple aspects of data protection and recovery should be considered:
88

9-
* Availability: As a distributed database Harper is intrinsically built for high-availability and a cluster will continue to run even with complete server(s) failure. This is the first and primary defense for protecting against any downtime or data loss. Harper provides fast horizontal scaling functionality with node cloning, which facilitates ease of establishing high availability clusters.
10-
* [Audit log](logging/audit-logging.md): Harper defaults to tracking data changes so malicious data changes can be found, attributed, and reverted. This provides security-level defense against data loss, allowing for fine-grained isolation and reversion of individual data without the large-scale reversion/loss of data associated with point-in-time recovery approaches.
11-
* Snapshots: When used as a source-of-truth database for crucial data, we recommend using snapshot tools to regularly snapshot databases as a final backup/defense against data loss (this should only be used as a last resort in recovery). Harper has a [`get_backup`](../developers/operations-api/databases-and-tables.md#get-backup) operation, which provides direct support for making and retrieving database snapshots. An HTTP request can be used to get a snapshot. Alternatively, volume snapshot tools can be used to snapshot data at the OS/VM level. Harper can also provide scripts for replaying transaction logs from snapshots to facilitate point-in-time recovery when necessary (often customization may be preferred in certain recovery situations to minimize data loss).
9+
- Availability: As a distributed database Harper is intrinsically built for high-availability and a cluster will continue to run even with complete server(s) failure. This is the first and primary defense for protecting against any downtime or data loss. Harper provides fast horizontal scaling functionality with node cloning, which facilitates ease of establishing high availability clusters.
10+
- [Audit log](logging/audit-logging.md): Harper defaults to tracking data changes so malicious data changes can be found, attributed, and reverted. This provides security-level defense against data loss, allowing for fine-grained isolation and reversion of individual data without the large-scale reversion/loss of data associated with point-in-time recovery approaches.
11+
- Snapshots: When used as a source-of-truth database for crucial data, we recommend using snapshot tools to regularly snapshot databases as a final backup/defense against data loss (this should only be used as a last resort in recovery). Harper has a [`get_backup`](../developers/operations-api/databases-and-tables.md#get-backup) operation, which provides direct support for making and retrieving database snapshots. An HTTP request can be used to get a snapshot. Alternatively, volume snapshot tools can be used to snapshot data at the OS/VM level. Harper can also provide scripts for replaying transaction logs from snapshots to facilitate point-in-time recovery when necessary (often customization may be preferred in certain recovery situations to minimize data loss).
1212

1313
### Horizontal Scaling with Node Cloning
1414

@@ -17,10 +17,11 @@ Harper provides rapid horizontal scaling capabilities through [node cloning func
1717
### Monitoring
1818

1919
Harper provides robust capabilities for analytics and observability to facilitate effective and informative monitoring:
20-
* Analytics provides statistics on usage, request counts, load, memory usage with historical tracking. The analytics data can be [accessed through querying](../technical-details/reference/analytics.md).
21-
* A large variety of real-time statistics about load, system information, database metrics, thread usage can be retrieved through the [`system_information` API](../developers/operations-api/utilities.md).
22-
* Information about the current cluster configuration and status can be found in the [cluster APIs](../developers/operations-api/clustering.md).
23-
* Analytics and system information can easily be exported to Prometheus with our [Prometheus exporter component](https://github.com/HarperDB-Add-Ons/prometheus_exporter), making it easy visualize and monitor Harper with Graphana.
20+
21+
- Analytics provides statistics on usage, request counts, load, memory usage with historical tracking. The analytics data can be [accessed through querying](../technical-details/reference/analytics.md).
22+
- A large variety of real-time statistics about load, system information, database metrics, thread usage can be retrieved through the [`system_information` API](../developers/operations-api/utilities.md).
23+
- Information about the current cluster configuration and status can be found in the [cluster APIs](../developers/operations-api/clustering.md).
24+
- Analytics and system information can easily be exported to Prometheus with our [Prometheus exporter component](https://github.com/HarperDB-Add-Ons/prometheus_exporter), making it easy visualize and monitor Harper with Graphana.
2425

2526
### Replication Transaction Logging
2627

docs/administration/cloning.md

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Clone Node
22

3-
Clone node is a configurable node script that when pointed to another instance of Harper will create a clone of that
4-
instance's config, databases and setup full replication. If it is run in a location where there is no existing Harper install,
3+
Clone node is a configurable node script that when pointed to another instance of Harper will create a clone of that
4+
instance's config, databases and setup full replication. If it is run in a location where there is no existing Harper install,
55
it will, along with cloning, install Harper. If it is run in a location where there is another Harper instance, it will
6-
only clone config, databases and replication that do not already exist.
6+
only clone config, databases and replication that do not already exist.
77

88
Clone node is triggered when Harper is installed or started with certain environment or command line (CLI) variables set (see below).
99

@@ -14,34 +14,36 @@ To start clone run `harperdb` in the CLI with either of the following variables
1414

1515
#### Environment variables
1616

17-
* `HDB_LEADER_URL` - The URL of the leader node's operation API (usually port 9925).
18-
* `HDB_LEADER_USERNAME` - The leader node admin username.
19-
* `HDB_LEADER_PASSWORD` - The leader node admin password.
20-
* `REPLICATION_HOSTNAME` - _(optional)_ The clones replication hostname. This value will be added to `replication.hostname` on the clone node. If this value is not set, replication will not be set up between the leader and clone.
17+
- `HDB_LEADER_URL` - The URL of the leader node's operation API (usually port 9925).
18+
- `HDB_LEADER_USERNAME` - The leader node admin username.
19+
- `HDB_LEADER_PASSWORD` - The leader node admin password.
20+
- `REPLICATION_HOSTNAME` - _(optional)_ The clones replication hostname. This value will be added to `replication.hostname` on the clone node. If this value is not set, replication will not be set up between the leader and clone.
2121

2222
For example:
23+
2324
```
2425
HDB_LEADER_URL=https://node-1.my-domain.com:9925 REPLICATION_HOSTNAME=node-1.my-domain.com HDB_LEADER_USERNAME=... HDB_LEADER_PASSWORD=... harperdb
2526
```
2627

2728
#### Command line variables
2829

29-
* `--HDB_LEADER_URL` - The URL of the leader node's operation API (usually port 9925).
30-
* `--HDB_LEADER_USERNAME` - The leader node admin username.
31-
* `--HDB_LEADER_PASSWORD` - The leader node admin password.
32-
* `--REPLICATION_HOSTNAME` - _(optional)_ The clones clustering host. This value will be added to `replication.hostname` on the clone node. If this value is not set, replication will not be set up between the leader and clone.
30+
- `--HDB_LEADER_URL` - The URL of the leader node's operation API (usually port 9925).
31+
- `--HDB_LEADER_USERNAME` - The leader node admin username.
32+
- `--HDB_LEADER_PASSWORD` - The leader node admin password.
33+
- `--REPLICATION_HOSTNAME` - _(optional)_ The clones clustering host. This value will be added to `replication.hostname` on the clone node. If this value is not set, replication will not be set up between the leader and clone.
3334

3435
For example:
36+
3537
```
3638
harperdb --HDB_LEADER_URL https://node-1.my-domain.com:9925 --REPLICATION_HOSTNAME node-1.my-domain.com --HDB_LEADER_USERNAME ... --HDB_LEADER_PASSWORD ...
3739
```
3840

39-
Each time clone is run it will set a value `cloned: true` in `harperdb-config.yaml`. This value will prevent clone from
40-
running again. If you want to run clone again set this value to `false`. If Harper is started with the clone variables
41+
Each time clone is run it will set a value `cloned: true` in `harperdb-config.yaml`. This value will prevent clone from
42+
running again. If you want to run clone again set this value to `false`. If Harper is started with the clone variables
4143
still present and `cloned` is true, Harper will just start as normal.
4244

43-
Clone node does not require any additional configuration apart from the variables referenced above.
44-
However, if you wish to set any configuration during clone this can be done by passing the config as environment/CLI
45+
Clone node does not require any additional configuration apart from the variables referenced above.
46+
However, if you wish to set any configuration during clone this can be done by passing the config as environment/CLI
4547
variables or cloning overtop of an existing `harperdb-config.yaml` file.
4648

4749
More can be found in the Harper config documentation [here](../deployments/configuration.md).
@@ -51,10 +53,10 @@ More can be found in the Harper config documentation [here](../deployments/confi
5153
To set any specific (optional) clone config, including the exclusion of any database and/or replication, there is a file
5254
called `clone-node-config.yaml` that can be used.
5355

54-
The file must be located in the `ROOTPATH` directory of your clone (the `hdb` directory where you clone will be installed.
56+
The file must be located in the `ROOTPATH` directory of your clone (the `hdb` directory where you clone will be installed.
5557
If the directory does not exist, create one and add the file to it).
5658

57-
The config available in `clone-node-config.yaml` is:
59+
The config available in `clone-node-config.yaml` is:
5860

5961
```yaml
6062
databaseConfig:
@@ -68,27 +70,27 @@ componentConfig:
6870
- name: null
6971
```
7072
71-
_Note: only include the configuration that you are using. If no clone config file is provided nothing will be excluded,
73+
_Note: only include the configuration that you are using. If no clone config file is provided nothing will be excluded,
7274
unless it already exists on the clone._
7375
7476
`databaseConfig` - Set any databases or tables that you wish to exclude from cloning.
7577

76-
`componentConfig` - Set any components that you do not want cloned. Clone node will not clone the component code,
78+
`componentConfig` - Set any components that you do not want cloned. Clone node will not clone the component code,
7779
it will only clone the component reference that exists in the leader harperdb-config file.
7880

7981
### Cloning configuration
8082

81-
Clone node will not clone any configuration that is classed as unique to the leader node. This includes `replication.hostname`, `replication.url`,`clustering.nodeName`,
82-
`rootPath` and any other path related values, for example `storage.path`, `logging.root`, `componentsRoot`,
83+
Clone node will not clone any configuration that is classed as unique to the leader node. This includes `replication.hostname`, `replication.url`,`clustering.nodeName`,
84+
`rootPath` and any other path related values, for example `storage.path`, `logging.root`, `componentsRoot`,
8385
any authentication certificate/key paths.
8486

8587
### Cloning system database
8688

87-
Harper uses a database called `system` to store operational information. Clone node will only clone the user and role
89+
Harper uses a database called `system` to store operational information. Clone node will only clone the user and role
8890
tables from this database. It will also set up replication on this table, which means that any existing and future user and roles
8991
that are added will be replicated throughout the cluster.
9092

91-
Cloning the user and role tables means that once clone node is complete, the clone will share the same login credentials with
93+
Cloning the user and role tables means that once clone node is complete, the clone will share the same login credentials with
9294
the leader.
9395

9496
### Replication
@@ -103,20 +105,21 @@ If cloning with replication, the leader's JWT private and public keys will be cl
103105

104106
### Cloning overtop of an existing Harper instance
105107

106-
Clone node will not overwrite any existing config, database or replication. It will write/clone any config database or replication
107-
that does not exist on the node it is running on.
108+
Clone node will not overwrite any existing config, database or replication. It will write/clone any config database or replication
109+
that does not exist on the node it is running on.
108110

109-
An example of how this can be useful is if you want to set Harper config before the clone is created. To do this you
110-
would create a harperdb-config.yaml file in your local `hdb` root directory with the config you wish to set. Then
111+
An example of how this can be useful is if you want to set Harper config before the clone is created. To do this you
112+
would create a harperdb-config.yaml file in your local `hdb` root directory with the config you wish to set. Then
111113
when clone is run it will append the missing config to the file and install Harper with the desired config.
112114

113-
Another useful example could be retroactively adding another database to an existing instance. Running clone on
114-
an existing instance could create a full clone of another database and set up replication between the database on the
115+
Another useful example could be retroactively adding another database to an existing instance. Running clone on
116+
an existing instance could create a full clone of another database and set up replication between the database on the
115117
leader and the clone.
116118

117119
### Cloning steps
118120

119121
Clone node will execute the following steps when ran:
122+
120123
1. Look for an existing Harper install. It does this by using the default (or user provided) `ROOTPATH`.
121124
2. If an existing instance is found it will check for a `harperdb-config.yaml` file and search for the `cloned` value. If the value exists and is `true` clone will skip the clone logic and start Harper.
122125
3. Clone harperdb-config.yaml values that don't already exist (excluding values unique to the leader node).
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
# Harper Studio
2+
23
Harper Studio is the web-based GUI for Harper. Studio enables you to administer, navigate, and monitor all of your Harper instances in a simple, user-friendly interface without any knowledge of the underlying Harper API. It’s free to sign up, get started today!
34

45
[Sign up for free!](https://studio.harperdb.io/sign-up)
56

67
Harper now includes a simplified local Studio that is packaged with all Harper installations and served directly from the instance. It can be enabled in the [configuration file](../../deployments/configuration.md#localstudio). This section is dedicated to the hosted Studio accessed at [studio.harperdb.io](https://studio.harperdb.io).
78

89
---
10+
911
## How does Studio Work?
12+
1013
While Harper Studio is web based and hosted by us, all database interactions are performed on the Harper instance the studio is connected to. The Harper Studio loads in your browser, at which point you login to your Harper instances. Credentials are stored in your browser cache and are not transmitted back to Harper. All database interactions are made via the Harper Operations API directly from your browser to your instance.
1114

1215
## What type of instances can I manage?
13-
Harper Studio enables users to manage both Harper Cloud instances and privately hosted instances all from a single UI. All Harper instances feature identical behavior whether they are hosted by us or by you.
16+
17+
Harper Studio enables users to manage both Harper Cloud instances and privately hosted instances all from a single UI. All Harper instances feature identical behavior whether they are hosted by us or by you.
Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
# Create a Studio Account
2+
23
Start at the [Harper Studio sign up page](https://studio.harperdb.io/sign-up).
34

4-
1) Provide the following information:
5-
* First Name
6-
* Last Name
7-
* Email Address
8-
* Subdomain
9-
10-
*Part of the URL that will be used to identify your Harper Cloud Instances. For example, with subdomain “demo” and instance name “c1” the instance URL would be: https://c1-demo.harperdbcloud.com.*
11-
* Coupon Code (optional)
12-
2) Review the Privacy Policy and Terms of Service.
13-
3) Click the sign up for free button.
14-
4) You will be taken to a new screen to add an account password. Enter your password.
15-
*Passwords must be a minimum of 8 characters with at least 1 lower case character, 1 upper case character, 1 number, and 1 special character.*
16-
5) Click the add account password button.
5+
1. Provide the following information:
6+
- First Name
7+
- Last Name
8+
- Email Address
9+
- Subdomain
1710

18-
You will receive a Studio welcome email confirming your registration.
11+
_Part of the URL that will be used to identify your Harper Cloud Instances. For example, with subdomain “demo” and instance name “c1” the instance URL would be: https://c1-demo.harperdbcloud.com._
1912

13+
- Coupon Code (optional)
2014

15+
2. Review the Privacy Policy and Terms of Service.
16+
3. Click the sign up for free button.
17+
4. You will be taken to a new screen to add an account password. Enter your password.
18+
_Passwords must be a minimum of 8 characters with at least 1 lower case character, 1 upper case character, 1 number, and 1 special character._
19+
5. Click the add account password button.
20+
21+
You will receive a Studio welcome email confirming your registration.
2122

22-
Note: Your email address will be used as your username and cannot be changed.
23+
Note: Your email address will be used as your username and cannot be changed.

docs/administration/harper-studio/enable-mixed-content.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,4 @@
22

33
Enabling mixed content is required in cases where you would like to connect the Harper Studio to Harper Instances via HTTP. This should not be used for production systems, but may be convenient for development and testing purposes. Doing so will allow your browser to reach HTTP traffic, which is considered insecure, through an HTTPS site like the Studio.
44

5-
6-
7-
A comprehensive guide is provided by Adobe [here](https://experienceleague.adobe.com/docs/target/using/experiences/vec/troubleshoot-composer/mixed-content.html).
5+
A comprehensive guide is provided by Adobe [here](https://experienceleague.adobe.com/docs/target/using/experiences/vec/troubleshoot-composer/mixed-content.html).

0 commit comments

Comments
 (0)