# Inovus Notifications — User Guide

Welcome. If you need in-app notifications (the kind that live in a bell icon, not fleeting toast popups) and you’re not sure where to start — you’re in the right place.

This guide is written for humans: product folks wiring a feature, app developers integrating a client, and engineers standing up or extending the service. You do not need to understand Cloudflare Workers or Cognito on day one.

Start at the top and stop when you’ve got what you need — or jump via the paths below.


# What you’ll learn

If you want to… Start here
Understand what this service is and whether it’s for you What is this?
See the moving parts (API, client, database…) Components
Know why we rebuilt this as V2 Why V2?
Get something working in your app today Getting started
Hand a coding agent the integration contract AGENT.md (copy the whole file)
Run the Worker on a laptop (no Cloudflare deploy) Local developer testing
Stand up Cognito / Supabase / Cloudflare (from scratch, including DB) Setup
Use the inbox day-to-day (list, read, React, convenience API) Everyday usage
Publish from a backend / background job Publishing
Use a user JWT to publish? Publishing — Can an app use a user’s JWT?
BFF / edge proxy so API keys stay server-side App integration
Rate limits / HTTP 429 Rate limiting
Keep old V1 HTTP callers working V1 compatibility
Go deeper (pagination, retries, metadata, polling) Advanced usage
Fix 401s, duplicates, “not realtime” confusion… Troubleshooting
Extend the service, run tests, read the contract Developer reference
Publish a new npm version Releasing — changesets, Version Packages, what .changeset/ contains
High availability / future failover High availability

# The 30-second pitch

Inovus Notifications is a shared inbox service:

  • Other apps (or your own backend) publish a notification to a user.
  • That user sees it in their inbox (bell dropdown, badge count, mark read, delete).
  • Identity comes from the Cognito tokens you already use — no new login system.
  • You get a typed npm client so you don’t hand-roll fetch, retries, and polling.
flowchart LR
  Producer["Your backend / M2M app"] -->|publish| API["Notifications API"]
  Browser["User's browser"] -->|list / subscribe| API
  API --> DB[(Supabase Postgres)]
  Browser --> Bell["Your bell UI"]

Tip: Toasts (those temporary “Saved!” banners) are not this service. Keep toast UI in your app. This service is for persistent notifications that belong in an inbox.


# Suggested reading paths

# Show a bell in my React app

  1. What is this? (skim)
  2. Getting started
  3. Everyday usage → React section

# Notify users when a job finishes

  1. Getting started
  2. Publishing — especially dedupeKey
  3. Troubleshooting if anything fails

# Migrate off old Video Library notifications

  1. Why V2?
  2. V1 compatibility
  3. Everyday usage → convenience API
  4. Full gap analysis: why-v2.md

# Deploy / operate the service

  1. Local developer testing (optional laptop first)
  2. Setup — from scratch including the database
  3. Detailed Cloudflare / CI walkthrough: setup.md
  4. Developer reference

# Other docs (deeper / specialised)

Doc When you need it
Docs index Catalogue of everything under /docs
AGENT.md Copy-paste brief for a coding agent integrating V2 in an app
Local development Laptop: memory store, API keys → inbox
Setup guide Deploy to Cloudflare (DB → Cognito → Worker → CI)
Cognito setup Resource server, scopes, M2M clients
Cognito explained Why we need resource servers / M2M (plain language)
Publisher API keys Easy publish without Cognito M2M
Cognito M2M reference Production M2M change: safety, checklists, rollback
Why V2 (detailed) Gap-by-gap comparison with V1
V1 API compatibility Exact endpoint / envelope contract
Storage backends Memory vs Supabase; implementing a new database backend
High availability What Worker HA we get today; future DB / failover options
DESIGN.md Architecture decisions and invariants
Client package README Compact API reference for @inovus-medical/notifications

Live API docs (when the service is deployed): https://notifications.totumcloud.com/docs