Docs

Resellers, wallets and roles

How the manager tree works, what each level can see, how wallets, deposits and debt limits behave, and how to build a role from the permission catalogue.

A reseller in X-Radius is a manager with a parent, a wallet and a role. Those three things decide what they can see, what they can spend and what they can do.

The manager tree

Every manager except the tenant owner has a parent, and the tree that makes is the unit of visibility and of money. Creating a manager requires choosing that parent, because a manager with no place in the tree has no defined scope.

What a reseller can see

A manager sees their own subtree: themselves, the managers below them, and the subscribers, cards and journals belonging to that subtree.

They do not see upward. The managers above them in the tree are hidden, including their own parent, unless they are granted a specific permission that lifts the restriction. This is deliberate: a reseller should be able to run their business without being able to enumerate their supplier's other resellers.

Wallets, deposits and debt

Each manager has a wallet in the tenant's currency. A parent deposits into a child's wallet, and the transfer writes an entry on both sides at once, so the two balances cannot disagree.

A manager can be given a debt limit, which is how much their balance may go below zero before operations are refused. An unset limit means no limit, which is not the same as zero — zero refuses everything the moment the wallet is empty.

Every money operation can issue an invoice, and every one of them appears in the journal with both sides and the manager who performed it.

Roles

Permissions are a flat catalogue, and a role is a set of them. The tenant administrator role is immutable and holds everything; every other role is yours to build.

Two rules worth knowing before you design one:

  • A permission a manager does not hold cannot be delegated by them. The tree bounds what they can grant.
  • Some permissions are explicit-grant only and are never included in a seeded role, because holding them is not implied by anything else. Creating a permanent API credential is one of those.

If it did not work

  • A reseller cannot see a subscriber you expect them to see. The subscriber belongs to a different branch of the tree. Visibility follows the tree, not the plan or the network device.
  • An operation is refused with an insufficient-balance error. Check the debt limit as well as the balance: a limit of zero refuses at exactly zero.
  • A manager cannot grant a permission they hold. Check the role they are editing is one they own; an immutable role cannot be edited by anybody.

Last updated

Ask a question

Try it on your own network.

50 subscribers for 7 days. You pay nothing.