Skip to main content

Crate smbcloud_ascapi_frontend

Crate smbcloud_ascapi_frontend 

Source
Expand description

Operations shared by the ascapi command line and its MCP server.

Both surfaces need the same things: resolve credentials, call the App Store Connect client, and shape the result into something worth showing a human or handing a model. Putting that here means the two front ends cannot drift, and in particular that the ordering guarantee in certificates::issue_certificate (private key written before the network call) has exactly one implementation.

Two rules the result types are built around, because one of the consumers is a language model:

  • No key material in a result. certificates::IssuedCertificate carries the path a key was written to, never the key. Enforced by construction rather than filtered at the edge, since a filter is one refactor away from being bypassed.
  • No certificate bodies either. They are large, never needed to decide what to do next, and would otherwise land in a transcript. profiles::ProfileSummary applies the same rule to profileContent, and profiles::download_profile returns the path it wrote instead.

Re-exports§

pub use certificates::certificate_type_from_str;
pub use certificates::issue_certificate;
pub use certificates::CertificateSummary;
pub use certificates::IssuedCertificate;
pub use enums::bundle_id_platform_from_str;
pub use enums::display_type_from_str;
pub use enums::platform_from_str;
pub use env::api_key_from_env;
pub use profiles::download_profile;
pub use profiles::profile_type_from_str;
pub use profiles::DownloadedProfile;
pub use profiles::ProfileSummary;
pub use time::is_expired;
pub use time::now_iso8601;

Modules§

certificates
Certificate operations shared by both front ends.
enums
String to enum mapping for values that arrive as text from a command line or a tool call.
env
Credential resolution from the environment.
profiles
Provisioning profile operations shared by both front ends.
time
Timestamp helpers for comparing against App Store Connect’s expiry strings without a date-parsing dependency.