shared-uload: HTTP-federation (Option B) — schreibt jetzt gegen uload-api
Some checks are pending
CD Mac Mini / Detect Changes (push) Waiting to run
CD Mac Mini / Deploy (push) Blocked by required conditions
CI / Detect Changes (push) Waiting to run
CI / Validate (push) Waiting to run
CI / Build mana-search (push) Blocked by required conditions
CI / Build mana-sync (push) Blocked by required conditions
CI / Build mana-api-gateway (push) Blocked by required conditions
CI / Build mana-crawler (push) Blocked by required conditions
Docker Validate / Validate Dockerfiles (push) Waiting to run
Docker Validate / Build calendar-web (push) Blocked by required conditions
Docker Validate / Build quotes-web (push) Blocked by required conditions
Docker Validate / Build todo-backend (push) Blocked by required conditions
Docker Validate / Build todo-web (push) Blocked by required conditions
Docker Validate / Build mana-auth (push) Blocked by required conditions
Docker Validate / Build mana-sync (push) Blocked by required conditions
Docker Validate / Build mana-media (push) Blocked by required conditions
Mirror to Forgejo / Push to Forgejo (push) Waiting to run

Nach dem uLoad-Cutover 2026-05-18 (Code/uload/ als Standalone) war
@mana/shared-uload structurell broken: ShareModal-Calls aus presi+
music landeten in mana_sync.sync_changes, aber der alte Konsument
(mana-app-uload-server) ist abgeschaltet → 404 auf ulo.ad/r/<code>.

Fix: shared-uload schreibt jetzt direkt via HTTP gegen die föderierte
uload-API.

- create-link.ts: createShortLink() → POST {apiUrl}/api/v1/links
  mit Authorization: Bearer <token>. Init-Signatur ist neu
  initSharedUload({ apiUrl, getAuthToken, shortUrlOrigin? }).
- types.ts: UloadLink (Dexie-internal-Type) entfernt — Caller arbeiten
  nur noch mit CreateShortLinkOptions + CreatedLink (Wire-Shapes).
- package.json: @mana/local-store-Dep entfernt. Version 0.2.0.
- index.ts: getBaseUrl-Export ergänzt, UloadLink raus.

Caller-Site (apps/mana/apps/web/src/routes/(app)/+layout.svelte):
  initSharedUload({
    apiUrl: PUBLIC_ULOAD_API_URL ?? 'https://uload-api.mana.how',
    getAuthToken: () => authStore.getValidToken(),
    shortUrlOrigin: PUBLIC_ULOAD_SHORT_ORIGIN ?? 'https://ulo.ad',
  });

Bonus-Cleanup:
- plaintext-allowlist.ts: uloadFolders + uloadTags raus (Tables sind
  via Dexie v67 gedroppt, Allowlist-Entries waren orphaned).

mana-Web-App: pnpm check grün (0/0 auf 7396 Files).
This commit is contained in:
Till JS 2026-05-18 16:39:44 +02:00
parent 0b44acdde1
commit e9e43abaa0
7 changed files with 412 additions and 3996 deletions

View file

@ -105,8 +105,6 @@ export const PLAINTEXT_ALLOWLIST: readonly string[] = [
'timeTemplates', // TODO: audit
'timeWorldClocks', // TODO: audit
'todoProjects', // TODO: audit
'uloadFolders', // TODO: audit
'uloadTags', // TODO: audit
'userSettings', // TODO: audit
'wetterLocations', // TODO: audit
'wetterSettings', // TODO: audit

View file

@ -573,7 +573,14 @@
// lets the first paint + interaction land without waiting on
// event-bridge wiring or LLM-queue reclaim work.
idle(() => {
initSharedUload();
// uload-Federation: schreibt direkt gegen die föderierte
// uload-API (Code/uload/), nicht mehr in lokale Dexie+mana-sync.
// Override URL via PUBLIC_ULOAD_API_URL (dev: http://localhost:3107).
initSharedUload({
apiUrl: import.meta.env.PUBLIC_ULOAD_API_URL ?? 'https://uload-api.mana.how',
getAuthToken: () => authStore.getValidToken(),
shortUrlOrigin: import.meta.env.PUBLIC_ULOAD_SHORT_ORIGIN ?? 'https://ulo.ad',
});
startEventStore();
initTools();
startEventBridge();