Skip to content

Releases: junobuild/juno

v0.0.46

06 Mar 07:34
Compare
Choose a tag to compare

Summary

This release formalizes a few improvements delivered to the frontend in the Console. On one hand, "Backup" has been renamed to "Snapshot" because, strictly speaking, these are not true "Backups" (see documentation). Additionally, collections are now sorted alphabetically.

It also includes changes in the Satellite crate, which is currently shipped only as a patch and does not require any particular updates, as it contains improvements for ongoing development within Juno.

Overview

Note

No new versions of the modules (smart contracts) or libraries included.

Crates Version Breaking changes
junobuild-satellite 0.0.22-patch.5
junobuild-macros v0.0.5

Changes

Here is a list of changes included in this release:

Console (Frontend)

The console UI/UX has been improved as follows:

Features

  • Rename "Backup" to "Snapshot".
  • Sort collections alphabetically.
  • Sort the list of satellites in the navigation switcher.
  • Update the Subnets list.

Refactoring

  • Clean up rules context by extracting a common utility, adding some derived stores, and moving a loader.

Styles

  • Make the header opaque on scroll.

Satellite (Crate)

The Satellite crate library has been improved as follows:

Features

  • Expose additional document-related types for backend-side development.
  • Add new system hooks: on_init_sync, on_post_upgrade_sync, and on_init_random_seed.
  • Expose a system function: register_polyfill_memory.

Note: These new system functions should ideally not be used by developers.

Refactoring

  • Group randomness features within a single module.
  • Split hooks into submodules.
  • Move memory declaration to a dedicated submodule.
  • Move and export all related serverless functions to an SDK module.

Build

  • Set up a config.toml at the root of the repo to fix the documentation publication issue on docs.rs (related to getrandom_backend).
  • Fix the build toolchain error: '1.85.0-x86_64-unknown-linux-gnu' is not installed.

v0.0.45

18 Feb 15:59
Compare
Choose a tag to compare

Summary

This release primarily formalizes a delivery focused on frontend changes in the Console.

Firstly, Internet Identity now supports passkeys on both of its domains. This means it no longer matters whether you or your users sign in via identity.internetcomputer.org or identity.ic0.app—the registered identity should work seamlessly across both.

There are a few limitations, which is why II may prompt you to register your current device. However, today marks the end of the period when both domains were incompatible, causing sign-in issues for some users.

As a result, a new, clean sign-in page with a single call to action has been released.

If you experience any sign-in issues, you can still access the domain-specific method. Plus, if you scroll down on the login page, you’ll find a brand-new footer—kind of happy with that design!

Lastly, all frontend dependencies have been updated, and a new way to polyfill Node libraries had to be implemented since some plugins we were using were deprecated. The codebase was also migrated to ESLint v9.

Login

Overview

Note

No new versions of the modules (smart contracts), crates or libraries included.

Changes

Here is a list of changes included in this release:

Console (Frontend)

The console UI/UX has been improved as follows:

Features

  • Implement a new login page and footer for II cross-domain support, simplifying the UI/UX.
  • Update the list of subnets.
  • Add a new derived store $authNotSignedIn.

Build

  • Bump all dependencies.
  • Replace Node polyfill.

Chore

  • Migrate to ESLint v9.

v0.0.44

14 Feb 10:24
Compare
Choose a tag to compare

Summary

This new release wasn’t strictly scheduled for today, but funnily enough, it marks Juno’s second anniversary. Happy two years! 🥳

Making your applications secure and resilient is one of Juno’s core missions. While this release might not seem to introduce many visible changes—no new endpoints, for example—several improvements have been made under the hood, particularly in user management for your Satellites.

Notably, the default technical collection that synchronizes user data has been modified to reject updates unless provided by the controller. This allows for extending it with new administrative attributes, enabling features such as banning (or unbanning) users in your dApps. Banned users will no longer be able to retrieve, create, update, or delete any documents. Note that users can still delete their own subscription if they choose to.

Similarly, collections in Datastore and Storage now include a new logical attribute that lets you define a maximum number of changes (create, edit, delete) per user. This is particularly useful for preventing spam and excessive data generation. For example, in an app where users create posts, you can limit them to a maximum of 10,000 posts, preventing bad actors from generating millions of unnecessary entries.

