Silicon IAMDocs

Overview

silicon-iam-client is the official Rust client for Silicon IAM. It exposes the HTTP v1 resources with generated wire models, explicit credentials, idempotency keys and ETags, plus local webhook verification.

What it covers

AreaClient groups
Identity and IAM sessionssignup(), auth(), and carbons()
Organizationsorganizations(), members(), invitations(), tags(), trust(), governance(), and sso()
Silicons and Applicationssilicons(), applications(), oauth(), and catalog-bound OBO signing through obo()
Operationssystem() and environments()
Inbound webhooksWebhookVerifier authenticates exact bytes, timestamp, event ID and secret version before parsing.

The crate is not restricted to an Application credential. Build an anonymous client for public routes, clone it with an IAM bearer for Carbon or Silicon administration, or clone it with an Application Basic credential for OAuth, discovery and OBO. The cli-session feature that starts and verifies direct Carbon login challenges is reserved for the official CLI; normal Application integrations begin login only with an SLT.

What it deliberately does not cover

Platform-administrator routes, inbound provider webhooks and the browser-hosted login/SSO redirects are absent. Those belong to the IAM operator, provider, and browser. The client also does not store sessions, refresh credentials automatically, cache authorization, or choose a retry policy for your application.

The design rule

Inputs with security meaning stay visible at the call site. A mutating method takes a Mutation; an optimistic update takes the current resource version; a privileged mutation takes a step-up assertion; and a test-plane call carries an EnvironmentKey. That makes accidental omission a compile-time or service error instead of hidden client state.

JSON Merge Patch has three states. For generated fields typed Option<Option<T>>, None omits the field and leaves it unchanged, Some(None) sends JSON null and clears it, and Some(Some(value)) replaces it.

Actual request behavior

Organization SSO

client.sso() exposes get, setup_link, test, and disable. Setup links live five minutes. Disable takes the current SSO configuration version and a Mutation carrying a verified-channel organization.sso_change assertion bound to the organization's internal UUID. The browser authorization and callback remain hosted IAM flows, not SDK methods, and SSO never creates a Carbon account.

Where to go next

Start with Connecting, then sign users in with an SLT, manage tokens, delegate between Applications, and verify webhooks. Use a testing environment to prove both successful and rejected cross-plane flows before production. The crate README contains the complete group index and organization/SSO examples.