Slack Inbound
gateway(Rust) が署名検証済みの Slack body を転送してくる受信口。
3 秒以内に ack(200)を返すため LLM は呼ばない。冪等チェック→team_id 逆引き→ synthetic JwtClaims 合成の判定のみ行い、実際の質問応答は /tasks/slack-reply へ fire-and-forget で fan-out する(CLAUDE_CODE_INSTRUCTIONS.md の思想: tenant_id は リクエストパラメータでなく team_id からの逆引きでのみ決定し、Slack ペイロード内の tenant 系フィールドは一切参照しない)。
POST
/internal/slack/inboundHeader parameters
x-internal-secretstring | anyResponses
200Successful Response
any422Validation Error
detailValidationError[]Show propertiesHide properties
Array of
ValidationErrorlocstring | integer[]requiredShow propertiesHide properties
Array of
string | integerAny of:
string
stringinteger
integermsgstringrequiredtypestringrequiredRequest
curl -X POST "/internal/slack/inbound"const response = await fetch("/internal/slack/inbound", {
method: "POST"
});import requests
response = requests.post(
"/internal/slack/inbound",
)Response
"string"{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}