mirror of
https://github.com/hanzoai/captable.git
synced 2026-10-16 14:21:29 +00:00
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]>
8 lines
271 B
TypeScript
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" },
|
|
});
|