Lastly, a new configuration option for authentication has been introduced, which can be useful if you want to reuse the same derivation origin across multiple Satellites.

Important

When updating your Satellite, if you use Datastore and Storage, we strongly recommend updating to the latest JavaScript libraries in your dApps as well.

banned

details

Overview

Module Version Breaking changes
Satellite 0.0.22 ⚠️
Crates Version Breaking changes
junobuild-satellite v0.0.22
junobuild-storage v0.0.15
junobuild-collections v0.0.11
junobuild-shared v0.0.24
junobuild-macros v0.0.4
Library Version Breaking changes
@junobuild/core v0.1.7
@junobuild/core-standalone v0.1.7
@junobuild/admin v0.1.5
@junobuild/analytics v0.1.2
@junobuild/storage v0.1.3
@junobuild/console v0.1.4
@junobuild/cli-tools v0.1.1
@junobuild/config v0.1.1
@junobuild/config-loader v0.1.1
@junobuild/utils v0.1.0 ⚠️
@junobuild/errors v0.0.4 🆕
CLI Version Breaking changes
@junobuild/cli v0.1.5
Plugins Version Breaking changes
@junobuild/vite-plugin v0.0.19
@junobuild/nextjs-plugin v0.0.13
Templates Version Breaking changes
create-juno v0.1.11
satellite-template v0.0.4
observatory-templates v0.0.3
Docker Version Breaking changes
@junobuild/satellite v0.0.46
@junobuild/console v0.0.46
@junobuild/action v0.0.38

Changes

Here is a list of changes included in this release:

Console (Backend)

No changes.

Console (Frontend)

The console UI/UX has been improved as follows:

Features

  • Support new collection option "Max changes per user" – i.e. make the field editable in collections.
  • Add the ability to ban (or unban) users.
  • Introduce a new modal that displays user details.
  • Display changes made by both users and collections.
  • Show a warning when max usage is reached.
  • Support the new external alternative origins configuration option.
  • Add a "Copy" function in the navbar for quick access to Wallet IDs.
  • Migrate remaining collections to Svelte v5.
  • Sort domains by created_at.
  • Move the memory selection to the advanced options in collections.

Styles

  • Fix launchpad cockpit overflow on mobile.
  • Fix canister row display in monitoring.
  • Review collapsible icons and alignment.
  • Ensure "error" text has white contrast for better readability.
  • Fix modal height on iOS.
  • Use only monochrome icon logos for II and NFID.
  • Improve the layout of "More options" by centering the call to action.

Fixes

  • Fix USD value not displaying in production due to KongSwap API changes.
  • Ensure toasts close automatically after timeout (Svelte v5 migration issue).
  • Prevent default strategy from being used if monitoring is disabled when creating modules.
  • Show submit button when a collection is set as immutable.

Build

  • Update dependencies.
  • Adapt Vitest reporters due to classic deprecation.

Satellite

The Satellite has been updated as follows:

Breaking Changes

  • Disallow users from editing their entries in the technical system collection #user.
  • Modify error messages to improve their structure in the form of a standardized namespace.

Features

  • Track (anonymous) user usage per collection. In other words, every change made by users to collections (except system collections) will be counted (and capped to avoid overflow). This requires the introduction of a new system collection #user-admin.
  • Delete entries in #user-admin when a user is deleted.
  • Implement assertions that prevent users from making any changes (create, edit, or delete) in the Datastore or Storage if the collection option "Max changes per user" is reached.
  • Introduce a new banned flag field within user data.
  • Implement guards to prevent banned users from querying or making any changes in the Datastore or Storage.
  • Improve user data validation by introducing deserialization assertions.
  • Add optional external alternative origins support to the authentication configuration.

Refactoring

  • Use store function to get_controllers in guards.
  • Rename inner() to into_inner().
  • Move various modules, functions, and constants to improve the structure of the crates and, by extension, their maintainability.

Build

  • Bump all dependencies.

Mission Control

No changes.

Orbiter

No changes.

Observatory

No changes.

Library

Please refer to the releases for details.

CLI

Please refer to the releases for details.

Plugins

Please refer to the releases for details.

Templates

Please refer to the create-juno and satellite-template releases for details.

