The audit log, the server log and the admin quota view were three pages (the quota one a Stats tab),
each with its own filters, and the background runs had no list at all. Now one page ("Napló" /
"Activity") reads all four, each still its own table on the server: a shared bar (text, a period of
1 h to 90 days defaulting to 7, an account) and each tab's own filters, the whole view in the URL.
The old page ids open their tab.
Server side: the audit log and the new run list (`/api/admin/runs`) filter and page like the server
log, through one keyset helper (`routes/_keyset`) the log now shares; an audit row keeps the request
it was made in (migration 0111), so its log lines are a pivot away, as a run's are (`lrun`). The
quota breakdown takes since/until and one account. The Scheduler rows get a history button to their
job's runs.
Also fixed on the way: re-saving the value in force on the Configuration page staged its override
without committing it (the commit sat inside the audit branch), so the save was lost.
29 lines
918 B
Python
29 lines
918 B
Python
"""An audit row keeps the request that made it
|
|
|
|
Revision ID: 0111_audit_request_id
|
|
Revises: 0110_intervals_in_sysconfig
|
|
Create Date: 2026-10-18
|
|
|
|
The activity page opens an admin action's log lines from its row: `audit_log.request_id` is the
|
|
request the change was made in, the same id `log_events.request_id` carries. Older rows have none —
|
|
the request that made them was never recorded.
|
|
"""
|
|
|
|
import sqlalchemy as sa
|
|
from alembic import op
|
|
|
|
revision: str = "0111_audit_request_id"
|
|
down_revision: str | None = "0110_intervals_in_sysconfig"
|
|
branch_labels: str | None = None
|
|
depends_on: str | None = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.add_column("audit_log", sa.Column("request_id", sa.String(64)))
|
|
op.create_index("ix_audit_log_request_id", "audit_log", ["request_id"])
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.drop_index("ix_audit_log_request_id", table_name="audit_log")
|
|
op.drop_column("audit_log", "request_id")
|