pub struct CredentialsService { /* private fields */ }Implementations§
Source§impl CredentialsService
impl CredentialsService
Sourcepub fn new() -> CredentialsService
pub fn new() -> CredentialsService
Create a new CredentialsService with default path (~/.mecha10/credentials.json)
Sourcepub fn with_path(path: PathBuf) -> CredentialsService
pub fn with_path(path: PathBuf) -> CredentialsService
Create a CredentialsService with a custom credentials path (for testing)
Sourcepub fn credentials_path(&self) -> &PathBuf
pub fn credentials_path(&self) -> &PathBuf
Get the path to the credentials file
Sourcepub fn load(&self) -> Result<Option<Credentials>, Error>
pub fn load(&self) -> Result<Option<Credentials>, Error>
Load credentials from disk, or synthesize them from MECHA10_API_KEY if set.
The env var takes priority and is the non-interactive path for an ephemeral/service
context (e.g. a Kestra-dispatched trainer container carrying the control-plane
service key) that has no ~/.mecha10/credentials.json from an interactive
auth login. Checking it here - not just in a higher-level get_api_key helper -
means every existing caller (get_api_key, is_logged_in, get_user_info, and
direct load() callers like handle_config_pull’s RobotConfigClient::with_user_id)
picks it up with no call-site changes. user_id/email are sentinels: nothing
downstream of this crate treats them as a real identity for a service-keyed caller
(mirrors mecha10-api’s own AuthUser { user_id: "control-plane", .. } for the same
key, jobs/auth.rs) - mecha10-api disambiguates a service key from a real user key
by the key’s value, not by whatever user_id accompanies it.
Returns None if neither the env var nor the credentials file is present.
Sourcepub fn save(&self, credentials: &Credentials) -> Result<(), Error>
pub fn save(&self, credentials: &Credentials) -> Result<(), Error>
Save credentials to disk
Creates the ~/.mecha10 directory if it doesn’t exist
Sourcepub fn get_api_key(&self) -> Result<Option<String>, Error>
pub fn get_api_key(&self) -> Result<Option<String>, Error>
Get API key from stored credentials (or MECHA10_API_KEY - see load’s doc comment).
Returns None if not logged in or credentials are invalid
Sourcepub fn is_logged_in(&self) -> bool
pub fn is_logged_in(&self) -> bool
Check if user is logged in (has valid credentials)
Trait Implementations§
Source§impl Default for CredentialsService
impl Default for CredentialsService
Source§fn default() -> CredentialsService
fn default() -> CredentialsService
Auto Trait Implementations§
impl Freeze for CredentialsService
impl RefUnwindSafe for CredentialsService
impl Send for CredentialsService
impl Sync for CredentialsService
impl Unpin for CredentialsService
impl UnsafeUnpin for CredentialsService
impl UnwindSafe for CredentialsService
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more