GitHub Action

Please refer to the releases for details.

Docker

Please refer to the releases for details.

Proxy

Please refer to the releases for details.

Repo Tooling

The local development tools of this repo and pipelines have been updated as follows.

Features

  • Introduce the flag --cfg getrandom_backend="custom" required by getrandom in all build scripts.
  • Simplify touch in the Docker build.
  • Refactor the workspace to group tests and introduce test_satellite as a fixture that uses Serverless Functions.

Build

  • Bump Rust version.

Serverless Functions

If you are using Serverless Functions, you can upgrade the following crates accordingly:

[dependencies]
candid = "0.10.13"
ic-cdk = "0.17.1"
ic-cdk-macros = "0.17.1"...
Read more

v0.0.43

24 Jan 14:01
21a266c
Compare
Choose a tag to compare

Summary

This new release contains only frontend changes to the Console, with little visual improvements. Some of the changes are related to maintenance, while others aim to optimize loading monitoring, memory usage, and module statuses.

Overview

Note

No new versions of the modules (smart contracts), crates or libraries included.

Changes

Here is a list of changes included in this release:

Console (Frontend)

The console UI/UX has been improved as follows:

Features

  • Sort the list of satellites alphabetically to maintain consistency in the order on the launchpad.
  • List only the running modules when creating monitoring and on the CLI login page. Monitoring cannot be activated for a stopped module, and a controller cannot be attached to a stopped module.
  • Prevent Satellites and Orbiters from being stopped or deleted if monitoring has not been disabled.
  • Cleaner navigation without /?s= in the URL when no satellite is selected.
  • Remove spinner status sync. Over time, this indication has lost meaning since other real-time values were updated without a particular loading animation.
  • Create loaders for loading module-synced data (status, memory, etc.) and monitoring. This aligns and cleans up the loading process by creating a wrapper loader declared a single time around an entire view instead of being nested.
  • For the same reasons, create stores to provide values within the application. These are actually duplicated to provide two ways to retrieve the information: one being updated per canister and another store being updated in bulk when all data is available. This aims to reduce the number of re-renders if necessary.
  • Display ICP up to 8 decimal places (instead of a maximum of 4).
  • Update the list of subnets.
  • Improve and review types with more Zod schemas.
  • Migrate deprecated $page derived store to SvelteKit/Svelte v5.
  • Increase agent-js retry attempts to 10 to address the random issue Invalid basic signature: EcdsaP256 signature could not be verified thrown by the library or the IC after modules are created.

Fixes

  • The assertion of the maximum amount that could be used was incorrectly adding the fees to the balance instead of reducing them.
  • Empty subnet type incorrectly displayed.

Styles

  • Improved backdrop blur effect.
  • Fixed trimmed Mission Control status indicator on the launchpad when the screen is a few pixels wider than the large breakpoint.

Refactoring

  • Various refactoring of naming and moving modules for readability.
  • Use fromNullishNullable from DFINITY utils instead of a custom implementation.

Build

  • Bump DFINITY libraries (ledger-icp, ledger-icrc, signer, etc.).
  • Bump all development dependencies (Svelte, Vite, etc.).
  • Add DFINITY Zod schemas.
  • Resolve SvelteKit breaking changes by adding a svelte-kit sync as a prepare script.
  • Resolve Vitest deprecation when timeout is set as the third parameter.

Chore

  • Fix typo in comments.
  • Run test suites in CI when package-lock.json is changed as well.

v0.0.42

17 Jan 14:36
5868f8a
Compare
Choose a tag to compare

Summary

This new release is dedicated solely to improving the wallet and enhancing the related user experience in the Console. Therefore, it contains only frontend changes in the related dapp.

The most notable improvement is that the wallet balance is now displayed in dollars, thanks to our friend at KongSwap for providing a (Web2) endpoint to fetch the USD exchange value for ICP. This enhancement makes it easier to understand the value of funds at a glance, particularly for newcomers in the crypto sphere.

In addition, the wallet now caches public information, such as the balance and recent transactions, in IndexedDB, which is cleared upon logout. This change improves the ux by making the interface snappier, especially during reloads.

The number of calls to load the balance has been reduced, and a few update calls have been added to improve the certification of the displayed data, ensuring more secure information.

