diff --git a/inventoryWebBridge.lua b/inventoryWebBridge.lua index db7045e..2fc8aad 100644 --- a/inventoryWebBridge.lua +++ b/inventoryWebBridge.lua @@ -33,6 +33,7 @@ local function loadConfig() if cfg.serverUrl then SERVER_URL = cfg.serverUrl end if cfg.pollInterval then POLL_INTERVAL = cfg.pollInterval end if cfg.stateInterval then STATE_INTERVAL = cfg.stateInterval end + if cfg.apiKey then API_KEY = cfg.apiKey end print("[CONFIG] Loaded from " .. CONFIG_FILE) end end @@ -46,6 +47,7 @@ local latestState = nil -- last broadcast from master local modem = nil local modemName = nil local running = true +local API_KEY = nil -- optional API key for server auth ------------------------------------------------- -- Find modem @@ -71,6 +73,7 @@ local function httpPost(path, body) local url = SERVER_URL .. path local data = textutils.serialiseJSON(body) local headers = { ["Content-Type"] = "application/json" } + if API_KEY then headers["Authorization"] = "Bearer " .. API_KEY end local ok, err = pcall(function() local response = http.post(url, data, headers) @@ -89,8 +92,10 @@ end local function httpGet(path) local url = SERVER_URL .. path + local headers = nil + if API_KEY then headers = { ["Authorization"] = "Bearer " .. API_KEY } end local ok, result = pcall(function() - local response = http.get(url) + local response = http.get(url, headers) if response then local data = response.readAll() response.close() @@ -274,6 +279,11 @@ local function main() print("[OK] Server URL: " .. SERVER_URL) print("[OK] Poll interval: " .. POLL_INTERVAL .. "s") print("[OK] State interval: " .. STATE_INTERVAL .. "s") + if API_KEY then + print("[OK] API key configured") + else + print("[WARN] No API key set (open access)") + end print("") print("Bridge is running. Press Ctrl+T to stop.") print("Listening for master broadcasts on ch " .. BROADCAST_CHANNEL)