ProofClock

Data Flow & Architecture

Prepared for Ring certification · Last updated: 30 August 2026

ProofClock is metadata-only. The architecture below has no media pipeline: no video, image, or audio is ever requested, transferred, or stored. The only Ring data in the system is motion-event timestamps, device metadata, and the account email captured at linking.

1. Data storage locations and systems

All data is stored in AWS us-east-1 (N. Virginia), encrypted at rest with AWS-managed encryption. No customer data is stored outside AWS or on local devices.

AWS us-east-1 Amazon DynamoDB (encrypted at rest) • users — Ring account id, linked email, tokens (server-side) • devices — id, name, type, online/offline status • sites & schedules — customer configuration • events — motion timestamps (auto-expire ~90 days) • visits/verdicts — derived attendance results • memberships — invited users and roles • audit — access log (~1 year) • webhook-dedupe — request ids AWS Lambda + API Gateway Stateless compute — webhook intake, API, scheduled verdict computation. No data at rest. Amazon S3 + CloudFront Static web dashboard only (HTML/JS/CSS). Private bucket, Origin Access Control, HTTPS. No customer data stored here.

Not stored anywhere: video, images, audio, media clips, snapshots, faces, or biometric data. Ring OAuth tokens are stored server-side in DynamoDB and never reach the browser.

2. Data flow between systems

Ring Partner API webhooks + account linking Lambda: webhook intake HMAC verify (raw body) + dedupe DynamoDB timestamp + device status HTTPS POST metadata only Lambda: scheduler (cron) clusters timestamps → verdicts DynamoDB visits + verdicts Customer browser dashboard (CloudFront) Lambda: REST API session token + role checks HTTPS Resend (email) sign-in codes, invitations, account notices address + message content (no media)
HopData transferredProtection
Ring → Lambda (webhook)Motion-event timestamp, device id/status, request idTLS; HMAC-SHA256 signature verified on raw body; dedupe
Ring → Lambda (linking)OAuth code → tokens; account id + email via Users APITLS; 60-second code; tokens stored server-side only
Lambda ↔ DynamoDBMetadata and derived verdictsTLS; IAM least-privilege; encrypted at rest
Browser ↔ APISites, schedules, verdicts for the signed-in accountTLS; bearer session token; per-account scoping + roles
Lambda → ResendRecipient address and message content: sign-in codes, team invitations (which name the inviting owner), account service notices, and — only if the customer turns it on — a weekly summary listing that customer’s own site names and verdict countsTLS; no video, images or audio, and no Ring device identifiers

Erbacci LLC (Wyoming, USA) · Contact: info@erbacciltd.com · ProofClock · Powered by Ring