Add flate2 and tar dependencies for archive extraction support in file operations. Update documentation with: - New BASIC keywords: SWITCH/CASE, WEBHOOK, INSTR, IS_NUMERIC - HTTP operations: POST, PUT, PATCH, DELETE_HTTP, GRAPHQL, SOAP - Data operations: SAVE, INSERT, UPDATE, DELETE, MERGE, FILTER, etc. - File operations: READ, WRITE, COMPRESS, EXTRACT, GENERATE_PDF, etc. Simplify README and add appendices for external services and environment variables. Add monitoring dashboard and player UI docs.
94 lines
No EOL
3.9 KiB
Markdown
94 lines
No EOL
3.9 KiB
Markdown
# Appendix B: External Services
|
|
|
|
This appendix catalogs all external services that General Bots integrates with, including their configuration requirements, associated BASIC keywords, and API endpoints.
|
|
|
|
## Overview
|
|
|
|
General Bots connects to external services for extended functionality. All service credentials should be stored in `config.csv` within the bot's `.gbot` folder - never hardcoded in scripts.
|
|
|
|
Infrastructure services (database, storage, cache) are automatically managed by the Directory service (Zitadel).
|
|
|
|
## Service Categories
|
|
|
|
| Category | Services | Configuration Location |
|
|
|----------|----------|----------------------|
|
|
| LLM Providers | OpenAI, Groq, Anthropic, Azure OpenAI | `config.csv` |
|
|
| Weather | OpenWeatherMap | `config.csv` |
|
|
| Messaging Channels | WhatsApp, Teams, Instagram, Telegram | `config.csv` |
|
|
| Storage | S3-Compatible (MinIO, etc.) | Directory service (automatic) |
|
|
| Directory | Zitadel | `DIRECTORY_*` environment variables |
|
|
| Email | Stalwart / IMAP/SMTP | Directory service (automatic) |
|
|
| Calendar | CalDAV servers | `config.csv` |
|
|
| Database | PostgreSQL | Directory service (automatic) |
|
|
| Cache | Valkey | Directory service (automatic) |
|
|
|
|
## Quick Reference
|
|
|
|
### BASIC Keywords That Call External Services
|
|
|
|
| Keyword | Service | Config Key |
|
|
|---------|---------|-----------|
|
|
| `LLM` | LLM Provider | `llm-provider`, `llm-api-key` |
|
|
| `WEATHER` | OpenWeatherMap | `weather-api-key` |
|
|
| `SEND MAIL` | SMTP Server | Managed by Directory service |
|
|
| `SEND WHATSAPP` | WhatsApp Business API | `whatsapp-api-key`, `whatsapp-phone-number-id` |
|
|
| `SEND TEAMS` | Microsoft Teams | `teams-app-id`, `teams-app-password` |
|
|
| `SEND INSTAGRAM` | Instagram Graph API | `instagram-access-token`, `instagram-page-id` |
|
|
| `GET` (with http/https URL) | Any HTTP endpoint | N/A |
|
|
| `IMAGE` | BotModels (local) | `botmodels-enabled`, `botmodels-url` |
|
|
| `VIDEO` | BotModels (local) | `botmodels-enabled`, `botmodels-url` |
|
|
| `AUDIO` | BotModels (local) | `botmodels-enabled`, `botmodels-url` |
|
|
| `SEE` | BotModels (local) | `botmodels-enabled`, `botmodels-url` |
|
|
| `FIND` | Qdrant (local) | Internal service |
|
|
| `USE WEBSITE` | Web crawling | N/A |
|
|
|
|
## Service Configuration Template
|
|
|
|
Add these to your `config.csv`:
|
|
|
|
```csv
|
|
key,value
|
|
llm-provider,openai
|
|
llm-api-key,YOUR_API_KEY
|
|
llm-model,gpt-4o
|
|
weather-api-key,YOUR_OPENWEATHERMAP_KEY
|
|
whatsapp-api-key,YOUR_WHATSAPP_KEY
|
|
whatsapp-phone-number-id,YOUR_PHONE_ID
|
|
teams-app-id,YOUR_TEAMS_APP_ID
|
|
teams-app-password,YOUR_TEAMS_PASSWORD
|
|
instagram-access-token,YOUR_INSTAGRAM_TOKEN
|
|
instagram-page-id,YOUR_PAGE_ID
|
|
botmodels-enabled,true
|
|
botmodels-url,http://localhost:5000
|
|
```
|
|
|
|
## Auto-Managed Services
|
|
|
|
The following services are automatically configured by the Directory service (Zitadel):
|
|
|
|
| Service | What's Managed |
|
|
|---------|----------------|
|
|
| PostgreSQL | Connection credentials, database creation |
|
|
| S3-Compatible Storage | Access keys, bucket policies |
|
|
| Valkey Cache | Connection credentials |
|
|
| Stalwart Email | User accounts, SMTP/IMAP access |
|
|
|
|
You do **not** need to configure these services manually. The Directory service handles credential provisioning and rotation.
|
|
|
|
## Security Notes
|
|
|
|
1. **Never hardcode credentials** - Always use `config.csv` or `GET BOT MEMORY`
|
|
2. **Rotate keys regularly** - Update `config.csv` and restart the bot
|
|
3. **Use least privilege** - Only grant permissions needed by the bot
|
|
4. **Audit access** - Monitor external API usage through logs
|
|
5. **Infrastructure credentials** - Managed automatically by Directory service
|
|
|
|
## See Also
|
|
|
|
- [Service Catalog](./catalog.md) - Detailed service documentation
|
|
- [LLM Providers](./llm-providers.md) - AI model configuration
|
|
- [Weather API](./weather.md) - Weather service setup
|
|
- [Channel Integrations](./channels.md) - Messaging platform setup
|
|
- [Storage Services](./storage.md) - S3-compatible storage
|
|
- [Directory Services](./directory.md) - User authentication
|
|
- [Environment Variables](../appendix-env-vars/README.md) - DIRECTORY_* configuration |