Overview

Note

No new versions of the modules (smart contracts), crates or libraries included.

Changes

Here is a list of changes included in this release:

Console (Frontend)

The console UI/UX has been improved as follows:

Features

  • Display wallet balance in dollars.
  • Cache the dollar exchange value and refresh it periodically. If the timestamp is too far in the past, display the balance in its native cryptocurrency, ICP, instead of dollars.
  • Review the top-up wizard in terms of design and experience, making it consistent with the rest of the application, notably with the introduction of a review step.
  • Review the sending ICP wizard for the same reason, ensuring consistency with the addition of a progress component and a review step.
  • Review the transfer cycles modal with similar improvements as above.
  • Cache the wallet in IndexedDB for a snappier UI/UX. The store is cleared on logout.
  • Reload credits (if necessary) after creating a new Satellite or Orbiter.
  • Refresh the wallet balance after creating a new Satellite or Orbiter, as well as after a top-up or sending ICP.
  • Move developer credits to "preferences." While not strictly a better place to display the information, it wasn’t related to the wallet and thus had to be moved elsewhere.
  • Update the wording of modal wizards for a tone that’s a bit more "cool kids."
  • Move "Launchpad" to the user menu. Adding an entry point in the main menu without selecting a Satellite confused some users based on their feedback.
  • Display dollars under the ICP input field, giving users a sense of the USD value when preparing transactions such as sending ICP or topping up.
  • Introduce a generic store pattern to load certified data.
  • Move the cycles icon displayed when module statuses are refreshed. The layout was shifting when it appeared, which was annoying.
  • Mark stores as uncertified when not yet converted to a query+update strategy.
  • Use a query+update strategy to certify wallet data and the Mission Control ID fetched for returning users.
  • Add a utility to perform query+update calls for enhanced security through certification.
  • Use Zod to validate specific types such as Principal as text.
  • Update the list of subnets.

Fixes

  • Fixed the infinite scroll component, which was broken after the migration to Svelte v5 and failed to detect scrolling. As a result, old wallet transactions were not displayed.
  • Show navigation options only on the home page for new users, not within the dapp.

Styles

  • Fancy balance display on the wallet.
  • Adapt confetti colors to match the theme.
  • Fixed the "Rocket" icon, which was incorrect in dark mode.
  • Inherit the primary color in the skeleton.

Refactoring

  • Introduce a type for MissionControlId instead of using Principal (I’m starting to appreciate more expressive types).
  • Prefix various modules and folders to better express their relative usage.
  • Reduce verbosity with the utility fromNullishNullable.
  • Migrate various components and patterns to Svelte v5.
  • Replace $page, which is deprecated in Svelte v5.
  • Replace !notEmptyString with isEmptyString.

Chore

  • Generate a certified version of the DID files by removing the ['query'] keyword. Can’t believe this is still necessary nowadays.

v0.0.41

12 Jan 09:29
Compare
Choose a tag to compare

Summary

This version focuses on formalizing the improvements and fixes required in the Observatory and Console UI to finalize the previous version, v0.0.40. Additionally, it aims to generate a WASM module suitable for embedding in juno-docker.

Overview

Module Version Breaking Changes
Observatory 0.0.9 None

Changes

Here is a list of changes included in this release:

Console (Frontend)

The console UI/UX has been improved as follows:

Features

  • Ignore annoying 1Password popups in all input fields.
  • Add a rocket icon for the launchpad.

Fixes

  • Corrected inverted monitoring sentence (fund cycles and min threshold).

Styles

  • Applied purple color theme to standalone routes.

Observatory

The Observatory has been updated as follows:

Features

  • Removed the post_upgrade hook for data migration.

Fixes

  • Corrected HTTPS outcall cycle costs on mainnet.
  • Fixed missing transform in the implementation.

v0.0.40

10 Jan 14:59
b59b6d5
Compare
Choose a tag to compare

Summary

Happy new year! 🥳

Keeping your application running smoothly is essential. That's why this release introduces a brand-new monitoring feature to ensure your Mission Control (wallet) and modules — Satellites and Orbiters (Analytics) — remain operational with an optional feature that automatically refills cycles when balances run low.

Learn more about how to set up and use monitoring in the documentation.

