File

mod_http_health/mod_http_health.lua @ 5690:9bcd257dea4e

mod_http_health: Provide a health check HTTP endpoint Someone in the chat asked about a health check endpoint, which reminded me of mod_http_status, which was simplified to produce this module.
author Kim Alvefur <zash@zash.se>
date Fri, 06 Oct 2023 16:49:57 +0200
parent 5161:mod_http_status/mod_http_status.lua@6af2d74daa15
child 5712:09233b625cb9
line wrap: on
line source

module:set_global();


local modulemanager = require "core.modulemanager";

module:provides("http", {
	route = {
		GET = function()
			for host in pairs(prosody.hosts) do
				local mods = modulemanager.get_modules(host);
				for _, mod in pairs(mods) do
					if mod.module.status_type == "error" then
						return { status_code = 500; headers = { content_type = "text/plain" }; body = "HAS ERRORS\n" };
					end
				end
			end

			return { status_code = 200; headers = { content_type = "text/plain" }; body = "OK\n" };
		end;
	};
});