← TessryxCONTENT HISTORY
WHAT CHANGED
Update to Tessryx
Snapshot Nov 13, 2026 · 06:08 UTC · version 1.2.0
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save Tessryx and check future changes in Following.
Up to 3 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Build a client portal, customer portal or members area on Tessryx, where invited clients sign in to private pages and each sees only their own records, files and status updates. Use when the user asks for a client portal, customer portal, private page per client, or a place to share work with clients.",
"included_files": [],
"name": "client-portal",
"skill_md_contents": "---\nname: client-portal\ndescription: Build a client portal, customer portal or members area on Tessryx, where invited clients sign in to private pages and each sees only their own records, files and status updates. Use when the user asks for a client portal, customer portal, private page per client, or a place to share work with clients.\n---\n\n# Client portal\n\nA client portal on Tessryx is a set of members-only pages. The owner invites each client by email as a **visitor**: visitors sign in, open the pages that admit them, and take no seat. Follow `build-small-first` for the build order; this skill adds the portal-specific parts.\n\nThe user's explicit instructions always take priority over this skill.\n\n## Read first (only these)\n\n- `whoami`, then the `build-a-page` guide.\n- The `endpoints` guide, sections \"Gated endpoints\" and \"Private pages for invited people (visitors)\".\n- `get_dynamic_endpoint_definition_schema` before the first endpoint, for the exact `auth` shape.\n\n## First version (one sitting)\n\n1. An **app** with a short prefix (e.g. `portal`), and a **schema + datafile** per client for what the owner updates: project name, status, next steps, links.\n2. **One page workflow** that shows the signed-in client their own record. Gate its endpoint with `auth.required: true`, `allow.tenant_roles` set to `[\"ROLE_VISITOR\", \"ROLE_OWNER\", \"ROLE_ADMIN\"]` (the match is exact, so list the owner's role too), `expose_identity: true` and `on_unauthenticated.mode: \"prompt\"`.\n3. Key each client's record on `auth.viewer_id`, or keep a small owner-edited mapping from the invited email to the client's record.\n4. `preview_dynamic_endpoint`, publish, then `invite_visitor` for the first client. Tessryx sends no email, so give the owner the link to send.\n\n## After it's live (offer, don't build unprompted)\n\n- A status form the owner fills in, so updates don't need the AI.\n- One folder or app per client with `invite_visitor` `sites`, so one client never opens another's pages (`set_visitor_sites` to change).\n- Transactional email to a visitor when their status changes (`workflows` guide, \"Email to a visitor\").\n\n## Keep in mind\n\n- **Look:** calm and trustworthy, in the owner's brand colors if they give them: the client's name and project status first, clear next steps, generous spacing.\n- Visitors see only pages that admit them: no dashboard, no workspace data, and they take no seat.\n- Everything above works on the free plan at the workspace's tessryx.app address.\n"
}SHA-256 of public snapshot: ebece69ff6c42d0589c58c77863a29ae1126886d91bab6a69a12176f8b7428f2