import '../../api/Documents/methods'; import '../../api/Documents/server/publications'; import '../../api/OAuth/server/methods'; import '../../api/Users/server/methods'; import '../../api/Users/server/publications'; import '../../api/Utility/server/methods'; import '../../api/ActiveFires/server/publications'; import '../../api/ActiveFiresUnion/server/publications'; import '../../api/FireAlerts/server/publications'; import '../../api/Subscriptions/methods'; import '../../api/Subscriptions/server/publications'; import '../../api/Notifications/methods'; import '../../api/Notifications/server/publications'; import '../../api/Fires/methods'; import '../../api/Fires/server/publications'; import '../../api/SiteSettings/methods'; import '../../api/SiteSettings/server/publications'; import '../../api/FalsePositives/methods'; import '../../api/FalsePositives/server/publications'; import { rateLimitSubscriptions } from '../../modules/rate-limit'; // Rate-limit the abusable publications (the old TODO above). Single-fire // lookups and the comments feed are cheap but brute-forceable, so keep them // tight; the geo subs fire on every map pan/zoom, so give them more headroom. rateLimitSubscriptions({ subscriptions: [ 'fireFromHash', 'fireFromAlertId', 'fireFromActiveId', 'fireFromId', 'comments.forReference' ], limit: 5, timeRange: 1000 }); rateLimitSubscriptions({ subscriptions: [ 'activefiresmyloc', 'activefiresunionmyloc', 'fireAlerts', 'falsePositivesMyloc', 'industriesMyloc' ], limit: 10, timeRange: 1000 });