mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-06-01 20:11:44 +02:00
Clarify OpenClaw HMAC agent credentials
This commit is contained in:
@@ -632,10 +632,18 @@ function ConnectModalBody({ apiEndpoint, handleCopy, copied }: ConnectModalBodyP
|
||||
const buildSnippet = (key: string) => {
|
||||
const lines: string[] = [];
|
||||
if (resolvedUrl) lines.push(`SHADOWBROKER_URL=${resolvedUrl}`);
|
||||
lines.push(`SHADOWBROKER_KEY=${key}`);
|
||||
lines.push(`SHADOWBROKER_HMAC_SECRET=${key}`);
|
||||
lines.push(`SHADOWBROKER_ACCESS=${accessTier}`);
|
||||
if (connectionMode === 'remote' && nodeId) lines.push(`SHADOWBROKER_NODE_ID=${nodeId}`);
|
||||
lines.push('');
|
||||
lines.push('# AUTH DIRECTIVE:');
|
||||
lines.push('# SHADOWBROKER_HMAC_SECRET is a shared HMAC signing secret, not a raw API key.');
|
||||
lines.push('# Never send it as X-Admin-Key, Authorization: Bearer, a query parameter, or a plain request header.');
|
||||
lines.push('# Every direct ShadowBroker API request must be HMAC-SHA256 signed with:');
|
||||
lines.push('# X-SB-Timestamp, X-SB-Nonce, X-SB-Signature');
|
||||
lines.push('# Signature input: METHOD|path|timestamp|nonce|sha256(body)');
|
||||
lines.push('# Use the ShadowBrokerClient/openclaw skill helper so requests are signed automatically.');
|
||||
lines.push('');
|
||||
lines.push('# OPERATING DIRECTIVE:');
|
||||
lines.push('# You are a remote OpenClaw agent connected to ShadowBroker.');
|
||||
lines.push('# ShadowBroker is a live intelligence and telemetry platform, not a narrow single-purpose API.');
|
||||
|
||||
@@ -129,13 +129,16 @@ const OnboardingModal = React.memo(function OnboardingModal({
|
||||
|
||||
const agentSnippet = [
|
||||
`SHADOWBROKER_URL=${agentEndpoint}`,
|
||||
agentSecret ? `SHADOWBROKER_KEY=${agentSecret}` : 'SHADOWBROKER_KEY=<generate in ShadowBroker>',
|
||||
agentSecret ? `SHADOWBROKER_HMAC_SECRET=${agentSecret}` : 'SHADOWBROKER_HMAC_SECRET=<generate in ShadowBroker>',
|
||||
`SHADOWBROKER_ACCESS=${agentTier}`,
|
||||
'',
|
||||
'# FIRST: load available tools',
|
||||
`GET ${agentEndpoint}/api/ai/tools`,
|
||||
'',
|
||||
'# Auth: HMAC-SHA256 signed requests.',
|
||||
'# Auth: SHADOWBROKER_HMAC_SECRET is not a raw API key.',
|
||||
'# Sign every direct request with X-SB-Timestamp, X-SB-Nonce, and X-SB-Signature.',
|
||||
'# Signature input: METHOD|path|timestamp|nonce|sha256(body).',
|
||||
'# Do not send the secret as X-Admin-Key, Authorization, or a query parameter.',
|
||||
'# Restricted = read-only telemetry. Full = can write when asked.',
|
||||
].join('\n');
|
||||
const remoteAgentNeedsTor = agentMode === 'remote' && !torAddress;
|
||||
|
||||
Reference in New Issue
Block a user