Compare commits

...

12 Commits

Author SHA1 Message Date
63eff5bde0 Merge pull request 'Add Auth v2' (#12) from merge-conflicts-resolved into main
Reviewed-on: #12
2026-02-25 17:00:53 +00:00
Anibal Angulo
0bad44d7ab Resolve merge conflict: keep remote Cloud Run MCP URL 2026-02-25 17:00:15 +00:00
84fb29ccf1 docs: Add instructions for run compaction tests 2026-02-25 16:56:31 +00:00
be847a38ab test: refactor test 2026-02-25 16:56:31 +00:00
5933d6a398 feat: refactor compaction module 2026-02-25 16:56:31 +00:00
914a23a97e Merge branch 'ft-mvp' into 'dev'
Add Auth

See merge request desarrollo/evoluci-n-tecnol-gica/ap01194-orq-cog/orchestrator!2
2026-02-25 15:12:57 +00:00
Anibal Angulo
b3f4ddd1a8 Testing prompt 2026-02-25 15:01:06 +00:00
PAVEL PALMA
c7d9f25fa7 UPDATE 2026-02-25 02:20:32 -06:00
PAVEL PALMA
5c78887ba3 fix 2026-02-25 02:18:25 -06:00
PAVEL PALMA
3d526b903f Fix dockerfile 2026-02-25 02:14:40 -06:00
PAVEL PALMA
1eae63394b UPDATE autenticación rag connector 2026-02-25 02:01:04 -06:00
PAVEL PALMA
9c4d9f73a1 UPDATE endpoint RAG Connector 2026-02-25 01:20:25 -06:00
5 changed files with 38 additions and 2 deletions

View File

@@ -11,10 +11,12 @@ WORKDIR /app
# Install dependencies first (cached layer as long as lockfile doesn't change)
COPY pyproject.toml uv.lock ./
RUN uv lock --upgrade
RUN uv sync --locked --no-install-project --no-editable
# Copy the rest of the project and install it
COPY . .
RUN uv lock
RUN uv sync --locked --no-editable
# --- Final stage: no uv, no build artifacts ---
@@ -23,6 +25,7 @@ FROM quay.ocp.banorte.com/golden/python-312:latest
WORKDIR /app
COPY --from=builder /app/.venv /app/.venv
COPY --from=builder /app /app
COPY config.yaml ./
ENV PATH="/app/.venv/bin:$PATH"

View File

@@ -2,7 +2,10 @@ google_cloud_project: bnt-orquestador-cognitivo-dev
google_cloud_location: us-central1
firestore_db: bnt-orquestador-cognitivo-firestore-bdo-dev
mcp_remote_url: http://localhost:8001/sse
mcp_remote_url: "https://ap01194-orq-cog-rag-connector-1007577023101.us-central1.run.app/sse"
# audience sin la ruta, para emitir el ID Token:
mcp_audience: "https://ap01194-orq-cog-rag-connector-1007577023101.us-central1.run.app"
agent_name: VAia
agent_model: gemini-2.5-flash

View File

@@ -12,6 +12,7 @@ dependencies = [
"google-adk>=1.14.1",
"google-cloud-firestore>=2.23.0",
"pydantic-settings[yaml]>=2.13.1",
"google-auth>=2.34.0",
]
[build-system]

View File

@@ -10,7 +10,33 @@ from google.cloud.firestore_v1.async_client import AsyncClient
from va_agent.config import settings
from va_agent.session import FirestoreSessionService
connection_params = SseConnectionParams(url=settings.mcp_remote_url)
# --- Autenticación Cloud Run → Cloud Run (ID Token) ---
from google.oauth2 import id_token
from google.auth.transport.requests import Request as GAuthRequest
def _fetch_id_token(audience: str) -> str:
"""Emite un ID Token para invocar un servicio Cloud Run protegido."""
return id_token.fetch_id_token(GAuthRequest(), audience)
# Audience = URL del MCP remoto
_MCP_URL = settings.mcp_remote_url
_MCP_AUDIENCE = getattr(settings, "mcp_audience", None) or _MCP_URL
def _auth_headers_provider() -> dict[str, str]:
token = _fetch_id_token(_MCP_AUDIENCE)
return {"Authorization": f"Bearer {token}"}
connection_params = SseConnectionParams(
url=_MCP_URL,
headers=_auth_headers_provider()
)
# connection_params = SseConnectionParams(url=settings.mcp_remote_url)
toolset = McpToolset(connection_params=connection_params)
agent = Agent(

View File

@@ -27,6 +27,9 @@ class AgentSettings(BaseSettings):
firestore_db: str
# MCP configuration
mcp_audience: str
# MCP configuration audience
mcp_remote_url: str
model_config = SettingsConfigDict(