Home Outage Alert · legal

Data storage and data flow

Home Outage Alert. Effective date: 16 October 2026.

This page documents, for privacy and compliance review, where Home Outage Alert stores data and how data moves between systems. Home Outage Alert is operated by Erbacci LLC. It tells a customer when the Ring devices at their home lose contact with Ring together, and when they are back.

Home Outage Alert only uses Ring's device list and device status information (GET /v1/devices). It does not request or process motion events, live streams, recordings or media downloads. No video, image, audio or biometric data is fetched, processed or stored anywhere in the system, and no AI or machine-learning model is used.

1. Data storage locations and systems

All data is stored in Amazon Web Services, region US East (N. Virginia), us-east-1. Persistent data lives in Amazon DynamoDB tables (on-demand, encrypted at rest with AWS-managed keys, point-in-time recovery enabled with a rolling 35-day window). Credentials live in AWS Secrets Manager. The web app is served from a private Amazon S3 bucket through Amazon CloudFront; the bucket holds only the public files of the web app, never customer data.

DynamoDB tableWhat it holdsRetention
hoa-usersAccount: user id, email, Ring account id, Ring access and refresh tokens, notification settings, time zone, and when sign-in codes, test notifications and install-link emails were last sent (to limit how often)Until the customer deletes the account. Ring tokens are cleared when the app is removed from the Ring account.
hoa-devicesPer device: Ring device id, name, type, home key, Ring location id, online/offline status and the times of the latest changesWhile the app is connected to the Ring account
hoa-homesPer home: home key, Ring location id, home name, coarse country/state, current state (ok or out), pointer to the open outage, and when the home was last evaluated and checked with RingWhile the app is connected to the Ring account
hoa-outagesThe outage log: home, start and end time, duration, devices involved, whether an alert was sentWhile the app is connected to the Ring account
hoa-push-tokensPush registrations: installation id, platform, Amazon SNS endpoint, and the app version, operating-system version and language of the phone (to troubleshoot delivery)Until sign-out on that phone or account deletion
hoa-otp-codesOne-time sign-in codes (stored hashed)Expire after 10 minutes, then removed automatically (DynamoDB TTL)
hoa-oauth-codesRing authorization held while the customer finishes connecting (about 11 minutes), and sign-in hand-off codes (30 minutes)Expire after at most 30 minutes, then removed automatically (DynamoDB TTL)
hoa-webhook-dedupeIds of Ring notices already received, used to detect and log Ring's retries (processing a notice twice changes nothing)Expire after 24 hours, then removed automatically (DynamoDB TTL)

Everything in hoa-devices, hoa-homes and hoa-outages, and the Ring tokens, is deleted when the customer removes the app from their Ring account. Everything for the customer, in every table, is deleted when they delete their account in the app.

Queues (Amazon SQS). hoa-events, hoa-home-eval and hoa-notifications carry work between the steps below. A message normally lives for seconds to a few minutes. A message that keeps failing is moved to a dead-letter queue (hoa-events-dlq, hoa-home-eval-dlq, hoa-notifications-dlq) and deleted after 14 days at most.

Secrets (AWS Secrets Manager). The Ring client credentials, the Ring webhook signing secret and the secret that signs session tokens.

Logs (Amazon CloudWatch Logs). Operational logs, kept 30 days. They never contain video or images, because the system never has any.

2. Data flow between systems

All traffic is encrypted in transit with TLS. All stored data is encrypted at rest.

  1. Ring to webhook. Ring sends a notice over HTTPS to https://homeoutagealert.erbacciltd.com/webhook/ring. The webhook-handler Lambda checks the HMAC signature on the raw body, then accepts only the notices the app uses: a device lost or regained contact, a device was added or removed, the app was connected to or removed from the Ring account, or Ring turned the app on or off for the account. Every other notice (for example motion, doorbell presses, or sensor and chime events) is answered and discarded without being read beyond its type, queued or logged. An accepted notice goes on hoa-events and Ring is answered at once; its id is then recorded in hoa-webhook-dedupe so that we can detect and log Ring's retries. A notice processed twice changes nothing, because a device update is applied only when it is newer than what is stored.
  2. Device state. The event-processor Lambda reads hoa-events, updates the device in hoa-devices and, when a device changes state, schedules an evaluation of its home on hoa-home-eval, delayed by a few minutes so that the other devices at the same home have time to report.
  3. Home evaluation. The home-evaluator Lambda reads the home and its devices and applies fixed, deterministic rules: the home is offline only when the devices at that home lost contact together. Before declaring an outage it asks Ring for the current status of the customer's devices (GET /v1/devices) and corrects any device whose status Ring reports differently; it also asks, at most once every 10 minutes per home, when one device drops while the others look online. It then records the outage in hoa-outages, and later records when the home is back.
  4. Notifications. When an alert is due, a job goes on hoa-notifications. The notification-dispatch Lambda sends the email through Amazon SES and the push notification through Amazon SNS, which hands it to Apple Push Notification service or Google Firebase Cloud Messaging. Only the alert text (home name, device names, times) and a link travel; never any media.
  5. Regular checks. Every 15 minutes the outage-reconcile Lambda checks open outages (each one every 15 minutes for its first 6 hours, then hourly, and every 6 hours after 2 days) and any evaluation that did not complete, against Ring's device list. Once a day the token-refresh-sweep Lambda refreshes Ring tokens and re-reads the device list (names, homes, devices added or removed).
  6. Account linking. When a customer adds the app in the Ring app, Ring sends an authorization code to our token-exchange endpoint server to server, and we hold the resulting Ring authorization, unclaimed, for about 11 minutes. Ring then opens our account-link page with a signed linking nonce. The page matches the nonce to the waiting authorization only to learn which Ring account it belongs to, reads that account's email address from Ring and emails a 6-digit code to it. Nothing is claimed, no account is created and nothing is confirmed with Ring until the customer enters the correct code; only then do we complete the link with Ring.
  7. Web app and mobile apps. The web app at https://homeoutagealert.erbacciltd.com and the iOS and Android apps call our API (Amazon API Gateway, then the mobile-api Lambda) with a short-lived signed session token, to read homes, devices and the outage log, change settings, register for push and delete the account.

3. What leaves Amazon Web Services

Nothing else leaves AWS. There is no analytics, advertising or tracking service.

4. Contact

Erbacci LLC, info@erbacciltd.com. See also the Privacy Policy.