|
1 | 1 | # Components
|
2 | 2 |
|
3 |
| -HarperDB is a highly extensible database application platform with support for a rich variety of composable modular components and components that can be used and combined to build applications and add functionality to existing applications. HarperDB tools, components, and add-ons can be found in a few places: |
| 3 | +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.md) (such as `Resource`, `databases`, and `tables`). |
4 | 4 |
|
5 |
| -* [SDK libraries](sdks.md) are available for connecting to HarperDB from different languages. |
6 |
| -* [Drivers](drivers.md) are available for connecting to HarperDB from different products and tools. |
7 |
| -* [HarperDB-Add-Ons repositories](https://github.com/orgs/HarperDB-Add-Ons/repositories) lists various templates and add-ons for HarperDB. |
8 |
| -* [HarperDB repositories](https://github.com/orgs/HarperDB-Add-Ons/repositories) include additional tools for HarperDB. |
9 |
| -* You can also [search github.com for ever-growing list of projects that use, or work with, HarperDB](https://github.com/search?q=harperdb\&type=repositories) |
10 |
| -* [Google Data Studio](google-data-studio.md) is a visualization tool for building charts and tables from HarperDB data. |
| 5 | +A key aspect to components are their extensibility; components can be built on other components. For example, a [Harper Application](../applications/README.md) 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` (for automatic REST endpoint generation), `graphqlSchema` (for table schema definitions), and many more. |
11 | 6 |
|
12 |
| -## Components |
| 7 | +From management to development, the following pages document everything a developer needs to know about Harper components. |
13 | 8 |
|
14 |
| -There are four general categories of components for HarperDB. The most common is applications. Applications are simply a component that delivers complete functionality through an external interface that it defines, and is usually composed of other components. See [our guide to building applications for getting started](../applications/). |
| 9 | +- [Managing Components](./managing.md) - developing, installing, deploying, and executing Harper components locally and remotely |
| 10 | +- [Technical Reference](./reference.md) - detailed, technical reference for component development |
| 11 | +- [Built-In Components](./built-in.md) - documentation for all of Harper's built-in components (i.e. `rest`) |
15 | 12 |
|
16 |
| -A data source component can implement the Resource API to customize access to a table or provide access to an external data source. External data source components are used to retrieve and access data from other sources. |
| 13 | +## Custom Components |
17 | 14 |
|
18 |
| -The next two are considered extension components. Server protocol extension components provide and define ways for clients to access data and can be used to extend or create new protocols. |
| 15 | +The following list is all of Harper's officially maintained, custom components. They are all available on npm and GitHub. |
19 | 16 |
|
20 |
| -Server resource components implement support for different types of files that can be used as resources in applications. HarperDB includes support for using JavaScript modules and GraphQL Schemas as resources, but resource components may add support for different file types like HTML templates (like JSX), CSV data, and more. |
21 |
| - |
22 |
| -## Server components |
23 |
| - |
24 |
| -Server components can be easily be added and configured by simply adding an entry to your harperdb-config.yaml: |
25 |
| - |
26 |
| -```yaml |
27 |
| -my-server-component: |
28 |
| - package: 'HarperDB-Add-Ons/package-name' # this can be any valid github or npm reference |
29 |
| - port: 4321 |
30 |
| -``` |
31 |
| -
|
32 |
| -## Writing Extension Components |
33 |
| -
|
34 |
| -You can write your own extensions to build new functionality on HarperDB. See the [writing extension components documentation](writing-extensions.md) for more information. |
| 17 | +- [`@harperdb/nextjs`](https://github.com/HarperDB/nextjs) |
| 18 | +- [`@harperdb/apollo`](https://github.com/HarperDB/apollo) |
| 19 | +- [`@harperdb/status-check`](https://github.com/HarperDB/status-check) |
| 20 | +- [`@harperdb/prometheus-exporter`](https://github.com/HarperDB/prometheus-exporter) |
| 21 | +- [`@harperdb/acl-connect`](https://github.com/HarperDB/acl-connect) |
0 commit comments