v0.0.66
Summary
This release introduces support for authentication with GitHub on the Juno Console.
Context
GitHub authentication in Juno uses an OpenID Connect-like flow that requires a proxy server to securely handle OAuth credentials. Unlike traditional OAuth implementations where the client secret must remain confidential, Juno's architecture necessitates a backend service to:
- Store and manage GitHub OAuth sensitive credentials (client ID and secret)
- Exchange authorization codes for access tokens without exposing secrets to the browser
- Generate JWT tokens for integration with Juno's authentication system
The Juno API serves as this proxy, providing secure OAuth token exchange and JWT generation. This new API is open-source and can be self-hosted, which you'll need if you implement the same flow in your Satellite in the future. The Juno Console uses a hosted instance at api.juno.build.
[!NOTE] Support for GitHub authentication within Satellites will follow in a future release.
Overview
| Module | Version | Breaking changes |
|---|---|---|
| Console | v0.3.2 | ️ |
| Observatory | v0.4.0 | ️ |
| Library | Version | Breaking changes |
|---|---|---|
@junobuild/admin | v4.0.1 | |
@junobuild/auth | v3.0.1 | ⚠️ |
@junobuild/core | v4.0.0 | ⚠️ |
@junobuild/config | v2.10.0 | |
@junobuild/errors | v0.2.1 |
What's Changed
- feat(frontend): display TCycles instead of T Cycles in wizard by @peterpeterparker in https://github.com/junobuild/juno/pull/2519
- test(e2e): adapt T Cycles -> TCycles by @peterpeterparker in https://github.com/junobuild/juno/pull/2517
- build(frontend): bump Svelte CVEs by @peterpeterparker in https://github.com/junobuild/juno/pull/2515
- build(core): bump ic-wasm v0.9.10 by @peterpeterparker in https://github.com/junobuild/juno/pull/2516
- style(frontend): circle background for internet computer logo by @peterpeterparker in https://github.com/junobuild/juno/pull/2520
- fix(frontend): filter documents race condition by @peterpeterparker in https://github.com/junobuild/juno/pull/2521
- feat(observatory): add open id provider as parameter to start and stop monitoring by @peterpeterparker in https://github.com/junobuild/juno/pull/2523
- build(backend): Update Rust version by @github-actions[bot] in https://github.com/junobuild/juno/pull/2363
- feat(auth): add support for preferred_username in open id data by @peterpeterparker in https://github.com/junobuild/juno/pull/2524
- feat(auth): support multi providers in authenticate / register by @peterpeterparker in https://github.com/junobuild/juno/pull/2528
- feat(auth): authenticate with GitHub by @peterpeterparker in https://github.com/junobuild/juno/pull/2527
- feat(frontend): bump Juno JS libs with authenticate breaking change in args by @peterpeterparker in https://github.com/junobuild/juno/pull/2530
- feat(core): GitHub authentication configuration by @peterpeterparker in https://github.com/junobuild/juno/pull/2531
- feat(frontend): inject env github client ID by @peterpeterparker in https://github.com/junobuild/juno/pull/2532
- feat(frontend): inject env github Juno API url by @peterpeterparker in https://github.com/junobuild/juno/pull/2533
- feat(observatory): restart github monitoring by @peterpeterparker in https://github.com/junobuild/juno/pull/2529
- feat(frontend): authenticate with GitHub by @peterpeterparker in https://github.com/junobuild/juno/pull/2518
- feat(frontend): allow api.juno.build in CSP connect-src by @peterpeterparker in https://github.com/junobuild/juno/pull/2536
- feat(frontend): allow avatars.githubusercontent.com in CSP img-src by @peterpeterparker in https://github.com/junobuild/juno/pull/2535
- feat(auth): use GitHub Apps by @peterpeterparker in https://github.com/junobuild/juno/pull/2537
Full Changelog: https://github.com/junobuild/juno/compare/v0.0.65...v0.0.66