2025-10-06 10:30:17 -03:00
|
|
|
[package]
|
2025-10-06 14:55:04 -03:00
|
|
|
name = "botserver"
|
2025-11-21 23:26:43 -03:00
|
|
|
version = "6.1.0"
|
2025-10-06 10:30:17 -03:00
|
|
|
edition = "2021"
|
2025-11-27 15:19:17 -03:00
|
|
|
keywords = ["chatbot", "ai", "llm", "automation", "bot-framework"]
|
|
|
|
|
categories = ["web-programming", "api-bindings", "development-tools"]
|
2025-10-16 11:43:02 -03:00
|
|
|
authors = [
|
2025-11-20 13:28:35 -03:00
|
|
|
"Pragmatismo.com.br ",
|
|
|
|
|
"General Bots Community ",
|
|
|
|
|
"Alan Perdomo",
|
|
|
|
|
"Ana Paula Gil",
|
|
|
|
|
"Arenas.io",
|
|
|
|
|
"Atylla L",
|
|
|
|
|
"Christopher de Castilho",
|
|
|
|
|
"Dario Junior",
|
|
|
|
|
"David Lerner",
|
|
|
|
|
"Experimentation Garage",
|
|
|
|
|
"Flavio Andrade",
|
|
|
|
|
"Heraldo Almeida",
|
|
|
|
|
"Joao Parana",
|
|
|
|
|
"Jonathas C",
|
|
|
|
|
"J Ramos",
|
|
|
|
|
"Lucas Picanco",
|
|
|
|
|
"Marcos Velasco",
|
|
|
|
|
"Matheus 39x",
|
|
|
|
|
"Oerlabs Henrique",
|
|
|
|
|
"Othon Lima",
|
|
|
|
|
"PH Nascimento",
|
|
|
|
|
"Phpussente",
|
|
|
|
|
"Robson Dantas",
|
|
|
|
|
"Rodrigo Rodriguez ",
|
|
|
|
|
"Sarah Lourenco",
|
|
|
|
|
"Thi Patriota",
|
|
|
|
|
"Webgus",
|
|
|
|
|
"Zuilho Se",
|
2025-10-16 11:43:02 -03:00
|
|
|
]
|
2025-10-20 23:32:49 -03:00
|
|
|
description = "General Bots Server - Open-source bot platform by Pragmatismo.com.br"
|
2025-10-06 10:30:17 -03:00
|
|
|
license = "AGPL-3.0"
|
2025-10-20 23:32:49 -03:00
|
|
|
repository = "https://github.com/GeneralBots/BotServer"
|
2025-10-06 10:30:17 -03:00
|
|
|
|
|
|
|
|
[features]
|
2025-11-22 22:54:45 -03:00
|
|
|
# ===== DEFAULT FEATURE SET =====
|
2025-11-28 13:50:28 -03:00
|
|
|
default = ["ui-server", "console", "chat", "automation", "tasks", "drive", "llm", "redis-cache", "progress-bars", "directory"]
|
2025-11-22 01:27:29 -03:00
|
|
|
|
2025-11-22 22:54:45 -03:00
|
|
|
# ===== UI FEATURES =====
|
2025-11-29 16:29:28 -03:00
|
|
|
desktop = ["dep:tauri", "dep:tauri-plugin-dialog", "dep:tauri-plugin-opener", "dep:trayicon", "dep:ksni", "ui-server"]
|
2025-11-23 20:12:09 -03:00
|
|
|
ui-server = []
|
Add .env.example with comprehensive configuration template
The commit adds a complete example environment configuration file
documenting all available settings for BotServer, including logging,
database, server, drive, LLM, Redis, email, and feature flags.
Also removes hardcoded environment variable usage throughout the
codebase, replacing them with configuration via config.csv or
appropriate defaults. This includes:
- WhatsApp, Teams, Instagram adapter configurations
- Weather API key handling
- Email and directory service configurations
- Console feature conditionally compiles monitoring code
- Improved logging configuration with library suppression
2025-11-28 13:19:03 -03:00
|
|
|
console = ["dep:crossterm", "dep:ratatui", "monitoring"]
|
2025-11-22 01:27:29 -03:00
|
|
|
|
2025-11-22 22:54:45 -03:00
|
|
|
# ===== CORE INTEGRATIONS =====
|
|
|
|
|
vectordb = ["dep:qdrant-client"]
|
|
|
|
|
llm = []
|
|
|
|
|
nvidia = []
|
2025-11-22 01:27:29 -03:00
|
|
|
|
2025-11-22 22:54:45 -03:00
|
|
|
# ===== COMMUNICATION CHANNELS =====
|
2025-11-27 23:10:43 -03:00
|
|
|
email = ["dep:imap", "dep:lettre", "dep:mailparse", "dep:native-tls"]
|
2025-11-22 22:54:45 -03:00
|
|
|
whatsapp = []
|
|
|
|
|
instagram = []
|
|
|
|
|
msteams = []
|
2025-10-16 16:49:23 -03:00
|
|
|
|
2025-11-22 22:54:45 -03:00
|
|
|
# ===== PRODUCTIVITY FEATURES =====
|
|
|
|
|
chat = []
|
Add tar/flate2 deps and document new BASIC keywords
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.
2025-11-30 07:53:58 -03:00
|
|
|
drive = ["dep:aws-config", "dep:aws-sdk-s3", "dep:pdf-extract", "dep:zip", "dep:downloader", "dep:mime_guess", "dep:flate2", "dep:tar"]
|
2025-11-22 22:54:45 -03:00
|
|
|
tasks = ["dep:cron"]
|
2025-11-28 09:27:29 -03:00
|
|
|
calendar = []
|
2025-11-22 22:54:45 -03:00
|
|
|
meet = ["dep:livekit"]
|
|
|
|
|
mail = ["email"]
|
|
|
|
|
|
|
|
|
|
# ===== ENTERPRISE FEATURES =====
|
|
|
|
|
compliance = ["dep:csv"]
|
|
|
|
|
attendance = []
|
|
|
|
|
directory = []
|
|
|
|
|
weba = []
|
|
|
|
|
|
|
|
|
|
# ===== OPTIONAL INFRASTRUCTURE =====
|
|
|
|
|
redis-cache = ["dep:redis"]
|
|
|
|
|
monitoring = ["dep:sysinfo"]
|
|
|
|
|
automation = ["dep:rhai"]
|
|
|
|
|
grpc = ["dep:tonic"]
|
|
|
|
|
progress-bars = ["dep:indicatif"]
|
|
|
|
|
|
|
|
|
|
# ===== META FEATURES (BUNDLES) =====
|
|
|
|
|
full = [
|
2025-11-23 20:12:09 -03:00
|
|
|
"ui-server", "desktop", "console",
|
2025-11-22 22:54:45 -03:00
|
|
|
"vectordb", "llm", "nvidia",
|
|
|
|
|
"email", "whatsapp", "instagram", "msteams",
|
|
|
|
|
"chat", "drive", "tasks", "calendar", "meet", "mail",
|
|
|
|
|
"compliance", "attendance", "directory", "weba",
|
|
|
|
|
"redis-cache", "monitoring", "automation", "grpc", "progress-bars"
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
communications = ["email", "whatsapp", "instagram", "msteams", "chat", "redis-cache"]
|
|
|
|
|
productivity = ["chat", "drive", "tasks", "calendar", "meet", "mail", "redis-cache"]
|
|
|
|
|
enterprise = ["compliance", "attendance", "directory", "llm", "vectordb", "monitoring"]
|
2025-11-23 20:12:09 -03:00
|
|
|
minimal = ["ui-server", "chat"]
|
|
|
|
|
lightweight = ["ui-server", "chat", "drive", "tasks"]
|
2025-11-22 01:27:29 -03:00
|
|
|
|
2025-10-06 10:30:17 -03:00
|
|
|
[dependencies]
|
2025-11-22 22:54:45 -03:00
|
|
|
# === CORE RUNTIME (Always Required) ===
|
2025-10-28 14:53:45 -03:00
|
|
|
aes-gcm = "0.10"
|
2025-10-06 10:30:17 -03:00
|
|
|
anyhow = "1.0"
|
2025-10-28 14:53:45 -03:00
|
|
|
argon2 = "0.5"
|
2025-11-11 09:42:52 -03:00
|
|
|
async-lock = "2.8.0"
|
2025-10-06 10:30:17 -03:00
|
|
|
async-stream = "0.3"
|
|
|
|
|
async-trait = "0.1"
|
2025-11-29 17:27:13 -03:00
|
|
|
axum = { version = "0.7.5", features = ["ws", "multipart", "macros"] }
|
|
|
|
|
axum-server = { version = "0.5", features = ["tls-rustls"] }
|
2025-10-06 10:30:17 -03:00
|
|
|
base64 = "0.22"
|
|
|
|
|
bytes = "1.8"
|
|
|
|
|
chrono = { version = "0.4", features = ["serde"] }
|
2025-11-11 09:42:52 -03:00
|
|
|
color-eyre = "0.6.5"
|
|
|
|
|
diesel = { version = "2.1", features = ["postgres", "uuid", "chrono", "serde_json", "r2d2"] }
|
2025-11-12 12:48:06 -03:00
|
|
|
diesel_migrations = "2.1.0"
|
2025-10-11 12:29:03 -03:00
|
|
|
dotenvy = "0.15"
|
2025-10-06 10:30:17 -03:00
|
|
|
env_logger = "0.11"
|
|
|
|
|
futures = "0.3"
|
|
|
|
|
futures-util = "0.3"
|
2025-11-22 22:54:45 -03:00
|
|
|
hex = "0.4"
|
2025-10-30 12:35:25 -03:00
|
|
|
hmac = "0.12.1"
|
2025-11-29 17:27:13 -03:00
|
|
|
hyper = { version = "0.14", features = ["full"] }
|
2025-11-29 16:29:28 -03:00
|
|
|
hyper-rustls = { version = "0.24", features = ["http2"] }
|
2025-10-06 10:30:17 -03:00
|
|
|
log = "0.4"
|
|
|
|
|
num-format = "0.4"
|
2025-11-11 09:42:52 -03:00
|
|
|
once_cell = "1.18.0"
|
2025-10-28 14:53:45 -03:00
|
|
|
rand = "0.9.2"
|
2025-10-06 10:30:17 -03:00
|
|
|
regex = "1.11"
|
2025-11-29 16:29:28 -03:00
|
|
|
reqwest = { version = "0.12", features = ["json", "stream", "multipart", "rustls-tls", "rustls-tls-native-roots"] }
|
2025-10-06 10:30:17 -03:00
|
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
|
|
|
serde_json = "1.0"
|
2025-10-28 14:53:45 -03:00
|
|
|
sha2 = "0.10.9"
|
2025-10-06 10:30:17 -03:00
|
|
|
tokio = { version = "1.41", features = ["full"] }
|
|
|
|
|
tokio-stream = "0.1"
|
2025-11-29 17:27:13 -03:00
|
|
|
tower = "0.4"
|
|
|
|
|
tower-http = { version = "0.5", features = ["cors", "fs", "trace"] }
|
2025-10-06 10:30:17 -03:00
|
|
|
tracing = "0.1"
|
2025-11-29 16:29:28 -03:00
|
|
|
askama = "0.12"
|
|
|
|
|
askama_axum = "0.4"
|
2025-10-06 10:30:17 -03:00
|
|
|
tracing-subscriber = { version = "0.3", features = ["fmt"] }
|
|
|
|
|
urlencoding = "2.1"
|
|
|
|
|
uuid = { version = "1.11", features = ["serde", "v4"] }
|
2025-11-22 22:54:45 -03:00
|
|
|
zitadel = { version = "5.5.1", features = ["api", "credentials"] }
|
|
|
|
|
|
2025-11-29 16:29:28 -03:00
|
|
|
# === TLS/SECURITY DEPENDENCIES ===
|
|
|
|
|
rustls = { version = "0.21", features = ["dangerous_configuration"] }
|
|
|
|
|
rustls-pemfile = "1.0"
|
|
|
|
|
tokio-rustls = "0.24"
|
|
|
|
|
rcgen = { version = "0.11", features = ["pem"] }
|
|
|
|
|
x509-parser = "0.15"
|
|
|
|
|
rustls-native-certs = "0.6"
|
|
|
|
|
webpki-roots = "0.25"
|
|
|
|
|
time = { version = "0.3", features = ["formatting", "parsing"] }
|
|
|
|
|
jsonwebtoken = "9.3"
|
|
|
|
|
tower-cookies = "0.10"
|
|
|
|
|
|
|
|
|
|
# === SYSTEM TRAY DEPENDENCIES ===
|
|
|
|
|
trayicon = { version = "0.2", optional = true }
|
|
|
|
|
ksni = { version = "0.2", optional = true }
|
|
|
|
|
webbrowser = "0.8"
|
|
|
|
|
hostname = "0.4"
|
|
|
|
|
local-ip-address = "0.6"
|
|
|
|
|
|
2025-11-22 22:54:45 -03:00
|
|
|
# === FEATURE-SPECIFIC DEPENDENCIES (Optional) ===
|
|
|
|
|
|
|
|
|
|
# Desktop UI (desktop feature)
|
|
|
|
|
tauri = { version = "2", features = ["unstable"], optional = true }
|
|
|
|
|
tauri-plugin-dialog = { version = "2", optional = true }
|
|
|
|
|
tauri-plugin-opener = { version = "2", optional = true }
|
|
|
|
|
|
|
|
|
|
# Email Integration (email feature)
|
|
|
|
|
imap = { version = "3.0.0-alpha.15", optional = true }
|
|
|
|
|
lettre = { version = "0.11", features = ["smtp-transport", "builder", "tokio1", "tokio1-native-tls"], optional = true }
|
|
|
|
|
mailparse = { version = "0.15", optional = true }
|
2025-11-27 23:10:43 -03:00
|
|
|
native-tls = { version = "0.2", optional = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
|
|
|
|
# Video Meetings (meet feature)
|
|
|
|
|
livekit = { version = "0.7", optional = true }
|
|
|
|
|
|
|
|
|
|
# Vector Database (vectordb feature)
|
|
|
|
|
qdrant-client = { version = "1.12", optional = true }
|
|
|
|
|
|
|
|
|
|
# File Storage & Drive (drive feature)
|
|
|
|
|
aws-config = { version = "1.8.8", optional = true }
|
|
|
|
|
aws-sdk-s3 = { version = "1.109.0", features = ["behavior-version-latest"], optional = true }
|
|
|
|
|
pdf-extract = { version = "0.10.0", optional = true }
|
|
|
|
|
zip = { version = "2.2", optional = true }
|
|
|
|
|
downloader = { version = "0.2", optional = true }
|
|
|
|
|
mime_guess = { version = "2.0", optional = true }
|
Add tar/flate2 deps and document new BASIC keywords
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.
2025-11-30 07:53:58 -03:00
|
|
|
flate2 = { version = "1.0", optional = true }
|
|
|
|
|
tar = { version = "0.4", optional = true }
|
2025-11-22 22:54:45 -03:00
|
|
|
|
|
|
|
|
# Task Management (tasks feature)
|
|
|
|
|
cron = { version = "0.15.0", optional = true }
|
|
|
|
|
|
|
|
|
|
# Automation & Scripting (automation feature)
|
|
|
|
|
rhai = { git = "https://github.com/therealprof/rhai.git", branch = "features/use-web-time", optional = true }
|
|
|
|
|
|
|
|
|
|
# Compliance & Reporting (compliance feature)
|
|
|
|
|
csv = { version = "1.3", optional = true }
|
|
|
|
|
|
|
|
|
|
# Console/TUI (console feature)
|
|
|
|
|
crossterm = { version = "0.29.0", optional = true }
|
|
|
|
|
ratatui = { version = "0.29.0", optional = true }
|
|
|
|
|
|
|
|
|
|
# Caching/Sessions (redis-cache feature)
|
|
|
|
|
redis = { version = "0.27", features = ["tokio-comp"], optional = true }
|
|
|
|
|
|
|
|
|
|
# System Monitoring (monitoring feature)
|
|
|
|
|
sysinfo = { version = "0.37.2", optional = true }
|
|
|
|
|
|
|
|
|
|
# Networking/gRPC (grpc feature)
|
|
|
|
|
tonic = { version = "0.14.2", features = ["transport"], optional = true }
|
|
|
|
|
|
|
|
|
|
# UI Enhancement (progress-bars feature)
|
|
|
|
|
indicatif = { version = "0.18.0", optional = true }
|
|
|
|
|
smartstring = "1.0.1"
|
|
|
|
|
scopeguard = "1.2.0"
|
|
|
|
|
|
|
|
|
|
[dev-dependencies]
|
|
|
|
|
mockito = "1.7.0"
|
|
|
|
|
tempfile = "3"
|
2025-10-26 00:02:19 -03:00
|
|
|
|
2025-11-11 09:42:52 -03:00
|
|
|
[build-dependencies]
|
|
|
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
|
|
2025-11-22 01:27:29 -03:00
|
|
|
# === SECURITY AND CODE QUALITY CONFIGURATION ===
|
2025-11-21 23:23:53 -03:00
|
|
|
[lints.rust]
|
2025-11-22 22:54:45 -03:00
|
|
|
unused_imports = "warn"
|
|
|
|
|
unused_variables = "warn"
|
|
|
|
|
unused_mut = "warn"
|
|
|
|
|
unsafe_code = "deny"
|
|
|
|
|
missing_debug_implementations = "warn"
|
2025-11-21 23:23:53 -03:00
|
|
|
|
|
|
|
|
[lints.clippy]
|
2025-11-22 22:54:45 -03:00
|
|
|
all = "warn"
|
|
|
|
|
pedantic = "warn"
|
|
|
|
|
nursery = "warn"
|
|
|
|
|
cargo = "warn"
|
|
|
|
|
unwrap_used = "warn"
|
|
|
|
|
expect_used = "warn"
|
|
|
|
|
panic = "warn"
|
|
|
|
|
todo = "warn"
|
2025-11-21 23:23:53 -03:00
|
|
|
|
2025-10-26 00:02:19 -03:00
|
|
|
[profile.release]
|
2025-11-22 22:54:45 -03:00
|
|
|
lto = true
|
|
|
|
|
opt-level = "z"
|
|
|
|
|
strip = true
|
|
|
|
|
panic = "abort"
|
|
|
|
|
codegen-units = 1
|
|
|
|
|
overflow-checks = true
|