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:
6
dist/fabric/src/accounts.js
vendored
6
dist/fabric/src/accounts.js
vendored
@@ -7,6 +7,12 @@ const DEFAULT_CENTER = 'http://localhost:7001/api';
|
||||
function section(cfg) {
|
||||
return cfg.channels?.fabric ?? {};
|
||||
}
|
||||
// The commands-sync shared secret (channel-level only). Empty string when
|
||||
// unconfigured — callers decide how to handle (slash-command sync is then
|
||||
// rejected by the guild).
|
||||
export function resolveCommandsSyncKey(cfg) {
|
||||
return (section(cfg).commandsSyncKey ?? '').trim();
|
||||
}
|
||||
export function listFabricAccountIds(cfg) {
|
||||
const accts = section(cfg).accounts ?? {};
|
||||
const ids = Object.keys(accts);
|
||||
|
||||
Reference in New Issue
Block a user