Configuration and release environment
This page is for integrators and operators who need to distinguish application configuration, Agent release metadata, and deployment targets. For browser preferences, use Configure icLens.
Configuration ownership
Section titled “Configuration ownership”| File | Owns |
|---|---|
release.config.json |
App and Agent versions, stage, protocol/schema envelope, installation mode, supported builds, release notes, and advisories |
config/product-policy.json |
Feature availability, product deductions, and shared limits |
icp.yaml |
Canisters and local, production, and Demo deployment environments |
docs-site/config/pages.json |
Current documentation page catalog |
docs-site/config/domains.json |
Documentation navigation order |
.node-version |
Required Node release for repository commands |
Generated release and policy outputs derive from their human-edited source files. An App version and an Agent version are independent, and neither version string alone establishes operational compatibility.
Public origins
Section titled “Public origins”| Origin | Responsibility |
|---|---|
https://app.iclens.io |
Certified product frontend and same-origin Agent release metadata |
https://docs.iclens.io |
This separate documentation site |
https://demo.iclens.io |
Separate deterministic demonstration runtime |
https://iclens.io |
Independent landing site |
The landing, docs, and demo canisters are separate from the App/Agent release manifest. The product origin remains stable across public beta and general availability.
Release discovery and identity
Section titled “Release discovery and identity”The current frontend obtains the Agent release manifest from
/agent-canister/iclens-agent-canister.release.json on its own certified origin.
It authenticates one current target artifact. Installed module hash determines
whether that target is installed. Matching version text with different bytes
requires provenance review; unknown bytes do not authorize a repair install.
Deployment-provided environment
Section titled “Deployment-provided environment”The ICP CLI stores product canister IDs in
.icp/data/mappings/production.ids.json. The static-site environment supplies
PUBLIC_CANISTER_ID:frontend, PUBLIC_CANISTER_ID:artifacts_public and
PUBLIC_CANISTER_ID:artifacts_protected. The latter two select separate artifact
hosts. The release’s artifactAccess field selects one host; credentials never
come from environment variables. Missing or wrong-network bindings fail closed.
The frontend canister ID establishes the canonical canister origin used by
Internet Identity derivation. After syncing production assets, npm run deploy -- apply
removes PUBLIC_CANISTER_ID:agent_canister from the frontend and calls refresh_env
to recertify the browser environment. The deployed Agent remains intact, but is
not automatically advertised as a default workspace. Users can connect Agents
explicitly; their access policy still decides permissions.
A direct icp deploy can inject the Agent variable again while it remains in
the environment’s canister mapping. If bypassing the product deployment script,
remove only that frontend variable and call refresh_env after deployment.
Do not remove PUBLIC_CANISTER_ID:frontend, which supplies identity derivation.
Local and Mainnet trust
Section titled “Local and Mainnet trust”Mainnet API calls use https://icp-api.io. The certified application origin
serves the website and release artifacts; it is not the API-agent endpoint.
Mainnet does not dynamically fetch a root key.
Local mode is available on every instance. It uses the configured local gateway
and Internet Identity, automatic unless saved. Its root key comes from the
page’s ic_env when that gateway serves the page, otherwise icLens reads it
from the gateway’s status, only on Local. A page a local gateway serves signs in
to Mainnet for its own address: a local frontend canister ID never becomes a
Mainnet derivation origin. Review Local endpoints in application Settings. A
successful local connection does not establish Mainnet authority or realistic
funding behavior.
Verification and publication commands
Section titled “Verification and publication commands”npm run checknpm testnpm run buildnpm run demo:buildnpm run docs:checkThese are local checks. Release construction and production deployment are
separate workflows, described in the maintainer guide
docs/maintainers/releases-upgrades-and-reproducibility.md in the icLens source.
Deployment, controller changes, DNS changes, and spending funds require explicit
operator authorization; viewing these commands performs none of those actions.