SQLogger API

REST API for log management system
Version: v1.5
Base URL: https://127.0.0.1:7443
OpenAPI 3.0.0
Exported: 06.06.2026, 22:45:04
AUTH

Authentication

SQLogger API supports three independent authentication methods:

Session (Cookie-based)

POST /api/v1.5/auth/login

Send credentials in request body, server returns session cookie

Cookie: SQLogger_Session=<session_token>

Session cookie is used for subsequent requests

JWT (Bearer Token)

POST /api/v1.5/auth/jwt/login

Send credentials in request body, server returns JWT token

Authorization: Bearer <jwt_token>

Include Bearer token in all subsequent requests

Basic Authentication

POST /api/v1.5/auth/basic/login

Validate credentials via Basic header

Authorization: Basic <base64_encoded_credentials>

Credentials validated on every request, no server state

Flow:

  1. Choose authentication method on login page (Session, JWT, or Basic)
  2. Authenticate once to receive credential (cookie or token)
  3. Use credential for all subsequent requests
  4. Session/JWT expires after configured TTL, Basic has no expiration

Payload Encryption

Session JWT Basic

Payload encryption (AES-256-ECB) is available for Session and JWT authentication methods. Basic authentication does not support payload encryption.

Encrypted requests to protected endpoints must include the X-Encrypted: true header. The encryption key is provided during login.

Authentication Methods

JWT

bearerAuth

JWT token authentication. Include token in Authorization header.
Scheme: bearer
Bearer Format: JWT
Example: Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
BASIC

basicAuth

Basic HTTP authentication. Use username and password.
Scheme: basic
Example: Authorization: Basic ZGVtbzpkZW1v
SESSION

sessionAuth

Session cookie authentication. Set by /auth/login endpoint.
In: cookie
Name: SQLogger_Session
Example: Cookie: SQLogger_Session=6f2d1a90aa3098a929588a03d36614d4
GET /api/version Get API version information
Returns information about API and backend versions
InfoPublic

Responses

200: Version information retrieved successfully
Response Schema: VersionInfo

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/version" \ -H "Accept: application/json"
Example Response Static Preview
{
  "api": {
    "version": "v1.5",
    "major": 1,
    "minor": 5,
    "name": "sqlogger REST API"
  },
  "backend": {
    "name": "sqlogger",
    "version": "1.18.0",
    "major": 1,
    "minor": 18,
    "build": 0,
    "platform": "Windows",
    "architecture": "x64",
    "description": "SQLogger is a high-performance logging system...",
    "enabledFeatures": 511,
    "enabledFeaturesList": [
      "SOURCE_INFO",
      "AES",
      "MYSQL",
      "REST",
      "WEBUI",
      "JWT",
      "PAYLOAD_ENCRYPT",
      "TASKS_TRACKER"
    ]
  },
  "license": "Commercial",
  "licenseInfo": {
    "type": "BASIC",
    "expires": 1785340800,
    "valid": true,
    "productName": "SQLogger",
    "userName": "SQLogger Basic",
    "userEmail": "support@greenblit.com"
  }
}
GET / Welcome page
Returns the HTML welcome page with navigation to dashboard and API documentation
WebPublic

Responses

200: Welcome HTML page

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/" \ -H "Accept: text/html"
Example Response Static Preview
No response example available
GET /api/docs/ API Docs page
Returns the HTML API Docs page
WebPublic

Responses

200: API Docs HTML page

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/docs/" \ -H "Accept: text/html"
Example Response Static Preview
No response example available
GET /tasks/ Task Tracker page
Returns the HTML Task Tracker page for managing incidents and tasks linked to log entries
WebPublic

Responses

200: Task Tracker HTML page

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/tasks/" \ -H "Accept: text/html"
Example Response Static Preview
No response example available
GET /dashboard/ WebUI Dashboard page
Returns the HTML dashboard for the web user interface
WebPublic

Responses

200: Dashboard HTML page

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/dashboard/" \ -H "Accept: text/html"
Example Response Static Preview
No response example available
GET /login/ Login page
Returns the HTML login page for user authentication
WebPublic

Responses

200: HTML login page successfully returned

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/login/" \ -H "Accept: text/html"
Example Response Static Preview
No response example available
POST /api/v1.5/auth/login User authentication
Authenticates user credentials and returns session information
AuthSession

Request Body

Content Type: application/json

Responses

200: Login successful
401: Invalid credentials

API Example

Request Body

User login name
User password
Remember login session for extended period
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/auth/login" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"pass","rememberMe":true}'
Example Response Static Preview
{
  "status": "success",
  "authType": "SESSION",
  "userName": "demo",
  "userRole": "SUPER_ADMIN",
  "encryptionKey": "v3/gbKuRRvySvuG5OFe7Ob6BRGiuV0SMqiFLk0cF3Bo=",
  "encryptionKeyTTL": 3600,
  "redirect": "/dashboard/"
}
POST /api/v1.5/auth/logout User logout
Logs out the current user and invalidates the session
AuthSessionJwtBasic

Responses

200: Logout successful

API Example

No parameters required
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/auth/logout" \ -H "Accept: application/json"
Example Response Static Preview
{
  "status": "success",
  "message": "Logged out successfully"
}
POST /api/v1.5/auth/session/login Session authentication
Authenticates user credentials and returns session information
AuthSession

Request Body

Content Type: application/json

Responses

200: Login successful
401: Invalid credentials

API Example

Request Body

User login name
User password
Remember login session for extended period
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/auth/session/login" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"pass","rememberMe":true}'
Example Response Static Preview
{
  "status": "success",
  "authType": "SESSION",
  "userName": "demo",
  "userRole": "SUPER_ADMIN",
  "encryptionKey": "v3/gbKuRRvySvuG5OFe7Ob6BRGiuV0SMqiFLk0cF3Bo=",
  "encryptionKeyTTL": 3600,
  "redirect": "/dashboard/"
}
POST /api/v1.5/auth/basic/login Basic authentication
Performs basic HTTP authentication
AuthBasic

Responses

200: Authentication successful
401: Authentication failed

API Example

No parameters required
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/auth/basic/login" \ -H "Accept: application/json"
Example Response Static Preview
{
  "status": "success",
  "authType": "BASIC",
  "authToken": "ZGVtbzpkZW1v",
  "userName": "demo",
  "userRole": "SUPER_ADMIN",
  "redirect": "/dashboard/"
}
POST /api/v1.5/auth/jwt/login JWT authentication
Authenticates user credentials and returns JWT token
AuthJwt

Request Body

Content Type: application/json

Responses

200: JWT token generated successfully

API Example

Request Body

User login name
User password
Extend token expiration to 7 days
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/auth/jwt/login" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"username":"demo","password":"demo","rememberMe":true}'
Example Response Static Preview
{
  "status": "success",
  "authType": "JWT",
  "authToken": "eyJhbGciOiJIUzI1NiIs...",
  "encryptionKey": "7JnADIbpmlaxFPDFfONJ/Aw8t/KLcVLO2gO9Uz/t54E=",
  "encryptionKeyTTL": 3600,
  "redirect": "/dashboard/"
}
POST /api/v1.5/payload-key Rotate payload encryption key
Generates a new payload encryption key and updates server-side state. Available for Session and JWT authentication only. Basic authentication is not supported.
AuthSecurityEncryption

Responses

200: New encryption key generated
400: Encryption not available for this authentication type
401: Authentication required

API Example

No parameters required
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/payload-key" \ -H "Accept: application/json"
Example Response Static Preview
{
  "encryptionKey": "BRLOOUWVFoLCCYlT4QuR+tKB90zhCJvmFmy/H52R+Eo=",
  "encryptionKeyTTL": 3600
}
POST /api/v1.5/{logger}/log Add log entry
Adds a new log entry to the specified logger
Logs

Parameters

Name Type Location Required Description
logger string path Required Logger instance name

Request Body

Content Type: application/json
Schema: LogEntry

Responses

200: Log added successfully

API Example

Logger instance name

Request Body

Unique log entry identifier
Log timestamp in Unix epoch format
Log severity level
Log message content
Function name where log was generated
Source file name where log was generated
Line number in source file where log was generated
Thread identifier that generated the log
source
Unique source identifier
Universal unique identifier for the source
Human-readable source name
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/log" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"id":101277,"timestamp":1762911862,"level":"INFO","message":"test","func":"log","file":"logger.cpp","line":141,"thread_id":"11960","source":{"id":1,"uuid":"4472ab03-4184-44ab-921c-751a702c42ca","name":"test_source"}}'
Example Response Static Preview
{
  "status": "ok"
}
GET /api/v1.5/{logger}/logs Get logs with filtering
Retrieves log entries with pagination, sorting and filtering options
Logs

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
limit integer query Optional Maximum number of logs to return
offset integer query Optional Number of logs to skip for pagination
order string query Optional Field to order results by
sort string query Optional Sort direction (ascending or descending)
filters string query Optional JSON array of filter objects. See components/schemas/FilterCondition for structure.

Responses

200: List of log entries retrieved successfully
Response Schema: LogEntry

API Example

Logger instance name
Maximum number of logs to return
Number of logs to skip for pagination
Field to order results by
Sort direction (ascending or descending)
JSON array of filter objects. See components/schemas/FilterCondition for structure.
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/logs?limit=10&offset=0&order=timestamp&sort=DESC&filters=%5B%7B%22field%22%3A%20%22level%22%2C%20%22op%22%3A%20%22%3D%22%2C%20%22value%22%3A%20%22ERROR%22%7D%5D" \ -H "Accept: application/json"
Example Response Static Preview
[
  {
    "id": 101277,
    "timestamp": 1762911862,
    "level": "INFO",
    "message": "test",
    "func": "log",
    "file": "logger.cpp",
    "line": 141,
    "thread_id": "11960",
    "source": {
      "id": 1,
      "uuid": "4472ab03-4184-44ab-921c-751a702c42ca",
      "name": "test_source"
    }
  },
  {
    "id": 101277,
    "timestamp": 1762911862,
    "level": "INFO",
    "message": "test",
    "func": "log",
    "file": "logger.cpp",
    "line": 141,
    "thread_id": "11960",
    "source": {
      "id": 1,
      "uuid": "4472ab03-4184-44ab-921c-751a702c42ca",
      "name": "test_source"
    }
  }
]
POST /api/v1.5/{logger}/logs Add multiple log entries
Adds multiple log entries in batch to the specified logger
Logs

Parameters

Name Type Location Required Description
logger string path Required Logger instance name

Request Body

Content Type: application/json
Schema: LogEntry

Responses

200: All logs processed successfully
207: Partial success - some logs processed, some failed
500: All logs failed to process

API Example

Logger instance name

Request Body

Item 1
Unique log entry identifier
Log timestamp in Unix epoch format
Log severity level
Log message content
Function name where log was generated
Source file name where log was generated
Line number in source file where log was generated
Thread identifier that generated the log
source
Unique source identifier
Universal unique identifier for the source
Human-readable source name
Item 2
Unique log entry identifier
Log timestamp in Unix epoch format
Log severity level
Log message content
Function name where log was generated
Source file name where log was generated
Line number in source file where log was generated
Thread identifier that generated the log
source
Unique source identifier
Universal unique identifier for the source
Human-readable source name
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/logs" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[{"id":0,"timestamp":1762911861,"source":{"id":1,"name":"web_client","uuid":"5572ab03-4184-44ab-921c-751a702c42df"},"level":"INFO","message":"test message from web","file":"api_test.js","func":"bulkTest","line":567,"thread_id":"web_12345"},{"id":1,"timestamp":1762911862,"source":{"id":2,"name":"api_gateway","uuid":"4472ab03-4184-44ab-921c-751a702c42ca"},"level":"ERROR","message":"Connection timeout","file":"gateway.cpp","func":"handleRequest","line":142,"thread_id":"14520"}]'
Example Response Static Preview
{
  "status": "success",
  "total_processed": 2
}
GET /api/v1.5/{logger}/logs/count Get logs count
Returns the total count of log entries matching optional filters
Logs

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
filters string query Optional JSON array of filter objects. See components/schemas/FilterCondition for structure.

Responses

200: Log count retrieved successfully

API Example

Logger instance name
JSON array of filter objects. See components/schemas/FilterCondition for structure.
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/logs/count?filters=%5B%7B%22field%22%3A%20%22level%22%2C%20%22op%22%3A%20%22%3D%22%2C%20%22value%22%3A%20%22ERROR%22%7D%5D" \ -H "Accept: application/json"
Example Response Static Preview
{
  "count": 2
}
GET /api/v1.5/{logger}/sources Get log sources
Retrieves log sources with optional filtering. Requires VIEWER+ role.
SourcesLogs

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
id integer query Optional Filter by source ID
uuid string query Optional Filter by source UUID
name string query Optional Filter by source name

Responses

200: Sources retrieved successfully
Possible Response: Source
403: Insufficient permissions
404: Source not found when filtering by id/uuid/name

API Example

