Skip to content

Commit 335b20e

Browse files
rtb-12claude
andauthored
fix(server): store admin signing key when creating subgroup; bump rc.31 (#2232)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 4f3f5df commit 335b20e

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ description = "Core Calimero infrastructure and tools"
99
# Update workspace metadata (see docs/RELEASE.md for versioning and release)
1010
[workspace.metadata.workspaces]
1111
# Shared version of all public crates; bump this when cutting a release.
12-
version = "0.10.1-rc.30"
12+
version = "0.10.1-rc.31"
1313
exclude = [
1414
"./apps/abi_conformance",
1515
"./apps/blobs",

crates/server/src/admin/handlers/namespaces/create_group_in_namespace.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,29 @@ pub async fn handler(
106106
Ok(()) => {
107107
let group_id = calimero_context_config::types::ContextGroupId::from(group_id);
108108

109+
// Store the creator's signing key for the new subgroup. Without
110+
// this, any subsequent group-scoped op that needs to sign a
111+
// local governance message (delete_context -> ContextDetached,
112+
// add_group_members -> MemberAdded, etc.) fails with
113+
// "signing key not found for requester in group '...'".
114+
//
115+
// The direct create_group handler already stores the signing
116+
// key at crates/context/src/handlers/create_group.rs:85-94;
117+
// this keeps subgroups created via create_group_in_namespace in
118+
// sync with that invariant.
119+
if let Err(err) = calimero_context::group_store::store_group_signing_key(
120+
&state.store,
121+
&group_id,
122+
&signer_pk,
123+
&sk_bytes,
124+
) {
125+
warn!(
126+
group_id=%hex::encode(group_id.to_bytes()),
127+
?err,
128+
"Group created but failed to store admin signing key"
129+
);
130+
}
131+
109132
// Generate a group key for the subgroup so that encrypted
110133
// group-scoped governance ops (MemberAdded, ContextRegistered)
111134
// can be published and later decrypted by members.

0 commit comments

Comments
 (0)