Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
2563395
v6
kkartunov Nov 14, 2025
93be714
zayo init
Ravi80335 Jan 7, 2026
1bc6e56
Agents working
Ravi80335 Jan 7, 2026
70d4a5e
Merge remote-tracking branch 'origin/dev' into feat/zayo-mcp-server
Ravi80335 Jan 7, 2026
3d17937
Refactored
Ravi80335 Jan 8, 2026
944e402
UI components implemented for zayo tool results, Supervisor agent bug…
Ravi80335 Jan 8, 2026
f5a77ee
bug fixes
Ravi80335 Jan 12, 2026
a0fab08
polishes
Ravi80335 Jan 12, 2026
84fa0a8
docer config
Ravi80335 Jan 12, 2026
9818386
zayo result parse
Ravi80335 Jan 12, 2026
1c36a86
challenges table render fix
Ravi80335 Jan 12, 2026
4473796
Document DB connection
Ravi80335 Jan 14, 2026
9fd5bfd
aws rds cert added
Ravi80335 Jan 14, 2026
d831bf6
build error
Ravi80335 Jan 14, 2026
98318b5
env boolean transform
Ravi80335 Jan 15, 2026
ae2b300
Refactored, better handling of env booleans in config
Ravi80335 Jan 15, 2026
c7783ee
Zayo token retry, MongoDB Atlas connection fix..
Ravi80335 Jan 15, 2026
9a2d517
tool result miss
Ravi80335 Jan 15, 2026
69766fb
polish
Ravi80335 Jan 15, 2026
6086d49
session id miss in retry fix
Ravi80335 Jan 15, 2026
9c6d94a
SupervisorAgent refined
Ravi80335 Jan 15, 2026
8cf62a9
UI polishes
Ravi80335 Jan 20, 2026
49d7065
Sending Agent name to frontend
Ravi80335 Jan 20, 2026
b6b3f75
zayo quote creation
Ravi80335 Jan 20, 2026
24f40c6
frontend VITE env variables replaced with config
Ravi80335 Jan 21, 2026
29acb35
Infra-related updates
dhruvit-r Jan 21, 2026
35e4fb5
Merge branch 'dev' of gitlab.com:topcoder-consulting/zayo/mcpaas-ms-t…
dhruvit-r Jan 21, 2026
9100eca
logging zayo config
Ravi80335 Jan 22, 2026
50bf4a6
preprod agent url
Ravi80335 Jan 22, 2026
d4018de
Config added to env variables
Ravi80335 Jan 22, 2026
fc8ed6a
env configured, cleanup
Ravi80335 Jan 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 32 additions & 10 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
TOPCODER_API_BASE_URL="https://api.topcoder.com/v5"
TOPCODER_API_BASE_URL="https://api.topcoder.com"
AUTH0_M2M_TOKEN_URL="https://auth0proxy.topcoder-dev.com/token" # "https://topcoder-dev.auth0.com/oauth/token"
AUTH0_M2M_AUDIENCE="https://m2m.topcoder-dev.com/"
AUTH0_CLIENT_ID=""
Expand All @@ -16,17 +16,39 @@ AWS_SECRET_ACCESS_KEY=""
AWS_BEDROCK_REGION="us-east-1"
AWS_BEDROCK_MODEL_ID="anthropic.claude-3-5-sonnet-20240620-v1:0";

# Using for Agent Conversations history
MONGO_DB_URL="mongodb://localhost:27017/teams-ai-agent"
MONGO_IS_DOCUMENTDB=true
MONGO_IN_SSH_TUNNEL=true # Set to true if using SSH tunnel for Document DB

#*** AWS Document DB examples ***#
# Localhost Development - Access Document DB via SSH tunnel, Setup SSH tunnel externally with EC2 bastion
MONGO_DB_URL="mongodb://<insertYourUsername>:<insertYourPassword>@localhost:27017/teams-ai-agent"
# Production - Document DB is accesable only within VPC with its connection string,
# So, this Nest application also needs to host under same AWS VPC
MONGO_DB_URL="mongodb://<insertYourUsername>:<insertYourPassword>@docdb-2026-01-14-13-16-16.cluster-czey2emmgwcf.us-east-1.docdb.amazonaws.com:27017/teams-ai-agent?replicaSet=rs0&readPreference=secondaryPreferred"

# *** *********************************** *** #
# *** Frontend /teamsTab VITE Environment *** #
# Backend api url for frontend
VITE_API_BASE_URL="https://api.topcoder.com/v6/mcp/agent"
# Zayo
ZAYO_MCP_MGMT_URL="http://localhost:8011"
ZAYO_MCP_CLIENT_ID="03850b4a-0dfe-4db2-bbb0-7c045d2c6632"
ZAYO_MCP_CLIENT_SECRET="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.IjAzODUwYjRhLTBkZmUtNGRiMi1iYmIwLTdjMDQ1ZDJjNjYzMiI.Fhlpf78qRRZ3QFgE6hgP16gHKrztrrHzWxT2yYPX1M0"
ZAYO_MCP_ENABLED=true
ZAYO_MCP_SERVER_URL="http://localhost:8012"

