Skip to content

Commit 90e5971

Browse files
authored
Merge pull request #288 from HarperDB/feature/delete-technical-details-heading
Move Reference up to top-level section
2 parents 5b1efd7 + 1f05c68 commit 90e5971

File tree

152 files changed

+232
-232
lines changed

Some content is hidden

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

152 files changed

+232
-232
lines changed

docs/administration/administration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Harper provides rapid horizontal scaling capabilities through [node cloning func
2222

2323
Harper provides robust capabilities for analytics and observability to facilitate effective and informative monitoring:
2424

25-
- 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).
25+
- Analytics provides statistics on usage, request counts, load, memory usage with historical tracking. The analytics data can be [accessed through querying](../reference/analytics).
2626
- 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/system-operations).
2727
- Information about the current cluster configuration and status can be found in the [cluster APIs](../developers/operations-api/clustering).
2828
- 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.

docs/deployments/configuration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -715,7 +715,7 @@ Harper's logger supports defining multiple logging configurations for different
715715

716716
`logging.external`
717717

718-
The `logging.external` section can be used to define logging for all external components that use the [`logger` API](../technical-details/reference/globals). For example:
718+
The `logging.external` section can be used to define logging for all external components that use the [`logger` API](../reference/globals). For example:
719719

720720
```yaml
721721
logging:
@@ -1233,7 +1233,7 @@ The name of the component. This will be used to name the folder where the compon
12331233

12341234
`package` - _Type_: string
12351235

1236-
A reference to your [component](../technical-details/reference/components/applications#adding-components-to-root) package. This could be a remote git repo, a local folder/file or an NPM package. Harper will add this package to a package.json file and call `npm install` on it, so any reference that works with that paradigm will work here.
1236+
A reference to your [component](../reference/components/applications#adding-components-to-root) package. This could be a remote git repo, a local folder/file or an NPM package. Harper will add this package to a package.json file and call `npm install` on it, so any reference that works with that paradigm will work here.
12371237

12381238
Read more about npm install [here](https://docs.npmjs.com/cli/v8/commands/npm-install)
12391239

docs/developers/applications/data-loader.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ dataLoader:
1515
files: 'data/*.json'
1616
```
1717
18-
The Data Loader is an [Extension](../../technical-details/reference/components#extensions) and supports the standard `files` configuration option.
18+
The Data Loader is an [Extension](../../reference/components#extensions) and supports the standard `files` configuration option.
1919

2020
## Data File Format
2121

@@ -176,6 +176,6 @@ rest: true
176176

177177
## Related Documentation
178178

179-
- [Built-In Components](../../technical-details/reference/components/built-in-extensions)
180-
- [Extensions](../../technical-details/reference/components/extensions)
179+
- [Built-In Components](../../reference/components/built-in-extensions)
180+
- [Extensions](../../reference/components/extensions)
181181
- [Bulk Operations](../operations-api/bulk-operations) - For loading data via the Operations API

docs/developers/applications/defining-schemas.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ type Brand @table @export {
7878
}
7979
```
8080

81-
Once this is defined we can use the `brand` attribute as a [property in our product instances](../../technical-details/reference/resources/) and allow for querying by `brand` and selecting brand attributes as returned properties in [query results](../rest).
81+
Once this is defined we can use the `brand` attribute as a [property in our product instances](../../reference/resources/) and allow for querying by `brand` and selecting brand attributes as returned properties in [query results](../rest).
8282

8383
Again, the foreign key may be a multi-valued array (array of keys referencing the target table records). For example, if we had a list of features that references a Feature table:
8484

@@ -241,7 +241,7 @@ The `@sealed` directive specifies that no additional properties should be allowe
241241

242242
### Defined vs Dynamic Schemas
243243

244-
If you do not define a schema for a table and create a table through the operations API (without specifying attributes) or studio, such a table will not have a defined schema and will follow the behavior of a ["dynamic-schema" table](../../technical-details/reference/dynamic-schema). It is generally best-practice to define schemas for your tables to ensure predictable, consistent structures with data integrity.
244+
If you do not define a schema for a table and create a table through the operations API (without specifying attributes) or studio, such a table will not have a defined schema and will follow the behavior of a ["dynamic-schema" table](../../reference/dynamic-schema). It is generally best-practice to define schemas for your tables to ensure predictable, consistent structures with data integrity.
245245

246246
### Field Types
247247

@@ -257,7 +257,7 @@ Harper supports the following field types in addition to user defined (object) t
257257
- `Any`: Any primitive, object, or array is allowed
258258
- `Date`: A Date object
259259
- `Bytes`: Binary data as a Buffer or Uint8Array
260-
- `Blob`: Binary data as a [Blob](../../technical-details/reference/blob), designed for large blocks of data that can be streamed. It is recommend that you use this for binary data that will typically be larger than 20KB.
260+
- `Blob`: Binary data as a [Blob](../../reference/blob), designed for large blocks of data that can be streamed. It is recommend that you use this for binary data that will typically be larger than 20KB.
261261

262262
#### Renaming Tables
263263

docs/developers/applications/index.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,21 +67,21 @@ flowchart TD
6767
Rest --> Networking
6868
```
6969

70-
> As of Harper v4.6, a new, **experimental** component system has been introduced called **plugins**. Plugins are a **new iteration of the existing extension system**. They are simultaneously a simplification and an extensibility upgrade. Instead of defining multiple methods (`start` vs `startOnMainThread`, `handleFile` vs `setupFile`, `handleDirectory` vs `setupDirectory`), plugins only have to define a single `handleApplication` method. Plugins are **experimental**, and complete documentation is available on the [plugin API](../../technical-details/reference/components/plugins) page. In time we plan to deprecate the concept of extensions in favor of plugins, but for now, both are supported.
70+
> As of Harper v4.6, a new, **experimental** component system has been introduced called **plugins**. Plugins are a **new iteration of the existing extension system**. They are simultaneously a simplification and an extensibility upgrade. Instead of defining multiple methods (`start` vs `startOnMainThread`, `handleFile` vs `setupFile`, `handleDirectory` vs `setupDirectory`), plugins only have to define a single `handleApplication` method. Plugins are **experimental**, and complete documentation is available on the [plugin API](../../reference/components/plugins) page. In time we plan to deprecate the concept of extensions in favor of plugins, but for now, both are supported.
7171
7272
Beyond applications and extensions, components are further classified as built-in or custom. **Built-in** components are included with Harper by default and can be directly referenced by their name. The `graphqlSchema`, `rest`, and `jsResource` extensions used in the previous application example are all examples of built-in extensions. **Custom** components must use external references, generally npm or GitHub packages, and are often included as dependencies within the `package.json` of the component.
7373

7474
> Harper maintains a number of custom components that are available on `npm` and `GitHub`, such as the [`@harperdb/nextjs`](https://github.com/HarperDB/nextjs) extension or the [`@harperdb/status-check`](https://github.com/HarperDB/status-check) application.
7575
76-
Harper does not currently include any built-in applications, making "custom applications" a bit redundant. Generally, we just say "application". However, there is a multitude of both built-in and custom extensions, and so the documentation refers to them as such. A complete list of built-in extensions is available in the [Built-In Extensions](../../technical-details/reference/components/built-in-extensions) documentation page, and the list of custom extensions and applications is available below.
76+
Harper does not currently include any built-in applications, making "custom applications" a bit redundant. Generally, we just say "application". However, there is a multitude of both built-in and custom extensions, and so the documentation refers to them as such. A complete list of built-in extensions is available in the [Built-In Extensions](../../reference/components/built-in-extensions) documentation page, and the list of custom extensions and applications is available below.
7777

7878
This guide is going to walk you through building a basic Harper application using a set of built-in extensions.
7979

80-
> The Technical Details section of the documentation contains a [complete reference for all aspects of components](../../technical-details/reference/components), applications, extensions, and more.
80+
> The Reference -> Components section of the documentation contains a [complete reference for all aspects of components](../../reference/components), applications, extensions, and more.
8181
8282
## Custom Functionality with JavaScript
8383

84-
[The getting started guide](../../getting-started/first-harper-app) covers how to build an application entirely through schema configuration. However, if your application requires more custom functionality, you will probably want to employ your own JavaScript modules to implement more specific features and interactions. This gives you tremendous flexibility and control over how data is accessed and modified in Harper. Let's take a look at how we can use JavaScript to extend and define "resources" for custom functionality. Let's add a property to the dog records when they are returned, that includes their age in human years. In Harper, data is accessed through our [Resource API](../../technical-details/reference/resources/), a standard interface to access data sources, tables, and make them available to endpoints. Database tables are `Resource` classes, and so extending the function of a table is as simple as extending their class.
84+
[The getting started guide](../../getting-started/first-harper-app) covers how to build an application entirely through schema configuration. However, if your application requires more custom functionality, you will probably want to employ your own JavaScript modules to implement more specific features and interactions. This gives you tremendous flexibility and control over how data is accessed and modified in Harper. Let's take a look at how we can use JavaScript to extend and define "resources" for custom functionality. Let's add a property to the dog records when they are returned, that includes their age in human years. In Harper, data is accessed through our [Resource API](../../reference/resources/), a standard interface to access data sources, tables, and make them available to endpoints. Database tables are `Resource` classes, and so extending the function of a table is as simple as extending their class.
8585

8686
To define custom (JavaScript) resources as endpoints, we need to create a `resources.js` module (this goes in the root of your application folder). And then endpoints can be defined with Resource classes that `export`ed. This can be done in addition to, or in lieu of the `@export`ed types in the schema.graphql. If you are exporting and extending a table you defined in the schema make sure you remove the `@export` from the schema so that don't export the original table or resource to the same endpoint/path you are exporting with a class. Resource classes have methods that correspond to standard HTTP/REST methods, like `get`, `post`, `patch`, and `put` to implement specific handling for any of these methods (for tables they all have default implementations). To do this, we get the `Dog` class from the defined tables, extend it, and export it:
8787

@@ -211,11 +211,11 @@ Breed.sourcedFrom(BreedSource, { expiration: 3600 });
211211
212212
The [caching documentation](caching) provides much more information on how to use Harper's powerful caching capabilities and set up data sources.
213213
214-
Harper provides a powerful JavaScript API with significant capabilities that go well beyond a "getting started" guide. See our documentation for more information on using the [`globals`](../../technical-details/reference/globals) and the [Resource interface](../../technical-details/reference/resource).
214+
Harper provides a powerful JavaScript API with significant capabilities that go well beyond a "getting started" guide. See our documentation for more information on using the [`globals`](../../reference/globals) and the [Resource interface](../../reference/resource).
215215
216216
## Configuring Applications/Components
217217
218-
For complete information of configuring applications, refer to the [Component Configuration](../../technical-details/reference/components) reference page.
218+
For complete information of configuring applications, refer to the [Component Configuration](../../reference/components) reference page.
219219
220220
## Define Fastify Routes
221221

docs/getting-started/first-harper-app.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ http://localhost:9926/Dog/?breed=Husky&name=Balto&select(id,name,breed)
163163
164164
Congratulations, you now have created a secure database application backend with a table, a well-defined structure, access controls, and a functional REST endpoint with query capabilities! See the [REST documentation for more information on HTTP access](../developers/rest) and see the [Schema reference](../developers/applications/defining-schemas) for more options for defining schemas.
165165
166-
> Additionally, you may now use GraphQL (over HTTP) to create queries. See the documentation for that new feature [here](../technical-details/reference/graphql).
166+
> Additionally, you may now use GraphQL (over HTTP) to create queries. See the documentation for that new feature [here](../reference/graphql).
167167
168168
## Key Takeaway
169169

docs/getting-started/harper-concepts.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ As you begin your journey with Harper, there are a few concepts and definitions
88

99
## Components
1010

11-
Harper components are a core Harper concept defined as flexible JavaScript based extensions of the highly extensible core Harper platform. They are executed by Harper directly and have complete access to the Harper [Global APIs](../technical-details/reference/globals) (such as Resource, databases, and tables).
11+
Harper components are a core Harper concept defined as flexible JavaScript based extensions of the highly extensible core Harper platform. They are executed by Harper directly and have complete access to the Harper [Global APIs](../reference/globals) (such as Resource, databases, and tables).
1212

13-
A key aspect to components are their extensibility; components can be built on other components. For example, a [Harper Application](../developers/applications/) is a component that uses many other components. The [application template](https://github.com/HarperDB/application-template) demonstrates many of Harper's built-in components such as [rest](../technical-details/reference/components/built-in-extensions#rest) (for automatic REST endpoint generation), [graphqlSchema](../technical-details/reference/components/built-in-extensions#graphqlschema) (for table schema definitions), and many more.
13+
A key aspect to components are their extensibility; components can be built on other components. For example, a [Harper Application](../developers/applications/) is a component that uses many other components. The [application template](https://github.com/HarperDB/application-template) demonstrates many of Harper's built-in components such as [rest](../reference/components/built-in-extensions#rest) (for automatic REST endpoint generation), [graphqlSchema](../reference/components/built-in-extensions#graphqlschema) (for table schema definitions), and many more.
1414

1515
## Applications
1616

17-
Applications are a subset of components that cannot be used directly and must depend on other extensions. Examples include defining schemas (using [graphqlSchema](../technical-details/reference/components/built-in-extensions#graphqlschema) built-in extension), defining custom resources (using [jsResource](../technical-details/reference/components/built-in-extensions#jsresource) built-in extension), hosting static files (using [static](../technical-details/reference/components/built-in-extensions#static) built-in extension), enabling REST querying of resources (using [rest](../technical-details/reference/components/built-in-extensions#rest) built-in extension), and running [Next.js](https://github.com/HarperDB/nextjs), [Astro](https://github.com/HarperDB/astro), or [Apollo](https://github.com/HarperDB/apollo) applications through their respective extensions.
17+
Applications are a subset of components that cannot be used directly and must depend on other extensions. Examples include defining schemas (using [graphqlSchema](../reference/components/built-in-extensions#graphqlschema) built-in extension), defining custom resources (using [jsResource](../reference/components/built-in-extensions#jsresource) built-in extension), hosting static files (using [static](../reference/components/built-in-extensions#static) built-in extension), enabling REST querying of resources (using [rest](../reference/components/built-in-extensions#rest) built-in extension), and running [Next.js](https://github.com/HarperDB/nextjs), [Astro](https://github.com/HarperDB/astro), or [Apollo](https://github.com/HarperDB/apollo) applications through their respective extensions.
1818

1919
## Resources
2020

docs/getting-started/what-is-harper.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ When you are ready for something a little more advanced, start [customizing your
3434

3535
Finally, when it’s time to deploy, explore [replication](../developers/replication/) between nodes.
3636

37-
If you would like to jump into the most advanced capabilities, learn about [components](../technical-details/reference/components/).
37+
If you would like to jump into the most advanced capabilities, learn about [components](../reference/components/).
3838

3939
:::warning
4040
Need help? Please don’t hesitate to [reach out](https://www.harpersystems.dev/contact).
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"label": "Technical Details",
2+
"label": "Reference",
33
"position": 4,
44
"link": {
55
"type": "generated-index",
6-
"title": "Technical Details Documentation",
6+
"title": "Reference Documentation",
77
"description": "Reference documentation and technical specifications",
8-
"keywords": ["technical-details"]
8+
"keywords": ["reference", "specifications"]
99
}
1010
}
File renamed without changes.

0 commit comments

Comments
 (0)