rsp-sw-toolkit-im-suite-loss-prevention-service

command module
v0.0.0-...-e582b95 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 14, 2022 License: Apache-2.0 Imports: 19 Imported by: 0

README

DISCONTINUATION OF PROJECT.

This project will no longer be maintained by Intel.

This project has been identified as having known security escapes.

Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.

Intel no longer accepts patches to this project.

Loss Prevention Service

license GitHub go.mod Go version

Getting Started

Dependencies
Hardware

One of the following:

  • USB Webcam (Tested and validated using Logitech C920)
  • PoE Camera
  • WiFi Camera
Software
Warnings

Warning

This software has the potential to collect sensitive data including CCTV recordings, Inventory Data, etc. Please read carefully our Privacy Compliance and consult RSP Inventory Suite's Hardening Guide for more information.

Build Instructions
Sensor Configuration

Login to the RSP Controller and set the Personality of a SINGLE sensor to EXIT. This is the sensor that will trigger recording events when a matching RFID tag moves near it.

Service Configuration

Modify the secrets/configuration.json with your camera and tag information

  • ipCameraStreamUrl Stream URL for the IP Camera you wish to connect to. (Example: "rtsp://user:pass@ipaddress:port")
  • epcFilter Wildcard based filter of EPC tags to trigger on. (Example: "3014*BEEF*")
  • skuFilter Wildcard based filter of SKU/GTIN values to trigger on. (Example: "123*78*")
  • emailSubscribers String comma separated of emails to receive notifications. (Example: "your@email.com,your@email2.com")

NOTE 1: skuFilter and epcFilter must BOTH match for the tag to match. Typically you would set one or the other and then set the other field to match everything (*)

NOTE 2: In regards to skuFilter and epcFilter, a value of * effectively matches every possible item. Also, the filter must match the whole EPC/SKU and not just a subset. For example, if the SKU value is 123456789, a filter of *345*, 123*, *789, 1*5*9 WILL match, however filters such as 1234, 789, *8, 12*56 will NOT match because they only match a subset of the SKU and not the whole value.

Build

Compile the Go source code, create the docker images, and start the docker swarm services

sudo make iterate

The first time you run this it may take quite some time. Grab some ☕.

Web Interface

The web interface is integrated with the Angular Demo UI. It provides a way to view previous recordings including any people/objects detected. Recordings can also be deleted from the web ui.

Application Flow
  • Make REST calls to the EdgeX Command Service to retrieve information about the RSP sensors.
    • The application needs to know which RSP sensors are EXIT personality, as well as the aliases for each RSP in order to perform lookups of alias -> device_id.
  • Subscribe to ZeroMQ to receive inventory_event messages from EdgeX CoreData
    • When an event is received, pass it on the the Trigger Logic to determine whether to trigger a recording.
Trigger Logic

ALL Of the following conditions MUST be met for the recording to trigger

  • Event type is moved
  • Previous location is not an EXIT personality sensor
  • Current location is an EXIT personality sensor
  • SKU matches skuFilter wildcard from secrets/configuration.json ("*" matches everything)
  • EPC matches epcFilter wildcard from secrets/configuration.json ("*" matches everything)
  • Another recording is not currently in progress
Recordings

Video clips are stored to a docker volume mounted at ./recordings and served using an nginx docker container.

Privacy Compliance

This software includes functionality which allows you to record video clips to a persisted storage device and display them on a basic website. Due to the sensitive nature of this data, it is imperative that you harden your installation in order to protect yourselves from potential security and privacy concerns.

We have some basic guidelines for you to follow, but ultimately it is up to YOU to protect your installation and data.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
app
pkg
web

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL