Skip to content
Open

test #399

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
ed4a50d
Create dev container config
tjsullivan1 Sep 25, 2025
fe30e96
added uv to devcontainer
tjsullivan1 Sep 25, 2025
5a0cadf
fixed dependency issues
tjsullivan1 Sep 25, 2025
16ba329
added uv config for mcp subfolder
tjsullivan1 Sep 25, 2025
b55e660
initialized UV for mcp subfolder
tjsullivan1 Sep 25, 2025
97f4a09
the MCP service listens locally to /mcp NOT /sse
tjsullivan1 Sep 25, 2025
71865d5
unv init in the applications subfolder
tjsullivan1 Sep 25, 2025
cdaced8
added instructions for how to set up the project with uv
tjsullivan1 Sep 25, 2025
f775e25
updated run_application to be more dynamic and to run the mcp service…
tjsullivan1 Sep 25, 2025
d3d40e4
fixed issue with Streamlit and uv where streamlit requires
tjsullivan1 Sep 25, 2025
8dc308c
reverted run_application.sh back to the original form and created new…
tjsullivan1 Sep 25, 2025
37cae48
put requirements back to how they were. My working version is in uv w…
tjsullivan1 Sep 25, 2025
943485e
Update scenario document link and remove extra lines
tjsullivan1 Sep 25, 2025
7b8eecc
Merge pull request #271 from tjsullivan1/tjs
nicoleserafino Sep 26, 2025
5449e79
Merge pull request #272 from tjsullivan1/main
nicoleserafino Sep 26, 2025
35a7796
Bump requests from 2.32.3 to 2.32.4 in /agentic_ai/applications
dependabot[bot] Sep 26, 2025
5a4fece
Update image path in setup documentation
nicoleserafino Sep 29, 2025
c2cf5f2
Merge pull request #276 from microsoft/nicoleserafino-patch-1
tjsullivan1 Sep 29, 2025
06b2776
Updating docs with sample curl commands for testing at each stage
tjsullivan1 Oct 3, 2025
8e51ef3
reverting MCP url
tjsullivan1 Oct 3, 2025
d3e7b24
initial revision with updated package, need to get all packages
tjsullivan1 Oct 3, 2025
d6e21e6
fixed the formatting of pyproject.toml
tjsullivan1 Oct 3, 2025
df7c62d
Merge pull request #273 from microsoft/dependabot/pip/agentic_ai/appl…
tjsullivan1 Oct 3, 2025
5a2418d
Merge pull request #291 from tjsullivan1/int-agentic
james-tn Oct 3, 2025
4d60c39
Fix link to MCP pip documentation
tjsullivan1 Oct 3, 2025
bf667ee
Update link formatting in README.md
tjsullivan1 Oct 3, 2025
b9b52e6
Fix link to MULTI_TENANT_MCP_SECURITY.md
tjsullivan1 Oct 3, 2025
139f73d
Marking link as broken
tjsullivan1 Oct 3, 2025
399fbdc
Merge branch 'microsoft:int-agentic' into int-agentic
tjsullivan1 Oct 3, 2025
8b57b31
Add documentation link check workflow
tjsullivan1 Oct 3, 2025
dc7637e
Update .lycheeignore to ignore local servers
tjsullivan1 Oct 3, 2025
74b16d4
Update link for Durable Agent Pattern documentation
tjsullivan1 Oct 3, 2025
2df1614
Update .lycheeignore to exclude multi-agent README
tjsullivan1 Oct 3, 2025
3cea78b
Update documentation-checks.yml to exclude MAGENTIC_README.md
tjsullivan1 Oct 3, 2025
652edd9
Update image path and scenario document link
tjsullivan1 Oct 3, 2025
ded7ff6
Update link for Data Generation section
tjsullivan1 Oct 3, 2025
b056f62
Merge pull request #293 from tjsullivan1/int-agentic
james-tn Oct 3, 2025
cb6033c
My updates for PR
Oct 4, 2025
c13a63c
Update reflection agent with clean emoji-free logging and improved We…
Oct 4, 2025
12a161e
Merge pull request #295 from microsoft/heena-dev2
james-tn Oct 5, 2025
d1d4d0f
Merge branch 'main' into int-agentic
james-tn Oct 7, 2025
12d694d
Merge pull request #296 from microsoft/int-agentic
nicoleserafino Oct 7, 2025
6630477
add workflow demo
Oct 8, 2025
d05c61d
Merge pull request #297 from microsoft/james-dev
james-tn Oct 8, 2025
8040108
fix dataclass bug
Oct 8, 2025
9848be9
order of execution
Oct 8, 2025
3211477
Merge pull request #298 from microsoft/james-dev
james-tn Oct 8, 2025
c1ef170
add documentation
Oct 8, 2025
97629c9
Merge pull request #299 from microsoft/james-dev
james-tn Oct 8, 2025
4ccfd3d
add documentation
Oct 8, 2025
00c2da5
Merge pull request #300 from microsoft/james-dev
james-tn Oct 8, 2025
034256e
update pyproject.toml
Oct 8, 2025
538c2d4
Merge pull request #301 from microsoft/james-dev
james-tn Oct 8, 2025
6537cce
Optimize UI
Oct 9, 2025
2d126d1
Merge pull request #303 from microsoft/james-dev
james-tn Oct 9, 2025
b5a2bc1
Merge pull request #302 from microsoft/int-agentic
nicoleserafino Oct 9, 2025
9b6851a
Handle parsing for reflection agent internal communication
Oct 10, 2025
3579cdb
Merge pull request #307 from microsoft/heena-dev2
james-tn Oct 13, 2025
74f78ac
Add comprehensive end-to-end system architecture documentation
Oct 13, 2025
0b1ec56
gergeeremote-tracking branch 'origin/int-agentic' into james-dev
Oct 13, 2025
4571510
update handoff pattern readme
Oct 15, 2025
5093bd9
Merge pull request #308 from microsoft/james-dev
james-tn Oct 15, 2025
6f48dfa
fixed error: when trying to save thread state to Cosmos DB, the syste…
cplemm Oct 21, 2025
949d91a
Add Azure OpenAI secrets to devcontainer.json
tjsullivan1 Oct 21, 2025
a555de5
Fix JSON formatting in devcontainer.json
tjsullivan1 Oct 21, 2025
a0aa1f6
Merge pull request #311 from cplemm/main
james-tn Oct 22, 2025
59886ae
Merge remote-tracking branch 'origin/main' into james-deg
Oct 22, 2025
8fe4daa
enhance documentation and improve prompts
nicoleserafino Oct 24, 2025
6bbb0ea
Fix MCP
ogkranthi Oct 30, 2025
ed26b2c
add cosmosdb as mcp database
Oct 30, 2025
ff7c6a1
Merge pull request #315 from microsoft/james-dev
james-tn Oct 30, 2025
3c3db3d
Merge pull request #314 from microsoft/ogkranthi-patch-1
james-tn Oct 30, 2025
483aad6
added CosmosDB as the vector & transaction database for MCP
nicoleserafino Oct 30, 2025
257a77f
Merge branch 'microsoft:main' into main
tjsullivan1 Nov 5, 2025
d7556e6
Feat: Creating an initial dockerfile and configuration for the FastAP…
tjsullivan1 Nov 13, 2025
3b8739e
Merge pull request #2 from tjsullivan1/feat/docker-backend
tjsullivan1 Nov 13, 2025
19f8492
Rename CI workflow to FastAPI Docker build
tjsullivan1 Nov 13, 2025
cf95802
Update PROJECT_SUBPATH in Docker workflow
tjsullivan1 Nov 13, 2025
3919961
Fix variable reference for PROJECT_SUBPATH in Docker build
tjsullivan1 Nov 13, 2025
af8823b
Refactor Docker build and push commands for prefix
tjsullivan1 Nov 13, 2025
94e9cb0
Feat: Creating an initial dockerfile and configuration for the FastAP…
tjsullivan1 Nov 13, 2025
8c586d6
Merge branch 'main' of https://github.com/tjsullivan1/OpenAIWorkshop
tjsullivan1 Nov 13, 2025
271bc29
Feat: MCP docker container
tjsullivan1 Nov 13, 2025
40a304d
Merge pull request #3 from tjsullivan1/feat/docker-mcp
tjsullivan1 Nov 13, 2025
5be20ee
Docs Fix:
tjsullivan1 Nov 13, 2025
03392d0
Merge pull request #4 from tjsullivan1/doc/fix-bad-links
tjsullivan1 Nov 13, 2025
03d77a7
added gh cli to devcontainer
tjsullivan1 Nov 13, 2025
4ca0ea8
Merge pull request #5 from tjsullivan1/feat/add-features-to-devcontainer
tjsullivan1 Nov 13, 2025
7827c45
Update PROJECT_NAME in docker-mcp.yml
tjsullivan1 Nov 13, 2025
72ef714
Merge pull request #332 from tjsullivan1/main
james-tn Nov 14, 2025
0288bfc
Add workflow reflection agent documentation and update uv.lock
Nov 14, 2025
8f9a147
Merge main into james-dev, resolve uv.lock conflict
Nov 14, 2025
ee1a0f7
add infra deployment
Nov 14, 2025
0bafb9d
add entra id & deployment & change to agent_modules
Nov 15, 2025
94a7723
add secure deployment optiont
Nov 16, 2025
50f7bf3
add CosmosDB as the default state store
Nov 17, 2025
6d176d2
add CosmosDB as the default state store
Nov 17, 2025
928ceea
Merge pull request #335 from microsoft/james-dev
tjsullivan1 Nov 20, 2025
8f6de11
Potential fix for code scanning alert no. 4: Information exposure thr…
tjsullivan1 Dec 9, 2025
bcbc4a8
Converted Fraud Detection UI from Create React App to Vite
DCMattyG Dec 15, 2025
e9175af
Updated Agentic AI React Frontend to proper component structure, upda…
DCMattyG Dec 15, 2025
0f9421f
Updated documentation based on React UI updates
DCMattyG Dec 15, 2025
fa93ef1
Merge pull request #350 from microsoft/int-agentic-ui-updates
james-tn Dec 15, 2025
7aa2cc1
James dev (#351)
james-tn Dec 17, 2025
a90e69a
adding initial commit of terraform code. Moved bicep to sub directory
tjsullivan1 Dec 17, 2025
380beb7
updated iteration variable
tjsullivan1 Dec 17, 2025
68b3919
trying to figure out what changes between the two jobs when it comes …
tjsullivan1 Dec 17, 2025
c06ada1
updated environment for integration test steps
tjsullivan1 Dec 17, 2025
cfb0bd9
updated with tests, changed environment var in terraform steps, remov…
tjsullivan1 Dec 17, 2025
559bbc3
adding a readme for the github workflows
tjsullivan1 Dec 17, 2025
8fb5a5e
added use oidc
tjsullivan1 Dec 19, 2025
672ebfb
added use azuread auth too
tjsullivan1 Dec 19, 2025
5bbd00d
adding orchestrator overlay function
tjsullivan1 Dec 19, 2025
96f9acb
adding orchestrator overlay function, but fixing input name
tjsullivan1 Dec 19, 2025
ac28923
adding permissions to orchestrator layer
tjsullivan1 Dec 19, 2025
2039a33
Updated Orchestrator name
tjsullivan1 Dec 19, 2025
3cce522
updated workflows to segment out destruction of resources
tjsullivan1 Dec 19, 2025
40b7ab3
updated workflows to segment out destruction of resources, fixed inpu…
tjsullivan1 Dec 19, 2025
42303a4
updated orchestrator to run the destroy on dev/my test branch
tjsullivan1 Dec 19, 2025
62b2335
updated orchestrator order of if tjs-infra-as-code
tjsullivan1 Dec 19, 2025
1c8aa1c
updated preflight to ensure storage account is network reachable
tjsullivan1 Dec 19, 2025
a90cf69
added environment to preflight
tjsullivan1 Dec 19, 2025
36a2639
updated with default action
tjsullivan1 Dec 19, 2025
6bbc763
Refactor environment variable logic in workflows
tjsullivan1 Dec 31, 2025
c3e3f76
Update key vault networking settings in orchestrate.yml
tjsullivan1 Dec 31, 2025
40f28b1
Enhance key vault update logic in orchestrate.yml
tjsullivan1 Dec 31, 2025
c80de74
Add dependency on kv_secrets_cabe role assignment
tjsullivan1 Dec 31, 2025
c19eaae
Add dependency on azurerm_role_assignment for lifecycle
tjsullivan1 Dec 31, 2025
015f030
Refactor Key Vault role assignment and add UAMI
tjsullivan1 Dec 31, 2025
03705f5
Fix key vault name substring extraction
tjsullivan1 Dec 31, 2025
c2a1f6b
Merge pull request #353 from microsoft/tjs-infra-as-code
james-tn Jan 6, 2026
71e0f6e
initial iteration of terraform vnet
tjsullivan1 Jan 7, 2026
91cbc41
adding additional logic to the orchestration workflow
tjsullivan1 Jan 7, 2026
cb9c54d
removing dependency of infra build on docker builds
tjsullivan1 Jan 7, 2026
faee07b
added NSG link to subnet
tjsullivan1 Jan 7, 2026
51551c4
adding container apps subnet
tjsullivan1 Jan 7, 2026
e60843a
altering the deployment pipeline to default to using a defined ITERAT…
tjsullivan1 Jan 7, 2026
c8d1808
adding infrastructure subnet to aca
tjsullivan1 Jan 7, 2026
0b87c66
dadded subnet delegation and ran fmt
tjsullivan1 Jan 7, 2026
0acaaea
moving to lower for naming convention to prevent resource recreation
tjsullivan1 Jan 7, 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
5 changes: 5 additions & 0 deletions .azdignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# .azure directory - azd environment state
.azure/

# Azure Developer CLI local state
**/.azure/
55 changes: 55 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/python
{
"name": "Python 3",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/python:1-3.12",

// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
"ghcr.io/devcontainers/features/azure-cli:1": {},
"ghcr.io/devcontainers-extra/features/uv:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/terraform:1": {}
},
"secrets": {
"AZURE_OPENAI_ENDPOINT": {
"description": " Replace with your model-deployment endpoint in Azure AI Foundry",
"documentationUrl": "https://YOUR-OPENAI-SERVICE-ENDPOINT.openai.azure.com"
},
"AZURE_OPENAI_API_KEY": {
"description": " Replace with your Foundry project’s API key",
"documentationUrl": "YOUR-OPENAI-API-KEY"
},

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
"settings": {},
"extensions": [
"streetsidesoftware.code-spell-checker"
]
}
},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [9000],

