Skip to content

Commit 75f4538

Browse files
committed
fix(helm): fail-fast on empty allowedChannels at deploy time
- configmap.yaml: fail template render if allowedChannels is empty (both adapters) - values.yaml: update Slack comment to reflect deny-all default - tests: add validation tests + fix existing Slack tests for new check
1 parent 67f04e8 commit 75f4538

4 files changed

Lines changed: 32 additions & 1 deletion

File tree

charts/openab/templates/configmap.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ metadata:
1111
data:
1212
config.toml: |
1313
{{- if ($cfg.discord).enabled }}
14+
{{- if not $cfg.discord.allowedChannels }}
15+
{{- fail (printf "agents.%s.discord.allowedChannels is required — empty means the bot will not respond to any messages. Add at least one channel ID." $name) }}
16+
{{- end }}
1417
[discord]
1518
bot_token = "${DISCORD_BOT_TOKEN}"
1619
{{- range $cfg.discord.allowedChannels }}
@@ -52,6 +55,9 @@ data:
5255
{{- end }}
5356
5457
{{- if and ($cfg.slack).enabled }}
58+
{{- if not (($cfg.slack).allowedChannels) }}
59+
{{- fail (printf "agents.%s.slack.allowedChannels is required — empty means the bot will not respond to any messages. Add at least one channel ID." $name) }}
60+
{{- end }}
5561
[slack]
5662
bot_token = "${SLACK_BOT_TOKEN}"
5763
app_token = "${SLACK_APP_TOKEN}"

charts/openab/tests/adapter-enablement_test.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ tests:
3333
- it: renders [slack] when enabled=true
3434
set:
3535
agents.kiro.slack.enabled: true
36+
agents.kiro.slack.allowedChannels:
37+
- "C0123456789"
3638
asserts:
3739
- matchRegex:
3840
path: data["config.toml"]
@@ -49,6 +51,8 @@ tests:
4951
- it: renders [slack] with placeholder tokens when enabled=true
5052
set:
5153
agents.kiro.slack.enabled: true
54+
agents.kiro.slack.allowedChannels:
55+
- "C0123456789"
5256
asserts:
5357
- matchRegex:
5458
path: data["config.toml"]
@@ -61,6 +65,8 @@ tests:
6165
set:
6266
agents.kiro.discord.enabled: true
6367
agents.kiro.slack.enabled: true
68+
agents.kiro.slack.allowedChannels:
69+
- "C0123456789"
6470
asserts:
6571
- matchRegex:
6672
path: data["config.toml"]

charts/openab/tests/configmap_test.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,27 @@ tests:
9292
- it: renders slack allow_user_messages = "multibot-mentions"
9393
set:
9494
agents.kiro.slack.enabled: true
95+
agents.kiro.slack.allowedChannels:
96+
- "C0123456789"
9597
agents.kiro.slack.allowUserMessages: multibot-mentions
9698
asserts:
9799
- matchRegex:
98100
path: data["config.toml"]
99101
pattern: 'allow_user_messages = "multibot-mentions"'
102+
103+
- it: rejects empty discord allowedChannels
104+
set:
105+
agents.kiro.discord.enabled: true
106+
agents.kiro.discord.allowedChannels: []
107+
asserts:
108+
- failedTemplate:
109+
errorPattern: "discord.allowedChannels is required"
110+
111+
- it: rejects empty slack allowedChannels
112+
set:
113+
agents.kiro.discord.enabled: false
114+
agents.kiro.slack.enabled: true
115+
agents.kiro.slack.allowedChannels: []
116+
asserts:
117+
- failedTemplate:
118+
errorPattern: "slack.allowedChannels is required"

charts/openab/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ agents:
135135
enabled: false
136136
botToken: "" # Bot User OAuth Token (xoxb-...)
137137
appToken: "" # App-Level Token (xapp-...) for Socket Mode
138-
allowedChannels: [] # empty = allow all channels
138+
allowedChannels: [] # required — empty = deny all channels (secure by default)
139139
allowedUsers: [] # empty = allow all users
140140
# allowBotMessages: "off" (default) | "mentions" | "all"
141141
allowBotMessages: "off"

0 commit comments

Comments
 (0)