(chore) Decide whether the MCP gateway host allowlist should also drop the HTTPS requirement
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Start by reading validate_egress_url_format and exempt_hosts() in api/oss/src/core/gateways/egress.py, then compare the documented behavior corrected by PR #7024 and the related concerns in #6966. This issue needs a deliberate decision about whether the allowlist also bypasses the HTTPS requirement; it does not specify which behavior to implement. Done means that decision is made and the code and documentation agree.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Adding a hostname to AGENTA_MCP_GATEWAY_HOST_ALLOWLIST so the gateway can reach one internal MCP server also turns off the transport check for that host. A plain HTTP URL on an allowlisted host is accepted, both when the server is saved and when it is dialled. That behaviour is real, it is now what the self-host documentation says, and the question is whether it is what we want the allowlist to mean.
Steps to reproduce
- Set
AGENTA_MCP_GATEWAY_HOST_ALLOWLIST=mcp.internaland leaveAGENTA_GATEWAYS_INSECURE_EGRESS_ALLOWEDat its default. - Save an MCP server at
http://mcp.internal:8080. - It is accepted. So is
https://mcp.internal:8443. A URL on a host that is not on the list, such ashttps://10.0.0.5:8443, is still refused.
Where it comes from
Read on release/v0.119.1. validate_egress_url_format in api/oss/src/core/gateways/egress.py:372-375 looks the hostname up in exempt_hosts() first and returns before any scheme or literal-address check runs:
hostname = (urlparse(url).hostname or "").lower()
if hostname and hostname in exempt_hosts():
return
exempt_hosts() (egress.py:108) is the operator allowlist plus the development mock upstreams. So the allowlist is a full exemption from the guard, not a narrowing of it.
The documentation shipped with 0.119.1 said the opposite. PR #7024 corrects the page to describe what the code does: a host on the list is accepted whatever its scheme, at save time and at call time.
The decision
Two readings of what the allowlist means, and they lead to different code:
- The allowlist means "I take responsibility for this host, treat it as trusted." The current code is then correct, #7024 finishes the job, and nothing else is needed.
- The allowlist only relaxes the private-address rule, and plain HTTP still needs
AGENTA_GATEWAYS_INSECURE_HTTP_ALLOWED. The exemption should then run after the scheme check rather than before it.
Reading 2 keeps the two switches independent, which is easier to explain to an operator: one switch says where you may go, the other says over what transport. It also means an operator who allowlists one internal name does not silently accept a credential-bearing request over an unencrypted connection to it.
Reading 1 is the smaller change, and it is already written down.
This needs a deliberate answer rather than being left as it is, because the allowlist is the setting a self-hoster reaches for first when a server is unreachable, and it currently does more than its name suggests.
Related: #6966 covers other self-host gaps around the same flags, including a credential path with no transport check.
- Lenguaje dominante
- TypeScript
- Estrellas
- 4.8k
- Forks
- 690
- Merge medio
- 20 h 11 min
- PR fusionados (30 d)
- 448
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Agenta-AI/agenta
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Agenta-AI/agenta#7936 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[Bug] Jinja2 variables used only inside {% if %} / {% for %} are missing from input_keys, so invoke returns 400Posiblemente ocupada @mmabrouk la tomó hace 13 días. Abiertobug frontend
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Agenta-AI/agenta#7669 · 3 comentarios · 1 reacción · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Agenta-AI/agenta#7654 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Agenta-AI/agenta#7468 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
(bug) The Stop button disappears for a moment before an approval card showsQuizá libre de nuevo @rishu685 la tomó hace 24 días y no hay ningún pull request abierto. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Agenta-AI/agenta#7446 · 2 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
Todos los issues de Agenta-AI/agenta
Issues similares
-
triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
🎙️ task - drop the raw `./node_modules/.bin/rhachet roles boot` line from bhuild's feedback templateAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ehmpathy/rhachet-roles-bhuild#639 ·
Los mantenedores suelen responder en 1 día
-
e2e-failure ready-to-code
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
redhat-developer/rhdh-plugin-export-overlays#4650 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 13 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
omdsh-dev/DSH-better-sidebar#1098 ·
Los mantenedores suelen responder en 2 días