Skip to content

Commit 1957118

Browse files
authored
Add webhooks documentation (#25)
* Add webhooks and format other pages * Spelling fixes * Add integration overview
1 parent 25c4bd9 commit 1957118

File tree

11 files changed

+317
-41
lines changed

11 files changed

+317
-41
lines changed

docs/.vitepress/config.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ export default {
4848
{ text: 'Getting Started', link: '/getting-started' },
4949
{ text: 'Pricing', link: '/pricing' },
5050
{ text: 'Registration', link: '/registration' },
51-
{ text: 'Status', link: '/status' },
5251
{ text: 'Support', link: '/support' }
5352
]
5453
},
@@ -88,6 +87,10 @@ export default {
8887
text: 'External Integration',
8988
collapse: false,
9089
items: [
90+
{
91+
text: 'Overview',
92+
link: '/external-integration/overview'
93+
},
9194
{
9295
text: 'API',
9396
collapsed: true,
@@ -100,6 +103,10 @@ export default {
100103
link: '/external-integration/oauth',
101104
items: [{ text: 'OpenID Connect', link: '/external-integration/oauth/oidc' }]
102105
},
106+
{
107+
text: 'Webhooks',
108+
link: '/external-integration/webhooks'
109+
},
103110
{
104111
text: 'Widgets',
105112
collapsed: true,

docs/about.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
# About
22

3-
PERSCOM.io is the ultimate solution for organizations utilizing a para-military structure looking to manage their personnel. Our platform
3+
PERSCOM.io is the ultimate solution for organizations looking to manage their personnel more efficiently and effectively. Our platform
44
offers a comprehensive suite of tools to help you keep track of all aspects of personnel management, from records and qualification
5-
tracking, calendar and event management to personnel organization and custom data management.
5+
tracking, calendar and event management, and external application integration to personnel organization and custom data management.
66

77
With PERSCOM.io, you can easily manage personnel information, track their qualifications, and monitor their performance. Our software also
8-
allows you to create custom positions and specialties, as well as define your organization structure with units.
8+
allows you to create custom positions and specialties and define your organization structure with units.
99

1010
We understand the importance of integrating your data with other systems, which is why we offer the ability to integrate with any
11-
third-party service through our API, OAuth 2.0 or the library of Widgets. Additionally, our platform offers the ability to create custom
12-
forms and track submissions, making it easy for you to collect data and manage your personnel information.
11+
third-party service through our [API](/external-integration/api), [OAuth 2.0](/external-integration/oauth),
12+
[Webhooks](/external-integration/webhooks), or the library of [Widgets](/external-integration/widgets). Additionally, our platform offers
13+
the ability to create custom forms and track submissions, making it easy for you to collect data and manage your personnel information.
1314

14-
PERSCOM.io is designed to be user-friendly and accessible from anywhere, so you can manage your personnel from the office, the field, or
15-
on-the-go. With our comprehensive platform, you can simplify your personnel management processes and focus on what's truly important - your
15+
PERSCOM.io is designed to be user-friendly and accessible from anywhere, so you can manage your personnel from the office, the field, or on
16+
the go. With our comprehensive platform, you can simplify your personnel management processes and focus on what's truly important - your
1617
mission.
1718

18-
Join the revolution in para-military personnel management and see the difference PERSCOM.io can make for your organization. Sign up for a
19+
Join the revolution in personnel management and see the difference PERSCOM.io can make for your organization. Sign up for a
1920
[demo](https://perscom.io/register) today and take the first step towards a more efficient and effective way of managing your personnel.

docs/external-integration/api.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
11
# API
22

33
The PERSCOM.io API is the backbone that allows PERSCOM.io to function and deliver the services you've come to enjoy. The API also allow you
4-
to integrate your PERSCOM.io data with third-party services.
4+
to integrate your PERSCOM.io data with third-party services and applications.
5+
6+
An API, or Application Programming Interface, is a set of protocols, tools, and standards for building software applications. APIs define
7+
how different software components should interact with each other and enable developers to integrate their own software with existing
8+
applications and services.
9+
10+
In other words, an API provides a standardized way for different software systems to communicate and exchange data. This allows developers
11+
to build new applications that can "talk" to existing software without needing to understand the details of how that software is
12+
implemented.
13+
14+
The PERSCOM.io API is built using the `REST` interface. A request to the PERSCOM.io API requires a `GET`, `POST`, `PUT`, or `DELETE` HTTP
15+
request along with an API key and your PERSCOM ID to an available URL endpoint. Details on how to perform those requests are outlined below.
516

617
## API Keys
718

docs/external-integration/oauth.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
# OAuth 2.0
22

3-
OAuth 2.0 is an authorization protocol that enables third-party applications to access your organization's data without giving them your
4-
username and password. When you grant permission to an application using OAuth 2.0, you are essentially allowing it to access specific parts
5-
of your data on your behalf. This can be beneficial in several ways. For example, if you use an external timekeeping or scheduling software,
6-
you can use our OAuth 2.0 feature to allow that software to access your organization's personnel data. This can save you time and effort by
7-
automating the data transfer process and reducing manual data entry errors. With OAuth 2.0, you can have more control over which third-party
8-
applications can access your organization's data, and you can revoke their access at any time if needed.
3+
OAuth 2.0 is an authorization protocol, built on top of the PERSCOM.io API, that enables third-party applications to access your
4+
organization's data without giving them your username and password. When you grant permission to an application using OAuth 2.0, you are
5+
essentially allowing it to access specific parts of your data on your behalf. This can be beneficial in several ways. For example, if you
6+
use an external timekeeping or scheduling software, you can use our OAuth 2.0 feature to allow that software to access your organization's
7+
personnel data. This can save you time and effort by automating the data transfer process and reducing manual data entry errors. With OAuth
8+
2.0, you can have more control over which third-party applications can access your organization's data, and you can revoke their access at
9+
any time if needed.
910

1011
## Grants
1112

@@ -17,7 +18,7 @@ authorize access to protected resources. The four main types of authorization gr
1718
application exchanging an authorization code for an access token.
1819
- Implicit grant: This grant type is similar to the authorization code grant, but is used for browser-based applications where the client
1920
secret cannot be kept secret. The access token is returned directly to the client instead of being exchanged for an authorization code.
20-
- Resource owner password credentials grant: This grant type is used when the client already has the user's username and password, and needs
21+
- Resource owner password credentials grant: This grant type is used when the client already has the user's username and password and needs
2122
to obtain an access token directly from the authorization server.
2223
- Client credentials grant: This grant type is used when the client needs to access its own resources, rather than a user's resources. It
2324
involves the client providing its own credentials to the authorization server to obtain an access token.
@@ -26,7 +27,7 @@ authorize access to protected resources. The four main types of authorization gr
2627

2728
In the context of OAuth 2.0, scopes are used to specify the level of access that a client application has to a protected resource. When a
2829
client application requests authorization to access a protected resource, it specifies one or more scopes that it requires. The
29-
authorization server then grants an access token that has permissions to access only the specified scopes. Scopes provide a way to limit the
30+
authorization server then grants an access token that has permission to access only the specified scopes. Scopes provide a way to limit the
3031
access granted to a client application, reducing the risk of unauthorized access to sensitive data. For example, an application that needs
3132
to read a user's email address may request access to the "view:user" scope, but not to other sensitive scopes such as "update:user" or
3233
"delete:user".

docs/external-integration/oauth/oidc.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
OIDC stands for OpenID Connect, which is a widely-used authentication protocol built on top of OAuth 2.0. While OAuth 2.0 is primarily
44
designed for granting access to APIs, OIDC focuses on user authentication. OIDC allows a user to authenticate with a provider (e.g., Google,
5-
Facebook, or your own identity provider), and then receive an ID token that contains information about the user. This information can be
6-
used to log the user into a web application, among other things.
5+
Facebook, or your identity provider) and then receive an ID token containing information about the user. This information can be used to log
6+
the user into a web application, among other things.
77

8-
OIDC defines a set of standard [endpoints](#endpoints) that the client application can use to interact with the identity provider to
9-
authenticate a user and receive the ID token. These endpoints include a discovery endpoint, an authorization endpoint, and a token endpoint.
10-
The discovery endpoint allows the client to discover the endpoints and configuration of the provider, while the authorization endpoint is
11-
used to initiate the authentication process. Finally, the token endpoint is used to exchange an authorization code for an ID token.
8+
OIDC defines a set of standard [endpoints](#endpoints) that the client application can use to authenticate a user and receive the ID token
9+
to interact with the identity provider. These endpoints include a discovery endpoint, an authorization endpoint, and a token endpoint. The
10+
discovery endpoint allows the client to discover the endpoints and configuration of the provider, while the authorization endpoint is used
11+
to initiate the authentication process. Finally, the token endpoint is used to exchange an authorization code for an ID token.
1212

1313
In summary, OIDC provides a standardized way to authenticate users and obtain information about them, making it easier to build secure and
14-
scalable web applications as well as implmenent Single Sign-On (SSO) with third-party applications.
14+
scalable web applications as well as implement Single Sign-On (SSO) with third-party applications.
1515

1616
## Endpoints
1717

@@ -60,7 +60,7 @@ curl -X GET \
6060
Returns information about the currently signed-in user.
6161

6262
The `access token` must have the `openid` scope. The endpoint also excepts the `profile` and `email` scope that will return the respective
63-
fields in the response, but is not required. The best practice would be to include all three scopes when requesting an access token.
63+
fields in the response but is not required. The best practice would be to include all three scopes when requesting an access token.
6464

6565
```vb
6666
curl -X GET \
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# External Integration Overview
2+
3+
PERSCOM.io provides a vast array of different options to integrate your personnel data with third-party services. These services include the
4+
PERSCOM.io [API](/external-integration/api), [OAuth 2.0](/external-integration/oauth),
5+
[OpenID Connect (OIDC)](/external-integration/oauth/oidc), [Webhooks](/external-integration/webhooks), and
6+
[Widgets](/external-integration/widgets). Visit the individual integrations page to view more information and how-to's on how to integrate
7+
these services.
8+
9+
## Choosing an Integration
10+
11+
Below is a brief overview of each integration and the best use cases for each.
12+
13+
### API
14+
15+
The PERSCOM.io API is a RESTful HTTP interface for interacting with your personnel data on a machine to machine level. The API would be best
16+
used for:
17+
18+
- Querying personnel data for reports and analysis
19+
- Automating business workflows
20+
- Building custom software that will consume and display PERSCOM.io personnel data
21+
- Updating and managing personnel data from a third-party software
22+
23+
### OAuth 2.0
24+
25+
OAuth 2.0 is an authorization protocol, built on top of the PERSCOM.io API, that enables third-party applications to access your
26+
organization's data without giving them your username and password. Here are some common use cases where OAuth 2.0 might be used:
27+
28+
1. Single Sign-On (SSO): OAuth 2.0 can be used to enable SSO across multiple applications. A user can authenticate once, and then use that
29+
authentication to access other applications without having to log in again.
30+
2. Accessing PERSCOM.io API: OAuth 2.0 can be used to allow an application to access data from PERSCOM.io via the API. This is useful when
31+
an application needs to access data that is not stored locally.
32+
3. Mobile and Web Applications: OAuth 2.0 can be used to secure mobile and web applications, allowing users to log in using their
33+
credentials from another service. This is particularly useful for mobile applications, where users may not want to enter their
34+
credentials into a small screen.
35+
4. Enterprise Applications: OAuth 2.0 can be used to secure enterprise applications, allowing users to access resources across multiple
36+
applications without having to authenticate multiple times.
37+
38+
### OpenID Connect (OIDC)
39+
40+
OIDC is an authentication protocol that is built on top of OAuth 2.0. OIDC outlines a standard protocol for providing useable data about an
41+
authenticated user that can be used for third-party services to consume. Here are some common uses cases for OIDC:
42+
43+
1. Single Sign-On (SSO): OIDC can be used to enable SSO across multiple applications. A user can authenticate once, and then use that
44+
authentication to access other applications without having to log in again. OIDC provides a standardized way for applications to verify a
45+
user's identity and access tokens, which can be used to access other resources.
46+
2. Identity Verification: OIDC can be used to verify a user's identity. When a user logs in, the OIDC provider sends an ID token to the
47+
application that contains information about the user, such as their name and email address. The application can use this information to
48+
verify the user's identity.
49+
3. Authorization: OIDC can be used to authorize access to resources. Applications can use OIDC to obtain access tokens that can be used to
50+
access protected resources.
51+
4. Mobile and Web Applications: OIDC can be used to secure mobile and web applications, allowing users to log in using their credentials
52+
from another service. This is particularly useful for mobile applications, where users may not want to enter their credentials into a
53+
small screen.
54+
55+
### Webhooks
56+
57+
Webhooks can be used to enable real-time notifications and data updates for third-party services, such as a messaging platform, an external
58+
database or a custom reporting tool. Here are some common use cases for webhooks:
59+
60+
1. Automated Workflows: Webhooks can be used to trigger automated workflows between applications. For example, when a new user is added to
61+
PERSCOM.io, a webhook can automatically trigger the creation of a new record in a project management tool.
62+
2. Notifications: Webhooks can be used to send notifications to users or applications. For example, when a user completes a form, a webhook
63+
can be used to send a notification to start importing the user data into other managed services.
64+
3. Data Synchronization: Webhooks can be used to keep data synchronized between applications. For example, when a user updates their contact
65+
information in PERSCOM.io, a webhook can be used to update the information in other connected applications.
66+
4. Real-Time Data Transfer: Webhooks allow for real-time data transfer between applications. This is useful for applications that require
67+
real-time data, such as chat applications or real-time analytics.
68+
69+
### Widgets
70+
71+
Widgets provide a way to display your personnel data within another third-party service via HTML and Javascript. PERSCOM.io offers the
72+
following embeddable widgets:
73+
74+
1. Roster and Personnel Files
75+
2. Awards
76+
3. Ranks
77+
4. Qualifications
78+
5. Calendar and Events

0 commit comments

Comments
 (0)