Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 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
198 changes: 139 additions & 59 deletions README.md

Large diffs are not rendered by default.

46 changes: 23 additions & 23 deletions docs/ConfigureAppAuthentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,57 +14,57 @@ We will add Microsoft Entra ID as an authentication provider to API and Web Appl
1. Add Authentication Provider in Web Application

- Go to deployed Container App and select `ca-cps-<randomname>-web` and click **Add Identity Provider** button in Authentication.
![add_auth_provider_web_1](./Images/add_auth_provider_web_1.png)
![add_auth_provider_web_1](./images/add_auth_provider_web_1.png)

- Select **Microsoft** and set **Client secret expiration**, then click **Add** button.
![add_auth_provider_web_2](./Images/add_auth_provider_web_2.png)
![add_auth_provider_web_2](./images/add_auth_provider_web_2.png)

- Set **Unauthenticated requests**, then click **Add** button.
![add_auth_provider_api_3](./Images/add_auth_provider_web_4.png)
![add_auth_provider_api_3](./images/add_auth_provider_web_4.png)

> **Note:** If you encounter the following error message indicating that your organization's policy prohibits the automatic use of secrets, please refer to our [Manual App Registration Configuration](./ManualAppRegistrationConfiguration.md) for detailed manual setup instructions.
> ![add_auth_provider_web_3](./Images/add_auth_provider_web_3.png)
> ![add_auth_provider_web_3](./images/add_auth_provider_web_3.png)



1. Add Authentication Provider in API Service

- Go to deployed Container App and select `ca-cps-<randomname>-api` and click **Add Identity Provider** button in Authentication.
![add_auth_provider_api_1](./Images/add_auth_provider_api_1.png)
![add_auth_provider_api_1](./images/add_auth_provider_api_1.png)

- Select **Microsoft** and set **Client secret expiration**.
![add_auth_provider_api_2](./Images/add_auth_provider_api_2.png)
![add_auth_provider_api_2](./images/add_auth_provider_api_2.png)

- Set **Unauthenticated requests**, then click **Add** button.
![add_auth_provider_api_3](./Images/add_auth_provider_api_3.png)
![add_auth_provider_api_3](./images/add_auth_provider_api_3.png)

## Step 2: Configure Application Registration - Web Application

1. Set Redirect URI in Single Page Application Platform

- Go to deployed Container App `ca-cps-<randomname>-web` and select **Authentication** menu, then select created Application Registration.
![configure_app_registration_web_1](./Images/configure_app_registration_web_1.png)
![configure_app_registration_web_1](./images/configure_app_registration_web_1.png)

- Select **Authentication**, then select **+ Add a platform** menu.
![configure_app_registration_web_2](./Images/configure_app_registration_web_2.png)
![configure_app_registration_web_2](./images/configure_app_registration_web_2.png)

- Select **Single-page application**.
![configure_app_registration_web_3](./Images/configure_app_registration_web_3.png)
![configure_app_registration_web_3](./images/configure_app_registration_web_3.png)

- Add Container App `ca-cps-<randomname>-web`'s URL.
![configure_app_registration_web_4](./Images/configure_app_registration_web_4.png)
![configure_app_registration_web_4](./images/configure_app_registration_web_4.png)

- You may get this URL from here in your Container App.
![configure_app_registration_web_5](./Images/configure_app_registration_web_5.png)
![configure_app_registration_web_5](./images/configure_app_registration_web_5.png)

2. Add Permission and Grant Permission

- Add Permission for API application. Select **+ Add a permission** button, then search API application with name `ca-cps-<randomname>-api`.
![configure_app_registration_web_6](./Images/configure_app_registration_web_6.png)
![configure_app_registration_web_7](./Images/configure_app_registration_web_7.png)
![configure_app_registration_web_6](./images/configure_app_registration_web_6.png)
![configure_app_registration_web_7](./images/configure_app_registration_web_7.png)

- Grant admin consent to permissions.
![configure_app_registration_web_8](./Images/configure_app_registration_web_8.png)
![configure_app_registration_web_8](./images/configure_app_registration_web_8.png)

