feat(server): add spawn feature startup initialization

- Import and call load_projects_cache() to populate cache before requests
- Import and call generate_auth_token() to create one-time auth token
- Import and call start_projects_watcher() for background cache refresh
- Inject auth token into dashboard HTML via placeholder replacement
- Add AMC_AUTH_TOKEN placeholder in index.html head
This commit is contained in:
teernisse
2026-02-26 17:03:14 -05:00
parent 58f0befe72
commit 9695e9b08a
2 changed files with 9 additions and 1 deletions

View File

@@ -1,15 +1,22 @@
import os import os
from http.server import ThreadingHTTPServer from http.server import ThreadingHTTPServer
from amc_server.context import DATA_DIR, PORT from amc_server.context import DATA_DIR, PORT, generate_auth_token, start_projects_watcher
from amc_server.handler import AMCHandler from amc_server.handler import AMCHandler
from amc_server.logging_utils import LOGGER, configure_logging, install_signal_handlers from amc_server.logging_utils import LOGGER, configure_logging, install_signal_handlers
from amc_server.mixins.spawn import load_projects_cache
def main(): def main():
configure_logging() configure_logging()
DATA_DIR.mkdir(parents=True, exist_ok=True) DATA_DIR.mkdir(parents=True, exist_ok=True)
LOGGER.info("Starting AMC server") LOGGER.info("Starting AMC server")
# Initialize spawn feature
load_projects_cache()
generate_auth_token()
start_projects_watcher()
server = ThreadingHTTPServer(("127.0.0.1", PORT), AMCHandler) server = ThreadingHTTPServer(("127.0.0.1", PORT), AMCHandler)
install_signal_handlers(server) install_signal_handlers(server)
LOGGER.info("AMC server listening on http://127.0.0.1:%s", PORT) LOGGER.info("AMC server listening on http://127.0.0.1:%s", PORT)

View File

@@ -99,6 +99,7 @@
</script> </script>
<link rel="stylesheet" href="styles.css"> <link rel="stylesheet" href="styles.css">
<!-- AMC_AUTH_TOKEN -->
</head> </head>
<body class="min-h-screen text-fg antialiased"> <body class="min-h-screen text-fg antialiased">
<div id="app"></div> <div id="app"></div>