vss-setup-video-analytics-api
Use to deploy the vss-video-analytics-api REST service standalone (config-source, data-log bind, Elasticsearch, optional Kafka). Not for full warehouse deploy.
- 0
- Installs
- —
- Rating
- —
- Success rate
- 8
- Files scanned
Security scan
Scan passedNo risky patterns were found in the scanned files.
Content sha256 4fc7210e4f3aa980… — run codexguild_scan_skills after installing to verify your local copy.
Static analysis is a first line of defense, not a guarantee. Read the source
SKILL.md
Purpose
Deploy the video-analytics-api REST service standalone with the user's chosen config, data-log bind, and Elasticsearch / Kafka connectivity.
Instructions
Follow the routing tables and step-by-step workflows below. Each section that ends in workflow, quick start, or flow is intended to be executed top-to-bottom. Detailed reference material lives in references/.
Examples
Worked end-to-end examples are kept under evals/ (each *.json manifest
contains a runnable scenario). Run a Tier-3 evaluation to replay them:
nv-base validate skills/vss-setup-video-analytics-api --agent-eval
A minimal standalone bring-up looks like:
cd $REPO/deploy/docker
export VSS_APPS_DIR=$(pwd)
export VSS_DATA_DIR=${VSS_DATA_DIR:-/tmp/vss-data}
mkdir -p "$VSS_DATA_DIR/data_log/vss_video_analytics_api"
docker compose -f services/analytics/video-analytics-api/compose.yml up -d vss-video-analytics-api
curl -sf http://localhost:8081/livez
Follow references/deploy-video-analytics-api-service.md for the full
workflow (config source, data-log bind, infrastructure dependencies, REST endpoints).
For the field-by-field JSON config reference, see references/configuration.md.
Limitations
- Requires the matching VSS profile / microservice to be deployed and reachable from the caller.
- NGC-hosted models and NIMs may be subject to rate-limits, GPU memory requirements, and license restrictions.
- Concurrency, GPU memory, and storage limits depend on the host hardware and the profile's compose file.
Troubleshooting
- Error: REST call returns connection refused. Cause: target microservice not running. Solution: probe
/docsor/health; redeploy viavss-deploy-profileor the matchingvss-deploy-*skill. - Error: HTTP 401/403 from NGC pulls. Cause: missing/expired
NGC_CLI_API_KEY. Solution:docker login nvcr.ioand re-export the key before retrying. - Error: container OOM or model fails to load. Cause: insufficient GPU memory for the selected profile. Solution: switch to a smaller variant or free GPUs via
docker compose down.
VSS Setup Video Analytics API — Standalone
Deploy just the vss-video-analytics-api container (the Node.js REST API from the upstream video-analytics-api repo), not as part of the full warehouse blueprint stack.
The full operational walkthrough — config-source options, data-log volume behavior, infrastructure dependencies, REST API endpoints, deploy + verify, troubleshooting — lives in references/deploy-video-analytics-api-service.md. The field-by-field JSON config reference lives in references/configuration.md. This SKILL.md only handles routing and prerequisites.
When to use
- "Deploy video analytics api" / "run video-analytics-api standalone"
- "I just want to run the REST API, not the full stack"
- "Use my own video-analytics-api config"
- "Point the API at a different Elasticsearch / Kafka"
- "Start the API without Kafka" / "run the API broker-less"
- "Check what REST endpoints are available"
Prerequisites
-
Repo checkout with
$VSS_APPS_DIRpointing at<repo>/deploy/docker/. Required by the service compose's volume binds. -
NGC credentials —
$NGC_CLI_API_KEYset so docker can pull the image. Seereferences/ngc-api-key-registry-login.md.Secure-handling note for
NGC_CLI_API_KEY: this key is a long-lived credential that pulls all NVIDIA private images available to your NGC org. Never commit the key, never paste it into chat, never store it in/tmp. Read it interactively (read -rs NGC_CLI_API_KEY) or load it from your secret manager (Vault, AWS Secrets Manager, sealed-secrets) at deploy time. Write any derived.envfiles withumask 077+chmod 600, add them to.gitignore, and rotate the key on a defined cadence and after every host decommission. If it has ever been exposed (host snapshot, shared screen, ticket attachment), rotate immediately. -
Docker runtime — Docker Engine 28.3.3 with Docker Compose plugin v2.39.1+. Verify with
docker --versionanddocker compose version. -
Elasticsearch — must be reachable at the URL configured in
elasticsearch.node. The server pings ES on startup; if unreachable, it exits (andrestart: alwaysbrings it back). If you need to bring up ES too, use the infra compose:docker compose -f services/infra/compose.yml up -d elasticsearch. -
Optional Kafka broker. The API can run without Kafka. If you want a quiet broker-less deployment, use the image-baked config or a custom config with
kafka.brokers: []; the service-shipped compose config points atlocalhost:9092, so Kafka-dependent features (dynamic config, dynamic calibration, RTLS/AMR) will fail until a broker is reachable. -
$VSS_DATA_DIRfor the default compose. The base compose bind-mounts$VSS_DATA_DIR/data_log/vss_video_analytics_apifor multipart upload handling and file-backed assets such as calibration images. Set the directory to a writable host path and pre-create it, or remove that mount if image uploads are not needed.
If any required prerequisite fails, surface the gap before going further.
Workflow
Hand the user references/deploy-video-analytics-api-service.md and walk them through its steps in order:
- Choose a config — image-baked default, service-shipped, or custom.
- Decide whether a data-log volume is needed for file uploads.
- Confirm infrastructure dependencies — Elasticsearch (required), Kafka (optional).
- Deploy + verify with
docker compose upand health check.
The compose-file edits, config options, deploy + verify commands, REST API endpoint table, and troubleshooting table all live in that reference — don't duplicate them here.
Endpoint Reference
Use references/deploy-video-analytics-api-service.md for the REST endpoint table and runtime dependency notes.
Kafka-dependent features (runtime, requires broker)
Once the container is up and a Kafka broker is reachable, three additional capabilities are available:
Dynamic config
The API acts as the producer for dynamic config updates. When an operator POSTs to /config, the API publishes an upsert message to the mdx-notification topic with Kafka key behavior-analytics-config. The downstream behavior-analytics container consumes this and ACKs back. The API also handles the bootstrap flow — when behavior-analytics starts, it publishes a request-config message, and the API replies with upsert-all containing the latest verified config from Elasticsearch.
Consumer-side validation, ACK semantics, and the full wire contract are documented in the vss-setup-behavior-analytics dynamic-config reference.
Dynamic calibration
The API produces calibration update notifications on mdx-notification with Kafka key calibration. Supports upsert-all (full snapshot), upsert (per-sensor merge), and delete (per-sensor removal). The downstream behavior-analytics container consumes these and applies them to the live calibration.
Consumer-side validation and per-action policy are documented in the vss-setup-behavior-analytics dynamic-calibration reference.
RTLS / AMR
The API consumes real-time location (mdx-rtls) and AMR (mdx-amr) messages from Kafka and exposes them via REST endpoints.
Routing rules
- If the user wants "the full stack" (UI / agent / perception): hand off to
vss-deploy-profilewith profilewarehouse(oralerts). Don't run this skill in parallel. - If the user wants to deploy the analytics pipeline (behavior creation, incident detection): hand off to
vss-setup-behavior-analytics. - If the user wants to publish a runtime config / calibration update through the REST API: confirm Kafka is reachable, then use the
/configor calibration endpoints and point them at the behavior-analytics dynamic-update references for the consumer wire contract. - If the user wants to understand the dynamic config / dynamic calibration wire contract from the consumer (behavior-analytics) side: point them at the
vss-setup-behavior-analyticsdynamic-config and dynamic-calibration references. - If the user wants to query or interact with the REST API endpoints: the deploy reference endpoint table covers what's available. For the full OpenAPI spec, see
src/app/specification/openapi.jsonin thevideo-analytics-apirepo.
bump:1
Files
8- BENCHMARK.md
30bfe577243.8 KB - SKILL.md
4d96ab44829.1 KB - evals/evals.json
9f0237a89e697 B - evals/standalone_deploy.json
9770d9daf23.8 KB - references/configuration.md
eb7c45c5ac4.0 KB - references/deploy-video-analytics-api-service.md
4dd4f31a2515.0 KB - references/ngc-api-key-registry-login.md
06680c29c92.0 KB - skill-card.md
0be4baf0953.9 KB
Agent reviews
0No reviews yet. Agents report whether a skill helped with codexguild_skill_review after using it.
More from NVIDIA/skills8
Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV/Parquet I/O, nullable semantics, and multi-GPU DataFrame workloads.
Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.
Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.
Customize NVIDIA Nemotron Voice Agent's Generic Pipecat example for healthcare appointment, five-field patient intake, or custom tool-calling workflows without a separate backend.
Calibrate a new dataset from live RTSP camera streams via the AutoMagicCalib REST API. Use when the user provides RTSP URLs or asks to calibrate live cameras; VIOS records clips, AMC ingests them, then runs calibration.
Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.
Calibrates pre-recorded `cam_*.mp4` datasets through the AutoMagicCalib REST API. Use for user-supplied local MP4s; route live RTSP streams to `amc-run-rtsp-calibration`.
Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.
Related backend skillsscan passed
Segmenting home networks into VLANs for IoT, guest, trusted, and server traffic using UniFi, pfSense/OPNsense, and MikroTik — including switch trunk config, firewall rules, and wireless SSID mapping. Use when splitting a home network into IoT, guest, trusted, and server VLANs on UniFi, pfSense/OPNse
Report browser/API/CLI/job/worker/webhook bugs. (gstack)
This skill should be used when the user asks to "build an MCP server", "create an MCP", "make an MCP integration", "wrap an API for Claude", "expose tools to Claude", "make an MCP app", or discusses building something with the Model Context Protocol. It is the entry point for MCP server development
Guide for upgrading Stripe API versions, webhook endpoints, server-side SDKs, Stripe.js, and mobile SDKs
PostHog integration for server-side Node.js applications using posthog-node
Mount tRPC as a Fastify plugin with fastifyTRPCPlugin from @trpc/server/adapters/fastify. Configure prefix, trpcOptions (router, createContext, onError). Enable WebSocket subscriptions with useWSS and @fastify/websocket. Set routerOptions.maxParamLength for batch requests. Requires Fastify v5+. Fast