Archust Docs

Activity Log, Notifications & Support

Nhật ký hoạt động, thông báo và hỗ trợ.

Activity Log, Notifications & Support

Ba module này tạo thành hệ thống quan sát cho tenant: audit, realtime notifications và tickets.

Activity Log

/dashboard/activity-log — audit, filter, export

Notifications

/dashboard/notifications — list, markRead

Support

/dashboard/support — tickets + thread

Bạn tìm thấy gì ở đâu

TrangĐường dẫnMô tả
Activity Log/dashboard/activity-logPrefetch list + getStats + getActors + myWatches
Notifications/dashboard/notificationsPrefetch list(page1,20) + unreadCount
Support/dashboard/supportPrefetch list(page1,20)
Ticket Detail/dashboard/support/[id]Thread messages
Contact/contact (marketing)Form public, không cần login

Activity Log

Chức năngMô tả
list({ limit, cursor, type, dateRange })Cursor pagination, bounded 50/page
getStats / getActorsThống kê và danh sách actors
getMemberActivityActivity per member
exportCsvXuất CSV
watch / unwatch / myWatchesTheo dõi activity

Activity Types

TypeVí dụ metadata
draft.created / approved / publisheddraftId, jobId, publisherId
job.created / triggered / pausedjobId, instanceId
publisher.connected / testedpublisherId, platform, success
document.uploadeddocumentId, fileName
settings.updatedfield, masked value
member.invitedemail, role

Activity log append-only, không có delete/update. Mọi thay đổi nhạy cảm (billing, credentials, role) bắt buộc ghi audit với actorId, orgId, action.

Notifications

Chức năngMô tả
list({ unreadOnly })List, filter unread
markRead({ id }) / markAllRead()Đánh dấu đã đọc
unreadCountBadge trên sidebar Bell
getPreferences / updatePreferenceCài đặt thông báo
TypeKhi nào nhận
draft.review_readyDraft chờ duyệt
job.failedJob fail liên tiếp
quota.warningĐạt 80% quota
publisher.failedPublish fail
support.replyTicket có phản hồi
system.announcementBroadcast từ admin

Realtime channel: notifications:{orgId}:{userId} → tự invalidate cache khi có mới.

Support

Chức năngMô tả
list({ status })List tickets, filter open/in_progress/resolved/closed
getById({ id })Ticket + messages thread created_at asc
create({ subject, message })Tạo ticket, validate Zod, ghi audit
addMessage({ ticketId, body })Thêm message vào thread
StatusTransition
openMới tạo
in_progressĐang xử lý
waiting_userChờ bạn phản hồi
resolvedĐã giải quyết
closedĐóng, read-only
Tạo ticket: support.create — ghi audit.
Thread: getById trả messages, addMessage để trả lời.
Admin reply: admin trả lời qua admin.support, bạn nhận notifications type support.reply.
Đóng: resolvedclosed, sau đó read-only.

Contact (Public)

contact.submitpublicProcedure cho /contact:

  • Validate name/email/message + company optional, rate limited
  • Lưu vào contact_submissions — không cần login

Lưu ý

  • Mọi route /dashboard/activity-log, /notifications, /support đều là /orgs/{slug}/dashboard/... — không hardcode
  • Audit queries luôn bounded — không load toàn bộ
  • Impersonation (admin) luôn audit và read-only — tenant không thấy nhưng cần biết admin có thể xem để hỗ trợ

On this page