Logger instance name
Filter by source ID
Filter by source UUID
Filter by source name
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/sources?id=1&uuid=4472ab03-4184-44ab-921c-751a702c42ca&name=test_source" \ -H "Accept: application/json"
Example Response Static Preview
"example_value"
POST /api/v1.5/{logger}/sources Create log source
Creates a new log source. Requires ADMIN+ role.
SourcesLogs

Parameters

Name Type Location Required Description
logger string path Required Logger instance name

Request Body

Content Type: application/json
Schema: Source

Responses

201: Source created successfully
Response Schema: Source
400: Invalid source data
403: Insufficient permissions
409: Source already exists (duplicate UUID or name)

API Example

Logger instance name

Request Body

Unique source identifier
Universal unique identifier for the source
Human-readable source name
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/sources" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"id":0,"name":"new_source","uuid":"5672ab03-4184-44ab-921c-751a702c48b5"}'
Example Response Static Preview
{
  "id": 1,
  "uuid": "4472ab03-4184-44ab-921c-751a702c42ca",
  "name": "test_source"
}
GET /api/v1.5/{logger}/config Get logger configuration
Retrieves the current configuration for the specified logger
Config

Parameters

Name Type Location Required Description
logger string path Required Logger instance name

Responses

200: Logger configuration retrieved successfully
Response Schema: LoggerConfig

API Example

Logger instance name
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/config" \ -H "Accept: application/json"
Example Response Static Preview
{
  "Logger": {
    "Name": "test_logger_sqlite",
    "SyncMode": false,
    "NumThreads": 4,
    "OnlyFileNames": true,
    "MinLogLevel": "TRACE",
    "UseBatch": true,
    "BatchSize": 1000,
    "UseTimedFlush": true,
    "TimedFlushInterval": 5000
  },
  "Database": {
    "Name": "test_logs.db",
    "Table": "logs",
    "Host": "192.168.0.2",
    "Port": 5432,
    "User": "test",
    "Pass": "password",
    "Type": "SQLite"
  },
  "Transport": {
    "NumThreads": 4,
    "Type": "REST",
    "Host": "0.0.0.0",
    "Port": 7443,
    "User": "master",
    "Pass": "password",
    "UserRole": "ADMIN",
    "SessionPath": "sessions",
    "SameSite": "Lax",
    "SecureCookies": false,
    "SessionMaxAge": 3600,
    "UseJWT": true,
    "JWTSecret": "******",
    "JWTExpireTime": 3600,
    "UseSSL": true,
    "SSLCertPath": "./ssl/cert.pem",
    "SSLKeyPath": "./ssl/key.pem",
    "SSLCertChainPath": "./ssl/chain.pem",
    "SSLPassphrase": "password",
    "ForceHTTPS": true,
    "HTTPRedirectPort": 7777
  },
  "TransportUsers": {
    "demo": {
      "UserRole": "USER",
      "Pass": "password"
    },
    "master": {
      "UserRole": "ADMIN",
      "Pass": "password"
    }
  },
  "Security": {
    "LoginMaxAttempts": 5,
    "LoginBlockDuration": 15,
    "LoginAttemptWindow": 5,
    "IPValidationMode": "SUBNET_24",
    "IPValidationCustomMask": "255.255.255.0",
    "InvalidateOnIPMismatch": true,
    "IPChangeGracePeriod": 0,
    "ValidatePrivateIPs": true,
    "TrustedNetworks": [
      "192.168.0.0/16",
      "10.0.0.0/8"
    ],
    "CORSEnabled": true,
    "CORSAllowOrigins": [
      "http://localhost:7443",
      "http://127.0.0.1:7443",
      "https://localhost:7443",
      "https://127.0.0.1:7443"
    ],
    "CORSAllowMethods": [
      "GET",
      "POST",
      "OPTIONS"
    ],
    "CORSAllowHeaders": [
      "content-type",
      "authorization",
      "x-requested-with"
    ],
    "CORSAllowCredentials": true,
    "CORSMaxAge": 86400,
    "EncryptPayload": true,
    "PayloadKeyTTL": 3600,
    "PayloadKeyRotationEnabled": true,
    "PayloadKeyRotationInterval": 86400,
    "PayloadKeyRotationOnRestart": true,
    "RateLimitEnabled": true,
    "RateLimitRules": [
      {
        "endpoint": "/api/v1/auth/login",
        "method": "POST",
        "type": "PER_IP",
        "maxRequests": 60,
        "window": 60,
        "statusCode": 429,
        "message": "Too many requests. Please try again later.",
        "priority": 1,
        "enabled": true,
        "description": "Logs write limit. 30 requests per second."
      }
    ],
    "RateLimitWhitelistIPs": [
      "127.0.0.1",
      "192.168.1.0/24"
    ],
    "RateLimitWhitelistUsers": [
      "admin",
      "monitoring"
    ],
    "RateLimitWhitelistRoles": [
      "ADMIN",
      "SUPER_ADMIN"
    ],
    "RateLimitWhitelistEndpoints": [
      "/api/v1.5/loggers",
      "/api/v1.5/*/config",
      "/api/*/*/analytics"
    ],
    "RateLimitIncludeHeaders": true
  },
  "Connection": {
    "UseConnAttempts": true,
    "MaxConnAttempts": 5,
    "ConnAttemptsDelay": 5000
  },
  "Source": {
    "Enabled": false,
    "Uuid": "4472ab03-4184-44ab-921c-751a702c42ca",
    "Name": "test_source"
  }
}
POST /api/v1.5/{logger}/config Update logger configuration
Config

Parameters

Name Type Location Required Description
logger string path Required Logger instance name

Request Body

Content Type: application/json
Schema: LoggerConfig

Responses

200: Configuration updated
400: Configuration update failed

API Example

Logger instance name

Request Body

Logger
Logger instance name
Whether to use synchronous logging mode
Number of worker threads for log processing
Whether to store only file names instead of full paths
Minimum log level to process
Whether to use batch processing for logs
Maximum batch size for log processing
Whether to use timed automatic flush
Time interval for automatic flush in milliseconds
Database
Database name or file path
Database table name for logs
Database server hostname or IP address
Database server port
Database username
Database password (masked in responses)
Database type (SQLite, PostgreSQL, MySQL, etc.)
Transport
Number of worker threads for transport
Transport type (REST, WebSocket, etc.)
Server bind address
Server port
API username
API password (masked in responses)
Default user role
Session storage path
Cookie SameSite attribute
Whether to use secure cookies
Session maximum age in seconds
Whether to use JWT authentication
JWT signing secret key (masked in responses)
JWT token expiration time in seconds
Whether to use SSL/TLS encryption
SSL certificate file path
SSL private key file path
SSL certificate chain file path
SSL key passphrase (masked in responses)
Whether to force HTTPS redirects
HTTP to HTTPS redirect port
Transport user accounts configuration with username as key
User role for authentication and authorization
User password (masked in responses)
User role for authentication and authorization
User password (masked in responses)
Each item has properties: UserRole, Pass
Security
Maximum number of failed login attempts
Duration in minutes of login block after exceeding max attempts
Time window in minutes for counting login attempts
IP address validation mode: - NONE: No IP validation - EXACT: Exact IP address match - SUBNET_24: Match within /24 subnet (255.255.255.0) - SUBNET_16: Match within /16 subnet (255.255.0.0) - CUSTOM: Custom subnet mask using IPValidationCustomMask
Custom subnet mask for IP validation (e.g., "255.255.255.0") when IPValidationMode=CUSTOM
Whether to invalidate session on IP address mismatch
Grace period in minutes for IP changes before invalidating session
Whether to validate private IP addresses
List of trusted network CIDRs in format "x.x.x.x/y"
Whether CORS is enabled
Allowed CORS origins
Allowed HTTP methods for CORS
Allowed HTTP headers for CORS
Whether to allow credentials in CORS requests
Maximum age for CORS preflight requests in seconds
Enable payload encryption for REST API
Payload encryption key time-to-live in seconds
Enable automatic payload key rotation
Automatic key rotation interval in seconds
Rotate payload key on server restart
Whether rate limiting is enabled globally
List of rate limiting rules (checked in ascending priority order)
Item 1
Endpoint pattern: - Exact: "/api/version" - Single wildcard: "/api/*" (matches "/api/users" but not "/api/users/1") - Multi wildcard: "/api/**" (matches "/api/users/1/profile")
HTTP method or "*" for all methods
Type of rate limit to apply
Maximum requests allowed in time window
Time window in seconds
HTTP status code when limit exceeded
Error message returned to client
Rule priority (1 = highest, checked first)
Whether rule is enabled
Rule description (optional)
Array of objects. Each item has properties: endpoint, method, type, maxRequests, window, statusCode, message, priority, enabled, description
IP addresses or CIDRs exempt from all rate limits
User IDs exempt from all rate limits
User roles exempt from all rate limits
Endpoints exempt from all rate limits
Whether to include X-RateLimit-* headers in responses
Connection
Whether to use connection attempts
Maximum number of connection attempts
Delay between connection attempts in milliseconds
Source
Whether source logging is enabled
Source UUID
Source name
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/config" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"Logger":{"Name":"test_logger_sqlite","SyncMode":false,"NumThreads":4,"OnlyFileNames":true,"MinLogLevel":"TRACE","UseBatch":true,"BatchSize":1000,"UseTimedFlush":true,"TimedFlushInterval":5000},"Database":{"Name":"test_logs.db","Table":"logs","Host":"192.168.0.2","Port":5432,"User":"test","Pass":"password","Type":"SQLite"},"Transport":{"NumThreads":4,"Type":"REST","Host":"0.0.0.0","Port":7443,"User":"master","Pass":"password","UserRole":"ADMIN","SessionPath":"sessions","SameSite":"Lax","SecureCookies":false,"SessionMaxAge":3600,"UseJWT":true,"JWTSecret":"******","JWTExpireTime":3600,"UseSSL":true,"SSLCertPath":"./ssl/cert.pem","SSLKeyPath":"./ssl/key.pem","SSLCertChainPath":"./ssl/chain.pem","SSLPassphrase":"password","ForceHTTPS":true,"HTTPRedirectPort":7777},"TransportUsers":{"demo":{"UserRole":"USER","Pass":"password"},"master":{"UserRole":"ADMIN","Pass":"password"}},"Security":{"LoginMaxAttempts":5,"LoginBlockDuration":15,"LoginAttemptWindow":5,"IPValidationMode":"SUBNET_24","IPValidationCustomMask":"255.255.255.0","InvalidateOnIPMismatch":true,"IPChangeGracePeriod":0,"ValidatePrivateIPs":true,"TrustedNetworks":["192.168.0.0/16","10.0.0.0/8"],"CORSEnabled":true,"CORSAllowOrigins":["http://localhost:7443","http://127.0.0.1:7443","https://localhost:7443","https://127.0.0.1:7443"],"CORSAllowMethods":["GET","POST","OPTIONS"],"CORSAllowHeaders":["content-type","authorization","x-requested-with"],"CORSAllowCredentials":true,"CORSMaxAge":86400,"EncryptPayload":true,"PayloadKeyTTL":3600,"PayloadKeyRotationEnabled":true,"PayloadKeyRotationInterval":86400,"PayloadKeyRotationOnRestart":true,"RateLimitEnabled":true,"RateLimitRules":[{"endpoint":"/api/v1/auth/login","method":"POST","type":"PER_IP","maxRequests":60,"window":60,"statusCode":429,"message":"Too many requests. Please try again later.","priority":1,"enabled":true,"description":"Logs write limit. 30 requests per second."}],"RateLimitWhitelistIPs":["127.0.0.1","192.168.1.0/24"],"RateLimitWhitelistUsers":["admin","monitoring"],"RateLimitWhitelistRoles":["ADMIN","SUPER_ADMIN"],"RateLimitWhitelistEndpoints":["/api/v1.5/loggers","/api/v1.5/*/config","/api/*/*/analytics"],"RateLimitIncludeHeaders":true},"Connection":{"UseConnAttempts":true,"MaxConnAttempts":5,"ConnAttemptsDelay":5000},"Source":{"Enabled":false,"Uuid":"4472ab03-4184-44ab-921c-751a702c42ca","Name":"test_source"}}'
Example Response Static Preview
{
  "status": "ok"
}
POST /api/v1.5/{logger}/config/validate Validate configuration
ConfigValidate

Parameters

Name Type Location Required Description
logger string path Required Logger instance name

Request Body

Content Type: application/json
Schema: LoggerConfig

Responses

200: Validation result

API Example

Logger instance name

Request Body

