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: doc/001-getting-started.md
+4-5Lines changed: 4 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,11 +8,11 @@ Every Hypersync app is a [Node.js](https://nodejs.org/en/) [module](https://node
8
8
9
9
To use the Hypersync SDK you will need a Windows, Mac or Linux computer with a few software packages installed.
10
10
11
-
Since each Hypersync is a Node.js module, you will need to have Node.js installed in order to build custom Hypersyncs. The Hypersync platform uses Node.js version 16 which you can install here:
11
+
Since each Hypersync is a Node.js module, you will need to have Node.js installed in order to build custom Hypersyncs. The Hypersync platform uses Node.js version 22 which you can install here:
12
12
13
-
-[Node JS version 18](https://nodejs.org/download/release/v18.17.1/).
13
+
-[Node.js](https://nodejs.org/en/download).
14
14
15
-
You will also need to install the classic yarn package manager (version 1.22.19) using the link below.
15
+
You will also need to install the classic yarn package manager using the link below:
@@ -22,15 +22,14 @@ The Hyperproof CLI is needed to publish and manage your custom Hypersyncs:
22
22
23
23
Finally, we recommend cloning the [Hypersync SDK Samples GitHub repository](https://github.com/Hyperproof/hypersync-sdk-samples). This is a public repository available on GitHub.com.
24
24
25
-
- The samples repository contains several complete Hypersync apps that can be used to bring data from an external service into Hyperproof. Using the Hyperysnc SDK you can customize these samples to meet your needs. The hypersync-sdk-samples repository contains samples for MySQL, Zoho and other services. Your will find the these Hypersync apps in the `/apps` directory.
25
+
- The samples repository contains several complete Hypersync apps that can be used to bring data from an external service into Hyperproof. Using the Hypersync SDK you can customize these samples to meet your needs. The hypersync-sdk-samples repository contains samples for MySQL, Zoho and other services. Your will find the these Hypersync apps in the `/apps` directory.
26
26
27
27
- The samples repository also includes a handful of templates to get you started building your own Hypersyncs from scatch. Templates can be found in the `/templates` directory. See the `README.md` files in each template directory for more information on using the templates.
28
28
29
29
## Sandbox Organization (optional)
30
30
31
31
For development purposes it is recommended to have a separate 'sandbox' organization in Hyperproof. This will allow you to develop and test your custom Hypersync apps in isolation without affecting the users in your production Hyperproof organization. To create a 'sandbox' organization, please contact your Hyperproof Customer Service Manager.
32
32
33
-
34
33
## Next Steps
35
34
36
35
Once you have installed the prerequisites and determined the organization that you will use for development, you are ready to install your first custom Hypersync app. Follow the guidance in [App Development Workflow](./002-dev-workflow.md) to install, test and update one of the pre-built sample apps.
Copy file name to clipboardExpand all lines: doc/002-dev-workflow.md
+8-10Lines changed: 8 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,16 +15,14 @@ After installing the CLI, you will first need to sign in using this command:
15
15
```
16
16
hp signin
17
17
```
18
-
> NOTE: For customers using Hyperproof EU or Hyperproof GOV, please use the following commands:
18
+
19
+
> NOTE: For customers using Hyperproof EU, please use the following command:
20
+
>
21
+
> ```
22
+
> hp signin --domain hyperproof.eu
23
+
> ```
19
24
>
20
-
>```
21
-
>hp signin --domain hyperproof.eu
22
-
>```
23
-
>or
24
-
>```
25
-
>hp signin --domain hyperproofgov.app
26
-
>```
27
-
>For additional information use 'hp signin -help'
25
+
> For additional information use 'hp signin -help'
28
26
29
27
This command will launch a new browser window and allow you to sign in (if you are not already signed in) and then authorize CLI access to your Hyperproof organization.
30
28
@@ -34,7 +32,7 @@ This command will launch a new browser window and allow you to sign in (if you a
34
32
35
33
### Importing Your Hypersync App
36
34
37
-
Once you have signed in and authorized the CLI, you are ready to import a custom Hyperysnc app.
35
+
Once you have signed in and authorized the CLI, you are ready to import a custom Hypersync app.
38
36
39
37
1. Find the `apps/open-library/` directory in your clone of the Hypersync SDK Samples repository.
40
38
2. Make a copy of that folder somewhere else on your computer. Feel free to rename the folder if that helps.
Copy file name to clipboardExpand all lines: doc/004-connections.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,8 +24,9 @@ In a Hypersync app, there are two types connections: [OAuth connections](#oauth-
24
24
> a [custom authentication connection](#custom-authentication) should be used.
25
25
26
26
> **NOTE: API Permissions**
27
-
>- Always use the minimum permissions necessary for proofs. Hypersyncs are read-only so use read-only permissions when possible.
28
-
>- Use minimum scopes when using OAuth. The Hypersync author is going to be asked to authorize one or more scopes. You only want to ask for what you need.
27
+
>
28
+
> - Always use the minimum permissions necessary for proofs. Hypersyncs are read-only so use read-only permissions when possible.
29
+
> - Use minimum scopes when using OAuth. The Hypersync author is going to be asked to authorize one or more scopes. You only want to ask for what you need.
29
30
30
31
## OAuth Authorization
31
32
@@ -92,7 +93,7 @@ Finally, implement the `getUserId` and `getUserAccountName` methods. `getUserId`
92
93
93
94
## Custom Authentication
94
95
95
-
All non-OAuth authentication/authorization schemes are classified as "Custom" in the Hyperysnc SDK. If your service does not use OAuth 2.0, you should specify `custom` as your `authType` in `package.json`. See [Custom Hypersync App package.json Reference](./030-package-json-reference.md) for more information.
96
+
All non-OAuth authentication/authorization schemes are classified as "Custom" in the Hypersync SDK. If your service does not use OAuth 2.0, you should specify `custom` as your `authType` in `package.json`. See [Custom Hypersync App package.json Reference](./030-package-json-reference.md) for more information.
96
97
97
98
Custom auth covers any type of authentication where the user provides credentials to make a connection. Credentials can include user name/password, access key/secret key, API Token, and many others. Users may also need to designate the endpoint they’re connecting to - for example by providing a URL or a region.
Copy file name to clipboardExpand all lines: doc/005-data-sources.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ Data sources can retrieve different data sets from the external service. Each da
6
6
7
7
Data set names are used in other components like proof types to identify the specific data element or elements needed by that component.
8
8
9
-
> **NOTE**: Data sets can and *should* be re-used across multiple proof types, and can also be used in non-proof scenarios such as collecting user data during the `validateCredentials` process.
9
+
> **NOTE**: Data sets can and _should_ be re-used across multiple proof types, and can also be used in non-proof scenarios such as collecting user data during the `validateCredentials` process.
10
10
11
11
## REST Data Sources
12
12
@@ -66,9 +66,9 @@ For more information on configuring the data sets in your data source using `dat
66
66
67
67
Many REST APIs use a paging mechanism to allow data to be retrieved in chunks. For example, some APIs take a `pageSize` and `pageNumber` argument which specify how many items to return, and the page number to start reading from, respectively.
68
68
69
-
Four paging styles are supported: __Page Based__, __Offset And Limit__, __Next Token__, and __GraphQL Connections__. As a default, query string parameters will be programatically added to an API url. If POST is designated as the data source HTTP method, paging parameters are added to the body of the request.
69
+
Four paging styles are supported: **Page Based**, **Offset And Limit**, **Next Token**, and **GraphQL Connections**. As a default, query string parameters will be programatically added to an API url. If POST is designated as the data source HTTP method, paging parameters are added to the body of the request.
70
70
71
-
1.__Page Based.__Begin paging at a starting value and increment the page value by 1 after each iteration (1, 2, 3, etc). Return at most `limitValue` items per page.
71
+
1.**Page Based.**Begin paging at a starting value and increment the page value by 1 after each iteration (1, 2, 3, etc). Return at most `limitValue` items per page.
72
72
73
73
```json
74
74
"pagingScheme": {
@@ -83,9 +83,9 @@ Four paging styles are supported: __Page Based__, __Offset And Limit__, __Next T
83
83
}
84
84
```
85
85
86
-
The mandatory `request` property in the paging scheme constructs the paged query string. The query string of the first API call from the above example will be: `?pageNumber=1&pageSize=100`. Each paging scheme must include a `pageUntil` property which defines the point at which pagination stops. If `reachTotalCount` condition is applied, `totalCount` must be defined in the response object, which represents the path to the total combined number of items in the data returned from the external service.*
86
+
The mandatory `request` property in the paging scheme constructs the paged query string. The query string of the first API call from the above example will be: `?pageNumber=1&pageSize=100`. Each paging scheme must include a `pageUntil` property which defines the point at which pagination stops. If `reachTotalCount` condition is applied, `totalCount` must be defined in the response object, which represents the path to the total combined number of items in the data returned from the external service.\*
87
87
88
-
2.__Offset And Limit.__Begin paging at a starting value and increment the offset by the number of elements in a full page (0, 100, 200, 300, etc). Return at most `limitValue` items per page.
88
+
2.**Offset And Limit.**Begin paging at a starting value and increment the offset by the number of elements in a full page (0, 100, 200, 300, etc). Return at most `limitValue` items per page.
89
89
90
90
```json
91
91
"pagingScheme": {
@@ -103,9 +103,9 @@ The mandatory `request` property in the paging scheme constructs the paged query
103
103
}
104
104
```
105
105
106
-
The mandatory `request` property in the paging scheme constructs the paged query string. The query string of the first API call from the above example will be: `?offset=0&limit=100`. Each paging scheme must include a `pageUntil` property which defines the point at which pagination stops. If `reachTotalCount` condition is applied, `totalCount` must be defined in the response object. This string value represents the path to the total combined number of items in the data returned from the external service.*
106
+
The mandatory `request` property in the paging scheme constructs the paged query string. The query string of the first API call from the above example will be: `?offset=0&limit=100`. Each paging scheme must include a `pageUntil` property which defines the point at which pagination stops. If `reachTotalCount` condition is applied, `totalCount` must be defined in the response object. This string value represents the path to the total combined number of items in the data returned from the external service.\*
107
107
108
-
3.__Next Token.__Begin paging and continue until `nextToken` is no longer provided. Return at most `limitValue` items per page. Tokens may be a unique string returned from the external service or a url.
108
+
3.**Next Token.**Begin paging and continue until `nextToken` is no longer provided. Return at most `limitValue` items per page. Tokens may be a unique string returned from the external service or a url.
109
109
110
110
```json
111
111
"pagingScheme": {
@@ -123,9 +123,9 @@ The mandatory `request` property in the paging scheme constructs the paged query
123
123
}
124
124
```
125
125
126
-
The mandatory `request` property in the paging scheme constructs the paged query string. The query string of the first API call from the above example will be: `?size=20`. Each successive call will be structured in the pattern: `?size=20&token=891b629672384d04`. Each paging scheme must include a `pageUntil` property which defines the point at which pagination stops. When `noNextToken` condition is applied, `nextToken` must be included in the response object. This string value represents the path to the expected value in the data returned from the external service.*
126
+
The mandatory `request` property in the paging scheme constructs the paged query string. The query string of the first API call from the above example will be: `?size=20`. Each successive call will be structured in the pattern: `?size=20&token=891b629672384d04`. Each paging scheme must include a `pageUntil` property which defines the point at which pagination stops. When `noNextToken` condition is applied, `nextToken` must be included in the response object. This string value represents the path to the expected value in the data returned from the external service.\*
127
127
128
-
4.__GraphQL Connections.__Following the GraphQL [Connections](https://graphql.org/learn/pagination/#connection-specification) specification, continue paging until `hasNextPage` is false. Return at most `limitValue` items per page. Supports forward, non-nested pagination.
128
+
4.**GraphQL Connections.**Following the GraphQL [Connections](https://graphql.org/learn/pagination/#connection-specification) specification, continue paging until `hasNextPage` is false. Return at most `limitValue` items per page. Supports forward, non-nested pagination.
129
129
130
130
```json
131
131
"body": {
@@ -149,9 +149,9 @@ The mandatory `request` property in the paging scheme constructs the paged query
149
149
}
150
150
```
151
151
152
-
The paging scheme dynamically adds the `first` and `after` variables to the body of a request. The `after` variable is defined using the `endCursor` string from the preceding response. `pageInfo` must be included in the paging scheme response object. This string value represents the path to the `pageInfo` object in the data returned from the external service.
152
+
The paging scheme dynamically adds the `first` and `after` variables to the body of a request. The `after` variable is defined using the `endCursor` string from the preceding response. `pageInfo` must be included in the paging scheme response object. This string value represents the path to the `pageInfo` object in the data returned from the external service.
153
153
154
-
*If values are to be found in the response header, apply the `header:` prefix.
154
+
\*If values are to be found in the response header, apply the `header:` prefix.
Copy file name to clipboardExpand all lines: doc/006-proof-types.md
+11-9Lines changed: 11 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,15 +12,17 @@ Once the user selects a proof type, they may be asked for one or more criteria v
12
12
13
13
Proof types retrieve data from the app's [data source](./005-data-sources.md) by name. The proof type may also provide parameter values to the data source to ensure that the right data is returned.
14
14
15
-
> **IMPORTANT: Planning Your Proof Types and Fields**
16
-
>>- Define different kinds of proof - Users, Groups, etc...
17
-
>>- Define key fields of information needed in each proof type. Make sure your API calls can return these vital elements.
18
-
>>- Define how to identify the right resource(s) - This information can be unique to each proof type and will be needed to configure `criteriafields.json` You’ll want to ask the user for these when they author the Hypersync. For example if you want to get configuration information from Azure you might need to know the tenant and subscription and resource group.
19
-
>>
20
-
> **Tips for finding this info**:
21
-
>>- Look at console pages and dashboards. They usually contain all key information by default and are a great starting point.
22
-
>>- Look at other similar proof types in other apps.
23
-
>>- Always include proof for users and their permissions. See User Access Reviews proof for more information.
15
+
> **IMPORTANT: Planning Your Proof Types and Fields**
16
+
>
17
+
> > - Define different kinds of proof - Users, Groups, etc...
18
+
> > - Define key fields of information needed in each proof type. Make sure your API calls can return these vital elements.
19
+
> > - Define how to identify the right resource(s) - This information can be unique to each proof type and will be needed to configure `criteriafields.json` You’ll want to ask the user for these when they author the Hypersync. For example if you want to get configuration information from Azure you might need to know the tenant and subscription and resource group.
20
+
> >
21
+
> > **Tips for finding this info**:
22
+
> >
23
+
> > - Look at console pages and dashboards. They usually contain all key information by default and are a great starting point.
24
+
> > - Look at other similar proof types in other apps.
25
+
> > - Always include proof for users and their permissions. See User Access Reviews proof for more information.
0 commit comments