Raven
Interfaces
Inbound and outbound contracts for Raven
Protocol
- Connect Protocol (JSON) over HTTP/2.
- RPC routes follow the Connect pattern:
/raven.raven.v1.RavenService/{Method}. - Content-Type:
application/json(Connect JSON).
Service definition
proto/raven/raven/v1/raven.proto
RPC catalog
| RPC | Direction | Auth | Notes |
|---|---|---|---|
SearchPatients | Unary | Required | Patient search by query |
GetPetBenefits | Unary | Required | Pet benefits lookup |
StreamPatientSearch | Bidi stream | Required | Interactive search streaming |
Login | Unary | Public | Bubble login + Firebase token |
SSO | Unary | Public | SSO status lookup |
SSOLogin | Unary | Public | SSO token validation + login |
Authentication
- RPCs use Connect interceptors for auth and user claim enrichment.
- Login and SSO flows integrate with Bubble and Microsoft OIDC.
- For protected RPCs, send
Authorization: Bearer <Firebase ID token>.
Streaming phases
StreamPatientSearch emits structured phases:
RUNNING: search started.RESULTS: batch of results.DONE: search completed.CANCELLED: client cancelled the search.ERROR: search failed with an error message.
Error model
- Errors surface as Connect errors with canonical codes (
UNAUTHENTICATED,PERMISSION_DENIED,INVALID_ARGUMENT,UNAVAILABLE,INTERNAL).
Outbound dependencies
- Cloud Spanner for patient search and related data.
- Bubble APIs for login/SSO.
- Firebase Admin for custom tokens.
Last updated on