Skip to content

Commit e377ae4

Browse files
fix broken links
1 parent 12b9353 commit e377ae4

File tree

10 files changed

+42
-56
lines changed

10 files changed

+42
-56
lines changed

docs/developers/applications/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ This guide is going to walk you through building a basic Harper application usin
8181
8282
## Custom Functionality with JavaScript
8383

84-
[The getting started guide](../../getting-started/quickstart) 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. 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.
84+
[The getting started guide](../../learn/) 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. 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). Let's add a property to the dog records when they are returned, that includes their age in human years. To do this, we get the `Dog` class from the defined tables, extend it (with our custom logic), and export it:
8787

docusaurus.config.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -363,13 +363,9 @@ const config: Config = {
363363
title: 'Documentation',
364364
items: [
365365
{
366-
label: 'Quickstart',
367-
to: `${routeBasePath}/getting-started/quickstart`,
366+
label: 'Learn',
367+
to: `/learn`,
368368
},
369-
// {
370-
// label: 'Developers',
371-
// to: `${routeBasePath}/developers`,
372-
// },
373369
{
374370
label: 'Administration',
375371
to: `${routeBasePath}/administration`,

redirects.ts

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ function generateDocsRedirects(basePath: string): RedirectRule[] {
7272
{ from: withBase('/deployments/install-harperdb/linux'), to: withBase('/deployments/install-harper/linux') },
7373
{
7474
from: withBase('/getting-started/install-harper'),
75-
to: withBase('/learn/getting-started/install-and-connect-harper'),
75+
to: '/learn/getting-started/install-and-connect-harper',
7676
},
7777

7878
// Harper Studio (old HarperDB Studio paths)
@@ -181,47 +181,47 @@ function generateDocsRedirects(basePath: string): RedirectRule[] {
181181
{ from: withBase('/technical-details/reference'), to: withBase('/reference/') },
182182

183183
// Getting Started and Foundations pages to new Learn section
184-
{ from: withBase('/getting-started'), to: withBase('/learn/') },
185-
{ from: withBase('/4.6/getting-started'), to: withBase('/learn/') },
186-
{ from: withBase('/4.5/getting-started'), to: withBase('/learn/') },
187-
{ from: withBase('/4.4/getting-started'), to: withBase('/learn/') },
184+
{ from: withBase('/getting-started'), to: '/learn/' },
185+
{ from: withBase('/4.6/getting-started'), to: '/learn/' },
186+
{ from: withBase('/4.5/getting-started'), to: '/learn/' },
187+
{ from: withBase('/4.4/getting-started'), to: '/learn/' },
188188

189189
{
190190
from: withBase('/getting-started/installation'),
191-
to: withBase('/learn/getting-started/install-and-connect-harper'),
191+
to: '/learn/getting-started/install-and-connect-harper',
192192
},
193193
{
194194
from: withBase('/4.6/getting-started/installation'),
195-
to: withBase('/learn/getting-started/install-and-connect-harper'),
195+
to: '/learn/getting-started/install-and-connect-harper',
196196
},
197197
{
198198
from: withBase('/4.5/getting-started/installation'),
199-
to: withBase('/learn/getting-started/install-and-connect-harper'),
199+
to: '/learn/getting-started/install-and-connect-harper',
200200
},
201201
{
202202
from: withBase('/4.4/getting-started/installation'),
203-
to: withBase('/learn/getting-started/install-and-connect-harper'),
203+
to: '/learn/getting-started/install-and-connect-harper',
204204
},
205205

206-
{ from: withBase('/getting-started/quickstart'), to: withBase('/learn/') },
207-
{ from: withBase('/4.6/getting-started/quickstart'), to: withBase('/learn/') },
208-
{ from: withBase('/4.5/getting-started/quickstart'), to: withBase('/learn/') },
209-
{ from: withBase('/4.4/getting-started/quickstart'), to: withBase('/learn/') },
210-
211-
{ from: withBase('/foundations/harper-architecture'), to: withBase('/learn/') },
212-
{ from: withBase('/4.6/foundations/harper-architecture'), to: withBase('/learn/') },
213-
{ from: withBase('/4.5/foundations/harper-architecture'), to: withBase('/learn/') },
214-
{ from: withBase('/4.4/foundations/harper-architecture'), to: withBase('/learn/') },
215-
216-
{ from: withBase('/foundations/core-concepts'), to: withBase('/learn/') },
217-
{ from: withBase('/4.6/foundations/core-concepts'), to: withBase('/learn/') },
218-
{ from: withBase('/4.5/foundations/core-concepts'), to: withBase('/learn/') },
219-
{ from: withBase('/4.4/foundations/core-concepts'), to: withBase('/learn/') },
220-
221-
{ from: withBase('/foundations/use-cases'), to: withBase('/learn/') },
222-
{ from: withBase('/4.6/foundations/use-cases'), to: withBase('/learn/') },
223-
{ from: withBase('/4.5/foundations/use-cases'), to: withBase('/learn/') },
224-
{ from: withBase('/4.4/foundations/use-cases'), to: withBase('/learn/') }
206+
{ from: withBase('/getting-started/quickstart'), to: '/learn/' },
207+
{ from: withBase('/4.6/getting-started/quickstart'), to: '/learn/' },
208+
{ from: withBase('/4.5/getting-started/quickstart'), to: '/learn/' },
209+
{ from: withBase('/4.4/getting-started/quickstart'), to: '/learn/' },
210+
211+
{ from: withBase('/foundations/harper-architecture'), to: '/learn/' },
212+
{ from: withBase('/4.6/foundations/harper-architecture'), to: '/learn/' },
213+
{ from: withBase('/4.5/foundations/harper-architecture'), to: '/learn/' },
214+
{ from: withBase('/4.4/foundations/harper-architecture'), to: '/learn/' },
215+
216+
{ from: withBase('/foundations/core-concepts'), to: '/learn/' },
217+
{ from: withBase('/4.6/foundations/core-concepts'), to: '/learn/' },
218+
{ from: withBase('/4.5/foundations/core-concepts'), to: '/learn/' },
219+
{ from: withBase('/4.4/foundations/core-concepts'), to: '/learn/' },
220+
221+
{ from: withBase('/foundations/use-cases'), to: '/learn/' },
222+
{ from: withBase('/4.6/foundations/use-cases'), to: '/learn/' },
223+
{ from: withBase('/4.5/foundations/use-cases'), to: '/learn/' },
224+
{ from: withBase('/4.4/foundations/use-cases'), to: '/learn/' }
225225
);
226226

227227
return redirects;

release-notes/v4-tucker/4.2.0.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ title: 4.2.0
88

99
HarperDB 4.2 introduces a new interface to accessing our core database engine with faster access, well-typed idiomatic JavaScript interfaces, ergonomic object mapping, and real-time data subscriptions. 4.2 also had adopted a new component architecture for building extensions to deliver customized external data sources, authentication, file handlers, content types, and more. These architectural upgrades lead to several key new HarperDB capabilities including a new REST interface, advanced caching, real-time messaging and publish/subscribe functionality through MQTT, WebSockets, and Server-Sent Events.
1010

11-
4.2 also introduces configurable database schemas, using GraphQL Schema syntax. The new component structure is also configuration-driven, providing easy, low-code paths to building applications. [Check out our new getting starting guide](/docs/getting-started/quickstart) to see how easy it is to get started with HarperDB apps.
11+
4.2 also introduces configurable database schemas, using GraphQL Schema syntax. The new component structure is also configuration-driven, providing easy, low-code paths to building applications. [Check out our new getting starting guide](/learn/) to see how easy it is to get started with HarperDB apps.
1212

1313
### Resource API
1414

sidebars.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,6 @@ const sidebars: SidebarsConfig = {
77
id: 'index',
88
label: 'Harper Docs',
99
},
10-
{
11-
type: 'category',
12-
label: 'Getting Started',
13-
items: ['getting-started/installation', 'getting-started/quickstart'],
14-
},
15-
{
16-
type: 'category',
17-
label: 'Foundations of Harper',
18-
items: ['foundations/harper-architecture', 'foundations/core-concepts', 'foundations/use-cases'],
19-
},
2010
{
2111
type: 'category',
2212
label: 'Developers',

versioned_docs/version-4.4/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Finally, when it’s time to deploy, explore [replication](./developers/replicat
3939

4040
If you would like to jump into the most advanced capabilities, learn about [components](developers/components/index.md).
4141

42-
For a more comprehensive deep dive, take a look at our [Getting Started Guide](./getting-started/quickstart).
42+
For a more comprehensive deep dive, take a look at our [Getting Started Guide](/learn/).
4343

4444
:::warning
4545
Need help? Please don’t hesitate to [reach out](https://www.harpersystems.dev/contact).
@@ -68,7 +68,7 @@ Capturing, storing, and processing real-time data streams from client and IoT sy
6868
<div style={{display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(250px, 1fr))', gap: '1rem', margin: '2rem 0'}}>
6969
<div style={{border: '1px solid #e0e0e0', borderRadius: '8px', padding: '1.5rem', transition: 'box-shadow 0.2s'}}>
7070
<h3 style={{marginTop: '0'}}>
71-
<a href="./4.4/getting-started/quickstart" style={{textDecoration: 'none', color: 'inherit'}}>
71+
<a href="/learn/" style={{textDecoration: 'none', color: 'inherit'}}>
7272
Quickstart
7373
</a>
7474
</h3>

versioned_docs/version-4.4/reference/globals.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ async function getRecord() {
3838
}
3939
```
4040

41-
It is recommended that you [define a database](../getting-started/quickstart) for all the tables that are required to exist in your application. This will ensure that the tables exist on the `tables` object. Also note that the property names follow a CamelCase convention for use in JavaScript and in the GraphQL Schemas, but these are translated to snake_case for the actual table names, and converted back to CamelCase when added to the `tables` object.
41+
It is recommended that you [define a database](/learn/) for all the tables that are required to exist in your application. This will ensure that the tables exist on the `tables` object. Also note that the property names follow a CamelCase convention for use in JavaScript and in the GraphQL Schemas, but these are translated to snake_case for the actual table names, and converted back to CamelCase when added to the `tables` object.
4242

4343
## `databases`
4444

versioned_docs/version-4.5/developers/applications/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ flowchart LR
3434

3535
## Custom Functionality with JavaScript
3636

37-
[The getting started guide](../../getting-started/quickstart) 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.
37+
[The getting started guide](/learn/) 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.
3838

3939
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:
4040

versioned_docs/version-4.6/developers/applications/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ This guide is going to walk you through building a basic Harper application usin
8181
8282
## Custom Functionality with JavaScript
8383

84-
[The getting started guide](../getting-started/quickstart) 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.
84+
[The getting started guide](/learn) 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

@@ -117,8 +117,8 @@ type Breed @table {
117117
We use the new table's (static) `get()` method to retrieve a breed by id. Harper will maintain the current context, ensuring that we are accessing the data atomically, in a consistent snapshot across tables. This provides:
118118

119119
1. Automatic tracking of most recently updated timestamps across resources for caching purposes
120-
1. Sharing of contextual metadata (like user who requested the data)
121-
1. Transactional atomicity for any writes (not needed in this get operation, but important for other operations)
120+
2. Sharing of contextual metadata (like user who requested the data)
121+
3. Transactional atomicity for any writes (not needed in this get operation, but important for other operations)
122122

123123
The resource methods are automatically wrapped with a transaction and will automatically commit the changes when the method finishes. This allows us to fully utilize multiple resources in our current transaction. With our own snapshot of the database for the Dog and Breed table we can then access data like this:
124124

0 commit comments

Comments
 (0)