v0.0.59
Summary
This release introduces Google Sign-In across the Juno ecosystem.
You can now implement this new authentication flow in your projects, giving your users a familiar and secure way to log in with their Google accounts.
The process happens directly within your Satellite using the OpenID Connect standard, so you keep ownership of your infrastructure and user data (aside from the obvious need to create a Google project for credentials).
This new method is also available in the Juno Console, making it easier for new developers to join the platform.
For setup details, usage examples, and the story behind the release, check out the blog post:
👉 Google Sign-In Comes to Juno
Overview
| Module | Version | Breaking changes |
|---|---|---|
| Console | v0.1.4 | ️ ️ |
| Observatory | v0.1.1 | ️ ️ |
| Satellite | v0.1.5 | ️ ️ |
| Sputnik | v0.1.6 | ️ |
| Crates | Version | Breaking changes |
|---|---|---|
junobuild-auth | v0.1.0 | 🆕 |
junobuild-cdn | v0.4.0 | ⚠️ |
junobuild-collections | v0.2.5 | ️ |
junobuild-satellite | v0.3.0 | ⚠️ |
junobuild-shared | v0.4.0 | ⚠️️ |
junobuild-storage | v0.4.0 | ⚠️️️ |
junobuild-utils | v0.1.4 | ️ |
[!NOTE] None of the breaking changes listed above affect your Serverless Functions developed in Rust or TypeScript.
| Library | Version | Breaking changes |
|---|---|---|
@junobuild/auth | v1.0.0 | 🆕 |
@junobuild/admin | v3.0.1 | |
@junobuild/analytics | v0.2.9 | |
@junobuild/cdn | v2.0.1 | |
@junobuild/cli-tools | v0.9.0 | ️ |
@junobuild/config-loader | v0.4.6 | |
@junobuild/config | v2.6.0 | |
@junobuild/core | v3.1.0 | |
@junobuild/core-standalone | v3.1.0 | |
@junobuild/did-tools | v0.3.4 | |
@junobuild/errors | v0.1.5 | |
@junobuild/functions | v0.4.0 | |
@junobuild/ic-client | v4.0.0 | |
@junobuild/storage | v2.0.0 | |
@junobuild/utils | v0.2.2 |
[!NOTE] The JavaScript libraries have been tagged with a major version, mainly to highlight recent changes and because some peer dependencies have been upgraded to use the new
@icp-sdkorganization. No breaking changes are expected.
| CLI | Version | Breaking changes |
|---|---|---|
@junobuild/cli | v0.10.1 |
| Plugins | Version | Breaking changes |
|---|---|---|
@junobuild/vite-plugin | v4.4.0 | |
@junobuild/nextjs-plugin | v4.5.0 |
| Docker | Version | Breaking changes |
|---|---|---|
@junobuild/skylab | v0.3.12 | |
@junobuild/satellite | v0.3.12 | |
@junobuild/console | v0.3.12 |
| GitHub Action | Version | Breaking changes |
|---|---|---|
junobuild/juno-action | v0.4.23 |
Changes
Here is an overview of the changes included in this release:
Console (Backend)
The Console's backend has been updated with the following changes:
Features
- Added support for Google authentication using the new crate
junobuild_auth. - Exposed two new endpoints:
authenticateandget_delegation. - Generate a salt (using
raw_rand) when not yet defined during configuration.
Refactoring
- Implemented various changes and a new strategy to accommodate the new features.
- Moved and renamed modules for pattern consistency across the codebase.
Console (Frontend)
The Console UI/UX has been improved as follows:
Features
- Added support for Google authentication using the new library
@junobuild/auth. - Display user details (name, email, profile picture) in the user menu.
- Updated CSP to allow images from
*.googleusercontent.com. - Extended the authentication view to support the Google provider and related data (name, email, profile picture).
- Added filter, sort, and refresh options to the users table.
- Migrated to
@icp-sdk/core,@icp-sdk/auth, and@icp-sdk/canistersdependencies and imports. - Introduced a loader state guard around the authentication setup.
- Removed the deprecated NFID provider from the static provider list.
- Wrapped the
AuthClientin a singleton, implemented a custom storage layer, and added tab sync for sign-in/sign-out events. - Renamed Continue with Internet Identity to Continue with Identity.
- Removed support for sign-in with
identity.ic0.app. - Moved tabs and warnings inside the Satellite loader guard.
- Applied separate list filters per view.
- Updated the social image.
- Completed Chinese translations.
- Moved layout title into the navbar.
- Display 9 characters for snapshot IDs.
- Added USD amount display when sending tokens.
Fix
- Added missing focus-visible styles to menu items.
Satellite
The Satellite has been updated with similar features and refactoring as the Console to support authentication with Google.
Mission Control
No changes released in this version.
Orbiter
No changes released in this version.
Observatory
The Mission Control has been updated as follows:
Features
- Periodically fetches and caches Google public keys required for OpenID authentication.
- Added
start_openid_monitoringandstop_openid_monitoringguarded endpoints to start or stop the monitoring process that retrieves JWKS using HTTPS outcalls. - Introduced a new endpoint
get_openid_certificate, used by Satellites and the Console to retrieve the latest set of fetched public keys.
Refactoring
- Implemented various changes and a new strategy to accommodate the new features.
- Moved and renamed modules for pattern consistency across the codebase.
Sputnik
Sputnik inherits the improvements of the Satellite.
Serverless Functions
Upgrade your Rust Serverless Functions using the following crates:
[!IMPORTANT]
Upgradejunobuild-satelliteiteratively to ensure compatibility.
[dependencies]
candid = "0.10.19"
ic-cdk = "0.18.5"
ic-cdk-macros = "0.18.5"
serde = "1.0.225"
serde_cbor = "0.11.2"
junobuild-satellite = "0.3.0"
junobuild-macros = "0.1.1"
junobuild-utils = "0.1.4"