Files
captable/vitest.config.ts
zooqueenandHanzo Dev 36f2573bf0 Captable sessions end with the IAM token; links, roles and uploads tighten
A session lives as long as the IAM access token it signed in with: the jwt
callback, which every session read runs through, ends a session whose token
is missing or expired, and an unused session lasts 24 hours. Someone IAM
moves or disables loses Captable when their token expires, and signs in
again through IAM.

The request log keeps the path alone, with invitation and signing tokens
replaced; queries are never logged.

Share links are minted only by the mutations that mail them. Reading who a
data room or update is shared with returns no links, and the copy-link
button is gone. A member recipient opens a link only while still ACTIVE,
and removing a member deletes their recipient rows.

Investor updates render from their stored blocks: text is React text,
links keep http(s) or mailto addresses, images http(s). No update HTML is
stored or shown.

Only an ADMIN writes a role, assigns one, or acts on an ADMIN; a company
keeps its last ACTIVE ADMIN; an edit that names no role keeps the member's
role; custom roles are looked up within the company.

Uploads land where the server says: profile photos under the account,
everything else under the company's public id, signed only for an ACTIVE
member (the founder's logo excepted). Public objects are PNG, JPEG, WebP or
GIF, with their type and disposition signed into the PUT. bucket.create
refuses a key outside the company's prefix.

A recipient's signing status moves forward once, so two signings cannot
both land.


Co-authored-by: Hanzo Dev <[email protected]>
2026-10-16 07:21:13 -07:00

8 lines
271 B
TypeScript

import { defineConfig } from "vitest/config";
// Next compiles JSX with React's automatic runtime; the tests compile it the
// same way, so a component renders under vitest exactly as the app builds it.
export default defineConfig({
esbuild: { jsx: "automatic" },
});