feat(security): commandsSyncKey is a required channel-config field (Guild C-2)
The slash-command sync secret now comes from channels.fabric.commandsSyncKey (configSchema marks it required) and is no longer read from FABRIC_COMMANDS_SYNC_KEY env. command-sync resolves it from config and threads it into client.syncCommands; when absent, sync is skipped with a clear warning. README updated. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -39,6 +39,11 @@
|
||||
"type": "string",
|
||||
"description": "Fabric Center API base, e.g. http://localhost:7001/api"
|
||||
},
|
||||
"commandsSyncKey": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"description": "Shared secret that must equal the guild's FABRIC_BACKEND_GUILD_COMMANDS_SYNC_KEY. Required to register the slash-command catalog (Guild C-2). Read it from the guild via: docker exec fabric-backend-guild node dist/cli/print-commands-sync-key.js"
|
||||
},
|
||||
"dmSecurity": { "type": "string" },
|
||||
"dmPolicy": { "type": "string" },
|
||||
"enabled": { "type": "boolean" },
|
||||
@@ -59,10 +64,12 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": ["commandsSyncKey"]
|
||||
},
|
||||
"uiHints": {
|
||||
"centerApiBase": { "label": "Center API base" }
|
||||
"centerApiBase": { "label": "Center API base" },
|
||||
"commandsSyncKey": { "label": "Commands sync key" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user