AuditEventLog

The AuditEventLog contains information about audit events from different Deephaven processes. A variety of Deephaven processes can write to the AuditEventLog. For example, the RemoteQueryProcessor will write to the AuditEventLog with details about events including (but not limited to):

  • A user attempting to access a table.
  • A client sending a synchronous or asynchronous query request.
  • A script loaded from a remote source.

The following processes write audit logs.

ProcessMain Class Name
ACL Write ServerDbAclWriteServer
Authentication ServerAuthenticationServer
Data Import ServerDataImportServer
Local Table Data ServerLocalTableDataServer
Log Aggregator ServiceLogAggregatorService
Persistent Query ControllerPersistentQueryController
WorkersMain
Legacy WorkersRemoteQueryProcessor
Remote Query Dispatcher (includes query and merge servers)RemoteQueryDispatcher
Remote User Table ServerRemoteUserTableServer
Table Data Cache ProxyTableDataCacheProxy
TailerLogtailerMain

Columns

Not all columns apply to all events; only those applicable for a given event will be filled in, and the rest will contain null values. For example, client hostnames and ports are only populated by events that apply to client requests.

Column NameColumn TypeDescription
DateStringThe date on which the audit event was generated. This is the partitioning column.
TimestampDateTimeThe timestamp for the event.
ClientHostStringThe client's host name.
ClientPortintThe client's port ID.
ServerHostStringThe server's host name.
ServerPortintThe server's port ID.
ProcessStringThe process name generating the event. This will be either the value retrieved from the process.name property or the main class name.
AuthenticatedUserStringIf available, the authenticated user for the logged event.
EffectiveUserStringIf available, the effective user for the logged event.
NamespaceStringIf applicable, the namespace for the logged event.
TableStringIf applicable, the table name for the logged event.
IdintIf applicable, the ID for the logged event.
EventStringThe name of the event. See Auditable events by process for information on each event type.
DetailsStringFurther details on the logged event.

Auditable events by process

Each process logs specific events by name; this section defines the names in the Event column and what each name means.

All processes writing audit events will write the following events. Some processes will write further events as described below.

  • INITIALIZING - the process is initializing.
  • RUNNING - the process is running and starting to process normally.
  • SHUTTING_DOWN - the process is shutting down.

ACL Write Server

  • Add ACL - add an ACL.
  • Add group strategy - add a group to a strategy.
  • Add input table editor - add an input table editor group.
  • Add member - add a member to one or more groups.
  • Add strategy account - add an account to a strategy.
  • Add user - add a new user.
  • Change password - change a user's password.
  • Delete ACL - delete an ACL.
  • Delete group - delete a group.
  • Delete group strategy - remove a group from a strategy.
  • Delete strategy account - delete an account from a strategy.
  • Delete input table editor - delete an input table editor group.
  • Delete user - delete a user.
  • Remove member - remove a member from one or more groups.
  • Starting server - a server starts to listen for ACL requests.
  • Update ACL - update an ACL.
  • Update input table editor - update an input table editor group.

Authentication Server

  • Client registration - a client registered with the authentication server.
  • Client termination - a client terminated.
  • Starting server - a server is starting to listen for authentication requests.

Persistent Query Controller

  • Client registration - a client registered with the Persistent Query Controller.
  • Client termination - a client terminated.
  • Send script - a Persistent Query script is being sent to a client.

Remote Query Dispatcher

  • Classpath additions - the classpath additions used for a worker start.
  • Extra JVM arguments - any extra JVM arguments being used to start a worker
  • Pushed classes - the classes being pushed to a starting worker.
  • Starting worker - a worker is being started.

Workers (Main)

EventDescription
Historical Table AccessRequesting a historical table
Live Table AccessRequesting a live table
Historical Partitioned Table AccessRequesting a historical partitioned table
Live Partitioned Table AccessRequesting a live partitioned table
Unpartitioned User Table WriteWriting an unpartitioned user table
Unpartitioned User Table DeletionDeleting an unpartitioned user table
Partitioned User Table Schema AdditionAdding a partitioned user table schema
Partitioned User Table Schema UpdateUpdating a partitioned user table's schema
Partitioned User Table Partition WriteWriting a direct partition to a partitioned user table
Partitioned User Table Partition DeletionDeleting a direct partition from a partitioned user table
Live User Table AppendAppending rows to a live partition from a partitioned user table
Live User Table Incremental UpdatesAppending rows incrementally to a live partition from a partitioned user table
Live User Table Partition DeletionDeleting a live partition from a partitioned user table
Partitioned User Table DeletionDeleting a partitioned user table, including its schema, direct partitions, and live partitions

The "Details" column provides additional information, such as whether an operation was allowed, rejected, or completed, or the column partition value associated with an operation.

Workspaces

From WorkspaceData table updates (successful writes are not audited, as they have been written to the WorkspaceData table).

  • WorkspaceData Authorization Failure - an unauthorized user tried to publish a change to the WorkspaceData table.
  • WorkspaceData Write Failure - an unexpected error occurred writing a record to the WorkspaceData table.