Skip to main content

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

auth-screenshot

Overview

ModuleVersionBreaking changes
Consolev0.1.4️ ️
Observatoryv0.1.1️ ️
Satellitev0.1.5️ ️
Sputnikv0.1.6
CratesVersionBreaking changes
junobuild-authv0.1.0🆕
junobuild-cdnv0.4.0⚠️
junobuild-collectionsv0.2.5
junobuild-satellitev0.3.0⚠️
junobuild-sharedv0.4.0⚠️️
junobuild-storagev0.4.0⚠️️️
junobuild-utilsv0.1.4

[!NOTE] None of the breaking changes listed above affect your Serverless Functions developed in Rust or TypeScript.

LibraryVersionBreaking changes
@junobuild/authv1.0.0🆕
@junobuild/adminv3.0.1
@junobuild/analyticsv0.2.9
@junobuild/cdnv2.0.1
@junobuild/cli-toolsv0.9.0
@junobuild/config-loaderv0.4.6
@junobuild/configv2.6.0
@junobuild/corev3.1.0
@junobuild/core-standalonev3.1.0
@junobuild/did-toolsv0.3.4
@junobuild/errorsv0.1.5
@junobuild/functionsv0.4.0
@junobuild/ic-clientv4.0.0
@junobuild/storagev2.0.0
@junobuild/utilsv0.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-sdk organization. No breaking changes are expected.

CLIVersionBreaking changes
@junobuild/cliv0.10.1
PluginsVersionBreaking changes
@junobuild/vite-pluginv4.4.0
@junobuild/nextjs-pluginv4.5.0
DockerVersionBreaking changes
@junobuild/skylabv0.3.12
@junobuild/satellitev0.3.12
@junobuild/consolev0.3.12
GitHub ActionVersionBreaking changes
junobuild/juno-actionv0.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: authenticate and get_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/canisters dependencies and imports.
  • Introduced a loader state guard around the authentication setup.
  • Removed the deprecated NFID provider from the static provider list.
  • Wrapped the AuthClient in 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_monitoring and stop_openid_monitoring guarded 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]
Upgrade junobuild-satellite iteratively 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"