test production domain configuration
This commit is contained in:
parent
7284eed463
commit
a877d40892
2 changed files with 83 additions and 0 deletions
77
checks/rabbi-gerzi-domains.nix
Normal file
77
checks/rabbi-gerzi-domains.nix
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
}:
|
||||
|
||||
let
|
||||
frontendConfig = config.services.rabbi-gerzi.frontend;
|
||||
backendConfig = config.services.rabbi-gerzi.backend;
|
||||
frontendVirtualHost =
|
||||
config.services.nginx.virtualHosts.${frontendConfig.hostName};
|
||||
backendVirtualHost =
|
||||
config.services.nginx.virtualHosts.${backendConfig.hostName};
|
||||
redirectVirtualHost = lib.attrByPath [ "www.rabbigerzi.com" ] { }
|
||||
config.services.nginx.virtualHosts;
|
||||
|
||||
assertions = [
|
||||
{
|
||||
assertion = frontendConfig.hostName == "rabbigerzi.com";
|
||||
message = "Rabbi Gerzi frontend does not use the production domain";
|
||||
}
|
||||
{
|
||||
assertion = frontendConfig.apiBaseUrl == "https://api.rabbigerzi.com";
|
||||
message = "Rabbi Gerzi frontend does not use the production API";
|
||||
}
|
||||
{
|
||||
assertion = backendConfig.hostName == "api.rabbigerzi.com";
|
||||
message = "Rabbi Gerzi backend does not use the production API domain";
|
||||
}
|
||||
{
|
||||
assertion = backendConfig.corsAllowedOrigins == [
|
||||
"https://rabbigerzi.com"
|
||||
"https://rabbigerzi.yisroelbaum.com"
|
||||
];
|
||||
message = "Rabbi Gerzi CORS origins do not cover production and staging";
|
||||
}
|
||||
{
|
||||
assertion = builtins.elem "rabbigerzi.yisroelbaum.com"
|
||||
frontendVirtualHost.serverAliases;
|
||||
message = "Rabbi Gerzi frontend staging alias is missing";
|
||||
}
|
||||
{
|
||||
assertion = builtins.elem "rabbigerziapi.yisroelbaum.com"
|
||||
backendVirtualHost.serverAliases;
|
||||
message = "Rabbi Gerzi backend staging alias is missing";
|
||||
}
|
||||
{
|
||||
assertion = redirectVirtualHost.globalRedirect or null
|
||||
== "rabbigerzi.com";
|
||||
message = "Rabbi Gerzi www host does not redirect to the apex";
|
||||
}
|
||||
{
|
||||
assertion = redirectVirtualHost.forceSSL or false;
|
||||
message = "Rabbi Gerzi www redirect does not force HTTPS";
|
||||
}
|
||||
{
|
||||
assertion = redirectVirtualHost.enableACME or false;
|
||||
message = "Rabbi Gerzi www redirect does not enable ACME";
|
||||
}
|
||||
];
|
||||
|
||||
failedAssertions = lib.filter (assertion: !assertion.assertion) assertions;
|
||||
in
|
||||
pkgs.runCommand "rabbi-gerzi-production-domains"
|
||||
{
|
||||
failures = lib.concatMapStringsSep "\n"
|
||||
(assertion: assertion.message) failedAssertions;
|
||||
preferLocalBuild = true;
|
||||
}
|
||||
''
|
||||
if [ -n "$failures" ]; then
|
||||
printf '%s\n' "$failures" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
touch $out
|
||||
''
|
||||
Loading…
Add table
Add a link
Reference in a new issue