nixos/dependency-track: fix nginx config for frontend (#393041)

xanderio 71ae33ed c6c0dd59

Changed files
+39 -16
nixos
modules
services
tests
+20 -2
nixos/modules/services/web-apps/dependency-track.nix
···
upstreams.dependency-track.servers."localhost:${toString cfg.port}" = { };
virtualHosts.${cfg.nginx.domain} = {
locations = {
-
"/".alias = "${cfg.package.frontend}/dist/";
"/api".proxyPass = "http://dependency-track";
-
"= /static/config.json".alias = frontendConfigFile;
};
};
};
···
upstreams.dependency-track.servers."localhost:${toString cfg.port}" = { };
virtualHosts.${cfg.nginx.domain} = {
locations = {
+
"/" = {
+
alias = "${cfg.package.frontend}/dist/";
+
index = "index.html";
+
tryFiles = "$uri $uri/ /index.html";
+
extraConfig = ''
+
location ~ (index\.html)$ {
+
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
+
add_header Pragma "no-cache";
+
add_header Expires 0;
+
}
+
'';
+
};
"/api".proxyPass = "http://dependency-track";
+
"= /static/config.json" = {
+
alias = frontendConfigFile;
+
extraConfig = ''
+
add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate";
+
add_header Pragma "no-cache";
+
add_header Expires 0;
+
'';
+
};
};
};
};
+19 -14
nixos/tests/dependency-track.nix
···
};
};
-
testScript = ''
-
import json
-
start_all()
-
server.wait_for_unit("dependency-track.service")
-
server.wait_until_succeeds(
-
"journalctl -o cat -u dependency-track.service | grep 'Dependency-Track is ready'"
-
)
-
server.wait_for_open_port(${toString dependencyTrackPort})
-
with subtest("version api returns correct version"):
-
version = json.loads(
-
server.succeed("curl http://localhost/api/version")
-
)
-
assert version["version"] == "${pkgs.dependency-track.version}"
-
'';
}
)
···
};
};
+
testScript =
+
# python
+
''
+
import json
+
+
start_all()
+
server.wait_for_unit("dependency-track.service")
+
server.wait_until_succeeds(
+
"journalctl -o cat -u dependency-track.service | grep 'Dependency-Track is ready'"
+
)
+
server.wait_for_open_port(${toString dependencyTrackPort})
+
with subtest("version api returns correct version"):
+
version = json.loads(
+
server.succeed("curl http://localhost/api/version")
+
)
+
assert version["version"] == "${pkgs.dependency-track.version}"
+
with subtest("nginx serves frontend"):
+
server.succeed("curl http://localhost/ | grep \"<title>Dependency-Track</title>\"")
+
'';
}
)