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/administration/administration.md
+8-7Lines changed: 8 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,9 +6,9 @@ Harper is designed for minimal administrative effort, and with managed services
6
6
7
7
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:
8
8
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).
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.
Copy file name to clipboardExpand all lines: docs/administration/cloning.md
+32-29Lines changed: 32 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,9 @@
1
1
# Clone Node
2
2
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,
5
5
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.
7
7
8
8
Clone node is triggered when Harper is installed or started with certain environment or command line (CLI) variables set (see below).
9
9
@@ -14,34 +14,36 @@ To start clone run `harperdb` in the CLI with either of the following variables
14
14
15
15
#### Environment variables
16
16
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.
*`--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.
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
41
43
still present and `cloned` is true, Harper will just start as normal.
42
44
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
45
47
variables or cloning overtop of an existing `harperdb-config.yaml` file.
46
48
47
49
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
51
53
To set any specific (optional) clone config, including the exclusion of any database and/or replication, there is a file
52
54
called `clone-node-config.yaml` that can be used.
53
55
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.
55
57
If the directory does not exist, create one and add the file to it).
56
58
57
-
The config available in `clone-node-config.yaml` is:
59
+
The config available in `clone-node-config.yaml` is:
58
60
59
61
```yaml
60
62
databaseConfig:
@@ -68,27 +70,27 @@ componentConfig:
68
70
- name: null
69
71
```
70
72
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,
72
74
unless it already exists on the clone._
73
75
74
76
`databaseConfig` - Set any databases or tables that you wish to exclude from cloning.
75
77
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,
77
79
it will only clone the component reference that exists in the leader harperdb-config file.
78
80
79
81
### Cloning configuration
80
82
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`,
83
85
any authentication certificate/key paths.
84
86
85
87
### Cloning system database
86
88
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
88
90
tables from this database. It will also set up replication on this table, which means that any existing and future user and roles
89
91
that are added will be replicated throughout the cluster.
90
92
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
92
94
the leader.
93
95
94
96
### Replication
@@ -103,20 +105,21 @@ If cloning with replication, the leader's JWT private and public keys will be cl
103
105
104
106
### Cloning overtop of an existing Harper instance
105
107
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.
108
110
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
111
113
when clone is run it will append the missing config to the file and install Harper with the desired config.
112
114
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
115
117
leader and the clone.
116
118
117
119
### Cloning steps
118
120
119
121
Clone node will execute the following steps when ran:
122
+
120
123
1. Look for an existing Harper install. It does this by using the default (or user provided) `ROOTPATH`.
121
124
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.
122
125
3. Clone harperdb-config.yaml values that don't already exist (excluding values unique to the leader node).
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!
3
4
4
5
[Sign up for free!](https://studio.harperdb.io/sign-up)
5
6
6
7
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).
7
8
8
9
---
10
+
9
11
## How does Studio Work?
12
+
10
13
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.
11
14
12
15
## 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.
Start at the [Harper Studio sign up page](https://studio.harperdb.io/sign-up).
3
4
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
17
10
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._
19
12
13
+
- Coupon Code (optional)
20
14
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.
21
22
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.
Copy file name to clipboardExpand all lines: docs/administration/harper-studio/enable-mixed-content.md
+1-3Lines changed: 1 addition & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,4 @@
2
2
3
3
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.
4
4
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