Skip to content

v0.0.59

Choose a tag to compare

@peterpeterparker peterpeterparker released this 10 Nov 11:50
· 587 commits to main since this release
596dbed

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

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-sdk organization.
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.4.7
@junobuild/satellite v0.4.7
@junobuild/console v0.4.7
GitHub Action Version Breaking changes
junobuild/juno-action v0.4.24

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"