Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
cdd447d
Merge pull request #564 from microsoft/dev
Prajwal-Microsoft Apr 28, 2026
c0de233
Merge pull request #573 from microsoft/dev
Prajwal-Microsoft May 5, 2026
2c712a7
docs: add Bicep CLI prerequisite to local deployment guide
Rafi-Microsoft May 6, 2026
f7d780b
docs: Add Bicep CLI (v0.33.0+) version pinning alongside azd/PowerShell
Rafi-Microsoft May 6, 2026
2dd4797
docs: Use /en-us/ locale in Bicep install URL for consistency (Copilo…
Rafi-Microsoft May 6, 2026
57424c3
Merge pull request #574 from microsoft/psl-addBicepVer
Roopan-Microsoft May 7, 2026
450e26d
Merge pull request #577 from microsoft/dev
Prajwal-Microsoft May 8, 2026
a58a99d
feat(deploy): automate Entra ID app registration + EasyAuth config
DonLee Apr 24, 2026
814d054
fix(auth): resolve tenant from az cli, clear stale audiences, normali…
DonLee Apr 24, 2026
e3ab219
fix(auth): accept both v1 (api://guid) and v2 (guid) audiences
DonLee Apr 24, 2026
6221f00
docs: reflect automatic auth configuration
DonLee Apr 24, 2026
e24b1da
docs: note WAF deployment compatibility for auth automation
Dongbumlee Apr 24, 2026
542608c
feat: add sample file processing as post-deployment step 4
Dongbumlee Apr 3, 2026
3850d56
fix(deploy): resolve auth + sample-bundle issues uncovered in e2e
DonLee Apr 27, 2026
fd2e78a
Merge branch 'dev' of https://github.com/microsoft/content-processing…
Tejasri-Microsoft May 12, 2026
372fe33
commit
Tejasri-Microsoft May 12, 2026
33a41ce
commit
Tejasri-Microsoft May 12, 2026
e885d00
commit
Tejasri-Microsoft May 13, 2026
a528887
commit
Tejasri-Microsoft May 13, 2026
5519fe2
commit
Tejasri-Microsoft May 13, 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 README.md
Original file line number Diff line number Diff line change
Expand Up @@ -272,8 +272,13 @@ Follow the quick deploy steps on the deployment guide to deploy this solution to

> **Note:** This solution accelerator requires **Azure Developer CLI (azd) version 1.18.0 or higher**. Please ensure you have the latest version installed before proceeding with deployment. [Download azd here](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/install-azd).

> **Note:** This solution accelerator also requires **Bicep CLI version 0.33.0 or higher** for compiling infrastructure templates. [Install Bicep](https://learn.microsoft.com/azure/azure-resource-manager/bicep/install).

[Click here to launch the deployment guide](./docs/DeploymentGuide.md)

> ⚠️ **Post-Deployment Setup Required**
> `azd up` provisions infrastructure only. After it completes, run the post-deployment scripts to register schemas, upload sample data, and configure authentication. See [Step 5 of the Deployment Guide](./docs/DeploymentGuide.md#step-5-post-deployment-configuration) for commands and required permissions.

| [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/microsoft/content-processing-solution-accelerator) | [![Open in Dev Containers](https://img.shields.io/static/v1?style=for-the-badge&label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/content-processing-solution-accelerator) | [![Open in Visual Studio Code Web](https://img.shields.io/static/v1?style=for-the-badge&label=Visual%20Studio%20Code%20(Web)&message=Open&color=blue&logo=visualstudiocode&logoColor=white)](https://vscode.dev/azure/?vscode-azure-exp=foundry&agentPayload=eyJiYXNlVXJsIjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9taWNyb3NvZnQvY29udGVudC1wcm9jZXNzaW5nLXNvbHV0aW9uLWFjY2VsZXJhdG9yL3JlZnMvaGVhZHMvbWFpbi9pbmZyYS92c2NvZGVfd2ViIiwgImluZGV4VXJsIjogIi9pbmRleC5qc29uIiwgInZhcmlhYmxlcyI6IHsiYWdlbnRJZCI6ICIiLCAiY29ubmVjdGlvblN0cmluZyI6ICIiLCAidGhyZWFkSWQiOiAiIiwgInVzZXJNZXNzYWdlIjogIiIsICJwbGF5Z3JvdW5kTmFtZSI6ICIiLCAibG9jYXRpb24iOiAiIiwgInN1YnNjcmlwdGlvbklkIjogIiIsICJyZXNvdXJjZUlkIjogIiIsICJwcm9qZWN0UmVzb3VyY2VJZCI6ICIiLCAiZW5kcG9pbnQiOiAiIn0sICJjb2RlUm91dGUiOiBbImFpLXByb2plY3RzLXNkayIsICJweXRob24iLCAiZGVmYXVsdC1henVyZS1hdXRoIiwgImVuZHBvaW50Il19) |
|---|---|---|

Expand Down
11 changes: 0 additions & 11 deletions azure.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,3 @@ requiredVersions:
metadata:
template: content-processing@1.0
name: content-processinge@1.0

hooks:
postprovision:
posix:
shell: sh
run: sed -i 's/\r$//' ./infra/scripts/post_deployment.sh; bash ./infra/scripts/post_deployment.sh
interactive: true
windows:
shell: pwsh
run: ./infra/scripts/post_deployment.ps1
interactive: true
10 changes: 0 additions & 10 deletions azure_custom.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,3 @@ services:
registry: ${AZURE_CONTAINER_REGISTRY_ENDPOINT}
remoteBuild: true

hooks:
postprovision:
posix:
shell: sh
run: sed -i 's/\r$//' ./infra/scripts/post_deployment.sh; bash ./infra/scripts/post_deployment.sh
interactive: true
windows:
shell: pwsh
run: ./infra/scripts/post_deployment.ps1
interactive: true
22 changes: 18 additions & 4 deletions docs/AVMPostDeploymentGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ This document provides guidance on post-deployment steps after deploying the Con
After successfully deploying the Content Processing Solution Accelerator using the AVM template, you need to:

1. **Register schemas** — upload schema files, create a schema set, and link them together
2. **Configure authentication** — set up app registration for secure access
2. **Process sample files** — upload and process sample claim bundles for verification
3. **Configure authentication** — set up app registration for secure access

> **Note:** When deploying via `azd up`, schema registration happens automatically through a post-provisioning hook. AVM deployments require the manual steps below.
> **Note:** Post-deployment data setup and authentication are manual steps for both `azd` and AVM deployments. Run the scripts in this guide after infrastructure provisioning.

## Prerequisites

Expand Down Expand Up @@ -73,14 +74,27 @@ The script is idempotent — it skips schemas and schema sets that already exist

> **Want custom schemas?** See [Customize Schema Data](./CustomizeSchemaData.md) to create your own document schemas.

### Step 4: Configure Authentication (Required)
### Step 4: Process Sample File Bundles (Optional)

After schema registration, you can upload and process the included sample claim bundles to verify the deployment is working end to end. Each sample folder (`claim_date_of_loss/`, `claim_hail/`) contains a `bundle_info.json` manifest that maps files to their schema classes.

The workflow for each bundle:
1. **Create a claim batch** with the schema set ID via `PUT /claimprocessor/claims`
2. **Upload each file** with its mapped schema ID via `POST /claimprocessor/claims/{claim_id}/files`
3. **Submit the batch** for processing via `POST /claimprocessor/claims`

You can perform these steps via the web UI or the API directly. See the [API documentation](./API.md) and [Golden Path Workflows](./GoldenPathWorkflows.md) for details.

> **Note:** In `azd` and AVM flows, sample file processing runs when you execute the post-deployment script manually.

### Step 5: Configure Authentication (Required)

**This step is mandatory for application access:**

1. Follow [App Authentication Configuration](./ConfigureAppAuthentication.md).
2. Wait up to 10 minutes for authentication changes to take effect.

### Step 5: Verify Deployment
### Step 6: Verify Deployment

1. Access your application using the Web App URL from your deployment output.
2. Confirm the application loads successfully.
Expand Down
13 changes: 13 additions & 0 deletions docs/ConfigureAppAuthentication.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Set up Authentication in Azure Container App

> ### ✅ Recommended: run the authentication script first
>
> `azd up` no longer runs authentication setup automatically. Run the script below after deployment:
>
> - Windows: `./infra/scripts/setup_auth.ps1`
> - macOS/Linux: `sed -i 's/\r$//' ./infra/scripts/setup_auth.sh && bash ./infra/scripts/setup_auth.sh`
>
> See [DeploymentGuide.md § 5.3](./DeploymentGuide.md#53-configure-authentication-manual-script) for details.
>
> Follow the portal/manual steps below if:
> - Your tenant policy prohibits programmatic app registration or secret creation
> - The script reports a permission or policy failure that cannot be resolved in your current identity

This document provides step-by-step instructions to configure Azure App Registrations for the front-end and back-end applications.

> **Note:** The solution deploys four container apps. Only the **Web** and **API** container apps require Entra ID authentication provider configuration. The **Content Processor** (app) and **Content Process Workflow** (wkfl) containers are internal services that communicate via Storage Queues using managed identity — they do not expose public endpoints.
Expand Down
20 changes: 10 additions & 10 deletions docs/CustomizeSchemaData.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,18 +73,18 @@ flowchart LR

A new JSON Schema document needs to be created that defines the schema as a declarative description of your document type.

> **Schema Folder:** [/src/ContentProcessorAPI/samples/schemas/](/src/ContentProcessorAPI/samples/schemas/) — All schema JSON files should be placed into this folder
> **Schema Folder:** [../src/ContentProcessorAPI/samples/schemas/](../src/ContentProcessorAPI/samples/schemas/) — All schema JSON files should be placed into this folder

**Sample Schemas:** The accelerator ships with 4 sample schemas — use any as a starting template:

| Schema | File | Class Name | Auto-registered |
| Schema | File | Class Name | Included sample |
| ------------------------- | --------------------------------------------------------------------------------- | ------------------------------- | --------------- |
| Auto Insurance Claim Form | [autoclaim.json](/src/ContentProcessorAPI/samples/schemas/autoclaim.json) | `AutoInsuranceClaimForm` | ✅ |
| Police Report | [policereport.json](/src/ContentProcessorAPI/samples/schemas/policereport.json) | `PoliceReportDocument` | ✅ |
| Repair Estimate | [repairestimate.json](/src/ContentProcessorAPI/samples/schemas/repairestimate.json) | `RepairEstimateDocument` | ✅ |
| Damaged Vehicle Image | [damagedcarimage.json](/src/ContentProcessorAPI/samples/schemas/damagedcarimage.json) | `DamagedVehicleImageAssessment` | ✅ |
| Auto Insurance Claim Form | [autoclaim.json](../src/ContentProcessorAPI/samples/schemas/autoclaim.json) | `AutoInsuranceClaimForm` | ✅ |
| Police Report | [policereport.json](../src/ContentProcessorAPI/samples/schemas/policereport.json) | `PoliceReportDocument` | ✅ |
| Repair Estimate | [repairestimate.json](../src/ContentProcessorAPI/samples/schemas/repairestimate.json) | `RepairEstimateDocument` | ✅ |
| Damaged Vehicle Image | [damagedcarimage.json](../src/ContentProcessorAPI/samples/schemas/damagedcarimage.json) | `DamagedVehicleImageAssessment` | ✅ |

> **Note:** All 4 schemas are automatically registered during deployment (via `azd up` or the `register_schema.py` script) and grouped into the **"Auto Claim"** schema set.
> **Note:** These 4 schemas are included in the repository and are registered when you run the manual post-deployment schema registration step (for example, `register_schemas.ps1` / `register_schemas.sh`, or `run_post_deployment.ps1` / `run_post_deployment.sh`). They are then grouped into the **"Auto Claim"** schema set.

Duplicate one of these files and update with fields that represent your document type.

Expand Down Expand Up @@ -158,22 +158,22 @@ Example using the REST Client extension:

> **Note:** Install the [REST Client VSCode extension](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) to execute `.http` files directly in VS Code.

> **Sample requests:** [/src/ContentProcessorAPI/test_http/invoke_APIs.http](/src/ContentProcessorAPI/test_http/invoke_APIs.http)
> **Sample requests:** [../src/ContentProcessorAPI/test_http/invoke_APIs.http](../src/ContentProcessorAPI/test_http/invoke_APIs.http)

The response returns a Schema `Id` — **save this** for Step 3.

> ![Schema Registration REST API call with payload](./images/schema-register-api.png)

### Option B: Register via script (batch)

> **Note:** The default sample schemas are registered **automatically** during `azd up` via the post-provisioning hook. You only need to run the script manually if you are adding custom schemas or if automatic registration was skipped.
> **Note:** Default sample schemas are registered when you run the post-deployment script manually (see Deployment Guide Step 5.1). Run this script again whenever you add or update schemas.

For bulk registration, use the provided script with a JSON manifest. The script performs three steps automatically:
1. **Registers** individual schema files via `/schemavault/`
2. **Creates** a schema set via `/schemasetvault/`
3. **Adds** each registered schema into the schema set

**Manifest file** ([schema_info.json](/src/ContentProcessorAPI/samples/schemas/schema_info.json)):
**Manifest file** ([schema_info.json](../src/ContentProcessorAPI/samples/schemas/schema_info.json)):
```json
{
"schemas": [
Expand Down
Loading
Loading