Releases: junobuild/juno
v0.0.39
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.
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
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
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! 🚀✨
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
tooff
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
andon_post_upgrade
. - Introduces new functions
delete_filtered_docs
anddelete_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.
v0.0.36
Summary
This release focuses on client-side improvements, with no new versions of the modules (smart contracts) included. The Console frontend has been migrated to Svelte v5 (few leftovers for future iterations). A new feature has been added, allowing users to receive ICP from OISY directly within the Console
Overview
Module | Version | Breaking changes |
---|---|---|
---- | ---- |
Crates | Version | Breaking changes |
---|---|---|
---- | ---- |
Library | Version | Breaking changes |
---|---|---|
@junobuild/core |
v0.0.62 | |
@junobuild/core-peer |
v0.0.28 | |
@junobuild/admin |
v0.0.57 | |
@junobuild/analytics |
v0.0.29 | |
@junobuild/storage |
v0.0.7 | ️ |
@junobuild/console |
v0.0.10 | ️ |
@junobuild/utils |
v0.0.26 | ️ |
@junobuild/cli-tools |
v0.0.15 | ️ |
@junobuild/did-tools |
v0.0.3 | ️ |
@junobuild/config-loader |
v0.0.6 | ️ |
CLI | Version | Breaking changes |
---|---|---|
@junobuild/cli |
v0.0.82 |
Docker | Version | Breaking changes |
---|---|---|
@junobuild/satellite |
v0.0.39 | |
@junobuild/console |
v0.0.39 | |
@junobuild/action |
v0.0.33 |
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
- Migrate components to Svelte v5 (few leftovers).
- Receive ICP tokens with OISY using the oisy-wallet-signer relying party client.
- Reload all satellites after attach.
- Use collapsible on Cli login page to "hide" upfront advanced options.
- Use eslint-config-oisy-wallet to ease collaboration.
Fix
- Transaction with memo "Sent" was displayed as "Received".
Build
- Bump Svelte v5.
- Bump Sass.
- Bump Juno libraries to latest.
- Bump Agent-js
v2.1.3
.
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.
Docker
Please refer to the releases for details.
v0.0.35
Summary
This release brings two features to the Console: enabling developers to spin up Satellites or Orbiters in the subnet of their choice and adding the ability to send ICP from your wallet to the outside world.
Overview
Module | Version | Breaking changes |
---|---|---|
Console | 0.0.13 | |
Observatory | 0.0.7 | |
Mission Control | 0.0.13 |
Crates | Version | Breaking changes |
---|---|---|
junobuild-satellite |
0.0.20-patch.4 | |
junobuild-storage |
v0.0.11 | ️ |
junobuild-collections |
v0.0.8 | ️ |
junobuild-shared |
v0.0.21 | |
junobuild-utils |
v0.0.4 |
Library | Version | Breaking changes |
---|---|---|
@junobuild/core |
v0.0.61 | |
@junobuild/core-peer |
v0.0.27 | |
@junobuild/admin |
v0.0.56 | |
@junobuild/analytics |
v0.0.28 | |
@junobuild/storage |
v0.0.6 | ️ |
@junobuild/console |
v0.0.9 | ️ |
CLI | Version | Breaking changes |
---|---|---|
@junobuild/cli |
v0.0.80 |
Docker | Version | Breaking changes |
---|---|---|
@junobuild/satellite |
v0.0.38 | |
@junobuild/console |
v0.0.38 | |
@junobuild/action |
v0.0.32 |
Changes
Here is a list of changes included in this release:
Console (Backend)
The Console backend has been improved as follows:
Features
- Allow creating modules in a selected subnet. No new endpoints were added; the argument payload was extended with an optional
subnet
field.
Refactoring
- Adapt code for modules moved to the
shared
crate.
Build
- Bump
ic_cdk
.
Console (Frontend)
The console UI/UX has been improved as follows:
Features
- Add subnet selection under an "Advanced options" accordion in the Satellite and Orbiter creation wizards.
- Display "Subnet ID" in overviews.
- Add a "Send" token feature to the wallet to send ICP to external addresses.
- Redesign the wallet screen and move the receive information (wallet ID, account identifier, and related QR codes) to a popover.
- Add "Attach Satellite" feature and move "Attach Analytics" to Mission Control.
- Introduce a slight delay between closing the upgrade wizard modal and reloading the versions, which may improve a UI race condition.
- Use
https://icp-api.io
instead ofhttps://icp0.io
to instantiate agents on mainnet for consistency. - Sort "Track events" by name in the analytics dashboard.
- Add additional Chinese translations.
Styles
- Better align fields with "Copy" buttons in tables and grids.
Build
- Bump agent-js to
v2.0.0
.
Satellite
No changes.
Mission Control
The Mission Console has been improved as follows. All new features are restricted to Admin controllers.
Features
- Introduce new functions
create_satellite_with_config
andcreate_orbiter_with_config
to create modules in a selected subnet. - Add functions
icp_transfer
andicrc_transfer
to send ICP.
Refactoring
- Adapt code for modules moved to the
shared
crate. - Apply Clippy suggestions.
Build
- Bump
ic_cdk
.
Orbiter
No changes.
Observatory
The Observatory has been improved as follows:
Features
- Prevent anonymous call on crontab functions.
Build
- Bump
ic_cdk
.
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.
Docker
Please refer to the releases for details.
v0.0.34
Summary
This release primarily introduces new performance metrics, the collection of Web Vitals, to the Analytics modules. Additionally, it adds new count documents and assets to the Satellites.
Additionally, a patch for the DFINITY ic_cdk
crate has been rolled out across all smart contracts to prevent a potential inherited memory leak (source).
Overview
Module | Version | Breaking changes |
---|---|---|
Console | 0.0.12 | |
Mission Control | 0.0.12 | |
Observatory | 0.0.6 | |
Orbiter | 0.0.8 | |
Satellite | 0.0.20 |
Crates | Version | Breaking changes |
---|---|---|
junobuild-satellite |
v0.0.20 | |
junobuild-storage |
v0.0.7 | ️ |
junobuild-collections |
v0.0.4 | ️ |
junobuild-shared |
v0.0.18 | |
junobuild-utils |
v0.0.3 |
Library | Version | Breaking changes |
---|---|---|
@junobuild/core |
v0.0.59 | |
@junobuild/core-peer |
v0.0.25 | |
@junobuild/admin |
v0.0.55 | |
@junobuild/analytics |
v0.0.27 | |
@junobuild/ledger |
------- | @dfinity/ledger-icp instead. |
@junobuild/storage |
v0.0.5 | ️ |
@junobuild/console |
v0.0.8 | ️ |
CLI | Version | Breaking changes |
---|---|---|
@junobuild/cli |
v0.0.76 |
Docker | Version | Breaking changes |
---|---|---|
@junobuild/satellite |
v0.0.31 | |
@junobuild/console |
v0.0.31 | |
@junobuild/action |
v0.0.30 |
Changes
Here is a list of changes included in this release:
Console (Backend)
The Console has been patched to address the ic_cdk
issue.
Console (Frontend)
The console UI/UX has been improved as follows:
Features
- Add performance metrics / web vitals to the Analytics dashboard.
- Support a new method to enable analytics features in the Orbiter. While it does not yet support granularity to keep the UI simple, it can be extended upon developer request.
- Use
count_collection_docs
instead ofcount_docs
on the "Hosting" page. Ensure the Satellite version is checked to prevent backward compatibility issues during the call. - Replace the deprecated
@junobuild/ledger
with@dfinity/ledger-icp
. - Review the design and content structure of the CLI authentication page.
- Add a new popover to display custom domain information, including the "BN ID." This is useful for debugging and support purposes.
Styles
- Fix the display of the link to the Satellite on the overview (increase spacing).
- Resolve misalignment of the version field in the Mission Control and Orbiter overviews.
Satellite
The Satellites have been updated as follows:
Breaking Changes
- Rename the endpoints
count_docs
andcount_assets
tocount_collection_docs
andcount_collection_assets
. This change was necessary to introduce new functions requested by the community while maintaining a meaningful naming pattern.
Features
- Introduces
count_docs
andcount_assets
, which accept the same parameters as their related "list" features but return only the count of matching entries. This can be useful for obtaining a count without transferring a large payload. Internally, these features have potential for improvement as they currently use the same implementation as listing. - Improve error messages for collections not found or empty by providing additional context (Datastore or Storage).
- Patch the
ic_cdk
to prevent potential memory leak issues.
Mission Control
The Mission Console has been patched to address the ic_cdk
issue.
Orbiter
The Orbiters have been updated as follows:
Breaking Changes
- The upgrade includes automatic type migration and enhances the configuration of Orbiters for greater granularity. Previously, a single "enabled" flag was used per Satellite. Now, it is possible to specify which individual features should be enabled, including the ability to gather specific metrics such as page views, event tracking, and performance metrics.
Features
- Added support for gathering and aggregating performance metrics using Web Vitals. Web Vitals are essential for measuring user experience metrics accurately, aligning with how they are captured by Chrome and reported to other Google tools. This enhancement is valuable for developers aiming to optimize the UI performance of their applications.
- Patched the
ic_cdk
to prevent potential memory leak issues.
Observatory
The Observatory has been patched to address the ic_cdk
issue.
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.
Docker
Please refer to the releases for details.
v0.0.33
Summary
This release addresses a non-critical but still annoying issue introduced in the Console with the migration to a single smart contract architecture in version v0.0.31. Specifically, since that release, the resources served by the Console were not being gzipped, causing clients to download larger files and resulting in a slightly slower frontend performance.
Notes
This release is exclusively focused on the Console. No other components have been affected, and therefore, no further documentation for those is required.
Overview
Module | Version | Breaking changes |
---|---|---|
Console | 0.0.11 |
Crates | Version | Breaking changes |
---|---|---|
junobuild-storage |
v0.0.5 | ️ |
Changes
Here is a list of changes included in this release:
Console (Backend)
Fix
- Corrected asset resolution within a single proposal to properly populate encodings for dedicated assets, ensuring that each asset now contains both gzip and identity data.
Console (Frontend)
The console UI/UX has been improved as follows:
Features
- Revised sign-in subtitle text.
- Improved the look and feel of the CLI authentication page by using tables to group the information.
- Splits the application's JavaScript resources into smaller chunks (excluding dependencies) rather than delivering them as a single index chunk.
Styles
- Ensured the link to Satellite in the overview is not shrunk.
- Resolved the misalignment of the "Version" information in the Mission Control and Orbiter views.
Fix
- Correctly configured the Service Worker registration in the Svelte config.
v0.0.32
Summary
While this release includes over 100 commits, it does not introduce major new features. Instead, it focuses on incremental improvements, including enhancements in the Satellites and the addition of useful features in Juno's Console.
This release also finalizes the removal of the CLI tool DFX across the entire Juno ecosystem. DFX was often a proven pain, leading to productivity issues and frustration. Its removal aims to streamline workflows and improve overall efficiency by betting on Juno's custom tooling.
Overview
Module | Version | Breaking changes |
---|---|---|
Console | 0.0.10 | |
Satellite | 0.0.19 |
Crates | Version | Breaking changes |
---|---|---|
junobuild-satellite |
v0.0.19 | |
junobuild-storage |
v0.0.4 | ️ |
junobuild-collections |
v0.0.2 | ️ |
junobuild-shared |
v0.0.17 | |
junobuild-utils |
v0.0.2 |
Library | Version | Breaking changes |
---|---|---|
@junobuild/core |
v0.0.56 | |
@junobuild/core-peer |
v0.0.22 | |
@junobuild/admin |
v0.0.53 | |
@junobuild/analytics |
v0.0.25 | |
@junobuild/ledger |
v0.0.33 | |
@junobuild/utils |
v0.0.24 | |
@junobuild/config |
v0.0.14 | |
@junobuild/cli-tools |
v0.0.14 | |
@junobuild/config-loader |
v0.0.5 | ️ |
@junobuild/storage |
v0.0.3 | ️ |
@junobuild/console |
v0.0.5 | ️ |
CLI | Version | Breaking changes |
---|---|---|
@junobuild/cli |
v0.0.71 |
Plugins | Version | Breaking changes |
---|---|---|
@junobuild/vite-plugin |
v0.0.16 | |
@junobuild/nextjs-plugin |
v0.0.10 |
Docker | Version | Breaking changes |
---|---|---|
@junobuild/satellite |
v0.0.30 | |
@junobuild/console |
v0.0.30 | |
@junobuild/action |
v0.0.26 |
Note
The above breaking changes are due to the replacement of an endpoint with more granular functions.
Changes
Here is a list of changes included in this release:
Console (Backend)
The Console mostly received changes to adapt to the shared crate updates developed for the Satellites.
The function set_config
has been replaced by the more granular function set_storage_config
.
Console (Frontend)
The console UI/UX has been improved as follows:
Features
- Enable smart contract logging in the "Functions" tab.
- Add a call to action to trigger a "Reload" of the Datastore and Storage.
- Create and edit documents' data in the Datastore through JSON file uploads.
- Enhance stop explanation.
- Add a link to the satellite's default URL or first custom domain in its "Overview."
- Use
en-US
native platform formatting for numbers. - Fetch and display statistics about the queries of the modules.
- Fetch and display the settings of the smart contracts (Freezing threshold, heap memory size, etc.).
- Make these settings editable for any module.
- Review the display of Satellite, Mission Control, and Orbiter settings to ensure consistency.
Style
- Resolve Sass deprecation warnings.
Fix
- The Boundary Nodes no longer send the "Failed" error message as a string.
Build
- Fix Svelte
version
field setup to ensure reproducibility.
Chore
- Add a script and actions to test frontend build reproducibility.
- Downgrade
vitest
until the next version ofpic-js
is released.
Satellite
The Satellites have been updated as follows:
Features
- Add a new filter to list documents and assets with fields
updated_at
andcreated_at
. - Introduce an optional "max memory size" feature for Datastore and Storage, which, if reached, will disable the new upload of assets and the creation and editing of documents.
- Ensure
key
contains caller Principal as text when creating a new user. - Expose
delete_assets_store
,list_docs_store
, andlist_assets_store
for serverless functions. - Refactor internal function to create assets and expose a function
set_asset_handler
that can be used in serverless functions to populate data in the storage on heap or stable memory.
Chore
- Add Rust documentation for
list_docs_store
.
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.
GitHub Action
Please refer to the releases for details.
Docker
Please refer to the releases for details.
v0.0.31
Summary
This release of Juno introduces several significant improvements, particularly in the Console, as we prepare for potential decentralization.
Key updates include a shift to a single canister architecture, the implementation of stable memory, and a new proposal mechanism for changes.
Overview
Module | Version | Breaking changes |
---|---|---|
Console | 0.0.9 | |
Satellite | 0.0.18 | |
Mission Control | 0.0.11 |
Crates | Version | Breaking changes |
---|---|---|
junobuild-satellite |
v0.0.18 | ️ |
junobuild-storage |
v0.0.1 | 🆕️ |
junobuild-collections |
v0.0.1 | 🆕️ |
junobuild-shared |
v0.0.16 |
Library | Version | Breaking changes |
---|---|---|
@junobuild/core |
v0.0.53 | |
@junobuild/core-peer |
v0.0.19 | |
@junobuild/admin |
v0.0.51 | |
@junobuild/analytics |
v0.0.24 | |
@junobuild/ledger |
v0.0.32 | |
@junobuild/utils |
v0.0.22 | |
@junobuild/config |
v0.0.10 | |
@junobuild/cli-tools |
v0.0.13 | |
@junobuild/config-loader |
v0.0.4 | 🆕️ |
@junobuild/storage |
v0.0.1 | 🆕️ |
@junobuild/console |
v0.0.3 | 🆕️ |
CLI | Version | Breaking changes |
---|---|---|
@junobuild/cli |
v0.0.68 |
Plugins | Version | Breaking changes |
---|---|---|
@junobuild/vite-plugin |
v0.0.14 | |
@junobuild/nextjs-plugin |
v0.0.8 |
Docker | Version | Breaking changes |
---|---|---|
@junobuild/satellite |
v0.0.29 | |
@junobuild/console |
v0.0.29 | |
@junobuild/action |
v0.0.25 |
Changes
Here is a list of changes included in this release:
Console (Backend)
The Console received the major changes of the release, which are the following:
Single Canister Architecture
Previously, the Console was deployed using two smart contracts: a backend (cokmz-oiaaa-aaaal-aby6q-cai
) and a frontend (xxt4w-7iaaa-aaaak-ad7rq-cai
). However, there is no inherent need to separate the frontend assets into a distinct smart contract. Consolidating to a single architecture simplifies maintenance and administration, particularly if it becomes governed by a governance.
As a result, the frontend canister (xxt4w-7iaaa-aaaak-ad7rq-cai
) will be deprecated. Moving forward, the backend canister (cokmz-oiaaa-aaaal-aby6q-cai
) will handle both data and asset provision, serving the administration console on the web.
Stable Memory
Given Juno's ownership model, which grants developers full control, the Console maintains minimal data, primarily a list of Mission Control IDs matched to User IDs. This list is used to connect developers with their realms upon logging into the dApp.
Adopting stable memory is recommended, especially as extending the Console with HTTP capabilities involves storing frontend assets in heap memory. Migrating the list of IDs to stable memory not only aligns with best practices but also supports future scalability.
Proposals
To prepare for a potential decentralization, both processes of uploading new assets and releasing WASM (of the Satellite, Mission Control, and Orbiter) have been implemented with a proposal mechanism.
This means that changes won't be applied directly but will first be uploaded to the stable memory, and for each change, a proposal will be generated. This proposal can then potentially be proposed to governance, and if accepted, the changes will only be applied once approved.
Collections and Storage Crates
The Console will inherit the same storage and web capabilities as Satellites. On one hand, these are currently the most powerful asset solutions on the Internet Computer. On the other hand, it makes sense to use the same technology for both, as this allows one to inherit the improvements made for the other.
That is why these related features have been extracted to two new crates, junobuild-collections
and junobuild-storage
.
Wasm Memory Limit
Based on our experience and developer feedback, we have observed that canisters cannot be upgraded once their heap memory exceeds 1 GB. Consequently, both the CLI and Console UI issue warnings when this threshold is approached. To enforce this limit, any new Mission Control, Satellite, or Orbiter (analytics) will now be created with a 1 GB Wasm memory limit.
Console (Frontend)
The console UI/UX has been improved as follows:
Features
- Detach Orbiter and Satellite, i.e., remove those segments from the list of managed projects in your Mission Control.
- Upload assets in the Storage, which is useful to update or edit assets manually.
- New Chinese translations thanks to @bytesun.
- Redo the classic rounded spinner.
- Make the call to action to clear collections more comprehensive.
Style
- Fix glitchy title appearance.
- Remove the illustration on the dashboard.
Fix
- Logo in navigation always points to home.
Satellite
The Satellites have been updated as follows:
Features
- Prevent using reserved system keywords when creating new collections.
- Storage and collections features extracted to new crates
junobuild-collections
andjunobuild-storage
.
Fix
- Storage asset owner should not be updated on asset overwrite.
Build
- Bump DFINITY Rust libraries.
Mission Control
The Mission Control have been updated as follows:
Features
- Add
set_satellite
andunset_satellite
to support features to attach or detach Satellites. - Implement
unset_orbiter
to allow developers to detach Orbiter (note that attaching was already available).
Build
- Bump DFINITY Rust libraries.
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.
GitHub Action
Please refer to the releases for details.
Docker
Please refer to the releases for details.
v0.0.30
Summary
This new release contains two breaking changes and several new features.
Important note:
👉 If you are using Analytics, Datastore, or Storage, this release introduces major changes that require you to update the JavaScript libraries of your project simultaneously with upgrading your smart contracts!
Breaking Changes ⚠️
New version
field
The major technical change introduced by this release is the decision to correct a design pattern that existed from the very first version of Juno.
Satellites' Datastore and Storage, and later Analytics, were developed to prevent data from being overwritten if the services are used concurrently. In other words, as you would expect from a Web2 SQL service, a user editing the same document on two devices at the same time would be prevented from unexpectedly overwriting data if those are not synchronized with the latest changes. These safeguards were originally based on the updated_at
timestamp field. However, while this works in practice, in reality using such a time field could not be as accurate since the time is not guaranteed to be unique within a block. Moreover, this was somewhat an uncommon pattern. That is why this new version preserves the feature but corrects it by introducing a new version
field.
This means that once you have upgraded your smart contract, you should also upgrade the JavaScript libraries in the related project, and you might be prompted to replace the updated_at
field with the version
field.
Disabling https://.raw.icp0.io
Using the .raw.
domain is insecure. While this domain has proven useful when the service worker was shipped on the client side, notably for SEO purposes or to access images by bypassing CORS, deferring the validation of certification to prevent malicious actors from hijacking resources to proxies at the boundary nodes (default) or locally, plus using the certification v2 specification, renders its usefulness obsolete. That's why Satellites will now automatically redirect any traffic attempting to access .raw.icp0.io
to certified mainnet, icp.io
.
New features
Thanks to the recent improvements in Internet Identity, it is now possible to derive origin for sign-in purposes using custom domains, not just icp0.io
. This means we are finally able to use "derivation origin" or "alternative origins" to derive the same principal for the same user across multiple custom domains. For example, a user signing in on your custom domain hello.com
and a subdomain such as www.hello.com
can now be identified with the same principal. This new feature has been introduced in the wizard for setting up new custom domains, and your Satellite takes care automatically of the required configuration. There is currently no feature implemented to apply such an option to an existing domain, but if you wish to do so, you can simply re-add the custom domain. Reach out if you have questions; as always, happy to assist.
Lastly, the Console UI has received some love. The sign-in page has been simplified, the launchpad can list the Satellites with cards or in rows, and the Mission Control and Orbiter (Analytics) have been better integrated to ease their overview and navigation.
Overview
Module | Version | Breaking changes |
---|---|---|
Orbiter | 0.0.7 | |
Satellite | 0.0.17 | |
Observatory | 0.0.5 |
Crates | Version | Breaking changes |
---|---|---|
junobuild-satellite |
v0.0.17 | |
junobuild-shared |
v0.0.15 |
Library | Version | Breaking changes |
---|---|---|
@junobuild/core |
v0.0.49 | |
@junobuild/core-peer |
v0.0.14 | |
@junobuild/admin |
v0.0.48 | |
@junobuild/analytics |
v0.0.22 | |
@junobuild/ledger |
v0.0.32 | |
@junobuild/utils |
v0.0.21 | |
@junobuild/config |
v0.0.6 | |
@junobuild/cli-tools |
v0.0.9 |
CLI | Version | Breaking changes |
---|---|---|
@junobuild/cli |
v0.0.64 |
Plugins | Version | Breaking changes |
---|---|---|
@junobuild/vite-plugin |
v0.0.12 | |
@junobuild/nextjs-plugin |
v0.0.6 |
Docker | Version | Breaking changes |
---|---|---|
@junobuild/satellite |
v0.0.17 | |
@junobuild/action |
v0.0.24 |
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
- Integrate support for defining a main authentication domain when adding a custom domain.
- Support for new
version
field. - Redesign login page.
- Add an option to display the list of Satellites in cards or rows on the launchpad and an option to filter them.
- Present the Mission Control and Orbiter on the launchpad for easier navigation.
- Display a summary of the Mission Control, Orbiter, and Wallet in the header of the in-app pages.
Style
- Bye bye sharp box-shadow.
Fix
- Fix the "Go back" button, which did not always work.
Build
- Bump dependencies.
- Bump
agent-js
.
Satellite
The Satellites have been updated as follows:
Breaking Changes
- Replace the
updated_at
field with the newversion
field to prevent concurrent overwrites. - Deny access to the
.raw.
domain by redirecting HTTP requests to the certified default domain.
Features
- Add new authentication configuration options.
- Automatically generate the
/.well-known/ii-alternative-origins
asset when aderivation_origin
is set in the configuration.
Fix
- Preserve (do not delete) the
/.well-known/ic-domains
when the CLI commandjuno clear
is executed.
Build
- Bump
ic-stable-structures
to prevent memory leak.
Mission Control
No changes.
Orbiter
Breaking Changes
- Replace the
updated_at
field with the newversion
field to prevent concurrent overwrites.
- Migrate
ic-stable-structures
to unbounded. This will enable us to collect more metrics in the future.
Observatory
Breaking Changes
- Replace the
updated_at
field with the newversion
field to prevent concurrent overwrites.
Crates
Changes similar to those of the satellites.
Library
Please refer to the releases for details.
CLI
Please refer to the releases for details.
Plugins
Please refer to the releases for details.
GitHub Action
Please refer to the releases for details.
Docker
Please refer to the releases for details.