Files
claudemesh/.context/turbostarter-framework-context/wireframes/low-fidelity/auth-join-org.excalidraw
Alejandro Gutiérrez d3163a5bff feat(db): mesh data model — meshes, members, invites, audit log
- pgSchema "mesh" with 4 tables isolating the peer mesh domain
- Enums: visibility, transport, tier, role
- audit_log is metadata-only (E2E encryption enforced at broker/client)
- Cascade on mesh delete, soft-delete via archivedAt/revokedAt

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 21:19:32 +01:00

312 lines
7.3 KiB
Plaintext

{
"type": "excalidraw",
"version": 2,
"source": "turbostarter-wireframes",
"elements": [
{
"id": "outer-frame",
"type": "rectangle",
"x": 0,
"y": 0,
"width": 1440,
"height": 900,
"strokeColor": "$border",
"backgroundColor": "$background",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": [],
"roundness": { "type": 3, "value": 0 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "left-column",
"type": "rectangle",
"x": 0,
"y": 0,
"width": 720,
"height": 900,
"strokeColor": "$border",
"backgroundColor": "$background",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["left-column-group"],
"roundness": { "type": 3, "value": 0 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "right-column",
"type": "rectangle",
"x": 720,
"y": 0,
"width": 720,
"height": 900,
"strokeColor": "$border",
"backgroundColor": "$secondary",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["right-column-group"],
"roundness": { "type": 3, "value": 0 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "logo-placeholder",
"type": "rectangle",
"x": 300,
"y": 120,
"width": 120,
"height": 40,
"strokeColor": "$border",
"backgroundColor": "$primary",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["left-column-group"],
"roundness": { "type": 3, "value": 8 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "join-org-title",
"type": "rectangle",
"x": 200,
"y": 200,
"width": 320,
"height": 32,
"strokeColor": "$border",
"backgroundColor": "$muted",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["form-group"],
"roundness": { "type": 3, "value": 4 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "invitation-card",
"type": "rectangle",
"x": 180,
"y": 280,
"width": 360,
"height": 200,
"strokeColor": "$border",
"backgroundColor": "$card",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["invitation-card-group"],
"roundness": { "type": 3, "value": 8 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "org-logo",
"type": "rectangle",
"x": 320,
"y": 300,
"width": 80,
"height": 80,
"strokeColor": "$border",
"backgroundColor": "$primary",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["invitation-card-group"],
"roundness": { "type": 3, "value": 8 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "org-name",
"type": "rectangle",
"x": 260,
"y": 400,
"width": 200,
"height": 24,
"strokeColor": "$border",
"backgroundColor": "$muted",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["invitation-card-group"],
"roundness": { "type": 3, "value": 4 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "inviter-name",
"type": "rectangle",
"x": 280,
"y": 434,
"width": 160,
"height": 16,
"strokeColor": "$border",
"backgroundColor": "$muted",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["invitation-card-group"],
"roundness": { "type": 3, "value": 4 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "role-badge",
"type": "rectangle",
"x": 320,
"y": 458,
"width": 80,
"height": 20,
"strokeColor": "$border",
"backgroundColor": "$secondary",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["invitation-card-group"],
"roundness": { "type": 3, "value": 4 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "accept-button",
"type": "rectangle",
"x": 200,
"y": 520,
"width": 320,
"height": 44,
"strokeColor": "$border",
"backgroundColor": "$primary",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["form-group"],
"roundness": { "type": 3, "value": 8 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "decline-link",
"type": "rectangle",
"x": 320,
"y": 590,
"width": 80,
"height": 20,
"strokeColor": "$border",
"backgroundColor": "$muted",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["form-group"],
"roundness": { "type": 3, "value": 4 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "wrong-account-link",
"type": "rectangle",
"x": 260,
"y": 640,
"width": 200,
"height": 20,
"strokeColor": "$border",
"backgroundColor": "$muted",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["form-group"],
"roundness": { "type": 3, "value": 4 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "right-branding-logo",
"type": "rectangle",
"x": 1000,
"y": 400,
"width": 160,
"height": 60,
"strokeColor": "$border",
"backgroundColor": "$primary",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["right-column-group"],
"roundness": { "type": 3, "value": 8 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "right-branding-tagline",
"type": "rectangle",
"x": 920,
"y": 480,
"width": 320,
"height": 24,
"strokeColor": "$border",
"backgroundColor": "$muted",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["right-column-group"],
"roundness": { "type": 3, "value": 4 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
}
],
"appState": {
"gridSize": 20,
"viewBackgroundColor": "$background"
}
}