Firm lane
The client's portal and beneficiary links
Kind: Fixed templates and rules — no model call.
Availability
ShippedLive on this deployment: it needs nothing more to run.
- Door
/matter/[id] · /beneficiary/[token] · /api/priority-message · /api/trustee/action-request- Unlocks with
- An invitation from the firm to the matter.
Every status follows one rule from this deployment's own configuration: a capability is marked shipped only when everything it needs is in place.
What it does
The firm's client sees their matter, messages the firm, flags a priority message and asks before acting; a beneficiary reads the updates the firm's attorney has approved, through a view link.
Keep in mind
A request before acting waits for the firm's attorney, and a beneficiary's view link closes after 90 days or when the firm revokes it.
What it refuses
| Answer | HTTP | Meaning |
|---|---|---|
unauthorized | 401 | No session: sign in first; nothing was read or saved. |
unavailable | 503 | The record could not be read: the door answers unavailable, never an empty list or a zero. |
- Answer
unauthorized- HTTP
- 401
- Meaning
- No session: sign in first; nothing was read or saved.
- Answer
unavailable- HTTP
- 503
- Meaning
- The record could not be read: the door answers unavailable, never an empty list or a zero.
What can leave EstateDraft
Each action that can reach outside EstateDraft is declared in one registry with the channel it uses; the outbox refuses an action that is not declared.
- Sends · email
firm.client-invite-email - Shares access · none
beneficiary.view-link - Shares access · none
invite.client-preload-link - Shares access · none
invite.collaborator-link - Shares access · none
invite.intake-link - Notice · in-app
action-request.decision-bell - Notice · in-app
action-request.firm-bell - Notice · in-app
beneficiary.question-bell - Notice · in-app
matter-message.bell - Notice · email
notice:priority-message.firm-alert-email - Notice · text message
notice:priority-message.firm-alert-sms
Evidence
src/lib/portal/reads.test.tssrc/app/beneficiary/beneficiary-links.test.tssrc/app/api/admin/beneficiary-link/revoke/route.test.tssrc/app/api/trustee/action-request/route.test.tssrc/lib/portal/reads.tssrc/app/beneficiary/link-state.ts
Reviewed: