Skip to content

feat: allow canister_info to be invoked via query calls - #346

Merged
mraszyk merged 4 commits into
mainfrom
docs/canister-info-query-calls
Sep 1, 2026
Merged

feat: allow canister_info to be invoked via query calls#346
mraszyk merged 4 commits into
mainfrom
docs/canister-info-query-calls

Conversation

@mraszyk

@mraszyk mraszyk commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

The management canister method canister_info can now be invoked via non-replicated (query) calls by external users and from composite query methods, in addition to inter-canister calls. It remains rejected for ingress messages. Retrieving canister information is not subject to any access control.

Interface spec 0.67.0. The management canister method `canister_info` can
now be invoked via non-replicated (query) calls by external users and from
composite query methods, in addition to inter-canister calls. It remains
rejected for ingress messages. Retrieving canister information is not
subject to any access control.

Integrated with the composite query support added in 0.66.0: `canister_info`
is handled as a case of `management_canister_query` rather than as a
separate code path in `composite_query_helper`.
@github-actions github-actions Bot added the interface-spec Changes to the IC interface specification label Aug 18, 2026
Comment thread docs/references/ic-interface-spec/changelog.md Outdated
@mraszyk
mraszyk marked this pull request as ready for review August 31, 2026 19:57
@mraszyk
mraszyk requested review from a team as code owners August 31, 2026 19:57
Comment thread docs/references/ic-interface-spec/abstract-behavior.md
Comment thread docs/references/ic-interface-spec/management-canister.md Outdated
@mraszyk

mraszyk commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

Feedback addressed:

  • abstract-behavior.md: added A.canister_id ∈ dom(S.canisters) to the conditions of the replicated canister_info rule. It is needed: since canister_info has no access control, nothing else constrained A.canister_id, so the state-after could reference S.canister_history[A.canister_id], S.canisters[A.canister_id] and S.controllers[A.canister_id] for a non-existent canister. This also matches the query-call rule and management_canister_query added in this PR, and provisional_top_up_canister, the other rule without access control, which already carries the same condition.
  • management-canister.md: added canister_metadata to the list of methods never accepted as ingress messages. The list was already inconsistent with the canister_metadata section itself, which states the method cannot be called by external users via ingress messages.
  • Changelog date: already updated to 2026-08-31 in 2a55a71.

Heads up: PR #252 also adds a 0.67.0 changelog section, so whichever of the two lands second will need its version bumped to 0.68.0.

…ery-calls

# Conflicts:
#	docs/references/ic-interface-spec/changelog.md
@mraszyk
mraszyk merged commit c797adb into main Sep 1, 2026
11 checks passed
@mraszyk
mraszyk deleted the docs/canister-info-query-calls branch September 1, 2026 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

interface-spec Changes to the IC interface specification

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants