Skip to main content

AdminClient

Struct AdminClient 

Source
pub struct AdminClient { /* private fields */ }
Expand description

A client for Canton’s Ledger-API admin services: PartyManagementService and UserManagementService.

Served on the Ledger API port (e.g. :3901) — the same endpoint and auth as canton_ledger. Party-management RPCs require the ParticipantAdmin right; the current_user* self-inspect calls do not.

Implementations§

Source§

impl AdminClient

Source

pub fn connect_lazy(config: Config) -> Result<Self>

Build a lazily-connected client. Returns immediately; the TCP/TLS handshake happens on the first RPC.

§Errors

Returns Error::InvalidRequest if the endpoint is not a valid URI.

Source

pub async fn participant_id(&self) -> Result<String>

The participant’s id (GetParticipantId). Works with any authenticated token.

§Errors

Returns an Error if the RPC fails.

Source

pub async fn allocate_party( &self, party_id_hint: Option<&str>, ) -> Result<PartyDetails>

Allocate a new party (AllocateParty). party_id_hint suggests the local part of the party id; the participant returns the actual PartyDetails (party = "<hint>::<fingerprint>").

Requires the ParticipantAdmin right. Not retried: party allocation is a non-idempotent topology mutation (a lost response must not double allocate), so a transient failure surfaces to the caller.

§Errors

Returns an Error if authentication/authorization fails, the RPC fails, or the response carries no party details.

Source

pub async fn list_known_parties_page( &self, page_size: i32, page_token: Option<String>, ) -> Result<(Vec<PartyDetails>, Option<String>)>

List one page of known parties (ListKnownParties). Pass the returned token to fetch the next page; page_size 0 uses the server default.

§Errors

Returns an Error if authentication/authorization or the RPC fails.

Source

pub async fn list_known_parties(&self) -> Result<Vec<PartyDetails>>

All known parties, following pagination internally (ListKnownParties).

§Errors

Returns an Error if authentication/authorization or any page RPC fails.

Source

pub async fn get_parties( &self, parties: Vec<String>, ) -> Result<Vec<PartyDetails>>

Details for specific parties (GetParties). Unknown parties are silently omitted from the result rather than erroring.

§Errors

Returns an Error if authentication/authorization or the RPC fails.

Source

pub async fn current_user(&self) -> Result<User>

The authenticated user’s own record (GetUser with an empty user id). Authorized for any authenticated token (no admin right needed).

§Errors

Returns an Error if the RPC fails or the response carries no user.

Source

pub async fn get_user(&self, user_id: &str) -> Result<User>

A user’s record by id (GetUser); an empty user_id means the authenticated user.

§Errors

Returns an Error if the RPC fails or the response carries no user.

Source

pub async fn current_user_rights(&self) -> Result<Vec<Right>>

The authenticated user’s own rights (ListUserRights with an empty user id). Authorized for any authenticated token.

§Errors

Returns an Error if the RPC fails.

Source

pub async fn list_user_rights(&self, user_id: &str) -> Result<Vec<Right>>

A user’s rights by id (ListUserRights); an empty user_id means the authenticated user.

§Errors

Returns an Error if the RPC fails.

Source

pub async fn list_packages(&self) -> Result<Vec<String>>

The ids of all Daml packages known to the participant (PackageService.ListPackages).

§Errors

Returns an Error if authentication or the RPC fails.

Source

pub async fn get_package_status( &self, package_id: &str, ) -> Result<PackageStatus>

The status of a package on the participant (PackageService.GetPackageStatus): Registered if the package is known, Unspecified otherwise.

§Errors

Returns an Error if authentication or the RPC fails.

Source

pub async fn acting_parties(&self) -> Result<Vec<String>>

The specific parties the authenticated user may act as — the CanActAs subset of Self::current_user_rights. Supersedes the ad-hoc party discovery used in early tests.

Note: a user granted the wildcard CanActAsAnyParty right may act as any party yet carries no explicit CanActAs entries, so this returns an empty list for such users — an empty result means “no specific parties”, not necessarily “cannot act”. Inspect Self::current_user_rights directly if you need the wildcard.

§Errors

Returns an Error if the underlying rights RPC fails.

Trait Implementations§

Source§

impl Clone for AdminClient

Source§

fn clone(&self) -> AdminClient

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AdminClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more