You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Configuration for the heap memory size check, which can be: - true to enable the check with a default threshold of 900MB, - false to disable the heap memory size check, - A bigint to specify a custom threshold in MB (megabytes) for the heap memory size check. If not specified, then true is used as the default value. type: {bigint or boolean}
Configuration for maximum memory size limits for the Datastore. This is used to specify optional limits on heap and stable memory for the smart contract. When the limit is reached, the Datastore and smart contract continue to operate normally but reject the creation or updates of documents. If not specified, no memory limits are enforced. type: {MaxMemorySizeConfig}optional
version
bigint or undefined
The current version of the config. Optional. The CLI will automatically resolve the version and warn you if there's a potential overwrite. You can provide it if you want to manage versioning manually within your config file. type: {bigint}optional
Represents the ports exposed by an emulator container.
Property
Type
Description
server
number or undefined
The port of the server used to simulate execution. This is the port your app connects to. Also known as the "local Internet Computer replica" or the "Pocket-IC port". default: 5987
admin
number or undefined
The port of the admin server used for tasks like transferring ICP from the ledger. default: 5999
timeoutInSeconds
number or undefined
Max number of seconds to wait for emulator ports to become ready. default: 30
Image reference. default: depends on emulator type, e.g. "junobuild/skylab:latest"
name
string or undefined
Optional container name to use for the emulator. Useful for reusing or managing a specific container.
volume
string or undefined
Persistent volume to store internal state. default: "juno"
target
string or undefined
Shared folder for deploying and hot-reloading serverless functions.
platform
"linux/amd64" or "linux/arm64" or undefined
The platform to use when running the emulator container.
extraHosts
[string, string][] or undefined
Additional host-to-IP mappings to inject into the container via --add-host. Each entry is a [hostname, destination] tuple where destination is an IPv4 address, an IPv6 address, "host-gateway", or an arbitrary host string. This is useful for making host-machine services (e.g. a local Ethereum RPC node) reachable from within the container under a stable DNS name such as host.docker.internal. example: ts runner: { extraHosts: [['host.docker.internal', 'host-gateway']] } see: https://docs.docker.com/reference/cli/docker/container/run/#add-host
Network services that can be enabled in the emulator.
Each flag corresponds to a system canister or application that can be included
in the local Internet Computer network when the emulator starts.
Property
Type
Description
registry
boolean or undefined
Registry canister: Stores network configuration and topology (subnet membership, public keys, feature flags). Acts as the source of truth other system canisters read/write to.
cmc
boolean or undefined
CMC (Cycles Minting Canister): Converts ICP to cycles and distributes them; maintains subnet lists and conversion rate. Requires icp and nns to not be enabled.
icp
boolean or undefined
ICP token: Deploys the ICP ledger and index canisters.
cycles
boolean or undefined
Cycles token: Deploys the cycles ledger and index canisters.
nns
boolean or undefined
NNS governance canisters: Deploys the governance and root canisters. Core governance system (neurons, proposals, voting) and related control logic. Enables managing network-level decisions in an emulated environment.
sns
boolean or undefined
SNS canisters: Deploys the SNS-W and aggregator canisters. Service Nervous System stack used to govern individual dapps.
internet_identity
boolean or undefined
Internet Identity: Deploys the II canister for authentication.
nns_dapp
boolean or undefined
NNS dapp: Deploys the NNS UI canister and frontend application Requires cmc, icp, nns, sns, internet_identity to be enabled.
Settings for a module - Satellite, Mission Control or Orbiter.
These settings control various aspects of the module's behavior and resource usage.
Property
Type
Description
freezingThreshold
bigint or undefined
The cycle threshold below which the module will automatically stop to avoid running out of cycles. For example, if set to BigInt(1000000), the module will stop when it has fewer than 1,000,000 cycles remaining. type: {bigint}
reservedCyclesLimit
bigint or undefined
The number of cycles reserved for the module's operations to ensure it has enough cycles to function. For example, setting it to BigInt(5000000) reserves 5,000,000 cycles for the module. type: {bigint}
logVisibility
ModuleLogVisibility or undefined
Controls who can see the module's logs. type: {ModuleLogVisibility}
heapMemoryLimit
bigint or undefined
The maximum amount of WebAssembly (Wasm) memory the module can use on the heap. For example, setting it to BigInt(1024 * 1024 * 64) allows the module to use up to 64 MB of Wasm memory. type: {bigint}
memoryAllocation
bigint or undefined
The amount of memory explicitly allocated to the module. For example, setting it to BigInt(1024 * 1024 * 128) allocates 128 MB of memory to the module. type: {bigint}
computeAllocation
bigint or undefined
The proportion of compute capacity allocated to the module. This is a fraction of the total compute capacity of the subnet. For example, setting it to BigInt(10) allocates 10% of the compute capacity to the module. type: {bigint}
Represents a mapping of orbiter identitifiers to different configurations based on the mode of the application.
Property
Type
Description
ids
Record<string, string>
A mapping of orbiter identifiers (IDs) to different configurations based on the mode of the application. This allows the application to use different orbiter IDs, such as production, development, etc. Example: { "production": "xo2hm-lqaaa-aaaal-ab3oa-cai", "development": "gl6nx-5maaa-aaaaa-qaaqq-cai" } type: {Record<JunoConfigMode, string>}
Headers allow the client and the Storage to pass additional information along with a request or a response.
Some sets of headers can affect how the browser handles the page and its content.
Property
Type
Description
source
string
The glob pattern used to match files within the Storage that these headers will apply to. type: {StorageConfigSourceGlob}
headers
[string, string][]
An array of key-value pairs representing the headers to apply. Each pair includes the header name and its value. Example: [["Cache-Control", "max-age=3600"], ["X-Custom-Header", "value"]] type: {Array<[string, string]>}
You can utilize optional rewrites to display the same content for multiple URLs.
Rewrites are especially useful when combined with pattern matching, allowing acceptance of any URL that matches the pattern.
Property
Type
Description
source
string
The glob pattern or specific path to match for incoming requests. Matches are rewritten to the specified destination. type: {StorageConfigSourceGlob}
destination
string
The destination path or file to which matching requests should be rewritten. type: {string}
Optional array of StorageConfigHeader objects to define custom HTTP headers for specific files or patterns. type: {StorageConfigHeader[]}optional
rewrites
StorageConfigRewrite[] or undefined
Optional array of StorageConfigRewrite objects to define rewrite rules. type: {StorageConfigRewrite[]}optional
redirects
StorageConfigRedirect[] or undefined
Optional array of StorageConfigRedirect objects to define HTTP redirects. type: {StorageConfigRedirect[]}optional
iframe
"deny" or "same-origin" or "allow-any" or undefined
For security reasons and to prevent click-jacking attacks, dapps deployed with Juno are, by default, set to deny embedding in other sites. Options are: - deny: Prevents any content from being displayed in an iframe. - same-origin: Allows iframe content from the same origin as the page. - allow-any: Allows iframe content from any origin. If not specified, then deny is used as default value. type: {'deny' or 'same-origin' or 'allow-any'}optional
rawAccess
boolean or undefined
Optional flag to enable access for raw URLs. β οΈWARNING: Enabling this option is highly discouraged due to security risks. Enabling this option allows access to raw URLs (e.g., https://satellite-id.raw.icp0.io), bypassing certificate validation. This creates a security vulnerability where a malicious node in the chain can respond to requests with malicious or invalid content. Since there is no validation on raw URLs, the client may receive and process harmful data. If not specified, the default value is false. type: {boolean}optional
maxMemorySize
MaxMemorySizeConfig or undefined
Configuration for maximum memory size limits for the Storage. This is used to specify optional limits on heap and stable memory for the smart contract. When the limit is reached, the Storage and smart contract continue to operate normally but reject the upload of new assets. If not specified, no memory limits are enforced. type: {MaxMemorySizeConfig}optional
version
bigint or undefined
The current version of the config. Optional. The CLI will automatically resolve the version and warn you if there's a potential overwrite. You can provide it if you want to manage versioning manually within your config file. type: {bigint}optional
Represents a mapping of satellite identifiers to different configurations based on the mode of the application.
Property
Type
Description
ids
Record<string, string>
A mapping of satellite identifiers (IDs) to different configurations based on the mode of the application. This allows the application to use different satellite IDs, such as production, staging, etc. Example: { "production": "xo2hm-lqaaa-aaaal-ab3oa-cai", "staging": "gl6nx-5maaa-aaaaa-qaaqq-cai" } type: {Record<JunoConfigMode, string>}
SatelliteConfigOptions interface provides configuration settings that allow for fine-tuning
the operational behavior of various aspects of a Satellite, such as storage, datastore,
authentication, automation, and deployment assertions.
These options affect specific modules of the Satellite and may require manual application of
changes, typically through CLI commands (e.g., juno config).
Property
Type
Description
hosting
HostingConfig or undefined
Optional deploy-time configuration for bundling and uploading your frontend assets to the satellite. Controls the source folder, file ignoring, compression, encoding, and pre/post deploy hooks. Runs on your machine during juno deploy. type: {HostingConfig}optional
storage
StorageConfig or undefined
Optional serve-time configuration for how the satellite's Storage module handles HTTP requests. Controls headers, rewrites, redirects, iframe policy, and memory limits. Changes must be applied manually afterwards, for example with juno config apply. type: {StorageConfig}optional
datastore
DatastoreConfig or undefined
Optional configuration parameters for the satellite, affecting the operational behavior of its Datastore. Changes to these parameters must be applied manually afterwards, for example with the CLI using juno config commands. type: {DatastoreConfig}optional
authentication
AuthenticationConfig or undefined
Optional configuration parameters for the satellite, affecting the operational behavior of its Authentication. Changes to these parameters must be applied manually afterwards, for example with the CLI using juno config commands. type: {AuthenticationConfig}optional
automation
AutomationConfig or undefined
Optional configuration parameters for the behavior of the automation. Changes to these parameters must be applied manually afterwards, for example with the CLI using juno config commands. type: {AutomationConfig}optional
assertions
SatelliteAssertions or undefined
Optional configurations to override default assertions made by the CLI regarding satellite deployment conditions. type: {SatelliteAssertions}optional
settings
ModuleSettings or undefined
Optional configuration parameters for the Satellite. These settings control various aspects of the module's behavior and resource usage. type: {ModuleSettings}optional
collections
Collections or undefined
Optional configuration for the Datastore and Storage collections. type: {Collections}optional