Skip to content

Commit

Permalink
docs: peering integration guide (#3166)
Browse files Browse the repository at this point in the history
* docs: peering integration guide

Initial draft (repurposed the manging peering relationships admin page into a technical integration guide)
Completed a few tasks from #3139 as well, including the following:
- Place the peering integration doc within the Integration > Requirements section.
- Create a new section in Integration, called Deployment, and move the "Docker Compose" and "Helm and Kubernetes" pages into the section.
- Move Integration > Services so that it's a subsection of Deployment (e.g., Integration > Deployment > Services > auth service).
- The content in the "Manage peering relationships" page should become part of Brad's peering integration page. The "Manage" page should go away.
- Update sidenav's TOCs as needed

* Updated broken links from TOC reorg

Fixed links to auth, backend, frontend, docker compose, helm & k8s

* docs: incorporating feedback

- Updates based on feedback
- Removing old manage peering admin guide so it doesn't show up in search

* docs: updates

* docs: pnpm format

running pnpm format
  • Loading branch information
brad-dow authored Dec 17, 2024
1 parent ee45d61 commit 45898f7
Show file tree
Hide file tree
Showing 19 changed files with 356 additions and 171 deletions.
66 changes: 36 additions & 30 deletions packages/documentation/astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,10 @@ export default defineConfig({
label: 'Assets',
link: '/integration/requirements/assets'
},
{
label: 'Peers',
link: '/integration/requirements/peers'
},
{
label: 'Wallet addresses',
link: '/integration/requirements/wallet-addresses'
Expand All @@ -144,50 +148,56 @@ export default defineConfig({
]
},
{
label: 'Docker Compose',
link: '/integration/prod/docker-compose'
},
{
label: 'Helm and Kubernetes',
link: '/integration/prod/helm-k8s'
},
{
label: 'Services',
label: 'Test locally',
collapsed: true,
items: [
{
label: 'Auth service',
link: '/integration/services/auth-service'
},
{
label: 'Backend service',
link: '/integration/services/backend-service'
label: 'Local playground',
link: '/integration/playground/overview'
},
{
label: 'Frontend service',
link: '/integration/services/frontend-service'
label: 'Autopeering',
link: '/integration/playground/autopeering'
},
{
label: 'Token introspection',
link: '/integration/services/token-introspection'
label: 'Test network',
link: '/integration/playground/testnet'
}
]
},
{
label: 'Test locally',
label: 'Deployment',
collapsed: true,
items: [
{
label: 'Local playground',
link: '/integration/playground/overview'
label: 'Services',
collapsed: true,
items: [
{
label: 'Auth service',
link: '/integration/deployment/services/auth-service'
},
{
label: 'Backend service',
link: '/integration/deployment/services/backend-service'
},
{
label: 'Frontend service',
link: '/integration/deployment/services/frontend-service'
},
{
label: 'Token introspection',
link: '/integration/deployment/services/token-introspection'
}
]
},
{
label: 'Autopeering',
link: '/integration/playground/autopeering'
label: 'Docker Compose',
link: '/integration/deployment/docker-compose'
},
{
label: 'Test network',
link: '/integration/playground/testnet'
label: 'Helm and Kubernetes',
link: '/integration/deployment/helm-k8s'
}
]
}
Expand All @@ -201,10 +211,6 @@ export default defineConfig({
label: 'Rafiki Admin',
link: '/admin/admin-user-guide'
},
{
label: 'Manage peering relationships',
link: '/admin/manage-peering'
},
{
label: 'Manage liquidity',
link: '/admin/manage-liquidity'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ import { LinkOut } from '@interledger/docs-design-system'

import { LargeImg } from '@interledger/docs-design-system'

The Rafiki Admin application provides tools to manage peers, assets, wallet addresses, webhooks, payments, and account settings. It functions as an interface to the Rafiki [backend service](/integration/services/backend-service/) and all actions performed, such as fetching data or executing commands, are passed to the Rafiki `backend` service. The purpose of this document is to help you navigate and use the Rafiki Admin application effectively.
The Rafiki Admin application provides tools to manage peers, assets, wallet addresses, webhooks, payments, and account settings. It functions as an interface to the Rafiki [backend service](/integration/deployment/services/backend-service/) and all actions performed, such as fetching data or executing commands, are passed to the Rafiki `backend` service. The purpose of this document is to help you navigate and use the Rafiki Admin application effectively.

## Getting started

### Prerequisites

- Familiarity with general Rafiki concepts. The [Rafiki overview](/overview/overview) is a great place to start.
- Running the Rafiki `frontend` package. See [Frontend service](/integration/services/frontend-service) for more information.
- Running the Rafiki `frontend` package. See [Frontend service](/integration/deployment/services/frontend-service) for more information.

## Identity and user management

Expand Down
112 changes: 0 additions & 112 deletions packages/documentation/src/content/docs/admin/manage-peering.mdx

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ This guide is an example of deploying Rafiki using Docker Compose with Nginx as

### Domain and subdomains setup

We will map the [Open Payments resource server](/integration/services/backend-service#open-payments) to your domain, and the [ILP Connector](/integration/services/backend-service#interledger-connector), [Open Payments auth server](/integration/services/auth-service), and [Admin UI](/integration/services/frontend-service) to subdomains. Using the DNS host of your choice, set up your domain and subdomains according to the following recommended convention:
We will map the [Open Payments resource server](/integration/deployment/services/backend-service#open-payments) to your domain, and the [ILP Connector](/integration/deployment/services/backend-service#interledger-connector), [Open Payments auth server](/integration/deployment/services/auth-service), and [Admin UI](/integration/deployment/services/frontend-service) to subdomains. Using the DNS host of your choice, set up your domain and subdomains according to the following recommended convention:

<div class="overflow-table">

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ An identity provider (IdP) is a system or service that manages user authenticati
Integration with an [IdP](/integration/requirements/idp) is required when using Rafiki’s `auth` service because the Open Payments standard requires interactive outgoing payment _grant_ requests. In an interactive request, there must be explicit interaction by an individual (e.g., a client's end-user) to approve or deny the grant. In this case, the grant must be explicitly approved before an outgoing payment is created.

:::note
Rafiki’s [`frontend`](/integration/services/frontend-service) service requires an IdP for authentication and user management of your [Rafiki Admin](/admin/admin-user-guide) users. Out of the box, Rafiki uses Ory Kratos, a cloud-based user management system. Kratos is for internal use only and **cannot** be used as your customer-facing Open Payments authorization server.
Rafiki’s [`frontend`](/integration/deployment/services/frontend-service) service requires an IdP for authentication and user management of your [Rafiki Admin](/admin/admin-user-guide) users. Out of the box, Rafiki uses Ory Kratos, a cloud-based user management system. Kratos is for internal use only and **cannot** be used as your customer-facing Open Payments authorization server.
:::

For more information about interactive grants and how they work with identity providers, review our [Identity Provider](/integration/requirements/idp) page and the <LinkOut href="https://openpayments.dev/introduction/grants/">Grant negotiation and authorization</LinkOut> page in the Open Payments docs.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ You must also set the environment variables for the `backend` service.

## Open Payments

The `backend` service exposes the Open Payments APIs, which are auth-protected using an opinionated version of the Grant Negotiation and Authorization Protocol (GNAP). Review the [`auth`](/integration/services/auth-service) service page for more details about grant authorization and authentication.
The `backend` service exposes the Open Payments APIs, which are auth-protected using an opinionated version of the Grant Negotiation and Authorization Protocol (GNAP). Review the [`auth`](/integration/deployment/services/auth-service) service page for more details about grant authorization and authentication.

The `backend` service allows you to manage Open Payments <LinkOut href="https://openpayments.dev/introduction/op-concepts/#incoming-payment">incoming payments</LinkOut>, <LinkOut href="https://openpayments.dev/introduction/op-concepts/#quote">quotes</LinkOut>, and <LinkOut href='https://openpayments.dev/introduction/op-concepts/#outgoing-payment'>outgoing payments</LinkOut>. Quotes and outgoing payments call the ILP connector, described in the next section, to send ILP packets. Quoting sends unfulfillable probe packets, for example to determine a transaction’s cost before executing the payment. Outgoing payments send packets as part of executing the payment.

Expand All @@ -39,7 +39,7 @@ Some of the responsibilities of a connector include:

- Authenticating packets against ILP account credentials.
- Forwarding packets to a sender or receiver.
- Rejecting a packet for any number of reasons, including expiration, insufficient liquidity, rate limit exceeded, or if the amount exceeds the `maxPacketAmount` [agreed to](/admin/manage-peering) by the connector and its peer.
- Rejecting a packet for any number of reasons, including expiration, insufficient liquidity, rate limit exceeded, or if the amount exceeds the `maxPacketAmount` [agreed to](/integration/requirements/peers#prerequisites) by the connector and its peer.
- Converting currencies.
- Fulfilling packets with an internal STREAM server.

Expand All @@ -48,7 +48,7 @@ The `backend` service includes an HTTP server listening on the configured `CONNE
Similarly, if a packet's destination address corresponds to a peer, your connector will forward the packet to your peer over HTTP, along with your peer's outgoing HTTP `authToken`.

:::note[Auth tokens]
You and your peer should have exchanged incoming and outgoing auth tokens as part of establishing your [peering relationship](/admin/manage-peering).
You and your peer should have exchanged incoming and outgoing auth tokens as part of establishing your [peering relationship](/integration/requirements/peers#prerequisites).
:::

A packet can either continue on to your peer via HTTP or terminate at your Rafiki instance's STREAM server. If the packet terminates at your STREAM server, your connector will attempt to extract and decode the payment tag from the packet's destination address. When your connector successfully matches the tag with a locally managed wallet address or incoming payment, the connector will not forward the packet. Instead, it will credit the corresponding balance and track the total amount received in Redis to support STREAM receipts. Packets addressed to a wallet address happen via SPSP.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Rafiki’s <LinkOut href="https://github.com/interledger/rafiki/tree/main/packag

The following are required when using the `frontend` service:

- A Rafiki [`backend`](/integration/services/backend-service) service up and running to access the Backend Admin API.
- A Rafiki [`backend`](/integration/deployment/services/backend-service) service up and running to access the Backend Admin API.
- An identity provider for authentication and user management. Out of the box, the Rafiki Admin application uses <LinkOut href="https://www.ory.sh/docs/kratos/ory-kratos-intro">Ory Kratos</LinkOut>, a secure and fully open-source identity management solution.

:::danger[Disabling authentication]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ This suite of packages includes:

<div class="overflow-table">

| Package name | Services |
| ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| [`backend`](/integration/services/backend-service) | <ul><li>SPSP</li><li>Open Payments APIs</li><li>GraphQL Admin APIs</li><li>STREAM endpoint</li></ul> |
| [`auth`](/integration/services/auth-service) | GNAP auth server |
| `mock-account-servicing-entity` | mocks an account servicing entity |
| [`frontend`](/integration/services/frontend-service) | Remix app to expose a UI for Rafiki admin management via interaction with the Backend Admin APIs |
| Package name | Services |
| --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| [`backend`](/integration/deployment/services/backend-service) | <ul><li>SPSP</li><li>Open Payments APIs</li><li>GraphQL Admin APIs</li><li>STREAM endpoint</li></ul> |
| [`auth`](/integration/deployment/services/auth-service) | GNAP auth server |
| `mock-account-servicing-entity` | mocks an account servicing entity |
| [`frontend`](/integration/deployment/services/frontend-service) | Remix app to expose a UI for Rafiki admin management via interaction with the Backend Admin APIs |

</div>

Expand Down
Loading

0 comments on commit 45898f7

Please sign in to comment.