Changelog
Version 0.2.0
August 2026
- Public facade: Introduced
ProjectAriaLoginas the single public entry point, exported from the top-level package. It owns the full token lifecycle behind the verbslogin,resume,logout, andadopt_token, and drives all user interaction (MMA instructions, password entry, encrypted-file passphrase) through async UI callbacks. The CLI was rewritten onto the facade. - Internal API boundary: The low-level auth/token/storage classes (
AuthenticationManager,TokenManager, the MMA and legacy authenticators, and the encrypted-storage store) now live in a privateprojectaria_login.login._internalsubpackage. Only theProjectAriaLoginfacade and its result, config, and callback types are public — import everything from the top-levelprojectaria_loginpackage. - Encrypted file fallback: When the system keyring is unavailable (headless servers, containers, CI/CD, minimal OS images), the login token is now persisted to an encrypted local file at
~/.projectaria/auth_token.enc, encrypted with AES-256-GCM using a key derived from thePROJECTARIA_TOKEN_KEYenvironment variable or an interactive passphrase. Removed the legacy plaintext file storage conversion. - Passphrase attempt limit: Interactive passphrase entry now gives up after a fixed number of attempts (and on non-interactive EOF) instead of looping forever, leaving the token unsaved with a clear message rather than hanging.
- Reusable login API: Exposed
register_commands()andrun_command()so other CLIs can mount thelogin/verify/logoutsubcommands without duplicating parser definitions. The auth flows now return a success/failure result that maps to the process exit code. - Shared commons package: Extracted the generic configuration, async HTTP, and GraphQL helpers into a new
projectaria-commonspackage (now an automatically-installed runtime dependency) so other Project Aria tools can reuse them without depending on the full login library.
Version 0.1.0
June 2026
- Initial release: Standalone
projectaria_loginauthentication library, extracted and refactored from the MPS CLI so other Aria tools can authenticate users without depending on the full MPS CLI. Includes the login library, a CLI wrapper, unit tests, Buck build targets, and a Python wheel build script. - Configurable retries: Added a config class that controls GraphQL request retry behavior.
- Integration features: Added a
save_tokenoption across the authentication flow, exposedHttpHelperas a property onRequestHelper, and exposed login URLs and docs as constants for easier integration with applications. - Relicensed project files under Apache License 2.0.