Logger
Logger instance name
Whether to use synchronous logging mode
Number of worker threads for log processing
Whether to store only file names instead of full paths
Minimum log level to process
Whether to use batch processing for logs
Maximum batch size for log processing
Whether to use timed automatic flush
Time interval for automatic flush in milliseconds
Database
Database name or file path
Database table name for logs
Database server hostname or IP address
Database server port
Database username
Database password (masked in responses)
Database type (SQLite, PostgreSQL, MySQL, etc.)
Transport
Number of worker threads for transport
Transport type (REST, WebSocket, etc.)
Server bind address
Server port
API username
API password (masked in responses)
Default user role
Session storage path
Cookie SameSite attribute
Whether to use secure cookies
Session maximum age in seconds
Whether to use JWT authentication
JWT signing secret key (masked in responses)
JWT token expiration time in seconds
Whether to use SSL/TLS encryption
SSL certificate file path
SSL private key file path
SSL certificate chain file path
SSL key passphrase (masked in responses)
Whether to force HTTPS redirects
HTTP to HTTPS redirect port
Transport user accounts configuration with username as key
User role for authentication and authorization
User password (masked in responses)
User role for authentication and authorization
User password (masked in responses)
Each item has properties: UserRole, Pass
Security
Maximum number of failed login attempts
Duration in minutes of login block after exceeding max attempts
Time window in minutes for counting login attempts
IP address validation mode: - NONE: No IP validation - EXACT: Exact IP address match - SUBNET_24: Match within /24 subnet (255.255.255.0) - SUBNET_16: Match within /16 subnet (255.255.0.0) - CUSTOM: Custom subnet mask using IPValidationCustomMask
Custom subnet mask for IP validation (e.g., "255.255.255.0") when IPValidationMode=CUSTOM
Whether to invalidate session on IP address mismatch
Grace period in minutes for IP changes before invalidating session
Whether to validate private IP addresses
List of trusted network CIDRs in format "x.x.x.x/y"
Whether CORS is enabled
Allowed CORS origins
Allowed HTTP methods for CORS
Allowed HTTP headers for CORS
Whether to allow credentials in CORS requests
Maximum age for CORS preflight requests in seconds
Enable payload encryption for REST API
Payload encryption key time-to-live in seconds
Enable automatic payload key rotation
Automatic key rotation interval in seconds
Rotate payload key on server restart
Whether rate limiting is enabled globally
List of rate limiting rules (checked in ascending priority order)
Item 1
Endpoint pattern: - Exact: "/api/version" - Single wildcard: "/api/*" (matches "/api/users" but not "/api/users/1") - Multi wildcard: "/api/**" (matches "/api/users/1/profile")
HTTP method or "*" for all methods
Type of rate limit to apply
Maximum requests allowed in time window
Time window in seconds
HTTP status code when limit exceeded
Error message returned to client
Rule priority (1 = highest, checked first)
Whether rule is enabled
Rule description (optional)
Array of objects. Each item has properties: endpoint, method, type, maxRequests, window, statusCode, message, priority, enabled, description
IP addresses or CIDRs exempt from all rate limits
User IDs exempt from all rate limits
User roles exempt from all rate limits
Endpoints exempt from all rate limits
Whether to include X-RateLimit-* headers in responses
Connection
Whether to use connection attempts
Maximum number of connection attempts
Delay between connection attempts in milliseconds
Source
Whether source logging is enabled
Source UUID
Source name
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/config/validate" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"Logger":{"Name":"test_logger_sqlite","SyncMode":false,"NumThreads":4,"OnlyFileNames":true,"MinLogLevel":"TRACE","UseBatch":true,"BatchSize":1000,"UseTimedFlush":true,"TimedFlushInterval":5000},"Database":{"Name":"test_logs.db","Table":"logs","Host":"192.168.0.2","Port":5432,"User":"test","Pass":"password","Type":"SQLite"},"Transport":{"NumThreads":4,"Type":"REST","Host":"0.0.0.0","Port":7443,"User":"master","Pass":"password","UserRole":"ADMIN","SessionPath":"sessions","SameSite":"Lax","SecureCookies":false,"SessionMaxAge":3600,"UseJWT":true,"JWTSecret":"******","JWTExpireTime":3600,"UseSSL":true,"SSLCertPath":"./ssl/cert.pem","SSLKeyPath":"./ssl/key.pem","SSLCertChainPath":"./ssl/chain.pem","SSLPassphrase":"password","ForceHTTPS":true,"HTTPRedirectPort":7777},"TransportUsers":{"demo":{"UserRole":"USER","Pass":"password"},"master":{"UserRole":"ADMIN","Pass":"password"}},"Security":{"LoginMaxAttempts":5,"LoginBlockDuration":15,"LoginAttemptWindow":5,"IPValidationMode":"SUBNET_24","IPValidationCustomMask":"255.255.255.0","InvalidateOnIPMismatch":true,"IPChangeGracePeriod":0,"ValidatePrivateIPs":true,"TrustedNetworks":["192.168.0.0/16","10.0.0.0/8"],"CORSEnabled":true,"CORSAllowOrigins":["http://localhost:7443","http://127.0.0.1:7443","https://localhost:7443","https://127.0.0.1:7443"],"CORSAllowMethods":["GET","POST","OPTIONS"],"CORSAllowHeaders":["content-type","authorization","x-requested-with"],"CORSAllowCredentials":true,"CORSMaxAge":86400,"EncryptPayload":true,"PayloadKeyTTL":3600,"PayloadKeyRotationEnabled":true,"PayloadKeyRotationInterval":86400,"PayloadKeyRotationOnRestart":true,"RateLimitEnabled":true,"RateLimitRules":[{"endpoint":"/api/v1/auth/login","method":"POST","type":"PER_IP","maxRequests":60,"window":60,"statusCode":429,"message":"Too many requests. Please try again later.","priority":1,"enabled":true,"description":"Logs write limit. 30 requests per second."}],"RateLimitWhitelistIPs":["127.0.0.1","192.168.1.0/24"],"RateLimitWhitelistUsers":["admin","monitoring"],"RateLimitWhitelistRoles":["ADMIN","SUPER_ADMIN"],"RateLimitWhitelistEndpoints":["/api/v1.5/loggers","/api/v1.5/*/config","/api/*/*/analytics"],"RateLimitIncludeHeaders":true},"Connection":{"UseConnAttempts":true,"MaxConnAttempts":5,"ConnAttemptsDelay":5000},"Source":{"Enabled":false,"Uuid":"4472ab03-4184-44ab-921c-751a702c42ca","Name":"test_source"}}'
Example Response Static Preview
{
  "status": "ok",
  "valid": false,
  "message": "Found 1 invalid and 1 missing parameters",
  "missingParameters": [
    "[Logger]UseTimedFlush"
  ],
  "invalidParameters": [
    {
      "parameter": "[Logger]BatchSize",
      "detail": "Batch size for SQLite could not be bigger than 1000 (10000)"
    }
  ]
}
GET /api/v1.5/stats/transport Get transport statistics with endpoint metrics
Retrieves comprehensive transport layer statistics including:
- Network traffic metrics (bytes sent/received)
- Connection information
- Request/error counts
- Per-endpoint detailed statistics
StatsMonitoringNetwork

Responses

200: Transport statistics retrieved successfully
Response Schema: TransportStats

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/stats/transport" \ -H "Accept: application/json"
Example Response Static Preview
{
  "bytesSent": 3923259,
  "bytesReceived": 3685,
  "activeConnections": 1,
  "failedRequests": 0,
  "totalRequests": 1200,
  "errors4xx": 15,
  "errors5xx": 2,
  "startTime": 1762911607,
  "uptimeSeconds": 995,
  "uptimeFormatted": "0h 16m 35s",
  "currentTime": 1762912603,
  "endpoints": {
    "get_stats_transport": {
      "requestCount": 45,
      "errorCount": 0,
      "avgProcessingTimeMs": 1,
      "bytesReceived": 0,
      "bytesSent": 10456,
      "activeConnections": 1,
      "lastRequestTime": 1762912602
    },
    "post_config_validate": {
      "requestCount": 12,
      "errorCount": 1,
      "avgProcessingTimeMs": 3,
      "bytesReceived": 4500,
      "bytesSent": 96,
      "activeConnections": 0,
      "lastRequestTime": 1762912598
    }
  }
}
GET /api/v1.5/stats/hardware Get hardware information
Retrieves system hardware information and resource utilization
StatsMonitoringSystem

Responses

200: Hardware information retrieved successfully
Response Schema: HardwareInfo

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/stats/hardware" \ -H "Accept: application/json"
Example Response Static Preview
{
  "cpu": {
    "vendor": "GenuineIntel",
    "model": "Intel(R) N100",
    "cores": 4,
    "threads": 4,
    "maxFrequencyMhz": 800,
    "utilizationPercent": 47,
    "threadsUtilization": [
      45,
      52,
      38,
      49
    ]
  },
  "memory": {
    "totalBytes": 17179869184,
    "freeBytes": 11586015232,
    "availableBytes": 11586031616,
    "utilizationPercent": 32.5604,
    "totalGb": 16,
    "freeGb": 10.7903,
    "availableGb": 10.7903,
    "modules": [
      {
        "vendor": "0x0CAB",
        "model": "B4ASAG53222B",
        "sizeBytes": 17179869184,
        "sizeGb": 16,
        "frequencyHz": 3200000000,
        "frequencyMhz": 3200,
        "serialNumber": "924BD99E"
      }
    ]
  },
  "storage": {
    "disks": [
      {
        "vendor": "(Стандартные дисковые накопители)",
        "model": "TWSC TSC10N512-F7T10S",
        "sizeBytes": 512105932800,
        "sizeGb": 476.936,
        "freeBytes": 472661921792,
        "freeGb": 440.201,
        "serialNumber": "TTSMA254WX06699",
        "utilizationPercent": 7.70231,
        "volumes": [
          "C:",
          "D:"
        ]
      }
    ]
  },
  "gpu": {
    "utilizationPercent": 0,
    "cards": [
      {
        "vendor": "Intel Corporation",
        "model": "Intel(R) UHD Graphics",
        "memoryBytes": 1073741824,
        "memoryGb": 1,
        "frequencyMhz": 0,
        "driverVersion": "31.0.101.3417"
      }
    ]
  },
  "system": {
    "osName": "Microsoft Windows 11 Pro",
    "osVersion": "22631",
    "architecture": "64-bit"
  },
  "network": {
    "interfaces": [
      {
        "name": "15",
        "macAddress": "",
        "ipv4": "",
        "ipv6": "",
        "description": "Microsoft Kernel Debug Network Adapter"
      }
    ]
  },
  "motherboard": {
    "vendor": "Intel",
    "model": "To be filled by O.E.M.",
    "serialNumber": "AH2517014058"
  },
  "metadata": {
    "generated": 1763672217,
    "version": "1.0"
  }
}
GET /api/v1.5/stats/ratelimit Get rate limiting statistics
Retrieves rate limiting middleware statistics including active limit keys and blocked requests
StatsMonitoringSecurity

Parameters

Name Type Location Required Description
entries boolean query Optional Include active rate limit entries in response
limit integer query Optional Maximum number of active entries to return
blockedOnly boolean query Optional Return only blocked entries

Responses

200: Rate limit statistics retrieved successfully
Response Schema: RateLimitStats
401: Unauthorized - admin access required
404: Logger not found
500: Internal server error

API Example

Include active rate limit entries in response
Maximum number of active entries to return
Return only blocked entries
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/stats/ratelimit?entries=true&limit=100&blockedOnly=true" \ -H "Accept: application/json"
Example Response Static Preview
{
  "totalRequests": 281,
  "limitedRequests": 5,
  "whitelistedRequests": 7,
  "activeLimitKeys": 1,
  "blockedKeys": 1,
  "requestsInWindow": 50,
  "keysTypeIp": 0,
  "keysTypeUser": 0,
  "keysTypeRole": 0,
  "keysTypeAuthId": 1,
  "keysTypeGlobal": 0,
  "endpointStats": {
    "/api/v1.5/loggers": 4,
    "/api/v1.5/test_logger_sqlite/config": 3
  },
  "ruleStats": {
    "/api/*/*/log:POST": 55
  },
  "activeEntries": [
    {
      "key": "/api/*/*/log:POST:AUTHID:3fb5a08b19e13fe6ea40136d79d538ce",
      "count": 50,
      "totalCount": 50,
      "blocked": true,
      "maxRequests": 50,
      "windowSeconds": 10,
      "endpoint": "/api/*/*/log",
      "method": "POST",
      "limitType": "authid",
      "identifier": "3fb5a08b19e13fe6ea40136d79d538ce",
      "windowStart": 1767320511582,
      "firstRequest": 1767320511582,
      "windowExpires": 1767320521582
    }
  ]
}
GET /api/v1.5/{logger}/stats/logger Get logger statistics
Retrieves logger performance and operational statistics
StatsPerformance

Parameters

Name Type Location Required Description
logger string path Required Logger instance name

Responses

200: Logger statistics retrieved successfully
Response Schema: LoggerStats

API Example

