Casals

The canister lifecycle orchestrator for the Internet Computer.

terminal

> pip install ic-casals

> casals init hello-world

> casals up hello-world --yes --local

Installing hello-world locally… done

Open Casals

http://4zfnl-5t777-77775-aaadq-cai.localhost:8000/

New Tab Casals · hello-world 4zfnl-5t777-77775-aaadq-cai.localhost:8000 Casals · hello-world Login operate Orchestra Files Cycles Activity Aliases governance Operator access Platform committee platform Settings Casals v0.6.0 Orchestra Orchestra → Section → Stand → Canister lifecycle orchestration Refresh Filter by name, canister ID, WASM… List Topology Control section Hello 1 stand · 2 canisters stand App backend hello-world-basilisk@1.0.0 running 2.9 TC 2 controllers frontend hello-world-frontend@1.0.0 running 2.9 TC 2 controllers conductor 3 canisters backend 46el7-ql777-77775-aaada-cai frontend 4zfnl-5t777-77775-aaadq-cai store 5uljf-s3777-77775-aaaea-cai

Open the live demo

What Casals does

How Casals is built

Casals runs on-chain and consists of a few canisters. You can use the dashboard or the CLI to manage your app.

The core components

Orchestra, sections, stands

An orchestra is everything one conductor runs. A section groups stands; a stand is one instance, like a customer's backend and frontend, upgraded and rolled back as a unit.

Commanders and permissions

Commanders are appointed over the orchestra, a section or a stand. They hold a chosen set of the permissions.

Canisters
canister.create canister.deploy canister.delete canister.rename canister.tag canister.snapshot canister.revert canister.lifecycle canister.topup canister.call canister.shell
Stands
stand.create stand.rename stand.delete
Sections
arrangement.edit
Governance
commander.assign
Platform
wasm.upload wasm.authorize subnet.whitelist alias.manage settings.general settings.cycles settings.monitor notification.manage

Uploading and authorizing a WASM are separate keys, so who ships a build need not approve it.

Built in Python, on Basilisk

The conductor and the baton are Python canisters, built with Basilisk. The casals CLI is Python too: pip install ic-casals.

Basilisk

Why Casals is built this way →

Who Casals is for

Teams that look for a professional-grade tool to operate a fleet of canisters in production, from one large complex application to the same app run for many owners.

Not a fit if you run a single app with a handful of canisters: icp-cli is enough. If you want public, token-based governance, look at the SNS.

Usecases

Contact

You are welcome to write us with a question, a bug to fix, or a feature you'd like, or if you need professional assistance with a project.