Skip to main content

Logs

We use Elasticsearch for logging. We log all create, update, and delete operations; however, view operations are not logged. Logging is implemented in both resolvers and open API methods.

Two Types of Logs

The system maintains two distinct logging mechanisms:

  1. Operational Logs (CRUD Logs) – Track create, update, delete operations in CRM modules.

  2. Client Activity Logs – Track all client and manager activity related to a specific client across CRM, Tradersroom, and Terminal.

The sections below describe both mechanisms.

List of fields:

  1. Created - the date when the log was created.
  2. Action - the type of operation being logged. The actions we track include "create," "update," "updateMany," and "delete."
  3. Description - this field is used for providing additional details in specific cases where the standard information may not be sufficient. For example, in transaction webhooks, the description might include the current transaction status, such as "Sending transaction to Huntli," or detail a specific error, such as "Error while trying to send transaction to Huntli."
  4. Client - shows the name of the client who performed an action in the system.
  5. Employee - shows the name of the employee who performed an action in the system or performed a specific action on their assigned client.
  6. API - indicates that the action was performed by a third-party service. The column shows the identification token used to perform the action.
  7. Business model - refers to a distinct, independent model within our CRM, such as "Projects," "Settings," or "Client Area." A business model can also include submodules.
  8. Sub model - specific model that belongs to a business model. For example, "Texts" is a sub model that belongs to the "Settings" business model.
  9. Description - provides a short explanation of the log to add context. E.g., Client opened the withdrawal modal, Client clicked the notifications button, etc.
  10. Type - shows the log origin and status. The origin can be internal or external. The status is shown in brackets and defines whether it is an info log or an error log. Info logs provide general informational messages, while error logs describe failed operations. 
  11. Error - is a stringified field containing the error message. It is used in the "catch" block of a "try-catch" construction, with a Sub type of "error."
Filters 

Use filters to narrow log entries by module, operation, source, and time.

  1. Client – Shows logs related to the selected client.

  2. Employee – Displays logs related to the selected employee.

  3. Business model – Top-level system module (e.g. Desks, Projects, Clients, Businesses).

  4. Sub model – Sub-section within the selected business model (e.g.Accounts, Wallets, Banks, Cards, or Currencies, and others).

  5. Action – Operation type: get, create, update, updateMany, webhook, delete, clone.

  6. Type – Log origin: internal (resolvers/system) or external (Open API, webhooks).

  7. Created date – Date range when the log was generated.

The Client and Employee filters are also available as buttons above the table for quick access.

Select one or more criteria and click Save to apply filters. Multiple filters can be combined to quickly isolate relevant logs for debugging, audits, or incident analysis.

Client Activity Logs (Sessions Tab)

Client Activity Logs provide a unified audit trail of all activity related to a specific client.

Unlike Operational Logs (CRUD), Client Activity Logs include:

  1. Client actions (CRM / Tradersroom / Terminal)

  2. Manager actions performed on that client

  3. Navigation and UI events

  4. Trading terminal activity

  5. Finance flows

  6. Support interactions

These logs are displayed in: /clients/edit/{clientId}/sessions

Example: /clients/edit/69732d9afe88d5e6ca56e366/sessions

Data Storage Model

Client Activity Logs are stored in a centralized activity log model with the following structure:

  1. clientId

  2. actorType (client | manager | system)

  3. actorId (optional for client)

  4. actorName (for manager display)

  5. sourceApp (crm | tradersroom | terminal)

  6. eventName (machine-readable)

  7. message (human-readable)

  8. metadata (JSON object)

  9. createdAt (timestamp)

Sessions Table (UI)

The Sessions tab displays:

  1. Date/time (default sorting: DESC)

  2. Actor type (Client / Manager)

  3. Actor (Manager name + ID or “Client”)

  4. Source app (CRM / Tradersroom / Terminal)

  5. Event type

  6. Event details

  7. Expandable metadata (JSON)

Table supports:

  1. Server-side pagination

  2. Sorting by Date

  3. Filtering by:

    1. Actor type

    2. Source app

    3. Event type

Logged Client Events

The system logs (minimum):

Authentication:

  1. Client registered

  2. Client logged in

  3. Client requested password reset

  4. Client restored password

  5. Client changed language

Navigation:

  1. Client entered route X

  2. Client opened modal/drawer X

  3. Client opened Notifications dropdown

  4. Client attempted PWA install (result logged)

Transactions:

  1. Client submitted deposit

  2. Client submitted withdrawal

  3. Client fulfilled withdrawal

  4. Client filtered transactions

  5. Client paginated transactions

  6. Client opened transaction details

  7. Client declined transaction

Documents:

  1. Client fulfilled declaration

  2. Client printed form

  3. Client downloaded document

Tickets:

  1. Client created ticket

  2. Client messaged in ticket

  3. Client closed ticket

Profile: Client edited profile (log changed fields only, not sensitive values)

Search: Client searched trading ideas/calendar

Trading Terminal

All terminal operations must be logged, including:

  1. Order creation

  2. Order modification

  3. Order cancellation

  4. Order execution

  5. Symbol changes

  6. Indicator changes

  7. Chart timeframe changes

  8. Widget operations

  9. Position lifecycle

  10. Filters and instrument selection

Full coverage is mandatory.

Logged Manager Events on Client

All manager actions related to the client must be logged, including:

  1. Opened client card

  2. Opened client in new tab

  3. Edited client data (with safe diff)

  4. Created related entity (ticket, note, action, etc.)

  5. Updated related entity

  6. Bulk operations affecting the client

Each manager event includes:

  1. managerId

  2. managerName

  3. clientId

  4. action type

  5. target entity (type + id)

  6. before/after diff (without sensitive data)

Security & Privacy Rules
  1. No passwords, tokens, or full payment data are logged.

  2. For profile edits, only changed field names are logged.

  3. Access to Sessions tab is role-based.

Difference Between Operational Logs and Client Activity Logs
Operational Logs Client Activity Logs
CRUD only Full behavioral audit
Internal system focus Client-centric
Not client-viewable Shown in Sessions tab
No UI navigation logging Includes UI and terminal activity