Logger instance name
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/stats/logger" \ -H "Accept: application/json"
Example Response Static Preview
{
  "totalLogged": 2,
  "totalFailed": 0,
  "maxBatchSize": 2,
  "minBatchSize": 2,
  "avgBatchSize": 2,
  "currentBatchBufferSize": 0,
  "avgBufferSize": 0,
  "maxBufferSize": 0,
  "maxProcessTimeMs": 49,
  "totalProcessTimeMs": 49,
  "lastProcessTimeMs": 24,
  "flushCount": 1,
  "timedFlushCount": 1,
  "avgProcessTime": 24.5,
  "startTime": 1762911607,
  "uptimeSeconds": 1021,
  "uptimeFormatted": "0h 17m 1s",
  "currentTime": 1762912629
}
GET /api/v1.5/{logger}/stats/database Get database statistics
Retrieves database storage and performance statistics
StatsStorage

Parameters

Name Type Location Required Description
logger string path Required Logger instance name

Responses

200: Database statistics retrieved successfully
Response Schema: DatabaseStats

API Example

Logger instance name
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/stats/database" \ -H "Accept: application/json"
Example Response Static Preview
{
  "isConnected": 1,
  "lastError": "not an error",
  "totalLogs": 101277,
  "logsByLevel": {},
  "earliestLog": 1758572730,
  "latestLog": 1762911862,
  "sourcesCount": 1,
  "storageSize": 0,
  "dailyAvg": 33759
}
GET /api/v1.5/{logger}/export Export logs
Exports log entries in various formats with configurable options
LogsExport

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
format string query Optional
names boolean query Optional Include column names in export
delimiter string query Optional Field delimiter for CSV format
limit integer query Optional Maximum number of logs to export
order string query Optional Field to order results by
sort string query Optional Sort direction for exported logs

Responses

200: Exported logs
Response Schema: LogEntry

API Example

Logger instance name
Include column names in export
Field delimiter for CSV format
Maximum number of logs to export
Field to order results by
Sort direction for exported logs
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/export?format=json&names=true&delimiter=%2C&limit=10&order=timestamp&sort=DESC" \ -H "Accept: application/json"
Example Response Static Preview
[
  {
    "id": 101277,
    "timestamp": 1762911862,
    "level": "INFO",
    "message": "test",
    "func": "log",
    "file": "logger.cpp",
    "line": 141,
    "thread_id": "11960",
    "source": {
      "id": 1,
      "uuid": "4472ab03-4184-44ab-921c-751a702c42ca",
      "name": "test_source"
    }
  },
  {
    "id": 101277,
    "timestamp": 1762911862,
    "level": "INFO",
    "message": "test",
    "func": "log",
    "file": "logger.cpp",
    "line": 141,
    "thread_id": "11960",
    "source": {
      "id": 1,
      "uuid": "4472ab03-4184-44ab-921c-751a702c42ca",
      "name": "test_source"
    }
  }
]
GET /api/v1.5/{logger}/command Execute administrative command
Executes administrative commands on the logger instance.
CommandsAdminStatsLogsSourcesStorage

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
cmd string query Required Administrative commands:
flush - Flush all pending logs to database
resetStats - Reset all statistics counters
clearLogs - Clear all log entries from database
vacuum - Perform database maintenance (VACUUM/OPTIMIZE)
params string query Optional Additional command parameters as JSON array of strings in "key=value" format.

For `clearLogs` command:
- [] - Clear only logs
- '["clearSources=true"]' - Clear logs and sources

For `vacuum` command:
- [] - Basic maintenance on entire database
- '["table=logs"]' - Table/collection name (PostgreSQL, MySQL, MongoDB)
- '["schema=main"]' - Database schema (SQLite only)
- '["full=true"]' - Full rewrite (PostgreSQL only)
- '["analyze=true"]' - Update statistics (PostgreSQL only)
- '["verbose=true"]' - Verbose output (PostgreSQL only)
- '["collection=logs"]' - Collection name (MongoDB only)

Other commands (`flush`, `resetStats`) don't accept parameters.

Note: Database-specific parameters may be ignored for unsupported database types.

Responses

200: Command executed successfully

API Example

Logger instance name
Administrative commands:
flush - Flush all pending logs to database
resetStats - Reset all statistics counters
clearLogs - Clear all log entries from database
vacuum - Perform database maintenance (VACUUM/OPTIMIZE)
Additional command parameters as JSON array of strings in "key=value" format.

For `clearLogs` command:
- [] - Clear only logs
- '["clearSources=true"]' - Clear logs and sources

For `vacuum` command:
- [] - Basic maintenance on entire database
- '["table=logs"]' - Table/collection name (PostgreSQL, MySQL, MongoDB)
- '["schema=main"]' - Database schema (SQLite only)
- '["full=true"]' - Full rewrite (PostgreSQL only)
- '["analyze=true"]' - Update statistics (PostgreSQL only)
- '["verbose=true"]' - Verbose output (PostgreSQL only)
- '["collection=logs"]' - Collection name (MongoDB only)

Other commands (`flush`, `resetStats`) don't accept parameters.

Note: Database-specific parameters may be ignored for unsupported database types.
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/command?cmd=flush&params=%5B%5D" \ -H "Accept: application/json"
Example Response Static Preview
{
  "status": "success",
  "message": "Database maintenance completed"
}
GET /api/v1.5/{logger}/analytics Get analytics data
Retrieves analytical data and insights from log entries
LogsAnalytics

Parameters

Name Type Location Required Description
logger string path Required Logger instance name

Responses

200: Analytics data retrieved successfully
Response Schema: AnalyticsData

API Example

Logger instance name
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/analytics" \ -H "Accept: application/json"
Example Response Static Preview
{
  "earliestLog": 1758572730,
  "latestLog": 1762911862,
  "totalProcessed": 101277,
  "logsByLevel": {
    "TRACE": 514,
    "DEBUG": 521,
    "INFO": 19594,
    "WARNING": 29173,
    "ERROR": 48333,
    "FATAL": 495
  },
  "messagePatterns": {
    "Connection failed to #.#.#.#": 19124,
    "Database connection timeout": 9562,
    "Disk space low on /dev/sda# (#% used)": 9562,
    "Disk space low on /dev/sdb# (#% used)": 9562,
    "File not found: /var/log/app.log": 9562,
    "Invalid request from client #.#.#.#": 9562,
    "Performance test message #": 3000,
    "Permission denied for user bob": 9561,
    "REST Server started": 5,
    "Server restarted after crash": 9561
  },
  "hourlyDistribution": {
    "1": 3001,
    "14": 3,
    "18": 4,
    "19": 1,
    "21": 2,
    "23": 95619
  },
  "weekdayDistribution": {
    "0": 7,
    "1": 98620,
    "3": 3
  },
  "dailyDistribution": {
    "2025-09-22": 95618,
    "2025-11-16": 7,
    "2025-11-17": 3002,
    "2025-11-19": 3
  },
  "avgLogsPerHour": 84.0254,
  "peakHourlyCount": 95618,
  "peakActivityTime": 1758657330,
  "sourceStats": {
    "1": {
      "totalLogs": 98630,
      "errorCount": 48333,
      "mostCommonPattern": "Connection failed to #.#.#.#",
      "mostCommonLevel": "ERROR"
    }
  },
  "predictive": {
    "systemRiskScore": 80,
    "confidence": 0.9,
    "trendPrediction": "stable",
    "errorPercentage": 49.485,
    "warningToErrorRatio": 0.597458,
    "uniqueErrorPatterns": 3,
    "riskFactors": [
      "Critical error rate: 49% of total logs",
      "Detected 1 statistical anomalies in log patterns",
      "Worst anomaly: 2.235016sigma deviation at peak",
      "Peak load: 95619 logs during hour 23",
      "Problematic source #1: 48350 errors",
      "Critical pattern 'Disk space low on /dev/sda# (#% used)' occurred 9562 times"
    ],
    "hourlyRiskPredictions": {
      "1": 92,
      "2": 100,
      "3": 100,
      "4": 100,
      "5": 100,
      "6": 100
    }
  }
}
GET /api/v1.5/loggers Get available loggers
Returns a list of all available logger instances
ConfigLogs

Responses

200: List of logger names retrieved successfully

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/loggers" \ -H "Accept: application/json"
Example Response Static Preview
[
  "example_string",
  "example_string"
]
GET /maintenance/ Maintenance page
HTML page displayed during system maintenance
WebPublic

Responses

200: Maintenance HTML page

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/maintenance/" \ -H "Accept: text/html"
Example Response Static Preview
No response example available
GET /api/v1.5/maintenance/status Get maintenance status
Retrieves current maintenance mode status and configuration
MaintenancePublic

Responses

200: Maintenance status retrieved successfully
Response Schema: MaintenanceStatus
503: Service is under maintenance
Response Schema: MaintenanceStatus

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/maintenance/status" \ -H "Accept: application/json"
Example Response Static Preview
{
  "isActive": true,
  "mode": "maintenance",
  "message": "Scheduled maintenance in progress",
  "reason": "Database migration",
  "eta": 1771961031,
  "retryAfter": 3600,
  "startTime": 1771961031
}
GET /api/v1.5/admin/maintenance Get maintenance configuration
Retrieves current maintenance configuration. ADMIN role required.
AdminMaintenance

Responses

200: Maintenance configuration retrieved
Response Schema: MaintenanceConfig
401: Authentication required
403: Insufficient permissions (ADMIN role required)

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/admin/maintenance" \ -H "Accept: application/json"
Example Response Static Preview
{
  "mode": "maintenance",
  "message": "Scheduled maintenance in progress",
  "reason": "System upgrade",
  "duration": 3600,
  "eta": 1770908261,
  "allowedGroups": [
    "ADMIN",
    "SUPER_ADMIN"
  ],
  "allowedEndpoints": [
    "/api/v1.5/maintenance/status",
    "/api/v1.5/auth/login"
  ]
}
POST /api/v1.5/admin/maintenance Configure maintenance mode
Activates or updates maintenance mode configuration. ADMIN role required.
AdminMaintenance

Request Body

Content Type: application/json
Schema: MaintenanceConfig

Responses

200: Maintenance mode configured successfully
400: Invalid maintenance configuration
401: Authentication required
403: Insufficient permissions (ADMIN role required)

API Example

Request Body

Desired maintenance mode
User-friendly message to display (max 500 chars)
Technical reason for maintenance
Duration in seconds after which to auto-deactivate (1-30 days). Mutually exclusive with 'eta'.
Unix timestamp when maintenance should end. Mutually exclusive with 'duration'.
User roles allowed to access during maintenance mode
API endpoints that remain accessible during maintenance
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/admin/maintenance" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"mode":"maintenance","message":"Scheduled maintenance in progress","reason":"System upgrade","duration":3600,"eta":1770908261,"allowedGroups":["ADMIN","SUPER_ADMIN"],"allowedEndpoints":["/api/v1.5/maintenance/status","/api/v1.5/auth/login"]}'
Example Response Static Preview
{
  "status": "ok",
  "message": "Maintenance mode activated"
}
DELETE /api/v1.5/admin/maintenance Deactivate maintenance mode
Returns system to NORMAL operation mode. ADMIN role required.
AdminMaintenance

Responses

200: Maintenance mode deactivated
401: Authentication required
403: Insufficient permissions (ADMIN role required)

API Example

No parameters required
cURL Command:
curl -X DELETE "http://127.0.0.1:7443/api/v1.5/admin/maintenance" \ -H "Accept: application/json"
Example Response Static Preview
{
  "status": "ok",
  "message": "Maintenance mode deactivated"
}
GET /api/v1.5/admin/sessions Get sessions list with filtering
Retrieves active sessions with optional filtering and sorting
AdminSessions

Parameters

Name Type Location Required Description
sessionId string query Optional Filter by session ID (32 hex characters)
username string query Optional Filter by username
role string query Optional Filter by user role
ipAddress string query Optional Filter by IP address
userAgent string query Optional Filter by user agent (partial match)
ipValidation string query Optional Filter by IP validation mode
createdAfter integer query Optional Filter sessions created after Unix timestamp
createdBefore integer query Optional Filter sessions created before Unix timestamp
activeOnly boolean query Optional Filter only active (non-expired) sessions
sortBy string query Optional Field to sort results by
sortOrder string query Optional Sort order

Responses

200: Sessions list retrieved successfully

API Example

Filter by session ID (32 hex characters)
Filter by username
Filter by user role
Filter by IP address
Filter by user agent (partial match)
Filter by IP validation mode
Filter sessions created after Unix timestamp
Filter sessions created before Unix timestamp
Filter only active (non-expired) sessions
Field to sort results by
Sort order
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/admin/sessions?sessionId=example_string&username=example_string&role=VIEWER&ipAddress=example_string&userAgent=example_string&ipValidation=SUBNET_24&createdAfter=1&createdBefore=1&activeOnly=true&sortBy=loginTime&sortOrder=asc" \ -H "Accept: application/json"
Example Response Static Preview
{
  "sessions": [
    {
      "sessionId": "6f2d1a90aa3098a929588a03d36614d4",
      "username": "admin",
      "role": "ADMIN",
      "loginTime": 1762911862,
      "transportType": "REST",
      "ipAddress": "192.168.1.100",
      "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
      "ipValidation": "NONE",
      "ipChangeCount": 0,
      "lastIpChange": 1762911862,
      "ipMask": "255.255.255.255",
      "encryptPayloadKey": "a1b2c3..."
    }
  ],
  "total": 42
}
GET /api/v1.5/admin/sessions/{sessionId} Get session details
Retrieves detailed information about specific session
AdminSessions

