Skip to the content
support@suri-oculus.com
Monday - Friday 9:00 - 21:00
Suri-Oculus Project

Suri-Oculus Project

Suri-Oculus Project

Intelligent Security, Evolving Protection

Learn More
  • Homepage
  • About Suri-Oculus
  • Documentation
  • Downloads
  • Blog
  • News
  • FAQ
  • Contacts

Introduction

  • Introduction

Log parser

  • Log Parser – daemonmove service (Version 3.0)
  • Log parser – daemonmove service

Installation and setup

  • Installation
  • Important Notice About Configuration

Backend

  • Suri Oculus Backend version 3.0
  • Backend
  • Config
    • Config file
  • Routes
    • Suri Oculus 3.0 – Routes
    • Backend Routes ver 2

Event Viewer

  • Events Viewer Tab

Rules Management

  • Rules management Tab

Threats Management

  • Oculus Tools
  • Threats Management Tab

Controls

  • Web Controls Tab

Statistic and Analytics

  • Web Statistic Tab

Chinese Project Overview

  • 📘 Suri Oculus 项目简介
View Categories
  • Home
  • Documentation
  • Backend
  • Routes
  • Suri Oculus 3.0 – Routes

Suri Oculus 3.0 – Routes

1. Introduction #

Suri Oculus 3.0 introduces a fully updated and significantly expanded REST API.
The backend is implemented in C++17 using the Pistache framework and optimized for high-performance network analytics, Suricata management, IoC processing, and real-time event visualization.

This document provides a complete, structured overview of all routes available in version 3.0.
Routes are grouped by subsystem:

  • Events

  • Rules & Suricata Control

  • Threats / IoC

  • Statistics

  • Network Map

The API is stable, backward-compatible with earlier 2.x web clients, and ready for integration with automation tools, dashboards, and SIEM pipelines.


2. Server Architecture Overview #

The backend exposes all routes through a lightweight Pistache HTTP server:

  • The server can be started directly:

     
    oculus-server
  • Or managed as a systemd service:

     
    systemctl start oculus-server

Internally, the server:

  • Uses Pistache::Rest::Router to register endpoints

  • Handles CORS via dedicated OPTIONS handlers

  • Runs with a configurable worker thread pool (default: 2 threads)

  • Interacts with Redis for event storage, Suricata for rule/control operations, and local file storage for IoC rule sets

All responses are JSON unless otherwise noted.


3. Events API #

Namespace: Events
Purpose: event retrieval, filtering, time-series analytics, and real-time UI dashboards.

3.1 Core Event Retrieval #

MethodRouteDescription
GET/events/:event_typeGet all events of a given type (alert, flow, dns, http, tls, ssh, ftp, …)
GET/events/count/:event_typeTotal number of events of given type
GET/events/:event_type/:event_idRetrieve event by internal ID
GET/events/search/:flow_idFind event by flow_id
DELETE/events/delete/:event_typeDelete all events of this type
OPTIONS/events/delete/:event_typeCORS preflight
GET/events/find/:event_typeAdvanced search via query parameters (IPs, ports, timestamps, etc.)
GET/events/check/:event_typeGet events for last N hours (timeshift)
GET/events/fastExposes contents of fast.log

3.2 Aggregated Metrics (Events per Hour) #

Used by dashboards and charts:

MethodRouteMetric
GET/events/alertsbyhoursAlerts per hour
GET/events/anomaliesbyhoursAnomalies per hour (AI module)
GET/events/flowsbyhoursFlow events per hour
GET/events/dnsbyhoursDNS events per hour
GET/events/tlsbyhoursTLS events per hour
GET/events/httpbyhoursHTTP events per hour
GET/events/sshbyhoursSSH events per hour
GET/events/ftpbyhoursFTP events per hour

3.3 Alerts Analytics #

RouteDescription
/events/alertsmapCompact format for dashboards and visual maps
/events/alertssignaturesAlerts aggregated by signature

4. Rules & Suricata Management API #

Namespace: Rules
Purpose: full lifecycle of Suricata rules, rule validation, bulk editing, and process control.

