SFOC Creation Tool

System Profile

System Full Name

Complete a Special Flight Operations Certificate (SFOC)

System Full Name (FR)

Certificats d’opérations Aériennes Spécialisées (COAS)

Business Support Team

 

Business Administrator

Sylvain Bourque

Business Owner

Alex Shadeed

Director

Ryan Coates

Subject Matter Expert

Nikolay Melnik/Peter Khouri

Division

 

NTARS Code

 

Option Analysis document

https://034gc.sharepoint.com/:p:/s/DroneDEVteam/EU8W_fqlqoJKrbFTDgrM-VsBGvKDkSsa1nd8YOK9_1SNTQ

App registration

https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/Overview/appId/22897920-2e0b-4e97-80ca-fbc41c5805cb/isMSAApp/

KeyVault

https://portal.azure.com/#@034gc.onmicrosoft.com/resource/subscriptions/fde9cf97-7bf0-4373-9fbd-eba18c6e0dfc/resourceGroups/TC-DevTest-CivAv-RGP/providers/Microsoft.KeyVault/vaults/civav-dev-keyvault/overview

Source Code Location

https://dev.azure.com/transport-canada/AFCCC-Civil-Aviation-RPAS/_git/SFOC

Source Code Power Automate

https://canada.flow.microsoft.com/manage/environments/Default-2008ffa9-c9b2-4d97-9ad9-4ace25386be7/flows/shared/64120641-bc51-41b8-9ca3-1c6c9122196a/details

Source Code Azure Functions

https://dev.azure.com/transport-canada/AFCCC-Civil-Aviation-RPAS/_git/SFOC?path=/DocumentMerge

Excel file with questions

https://034gc.sharepoint.com/:x:/r/sites/SFOCInspectors-InspecteursCOAS/_layouts/15/Doc.aspx?sourcedoc=%7BDE1D7B79-A182-44BB-84CF-3C9948B261A7%7D&file=SFOC%20Creation%20Tool%20Questions.xlsx&action=default&mobileredirect=true

How-To and Fixes

Questions with answers of this application can be modified in DataHelper class of the Sfoc project.

Word template documents are located at https://034gc.sharepoint.com/sites/SFOCInspectors-InspecteursCOAS/Shared%20Documents/Forms/AllItems.aspx?ga=1&id=%2Fsites%2FSFOCInspectors%2DInspecteursCOAS%2FShared%20Documents%2FGeneral%2FSFOC%20Certificates&viewid=a3871bfa%2D1995%2D431c%2D9a8c%2Dd6f12dc94347 . SFOC Certificates folder contains Word documents for Production (folder SFOC_Production_Templates_NOT_EDITING) and Word documents, which are using to update files in Production folder (SFOC_Template_EDITION_COPY). The client updates document in COPY folder and creates request (now its BUG) to update related document in Production.

There are 2 steps required to update Word documents in SFOC Creation Tool:

  1. Copy updated file from COPY folder to NOT_FOR_EDITING folder. This can be done by selecting updated file and Copy to command to copy file to the production folder to override existing file in the Production folder. This update affect SFOC Workflow solution links, which points to none-existing Word files.

  2. Update link to this document in Power Automate solution “SFOC Workflow”

Note: There is hidden Populate Word Template action inside of “Check if over 25kg/Scope”. Do not forget to find and update it, if related file is updated in Production template folder.

Steps to update template documents are following:

  1. Launch “Power Automate“ application from SharePoint left top menu and open and edit “NewSFOC flow V2” workflow solution.

  2. Find related “Populate a Microsoft Word template” action. This action for “SFOC-RPAS Base Template.docx” is located in the first Populate a Microsoft Word template” and all other are located inside of condition actions. After finding required template file *File field can be edited to point to right version of the file.

  3. After updating links for every updated file “Save” the solution and validate SFOC Creation tools, ensure that the tool generates desired output file.

To create a new action for population of Word document the following steps should be done

  1. Add “Populate a Microsoft Word template” action and update fields, similar to other action

  2. Add HTTP action with “POST” method, similar to other HTTP actions

  3. Add “Set variable” action to update InProgress variable value.

To work with Power Apps is required to have a User license, which allows to save Flows with Premium features. If the license is expired or never has been granted click the following link which will direct you to a Power Apps License Request form.

Power Apps Per User License Request - Power Apps

You will get after short period an email from the “Power Apps Centre of Excellence (PACE)” group with confirmation of your Power Apps per User license has been granted!

Technology Assessment

Platform Type

Web (Internal)

Database Platform and Version

 

Development Language and Framework

 

Operating System and Version

 

Additional Dependencies

Visual Studio 2022

Authentication

Azure AD

Environment Access Information

ENV

UNC

URL

DB

System Overview

 

Good To Know

Initial documentation: https://tcmarin.atlassian.net/wiki/spaces/DDMP/pages/2364997634

No information will be saved in a database. All information is considered transient information inside the flow.

Azure Resources

Resource

Development

Non-Production

Production

Resource

Development

Non-Production

Production

App registrations

CivAv-Dev-Reg-SFOC-COAS

CivAv-Acc-SFOC-COAS

 

Resource Group

TC-DevTest-CivAv-RGP

NPRD-CACN-SFOC-TEST-RGP

NPRD-CACN-SFOC-ACC-RGP

 

Key vaults

civav-dev-kv-sfoc-coas

civav-test-kv-sfoc-coas

civav-acc-kv-sfoc-coas

 

App Services

civav-dev-web-sfoc-coas

civav-acc-web-sfoc-coas

 

Function App

civav-dev-fn-sfoc-coas

 

 

Blazor App

App Service Plan

 

ncasafsecsurasp

(Linux)

civav-acc-plan-sfoc-coas

 

App Service Plan

Azure Function

ASP-TCDevTestCivAvRGP-a8fb

(Windows)

 

 

 

Container registries

civavcontainerregistry

 

Note: We have one container registry for Civav’s portfolio in Development and Non Production environment because of the cost related to this resource.

Deployment

Dev Environment

App Service

Note1: It’s important to create a service connection in your DevOps project to have access to Azure’s resources inside your resource group.

Note2: It’s important to create a service connection in your DevOps project to have access to the Civav container registry

Assets

Diagrams source files (to be opened in Draw.io):