Express-Server für Appwrite-Auth, Session, Projekt-Dashboard und Gitea-Webhook; statisches Frontend und Schema-Dokumentation für woms-database. Co-authored-by: Cursor <cursoragent@cursor.com>
80 lines
2.1 KiB
Markdown
80 lines
2.1 KiB
Markdown
# Appwrite Schema – Kundenportal (woms-database)
|
||
|
||
Endpoint: `https://ticket.webklar.com/v1`
|
||
Project ID: `6a1058610003c5a13a05`
|
||
Database ID: `woms-database`
|
||
|
||
Alle Collections: **Read/Create/Update/Delete** nur für API-Key-Rolle (Server) und Admin-Team. Kein `Any`-Read auf Kundendaten.
|
||
|
||
---
|
||
|
||
## customers (erweitern)
|
||
|
||
Bestehende Felder beibehalten. Zusätzlich:
|
||
|
||
| Attribut | Typ | Required | Index |
|
||
|----------|-----|----------|-------|
|
||
| companyName | string (255) | nein | |
|
||
| portalAccessEnabled | boolean | nein | |
|
||
| appwriteUserId | string (64) | nein | unique |
|
||
| customerStatus | string (50) | nein | |
|
||
| notes | string (5000) | nein | |
|
||
| createdAt | datetime | nein | |
|
||
| updatedAt | datetime | nein | |
|
||
|
||
---
|
||
|
||
## customerPortalAccess (neu)
|
||
|
||
Collection ID: `customerPortalAccess`
|
||
|
||
| Attribut | Typ | Required | Index |
|
||
|----------|-----|----------|-------|
|
||
| customerId | string (64) | ja | |
|
||
| enabled | boolean | ja | |
|
||
| passwordSet | boolean | nein | |
|
||
| appwriteUserId | string (64) | nein | |
|
||
| lastLoginAt | datetime | nein | |
|
||
|
||
Index: `customerId`, `appwriteUserId`
|
||
|
||
---
|
||
|
||
## websiteProjects (neu)
|
||
|
||
Collection ID: `websiteProjects`
|
||
|
||
| Attribut | Typ | Required | Index |
|
||
|----------|-----|----------|-------|
|
||
| customerId | string (64) | ja | ja |
|
||
| ticketId | string (64) | nein | |
|
||
| projectName | string (255) | ja | |
|
||
| templateName | string (255) | nein | |
|
||
| giteaRepoUrl | string (512) | nein | |
|
||
| giteaRepoName | string (255) | nein | |
|
||
| repoFullName | string (255) | nein | unique |
|
||
| subdomain | string (128) | nein | unique |
|
||
| previewUrl | string (512) | nein | |
|
||
| liveDomain | string (255) | nein | |
|
||
| status | string (50) | nein | |
|
||
| provisioningStatus | string (50) | nein | |
|
||
| createdAt | datetime | nein | |
|
||
| updatedAt | datetime | nein | |
|
||
|
||
---
|
||
|
||
## portalFeatures (neu)
|
||
|
||
Collection ID: `portalFeatures`
|
||
|
||
| Attribut | Typ | Required | Index |
|
||
|----------|-----|----------|-------|
|
||
| customerId | string (64) | ja | ja |
|
||
| projectId | string (64) | nein | |
|
||
| featureKey | string (128) | ja | |
|
||
| enabled | boolean | ja | |
|
||
| unlockedByPurchase | boolean | nein | |
|
||
| purchaseStatus | string (50) | nein | |
|
||
|
||
Index: `customerId`, `projectId`
|