Parameters

Name Type Location Required Description
sessionId string path Required Session identifier (32 hex characters)

Responses

200: Session details retrieved successfully
Response Schema: Session
400: Invalid session ID format
404: Session not found

API Example

Session identifier (32 hex characters)
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/admin/sessions/example_string" \ -H "Accept: application/json"
Example Response Static Preview
{
  "sessionId": "6f2d1a90aa3098a929588a03d36614d4",
  "username": "admin",
  "role": "ADMIN",
  "loginTime": 1762911862,
  "transportType": "REST",
  "ipAddress": "192.168.1.100",
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
  "ipValidation": "NONE",
  "ipChangeCount": 0,
  "lastIpChange": 1762911862,
  "ipMask": "255.255.255.255",
  "encryptPayloadKey": "a1b2c3..."
}
DELETE /api/v1.5/admin/sessions/{sessionId} Terminate session
Forcefully terminates a session (admin action)
AdminSessions

Parameters

Name Type Location Required Description
sessionId string path Required Session identifier (32 hex characters)

Responses

200: Session terminated successfully
400: Invalid session ID format
404: Session not found

API Example

Session identifier (32 hex characters)
cURL Command:
curl -X DELETE "http://127.0.0.1:7443/api/v1.5/admin/sessions/example_string" \ -H "Accept: application/json"
Example Response Static Preview
{
  "status": "ok",
  "message": "session terminated"
}
GET /api/v1.5/admin/sessions/user/{username} Get user sessions
Retrieves all sessions for specific user
AdminSessions

Parameters

Name Type Location Required Description
username string path Required Username to filter sessions

Responses

200: User sessions retrieved successfully
400: Invalid username
404: No sessions found for user

API Example

Username to filter sessions
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/admin/sessions/user/example_string" \ -H "Accept: application/json"
Example Response Static Preview
{
  "sessions": [
    {
      "sessionId": "6f2d1a90aa3098a929588a03d36614d4",
      "username": "admin",
      "role": "ADMIN",
      "loginTime": 1762911862,
      "transportType": "REST",
      "ipAddress": "192.168.1.100",
      "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
      "ipValidation": "NONE",
      "ipChangeCount": 0,
      "lastIpChange": 1762911862,
      "ipMask": "255.255.255.255",
      "encryptPayloadKey": "a1b2c3..."
    }
  ],
  "total": 3
}
GET /api/v1.5/admin/sessions/stats Get session statistics
Retrieves statistics about active sessions
AdminSessionsStats

Responses

200: Session statistics retrieved successfully
Response Schema: SessionStats

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/admin/sessions/stats" \ -H "Accept: application/json"
Example Response Static Preview
{
  "totalSessions": 42,
  "activeSessions": 35,
  "averageSessionHours": 2.5,
  "byRole": {
    "ADMIN": 5,
    "USER": 30,
    "VIEWER": 7
  },
  "byTransport": {
    "REST": 40
  }
}
GET /api/v1.5/admin/jwt Get JWT tokens list with filtering
Retrieves active JWT tokens with optional filtering and sorting. Requires ADMIN+ role.
AdminJwt

Parameters

Name Type Location Required Description
jti string query Optional Filter by JWT token identifier
username string query Optional Filter by username
role string query Optional Filter by user role
ipAddress string query Optional Filter by IP address
userAgent string query Optional Filter by user agent (partial match)
ipValidation string query Optional Filter by IP validation mode
createdAfter integer query Optional Filter tokens issued after Unix timestamp
createdBefore integer query Optional Filter tokens issued before Unix timestamp
activeOnly boolean query Optional Filter only active (non-expired) tokens
sortBy string query Optional Field to sort results by
sortOrder string query Optional Sort order

Responses

200: JWT tokens list retrieved successfully
401: Authentication required
403: Insufficient permissions (ADMIN role required)

API Example

Filter by JWT token identifier
Filter by username
Filter by user role
Filter by IP address
Filter by user agent (partial match)
Filter by IP validation mode
Filter tokens issued after Unix timestamp
Filter tokens issued before Unix timestamp
Filter only active (non-expired) tokens
Field to sort results by
Sort order
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/admin/jwt?jti=213a3fbd-66f5-4b6d-920e-2582ef61aa07&username=demo&role=SUPER_ADMIN&ipAddress=127.0.0.1&userAgent=Mozilla%2F5.0%20(Windows%20NT%2010.0%3B%20Win64%3B%20x64)%20AppleWebKit%2F537.36&ipValidation=SUBNET_24&createdAfter=1767225600&createdBefore=1777737600&activeOnly=true&sortBy=issuedAt&sortOrder=desc" \ -H "Accept: application/json"
Example Response Static Preview
{
  "tokens": [
    {
      "jti": "213a3fbd-66f5-4b6d-920e-2582ef61aa07",
      "username": "demo",
      "role": "SUPER_ADMIN",
      "ipAddress": "127.0.0.1",
      "userAgent": "Mozilla/5.0...",
      "iat": 1777605946,
      "exp": 1778210746,
      "transportType": "REST",
      "ipValidation": "SUBNET_24",
      "ipMask": "255.255.255.0"
    }
  ],
  "totalTokens": 42
}
GET /api/v1.5/admin/jwt/revoked Get revoked JWT tokens list
Retrieves revoked JWT tokens with optional filtering and sorting. Requires ADMIN+ role.
AdminJwt

Parameters

Name Type Location Required Description
username string query Optional Filter by username
role string query Optional Filter by role
revokedBy string query Optional Filter by administrator who revoked the token
revokedAfter integer query Optional Filter tokens revoked after Unix timestamp
revokedBefore integer query Optional Filter tokens revoked before Unix timestamp
sortBy string query Optional Field to sort results by
sortOrder string query Optional Sort order

Responses

200: Revoked JWT tokens list retrieved successfully
401: Authentication required
403: Insufficient permissions (ADMIN role required)

API Example

Filter by username
Filter by role
Filter by administrator who revoked the token
Filter tokens revoked after Unix timestamp
Filter tokens revoked before Unix timestamp
Field to sort results by
Sort order
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/admin/jwt/revoked?username=demo&role=SUPER_ADMIN&revokedBy=admin&revokedAfter=1767225600&revokedBefore=1777737600&sortBy=revokedAt&sortOrder=desc" \ -H "Accept: application/json"
Example Response Static Preview
{
  "tokens": [
    {
      "jti": "213a3fbd-66f5-4b6d-920e-2582ef61aa07",
      "username": "demo",
      "role": "SUPER_ADMIN",
      "exp": 1778210746,
      "revokedAt": 1778210000,
      "revokedBy": "admin",
      "reason": "Compromised token"
    }
  ],
  "totalTokens": 3
}
POST /api/v1.5/admin/jwt/{jti}/restore Restore revoked JWT token
Removes JWT token from blacklist, allowing it to be used again. Requires ADMIN+ role.
AdminJwt

Parameters

Name Type Location Required Description
jti string path Required JWT token identifier

Responses

200: Token restored successfully
400: Missing jti parameter
401: Authentication required
403: Insufficient permissions (ADMIN role required)
404: Token not found in revoked list

API Example

JWT token identifier
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/admin/jwt/213a3fbd-66f5-4b6d-920e-2582ef61aa07/restore" \ -H "Accept: application/json"
Example Response Static Preview
{
  "status": "success",
  "message": "Token restored"
}
GET /api/v1.5/admin/jwt/{jti} Get JWT token details
Retrieves detailed information about a specific JWT token. Requires ADMIN+ role.
AdminJwt

Parameters

Name Type Location Required Description
jti string path Required JWT token identifier

Responses

200: JWT token details retrieved successfully
Response Schema: JwtToken
400: Missing jti parameter
401: Authentication required
403: Insufficient permissions (ADMIN role required)
404: Token not found

API Example

JWT token identifier
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/admin/jwt/213a3fbd-66f5-4b6d-920e-2582ef61aa07" \ -H "Accept: application/json"
Example Response Static Preview
{
  "jti": "213a3fbd-66f5-4b6d-920e-2582ef61aa07",
  "username": "demo",
  "role": "SUPER_ADMIN",
  "ipAddress": "127.0.0.1",
  "userAgent": "Mozilla/5.0...",
  "iat": 1777605946,
  "exp": 1778210746,
  "transportType": "REST",
  "ipValidation": "SUBNET_24",
  "ipMask": "255.255.255.0"
}
DELETE /api/v1.5/admin/jwt/{jti} Revoke JWT token
Revokes a JWT token with optional reason. Requires ADMIN+ role.
AdminJwt

Parameters

Name Type Location Required Description
jti string path Required JWT token identifier
reason string query Optional Reason for revocation

Responses

200: Token revoked successfully
400: Missing jti parameter
401: Authentication required
403: Insufficient permissions (ADMIN role required)
404: Token not found

API Example

JWT token identifier
Reason for revocation
cURL Command:
curl -X DELETE "http://127.0.0.1:7443/api/v1.5/admin/jwt/213a3fbd-66f5-4b6d-920e-2582ef61aa07?reason=Compromised%20token" \ -H "Accept: application/json"
Example Response Static Preview
{
  "status": "success",
  "message": "Token revoked"
}
GET /api/v1.5/admin/jwt/user/{username} Get user JWT tokens
Retrieves all JWT tokens for a specific user. Requires ADMIN+ role.
AdminJwt

Parameters

Name Type Location Required Description
username string path Required Username to filter tokens

Responses

200: User JWT tokens retrieved successfully
401: Authentication required
403: Insufficient permissions (ADMIN role required)

API Example

Username to filter tokens
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/admin/jwt/user/demo" \ -H "Accept: application/json"
Example Response Static Preview
{
  "tokens": [
    {
      "jti": "213a3fbd-66f5-4b6d-920e-2582ef61aa07",
      "username": "demo",
      "role": "SUPER_ADMIN",
      "ipAddress": "127.0.0.1",
      "userAgent": "Mozilla/5.0...",
      "iat": 1777605946,
      "exp": 1778210746,
      "transportType": "REST",
      "ipValidation": "SUBNET_24",
      "ipMask": "255.255.255.0"
    }
  ],
  "totalTokens": 3
}
GET /api/v1.5/admin/jwt/stats Get JWT token statistics
Retrieves statistics about JWT tokens
AdminJwtStats

Responses

200: JWT token statistics retrieved successfully
Response Schema: JwtTokenStats

API Example

No parameters required
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/admin/jwt/stats" \ -H "Accept: application/json"
Example Response Static Preview
{
  "totalTokens": 42,
  "activeTokens": 35,
  "tokensByRole": {
    "ADMIN": 5,
    "USER": 30,
    "VIEWER": 7
  },
  "tokensByTransport": {
    "REST": 40
  }
}
GET /api/v1.5/{logger}/tasks Get tasks list with filtering
Retrieves paginated list of tasks with filtering and sorting options
TasksTracker

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
limit integer query Optional Maximum number of tasks to return
offset integer query Optional Number of tasks to skip for pagination
order string query Optional Field to order results by
sort string query Optional Sort direction
filters string query Optional JSON array of TaskFilterCondition objects

Responses

200: Tasks retrieved successfully
Response Schema: TaskListResponse
400: Invalid parameters
401: Authentication required
403: Insufficient permissions

API Example

Logger instance name
Maximum number of tasks to return
Number of tasks to skip for pagination
Field to order results by
Sort direction
JSON array of TaskFilterCondition objects
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/tasks?limit=25&offset=1&order=createdAt&sort=DESC&filters=%5B%7B%22field%22%3A%22status%22%2C%22op%22%3A%22%3D%22%2C%22value%22%3A%22Open%22%2C%22lop%22%3A%22AND%22%7D%5D" \ -H "Accept: application/json"
Example Response Static Preview
{
  "tasks": [
    {
      "id": 1,
      "uuid": "550e8400-e29b-41d4-a716-446655440000",
      "title": "Database connection timeout",
      "description": "The database connection keeps timing out after 30 seconds",
      "status": "Open",
      "priority": "High",
      "loggerName": "test_logger_sqlite",
      "sourceLogId": 101277,
      "sourceLogUuid": "660e8400-e29b-41d4-a716-446655440001",
      "sourceLogTimestamp": 1762911862,
      "assignedTo": "support_engineer",
      "createdBy": "admin",
      "createdAt": 1762911862,
      "updatedAt": 1762911900,
      "dueDate": 1763500000,
      "resolvedAt": 1762912000,
      "tags": [
        "database",
        "critical",
        "backlog"
      ],
      "comments": [
        {
          "id": 1,
          "author": "admin",
          "text": "Fixed the issue",
          "createdAt": 1762911862
        }
      ],
      "sourceLogSnapshot": {
        "id": 101277,
        "timestamp": 1762911862,
        "level": "INFO",
        "message": "test",
        "func": "log",
        "file": "logger.cpp",
        "line": 141,
        "thread_id": "11960",
        "source": {
          "id": 1,
          "uuid": "4472ab03-4184-44ab-921c-751a702c42ca",
          "name": "test_source"
        }
      },
      "activityLog": [
        {
          "id": 1,
          "action": "STATUS_CHANGED",
          "user": "admin",
          "timestamp": 1762911862,
          "oldValue": {
            "status": "Open"
          },
          "newValue": {
            "status": "InProgress"
          }
        }
      ]
    }
  ],
  "total": 42
}
POST /api/v1.5/{logger}/tasks Create a new task
Creates a new task linked to a log entry
TasksTracker