> ⚠️ **Granting Admin Consent:** If you don't have permission or aren't able to grant admin consent for the API permissions, please follow one of the steps below:<br/><br/>_Option 1 - Reach out to your Tenant Administrator:_ Contact your administrator to let them know your Application Registration ID and what permissions you woud like to have them consent and approve.<br/><br/>_Option 2 - Internal Microsoft Employees Only:_ Please refer to these detailed instructions on the admin consent granting process: [https://aka.ms/AzAdminConsentWiki](https://aka.ms/AzAdminConsentWiki)

Expand All @@ -74,35 +74,35 @@ We will add Microsoft Entra ID as an authentication provider to API and Web Appl

- Select **Expose an API** in the left menu. Copy the Scope name, then paste it in some temporary place.
The copied text will be used for Web Application Environment variable - **APP_WEB_SCOPE**.
![configure_app_registration_web_9](./Images/configure_app_registration_web_9.png)
![configure_app_registration_web_9](./images/configure_app_registration_web_9.png)

4. Grab Client Id for Web App

- Select **Overview** in the left menu. Copy the Client Id, then paste it in some temporary place.
The copied text will be used for Web Application Environment variable - **APP_WEB_CLIENT_ID**.
![configure_app_registration_web_10](./Images/configure_app_registration_web_10.png)
![configure_app_registration_web_10](./images/configure_app_registration_web_10.png)

## Step 3: Configure Application Registration - API Application

1. Grab Scope Name for Impersonation

- Go to deployed Container App `ca-cps-<randomname>-api` and select **Authentication** menu, then select created Application Registration.
![configure_app_registration_api_1](./Images/configure_app_registration_api_1.png)
![configure_app_registration_api_1](./images/configure_app_registration_api_1.png)

- Select **Expose an API** in the left menu. Copy the Scope name, then paste it in some temporary place.
The copied text will be used for Web Application Environment variable - **APP_API_SCOPE**.
![configure_app_registration_api_2](./Images/configure_app_registration_api_2.png)
![configure_app_registration_api_2](./images/configure_app_registration_api_2.png)

## Step 4: Add Web Application's Client Id to Allowed Client Applications List in API Application Registration

1. Go to the deployed Container App `ca-cps-<randomname>-api`, select **Authentication**, and then click **Edit**.
![add_client_id_to_api_1](./Images/add_client_id_to_api_1.png)
![add_client_id_to_api_1](./images/add_client_id_to_api_1.png)

2. Select **Allow requests from specific client applications**, then click the **pencil** icon to add the Client Id.
![add_client_id_to_api_2](./Images/add_client_id_to_api_2.png)
![add_client_id_to_api_2](./images/add_client_id_to_api_2.png)

3. Add the **Client Id** obtained from [Step 2: Configure Application Registration - Web Application](#step-2-configure-application-registration---web-application), then save.
![add_client_id_to_web_3](./Images/add_client_id_to_web_3.png)
![add_client_id_to_web_3](./images/add_client_id_to_web_3.png)

## Step 5: Update Environment Variable in Container App for Web Application

Expand All @@ -111,7 +111,7 @@ In previous steps for [Configure Application Registration - Web Application](#st
Now, we will edit and deploy the Web Application Container with updated Environment variables.

1. Select **Containers** menu under **Application**. Then click **Environment variables** tab.
![update_env_app_1_1](./Images/update_env_app_1_1.png)
![update_env_app_1_1](./images/update_env_app_1_1.png)
2. Update 3 values which were taken in previous steps for **APP_WEB_CLIENT_ID**, **APP_WEB_SCOPE**, **APP_API_SCOPE**.
Click on **Save as a new revision**.
The updated revision will be activated soon.
Expand Down
2 changes: 1 addition & 1 deletion docs/CustomizeSchemaData.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ A schema should be created that includes all fields you expect to extract and tr
3. The name of the main schema class that will get instantiated.
4. Friendly, readable description of the schema. this value will be show up in UI.

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

After running the request, you will see a response with an ID confirming the schema has been added. It will now show up in the web UI in the schema dropdown as well.

8 changes: 4 additions & 4 deletions docs/DeleteResourceGroup.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,17 @@ If your deployment fails and you need to clean up the resources manually, follow
1. In the search bar at the top, type **"Resource groups"** and select it.
2. Locate the **resource group** associated with the failed deployment.

![Resource Groups](Images/resourcegroup.png)
![Resource Groups](./images/resourcegroup.png)

![Resource Groups](Images/resource-groups.png)
![Resource Groups](./images/resource-groups.png)

---

## **3. Delete the Resource Group**
1. Click on the **resource group name** to open it.
2. Click the **Delete resource group** button at the top.

![Delete Resource Group](Images/DeleteRG.png)
![Delete Resource Group](./images/DeleteRG.png)

3. Type the resource group name in the confirmation box and click **Delete**.

Expand All @@ -40,7 +40,7 @@ If you don’t want to delete the entire resource group, follow these steps:
3. Select the **resource** you want to delete (e.g., App Service, Storage Account).
4. Click **Delete** at the top.

![Delete Individual Resource](Images/deleteservices.png)
![Delete Individual Resource](./images/deleteservices.png)

---

Expand Down
4 changes: 2 additions & 2 deletions docs/DeploymentGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ This will rebuild the source code, package it into a container, and push it to t
- **Get API Service's Endpoint**
- Get API Service Endpoint Url from your container app for API
Name is **ca-**<< your environmentName >>-**api**
![Check API Service Url](Images/CheckAPIService.png)
![Check API Service Url](./images/CheckAPIService.png)

- Copy the URL
- **Execute Script to registering Schemas**
Expand All @@ -228,7 +228,7 @@ This will rebuild the source code, package it into a container, and push it to t
```

- **Verify Results**
![schema file registration](./Images/SchemaFileRegistration.png)
![schema file registration](./images/SchemaFileRegistration.png)

2. **Import Sample Data**
- Grab the Schema IDs for Invoice and Property Damage Claim Form's Schema from first step
Expand Down
Binary file removed docs/Images/ReadMe/customerTruth.png
Binary file not shown.
Binary file removed docs/Images/ReadMe/quickDeploy.png
Binary file not shown.
Binary file removed docs/Images/ReadMe/userStory.png
Binary file not shown.
20 changes: 10 additions & 10 deletions docs/ManualAppRegistrationConfiguration.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ This guide provides detailed steps to manually register both front-end and backe
- Copy the Ingress URL from the Overview .

- Click **Register**
![manual_register_app_web_1](./Images/manual_register_app_web_1.png)
![manual_register_app_web_1](./images/manual_register_app_web_1.png)


### 2. Expose an API
Expand All @@ -37,7 +37,7 @@ This guide provides detailed steps to manually register both front-end and backe
- Admin consent display name: `Access Web App`
- Admin consent description: `Allows the app to access the web application as the signed-in user`
- Click **Add scope**
![manual_register_app_web_2](./Images/manual_register_app_web_2.png)
![manual_register_app_web_2](./images/manual_register_app_web_2.png)


### 3. Configure Certificates and Secrets
Expand All @@ -49,13 +49,13 @@ This guide provides detailed steps to manually register both front-end and backe
- Start (Optional for custom range): Set the starting date of the secret's validity
- End (Optional for custom range): Set the ending date of the secret's validity
- Click **Add** and remember to copy and store the secret value securely as it will not be shown again
![manual_register_app_web_3](./Images/manual_register_app_web_3.png)
![manual_register_app_web_3](./images/manual_register_app_web_3.png)

### 3. Get Tenant ID
- Go to **Tenant Properties** in [Azure Portal](https://portal.azure.com)
- Copy the Tenant ID (will be used in next step)

![manual_register_app_web_6](./Images/manual_register_app_web_6.png)
![manual_register_app_web_6](./images/manual_register_app_web_6.png)

### 4. Set Up Authentication in Web Container App

Expand All @@ -70,7 +70,7 @@ This guide provides detailed steps to manually register both front-end and backe
- **Allowed Token Audiences**: Usually the Application ID URI or Client ID
- Click **Add**

![manual_register_app_web_4](./Images/manual_register_app_web_4.png)
![manual_register_app_web_4](./images/manual_register_app_web_4.png)


## Step 2: Register API Application
Expand All @@ -91,7 +91,7 @@ This guide provides detailed steps to manually register both front-end and backe
- Copy the Ingress URL from the Overview .

- Click **Register**
![manual_register_app_api_1](./Images/manual_register_app_api_1.png)
![manual_register_app_api_1](./images/manual_register_app_api_1.png)

### 2. Expose an API

Expand All @@ -102,7 +102,7 @@ This guide provides detailed steps to manually register both front-end and backe
- Scope name: `user_impersonation`
- Admin consent details
- Click **Add scope**
![manual_register_app_api_2](./Images/manual_register_app_api_2.png)
![manual_register_app_api_2](./images/manual_register_app_api_2.png)

### 3. Configure Certificates and Secrets

Expand All @@ -113,7 +113,7 @@ This guide provides detailed steps to manually register both front-end and backe
- Start (Optional for custom range): Set the starting date of the secret's validity
- End (Optional for custom range): Set the ending date of the secret's validity
- Click **Add** and remember to copy and store the secret value securely as it will not be shown again
![manual_register_app_api_3](./Images/manual_register_app_api_3.png)
![manual_register_app_api_3](./images/manual_register_app_api_3.png)

### 4. Set Up Authentication in API Container App

Expand All @@ -127,8 +127,8 @@ This guide provides detailed steps to manually register both front-end and backe
- **Issuer URL**: `https://sts.windows.net/<tenant_id>/v2.0`
- **Allowed Token Audiences**: Usually the Application ID URI or Client ID
- Click **Add**
![manual_register_app_api_4](./Images/manual_register_app_api_4.png)
![manual_register_app_api_5](./Images/manual_register_app_api_5.png)
![manual_register_app_api_4](./images/manual_register_app_api_4.png)
![manual_register_app_api_5](./images/manual_register_app_api_5.png)

---

Expand Down
4 changes: 2 additions & 2 deletions docs/ProcessingPipelineApproach.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Technical Approach

## Overview
![image](./Images/ReadMe/approach.png)
![image](./images/readme/approach.png)
At the application level, when a file is processed a number of steps take place to ingest, extract, and transform the contents of the file into the selected schema. The diagram above shows a step-by-step overview of the approach for processing.

1. Documents are passed with a specific schema. This request is sent to the API end point and _can include an optional set of metadata for external refencing_. This collection of data is sent to Azure AI Content Understanding Service for initial extraction of content. This utilizes a pre-built layout for extracting the data.
Expand All @@ -16,7 +16,7 @@ At the application level, when a file is processed a number of steps take place

## Processing Pipeline

![image](./Images/ReadMe/processing-pipeline.png)
![image](./images/readme/processing-pipeline.png)


1. **Extract Pipeline** – Text Extraction via Azure Content Understanding.
Expand Down
2 changes: 1 addition & 1 deletion docs/TechnicalArchitecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Additional details about the technical architecture of the Content Processing solution accelerator. This describes the purpose and additional context of each component in the solution.

![image](./Images/ReadMe/solution-architecture.png)
![image](./images/ReadMe/solution-architecture.png)


### Ingress Controller
Expand Down
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file added docs/images/readme/business-scenario.png
Binary file added docs/images/readme/quick-deploy.png
Binary file added docs/images/readme/solution-overview.png
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
2 changes: 1 addition & 1 deletion docs/quota_check.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ eastus, uksouth, eastus2, northcentralus, swedencentral, westus, westus2, southc
### **Sample Output**
The final table lists regions with available quota. You can select any of these regions for deployment.

![quota-check-ouput](Images/quota-check-output.png)
![quota-check-ouput](./images/quota-check-output.png)

---
### **If using Azure Portal and Cloud Shell**
Expand Down
Loading