Proof of concept · Stakeholder demo
A protected bridge from validated Everbridge alerts to the six cameras that matter, delivered to GOAA-issued phones in seconds, with every access verified, time-boxed and audited.
The problem we solve
An Everbridge alert for a zone automatically becomes an active incident with that zone's six camera views, with no manual lookup or dispatch.
Each provisioned responder gets a unique one-time link by SMS, unlocked with a personal PIN on their GOAA-issued device.
No RTSP addresses, camera credentials or incident details in the SMS or the browser. Video access is re-authorized every five minutes and can be revoked instantly.
How it works
Every step shown today runs through the real application logic. Only the vendor edges, marked simulated, are mocks.
Everbridge emails the dedicated mailbox with the incident, zone and notification ID.
Sender/domain allow-list, template marker, and duplicate detection on the notification ID.
Explicit-field parser extracts the zone. The previous alert auto-closes and the new one goes ACTIVE.
32 random bytes per responder. Only a peppered SHA-256 hash is stored.
The gateway checks every playback request with the API before any frame is served.
Issued only for a valid session, an enabled user and an active alert.
Argon2-hashed PIN, lockout after 5 failures, HTTP-only session cookie.
"GOAA alert — tap to view securely" plus the link. No incident detail.
Scope of today's demo
| Component | Today | How it behaves in the demo |
|---|---|---|
| Everbridge email | Simulated | Run test alert builds a realistic Everbridge email and pushes it through the real ingestion pipeline: validation, dedup, parsing, auto-close. |
| SMS delivery | Simulated | Mock provider marks messages delivered instantly, with a phone preview. Numbers ending 0000 simulate a failure with automatic retries. |
| Camera feeds | Simulated | Looping CC0 airport clips (gate, door, ramp, concourse, corridor) served by a mock gateway that still requires a valid video token. |
| Alerts, users, PIN, sessions | Real | Production logic on PostgreSQL: Argon2 PINs, hashed links, lockout, revocation, alert lifecycle. |
| Audit trail & health | Real | 28 audit event types recorded on every security and lifecycle transition. |
| Hosting & delivery | Real | Azure VM, HTTPS via nginx + Let's Encrypt, automated deploys to Development and UAT from GitHub. |
Demo · Step 1

Landing page

Operations console sign-in
Demo · Step 2

Demo · Step 3

Demo · Step 4 · Simulated Everbridge

Demo · Step 5 · Simulated SMS

Notification outbox

Phone preview of the delivered message
Demo · Step 6 · Invited responder
PIN_FAILED.
PIN entry

Incorrect PIN rejected
Demo · Step 7

The responder sees only the active incident and its zone's cameras. The offline Service Corridor camera is shown as unavailable.

Same view on the phone
Demo · Step 8
CAMERA_FULLSCREEN_OPENED.
Demo · Step 9 · Security control

Admin disables GOAA User A

Responder is locked out immediately
Demo · Step 10 · Security control

5 wrong PINs → locked for 15 min
PIN_LOCKED). An admin can Reset PIN to clear it. There is also a per-IP limit of 20 attempts per 15 minutes.
Demo · Step 11
Every step of the flow is recorded, from the email arriving to the moment a responder opens a camera. That gives a defensible record for incident review.
Highlighted: the happy-path chain from one alert to one camera view.

Demo · Step 12

Security by design
32 random bytes per responder per alert. Only a peppered SHA-256 hash is stored. Links expire after 24 hours.
Argon2-hashed PINs. 5 failures lock the account for 15 minutes, and a per-IP limit of 20 attempts per 15 minutes stops spraying.
5-minute tokens, issued only for an enabled user with a live session on an active alert.
Disabling a user or revoking a session blocks new video authorization immediately.
RTSP URLs and camera credentials never reach the browser, the SMS or the logs.
HTTP-only, SameSite=Strict cookies, origin checks on every mutation, Helmet headers and HTTPS with HSTS.
Delivery
| Environment | Web / Admin | API | Deploys from |
|---|---|---|---|
| Development | dev.goa.abrdns.com | dev-api.goa.abrdns.com | Development branch |
| UAT | uat.goa.abrdns.com | uat-api.goa.abrdns.com | UAT branch |
Path to production
Fixed Zone field in the final template, dedicated mailbox, Microsoft 365 / Graph access, original .eml headers, authoritative dedup ID.
Provider or carrier-gateway selection, sandbox and production credentials, sender number or short code, delivery-callback contract.
RTSP format and test feeds; codec, resolution, FPS and bitrate; VLAN and firewall rules; gateway sizing benchmark.
Approved admin identity (SSO), SPF/DKIM enforcement, persistent admin sessions, automatic video-token renewal, restricting public health detail, and backup and audit-retention policy.
Summary
Alert → responder → PIN → six live cameras, with instant revocation and a full audit trail, running today on Development and UAT. Connecting the real vendors is the remaining step.
Questions & live walkthrough · dev.goa.abrdns.com