Files
claudemesh/.context/turbostarter-framework-context/wireframes/medium-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

492 lines
12 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": 100,
"width": 120,
"height": 40,
"strokeColor": "$border",
"backgroundColor": "$primary",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["logo-group"],
"roundness": { "type": 3, "value": 8 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "logo-text",
"type": "text",
"x": 320,
"y": 110,
"width": 80,
"height": 20,
"text": "MCPGet",
"fontSize": 16,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"strokeColor": "$background",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["logo-group"],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "join-org-title-text",
"type": "text",
"x": 200,
"y": 180,
"width": 320,
"height": 32,
"text": "Join Organization",
"fontSize": 24,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"strokeColor": "$foreground",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["title-group"],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "join-org-subtitle-text",
"type": "text",
"x": 200,
"y": 216,
"width": 320,
"height": 20,
"text": "You've been invited to join",
"fontSize": 14,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"strokeColor": "$muted-foreground",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["title-group"],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "invitation-card",
"type": "rectangle",
"x": 180,
"y": 280,
"width": 360,
"height": 220,
"strokeColor": "$border",
"backgroundColor": "$card",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["invitation-card-group"],
"roundness": { "type": 3, "value": 12 },
"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": 12 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "org-logo-text",
"type": "text",
"x": 320,
"y": 330,
"width": 80,
"height": 20,
"text": "AC",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"strokeColor": "$primary-foreground",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["invitation-card-group"],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "org-name-text",
"type": "text",
"x": 260,
"y": 400,
"width": 200,
"height": 24,
"text": "Acme Corp",
"fontSize": 18,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"strokeColor": "$foreground",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["invitation-card-group"],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "inviter-name-text",
"type": "text",
"x": 280,
"y": 434,
"width": 160,
"height": 16,
"text": "Invited by John Doe",
"fontSize": 12,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"strokeColor": "$muted-foreground",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["invitation-card-group"],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "role-badge",
"type": "rectangle",
"x": 320,
"y": 460,
"width": 80,
"height": 24,
"strokeColor": "$border",
"backgroundColor": "$secondary",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["role-badge-group"],
"roundness": { "type": 3, "value": 12 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "role-badge-text",
"type": "text",
"x": 320,
"y": 464,
"width": 80,
"height": 16,
"text": "Member",
"fontSize": 12,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"strokeColor": "$foreground",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["role-badge-group"],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "accept-button",
"type": "rectangle",
"x": 200,
"y": 540,
"width": 320,
"height": 44,
"strokeColor": "$border",
"backgroundColor": "$primary",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["button-group"],
"roundness": { "type": 3, "value": 8 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "accept-button-text",
"type": "text",
"x": 200,
"y": 552,
"width": 320,
"height": 20,
"text": "Accept invitation",
"fontSize": 14,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"strokeColor": "$primary-foreground",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["button-group"],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "decline-link-text",
"type": "text",
"x": 320,
"y": 610,
"width": 80,
"height": 20,
"text": "Decline",
"fontSize": 14,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"strokeColor": "$destructive",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["links-group"],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "wrong-account-link-text",
"type": "text",
"x": 260,
"y": 660,
"width": 200,
"height": 20,
"text": "Wrong account?",
"fontSize": 14,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"strokeColor": "$primary",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["links-group"],
"roundness": null,
"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-branding-group"],
"roundness": { "type": 3, "value": 8 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "right-branding-logo-text",
"type": "text",
"x": 1000,
"y": 420,
"width": 160,
"height": 20,
"text": "MCPGet",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"strokeColor": "$primary-foreground",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["right-branding-group"],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "right-branding-tagline",
"type": "text",
"x": 920,
"y": 480,
"width": 320,
"height": 24,
"text": "Discover and install MCPs with ease",
"fontSize": 14,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle",
"strokeColor": "$muted-foreground",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["right-column-group"],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
}
],
"appState": {
"gridSize": 20,
"viewBackgroundColor": "$background"
}
}