Posts

Create Azure DevOps Pipeline for React App deployment to Azure app service

 Disclaimer: All opinions in this post are mine and not my employer (Microsoft). If you know of a more correct or performant way to accomplish work discussed in this post, please let me know at email javascript-developer@outlook.com . Many projects I work on are in progress by the time I work on them. I can't change previous design or architecture choices, but just solve a specific technical issue.  Secrets stored in Azure Key Vault All secrets for the React app are stored in Azure Key Vault. These secrets need to be pulled from Key Vault and set into the environment so that the `npm build` script uses those values. In order for the Azure DevOps Pipeline to connect to Azure Key Vault, you need to complete some work before you develop your Pipeline: Create a Key Vault and store your React build secrets, such as an Azure Functions key, used to authenticate and use the Function. Your secret doesn't have to have the same name as your React build variable. Please don't try. Ke...

Moving database from Azure SQL to localdb

I recently moved an Azure SQL database back to a local development database and ran into a few issues. I took these notes so that they might help the next person that hits the problem. In my local SSMS, I use the Import/Export wizard with the datasource using SQL Server native client 11.0. This moves the tables and data. Any destination tables will not have IDENTITY as the source tables did.  Solution # 1  Move away from INT Identity to use GUIDS. This requires work in the database and client code but is the better choice if you need to move data out of the source datatabase then back into the source database.  Solution #2 More immediate fix to get past the block that your inserts don't autoincrement.  Steps: The following steps are completed in SSMS in the destination (local) database and should have all the data but not the IDENTITY column. Rename the mytable to mytable2. Generate CREATE, INSERT, and SELECT scripts for the table. Modify the CREATE script to use the...

Node.js, npm, yarn, & those lock files

The following is my opinion and doesn't represent my employer.  Install Node.js If you are like me and work across operating systems and environments (local, container, cloud), you have one or two bullet-proof ways you install Node.js. The Node.js organization has done a great job of listing those.  I'm sticking with the following: * For Windows installations - use the Windows download .  * For all other installations, including VM, Container, Mac, *Nix - use the bash script Never, under any circumstances, use the apt or apt-get package manager to install Node.js. At this point, that is equivalent to a code-smell.  NPM vs YARN NPM should be your package manager of choice when installing an NPM package. If you run into problems, log an issue .  Debugging Node.js projects with NVM and lock files The Node Version Manager (nvm) and lock files are for the developer of a project to be able to get back to an exact version of the entire development environment to debug ...

Hosting front-end applications on Azure

Image
I have a catalog of small front-end Javascript apps built with Angular (ng) and React (CRA and Next) I would like to host on Azure. Hosting on Azure Azure provides features for a web host: * Options from big to small - full VM , container , web app , or host static website * HTTPS and URL - every Azure resource is served via HTTPS with a dedicated URL - no need to buy a certificate or domain name until needed. No Configuration changes In order to reduce hidden problems, each front-end app should be installed and running with no configuration change away from the development environment such as a to change the routing of assets from absolute to relative, or folder and subfolder naming. Consistent & immediate deployment Once the app is ready to deploy as a collection of static files, there shouldn't be a need to spend time preparing the hosting environment. The front-end system deployment steps should be consistent regardless of which front-end framework the proje...

OSS @Microsoft - Docs

Open source software (OSS) at Microsoft allows everyone to see, comment, and contribute to the products, services, documentation, sample code, and SDKs they use. I work at Microsoft and my opinions are my own. The Microsoft documentation set is not a single GitHub repository. It is many repositories, all with active writers, support engineers, and SLAs. When you see an issue in the docs or you think a concept or technique is unclear, GitHub repositories allow you to: Add an issue, via an Edit button , that is sent directly to the Product group or Content Developer.  Create a pull request (PR), that is sent directly to the Product group or Content Developer.  Is this open source though? Absolutely. You can immediately impact all users of the docs in a positive way. 2 things you can do when logging an issue against the docs: Be specific. Your comment is attached to the entire doc. Be specific where in the doc the issue is and what wording, image, or sample cod...

Fetching a Private Key From An Azure Key Vault Certificate

If you create a private certificate in Azure Key Vault and use the fancy features like auto rotation, you might like to be able to fetch the private key from the vault and rehydrate it as a X509Certificate2 class in your C# code. Here is how you do that: KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetToken)); var certificateBundle = await keyVaultClient.GetCertificateAsync(certificateIdentifier); var certficiateSecret = await keyVaultClient.GetSecretAsync(certificateBundle.SecretIdentifier.Identifier); byte[] certificateDecoded = Convert.FromBase64String(certficiateSecret.Value); var certificate = new X509Certificate2(certificateDecoded, password: ""); The Certificate Bundle passed back from the  GetCertificateAsync call has a .Cer property, however that is just the bytes for the pubic key, if you do this: var publicCertificate = new X509Certificate2( certificateBundle.Cer ); The X509Certificate2 instance will onl...

Regex to search VSCode for Azure subscription keys

Image
Before you check in code, make sure the Azure subscription keys are removed or replaced with obvious markers. In VSCode, select the magnifying glass, the select the last icon on the line, "*." indicating the search is by regular expression. Enter [a-z0-9]{32} in the search text box and select enter. The search results appear below the search text box. Scan the results for any highlighted keys that are real key values.