Activity stream

GET /activity/ (actionstools_app/activity/views.py) needs X-Actions-TargetUUID and returns, for that target, up to limit items of each kind:

Kind (type) Source

note

em_actions_notes* (Notes)

file

em_actions_files* (Files)

task

em_actions_tasks* (Tasks)

event

event logger /es-changelog (Event logger)

email

messaging /email/ (Messaging (email))

batch email

messaging /email/batch/

Items are merged and sorted by updated_at (else created_at), newest first. With limit=5 a page can therefore hold up to 30 items.

Pagination is per source: meta.last is an object with one cursor per kind — {"note": …, "file": …, "task": …, "event": …, "email": …, "batch": …} — and must be sent back whole as ?last=. It is omitted when every source is exhausted.

The caller’s X-Session-Token, Authorization and instance header are forwarded to the event logger and messaging services, so the user must be authorised there too. A failure in either service fails the whole request.