Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Frontend loads mqtt.js from the unpkg CDN (unversioned, no SRI); the UI fails to initialise on disconnected or air-gapped sites

Aperta Adatta ai principianti
#59 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript
Ambito
frontend

Direzione di ricerca

Inizia da src/frontend/public/index.html e src/frontend/package.json, poi esamina la build Docker del frontend per vedere come vengono serviti i suoi asset. Includi localmente il client MQTT per browser esistente e aggiorna il riferimento allo script; verifica che l’app non richieda più mqtt.js da unpkg e che la sua UI si inizializzi. Il controllo opzionale per il client mancante e il controllo CI sono aggiunte separate.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary

src/frontend/public/index.html loads the MQTT browser client from a public CDN at runtime:

<script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script>

This conflicts with the goal of running the same app in disconnected and sovereign environments:

  • Disconnected or egress-restricted sites: if the browser can't reach unpkg, mqtt is undefined. The inline initialisation then throws at mqtt.connect(...) before the order and chat handlers, data loading and timers are set up, so most of the UI is non-functional. Orders are published from the browser to orders/new over MQTT, so placing orders depends on this script too.
  • Supply chain and reproducibility: with no version pinned and no Subresource Integrity, every page load gets whatever the latest mqtt release is.

Suggested fix

mqtt is already a dependency of the frontend (src/frontend/package.json, ^5.15.0). Serve its browser bundle from the frontend container instead of the CDN. For example, copy node_modules/mqtt/dist/mqtt.min.js to public/vendor/mqtt.min.js during the Docker build, and reference /vendor/mqtt.min.js from index.html.

Optionally, guard initialisation so that a missing MQTT client degrades to "live updates unavailable" instead of stopping the page, and add a CI check for absolute https:// script/style URLs in public/.

Lingua principale
Rust
Stelle
5
Fork
3
Merge medio
2g 1h
PR unite (30g)
10

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/adaptive-apps

Tutte le issue di microsoft/adaptive-apps

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.