Note: This new monitoring feature fully replaces the previous solution, which is why it contains breaking changes.

Overview

Module Version Breaking changes
Mission Control 0.0.14 ⚠️
Observatory 0.0.8 ⚠️
Crates Version Breaking changes
junobuild-satellite 0.0.21-patch.4
junobuild-storage v0.0.14
junobuild-collections v0.0.10
junobuild-shared v0.0.23
Library Version Breaking changes
@junobuild/core v0.1.0 ⚠️
@junobuild/core-peer v0.1.0 ❌ Deprecated
@junobuild/core-standalone v0.1.0 🆕
@junobuild/admin v0.1.1
@junobuild/analytics v0.0.31
@junobuild/storage v0.1.1
@junobuild/console v0.1.1
CLI Version Breaking changes
@junobuild/cli v0.1.0
Plugins Version Breaking changes
@junobuild/vite-plugin v0.0.19
@junobuild/nextjs-plugin v0.0.13
Templates Version Breaking changes
create-juno v0.1.0
satellite-template v0.0.4 🆕
observatory-templates v0.0.3 🆕
Docker Version Breaking changes
@junobuild/satellite v0.0.44
@junobuild/console v0.0.44
@junobuild/action v0.0.36

Changes

Here is a list of changes included in this release:

Console (Backend)

No changes.

Console (Frontend)

The console UI/UX has been improved as follows:

Features

  • Introduce a comprehensive new monitoring dashboard, wizard, and management tools.
  • Redesign the 'Send' feature of the wallet with improved focus and usability.
  • Enhance subnet selection by including metadata.
  • Add support for European and fiduciary subnets.
  • Update navigation by moving Analytics, Mission Control, Wallet, and Monitoring pages to the main split area.
  • Integrate the same pages into the launchpad, displaying Analytics and Monitoring with a special color if not yet activated.
  • Combine web workers into a single entry point to optimize the bundle by shipping a single worker.

Styles

  • Add new theme colors for Analytics, Mission Control, Wallet, and Monitoring sections.
  • Review secondary and tertiary colors in existing themes.
  • Provide an option to manually refresh the timestamp of the last backup.

Fix

  • Correct the display of timestamps for ICP transactions.

Refactoring

  • Refactor multiple stores and their related functions to load data, reducing code duplication and standardizing patterns.

Build

  • Update dependencies.
  • Improve regex patterns for parsing CSP.

Satellite

No changes.

Mission Control

The Mission Control have been updated as follows:

Breaking Changes

  • Remove the previous monitoring feature that collected status every hour when triggered by the Observatory.

Features

  • Introduce a new monitoring feature that automatically refills the wallet and modules (see documentation).
  • Add new settings and config to the state to support the new feature and provide Mission Control owners with configuration options.
  • Implement stable memory to collect up to a month of monitoring history.
  • Add a call to the Observatory triggered by an opt-in notification to send an email to the developer.
  • Expose new endpoints, reserved for controllers: get_user_data, get_metadata, get_config, set_config, and get_settings.
  • Expose additional endpoints, reserved for controllers, for monitoring purposes.

Refactoring

  • Rename the state variable to heap.
  • Extract STATE into a dedicated memory module.

Build

  • Integrate Canfund.
  • Remove unused dependencies and add those required for the new monitoring feature.

Orbiter

No changes.

Observatory

The Observatory have been updated as follows:

Breaking Changes

  • Remove all the existing code, except the functions related to controllers, effectively removing the previous monitoring feature.

Feature

  • Implement the new feature that sends notifications when an automatic refill occurs (if the user has opted-in).
  • Include and parse the new Observatory template to compose the email sent to the developer.
  • Use HTTP Outcalls to push notifications to the proxy.
  • Track notifications by marking them as sent or failed based on the success of transmission.
  • Add a new endpoint: list_controllers.

Refactoring

  • Move heap to the store module.

Build

  • Update dependencies.
  • Add the time crate to format dates.

Library

Please refer to the releases for details.

CLI

Please refer to the releases for details.

Plugins

Please refer to the releases for details.

Templates

Please refer to the create-juno and satellite-template releases for details.

GitHub Action

Please refer to the releases for details.

Docker

Please refer to the releases for details.

Proxy

Please refer to the releases for details.