Parameters

Name Type Location Required Description
logger string path Required Logger instance name

Request Body

Content Type: application/json
Schema: Task

Responses

201: Task created successfully
Response Schema: Task
400: Invalid task data
401: Authentication required
403: Insufficient permissions

API Example

Logger instance name

Request Body

Local database unique identifier
Global unique identifier
Task title
Detailed task description
Task status
Task priority
Associated logger instance name
Source log entry ID
Source log entry UUID
Source log entry timestamp
Username of assigned user
Username of task creator
Task creation timestamp
Task last update timestamp
Optional due date timestamp
Optional resolution timestamp
Array of task tags
Array of task comments
Item 1
Comment ID
Comment author username
Comment text
Creation timestamp
Array of objects. Each item has properties: id, author, text, createdAt
sourceLogSnapshot
Unique log entry identifier
Log timestamp in Unix epoch format
Log severity level
Log message content
Function name where log was generated
Source file name where log was generated
Line number in source file where log was generated
Thread identifier that generated the log
source
Unique source identifier
Universal unique identifier for the source
Human-readable source name
Task activity history
Item 1
Activity record ID
Action type
User who performed the action
Action timestamp
Previous value (JSON string)
New value (JSON string)
Array of objects. Each item has properties: id, action, user, timestamp, oldValue, newValue
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/tasks" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"id":1,"uuid":"550e8400-e29b-41d4-a716-446655440000","title":"Database connection timeout","description":"The database connection keeps timing out after 30 seconds","status":"Open","priority":"High","loggerName":"test_logger_sqlite","sourceLogId":101277,"sourceLogUuid":"660e8400-e29b-41d4-a716-446655440001","sourceLogTimestamp":1762911862,"assignedTo":"support_engineer","createdBy":"admin","createdAt":1762911862,"updatedAt":1762911900,"dueDate":1763500000,"resolvedAt":1762912000,"tags":["database","critical","backlog"],"comments":[{"id":1,"author":"admin","text":"Fixed the issue","createdAt":1762911862}],"sourceLogSnapshot":{"id":101277,"timestamp":1762911862,"level":"INFO","message":"test","func":"log","file":"logger.cpp","line":141,"thread_id":"11960","source":{"id":1,"uuid":"4472ab03-4184-44ab-921c-751a702c42ca","name":"test_source"}},"activityLog":[{"id":1,"action":"STATUS_CHANGED","user":"admin","timestamp":1762911862,"oldValue":{"status":"Open"},"newValue":{"status":"InProgress"}}]}'
Example Response Static Preview
{
  "id": 1,
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "title": "Database connection timeout",
  "description": "The database connection keeps timing out after 30 seconds",
  "status": "Open",
  "priority": "High",
  "loggerName": "test_logger_sqlite",
  "sourceLogId": 101277,
  "sourceLogUuid": "660e8400-e29b-41d4-a716-446655440001",
  "sourceLogTimestamp": 1762911862,
  "assignedTo": "support_engineer",
  "createdBy": "admin",
  "createdAt": 1762911862,
  "updatedAt": 1762911900,
  "dueDate": 1763500000,
  "resolvedAt": 1762912000,
  "tags": [
    "database",
    "critical",
    "backlog"
  ],
  "comments": [
    {
      "id": 1,
      "author": "admin",
      "text": "Fixed the issue",
      "createdAt": 1762911862
    }
  ],
  "sourceLogSnapshot": {
    "id": 101277,
    "timestamp": 1762911862,
    "level": "INFO",
    "message": "test",
    "func": "log",
    "file": "logger.cpp",
    "line": 141,
    "thread_id": "11960",
    "source": {
      "id": 1,
      "uuid": "4472ab03-4184-44ab-921c-751a702c42ca",
      "name": "test_source"
    }
  },
  "activityLog": [
    {
      "id": 1,
      "action": "STATUS_CHANGED",
      "user": "admin",
      "timestamp": 1762911862,
      "oldValue": {
        "status": "Open"
      },
      "newValue": {
        "status": "InProgress"
      }
    }
  ]
}
DELETE /api/v1.5/{logger}/tasks Delete multiple tasks
Deletes multiple tasks by IDs
TasksTracker

Parameters

Name Type Location Required Description
logger string path Required Logger instance name

Request Body

Content Type: application/json

Responses

200: All tasks deleted successfully
207: Partial success - some tasks deleted, some not found
400: Invalid request (empty or invalid IDs)
401: Authentication required
403: Insufficient permissions
404: No tasks found (none of the IDs exist)
500: Internal server error

API Example

Logger instance name

Request Body

Array of task IDs to delete
cURL Command:
curl -X DELETE "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/tasks" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"ids":[1,2,3]}'
Example Response Static Preview
{
  "status": "ok"
}
GET /api/v1.5/{logger}/tasks/{id} Get task by ID
Retrieves a single task by its numeric ID
TasksTracker

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
id integer path Required Task ID

Responses

200: Task retrieved successfully
Response Schema: Task
400: Invalid task ID
401: Authentication required
403: Insufficient permissions
404: Task not found

API Example

Logger instance name
Task ID
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/tasks/1" \ -H "Accept: application/json"
Example Response Static Preview
{
  "id": 1,
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "title": "Database connection timeout",
  "description": "The database connection keeps timing out after 30 seconds",
  "status": "Open",
  "priority": "High",
  "loggerName": "test_logger_sqlite",
  "sourceLogId": 101277,
  "sourceLogUuid": "660e8400-e29b-41d4-a716-446655440001",
  "sourceLogTimestamp": 1762911862,
  "assignedTo": "support_engineer",
  "createdBy": "admin",
  "createdAt": 1762911862,
  "updatedAt": 1762911900,
  "dueDate": 1763500000,
  "resolvedAt": 1762912000,
  "tags": [
    "database",
    "critical",
    "backlog"
  ],
  "comments": [
    {
      "id": 1,
      "author": "admin",
      "text": "Fixed the issue",
      "createdAt": 1762911862
    }
  ],
  "sourceLogSnapshot": {
    "id": 101277,
    "timestamp": 1762911862,
    "level": "INFO",
    "message": "test",
    "func": "log",
    "file": "logger.cpp",
    "line": 141,
    "thread_id": "11960",
    "source": {
      "id": 1,
      "uuid": "4472ab03-4184-44ab-921c-751a702c42ca",
      "name": "test_source"
    }
  },
  "activityLog": [
    {
      "id": 1,
      "action": "STATUS_CHANGED",
      "user": "admin",
      "timestamp": 1762911862,
      "oldValue": {
        "status": "Open"
      },
      "newValue": {
        "status": "InProgress"
      }
    }
  ]
}
PUT /api/v1.5/{logger}/tasks/{id} Update task
Updates an existing task
TasksTracker

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
id integer path Required Task ID

Request Body

Content Type: application/json
Schema: Task

Responses

200: Task updated successfully
Response Schema: Task
400: Invalid task data
401: Authentication required
403: Insufficient permissions
404: Task not found

API Example

Logger instance name
Task ID

Request Body

Local database unique identifier
Global unique identifier
Task title
Detailed task description
Task status
Task priority
Associated logger instance name
Source log entry ID
Source log entry UUID
Source log entry timestamp
Username of assigned user
Username of task creator
Task creation timestamp
Task last update timestamp
Optional due date timestamp
Optional resolution timestamp
Array of task tags
Array of task comments
Item 1
Comment ID
Comment author username
Comment text
Creation timestamp
Array of objects. Each item has properties: id, author, text, createdAt
sourceLogSnapshot
Unique log entry identifier
Log timestamp in Unix epoch format
Log severity level
Log message content
Function name where log was generated
Source file name where log was generated
Line number in source file where log was generated
Thread identifier that generated the log
source
Unique source identifier
Universal unique identifier for the source
Human-readable source name
Task activity history
Item 1
Activity record ID
Action type
User who performed the action
Action timestamp
Previous value (JSON string)
New value (JSON string)
Array of objects. Each item has properties: id, action, user, timestamp, oldValue, newValue
cURL Command:
curl -X PUT "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/tasks/1" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"id":1,"uuid":"550e8400-e29b-41d4-a716-446655440000","title":"Database connection timeout","description":"The database connection keeps timing out after 30 seconds","status":"Open","priority":"High","loggerName":"test_logger_sqlite","sourceLogId":101277,"sourceLogUuid":"660e8400-e29b-41d4-a716-446655440001","sourceLogTimestamp":1762911862,"assignedTo":"support_engineer","createdBy":"admin","createdAt":1762911862,"updatedAt":1762911900,"dueDate":1763500000,"resolvedAt":1762912000,"tags":["database","critical","backlog"],"comments":[{"id":1,"author":"admin","text":"Fixed the issue","createdAt":1762911862}],"sourceLogSnapshot":{"id":101277,"timestamp":1762911862,"level":"INFO","message":"test","func":"log","file":"logger.cpp","line":141,"thread_id":"11960","source":{"id":1,"uuid":"4472ab03-4184-44ab-921c-751a702c42ca","name":"test_source"}},"activityLog":[{"id":1,"action":"STATUS_CHANGED","user":"admin","timestamp":1762911862,"oldValue":{"status":"Open"},"newValue":{"status":"InProgress"}}]}'
Example Response Static Preview
{
  "id": 1,
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "title": "Database connection timeout",
  "description": "The database connection keeps timing out after 30 seconds",
  "status": "Open",
  "priority": "High",
  "loggerName": "test_logger_sqlite",
  "sourceLogId": 101277,
  "sourceLogUuid": "660e8400-e29b-41d4-a716-446655440001",
  "sourceLogTimestamp": 1762911862,
  "assignedTo": "support_engineer",
  "createdBy": "admin",
  "createdAt": 1762911862,
  "updatedAt": 1762911900,
  "dueDate": 1763500000,
  "resolvedAt": 1762912000,
  "tags": [
    "database",
    "critical",
    "backlog"
  ],
  "comments": [
    {
      "id": 1,
      "author": "admin",
      "text": "Fixed the issue",
      "createdAt": 1762911862
    }
  ],
  "sourceLogSnapshot": {
    "id": 101277,
    "timestamp": 1762911862,
    "level": "INFO",
    "message": "test",
    "func": "log",
    "file": "logger.cpp",
    "line": 141,
    "thread_id": "11960",
    "source": {
      "id": 1,
      "uuid": "4472ab03-4184-44ab-921c-751a702c42ca",
      "name": "test_source"
    }
  },
  "activityLog": [
    {
      "id": 1,
      "action": "STATUS_CHANGED",
      "user": "admin",
      "timestamp": 1762911862,
      "oldValue": {
        "status": "Open"
      },
      "newValue": {
        "status": "InProgress"
      }
    }
  ]
}
DELETE /api/v1.5/{logger}/tasks/{id} Delete task
Deletes a single task by ID
TasksTracker

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
id integer path Required Task ID

Responses

200: Task deleted successfully
400: Invalid task ID
401: Authentication required
403: Insufficient permissions
404: Task not found

API Example

Logger instance name
Task ID
cURL Command:
curl -X DELETE "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/tasks/1" \ -H "Accept: application/json"
Example Response Static Preview
{
  "status": "ok"
}
GET /api/v1.5/{logger}/tasks/uuid/{uuid} Get task by UUID
Retrieves a single task by its UUID
TasksTracker

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
uuid string path Required Task UUID

Responses

200: Task retrieved successfully
Response Schema: Task
400: Invalid UUID
401: Authentication required
403: Insufficient permissions
404: Task not found

API Example