// Use 'portsAttributes' to set default properties for specific forwarded ports.
// More info: https://containers.dev/implementors/json_reference/#port-attributes
"portsAttributes": {
"9000": {
"label": "Hello Remote World",
"onAutoForward": "notify"
}
},

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "pip3 install -r requirements.txt"

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
}
78 changes: 78 additions & 0 deletions .github/workflows/destroy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: OpenAI Workshop Infrastructure Destruction

on:
workflow_call:
inputs:
environment:
type: string
required: true
iac-tool:
type: string
required: false
default: tf

workflow_dispatch:
inputs:
environment:
description: Target environment
default: dev
required: true
iac-tool:
description: "Choose your infrastructure as code tool"
type: choice
options:
- tf
- bicep
default: tf
required: true

jobs:
terraform_destroy:
name: Terraform Destroy
runs-on: ubuntu-latest
environment: ${{ inputs.environment || 'dev' }}
permissions:
id-token: write
contents: read

steps:
- uses: actions/checkout@v6

- name: Azure OIDC Login
uses: azure/login@v2
with:
client-id: ${{ vars.AZURE_CLIENT_ID }}
tenant-id: ${{ vars.AZURE_TENANT_ID }}
subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }}

- name: Terraform Setup
uses: hashicorp/setup-terraform@v3

