Compress across the board.

It's still subject to the compression module's filters, but now
we try to compress every response in principle.
This commit is contained in:
D. Berge
2025-08-11 13:57:11 +02:00
parent 6651868ea7
commit 02477b071b

View File

@@ -104,6 +104,9 @@ app.use(mw.auth.access.user);
// Don't process the request if the data hasn't changed // Don't process the request if the data hasn't changed
app.use(mw.etag.ifNoneMatch); app.use(mw.etag.ifNoneMatch);
// Use compression across the board
app.use(mw.compress);
// We must be authenticated before we can access these // We must be authenticated before we can access these
app.map({ app.map({
'/project': { '/project': {
@@ -169,10 +172,10 @@ app.map({
*/ */
'/project/:project/sequence/': { '/project/:project/sequence/': {
get: [ mw.auth.access.read, mw.compress, mw.sequence.list ], get: [ mw.auth.access.read, mw.sequence.list ],
}, },
'/project/:project/sequence/:sequence': { '/project/:project/sequence/:sequence': {
get: [ mw.auth.access.read, mw.compress, mw.sequence.get ], get: [ mw.auth.access.read, mw.sequence.get ],
patch: [ mw.auth.access.write, mw.sequence.patch ], patch: [ mw.auth.access.write, mw.sequence.patch ],
'/:point': { '/:point': {
get: [ mw.auth.access.read, mw.sequence.point.get ] get: [ mw.auth.access.read, mw.sequence.point.get ]
@@ -213,7 +216,7 @@ app.map({
*/ */
'/project/:project/event/': { '/project/:project/event/': {
get: [ mw.auth.access.read, mw.compress, mw.event.list ], get: [ mw.auth.access.read, mw.event.list ],
post: [ mw.auth.access.write, mw.event.post ], post: [ mw.auth.access.write, mw.event.post ],
put: [ mw.auth.access.write, mw.event.put ], put: [ mw.auth.access.write, mw.event.put ],
delete: [ mw.auth.access.write, mw.event.delete ], delete: [ mw.auth.access.write, mw.event.delete ],
@@ -222,7 +225,7 @@ app.map({
}, },
// TODO Rename -/:sequence → sequence/:sequence // TODO Rename -/:sequence → sequence/:sequence
'-/:sequence/': { // NOTE: We need to avoid conflict with the next endpoint ☹ '-/:sequence/': { // NOTE: We need to avoid conflict with the next endpoint ☹
get: [ mw.auth.access.read, mw.compress, mw.event.sequence.get ], get: [ mw.auth.access.read, mw.event.sequence.get ],
}, },
':id/': { ':id/': {
get: [ mw.auth.access.read, mw.event.get ], get: [ mw.auth.access.read, mw.event.get ],
@@ -301,23 +304,22 @@ app.map({
// // delete: [ mw.permissions.delete ] // // delete: [ mw.permissions.delete ]
// }, // },
'/project/:project/files/:path(*)': { '/project/:project/files/:path(*)': {
get: [ mw.compress, mw.files.get ] get: [ mw.files.get ]
}, },
'/files/?:path(*)': { '/files/?:path(*)': {
get: [ mw.etag.noSave, mw.compress, mw.files.get ] get: [ mw.etag.noSave, mw.files.get ]
}, },
'/navdata/': { // TODO These endpoints should probably need read access auth '/navdata/': { // TODO These endpoints should probably need read access auth
get: [ mw.etag.noSave, mw.compress, mw.navdata.get ], get: [ mw.etag.noSave, mw.navdata.get ],
'gis/:featuretype(line|point)': { 'gis/:featuretype(line|point)': {
get: [ mw.etag.noSave, mw.compress, mw.gis.navdata.get ] get: [ mw.etag.noSave, mw.gis.navdata.get ]
} }
}, },
'/vessel/track': { '/vessel/track': {
get: [ /*mw.etag.noSave,*/ mw.compress, mw.vessel.track.get ], // JSON array get: [ /*mw.etag.noSave,*/ mw.vessel.track.get ], // JSON array
'/line': { '/line': {
get: [ // GeoJSON Feature: type = LineString get: [ // GeoJSON Feature: type = LineString
//mw.etag.noSave, //mw.etag.noSave,
mw.compress,
(req, res, next) => { req.query.geojson = 'LineString'; next(); }, (req, res, next) => { req.query.geojson = 'LineString'; next(); },
mw.vessel.track.get mw.vessel.track.get
] ]
@@ -325,7 +327,6 @@ app.map({
'/point': { '/point': {
get: [ // GeoJSON FeatureCollection: feature types = Point get: [ // GeoJSON FeatureCollection: feature types = Point
//mw.etag.noSave, //mw.etag.noSave,
mw.compress,
(req, res, next) => { req.query.geojson = 'Point'; next(); }, (req, res, next) => { req.query.geojson = 'Point'; next(); },
mw.vessel.track.get mw.vessel.track.get
] ]
@@ -333,7 +334,6 @@ app.map({
'/points': { '/points': {
get: [ // JSON array of (Feature: type = Point) get: [ // JSON array of (Feature: type = Point)
mw.etag.noSave, mw.etag.noSave,
mw.compress,
(req, res, next) => { req.query.geojson = true; next(); }, (req, res, next) => { req.query.geojson = true; next(); },
mw.vessel.track.get mw.vessel.track.get
], ],