Skip to content

feat: Expose the project canister ID table to sync plugins - #720

Draft
adamspofford-dfinity wants to merge 3 commits into
spofford/plugin-multi-versioningfrom
spofford/plugin-canister-mappings
Draft

feat: Expose the project canister ID table to sync plugins#720
adamspofford-dfinity wants to merge 3 commits into
spofford/plugin-multi-versioningfrom
spofford/plugin-canister-mappings

Conversation

@adamspofford-dfinity

Copy link
Copy Markdown
Contributor

Lets plugins access canister ID mappings (regardless of dependency declarations).


Stack created with GitHub Stacks CLIGive Feedback 💬

@adamspofford-dfinity
adamspofford-dfinity force-pushed the spofford/plugin-canister-mappings branch from 56cc6ff to b4d5ccf Compare August 20, 2026 16:38
Copilot AI balanced review requested due to automatic review settings August 20, 2026 16:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Exposes environment-specific canister ID mappings to sync plugins.

Changes:

  • Extends the plugin WIT input with canister ID entries.
  • Builds aliases for canisters in the same subproject.
  • Refactors plugin execution parameters and updates documentation/tests.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
docs/concepts/sync-plugins.md Documents the new input table.
crates/icp/src/canister/sync/script.rs Updates test parameters.
crates/icp/src/canister/sync/plugin.rs Builds and forwards the exposed ID table.
crates/icp/src/canister/sync/mod.rs Adds the syncing canister’s store key.
crates/icp-sync-plugin/sync-plugin.wit Extends the plugin ABI.
crates/icp-sync-plugin/src/runtime.rs Passes IDs through PluginInvocation.
crates/icp-sync-plugin/src/lib.rs Exports PluginInvocation.
crates/icp-sync-plugin/DESIGN.md Updates runtime design documentation.
crates/icp-cli/src/operations/sync.rs Supplies the canister store key.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread crates/icp-sync-plugin/sync-plugin.wit
Comment thread crates/icp/src/canister/sync/plugin.rs Outdated
Comment thread crates/icp-sync-plugin/sync-plugin.wit Outdated
Comment thread crates/icp/src/canister/sync/plugin.rs Outdated
Comment thread crates/icp-sync-plugin/DESIGN.md Outdated
The `canister-ids` table is informational; `canister-call` always targets the
canister being synced. The field and rationale docs described a call-target /
dependency-declaration permission mechanism that does not exist in this
interface, which could mislead plugin authors into expecting they can call
other canisters from the table. State the real restriction instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants