Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
// Fraud Intelligence Hack — Codespaces / Dev Container
// Python agents + Microsoft Agent Framework orchestration + Azure tooling.
"name": "Azure / AI / Fraud Intelligence",
"image": "mcr.microsoft.com/devcontainers/python:3.12-bookworm",

"features": {
"ghcr.io/devcontainers/features/azure-cli:1": {
"version": "latest",
"installBicep": true
},
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"version": "latest",
"moby": true
},
"ghcr.io/devcontainers/features/github-cli:1": {
"version": "latest"
},
"ghcr.io/devcontainers/features/node:1": {
"version": "lts"
},
"ghcr.io/devcontainers/features/powershell:1": {
"version": "latest"
}
},

"customizations": {
"vscode": {
"extensions": [
// Python
"ms-python.python",
"ms-python.vscode-pylance",
"ms-python.debugpy",
"ms-toolsai.jupyter",
// Azure / infra
"ms-azuretools.vscode-docker",
"ms-azuretools.vscode-bicep",
"ms-azuretools.vscode-azurefunctions",
"ms-vscode.powershell",
// AI / Foundry tooling
"ms-windows-ai-studio.windows-ai-studio",
// GitHub Copilot
"GitHub.copilot",
"GitHub.copilot-chat"
],
"settings": {
"python.defaultInterpreterPath": "/usr/local/bin/python"
}
}
},

// Fraud Alert API / DevUI (8080), Functions (7071), hosted agent (8088), Jupyter (8888)
"forwardPorts": [7071, 8080, 8088, 8888],
"portsAttributes": {
"7071": { "label": "Financial Evidence MCP" },
"8080": { "label": "Fraud Alert API / DevUI" },
"8088": { "label": "Foundry Hosted Agent" },
"8888": { "label": "Jupyter" }
},

"postAttachCommand": "bash /workspaces/${localWorkspaceFolderBasename}/.devcontainer/welcome.sh",

"remoteUser": "vscode",

"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}/03-Azure/01-04-AI/07_Fraud_Intelligence",

"remoteEnv": {
"hackFolder": "/workspaces/${localWorkspaceFolderBasename}/03-Azure/01-04-AI/07_Fraud_Intelligence",
"walkthroughHome": "/workspaces/${localWorkspaceFolderBasename}/03-Azure/01-04-AI/07_Fraud_Intelligence/walkthrough",
"challengesHome": "/workspaces/${localWorkspaceFolderBasename}/03-Azure/01-04-AI/07_Fraud_Intelligence/challenges"
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
// Fraud Intelligence Hack — Codespaces / Dev Container
// Python agents + Microsoft Agent Framework orchestration + Azure tooling.
"name": "Fraud Intelligence Hack",
"name": "Azure / AI / Fraud Intelligence",
"image": "mcr.microsoft.com/devcontainers/python:3.12-bookworm",

"features": {
Expand Down Expand Up @@ -58,7 +58,15 @@
"8888": { "label": "Jupyter" }
},

"postCreateCommand": "bash .devcontainer/post-create.sh",
"postAttachCommand": "bash /workspaces/${localWorkspaceFolderBasename}/.devcontainer/welcome.sh",

"remoteUser": "vscode"
"remoteUser": "vscode",

"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}/03-Azure/01-04-AI/07_Fraud_Intelligence",

"remoteEnv": {
"hackFolder": "/workspaces/${localWorkspaceFolderBasename}/03-Azure/01-04-AI/07_Fraud_Intelligence",
"walkthroughHome": "/workspaces/${localWorkspaceFolderBasename}/03-Azure/01-04-AI/07_Fraud_Intelligence/walkthrough",
"challengesHome": "/workspaces/${localWorkspaceFolderBasename}/03-Azure/01-04-AI/07_Fraud_Intelligence/challenges"
}
}

This file was deleted.

3 changes: 0 additions & 3 deletions 03-Azure/01-04-AI/07_Fraud_Intelligence/baseenv

This file was deleted.

30 changes: 22 additions & 8 deletions 03-Azure/01-04-AI/07_Fraud_Intelligence/challenges/challenge-01.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Complete this setup with the credentials provided in your Hackbox. Use the assig

### 1. Sign in to Azure

