feat(uload): sync_changes integration, Stripe checkout, docs update

Sync integration:
- Redirect service reads links from mana-sync's sync_changes table
- Analytics service queries clicks from sync_changes
- Click tracking writes to sync_changes (visible to all clients)
- Public profile reads from sync_changes
- Server DB points to mana_sync database (not separate uload DB)
- Removed uload-database dependency from server

Stripe:
- Real Stripe checkout session creation (monthly/yearly)
- Webhook handler with signature verification
- Webhook route bypasses JWT auth

Documentation:
- Root CLAUDE.md: added uload to project table, dev commands, local-first list
- mana-sync CLAUDE.md: added uLoad, Taktik, Calc to connected apps

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-03-29 19:02:11 +02:00
parent 9e82e40e16
commit d02428fca1
12 changed files with 254 additions and 140 deletions

21
pnpm-lock.yaml generated
View file

@ -4919,9 +4919,6 @@ importers:
apps/uload/apps/server:
dependencies:
'@manacore/uload-database':
specifier: workspace:*
version: link:../../packages/uload-database
drizzle-orm:
specifier: ^0.44.7
version: 0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(bun-types@1.3.11)(expo-sqlite@55.0.10(expo@55.0.5)(react-native@0.84.1(@babel/core@7.28.5)(@types/react@19.2.14)(react@19.2.4))(react@19.2.4))(gel@2.2.0)(kysely@0.28.8)(postgres@3.4.7)
@ -4934,6 +4931,9 @@ importers:
postgres:
specifier: ^3.4.7
version: 3.4.7
stripe:
specifier: ^18.4.0
version: 18.5.0(@types/node@24.10.1)
devDependencies:
'@types/bun':
specifier: ^1.2.0
@ -20226,6 +20226,15 @@ packages:
resolution: {integrity: sha512-aT2BU9KkizY9SATf14WhhYVv2uOapBWX0OFWF4xvcj1mPaNotlSc2CsxpS4DS46ZueSppmCF5BX1sNYBtwBvfw==}
engines: {node: '>=12.*'}
stripe@18.5.0:
resolution: {integrity: sha512-Hp+wFiEQtCB0LlNgcFh5uVyKznpDjzyUZ+CNVEf+I3fhlYvh7rZruIg+jOwzJRCpy0ZTPMjlzm7J2/M2N6d+DA==}
engines: {node: '>=12.*'}
peerDependencies:
'@types/node': '>=12.x.x'
peerDependenciesMeta:
'@types/node':
optional: true
strnum@1.1.2:
resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==}
@ -44870,6 +44879,12 @@ snapshots:
'@types/node': 22.19.1
qs: 6.14.0
stripe@18.5.0(@types/node@24.10.1):
dependencies:
qs: 6.14.0
optionalDependencies:
'@types/node': 24.10.1
strnum@1.1.2: {}
strnum@2.1.1: {}