JSON Schema Regular Expressions

One of the best parts about the JSON Schema evaluation is the simple use of Regular Expressions to validate your data.  JSON Schema lets you embed any regular expression into the properties that you create using relatively simple syntax.

In this example, I have a property (called record-id) that uses a regular expression to only allow alphabet characters, spaces, underscores and dashes.

              "record-id": {

                "$id": "#/record/record-id",

                "type": "string",

                "title": "A unique identifier, used by the institution to identify the complaint in their source platform.",

                "default": "",

                "maxLength": 100,

                "examples": [

                  "RECORD-12_345 Y"


                "pattern": "^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9 _-]+$"


What’s great about this is that I can supply defaults and examples to what is being asked, simplifying the task and documentation for the user.

I love this because I’m not an expert at Regular Expression design and if I were to implement this in my own code outside of JSON-Schema – you’re looking at 4 – 5 lines of code on it’s own making my life a lot

Read More

Data Export Service with Dynamics365 – Gotchas

I had the opportunity to use the Data Export service in Dynamics365 a few weeks ago.  There is a good explanation of the service here and when the implementation is up and running it does a great job of synchronizing data between Dynamics365 and an Azure SQL database.

There were a few gotchas I ran into that I thought I’d write down.

Setting your Azure environment

The trickiest part of the initial implementation is setting up the connection to your environment.

Read More

Defining a JSON-Schema

To get started, if you haven’t already visited the JSON-Schema site, you can do so here.  Much of what I am writing on here, is there.

In defining your schema, there are a few elements I want to highlight in the below definition that starts off any JSON-Schema file.

"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://www.365concepts.com/json-schema.json",
"type": "object",
"title": "My JSON Data File",
"required": [
"additionalProperties": false,

In this document, we have indicated that it will be an object.  JSON-Schema supports many attributes one of which is object that allows us to create individual properties on the objects themselves.

The #id property is largely up to you, but take note of the #schema parameter as this is the specification that are binding to that outlines what you can and can’t do within it.

From there you have the standard title and

Read More

Using JSON Schema

I’ve been having to do some development lately around a project that requires strictly formatted data to be applied against a validated schema.  In looking at options, I evaluated JSON-Schema and XSD.  When looking around for which is better the results came back with neither side one is super superior to the other.  However, since this is for a REST service, I thought let’s go with JSON.

What I like about JSON-Schema is that it’s very quick to get up and running with.  The complete specification is available here and you can read through it in about an hour.  Over the next few posts I’ll highlight some of the key features of the schema and what I really like about it.

To get started, binding an already established file to a

Read More

Getting Started with Azure Application Insights

Where do those lovely trace statements that you write in your Azure Functions go?

How do you access them?

With some recent changes in logging in Azure, you can access all this information via Application Insights directly from your Azure Function.  When you access your function, underneath the “Configured features” sections you will see an option called “Application Insights.”

Clicking on this link will then bring you to a dashboard of real-time metrics that you might be spooling from your service.  However, for today, what we are interested in are the log files that are available from the top of the toolbar menu called “Logs”.



Read More