v0.0.39

29 Nov 15:47
Compare
Choose a tag to compare

Summary

Great news! This release introduces a single, long-awaited feature: support for creating and restoring backups for your Satellites, Mission Control, and Orbiters (analytics). 🥳

It works as follows: Right now, only one backup per module is allowed, as determined by the IC. You can create, restore, and delete backups manually for each module whenever you need. Backups are also automatically created during the upgrade process to take snapshots when upgrading to a new version. If you prefer, you can opt out in the advanced options to skip creating a backup or avoid overwriting an existing one.

Note

No new versions of the modules (smart contracts) included.

Overview

Module Version Breaking changes
---- ----
Crates Version Breaking changes
---- ----
Library Version Breaking changes
@junobuild/admin v0.0.61
CLI Version Breaking changes
@junobuild/cli v0.0.87

Changes

Here is a list of changes included in this release:

Console (Backend)

No changes.

Console (Frontend)

The console UI/UX has been improved as follows:

Features

  • Support for creating, restoring, and deleting backups.
  • Automatic creation of backups during the upgrade process, with options to opt-out.
  • Create a generic store to hold data related to canisters and integrated it for subnet information.
  • Renamed "Settings" to "Setup" in the module's tabs.

Satellite

No changes.

Mission Control

No changes.

Orbiter

No changes.

Observatory

No changes.

Library

Please refer to the releases for details.

CLI

Please refer to the releases for details.

GitHub Action

Please refer to the releases for details.

v0.0.38

27 Nov 17:35
edfaf38
Compare
Choose a tag to compare

Summary

This release focuses on CLI, local development, and Console client-side improvements, with no new versions of the modules (smart contracts) included.

The main new features include the addition of links to cycle.express to allow developers to buy cycles, as well as various improvements to the upgrade process, including support for upgrading large WASM files (> 2MB), which is particularly useful for Serverless Functions. The UI for upgrades has been redesigned to showcase the various steps of the process, and functionality has been added to stop and restart modules before upgrades to improve state persistence.

Overview

Module Version Breaking changes
---- ----
Crates Version Breaking changes
---- ----
Library Version Breaking changes
@junobuild/core v0.0.63
@junobuild/core-peer v0.0.29
@junobuild/admin v0.0.60
@junobuild/analytics v0.0.30
@junobuild/storage v0.0.8
@junobuild/console v0.0.11
@junobuild/utils v0.0.27
@junobuild/cli-tools v0.0.16
@junobuild/did-tools v0.0.4
@junobuild/config-loader v0.0.7
CLI Version Breaking changes
@junobuild/cli v0.0.85
Plugins Version Breaking changes
@junobuild/vite-plugin v0.0.19
@junobuild/nextjs-plugin v0.0.13
Templates Version Breaking changes
create-juno v0.0.32
satellite-template v0.0.3 🆕
Docker Version Breaking changes
@junobuild/satellite v0.0.42
@junobuild/console v0.0.42
@junobuild/action v0.0.35

Changes

Here is a list of changes included in this release:

Console (Backend)

No changes.

Console (Frontend)

The console UI/UX has been improved as follows:

Features

  • Introduce chunked WASM upgrades, enabling support for larger WASM files (>2MB).
  • Stop and restart modules during upgrades to enhance state persistence.
  • Display upgrade progress using a stepper with support for error handling.
  • Add links to cycle.express for buying cycles.
  • Cache agents and actors per module to improve performance and reduce overhead.
  • Display Satellite names in the delete confirmation modal for better clarity.
  • Support local development sign-in on Safari with the Console.
  • Show analytics filters even when the initial load fails.

Fixes

  • Resolve pagination issues for keys in selected collections.
  • Fix refreshing and transferring cycles functionality.
  • Ensure the transfer cycles modal opens as expected.

Style

  • Adjust input heights for a more consistent UI.
  • Apply a theme background color during loading for visual feedback.
  • Dark theme darker.

Satellite

No changes.

Mission Control

No changes.

Orbiter

No changes.

Observatory

No changes.

Library

Please refer to the releases for details.

CLI

Please refer to the releases for details.

Plugins

Please refer to the releases for details.

Templates

Please refer to the create-juno and satellite-template releases for details.

