Tự động hóa
Tự động hóa chạy chỉ dẫn theo lịch và đưa kết quả vào chat.
Cấu trúc
Có tên, chỉ dẫn, tối đa năm trigger, mô hình tùy chọn, đích và thông báo. Chat session tạo chat; Work task tạo Work. Lỗi vào thông báo. Riêng biệt, bật Kết quả tự động hóa dưới Settings → Thông báo → Thông báo qua email sẽ gửi email kết quả mỗi lần chạy, một khi administrator đã cấu hình máy chủ gửi thư (xem Thông báo). Dữ liệu được mã hóa.
Trigger: once, hourly, daily, weekly, monthly, yearly.
Trigger sự kiện
Một loại thứ bảy, event, không dùng đồng hồ: nó kích hoạt khi một thông báo của bạn đến.
{ "kind": "event", "event": "channel-mention", "match": "release" }
event nhận mọi loại thông báo trừ automation-failed — một routine không được tự khởi động lại từ chính thông báo lỗi của nó. match tùy chọn là phép so khớp chuỗi con không phân biệt hoa thường với tiêu đề thông báo; không có nó, mọi thông báo cùng loại sẽ kích hoạt routine.
Một event trigger không bao giờ đóng góp thời điểm chạy tiếp theo. Một tự động hóa mà mọi trigger đều là event vì vậy không hiện next run: danh sách và hộp thoại sửa ghi Chạy khi … thay vào đó. Kết hợp event trigger với lịch vẫn được — các trigger theo lịch vẫn điều khiển đồng hồ.
Hai giới hạn bảo vệ blast radius. Một routine chỉ kích hoạt tối đa một lần mỗi phút từ event, dù stream bận đến đâu, và thông báo lỗi của chính một run không bao giờ kích hoạt lại routine đã tạo ra nó.
Run nhận được thứ đã kích hoạt nó, gắn thêm vào chỉ dẫn:
---
Trigger payload (JSON):
{"event":"channel-mention","title":"...","body":"...","href":"..."}
Thực thi
Scheduler chạy mỗi phút với lease. Khi đến hạn, ghi run, enqueue automation.run.v1, cập nhật next_run_at bằng compare-and-set.
Nếu server tắt, lần gần nhất chạy một lần. Pause xóa lịch; resume tính lại. Run stalled nếu không bắt đầu trong 30 phút.
Work kiểm tra quyền khi chạy và có thể trả work-access-denied. Email kết quả cho một run nhắm Work mang bản tóm tắt mà chính run Work đã lưu — cùng văn bản mà lịch sử lượt chạy của task hiện — và rơi về dòng trạng thái một dòng của task khi run có từ trước lúc có bản tóm tắt lưu lại.
Routine đại lý
workTaskId liên kết task hiện có trong panel đại lý. Task thiếu trả work-task-missing; bận trả work-task-busy.
Trigger webhook
Ngoài lịch, một tự động hóa còn có thể được hệ thống bên ngoài kích hoạt — CI pipeline, dịch vụ cron, nhà thông minh. Trong hộp thoại sửa tự động hóa, Webhook trigger → Enable sinh secret riêng cho tự động hóa đó; chỉ SHA-256 được lưu nên bản rõ chỉ hiện đúng một lần. Xoay secret vô hiệu hóa secret cũ ngay lập tức, còn tắt webhook thì đóng lại endpoint.
Hệ thống bên ngoài kích hoạt tự động hóa bằng:
curl -X POST https://your-host/api/automations/<automationId>/webhook \
-H "Authorization: Bearer lwh_..."
(X-Libre-Webhook-Secret: lwh_... dùng được như header thay thế.) Phản hồi là 202 kèm id của run đã vào hàng đợi — cùng đường chạy thủ công với Run now, nên run kết thúc, thông báo và vào lịch sử y hệt. So sánh secret theo thời gian hằng; tự động hóa không tồn tại và secret sai trả lời giống hệt nhau (không lộ id tự động hóa), còn tự động hóa đang tạm dừng trả 409: khác với Run now của chủ sở hữu, người gọi bên ngoài không thể kích hoạt xuyên qua trạng thái tạm dừng.
Một object JSON trong body request đi kèm vào run làm trigger payload của nó, để routine thấy được nó đang phản ứng với điều gì:
curl -X POST https://your-host/api/automations/<automationId>/webhook \
-H "Authorization: Bearer lwh_..." \
-H "Content-Type: application/json" \
-d '{"commit":"abc123","branch":"main"}'
Payload được gắn vào chỉ dẫn mà run thực thi, dưới tiêu đề Trigger payload (JSON): — cho cả chat run, Work task mới và routine gắn task. Chỉ object JSON được mang theo (array và scalar bị bỏ qua), và một payload có dạng serialize vượt quá 4000 ký tự sẽ bị loại bỏ thay vì cắt bớt, kèm cảnh báo trong log server. Một lần kích hoạt không kèm body hoạt động y như trước.
API
Mọi endpoint trừ lệnh kích hoạt webhook đều cần xác thực và chỉ tác động lên tự động hóa của chính người gọi; lệnh kích hoạt webhook xác thực bằng secret riêng của tự động hóa.
| Phương thức | Đường dẫn | Mục đích |
|---|---|---|
GET | /api/automations | Danh sách |
POST | /api/automations | Tạo |
GET | /api/automations/occurrences?from=&to= | Sự kiện |
GET | /api/automations/runs | Lịch sử |
GET | /api/automations/runs/summary | Tóm tắt |
POST | /api/automations/runs/seen | Đã xem |
GET | /api/automations/:automationId | Đọc |
PUT | /api/automations/:automationId | Sửa |
DELETE | /api/automations/:automationId | Xóa |
POST | /api/automations/:automationId/pause | Dừng |
POST | /api/automations/:automationId/resume | Tiếp |
POST | /api/automations/:automationId/run | Chạy |
POST | /api/automations/:automationId/webhook | Kích hoạt bằng secret (202) |
POST | /api/automations/:automationId/webhook-secret | Tạo/xoay secret |
DELETE | /api/automations/:automationId/webhook-secret | Tắt webhook |
Tối đa 50 tự động hóa, tên 200 ký tự, chỉ dẫn 20.000.