Skip to main content

validate_app_data_update_proposals_in_commit

Function validate_app_data_update_proposals_in_commit 

Source
pub fn validate_app_data_update_proposals_in_commit(
    staged_commit: &StagedCommit,
    openmls_group: &MlsGroup,
    immutable_metadata: &GroupMetadata,
    mutable_metadata: &GroupMutableMetadata,
    registry: &ComponentRegistry,
) -> Result<(), CommitRuleError>
Expand description

Validate every AppDataUpdate proposal carried by staged_commit against the group’s component registry.

staged_commit.app_data_update_proposals() iterates both inline proposals and references that resolve into the group’s proposal store, so this covers both shapes. validate_proposal() covers the standalone-proposal-by-reference path (proposals that arrive as their own message), but commits never flow through validate_proposal — they go through from_staged_commit. Without this helper, AppDataUpdate proposals committed alongside a commit would bypass validate_component_write entirely, since extract_metadata_changes only inspects the legacy mutable-metadata extension.

Delegates the per-proposal permission check to validate_one_app_data_update so the core logic stays shared with the standalone-proposal path in validate_proposal.

§Registry semantics

registry is the committed registry shared with the other component checks. Registry changes and writes that depend on them must use separate commits.