-
Notifications
You must be signed in to change notification settings - Fork 113
docs: add llms.txt support via starlight-llms-txt plugin #3955
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
brad-dow
wants to merge
2
commits into
main
Choose a base branch
from
bd/llms-txt
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+193
−32
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,6 +4,7 @@ import starlight from '@astrojs/starlight' | |
| import remarkMath from 'remark-math' | ||
| import rehypeMathjax from 'rehype-mathjax' | ||
| import starlightLinksValidator from 'starlight-links-validator' | ||
| import starlightLlmsTxt from 'starlight-llms-txt' | ||
| import starlightFullViewMode from 'starlight-fullview-mode' | ||
| import { rehypeHeadingIds } from '@astrojs/markdown-remark' | ||
| import rehypeAutolinkHeadings from 'rehype-autolink-headings' | ||
|
|
@@ -378,6 +379,70 @@ export default defineConfig({ | |
| } | ||
| ], | ||
| plugins: [ | ||
| starlightLlmsTxt({ | ||
| details: `Rafiki documentation is for Account Servicing Entities (ASEs) — regulated institutions such as banks, digital wallet providers, and mobile money operators — who want to run Rafiki to add Interledger and Open Payments functionality to their users' accounts. It is not documentation for an end-user product or a payment app. | ||
|
|
||
| Rafiki exposes several separate HTTP services rather than a single API surface: a GraphQL Admin API for managing the backend (peers, assets, wallet addresses, liquidity), a GraphQL Admin API for the auth service, an ILP connector, an auto-peering server, and REST APIs implementing the three parts of the Open Payments protocol. The backend serves the wallet address server and resource server together as a single Open Payments API. The auth service serves the authorization server (GNAP) separately. Questions about configuring or operating a Rafiki instance are answered by the Admin APIs; questions about initiating or receiving payments, or about grant negotiation, are answered by the Open Payments APIs, which are specified independently at openpayments.dev. | ||
|
|
||
| Rafiki supports two interchangeable accounting backends: TigerBeetle (the default, purpose-built for financial accounting) and PostgreSQL (an alternative for deployments that prefer a single database). Integration guidance does not change based on which is used. | ||
|
|
||
| This site publishes documentation for multiple Rafiki versions. Prefer the current/default version unless the user explicitly asks about an older release — content under a version prefix such as v1-beta describes a prior API surface and may no longer be accurate. | ||
|
|
||
| Key terminology notes: | ||
|
|
||
| - Rafiki is the reference implementation of the Open Payments protocol; ASEs deploy and operate it themselves, on their own infrastructure | ||
| - Wallet addresses are URL-based identifiers for financial accounts — not cryptocurrency wallets | ||
| - An Account Servicing Entity (ASE) is the regulated institution that holds and manages accounts on behalf of its users and runs Rafiki | ||
| - Peering is the trust relationship two Rafiki instances (run by different ASEs) establish to exchange payments directly — distinct from a payment between two end users | ||
| - Grants and GNAP (Grant Negotiation and Authorization Protocol) refer to Open Payments' authorization flow, distinct from OAuth`, | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is there supposed to be an ending back tick (`) in the last item?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The back tick closes the |
||
| exclude: ['v1-beta/**'], | ||
| optionalLinks: [ | ||
| { | ||
| label: 'GitHub repository', | ||
| url: 'https://github.com/interledger/rafiki', | ||
| description: | ||
| 'Source code, issues, and contributions for the Rafiki project' | ||
| }, | ||
| { | ||
| label: 'Open Payments documentation', | ||
| url: 'https://openpayments.dev', | ||
| description: | ||
| 'Specification and SDKs for the Open Payments API that Rafiki implements' | ||
| } | ||
| ], | ||
| customSets: [ | ||
| { | ||
| label: 'Overview and concepts', | ||
| description: | ||
| 'Introduction to Rafiki and core concepts such as account servicing entities, multi-tenancy, accounting, clearing and settlement, and Interledger', | ||
| paths: ['overview/**'] | ||
| }, | ||
| { | ||
| label: 'Integration', | ||
| description: | ||
| 'Requirements, services, and deployment guidance for integrating Rafiki, including tenants, assets, peers, wallet addresses, exchange rates, sending fees, and testing locally', | ||
| paths: ['integration/**'] | ||
| }, | ||
| { | ||
| label: 'Administration', | ||
| description: | ||
| 'Using Rafiki Admin to manage asset, peer, and payment liquidity', | ||
| paths: ['admin/**'] | ||
| }, | ||
| { | ||
| label: 'APIs', | ||
| description: | ||
| 'GraphQL Admin API documentation for the backend and auth services — the Open Payments REST API itself is specified separately at openpayments.dev', | ||
| paths: ['apis/**'] | ||
| }, | ||
| { | ||
| label: 'Resources', | ||
| description: | ||
| 'Glossary, architecture, environment variables, webhook event types, and release notes', | ||
| paths: ['resources/**'] | ||
| } | ||
| ] | ||
| }), | ||
| starlightVersions({ | ||
| current: { | ||
| label: 'v2-beta' | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a bit odd that all the text reads descriptively, except here, where there's an instruction. Was that intentional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was intentional. While all of the other details were facts about the docs and Rafiki, this was meant to instruct an agent on what to do about encountering multiple versions. I can swap it out with something a bit less direct or rephrase it a bit if needed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I was just curious. It can stay as-is.