Remove "immutable" from long-term responses

We had a bug recently which sent out some bad "immutable" responses. We
need to have a better process around cutting releases before we can be
sure it doesn't happen again.
This commit is contained in:
Michael Jackson 2019-01-06 21:10:18 -08:00
parent e4d6df255e
commit d6fde9fb33
6 changed files with 23 additions and 21 deletions

View File

@ -20,7 +20,7 @@ function serveHTMLModule(req, res) {
.set({
'Content-Length': Buffer.byteLength(code),
'Content-Type': getContentTypeHeader(req.entry.contentType),
'Cache-Control': 'public, max-age=31536000, immutable', // 1 year
'Cache-Control': 'public, max-age=31536000', // 1 year
ETag: etag(code),
'Cache-Tag': 'file, html-file, html-module'
})

View File

@ -14,7 +14,7 @@ function serveJavaScriptModule(req, res) {
.set({
'Content-Length': Buffer.byteLength(code),
'Content-Type': getContentTypeHeader(req.entry.contentType),
'Cache-Control': 'public, max-age=31536000, immutable', // 1 year
'Cache-Control': 'public, max-age=31536000', // 1 year
ETag: etag(code),
'Cache-Tag': 'file, js-file, js-module'
})

View File

@ -35,7 +35,7 @@ function serveMetadata(req, res) {
res
.set({
'Cache-Control': 'public, max-age=31536000, immutable', // 1 year
'Cache-Control': 'public, max-age=31536000', // 1 year
'Cache-Tag': 'meta'
})
.send(metadata);

View File

@ -15,7 +15,7 @@ function serveStaticFile(req, res) {
.set({
'Content-Length': req.entry.size,
'Content-Type': getContentTypeHeader(req.entry.contentType),
'Cache-Control': 'public, max-age=31536000, immutable', // 1 year
'Cache-Control': 'public, max-age=31536000', // 1 year
'Last-Modified': req.entry.lastModified,
ETag: etag(req.entry.content),
'Cache-Tag': tags.join(', ')

View File

@ -92,7 +92,7 @@ function filenameRedirect(req, res) {
// and URLs resolve correctly.
res
.set({
'Cache-Control': 'public, max-age=31536000, immutable', // 1 year
'Cache-Control': 'public, max-age=31536000', // 1 year
'Cache-Tag': 'redirect, filename-redirect'
})
.redirect(

View File

@ -12,7 +12,7 @@ function indexRedirect(req, res, entry) {
// resolve correctly.
res
.set({
'Cache-Control': 'public, max-age=31536000, immutable', // 1 year
'Cache-Control': 'public, max-age=31536000', // 1 year
'Cache-Tag': 'redirect, index-redirect'
})
.redirect(
@ -94,24 +94,26 @@ function searchEntries(tarballStream, entryName, wantsIndex) {
const chunks = [];
stream.on('data', chunk => chunks.push(chunk)).on('end', () => {
const content = Buffer.concat(chunks);
stream
.on('data', chunk => chunks.push(chunk))
.on('end', () => {
const content = Buffer.concat(chunks);
// Set some extra properties for files that we will
// need to serve them and for ?meta listings.
entry.contentType = getContentType(entry.name);
entry.integrity = getIntegrity(content);
entry.lastModified = header.mtime.toUTCString();
entry.size = content.length;
// Set some extra properties for files that we will
// need to serve them and for ?meta listings.
entry.contentType = getContentType(entry.name);
entry.integrity = getIntegrity(content);
entry.lastModified = header.mtime.toUTCString();
entry.size = content.length;
// Set the content only for the foundEntry and
// discard the buffer for all others.
if (entry === foundEntry) {
entry.content = content;
}
// Set the content only for the foundEntry and
// discard the buffer for all others.
if (entry === foundEntry) {
entry.content = content;
}
next();
});
next();
});
});
});
}