- name: Terraform Destroy
run: |
cd infra/terraform
export ARM_USE_OIDC=true
export ARM_CLIENT_ID="${{ vars.AZURE_CLIENT_ID }}"
export ARM_TENANT_ID="${{ vars.AZURE_TENANT_ID }}"
export ARM_SUBSCRIPTION_ID="${{ vars.AZURE_SUBSCRIPTION_ID }}"

terraform init -backend-config="resource_group_name=${TFSTATE_RG}" \
-backend-config="key=${TFSTATE_KEY}" -backend-config="storage_account_name=${TFSTATE_ACCOUNT}" \
-backend-config="container_name=${TFSTATE_CONTAINER}"

terraform destroy -auto-approve \
-var project_name=${{ github.event.repository.name }} \
-var tenant_id=${{ vars.AZURE_TENANT_ID }} \
-var subscription_id=${{ vars.AZURE_SUBSCRIPTION_ID }} \
-var acr_name=${{ vars.ACR_NAME }} \
-var location=${{ vars.AZ_REGION }} \
-var environment=${{ inputs.environment || 'dev' }} \
-var docker_image_mcp=${{ vars.DOCKER_IMAGE_MCP }} \
-var docker_image_backend=${{ vars.DOCKER_IMAGE_BACKEND }} \
-var iteration=${{ inputs.environment || 'dev' }}
env:
TFSTATE_RG: ${{ vars.TFSTATE_RG }}
TFSTATE_ACCOUNT: ${{ vars.TFSTATE_ACCOUNT }}
TFSTATE_CONTAINER: ${{ vars.TFSTATE_CONTAINER }}
TFSTATE_KEY: "${{ github.event.repository.name }}-${{ github.ref_name }}.tfstate"

