Frontend loads mqtt.js from the unpkg CDN (unversioned, no SRI); the UI fails to initialise on disconnected or air-gapped sites
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,
mqttis undefined. The inline initialisation then throws atmqtt.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 toorders/newover 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
mqttrelease 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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/adaptive-apps
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
microsoft/adaptive-apps#58 ·
I maintainer di solito rispondono entro 1 giorno
-
help wanted Microhack
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
microsoft/adaptive-apps#28 ·
I maintainer di solito rispondono entro 1 giorno
-
Create Microhack Challenge 08 Coach guideForse di nuovo libera @gowrishacv l’ha presa 51 giorni fa e non c’è nessuna pull request aperta. Apertahelp wanted Microhack
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
microsoft/adaptive-apps#27 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
help wanted Microhack
Difficoltà 2/5 Mezza giornata Idoneità per principianti 68/100
microsoft/adaptive-apps#26 ·
I maintainer di solito rispondono entro 1 giorno
-
help wanted Microhack
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
microsoft/adaptive-apps#25 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di microsoft/adaptive-apps
Issue simili
-
build: Update rust versionForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertadependencies
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
ibm-granite-community/granite-cli#229 ·
I maintainer di solito rispondono entro 1 giorno
-
setTargetAtTime booked ahead of time starts its curve early (values blow up before start_time)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
orottier/web-audio-api-rs#658 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
aosama/astronomical#1318 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
shep-pm/shep-kelpie#980 ·
I maintainer di solito rispondono entro 1 giorno