Open the [Azure portal](https://portal.azure.com) and sign in with the credentials provided in your Hackbox.
Open the [Azure portal](https://portal.azure.com) and sign in with the credentials provided in your Hackbox (See the **Credentials** section at the top of this web page).

When prompted to choose an account, select **Use another account** and enter the credentials provided. Do not use your personal or work account.

Expand All @@ -36,7 +36,7 @@ Verify that you can access the resources used in the later challenges, including

Open [GitHub](https://github.com) and sign in with the credentials provided in your Hackbox.

When prompted to choose an account, select **Use another account**. Do not use your personal or work account.
When prompted to choose an account, select **Use another account**. Do not use your personal or work account.

![Sign in to GitHub with another account](/challenges/images/github-login.png)

Expand All @@ -46,7 +46,15 @@ Open the GitHub organization assigned to your lab account.

![GitHub organization selector](/challenges/images/github-organization.png)

Select the assigned organization, then open the `microhack` repository. Confirm that you can see the repository files and folders.
Select the assigned organization, then open the `microhack` repository. You need to fork the repository before you can create a Codespace. To fork the repository, click the **Fork** button in the top-right corner of the repository page and follow the prompts:

![Create fork](/challenges/images/create-fork-1.png)

Use a unique name for the repository name to avoid conflicts with other forks. For example, you can append your lab username to the repository name (e.g., `microhack-labuser-0001`):

![Fork repository with unique name](/challenges/images/create-fork-2.png)

Finally, you should see your forked repository with the unique name you provided and all files and folders from the original repository:

![Files and folders in the GitHub repository](/challenges/images/github-repository.png)

Expand All @@ -56,27 +64,34 @@ From the repository page, select **Code**, then open the **Codespaces** tab. Sel

![Create a GitHub Codespace with options](/challenges/images/github-codespaces.png)

For **Dev container configuration**, select **Azure / AI / Fraud Intelligence**, then select **Create codespace**.
For **Dev container configuration**, select **Azure / AI / Fraud Intelligence**, then select **Create codespace**:

![Select Azure / AI / Fraud Intelligence dev container configuration](/challenges/images/select-dev-container.png)

GitHub opens the Codespace in a new browser tab. Wait for the container setup to finish, then confirm that the repository files are visible in the Explorer and that the integrated terminal opens without errors.

Open a terminal in the Codespace (Terminal > New Terminal) and run the following command to verify that Azure CLI is installed:
You should have a terminal ready to use, otherwise open a terminal in the Codespace (Terminal > New Terminal). Then run the following command to verify that Azure CLI is installed:

```bash
az --version
```

Then sign in to Azure from the Codespace terminal:
Then sign in to Azure from the Codespace terminal and follow the link shown to authenticate with a web browser and the device code:

```bash
az login
```

Next, initialize a local environment file with the following commands:
First, create a `rg` environment variable with your Resource Group name provided in Hackbox:

```bash
# init RG with your Resource Group name provided in Hackbox
rg=<your-resource-group-name>
```

Next, initialize a local environment file with the following commands:

```bash
DEPLOYMENT=$(az deployment group list -g "$rg" \
--query "sort_by([?starts_with(name, 'mhh')], &properties.timestamp)[-1].name" \
-o tsv)
Expand All @@ -99,7 +114,6 @@ chmod 600 hackenv
echo "rg=$rg" >> hackenv
cat hackenv
source hackenv
source baseenv
```

## 🚀 Go Further
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,9 @@ The assessment must remain grounded in retrieved policy. Missing or conflicting

## ✅ Tasks

Before starting, source `baseenv` and `hackenv` to load the environment variables used by this challenge.
Before starting, source `hackenv` to load the environment variables used by this challenge.

```bash
source baseenv
source hackenv
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,9 @@ The orchestration owns sequencing, state transfer, failure handling, and the fin

## ✅ Tasks

Before starting, source `baseenv` and `hackenv` to load the environment variables used by this challenge.
Before starting, source `hackenv` to load the environment variables used by this challenge.

```bash
source baseenv
source hackenv
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,9 @@ The Alert Manager Agent must treat the regulatory assessment as authoritative. I

## ✅ Tasks

Before starting, source `baseenv` and `hackenv` to load the environment variables used by this challenge.
Before starting, source `hackenv` to load the environment variables used by this challenge.

```bash
source baseenv
source hackenv
```

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Complete this setup with the credentials provided in your Hackbox. Use the assig

### 1. Sign in to Azure

Open the [Azure portal](https://portal.azure.com) and sign in with the credentials provided in your Hackbox.
Open the [Azure portal](https://portal.azure.com) and sign in with the credentials provided in your Hackbox (See the **Credentials** section at the top of this web page).

When prompted to choose an account, select **Use another account** and enter the credentials provided. Do not use your personal or work account.

Expand All @@ -32,11 +32,11 @@ Open the resource group assigned to you and confirm that its resources have been

Verify that you can access the resources used in the later challenges, including the Microsoft Foundry project, model deployments, Azure Cosmos DB account, and Application Insights resource.

### 2. Sign in to GitHub
## 2. Sign in to GitHub

Open [GitHub](https://github.com) and sign in with the credentials provided in your Hackbox.

When prompted to choose an account, select **Use another account**. Do not use your personal or work account.
When prompted to choose an account, select **Use another account**. Do not use your personal or work account.

![Sign in to GitHub with another account](/challenges/images/github-login.png)

Expand All @@ -46,7 +46,15 @@ Open the GitHub organization assigned to your lab account.

![GitHub organization selector](/challenges/images/github-organization.png)

Select the assigned organization, then open the `microhack` repository. Confirm that you can see the repository files and folders.
Select the assigned organization, then open the `microhack` repository. You need to fork the repository before you can create a Codespace. To fork the repository, click the **Fork** button in the top-right corner of the repository page and follow the prompts:

![Create fork](/challenges/images/create-fork-1.png)

Use a unique name for the repository name to avoid conflicts with other forks. For example, you can append your lab username to the repository name (e.g., `microhack-labuser-0001`):

![Fork repository with unique name](/challenges/images/create-fork-2.png)

Finally, you should see your forked repository with the unique name you provided and all files and folders from the original repository:

![Files and folders in the GitHub repository](/challenges/images/github-repository.png)

Expand All @@ -56,27 +64,34 @@ From the repository page, select **Code**, then open the **Codespaces** tab. Sel

![Create a GitHub Codespace with options](/challenges/images/github-codespaces.png)

For **Dev container configuration**, select **Azure / AI / Fraud Intelligence**, then select **Create codespace**.
For **Dev container configuration**, select **Azure / AI / Fraud Intelligence**, then select **Create codespace**:

![Select Azure / AI / Fraud Intelligence dev container configuration](/challenges/images/select-dev-container.png)

GitHub opens the Codespace in a new browser tab. Wait for the container setup to finish, then confirm that the repository files are visible in the Explorer and that the integrated terminal opens without errors.

Open a terminal in the Codespace (Terminal > New Terminal) and run the following command to verify that Azure CLI is installed:
You should have a terminal ready to use, otherwise open a terminal in the Codespace (Terminal > New Terminal). Then run the following command to verify that Azure CLI is installed:

```bash
az --version
```

Then sign in to Azure from the Codespace terminal:
Then sign in to Azure from the Codespace terminal and follow the link shown to authenticate with a web browser and the device code:

```bash
az login
```

Next, initialize a local environment file with the following commands:
First, create a `rg` environment variable with your Resource Group name provided in Hackbox:

```bash
# init RG with your Resource Group name provided in Hackbox
rg=<your-resource-group-name>
```

Next, initialize a local environment file with the following commands:

```bash
DEPLOYMENT=$(az deployment group list -g "$rg" \
--query "sort_by([?starts_with(name, 'mhh')], &properties.timestamp)[-1].name" \
-o tsv)
Expand All @@ -99,7 +114,6 @@ chmod 600 hackenv
echo "rg=$rg" >> hackenv
cat hackenv
source hackenv
source baseenv
```

## 🚀 Go Further
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,9 @@ The assessment must remain grounded in retrieved policy. Missing or conflicting

## ✅ Tasks

Before starting, source `baseenv` and `hackenv` to load the environment variables used by this challenge.
Before starting, source `hackenv` to load the environment variables used by this challenge.

```bash
source baseenv
source hackenv
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,9 @@ The orchestration owns sequencing, state transfer, failure handling, and the fin

## ✅ Tasks

Before starting, source `baseenv` and `hackenv` to load the environment variables used by this challenge.
Before starting, source `hackenv` to load the environment variables used by this challenge.

```bash
source baseenv
source hackenv
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,9 @@ The Alert Manager Agent must treat the regulatory assessment as authoritative. I

## ✅ Tasks

Before starting, source `baseenv` and `hackenv` to load the environment variables used by this challenge.
Before starting, source `hackenv` to load the environment variables used by this challenge.

```bash
source baseenv
source hackenv
```

Expand Down