64 changes: 64 additions & 0 deletions .github/workflows/docker-fastapi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# This is a basic workflow to help you get started with Actions

name: Build and Push Docker Image for FastAPI Backend

# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the main branch
pull_request:
branches: [ main ]

workflow_call:
inputs:
environment:
type: string
required: true

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

env:
PROJECT_NAME: aoaiwkshp-backend
PROJECT_SUBPATH: agentic_ai/
SPECIFIC_RELEASE_TAG: ${{ inputs.environment && format('{0}-latest', inputs.environment) || vars.SPECIFIC_RELEASE_TAG || '' }}


# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Only run if the required variables exist
if: vars.REGISTRY_LOGIN_SERVER != '' && vars.REGISTRY_LOGIN_SERVER != null

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2

- uses: docker/login-action@v3
with:
registry: ${{ vars.REGISTRY_LOGIN_SERVER }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}

- name: Build registry prefix
id: prefix
run: |
if [[ "${{ vars.REGISTRY_LOGIN_SERVER }}" == *"docker.io"* ]]; then
echo "prefix=${{ vars.REGISTRY_LOGIN_SERVER }}/${{ secrets.REGISTRY_USERNAME }}/${{ env.PROJECT_NAME }}" >> $GITHUB_OUTPUT
else
echo "prefix=${{ vars.REGISTRY_LOGIN_SERVER }}/${{ env.PROJECT_NAME }}" >> $GITHUB_OUTPUT
fi


