Skip to main content

Screen: Client Portal (Operator View)

web/portal.html. This is the operator-facing view for managing the curated client-facing surface — released updates, reviewable deliverables, request intake, and approved links. (The underlying /api/client-portal route also serves the client-facing rendering itself; this page covers the operator controls.)

Launcher and readiness

Lead users see one row per scoped client workspace. Readiness checks confirm access, active projects, and released material exist before a portal is actually shared with a client. Invite and reset controls record an audited prep action — the real auth delivery itself still happens in the identity tool, not here.

New requests

Clients can submit a general or project-scoped request from their own workspace. A request enters SABLE as open intake and moves through review, waiting, converted, resolved, or closed states — tracked in client_requests.

Deliverables

Clients can approve a deliverable, request changes with a required comment, or leave a comment. Review history stays attached to the deliverable, in deliverable_reviews.

What actually reaches the client

Only published updates, released deliverables, released document links, and released meeting summaries appear on the client side. Raw transcripts, document bodies, storage paths, and internal operating rows never cross this boundary — the portal reads a deliberately narrow slice, not a filtered view of everything.

Visibility

Admin and lead users can preview across the org; client users see only the clients where they have a client_memberships row.

Where the code lives

  • sable-agents-demo/web/portal.html
  • sable-agents-demo/web/api/client-portal.js, _client_portal.js
  • sable-agents-demo/web/api/deliverable-reviews.js, deliverable-release.js