GitHub Action

Please refer to the releases for details.

Docker

Please refer to the releases for details.

v0.0.37

17 Nov 19:41
Compare
Choose a tag to compare

Summary

In response to the recent cost increase for creating new canisters on the Internet Computer (from 0.1 TCycles to 0.5 TCycles, a +400% increase, proposal 134032), this release adjusts the allocation of cycles for new modules, increasing from 1.1 TCycles to 1.6 TCycles. Consequently, the pricing for additional modules is increased from 0.3 ICP to 0.4 ICP.

Feature-wise, this release introduces a new option for Satellite Authentication and Collections, enabling developers to set a maximum number of updates per minute.

Last but not least, every new Satellite now launches with a sleek and informative default web page—delivering a great first impression right out of the box! 🚀✨

A screenshot of the template

Overview

Module Version Breaking changes
Console 0.0.14
Satellite 0.0.21
Crates Version Breaking changes
junobuild-satellite 0.0.21-patch.1
junobuild-storage v0.0.12
junobuild-collections v0.0.9
junobuild-shared v0.0.22
junobuild-macros v0.0.3
Library Version Breaking changes
@junobuild/core v0.0.63
@junobuild/core-peer v0.0.29
@junobuild/admin v0.0.58
@junobuild/analytics v0.0.30
@junobuild/storage v0.0.8
@junobuild/console v0.0.11
CLI Version Breaking changes
@junobuild/cli v0.0.84
Plugins Version Breaking changes
@junobuild/vite-plugin v0.0.19
@junobuild/nextjs-plugin v0.0.13
Templates Version Breaking changes
create-juno v0.0.32
satellite-template v0.0.3 🆕
Docker Version Breaking changes
@junobuild/satellite v0.0.40
@junobuild/console v0.0.40
@junobuild/action v0.0.34

Changes

Here is a list of changes included in this release:

Console (Backend)

The Console backend has been improved as follows:

Features

  • Adjusts the allocation of cycles for new modules, increasing from 1.1 TCycles to 1.6 TCycles.
  • Adapts to API changes required for the introduction of rate configuration.

Fixes

  • Resolves semver to fetch the latest version of the WASM for spinning up.

Build

  • Bump ic_cdk.

Console (Frontend)

The console UI/UX has been improved as follows:

Features

  • Adds configuration to authentication, allowing developers to change or set the main domain ("derivation origin").
  • Removes updates to the derivation origin from the custom domain wizard. Now, it only asks if a domain should be used as the main domain for authentication unless the configuration is already set.
  • Supports setting a maximum number of updates per minute for Collections and Authentication.
  • Loads analytics statistics with fallback behavior, ensuring partial metrics display even if some cannot be gathered.
  • Displays options for collections in a collapsible block.
  • Adds confetti effect when receiving ICP.
  • Uses query calls to fetch Index transactions and balances.
  • Migrates additional components to Svelte v5.
  • Sets autocomplete to off for input fields to prevent suggestions of previously entered text.
  • Updates CLI login page layout by incorporating a collapsible block for options.

Styles

  • Changes the main HTML font size to 14px, improving layout and allowing more information to be displayed on-screen for better overview.
  • Fixes header logo layout shift during navigation.
  • Aligns the main domain checkmark in the hosting table.

Satellite

The Satellites have been updated as follows:

Features

  • Launches new Satellites with a sleek and informative default web page.
  • Adds serverless function hooks on_init and on_post_upgrade.
  • Introduces new functions delete_filtered_docs and delete_filtered_assets to delete elements using parameters similar to those for listing documents and assets, respectively.
  • Returns the new rule on set_rule for collections (instead of void).
  • Makes system collections editable under certain circumstances, allowing developers to set a maximum number of user updates—such as new sign-ins—per minute.
  • Adds rate configuration for collections, enabling developers to define a maximum number of updates per minute.

Build

  • Bump ic_cdk.

Mission Control

No changes.

Orbiter

No changes.

Observatory

No changes.

Library

Please refer to the releases for details.

CLI

Please refer to the releases for details.

Plugins

Please refer to the releases for details.

Templates

Please refer to the create-juno and satellite-template releases for details.

GitHub Action

Please refer to the releases for details.

Docker

Please refer to the releases for details.