diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index e8b9d4fa..b4aa4649 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -7,7 +7,6 @@ on:
branches:
- master
-
jobs:
build_and_test:
strategy:
@@ -21,7 +20,6 @@ jobs:
runs-on: ubuntu-latest
services:
-
postgres:
image: postgres
env:
@@ -80,7 +78,6 @@ jobs:
env:
DATABASE_URL: postgres://postgres:password@localhost:5432/postgres
-
- name: tests
uses: actions-rs/cargo@v1
timeout-minutes: 40
@@ -90,7 +87,6 @@ jobs:
env:
DATABASE_URL: postgres://postgres:password@localhost:5432/postgres
-
- name: Generate coverage file
if: matrix.version == 'stable' && (github.ref == 'refs/heads/master' || github.event_name == 'pull_request')
uses: actions-rs/tarpaulin@v0.1
@@ -102,8 +98,8 @@ jobs:
# GIT_HASH is dummy value. I guess build.rs is skipped in tarpaulin
# execution so this value is required for preventing meta tests from
# panicking
- GIT_HASH: 8e77345f1597e40c2e266cb4e6dee74888918a61
- OPEN_API_DOCS: 8e77345f1597e40c2e266cb4e6dee74888918a61
+ GIT_HASH: 8e77345f1597e40c2e266cb4e6dee74888918a61
+ OPEN_API_DOCS: 8e77345f1597e40c2e266cb4e6dee74888918a61
CACHE_BUSTER_FILE_MAP: '{"map":{"./static/bundle/main.js":"./prod/bundle/main.1417115E59909BE0A01040A45A398ADB09D928DF89CCF038FA44B14850442096.js"},"base_dir":"./prod"}'
- name: Upload to Codecov
@@ -120,8 +116,8 @@ jobs:
args: --no-deps --workspace --all-features
env:
DATABASE_URL: postgres://postgres:password@localhost:5432/postgres
- GIT_HASH: 8e77345f1597e40c2e266cb4e6dee74888918a61 # dummy value
- OPEN_API_DOCS: 8e77345f1597e40c2e266cb4e6dee74888918a61
+ GIT_HASH: 8e77345f1597e40c2e266cb4e6dee74888918a61 # dummy value
+ OPEN_API_DOCS: 8e77345f1597e40c2e266cb4e6dee74888918a61
- name: Deploy to GitHub Pages
if: matrix.version == 'stable' && (github.repository == 'mCaptcha/guard')
diff --git a/src/docs.rs b/src/docs.rs
index 3876ec96..c00b892d 100644
--- a/src/docs.rs
+++ b/src/docs.rs
@@ -14,13 +14,14 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+use std::borrow::Cow;
use actix_web::body::Body;
-use actix_web::{web, HttpResponse, Responder};
+use actix_web::{http::header, web, HttpResponse, Responder};
use mime_guess::from_path;
use rust_embed::RustEmbed;
-use std::borrow::Cow;
+use crate::CACHE_AGE;
pub const DOCS: routes::Docs = routes::Docs::new();
@@ -62,6 +63,9 @@ pub fn handle_embedded_file(path: &str) -> HttpResponse {
Cow::Owned(bytes) => bytes.into(),
};
HttpResponse::Ok()
+ .set(header::CacheControl(vec![header::CacheDirective::MaxAge(
+ CACHE_AGE,
+ )]))
.content_type(from_path(path).first_or_octet_stream().as_ref())
.body(body)
}
diff --git a/src/main.rs b/src/main.rs
index ef7e39db..0bcfe368 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -61,9 +61,10 @@ pub static VERSION: &str = env!("CARGO_PKG_VERSION");
pub static PKG_NAME: &str = env!("CARGO_PKG_NAME");
pub static PKG_DESCRIPTION: &str = env!("CARGO_PKG_DESCRIPTION");
pub static PKG_HOMEPAGE: &str = env!("CARGO_PKG_HOMEPAGE");
-
pub static VERIFICATION_PATH: &str = "mcaptchaVerificationChallenge.json";
+pub const CACHE_AGE: u32 = 365 * 24 * 3600;
+
#[cfg(not(tarpaulin_include))]
#[actix_web::main]
async fn main() -> std::io::Result<()> {
diff --git a/src/static_assets.rs b/src/static_assets.rs
index 9eff5782..2d197acb 100644
--- a/src/static_assets.rs
+++ b/src/static_assets.rs
@@ -14,14 +14,15 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+use std::borrow::Cow;
use actix_web::body::Body;
-use actix_web::{get, web, HttpResponse, Responder};
+use actix_web::{get, http::header, web, HttpResponse, Responder};
use cache_buster::Files;
use mime_guess::from_path;
use rust_embed::RustEmbed;
-use std::borrow::Cow;
+use crate::CACHE_AGE;
#[derive(RustEmbed)]
#[folder = "static/"]
@@ -34,7 +35,11 @@ pub fn handle_embedded_file(path: &str) -> HttpResponse {
Cow::Borrowed(bytes) => bytes.into(),
Cow::Owned(bytes) => bytes.into(),
};
+
HttpResponse::Ok()
+ .set(header::CacheControl(vec![header::CacheDirective::MaxAge(
+ CACHE_AGE,
+ )]))
.content_type(from_path(path).first_or_octet_stream().as_ref())
.body(body)
}
diff --git a/templates/panel/index.html b/templates/panel/index.html
index 79fed4f6..d1e90279 100644
--- a/templates/panel/index.html
+++ b/templates/panel/index.html
@@ -1,14 +1,10 @@
-<. include!("../components/headers.html"); .> <. include!("./header/index.html");
-.>
-
+<. include!("../components/headers.html"); .>
+<. include!("./header/index.html"); .>
- <. include!("./taskbar/index.html"); .> <.
- include!("./help-banner/index.html"); .>
-
+ <. include!("./taskbar/index.html"); .>
+ <. include!("./help-banner/index.html"); .>
-
-
<. include!("../components/footers.html"); .>