# For local development in web browser, use this variable to bypass MS Teams related code like authentication, theme etc.
VITE_IS_NOT_TEAMS_TAB=true

# Use this variable to bypass Azure AD SSO and use a mock token.
# NOTE: In production, use Azure AD to authenticate requests.
VITE_MOCK_VALIDATE_TOKEN=true
#** Frontend ENV variables **
# VITE_ word is framework requirement, not a naming choice.
# The base URL for the Backend MCP Agent API.
# For local development, this typically points to this local NestJS instance.
# Ensure this URL matches your backend's listening address and context path.
VITE_AGENT_API_URL="http://localhost:3000/v6/mcp/agent"

# Determines if the application should bypass Microsoft Teams integration.
# - `true`: Enables Teams integration. The app expects to run within the Microsoft Teams client.
# - `false`: Enables standalone mode for development in a standard web browser. Skips Teams SDK initialization, authentication, and theming.
VITE_IS_TEAMS_TAB=false

# Controls authentication token validation behavior.
# - `true`: Uses a mock UUID token, bypassing Azure AD SSO. Ideal for local development or testing without a MS Teams identity.
# - `false`: Performs real Azure AD SSO validation using tokens acquired from the MS Teams client.
VITE_MOCK_AZURE_AD_TOKEN=true
15 changes: 11 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,23 @@

FROM node:22.13.1-alpine

RUN apk add --no-cache bash
RUN apk add --no-cache bash curl
RUN apk update

# Declare ARGs to receive the variables from build command.
ARG VITE_API_BASE_URL
# Download AWS DocumentDB CA certificate for TLS connections
RUN curl -o /tmp/global-bundle.pem https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem

ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
# Declare ARGs to receive the variables from build command.
# Auto assigns from environment variables configured at CI/CD
ARG VITE_AGENT_API_URL
ARG VITE_IS_TEAMS_TAB
ARG VITE_MOCK_AZURE_AD_TOKEN

WORKDIR /app
COPY . .

# Move DocumentDB CA certificate to /app
RUN mv /tmp/global-bundle.pem /app/global-bundle.pem
RUN npm install pnpm -g
RUN pnpm install
RUN pnpm run build:frontend
Expand Down
15 changes: 5 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ Frontend will run at `http://localhost:5173/teamsTab`.

---

### Step 4: Expose Local Servers for Teams
### Step 4: Expose Local Servers for MS Teams

To test inside Teams, both servers must be public. It's best to get static url from ngrok for frontend, So we can setup Azure AD, MS Teams app with this static url once, and also prefer to take static url for backend too.

Expand All @@ -98,8 +98,7 @@ You’ll get two public URLs:

> **Note:**
> * ngrok frontend url should be added to `teamsTab\vite.config.ts` allowed hosts for development environment.
> * ngrok backend url should be added to `.env` for `VITE_API_BASE_URL` development
- Example: `VITE_API_BASE_URL=https://<backend-id>.ngrok-free.app/v6/mcp/agent`
> * ngrok backend url should be configured in `teamsTab/src/config/local.ts` (or `dev.ts` if using dev mode) as `apiBaseUrl`.

---

Expand Down Expand Up @@ -153,16 +152,12 @@ docker run -d -p 3000:3000 teams-ai-agent
```

> **Note:**
> * Configure environment variables **directly in your hosting platform’s dashboard**, such as **Railway**, **AWS ECS / Lightsail**, or **Render** — no `.env` file needed.
> * Most CI/CD platforms automatically include environment variables for required build arguments when running the Docker build.
> * Configure environment variables **directly in your hosting platform’s dashboard**, such as **Railway**, **AWS ECS / Lightsail**, or **Render** for the Backend.
> * Frontend configuration is now handled via `teamsTab/src/config/*.ts` files which are bundled at build time. Ensure you build with the correct mode (e.g., `npm run build:prod`).
>
> - For example, the build command would be like:
> `docker build --build-arg VITE_API_BASE_URL="https://api.topcoder.com/v6/mcp/agent" -t teams-ai-agent .`
>
> *
> **💡 Note:**
> * Local docker build will use root .env since it is not added to `.dockerignore`,
> * So no need to pass VITE_API_BASE_URL as Arg at `docker build -t teams-ai-agent .`
> * Local docker build will use root .env since it is not added to `.dockerignore`

---

Expand Down
Loading