4.1 Rule Retrieval #

MethodRouteDescription
GET/rulesGet all rules
GET/rules/:sidRule by SID
GET/rules/action/:actionFilter by action (alert, drop, reject)
GET/rules/status/:statusFilter by active/inactive
GET/rules/protocol/:protoFilter by protocol
GET/rules/searchMulti-parameter search
GET/rules/signature/:signatureSearch rule by signature text
GET/rules/duplicated/:sidDetect duplicate SIDs

4.2 Rule Modification #

All require CORS options:

MethodRoutePurpose
POST/rules/toggle/Enable/disable a rule
POST/rules/add/Add rule
POST/rules/validate/Validate rule syntax
POST/rules/delete/Delete rule(s)
POST/rules/update/Bulk update

4.3 Additional Rules #

RouteDescription
/rules/additional/status/Status of local additional rule file
/rules/additional/update/Overwrite/update additional rule file

4.4 Suricata Process Management #

MethodRouteDescription
GET/suricata/start/Start Suricata
GET/suricata/stop/Stop Suricata
GET/suricata/reload/Reload Suricata configuration
GET/rules/reload/blockingBlocking rule reload
GET/rules/reload/nonblockingNon-blocking rule reload
GET/suricata/update/Update rule files + reload

4.5 Daemon Control #

RouteDescription
/daemon/start/Start auxiliary backend daemon
/daemon/stop/Stop daemon

5. Threats / IoC API #

Namespace: Threats
Purpose: management of Indicators of Compromise and generation of IoC-based Suricata rules.

5.1 IoC Retrieval #

RouteDescription
/ioc/Get all IoCs
/ioc/download/Fetch fresh IoCs from external feed
/ioc/filter/:n_daysIoCs for last n days
/ioc/ioc_type/:ioc_typeFilter by type (IP, URL, domain)
/ioc/ioc_id/:idGet IoC by ID
/ioc/ioc_status/:statusFilter by status
/ioc/toggle/Enable/disable IoC entry

5.2 IoC Rule Management #

RouteDescription
/ioc/fetch/Generate Suricata rule files from IoCs
/ioc/rules/status/Rule file status
/ioc/rules/modify/Modify IoC rule file states

6. Statistics API #

Namespace: Stats
Purpose: Suricata counters, host metrics, histograms.

RouteDescription
/stats/General stats snapshot
/stats/pkts/Packet counters
/stats/alerts/Alert counters
/stats/cpu/CPU load
/stats/vm/Virtual memory
/stats/pm/Physical memory
/stats/histogramm/Histogram data for charts
/suricata/running/Suricata process check
/stats/update/Timestamp of stats update

7. Network Map API #

Namespace: Net

RouteDescription
/net/map/Current network map
/net/historicalmap/Historical map based on long-term flows

8. Summary #

Suri Oculus 3.0 delivers a broad and stable API layer suitable for dashboards, SIEM integration, DevOps automation and AI-powered analysis modules. The separation into Events, Rules, Threats, Stats and Network ensures predictable structure, clarity, and future scalability.

Updated on November 18, 2025
Backend Routes ver 2
Table of Contents
  • 1. Introduction
  • 2. Server Architecture Overview
  • 3. Events API
    • 3.1 Core Event Retrieval
    • 3.2 Aggregated Metrics (Events per Hour)
    • 3.3 Alerts Analytics
  • 4. Rules & Suricata Management API
    • 4.1 Rule Retrieval
    • 4.2 Rule Modification
    • 4.3 Additional Rules
    • 4.4 Suricata Process Management
    • 4.5 Daemon Control
  • 5. Threats / IoC API
    • 5.1 IoC Retrieval
    • 5.2 IoC Rule Management
  • 6. Statistics API
  • 7. Network Map API
  • 8. Summary

Intelligent Security, Evolving Protection

  • Contacts
  • Documentation
  • Downloads
  • News
  • License
  • Blog
  • About
  • Suricata
  • FAQ

Chinese Technical Overview - ch.suri-oculus.com

Proudly powered by WordPress | Theme: Popularis Business