- run: |
if [ -z "${{ env.SPECIFIC_RELEASE_TAG }}" ]; then
docker build ${{ env.PROJECT_SUBPATH }} -t ${{ steps.prefix.outputs.prefix }}:${{ github.sha }} -t ${{ steps.prefix.outputs.prefix }}:latest
else
docker build ${{ env.PROJECT_SUBPATH }} -t ${{ steps.prefix.outputs.prefix }}:${{ env.SPECIFIC_RELEASE_TAG }} -t ${{ steps.prefix.outputs.prefix }}:latest
fi

- run: |
docker push ${{ steps.prefix.outputs.prefix }} --all-tags
64 changes: 64 additions & 0 deletions .github/workflows/docker-mcp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# This is a basic workflow to help you get started with Actions

name: Build and Push Docker Image for MCP

# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the main branch
pull_request:
branches: [ main ]

workflow_call:
inputs:
environment:
type: string
required: true

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

env:
PROJECT_NAME: aoaiwkshp-mcp
PROJECT_SUBPATH: mcp/
SPECIFIC_RELEASE_TAG: ${{ inputs.environment && format('{0}-latest', inputs.environment) || vars.SPECIFIC_RELEASE_TAG || '' }}


# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Only run if the required variables exist
if: vars.REGISTRY_LOGIN_SERVER != '' && vars.REGISTRY_LOGIN_SERVER != null

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2

- uses: docker/login-action@v3
with:
registry: ${{ vars.REGISTRY_LOGIN_SERVER }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}

- name: Build registry prefix
id: prefix
run: |
if [[ "${{ vars.REGISTRY_LOGIN_SERVER }}" == *"docker.io"* ]]; then
echo "prefix=${{ vars.REGISTRY_LOGIN_SERVER }}/${{ secrets.REGISTRY_USERNAME }}/${{ env.PROJECT_NAME }}" >> $GITHUB_OUTPUT
else
echo "prefix=${{ vars.REGISTRY_LOGIN_SERVER }}/${{ env.PROJECT_NAME }}" >> $GITHUB_OUTPUT
fi


- run: |
if [ -z "${{ env.SPECIFIC_RELEASE_TAG }}" ]; then
docker build ${{ env.PROJECT_SUBPATH }} -t ${{ steps.prefix.outputs.prefix }}:${{ github.sha }} -t ${{ steps.prefix.outputs.prefix }}:latest
else
docker build ${{ env.PROJECT_SUBPATH }} -t ${{ steps.prefix.outputs.prefix }}:${{ env.SPECIFIC_RELEASE_TAG }} -t ${{ steps.prefix.outputs.prefix }}:latest
fi

- run: |
docker push ${{ steps.prefix.outputs.prefix }} --all-tags
Loading