Skip to content

getCanisterEnv

getCanisterEnv<T>(options): CanisterEnv & T

Defined in: packages/agent/src/canister-env/index.ts:110

Experimental

Get the environment variables served by the asset canister via the cookie.

The returned object always includes IC_ROOT_KEY property. You can extend the global CanisterEnv interface to add your own environment variables and have strong typing for them.

In Node.js environment (or any other environment where globalThis.document is not available), this function will throw an error. Use safeGetCanisterEnv if you need a function that returns undefined instead of throwing errors.

T = Record<string, never>

GetCanisterEnvOptions = {}

The options for loading the canister environment variables

CanisterEnv & T

The environment variables for the asset canister, always including IC_ROOT_KEY

When globalThis.document is not available

When the cookie is not found

When the IC_ROOT_KEY is missing or has an invalid length

The Canister Environment Guide for more details on how to use the canister environment in a frontend application

type MyCanisterEnv = {
readonly ['PUBLIC_CANISTER_ID:backend']: string;
};
const env = getCanisterEnv<MyCanisterEnv>();
console.log(env.IC_ROOT_KEY); // always available (Uint8Array)
console.log(env['PUBLIC_CANISTER_ID:backend']); // ✅ from generic parameter, TS passes
console.log(env['PUBLIC_CANISTER_ID:frontend']); // ❌ TS will show an error

Have a look at CanisterEnv for more details on how to extend the interface