{"calls":[{"currentCall":"GET /api/event?id={id}","notes":"Used by event details page and event query.","replacementCall":"GET /api/event?id={id} or GET /v1/events/{id}","replacementUrl":"GET https://entity.keepsafe.ai/api/event?id={id} or GET https://entity.keepsafe.ai/v1/events/{id}","section":"Browser calls to EVENT_AI_ORIGIN","status":"Implemented"},{"currentCall":"GET /api/event?email={email}","notes":"Returns events affecting assets owned by the email.","replacementCall":"GET /api/event?email={email}","replacementUrl":"GET https://entity.keepsafe.ai/api/event?email={email}","section":"Browser calls to EVENT_AI_ORIGIN","status":"Implemented"},{"currentCall":"GET /api/getEventsByAssetWithGeoJson?monitored_site={assetId}","notes":"GeoJSON URL passthrough exists when events contain geometry URLs.","replacementCall":"GET /api/getEventsByAssetWithGeoJson?monitored_site={assetId} or GET /v1/assets/{id}/events","replacementUrl":"GET https://entity.keepsafe.ai/api/getEventsByAssetWithGeoJson?monitored_site={assetId} or GET https://entity.keepsafe.ai/v1/assets/{id}/events","section":"Browser calls to EVENT_AI_ORIGIN","status":"Implemented"},{"currentCall":"POST /alerts/email/bulk","notes":"Alerting now owns contact-alert fan-out and calls Messenger for email transport. KeepSafe-web still needs to replace the raw bulk email payload with Alerting alert/message/recipient calls.","replacementCall":"POST https://alerts.keepsafe.ai/v1/alerts and POST https://alerts.keepsafe.ai/v1/alerts/{id}/send","replacementUrl":"POST https://alerts.keepsafe.ai/v1/alerts and POST https://alerts.keepsafe.ai/v1/alerts/{id}/send","section":"Browser calls to EVENT_AI_ORIGIN","status":"Partial"},{"currentCall":"POST /alerts/push/bulk","notes":"Alerting now owns contact-alert fan-out and calls Messenger for push transport. KeepSafe-web still needs to replace the raw bulk push payload with Alerting alert/message/recipient calls.","replacementCall":"POST https://alerts.keepsafe.ai/v1/alerts and POST https://alerts.keepsafe.ai/v1/alerts/{id}/send","replacementUrl":"POST https://alerts.keepsafe.ai/v1/alerts and POST https://alerts.keepsafe.ai/v1/alerts/{id}/send","section":"Browser calls to EVENT_AI_ORIGIN","status":"Partial"},{"currentCall":"POST /alerts/sms/bulk","notes":"Alerting now owns contact-alert fan-out and calls Messenger for SMS transport. KeepSafe-web still needs to replace the raw bulk SMS payload with Alerting alert/message/recipient calls.","replacementCall":"POST https://alerts.keepsafe.ai/v1/alerts and POST https://alerts.keepsafe.ai/v1/alerts/{id}/send","replacementUrl":"POST https://alerts.keepsafe.ai/v1/alerts and POST https://alerts.keepsafe.ai/v1/alerts/{id}/send","section":"Browser calls to EVENT_AI_ORIGIN","status":"Partial"},{"currentCall":"GET/PUT /api/users?id={id}","notes":"Replace direct User repository reads/writes with Entity user API calls; admin-only user list/create/delete calls are omitted from this non-admin map.","replacementCall":"GET/PATCH /v1/users/{id}","replacementUrl":"GET/PATCH https://entity.keepsafe.ai/v1/users/{id}","section":"KeepSafe-web server routes / TypeORM replacement","status":"Implemented"},{"currentCall":"GET/PUT /api/users/settings","notes":"Replace direct UserSetting repository reads/writes with Entity user-settings API calls.","replacementCall":"GET/PUT /v1/users/{id}/settings","replacementUrl":"GET/PUT https://entity.keepsafe.ai/v1/users/{id}/settings","section":"KeepSafe-web server routes / TypeORM replacement","status":"Implemented"},{"currentCall":"POST /api/assets","notes":"Entity can create assets one at a time today; bulk import can start as a KeepSafe-web loop, with a future bulk endpoint if needed.","replacementCall":"POST /v1/assets","replacementUrl":"POST https://entity.keepsafe.ai/v1/assets","section":"KeepSafe-web server routes / TypeORM replacement","status":"Partial"},{"currentCall":"GET/POST/PUT /api/assets/settings","notes":"Entity stores asset settings on asset records; KeepSafe-web needs shape/ownership parity for the current asset-settings UI.","replacementCall":"GET/PATCH /v1/assets/{id}","replacementUrl":"GET/PATCH https://entity.keepsafe.ai/v1/assets/{id}","section":"KeepSafe-web server routes / TypeORM replacement","status":"Partial"},{"currentCall":"GET/POST /api/events/dismissed","notes":"Needs dismissed-event model keyed by user and event before TypeORM can be removed for this route.","replacementCall":"GET/POST https://entity.keepsafe.ai/v1/users/{id}/dismissed-events","replacementUrl":"GET/POST https://entity.keepsafe.ai/v1/users/{id}/dismissed-events","section":"KeepSafe-web server routes / TypeORM replacement","status":"TBD"},{"currentCall":"GET/POST/PUT/DELETE /api/contacts","notes":"Moved to KeepSafe Alerting. Legacy contacts have been imported; KeepSafe-web still needs its local route cutover from TypeORM to Alerting.","replacementCall":"GET/POST/PATCH/DELETE https://alerts.keepsafe.ai/v1/contacts","replacementUrl":"GET/POST/PATCH/DELETE https://alerts.keepsafe.ai/v1/contacts","section":"KeepSafe-web server routes / TypeORM replacement","status":"Implemented"},{"currentCall":"GET/PUT/DELETE /api/contacts/groups","notes":"Moved to KeepSafe Alerting. Legacy contact groups and memberships have been imported; KeepSafe-web route shape still needs cutover.","replacementCall":"GET/POST/PATCH/DELETE https://alerts.keepsafe.ai/v1/contact-groups","replacementUrl":"GET/POST/PATCH/DELETE https://alerts.keepsafe.ai/v1/contact-groups","section":"KeepSafe-web server routes / TypeORM replacement","status":"Implemented"},{"currentCall":"GET/POST/PUT/DELETE /api/notifications","notes":"Moved to KeepSafe Alerting as alerts, alert messages, alert recipients, and delivery attempts. Alerting calls Messenger for email/SMS/push.","replacementCall":"GET/POST/PATCH/DELETE https://alerts.keepsafe.ai/v1/alerts plus POST https://alerts.keepsafe.ai/v1/alerts/{id}/send","replacementUrl":"GET/POST/PATCH/DELETE https://alerts.keepsafe.ai/v1/alerts plus POST https://alerts.keepsafe.ai/v1/alerts/{id}/send","section":"KeepSafe-web server routes / TypeORM replacement","status":"Implemented"},{"currentCall":"POST /api/notifications/dismiss","notes":"Moved to KeepSafe Alerting. Set alert status/dismissed state on the Alerting alert record.","replacementCall":"PATCH https://alerts.keepsafe.ai/v1/alerts/{id}","replacementUrl":"PATCH https://alerts.keepsafe.ai/v1/alerts/{id}","section":"KeepSafe-web server routes / TypeORM replacement","status":"Implemented"},{"currentCall":"GET /api/notifications/confirm","notes":"Moved to KeepSafe Alerting as recipient confirmation state. Confirmation endpoint is public by recipient id/code.","replacementCall":"POST https://alerts.keepsafe.ai/v1/alert-recipients/{id}/confirm","replacementUrl":"POST https://alerts.keepsafe.ai/v1/alert-recipients/{id}/confirm","section":"KeepSafe-web server routes / TypeORM replacement","status":"Implemented"},{"currentCall":"POST /api/email and POST /api/email/bulk","notes":"Move ad hoc SendGrid calls to Messenger; KeepSafe-web needs a recipient-registration shim where it currently sends raw email addresses.","replacementCall":"POST https://messenger.keepsafe.ai/api/email/register and POST https://messenger.keepsafe.ai/api/email/send","replacementUrl":"POST https://messenger.keepsafe.ai/api/email/register and POST https://messenger.keepsafe.ai/api/email/send","section":"KeepSafe-web server routes / TypeORM replacement","status":"Partial"},{"currentCall":"/api/auth/*","notes":"KeepSafe Identity is live and should replace Auth.js DB-backed login/session tables for KeepSafe-web, but the KeepSafe-web auth client/session cutover still needs implementation.","replacementCall":"https://identity.keepsafe.ai/authorize plus /token and /userinfo","replacementUrl":"https://identity.keepsafe.ai/authorize plus /token and /userinfo","section":"KeepSafe-web server routes / TypeORM replacement","status":"Partial"},{"currentCall":"Mapbox geocoding/static/map tiles","notes":"Not part of Entity replacement.","replacementCall":"Keep external","replacementUrl":"Keep external","section":"External services used by KeepSafe-web","status":"External"}],"currentEventAiOrigin":"https://api.keepsafe.ai","entityHost":"https://entity.keepsafe.ai","source":"projects/keepsafe-web at a574a61"}