Lot 35 : routes de base de la façade aussi par le tunnel du relais

Les neuf routes que la façade sert toujours (ping, status, config, ligne
de commande du moteur, couches du modèle, chemins, RAM, VRAM, journal du
service) arrivent désormais à la façade par le tunnel du relais aussi :
withFacadeChat les lui remet dès qu'elle tourne (facade_core.go). Les
handlers du Go ne servent plus que sans façade (LOKI_FACADE=0).

Côté Rust, une requête relayée par le Go (jeton interne) n'est pas
réauthentifiée, comme pour les routes des lots.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
This commit is contained in:
Claude committed 2026-10-16 03:19:00 +00:00
1 parent ad52da18a9
commit c157da2141
8 files changed
+186 -9

No files matched your search

+14 -4
View File
@@ -136,11 +136,21 @@ pub fn handles(_method: &Method, path: &str) -> bool {
)
}
pub async fn serve(ctx: &Ctx, req: Request<Incoming>) -> Response<Body> {
/// `from_go` : relayée par le Go (tunnel du relais), qui l'a déjà
/// authentifiée.
pub async fn serve(ctx: &Ctx, req: Request<Incoming>, from_go: bool) -> Response<Body> {
let (parts, _body) = req.into_parts();
let version = match ctx.guard(&parts.headers).await {
Ok(v) => v,
Err(refus) => return *refus,
let version = if from_go {
ctx.internal
.auth()
.await
.map(|i| i.version)
.unwrap_or_default()
} else {
match ctx.guard(&parts.headers).await {
Ok(v) => v,
Err(refus) => return *refus,
}
};
match parts.uri.path() {
// Vérifie la connectivité ET la clé (200 = bonne clé, 401 = mauvaise).
+1 -1
View File
@@ -266,7 +266,7 @@ impl Proxy {
return oai::serve(&self.ctx, &self.engine, req).await;
}
if api::handles(req.method(), path) {
return api::serve(&self.ctx, req).await;
return api::serve(&self.ctx, req, from_go).await;
}
if let Some(chat) = &self.ctx.chat
&& crate::chatx::handles(path)