Nodeflux Central
Assignment

API Reference — Assignment

Endpoint untuk mengelola Assignment analitik ke stream — template konfigurasi analitik, preset konfigurasi, dan drawing preset ROI.

Semua endpoint memerlukan header Authorization: Bearer <token>. Basis URL mengikuti variabel lingkungan VITE_API_URL yang dikonfigurasi pada instalasi Lenz. Jika Anda belum punya token, lihat halaman Otentikasi.

Endpoint Pipeline CRUD (GET/POST/PUT/DELETE /api/visionaire/pipeline/:nodeId/:streamId/:analyticId) dan daftar analitik (/api/visionaire/analytic_list) didokumentasikan di halaman Video Analysis, karena path tersebut digunakan bersama antara stream langsung dan analisis video.


Template Konfigurasi

Endpoint untuk mengambil skema konfigurasi analitik dalam dua format: JSON mentah (v1) dan form terstruktur (v2). Digunakan oleh UI saat pengguna mengaktifkan konfigurasi kustom pada halaman Assignment.

GET
/api/visionaire/config/pipeline/{analyticId}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

analyticId*string

ID analitik.

Query Parameters

instance?string

ID instance pada mode federation (opsional).

Response Body

application/json

curl -X GET "https://lenz.example.com/api/visionaire/config/pipeline/NFV4-MPA"
{  "code": 200,  "config": {    "object_confidence_threshold": 0.5,    "dump_ignore_iou_threshold": 0.3,    "dumping_sampling_time": 5,    "enable_visual_label": true  }}
GET
/api/visionaire/v2/config/pipeline/{analyticId}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

analyticId*string

ID analitik.

Query Parameters

instance?string

ID instance pada mode federation (opsional).

Response Body

application/json

curl -X GET "https://lenz.example.com/api/visionaire/v2/config/pipeline/NFV4-MPA"
{  "code": 200,  "message": "success",  "analytic_id": "NFV4-MPA",  "configs": [    {      "name": "object_confidence_threshold",      "type": "float",      "desc": "Threshold kepercayaan deteksi objek",      "group": "detection",      "value": 0.5,      "required": false,      "min": 0,      "max": 1,      "step": 0.05    }  ],  "sub_analytics": []}

Preset Konfigurasi

Endpoint untuk mengambil preset konfigurasi analitik yang disiapkan oleh administrator. Preset berisi nilai parameter yang sudah dioptimalkan untuk skenario tertentu dan dapat dimuat langsung ke form konfigurasi.

GET
/api/visionaire/config/preset/{analyticId}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

analyticId*string

ID analitik.

Query Parameters

instance?string

ID instance pada mode federation (opsional).

Response Body

application/json

curl -X GET "https://lenz.example.com/api/visionaire/config/preset/NFV4-FR"
{  "code": 200,  "analytic_id": "NFV4-FR",  "result": [    {      "name": "Threshold Ketat",      "description": "Konfigurasi dengan threshold tinggi untuk mengurangi false positive.",      "config": {        "object_confidence_threshold": 0.8      }    },    {      "name": "Threshold Longgar",      "description": "Konfigurasi dengan threshold rendah untuk area berkecepatan tinggi.",      "config": {        "object_confidence_threshold": 0.3      }    }  ]}

Drawing Preset

Endpoint untuk menyimpan dan memuat preset konfigurasi ROI (drawing preset). Drawing preset memungkinkan pengguna menyimpan posisi garis dan poligon yang sudah digambar agar dapat digunakan ulang pada stream lain dengan sudut kamera serupa.

GET
/api/streams/drawing-presets

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

analytic_id*string

ID analitik untuk memfilter preset.

logic?string

Logika spesifik untuk memfilter lebih lanjut (counting, dwelling, dll.) — opsional.

Response Body

application/json

curl -X GET "https://lenz.example.com/api/streams/drawing-presets?analytic_id=NFV4-MPA&logic=counting"
{  "ok": true,  "message": "success",  "data": [    {      "id": "preset-uuid-001",      "name": "Garis Pintu Utama",      "analytic_id": "NFV4-MPA",      "logic": "counting",      "shapes": [        {          "type": "line",          "id": "shape-01",          "name": "Line A",          "points": [            {              "x": 0.2,              "y": 0.5            },            {              "x": 0.8,              "y": 0.5            }          ],          "direction": "both",          "color": "#3b82f6"        }      ],      "created_by": 1,      "created_at": "2025-03-10T08:00:00Z",      "updated_at": null    }  ]}
POST
/api/streams/drawing-presets

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://lenz.example.com/api/streams/drawing-presets" \  -H "Content-Type: application/json" \  -d '{    "name": "Garis Pintu Utama",    "analytic_id": "NFV4-MPA",    "logic": "counting",    "shapes": [      {        "type": "line",        "id": "shape-01",        "name": "Line A",        "points": [          {            "x": 0.2,            "y": 0.5          },          {            "x": 0.8,            "y": 0.5          }        ],        "direction": "both",        "color": "#3b82f6"      }    ]  }'
{  "ok": true,  "message": "success",  "data": {    "id": "preset-uuid-002",    "name": "Garis Pintu Utama",    "analytic_id": "NFV4-MPA",    "logic": "counting",    "shapes": [],    "created_by": 1,    "created_at": "2025-06-01T09:00:00Z",    "updated_at": null  }}
PUT
/api/streams/drawing-presets/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

UUID drawing preset.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

name*string

Nama baru untuk preset.

Response Body

application/json

curl -X PUT "https://lenz.example.com/api/streams/drawing-presets/preset-uuid-001" \  -H "Content-Type: application/json" \  -d '{    "name": "Garis Pintu Utama — Revisi"  }'
{  "ok": true,  "message": "success",  "data": {    "id": "preset-uuid-001",    "name": "Garis Pintu Utama — Revisi",    "analytic_id": "NFV4-MPA",    "logic": "counting",    "shapes": [],    "created_by": 1,    "created_at": "2025-03-10T08:00:00Z",    "updated_at": "2025-06-01T10:00:00Z"  }}
DELETE
/api/streams/drawing-presets/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string

UUID drawing preset.

Response Body

application/json

curl -X DELETE "https://lenz.example.com/api/streams/drawing-presets/preset-uuid-001"
{  "ok": true,  "message": "success"}

On this page