Todos contra el fuego — aplicación web (Meteor)
Find a file
vjrj 124ed4e135 refactor(subsUnion): extract the logic out of Meteor.startup, cap the union size
Everything the union does lived inside a Meteor.startup callback with no exports:
the queue, the incremental fast path, the worker-failure handling. None of it was
reachable from a test, which is how three separate incidents shipped — a failed
worker stored as an empty union (50ca9cc), turf deps unresolvable from the worker
(3249362/570cb49) and a recompute that blocked the event loop and froze DDP
(b4e5511/fbb746f). subsUnionLogic.js now takes its collaborators as arguments and
subsUnion.js is only the wiring.

The FIXME at the old subsUnion.js:82 goes with it, because it lives inside the
extracted storeUnion: a union over 16 MiB is simply rejected by Mongo, so the map
would freeze at the last union that happened to fit, silently. unionSizeGuard.js
degrades the geometry instead — coordinate precision, then vertex decimation,
then holes, then the smallest polygons — until it fits, and reports what it did
so the setting document records it. The cap is 8 MiB rather than 16: the same
string is pushed to every browser over DDP.

addNoisy no longer mutates the document it is given, so the public pass cannot
leak its fuzzing into the private one.
2026-08-01 18:02:04 +02:00
.forgejo/workflows ci: bajar el codigo con wget+tar; la imagen de kaniko no trae git 2026-07-28 14:55:33 +02:00
.meteor fix(meteor): pin session@1.2.2, 1.2.3 needs a newer Meteor core 2026-08-01 17:37:19 +02:00
bin Added more industries 2018-02-27 16:50:26 +01:00
client WIP(meteor3): server BOOTS on 3.1 + Mongo 7; restivus async-patched 2026-07-14 06:11:00 +02:00
cucumber Added optional chimp configuration 2018-11-18 18:01:17 +01:00
designs Greater icon 2018-06-12 06:08:11 +02:00
docker fase 3: stack docker-compose local del sistema modernizado 2026-07-15 01:01:07 +02:00
imports refactor(subsUnion): extract the logic out of Meteor.startup, cap the union size 2026-08-01 18:02:04 +02:00
packages meteor3: purge dead client packages — web UI renders on 3.1 2026-07-14 11:32:19 +02:00
private fix(subsUnion): resolve turf deps by absolute path, not bare specifier 2026-07-30 08:48:50 +02:00
public quality: web debt batch (tests runner, FireContainer, rate-limit, maps, i18n) 2026-07-21 22:59:06 +02:00
scripts staging: neutralizar credenciales OAuth vivas, nombres reales y tokens de sesion 2026-07-28 00:35:11 +02:00
secrets staging: conecta el importador NASA reimplementado al stack 2026-07-28 07:49:05 +02:00
server WIP(meteor3): server BOOTS on 3.1 + Mongo 7; restivus async-patched 2026-07-14 06:11:00 +02:00
smoke WIP: Meteor 2.5 -> 3.1 migration (package resolution done; build blocked) 2026-07-13 23:25:29 +02:00
test/server quality: web debt batch (tests runner, FireContainer, rate-limit, maps, i18n) 2026-07-21 22:59:06 +02:00
.dockerignore fase 3: stack docker-compose local del sistema modernizado 2026-07-15 01:01:07 +02:00
.gitignore fase 3: stack docker-compose local del sistema modernizado 2026-07-15 01:01:07 +02:00
.meteorignore staging: artefactos de despliegue dockerizado + neutralizacion de datos 2026-07-23 10:46:09 +02:00
.npmrc fase 3: stack docker-compose local del sistema modernizado 2026-07-15 01:01:07 +02:00
API.md API doc 2018-04-12 10:53:43 +02:00
COPYRIGHT.md More doc, licenses, etc 2018-01-30 07:42:50 +01:00
docker-compose.staging.yml staging: seguir la etiqueta de rama que publica el CI (meteor3-wip) 2026-07-28 15:12:01 +02:00
docker-compose.yml fase 3: stack docker-compose local del sistema modernizado 2026-07-15 01:01:07 +02:00
Dockerfile fase 3: stack docker-compose local del sistema modernizado 2026-07-15 01:01:07 +02:00
fonts.json Trying to fix fonts issue 'Failed to decode downloaded' because of wrong path 2018-02-19 16:31:05 +01:00
History.md Add attribution to issues in v.NEXT 2017-11-03 15:50:31 -05:00
LICENSE.md More doc, licenses, etc 2018-01-30 07:42:50 +01:00
package-lock.json fix(subsUnion): stop blocking DDP on subscription union recompute 2026-07-30 06:36:37 +02:00
package.json fix(subsUnion): stop blocking DDP on subscription union recompute 2026-07-30 06:36:37 +02:00
PENDIENTE.md bootstrap: swap BS4 (alexwine) CSS for bootstrap@5 npm 2026-07-22 05:55:34 +02:00
README.md Improved chimp command in README 2018-11-18 18:01:38 +01:00
RUNBOOK.md fase 3: stack docker-compose local del sistema modernizado 2026-07-15 01:01:07 +02:00
settings-development-sample.json Mobile notifications 2018-08-02 12:42:19 +02:00
UPGRADE.md deps: react-leaflet 1.8 -> 4.2 (+ leaflet 1.9) — the last legacy react-* lib 2026-07-21 18:45:15 +02:00

Tod@s contra el Fuego (All Against Fire)

Build Status

This is web service that notifies about fires detected in an area of your interest. It helps the early detection of fires and facilitates local mobilization, while the professional extinction services arrive.

Install

Prerrequisites: a running meteor (we share the fuegos database with the telegram bot).

Install meteor and run meteor npm install and npm start

Some other development deps (in debian & ubuntu):

apt-get install libcairo2-dev libjpeg-dev libgif-dev pkg-config

GeoIP

Configure mirror and cron of the geoip database.

Telegram bot

See our bot.

More platforms and services in the future...

Tests

We do tests via:

TEST_PORT=3000 TEST_WATCH=1 TEST_CLIENT=0 MONGO_URL=mongodb://localhost:27017/fuegostest  meteor --settings settings-development.json test --driver-package meteortesting:mocha --port 3010

# and

node_modules/.bin/chimp --watch --ddp=http://localhost:3000 --path=cucumber

# and

node_modules/.bin/chimp --ddp=http://localhost:3000 --path=cucumber

FAQ & Troubleshooting

Q - I get something like (...) /node_modules/fibers/future.js:280 (...) Error: Could not locate the bindings file. What can I do? A - Try meteor npm rebuild

Data source acknowledgements

We acknowledge the use of data and imagery from LANCE FIRMS operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.

License

GNU APLv3. See our LICENSE, for a complete text.

Thanks & other acknowlegments

Thanks indeed to:

  • Lupe Bao Reixa for Galician translation