Skip to content

Commit

Permalink
docs: structure and content update (#2875)
Browse files Browse the repository at this point in the history
* Rafiki docs overhaul

---------

Co-authored-by: Melissa Henderson <[email protected]>
Co-authored-by: Mohammed Islam <[email protected]>
Co-authored-by: brad-dow <[email protected]>
Co-authored-by: hajjimo <[email protected]>
Co-authored-by: Chen Hui Jing <[email protected]>
Co-authored-by: Sabine Schaller <[email protected]>
  • Loading branch information
7 people authored Sep 11, 2024
1 parent fe5380a commit 0b92ce3
Show file tree
Hide file tree
Showing 96 changed files with 4,990 additions and 3,610 deletions.
2 changes: 1 addition & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ build
**/styles/*.css
.docusaurus
.cache-loader
packages/documentation/src/content/docs/apis
packages/documentation/src/content/docs/apis/graphql/**
.astro
21 changes: 11 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,23 @@

## What is Rafiki?

Rafiki is open source software that provides an efficient solution for an [Account Servicing Entity](https://rafiki.dev/concepts/account-servicing-entity/) to enable Interledger functionality on its users' accounts.
Rafiki is open source software that provides an efficient solution for an [account servicing entity](https://rafiki.dev/resources/glossary#account-servicing-entity-ase) to enable Interledger functionality on its users' accounts.

This includes

- sending and receiving payments (via [SPSP](https://rafiki.dev/reference/glossary/#simple-payments-setup-protocol-spsp) and [Open Payments](https://rafiki.dev/concepts/open-payments/overview/))
- allowing third-party access to initiate payments and view transaction data (via [Open Payments](https://rafiki.dev/concepts/open-payments/overview/))
- sending and receiving payments (via [SPSP](https://rafiki.dev/resources/glossary#simple-payment-setup-protocol-spsp) and [Open Payments](https://rafiki.dev/overview/concepts/open-payments))
- allowing third-party access to initiate payments and view transaction data (via [Open Payments](https://rafiki.dev/overview/concepts/open-payments))

**❗ Rafiki is intended to be run by [Account Servicing Entities](https://rafiki.dev/reference/glossary/#account-servicing-entity) only and should not be used in production by non-regulated entities.**
**❗ Rafiki is intended to be run by account servicing entities only and should not be used in production by non-regulated entities.**

Rafiki is made up of several components, including an Interledger connector, a high-throughput accounting database called [TigerBeetle](https://rafiki.dev/concepts/accounting/tigerbeetle/), and several APIs:
Rafiki is made up of several components, including an Interledger connector, a high-throughput accounting database called [TigerBeetle](https://rafiki.dev/overview/concepts/accounting#tigerbeetle), and several APIs:

- the [Admin API](https://rafiki.dev/apis/backend/schema/) to create [peering relationships](https://rafiki.dev/concepts/interledger-protocol/peering/), add supported [assets](https://rafiki.dev/concepts/asset/), and issue [wallet addresses](https://rafiki.dev/reference/glossary/#wallet-address)
- the [Open Payments](https://rafiki.dev/reference/glossary/#open-payments) API to allow third parties (with the account holder's consent) to initiate payments and to view the transaction history
- the [SPSP](https://rafiki.dev/reference/glossary/#simple-payments-setup-protocol-spsp) API for simple Interledger Payments
- the [Admin APIs](https://rafiki.dev/apis/graphql/admin-api-overview) to create [peering relationships](https://rafiki.dev/overview/concepts/interledger#peers),
add supported [assets](https://rafiki.dev/overview/concepts/accounting#assets), and issue [wallet addresses](https://rafiki.dev/resources/glossary#wallet-address)
- the [Open Payments](https://rafiki.dev/overview/concepts/open-payments) API to allow third parties (with the account holder's consent) to initiate payments and to view the transaction history
- the [SPSP](https://rafiki.dev/resources/glossary#simple-payment-setup-protocol-spsp) API for simple Interledger Payments

Additionally, this package also includes a reference implementation of a [GNAP](https://rafiki.dev/reference/glossary/#grant-negotiation-authorization-protocol) authorization server, which handles the access control for the [Open Payments](https://rafiki.dev/reference/glossary/#open-payments) API. For more information on the architecture, check out the [Architecture documentation](https://rafiki.dev/introduction/architecture/).
Additionally, this package also includes a reference implementation of a [GNAP](https://rafiki.dev/resources/glossary#grant-negotiation-and-authorization-protocol-gnap) authorization server, which handles the access control for the Open Payment API. For more information on the architecture, check out the [Architecture documentation](https://rafiki.dev/resources/architecture).

### New to Interledger?

Expand All @@ -28,7 +29,7 @@ Never heard of Interledger before? Or would you like to learn more? Here are som
- [Interledger Website](https://interledger.org/)
- [Interledger Specs](https://interledger.org/rfcs/0027-interledger-protocol-4/)
- [Interledger Explainer Video](https://twitter.com/Interledger/status/1567916000074678272)
- [Open Payments](https://openpayments.guide/)
- [Open Payments](https://openpayments.dev/)
- [Web monetization](https://webmonetization.org/)

## Contributing
Expand Down
8 changes: 4 additions & 4 deletions localenv/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Local Playground

We have created a suite of packages that, together, mock an account servicing entity that has deployed Rafiki, exposing an [SPSP](https://rafiki.dev/reference/glossary/#simple-payments-setup-protocol-spsp) endpoint, the [Open Payments](https://rafiki.dev/concepts/open-payments/overview/) APIs with its required [GNAP](https://rafiki.dev/reference/glossary/#grant-negotiation-authorization-protocol) auth endpoints to request grants, a STREAM endpoint for receiving Interledger packets, and a UI to view and manage the Rafiki instance.
We have created a suite of packages that, together, mock an account servicing entity that has deployed Rafiki, exposing an [SPSP](https://rafiki.dev/resources/glossary#simple-payment-setup-protocol-spsp) endpoint, the [Open Payments](https://rafiki.dev/overview/concepts/open-payments) APIs with its required [GNAP](https://rafiki.dev/resources/glossary#grant-negotiation-and-authorization-protocol-gnap) auth endpoints to request grants, a STREAM endpoint for receiving Interledger packets, and a UI to view and manage the Rafiki instance.

These packages include:

- `backend` (SPSP, Open Payments APIs, GraphQL Admin APIs, STREAM endpoint)
- `auth` (GNAP auth server)
- `mock-account-servicing-entity` (mocks an [Account Servicing Entity](https://rafiki.dev/concepts/account-servicing-entity/)
- `mock-account-servicing-entity` (mocks an [account servicing entity](https://rafiki.dev/overview/overview)
- `frontend` (Remix app to expose a UI for Rafiki Admin management via interaction with the `backend` Admin APIs)
- `kratos` (An identity and user management solution for the `frontend`)
- `mailslurper` (A SMTP mail server to catch account recovery emails for the `frontend`)
Expand All @@ -27,7 +27,7 @@ This environment will set up a playground where you can use the Rafiki Admin API
## Environment overview

![Docker compose environment](../packages/documentation/public/img/localenv-architecture.png)
![Docker compose environment](../packages/documentation/public/img/localenv.png)

#### Cloud Nine Wallet

Expand Down Expand Up @@ -255,7 +255,7 @@ Note that you have to go through an interaction flow by clicking on the `redirec

#### Admin UI

In order to manage and view information about the Rafiki instance(s) you can use the [Rafiki Admin](https://rafiki.dev/rafikiadmin/overview/) UI. We have secured access to Rafiki Admin using [Ory Kratos](https://www.ory.sh/docs/kratos/ory-kratos-intro); however, in our local playground setup we've chosen to disable authorization for easier development and testing interactions.
In order to manage and view information about the Rafiki instance(s) you can use the [Rafiki Admin](https://rafiki.dev/admin/admin-user-guide) UI. We have secured access to Rafiki Admin using [Ory Kratos](https://www.ory.sh/docs/kratos/ory-kratos-intro); however, in our local playground setup we've chosen to disable authorization for easier development and testing interactions.

If you'd like to enable authorization locally you can run `pnpm localenv:compose:adminauth up` and check out the setup in the [`admin-auth`](./admin-auth/) subdirectory. Note that, if authorization is enabled, you must register separately for Cloud Nine Wallet's Rafiki Admin and Happy Life Bank's Rafiki Admin, as they are intended to operate as distinct mock account servicing entities. Once you've registered, you can always come back to your Rafiki Admin account by navigating to [`localhost:3010`](http://localhost:3010) (Cloud Nine Wallet) or [`localhost:4010`](http://localhost:4010) (Happy Life Bank) and logging in. Since access to the UI is on an invitation-only basis the registration flow is not publicly available. As such, in order to access Rafiki Admin you can manually add a new user with the invite-user script. Run `docker exec -it <admin-container-name> npm run invite-user -- [email protected]`, and it will output a link to the terminal. Copy and paste this link in your browser and you will automatically be logged in and directed to the account settings page. The next step is changing your password. We are using a simple email and password authentication method.

Expand Down
4 changes: 2 additions & 2 deletions localenv/mock-account-servicing-entity/app/root.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,9 @@ export default function App() {
This is an example application for an{' '}
<Link
className='cursor-pointer font-bold'
to='https://rafiki.dev/concepts/account-servicing-entity/'
to='https://rafiki.dev/resources/glossary#account-servicing-entity-ase'
>
[Account Servicing Entity]
[account servicing entity]
</Link>
, used for demonstration & internal development purposes only.
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
## Telemetry Collection

Currently, we collect packet count and packet amount metrics directly within the connector core. These metrics are captured at the Interledger layer to track packet activity while ensuring privacy by collecting amounts at the packet level, rather than at the transaction level. This approach helps to preserve privacy, as we do not expose entire transaction amounts, while also incorporating privacy-preserving measures into the collected amounts. You can read more about privacy [here](https://rafiki.dev/telemetry/privacy/).
Currently, we collect packet count and packet amount metrics directly within the connector core. These metrics are captured at the Interledger layer to track packet activity while ensuring privacy by collecting amounts at the packet level, rather than at the transaction level. This approach helps to preserve privacy, as we do not expose entire transaction amounts, while also incorporating privacy-preserving measures into the collected amounts. You can read more about privacy [here](https://rafiki.dev/overview/concepts/telemetry#privacy).

### Why We Collect on the Sending Side

Expand Down
8 changes: 4 additions & 4 deletions packages/documentation/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ dist/
# generated types
.astro/

# generated docs
src/content/docs/apis/auth/*
src/content/docs/apis/backend/*

# dependencies
node_modules/

Expand All @@ -26,3 +22,7 @@ pnpm-debug.log*

# editors
.vscode

# generated docs
src/content/docs/apis/graphql/auth/*
src/content/docs/apis/graphql/backend/*
Loading

0 comments on commit 0b92ce3

Please sign in to comment.