Logger instance name
Task UUID
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/tasks/uuid/550e8400-e29b-41d4-a716-446655440000" \ -H "Accept: application/json"
Example Response Static Preview
{
  "id": 1,
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "title": "Database connection timeout",
  "description": "The database connection keeps timing out after 30 seconds",
  "status": "Open",
  "priority": "High",
  "loggerName": "test_logger_sqlite",
  "sourceLogId": 101277,
  "sourceLogUuid": "660e8400-e29b-41d4-a716-446655440001",
  "sourceLogTimestamp": 1762911862,
  "assignedTo": "support_engineer",
  "createdBy": "admin",
  "createdAt": 1762911862,
  "updatedAt": 1762911900,
  "dueDate": 1763500000,
  "resolvedAt": 1762912000,
  "tags": [
    "database",
    "critical",
    "backlog"
  ],
  "comments": [
    {
      "id": 1,
      "author": "admin",
      "text": "Fixed the issue",
      "createdAt": 1762911862
    }
  ],
  "sourceLogSnapshot": {
    "id": 101277,
    "timestamp": 1762911862,
    "level": "INFO",
    "message": "test",
    "func": "log",
    "file": "logger.cpp",
    "line": 141,
    "thread_id": "11960",
    "source": {
      "id": 1,
      "uuid": "4472ab03-4184-44ab-921c-751a702c42ca",
      "name": "test_source"
    }
  },
  "activityLog": [
    {
      "id": 1,
      "action": "STATUS_CHANGED",
      "user": "admin",
      "timestamp": 1762911862,
      "oldValue": {
        "status": "Open"
      },
      "newValue": {
        "status": "InProgress"
      }
    }
  ]
}
GET /api/v1.5/{logger}/tasks/stats Get task statistics
Retrieves aggregated statistics for tasks
TasksTrackerStats

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
filters string query Optional JSON array of TaskFilterCondition objects

Responses

200: Task statistics retrieved successfully
Response Schema: TaskStats
400: Invalid parameters
401: Authentication required
403: Insufficient permissions

API Example

Logger instance name
JSON array of TaskFilterCondition objects
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/tasks/stats?filters=%5B%7B%22field%22%3A%22status%22%2C%22op%22%3A%22%3D%22%2C%22value%22%3A%22Open%22%7D%5D" \ -H "Accept: application/json"
Example Response Static Preview
{
  "total": 42,
  "open": 10,
  "inProgress": 5,
  "resolved": 27,
  "critical": 3
}
POST /api/v1.5/{logger}/tasks/import Import tasks
Imports multiple tasks from JSON data
TasksTrackerImport

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
strategy string query Optional Conflict resolution strategy:
- update: Update existing task
- skip: Skip existing task
- duplicate: Create new task with new UUID

Request Body

Content Type: application/json
Schema: Task

Responses

200: Import completed
Response Schema: ImportTasksResult
400: Invalid import data
401: Authentication required
403: Insufficient permissions

API Example

Logger instance name
Conflict resolution strategy:
- update: Update existing task
- skip: Skip existing task
- duplicate: Create new task with new UUID

Request Body

Item 1
Local database unique identifier
Global unique identifier
Task title
Detailed task description
Task status
Task priority
Associated logger instance name
Source log entry ID
Source log entry UUID
Source log entry timestamp
Username of assigned user
Username of task creator
Task creation timestamp
Task last update timestamp
Optional due date timestamp
Optional resolution timestamp
Array of task tags
Array of task comments
sourceLogSnapshot
Unique log entry identifier
Log timestamp in Unix epoch format
Log severity level
Log message content
Function name where log was generated
Source file name where log was generated
Line number in source file where log was generated
Thread identifier that generated the log
Represents a log source application
Task activity history
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/tasks/import?strategy=update" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[{"id":1,"uuid":"550e8400-e29b-41d4-a716-446655440000","title":"Database connection timeout","description":"The database connection keeps timing out after 30 seconds","status":"Open","priority":"High","loggerName":"test_logger_sqlite","sourceLogId":101277,"sourceLogUuid":"660e8400-e29b-41d4-a716-446655440001","sourceLogTimestamp":1762911862,"assignedTo":"support_engineer","createdBy":"admin","createdAt":1762911862,"updatedAt":1762911900,"dueDate":1763500000,"resolvedAt":1762912000,"tags":["database","critical","backlog"],"comments":[{"id":1,"author":"admin","text":"Fixed the issue","createdAt":1762911862}],"sourceLogSnapshot":{"id":101277,"timestamp":1762911862,"level":"INFO","message":"test","func":"log","file":"logger.cpp","line":141,"thread_id":"11960","source":{"id":1,"uuid":"4472ab03-4184-44ab-921c-751a702c42ca","name":"test_source"}},"activityLog":[{"id":1,"action":"STATUS_CHANGED","user":"admin","timestamp":1762911862,"oldValue":{"status":"Open"},"newValue":{"status":"InProgress"}}]}]'
Example Response Static Preview
null
GET /api/v1.5/{logger}/tasks/export Export tasks
Exports tasks to JSON format
TasksTrackerExport

Parameters

Name Type Location Required Description
logger string path Required Logger instance name
ids string query Optional Comma-separated list of task IDs to export (empty = all)

Responses

200: Export completed successfully - all requested tasks found
207: Partial success - some tasks found, some not found
400: Invalid parameters
401: Authentication required
403: Insufficient permissions
404: No tasks found (none of the requested IDs exist)

API Example

Logger instance name
Comma-separated list of task IDs to export (empty = all)
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/tasks/export?ids=1%2C2%2C3" \ -H "Accept: application/json"
Example Response Static Preview
{
  "tasks": [
    {
      "id": 1,
      "uuid": "550e8400-e29b-41d4-a716-446655440000",
      "title": "Database connection timeout",
      "description": "The database connection keeps timing out after 30 seconds",
      "status": "Open",
      "priority": "High",
      "loggerName": "test_logger_sqlite",
      "sourceLogId": 101277,
      "sourceLogUuid": "660e8400-e29b-41d4-a716-446655440001",
      "sourceLogTimestamp": 1762911862,
      "assignedTo": "support_engineer",
      "createdBy": "admin",
      "createdAt": 1762911862,
      "updatedAt": 1762911900,
      "dueDate": 1763500000,
      "resolvedAt": 1762912000,
      "tags": [
        "database",
        "critical",
        "backlog"
      ],
      "comments": [
        {
          "id": 1,
          "author": "admin",
          "text": "Fixed the issue",
          "createdAt": 1762911862
        }
      ],
      "sourceLogSnapshot": {
        "id": 101277,
        "timestamp": 1762911862,
        "level": "INFO",
        "message": "test",
        "func": "log",
        "file": "logger.cpp",
        "line": 141,
        "thread_id": "11960",
        "source": {
          "id": 1,
          "uuid": "4472ab03-4184-44ab-921c-751a702c42ca",
          "name": "test_source"
        }
      },
      "activityLog": [
        {
          "id": 1,
          "action": "STATUS_CHANGED",
          "user": "admin",
          "timestamp": 1762911862,
          "oldValue": {
            "status": "Open"
          },
          "newValue": {
            "status": "InProgress"
          }
        }
      ]
    }
  ],
  "notFound": [
    1
  ]
}
GET /api/v1.5/{logger}/tasks/loggers Get logger names with tasks
Returns a list of unique logger names that have tasks
TasksTracker

Parameters

Name Type Location Required Description
logger string path Required Logger instance name

Responses

200: List of logger names retrieved successfully
401: Authentication required
403: Insufficient permissions

API Example

Logger instance name
cURL Command:
curl -X GET "http://127.0.0.1:7443/api/v1.5/test_logger_sqlite/tasks/loggers" \ -H "Accept: application/json"
Example Response Static Preview
[
  "example_string",
  "example_string"
]
POST /api/v1.5/admin/license/validate Validate license file
LicenseAdminValidate

Request Body

Content Type: application/json

Responses

200: License validation result
400: Validation failed
Response Schema: LicenseError

API Example

Request Body

Base64 encoded license file content
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/admin/license/validate" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"licenseFile":"v5l2TikeTzQ9E...hU8YRk8lhqg=="}'
Example Response Static Preview
{
  "status": "ok",
  "valid": true,
  "license": {
    "type": "BUSINESS",
    "expires": "2027-01-01",
    "productName": "SQLogger",
    "userName": "Greenblit",
    "userEmail": "support@greenblit.com",
    "productKey": "SQLG-00000-00000-00000-00000-00000-00001",
    "valid": true
  }
}
POST /api/v1.5/admin/license/activate Activate license on server
LicenseAdmin

Request Body

Content Type: application/json

Responses

200: Activation result
400: Activation failed
Response Schema: LicenseError

API Example

Request Body

Base64 encoded license file content
Product key
cURL Command:
curl -X POST "http://127.0.0.1:7443/api/v1.5/admin/license/activate" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"licenseFile":"v5l2TikeTzQ9E...hU8YRk8lhqg==","productKey":"SQLG-00000-00000-00000-00000-00000-00001"}'
Example Response Static Preview
{
  "status": "ok",
  "message": "example_string",
  "license": {
    "type": "BUSINESS",
    "expires": "2027-01-01",
    "productName": "SQLogger",
    "userName": "Greenblit",
    "userEmail": "support@greenblit.com",
    "productKey": "SQLG-00000-00000-00000-00000-00000-00001",
    "valid": true
  }
}

Data Models

VersionInfo

Complete version information
Property Type Description
api object API version details
Property Type Description
version string API version string
major integer API major version number
minor integer API minor version number
name string API name
backend object Backend version details
Property Type Description
name string Backend application name
version string Backend full version string
major integer Backend major version number
minor integer Backend minor version number
build integer Backend build number
platform string Backend platform name
architecture string Backend architecture name
description string Backend description text
enabledFeatures integer Bitmask of enabled compile-time features
enabledFeaturesList array List of enabled compile-time features
license string Software license identifier
licenseInfo object Detailed license information (only when license check is enabled)
Property Type Description
type string License feature level (BASIC, BUSINESS, SOURCE)
expires integer License expiration Unix timestamp, 0 if unlimited
valid boolean Whether license is currently valid
productName string Product name from license
userName string Licensed user or company name
userEmail string Licensed user email address
Session statistics
Property Type Description
totalSessions integer Total number of active sessions
activeSessions integer Number of non-expired sessions
averageSessionHours number Average session duration in hours
byRole object Sessions count by role
byTransport object Sessions count by transport type
Represents an authentication session
Property Type Description
sessionId string Unique session identifier
username string Authenticated username
role string User role
loginTime integer Session creation time (Unix timestamp)
transportType string Transport type used for session
ipAddress string Client IP address at session creation
userAgent string Client user agent string
ipValidation string IP validation mode
ipChangeCount integer Number of IP address changes during grace period
lastIpChange integer Last IP change time (Unix timestamp)
ipMask string IP subnet mask for validation (only for SUPER_ADMIN)
encryptPayloadKey string Encryption key for payload (only for SUPER_ADMIN, truncated)
JWT token information
Property Type Description
jti string JWT unique identifier
username string Authenticated username
role string User role
ipAddress string Client IP address
userAgent string Client user agent
iat integer Issued at (Unix timestamp)
exp integer Expiration time (Unix timestamp)
transportType string Transport type
ipValidation string IP validation mode
ipMask string Custom IP mask

JwtTokenStats

JWT token statistics
Property Type Description
totalTokens integer Total tokens in memory
activeTokens integer Non-expired tokens
tokensByRole object Tokens count by role
tokensByTransport object Tokens count by transport type

RevokedToken

Revoked JWT token information
Property Type Description
jti string JWT unique identifier
username string Username of token owner
role string Role of token owner
exp integer Token expiration timestamp
revokedAt integer Revocation timestamp
revokedBy string Administrator who revoked the token
reason string Reason for revocation
Represents a single log entry with all associated metadata
Property Type Description
id integer Unique log entry identifier
timestamp integer Log timestamp in Unix epoch format
level string Log severity level
message string Log message content
func string Function name where log was generated
file string Source file name where log was generated
line integer Line number in source file where log was generated
thread_id string Thread identifier that generated the log
source object Represents a log source application
Property Type Description
id integer Unique source identifier
uuid string Universal unique identifier for the source
name string Human-readable source name
Represents a log source application
Property Type Description
id integer Unique source identifier
uuid string Universal unique identifier for the source
name string Human-readable source name

FilterCondition

