Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions charts/openab/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ Each agent lives under `agents.<name>`.
| `stt.baseUrl` | STT API base URL. | `"https://api.groq.com/openai/v1"` |
| `gateway.enabled` | Enable the gateway config block for webhook-based platforms. | `false` |
| `gateway.deploy` | Deploy the gateway Deployment and Service. | `true` |
| `gateway.teams.reactionsEnabled` | Opt in to Microsoft public-preview Bot Connector reactions. | `false` |
| `cron.usercronEnabled` | Enable user-provided cron configuration. | `false` |
| `cronjobs` | Config-driven scheduled messages for an agent. | `[]` |
| `persistence.enabled` | Enable persistent storage for auth and settings. | `true` |
Expand Down Expand Up @@ -112,6 +113,18 @@ See [`docs/migrate-to-configtoml.md`](../../docs/migrate-to-configtoml.md) for a
[`docs/adr/configurl-over-helm-rendering.md`](../../docs/adr/configurl-over-helm-rendering.md) for when to prefer `configUrl` instead
(platform-agnostic — works identically on Kubernetes, ECS, Zeabur, and AgentCore).

For Teams typed scope, put the policy in that raw TOML rather than under the Gateway transport values:

```toml
[teams]
allowed_teams = []
allowed_channels = [] # both empty = all Team channels; otherwise Team OR channel match
allow_personal = true
allow_group_chats = true
```

Presence of any of these four fields opts into typed L2 policy. In Standalone Gateway mode, the policy still belongs to the OpenAB Core `configToml`; `gateway.teams.*` configures transport credentials and reaction preview on the Gateway container.

### Discord ID precision warning

Discord IDs must be set with `--set-string`, not `--set`. Otherwise Helm may coerce them into numbers and lose precision.
4 changes: 4 additions & 0 deletions charts/openab/templates/gateway.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,10 @@ spec:
- name: TEAMS_WEBHOOK_PATH
value: {{ ($cfg.gateway).teams.webhookPath | quote }}
{{- end }}
{{- if hasKey (($cfg.gateway).teams) "reactionsEnabled" }}
- name: TEAMS_REACTIONS_ENABLED
value: {{ ($cfg.gateway).teams.reactionsEnabled | quote }}
{{- end }}
{{- end }}
{{- $hasFeishu := and (($cfg.gateway).feishu).appId (($cfg.gateway).feishu).appSecret }}
{{- if $hasFeishu }}
Expand Down
9 changes: 8 additions & 1 deletion charts/openab/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,12 @@ agents:
# # allowed_channels = ["C01234567"]
# # allow_user_messages = "mentions"
# #
# # [teams]
# # allowed_teams = [] # Team IDs; both lists empty = all Team channels
# # allowed_channels = [] # a Team OR channel match admits
# # allow_personal = true
# # allow_group_chats = true
# #
# # [agent]
# # command = "claude-agent-acp"
# # inherit_env = ["ANTHROPIC_API_KEY"]
Expand Down Expand Up @@ -416,7 +422,7 @@ agents:
gateway:
enabled: false # set to true + provide url to enable the [gateway] config block
deploy: true # set to false to skip Gateway Deployment/Service (config-only mode)
url: "" # e.g. ws://openab-gateway:8080/ws
url: "" # WebSocket URL, e.g. the in-cluster openab-gateway Service
platform: "telegram" # default platform when gateway is enabled
token: "" # optional shared secret (injected via GATEWAY_WS_TOKEN env var)
botUsername: "" # optional, for @mention gating
Expand Down Expand Up @@ -461,6 +467,7 @@ agents:
openidMetadata: "" # Override for sovereign clouds → TEAMS_OPENID_METADATA
allowedTenants: [] # List of tenant IDs → TEAMS_ALLOWED_TENANTS
webhookPath: "" # Gateway default: /webhook/teams → TEAMS_WEBHOOK_PATH
reactionsEnabled: false # Public-preview Bot Connector reactions → TEAMS_REACTIONS_ENABLED
# Feishu/Lark adapter config (gateway-side env vars)
# See docs/feishu.md for full setup guide
feishu:
Expand Down
13 changes: 12 additions & 1 deletion config.toml.example
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ allowed_channels = ["1234567890"] # ↑ omitted + non-empty list → auto-
# # send-once (streaming is forced off to avoid
# # posting duplicate, growing messages)
# streaming_placeholder = false # set false for draft-based platforms (e.g. Telegram Rich Messages)
# gateway_ack_timeout_secs = 12 # only enforced for ACKs advertised by a negotiated gateway

# --- Telegram (first-class section; alternative to TELEGRAM_* env vars) ---
# Config-authoritative with ${} expansion; each field falls back to its
Expand Down Expand Up @@ -133,7 +134,17 @@ allowed_channels = ["1234567890"] # ↑ omitted + non-empty list → auto-
# app_secret = "${TEAMS_APP_SECRET}" # env fallback: TEAMS_APP_SECRET
# allowed_tenants = ["<tenant-guid>"] # env fallback: TEAMS_ALLOWED_TENANTS (empty = all)
# webhook_path = "/webhook/teams" # env fallback: TEAMS_WEBHOOK_PATH
# allow_all_users = false # env fallback: TEAMS_ALLOW_ALL_USERS
# dedupe_ttl_secs = 600 # env fallback: TEAMS_DEDUPE_TTL_SECS
# route_ttl_secs = 3600 # env fallback: TEAMS_ROUTE_TTL_SECS
# max_route_entries = 10000 # independent route/dedupe/ownership caps; env: TEAMS_MAX_ROUTE_ENTRIES
# reactions_enabled = false # public-preview reactions; env: TEAMS_REACTIONS_ENABLED
# allowed_teams = [] # Team IDs; env: TEAMS_ALLOWED_TEAMS (comma-separated)
# allowed_channels = [] # channel IDs; env: TEAMS_ALLOWED_CHANNELS
# # both empty = all Team channels; Team OR channel match
# allow_personal = true # env: TEAMS_ALLOW_PERSONAL
# allow_group_chats = true # env: TEAMS_ALLOW_GROUP_CHATS
# # setting any field above opts into typed scope policy
# allow_all_users = false # independent L3 gate; env: TEAMS_ALLOW_ALL_USERS
# allowed_users = ["29:1abc..."] # Bot Framework activity.from.id values (29:…)
# # env fallback: TEAMS_ALLOWED_USERS (comma-separated)

Expand Down
Loading
Loading