-
Notifications
You must be signed in to change notification settings - Fork 104
docs: update tenants, assets, and admin user guide #3774
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -13,15 +13,14 @@ An asset represents an item of value that can be transferred via the Interledger | |
|
|
||
| **Permissions** | ||
|
|
||
| - Operators can create assets for any tenant | ||
| - Operators can view any asset | ||
| - Operators can edit and delete assets that belong to any tenant | ||
| - Tenants can only view their own assets | ||
| - Tenants can only edit and delete their own assets | ||
| - Tenants cannot create assets | ||
| Operators can create, view, edit, and delete both their own assets and those that belong to any tenant. | ||
|
|
||
| Tenants can view, edit, and delete only their own assets. They cannot create assets. | ||
|
|
||
| ## Add an asset | ||
|
|
||
| Use the `createAsset` mutation to register a new asset with your Rafiki instance. | ||
|
|
||
| <Tabs> | ||
| <TabItem label="Operation"> | ||
| ```graphql | ||
|
|
@@ -81,3 +80,150 @@ The `asset` object in the response will include the `tenantId` of the tenant to | |
|
|
||
| </TabItem> | ||
| </Tabs> | ||
|
|
||
| ## Update an asset | ||
|
|
||
| Once an asset has been created, you may need to adjust its operational threshold values. You can use the `updateAsset` mutation to modify the `withdrawalThreshold` and `liquidityThreshold`. | ||
|
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. Can we de-emphasize |
||
|
|
||
| These thresholds influence when Rafiki triggers low‑liquidity notifications but do not directly deposit or withdraw asset liquidity. | ||
|
|
||
| For information about adding or removing liquidity, see [Asset liquidity](/admin/liquidity/asset-liquidity). | ||
|
|
||
| <Tabs> | ||
| <TabItem label="Operation"> | ||
| ```graphql | ||
| mutation UpdateAsset($input: UpdateAssetInput!) { | ||
| updateAsset(input: $input) { | ||
| asset { | ||
| id | ||
| code | ||
| scale | ||
| withdrawalThreshold | ||
| liquidityThreshold | ||
| tenantId | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
| </TabItem> | ||
|
|
||
| <TabItem label="Variables"> | ||
| The input object for the update operation requires the asset `id`. Only the threshold fields are editable; all other fields are immutable. | ||
|
|
||
| ```json | ||
| { | ||
| "input": { | ||
| "id": "b3dffeda-1e0e-47d4-82a3-69b1a622eeb9", | ||
| "withdrawalThreshold": 100, | ||
| "liquidityThreshold": 500 | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| For more information about this mutation’s input object, see [`UpdateAssetInput`](/apis/graphql/backend/#definition-UpdateAssetInput). | ||
|
|
||
| :::note[Tenant ID and HMAC-signed request headers] | ||
| <TenantIdHmacNote /> | ||
| ::: | ||
|
|
||
| </TabItem> | ||
|
|
||
| <TabItem label="Response"> | ||
| ```json | ||
| { | ||
| "data": { | ||
| "updateAsset": { | ||
| "asset": { | ||
| "id": "b3dffeda-1e0e-47d4-82a3-69b1a622eeb9", | ||
| "code": "USD", | ||
| "scale": 2, | ||
| "withdrawalThreshold": 100, | ||
| "liquidityThreshold": 500, | ||
| "tenantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" | ||
| } | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| :::note[Tenant ID in the asset response] | ||
| The `asset` object in the response will include the `tenantId` of the tenant to which the asset belongs. This `tenantId` is used to identify the tenant when processing requests related to the asset. | ||
| ::: | ||
|
|
||
| </TabItem> | ||
| </Tabs> | ||
|
|
||
| --- | ||
|
|
||
| ## Delete an asset | ||
|
|
||
| Deleting an asset removes it from active use within a Rafiki instance. | ||
|
|
||
| You can only delete an asset if it's not associated with any peers or wallet addresses. Rafiki prevents deleting any asset that's still in use. | ||
|
|
||
| :::danger | ||
|
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. Do you think we need the danger here? Given that it not possible to delete an asset with any existing references, I think admins shouldn't worry about breaking something :) |
||
| Deleting an asset is permanent and cannot be reversed. | ||
|
|
||
| You can only delete an asset if: | ||
|
|
||
| - No peers reference the asset | ||
| - No wallet addresses are associated with it | ||
|
|
||
| If the asset is still in use, the backend prevents deletion and returns an error. | ||
| ::: | ||
|
|
||
| <Tabs> | ||
| <TabItem label="Operation"> | ||
| ```graphql | ||
| mutation DeleteAsset($input: DeleteAssetInput!) { | ||
| deleteAsset(input: $input) { | ||
| asset { | ||
| id | ||
| code | ||
| scale | ||
| tenantId | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
| </TabItem> | ||
|
|
||
| <TabItem label="Variables"> | ||
| ```json | ||
| { | ||
| "input": { | ||
| "id": "b3dffeda-1e0e-47d4-82a3-69b1a622eeb9" | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| For more information about this mutation’s input object, see [`DeleteAssetInput`](/apis/graphql/backend/#definition-DeleteAssetInput). | ||
|
|
||
| :::note[Tenant ID and HMAC-signed request headers] | ||
| <TenantIdHmacNote /> | ||
| ::: | ||
|
|
||
| </TabItem> | ||
|
|
||
| <TabItem label="Response"> | ||
| ```json | ||
| { | ||
| "data": { | ||
| "deleteAsset": { | ||
| "asset": { | ||
| "id": "b3dffeda-1e0e-47d4-82a3-69b1a622eeb9", | ||
| "code": "USD", | ||
| "scale": 2, | ||
| "tenantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" | ||
| } | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| :::note[Tenant ID in the asset response] | ||
| The `asset` object in the response will include the `tenantId` of the tenant to which the asset belongs. This `tenantId` is used to identify the tenant when processing requests related to the asset. | ||
| ::: | ||
|
|
||
| </TabItem> | ||
| </Tabs> | ||
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.
Tenants can also create their own assets