Single filter condition for log querying
Property Type Description
field string Field name to filter on
op string Comparison operator
value string Value to compare against
Complete logger configuration including logger, database, transport, connection and source settings
Property Type Description
Logger object Core logger configuration settings
Property Type Description
Name string Logger instance name
SyncMode boolean Whether to use synchronous logging mode
NumThreads integer Number of worker threads for log processing
OnlyFileNames boolean Whether to store only file names instead of full paths
MinLogLevel string Minimum log level to process
UseBatch boolean Whether to use batch processing for logs
BatchSize integer Maximum batch size for log processing
UseTimedFlush boolean Whether to use timed automatic flush
TimedFlushInterval integer Time interval for automatic flush in milliseconds
Database object Database connection and storage configuration
Property Type Description
Name string Database name or file path
Table string Database table name for logs
Host string Database server hostname or IP address
Port integer Database server port
User string Database username
Pass string Database password (masked in responses)
Type string Database type (SQLite, PostgreSQL, MySQL, etc.)
Transport object Network transport and API configuration
Property Type Description
NumThreads integer Number of worker threads for transport
Type string Transport type (REST, WebSocket, etc.)
Host string Server bind address
Port integer Server port
User string API username
Pass string API password (masked in responses)
UserRole string Default user role
SessionPath string Session storage path
SameSite string Cookie SameSite attribute
SecureCookies boolean Whether to use secure cookies
SessionMaxAge integer Session maximum age in seconds
UseJWT boolean Whether to use JWT authentication
JWTSecret string JWT signing secret key (masked in responses)
JWTExpireTime integer JWT token expiration time in seconds
UseSSL boolean Whether to use SSL/TLS encryption
SSLCertPath string SSL certificate file path
SSLKeyPath string SSL private key file path
SSLCertChainPath string SSL certificate chain file path
SSLPassphrase string SSL key passphrase (masked in responses)
ForceHTTPS boolean Whether to force HTTPS redirects
HTTPRedirectPort integer HTTP to HTTPS redirect port
TransportUsers object Transport user accounts configuration with username as key
Security object Security and authentication configuration
Property Type Description
LoginMaxAttempts integer Maximum number of failed login attempts
LoginBlockDuration integer Duration in minutes of login block after exceeding max attempts
LoginAttemptWindow integer Time window in minutes for counting login attempts
IPValidationMode string IP address validation mode: - NONE: No IP validation - EXACT: Exact IP address match - SUBNET_24: Match within /24 subnet (255.255.255.0) - SUBNET_16: Match within /16 subnet (255.255.0.0) - CUSTOM: Custom subnet mask using IPValidationCustomMask
IPValidationCustomMask string Custom subnet mask for IP validation (e.g., "255.255.255.0") when IPValidationMode=CUSTOM
InvalidateOnIPMismatch boolean Whether to invalidate session on IP address mismatch
IPChangeGracePeriod integer Grace period in minutes for IP changes before invalidating session
ValidatePrivateIPs boolean Whether to validate private IP addresses
TrustedNetworks array List of trusted network CIDRs in format "x.x.x.x/y"
CORSEnabled boolean Whether CORS is enabled
CORSAllowOrigins array Allowed CORS origins
CORSAllowMethods array Allowed HTTP methods for CORS
CORSAllowHeaders array Allowed HTTP headers for CORS
CORSAllowCredentials boolean Whether to allow credentials in CORS requests
CORSMaxAge integer Maximum age for CORS preflight requests in seconds
EncryptPayload boolean Enable payload encryption for REST API
PayloadKeyTTL integer Payload encryption key time-to-live in seconds
PayloadKeyRotationEnabled boolean Enable automatic payload key rotation
PayloadKeyRotationInterval integer Automatic key rotation interval in seconds
PayloadKeyRotationOnRestart boolean Rotate payload key on server restart
RateLimitEnabled boolean Whether rate limiting is enabled globally
RateLimitRules array List of rate limiting rules (checked in ascending priority order)
RateLimitWhitelistIPs array IP addresses or CIDRs exempt from all rate limits
RateLimitWhitelistUsers array User IDs exempt from all rate limits
RateLimitWhitelistRoles array User roles exempt from all rate limits
RateLimitWhitelistEndpoints array Endpoints exempt from all rate limits
RateLimitIncludeHeaders boolean Whether to include X-RateLimit-* headers in responses
Connection object Database connection settings
Property Type Description
UseConnAttempts boolean Whether to use connection attempts
MaxConnAttempts integer Maximum number of connection attempts
ConnAttemptsDelay integer Delay between connection attempts in milliseconds
Source object Log source configuration
Property Type Description
Enabled boolean Whether source logging is enabled
Uuid string Source UUID
Name string Source name

TransportStats

Comprehensive transport layer statistics
Property Type Description
bytesSent integer Total bytes sent over network
bytesReceived integer Total bytes received over network
activeConnections integer Number of currently active connections
failedRequests integer Number of failed HTTP requests
totalRequests integer Total number of HTTP requests processed
errors4xx integer Count of client error responses (4xx)
errors5xx integer Count of server error responses (5xx)
startTime integer Transport start time timestamp (seconds since epoch)
uptimeSeconds integer Uptime in seconds
uptimeFormatted string Human-readable formatted uptime string
currentTime integer Current server timestamp (seconds since epoch)
endpoints object Detailed statistics per API endpoint. Keys are endpoint names in format `{method}_{resource}`. Example: `get_stats_transport`, `post_config_validate`

EndpointMetrics

Statistics for a single API endpoint
Property Type Description
requestCount integer Total number of requests processed
errorCount integer Number of failed requests (HTTP 4xx/5xx)
avgProcessingTimeMs integer Average request processing time in milliseconds
bytesReceived integer Total bytes received for this endpoint
bytesSent integer Total bytes sent for this endpoint
activeConnections integer Current active connections for this endpoint
lastRequestTime integer Timestamp of last request (seconds since epoch)
Logger performance and operational statistics
Property Type Description
totalLogged integer Total number of logs processed
totalFailed integer Total number of failed log entries
maxBatchSize integer Maximum batch size achieved
minBatchSize integer Minimum batch size achieved
avgBatchSize number Average batch size
currentBatchBufferSize integer Current buffer size
avgBufferSize integer Average buffer size
maxBufferSize integer Maximum buffer size reached
maxProcessTimeMs integer Maximum log processing time in milliseconds
totalProcessTimeMs integer Total processing time in milliseconds
lastProcessTimeMs integer Last processing time in milliseconds
flushCount integer Total number of flush operations
timedFlushCount integer Number of timed flush operations
avgProcessTime number Average processing time per log in milliseconds
startTime integer Logger start time timestamp
uptimeSeconds integer Uptime in seconds
uptimeFormatted string Formatted uptime string (hours, minutes, seconds)
currentTime integer Current server timestamp
Database storage and performance statistics
Property Type Description
isConnected integer Database connection status (1=connected, 0=disconnected)
lastError string Last database error message
totalLogs integer Total number of logs stored in database
logsByLevel object Log count grouped by severity level
earliestLog integer Timestamp of earliest log in database
latestLog integer Timestamp of latest log in database
sourcesCount integer Number of distinct log sources
storageSize integer Total database storage size in bytes
dailyAvg integer Average number of logs per day

RateLimitStats

Rate limiting middleware statistics
Property Type Description
totalRequests integer Total processed requests
limitedRequests integer Requests blocked by rate limits
whitelistedRequests integer Whitelisted requests
activeLimitKeys integer Active rate limit keys
blockedKeys integer Currently blocked keys
requestsInWindow integer Requests in active windows
keysTypeIp integer IP-based limit keys
keysTypeUser integer User-based limit keys
keysTypeRole integer Role-based limit keys
keysTypeAuthId integer AuthId-based limit keys (session, jti, or basic)
keysTypeGlobal integer Global limit keys
endpointStats object Endpoint request counts
ruleStats object Rule hit statistics
activeEntries array Active rate limit entries (optional)

RateLimitKeyDetail

Detailed information about a rate limit key
Property Type Description
key string Full rate limit key
count integer Current request count in window
totalCount integer Total requests across all windows
blocked boolean Whether key is blocked
maxRequests integer Maximum allowed requests
windowSeconds integer Time window in seconds
endpoint string Endpoint pattern
method string HTTP method
limitType string Limit type (ip/user/role/authid/global)
identifier string Identifier (IP, username, role, authid)
windowStart integer Window start timestamp (Unix milliseconds)
firstRequest integer First request timestamp (Unix milliseconds)
windowExpires integer Window expiration timestamp (Unix milliseconds)

AnalyticsData

Analytical data and insights derived from log analysis including predictive analytics
Property Type Description
earliestLog integer Timestamp of earliest log entry
latestLog integer Timestamp of latest log entry
totalProcessed integer Total number of processed logs
logsByLevel object Distribution of logs by severity level
messagePatterns object Common log message patterns and frequencies
hourlyDistribution object Log distribution by hour of day
weekdayDistribution object Log distribution by day of week
dailyDistribution object Log distribution by calendar date
avgLogsPerHour number Average number of logs per hour
peakHourlyCount integer Maximum number of logs in a single hour
peakActivityTime integer Timestamp of peak log activity
sourceStats object Statistics grouped by log source
predictive object Predictive analytics and system risk assessment
Property Type Description
systemRiskScore integer Overall system risk score (0-100, higher = more risk)
confidence number Confidence level of predictive analysis (0-1)
trendPrediction string Predicted system stability trend
errorPercentage number Percentage of ERROR and FATAL logs in total volume
warningToErrorRatio number Ratio of WARNING to ERROR level logs
uniqueErrorPatterns integer Number of distinct error message patterns detected
riskFactors array List of identified risk factors and anomalies
hourlyRiskPredictions object Predicted risk scores for upcoming hours (0-100)

HardwareInfo

Comprehensive system hardware information and resource utilization
Property Type Description
cpu object CPU information and utilization
Property Type Description
vendor string CPU manufacturer
model string CPU model name
cores integer Number of physical cores
threads integer Number of logical threads
maxFrequencyMhz integer Maximum CPU frequency in MHz
utilizationPercent integer Overall CPU utilization percentage
threadsUtilization array Utilization percentage per thread
memory object Memory information and utilization
Property Type Description
totalBytes integer Total physical memory in bytes
freeBytes integer Free memory in bytes
availableBytes integer Available memory in bytes
utilizationPercent number Memory utilization percentage
totalGb number Total memory in gigabytes
freeGb number Free memory in gigabytes
availableGb number Available memory in gigabytes
modules array
storage object Storage devices information
Property Type Description
disks array
gpu object Graphics processing unit information
Property Type Description
utilizationPercent integer Overall GPU utilization percentage
cards array
system object Operating system information
Property Type Description
osName string Operating system name
osVersion string Operating system version
architecture string System architecture
network object Network interfaces information
Property Type Description
interfaces array
motherboard object Motherboard information
Property Type Description
vendor string Motherboard vendor
model string Motherboard model
serialNumber string Motherboard serial number
metadata object Hardware information metadata
Property Type Description
generated integer Generation time unix timestamp
version string Format version
Current maintenance status information
Property Type Description
isActive boolean Whether maintenance mode is currently active
mode string Current maintenance mode
message string User-friendly maintenance message to display
reason string Technical reason for maintenance
eta integer Estimated completion time as Unix timestamp (seconds since epoch)
retryAfter integer Seconds remaining until service returns to normal
startTime integer Maintenance start time as Unix timestamp
Maintenance configuration
Property Type Description
mode string Desired maintenance mode
message string User-friendly message to display (max 500 chars)
reason string Technical reason for maintenance
duration integer Duration in seconds after which to auto-deactivate (1-30 days). Mutually exclusive with 'eta'.
eta integer Unix timestamp when maintenance should end. Mutually exclusive with 'duration'.
allowedGroups array User roles allowed to access during maintenance mode
allowedEndpoints array API endpoints that remain accessible during maintenance
Task/incident linked to log entry
Property Type Description
id integer Local database unique identifier
uuid string Global unique identifier
title string Task title
description string Detailed task description
status string Task status
priority string Task priority
loggerName string Associated logger instance name
sourceLogId integer Source log entry ID
sourceLogUuid string Source log entry UUID
sourceLogTimestamp integer Source log entry timestamp
assignedTo string Username of assigned user
createdBy string Username of task creator
createdAt integer Task creation timestamp
updatedAt integer Task last update timestamp
dueDate integer Optional due date timestamp
resolvedAt integer Optional resolution timestamp
tags array Array of task tags
comments array Array of task comments
sourceLogSnapshot object Represents a single log entry with all associated metadata
Property Type Description
id integer Unique log entry identifier
timestamp integer Log timestamp in Unix epoch format
level string Log severity level
message string Log message content
func string Function name where log was generated
file string Source file name where log was generated
line integer Line number in source file where log was generated
thread_id string Thread identifier that generated the log
source object Represents a log source application
Property Type Description
id integer Unique source identifier
uuid string Universal unique identifier for the source
name string Human-readable source name
activityLog array Task activity history

TaskComment

Task comment
Property Type Description
id integer Comment ID
author string Comment author username
text string Comment text
createdAt integer Creation timestamp

TaskActivityEntry

Activity log entry for task history
Property Type Description
id integer Activity record ID
action string Action type
user string User who performed the action
timestamp integer Action timestamp
oldValue string Previous value (JSON string)
newValue string New value (JSON string)
Task statistics
Property Type Description
total integer Total number of tasks
open integer Number of open tasks
inProgress integer Number of in-progress tasks
resolved integer Number of resolved/closed tasks
critical integer Number of critical priority tasks

ImportResult

Task import result
Property Type Description
created integer Number of tasks created
updated integer Number of tasks updated
skipped integer Number of tasks skipped

TaskListResponse

Task list response with pagination info
Property Type Description
tasks array Array of tasks
total integer Total number of tasks matching filters

TaskFilterCondition

Single filter condition for task querying
Property Type Description
field string Field name to filter on
op string Comparison operator
value string Value to compare against
lop string Logical operator

LicenseInfo

Property Type Description
type string
expires string
productName string
userName string
userEmail string
productKey string
valid boolean
Property Type Description
status string
message string
code string