API

We are using many different endpoints to get data from different sources. Some of them by using the sdks and some of them clean http requests:

-Azure Signal R (Hub):

-Azure Web Application:

https://app-acdc2022.azurewebsites.net/api/telemetry/GetTelemetriesWithTemperature

-Azure Maps Geolocation:

https://atlas.microsoft.com/mapData/{location}/status?api-version=1.0&subscription-key={subscription-key}

-IoT Central:

Internal service from IoT Central to LogicApp and Flow.

-Metamask:

The extension injects the Ethereum web3 API into every website’s javascript context, so that dapps can read from the blockchain. We use it when loggin in onhttps://smartzooapp.webflow.io/ :

Stairway to heaven – because heaven is a nice place

Microsoft with Azure and M365 expose a huge set of API’s for their products. Picking the right ones to ensure the utmost business value is key in any cloud solution today. Here’s three API’s highlighted in from our solutions.

Microsoft Graph API’s

Connector indexing and search for blog rollup in the intranet.

Graph Search API in action against a custom graph connector

Azure Cognitive Services – preview

For each pizza order we capture feedback. Collating the sentiment of the feedback is important in order to improve on pizza quality and delivery service. Each order is ran thru a flow to capture the sentiment score.

Custom connector – calling v3.2-preview

While we could have called the sentiment API with an out of the box connector we opted to use a custom connector definition in order to call the latest and greatest preview end-point – rumored to be 17% more energy efficient!

Sentiment from v3.2-preview

Dataverse

Dataverse is the data hub for Pizza Time where everything pizza data is captured and stored in the most secure way.

  • Showing pizza menu in the ordering apps (PowerApps and Native)
  • Triggering on Dataverse events in PowerAutomate

Microsoft, Microsoft, Microsoft <3

Let’s face it, we all love Microsft (and yes, sometime hates Microsoft, but any type of feeling is a lot better than no feelings!). We use Microsoft technology every day, and of course we use a lot of this in our solution. Let’s go for the one first. Using Power Automate to use data input in Dynamics 365 HR to create a user in Azure AD (I know, you’ve seen this before in a previous post, but it might be easier for you to see everything in one post than for us to reffer to other posts):

Then, why should you leave it up to every employee to create their email signature? Don’t worry, we’ll solve it for you. We’ve created a solution that attach a signature on all outgoing emails that have our company name in Azure AD, configured in the Exchange setup in office365 with data from Azure AD:

Create a disclaimer as a flow rule in Exchange
Applied to senders that are employed in our company, AxShredder Inc
The signature itself is created with HTML-code
And this is how it will be, without data added
And with data added

And then, the night before a new employee starts at our company, have a Power Automate that imports the user in to Dynamics so that the user can log in to the system. Also, connect the user to the correct worker so that it can access the Employee Self-Service to see and edit data regarding himself:

Bombshell Updating recent posts

Her er de postene som vi har oppdatert og kommet med nye. Please review

Tieving Bastards Thieving shellbombs | Arctic Cloud Developer Challenge Submissions (acdc.blog)
Glossy pixels Glossy pixels – Bombshells rebranding | Arctic Cloud Developer Challenge Submissions (acdc.blog)
Sharing is caring Sharing is caring | Arctic Cloud Developer Challenge Submissions (acdc.blog)
Stairway To Heaven Straight up and away! | Arctic Cloud Developer Challenge Submissions (acdc.blog)
Chameleon Dashes and numbers | Arctic Cloud Developer Challenge Submissions (acdc.blog)

Straight up and away!

Power Automate Flow er en kraftfull måte å kombinere businessflyt og integrasjoner med andre systemer. Gjennom å bruke connectorene mot ulike apier, både Microsoft og tredjepart, klarer vi å håndtere notifications, innhenting av brukerdata og utsending av epost i samme logiske flyt.

Når det blir opprettet en ny record i dataverse med sensor data for en enkelt sensor, blir det gjort et HTTPS som starter en ny flyt.

Denne flyten henter først brukerprofilen til en Office365 konto, det blir sendt en e-post til denne kontoen om at en ny trussel er oppdaget på sensor lokasjon (Oslofjorden) også sendes ett dynamisk kort til en chat i Teams.

På det dynamiske kortet har du muligheten til og sende ut Ninja Turtles for og håndtere trusselen. Kortet oppdateres når Ninja Turtles sendes ut.

Her har vi brukt Office365, Outlook, Teams og Dataverse connectoreren. Hver av connectorene kommer som standard-komponenter i PAF og bruker Microsoft sine APIét på baksiden. Dette er til brukerens glede skjult og bruker connection med brukerinnlogging.

Middle-age Mutable Ninja Tuples is integrating with all the things!

The backend for the end-user mobile app (.NET MAUI) is integrating with Dynamics 365 via MS Dynamics Web API, to create SOS alerts and get status updates.

The backend for the Turtle back-office (Blazor web app) is communicating with Azure via MS Graph API to programatically create Azure AD users.

Both backends are retrieving access tokens for MS APIs using MS OAuth API.

The Turtle code-base (GitHub) is configured to automatically post events to Discord, such as commits and releases.

Plug n Play!

The Salespeople get a call from a new customer, they can register a new client using our simple form in SharePoint. The forms have been created using SPFx (SharePoint Framework) with React. The data from the form will then be processed and sent to DataVerse using a Cloud Flow to create a new contact.   

When the form is submitted, it creates a record in SharePoint, which we then create a contact in DataVerse with.

When the customer gets created in DataVerse we figured out we want to create a flow that alerts on both email and teams chat when a new customer arrives, this allows our resources to verify the customer and add the customer to our flow.

When a contact record is created, we automatically post a message in teams and send an email to our dedicated email.

Tag: Plug’n’Play & Stairway to Heaven

Dude, where’s my dog?

Ever wondered where your dog are when there’s no food around? How about asking Cortana, Siri, Alexa, or even better Boten Anna?

We have created an integrated solution, with CI/CD in Azure Devops, Cognitive Services, Azure Functions and Power Virtual Agent.

The solution starts with an Azure Function written in Visual Studio.

When code is completed, committed and Pull Requested into the main branch, our CICD pipeline (YML) fires and pushes the solution to Azure Functions

The Azure function is running with a set of pre-captured surveillance images (Due to GDPR we are not using live video). Each folder consists of three photos, one from the kitchen, one from the hallway and one from the livingroom.

Azure Blob storage

Each of these photos will be evaluated with the cognitive service vision functionality. Each of the evaulated photos will be returned with an url for the user to check, and with a textual answer to where the dog is actually located.


Boten Anna

The evaluated images:

https://acdc2021storage.blob.core.windows.net/dogimages/DogOrder/03/gang.jpeg
https://acdc2021storage.blob.core.windows.net/dogimages/DogOrder/03/kjokken.jpeg
https://acdc2021storage.blob.core.windows.net/dogimages/DogOrder/03/stue.jpeg

With this solution we claim the following badges:

  1. Power User Love – for usage of the Power Virtual Agent
  2. Stairway to Heaven – For the usage of Azure Devops, Azure Functions, Cognitive Service, Azure Storage, Power Virtual Agent
  3. Power of the shell – for the CI/CD YML publishing
  4. The Existential Risk – for usage of AI through Cognitive Service Vision
Power User Love
Stairway to heaven
power of the shell
the existential risk

Family Engagement API

Enabling external developers to utilize the “Family Engagement Platform”

Technologies:

  • Azure API Managment
    • Api
    • Products
    • Subscriptions
  • Azure Function Apps, with httptriggers
    • Key vault
    • ADFS Application with Auth and setting of access in the Contoso AD
  • GIT
  • Web application
  • Azure DevOps
    • Piplines
    • Deploys

Repo in Azure DevOps
Connected to a Pipeline and Release
Deployes to a Azur Function App, With HTTP Triggers
Client Id and Secret is stored in Key Vault
Howto referance Key Valut value from Configuration
Created an AD Identity to talk to KeyVault
Key Vault
The function App is given access to the Key Vault
And the 2 values in the key vault

Contoso Domain

App registert for the function App to access the Contoso Domain

Permissions given for the app in App Registrations
You need to give Admin Consent to the permissions under Enterprise Applications

API Managment

Base information about the backend this api is calling. For now there is no authorization
The API is defined in API Managment (APIM)
Setting a parameter for all endpoints, the value is stored under Named Values.
The code value can be obtained from the Function App, using the Master key you can use the same Code for all functions in that app.
Define the products that should be available in the API
Create a user that is given a way to access your API
Her we can see that the user Kai has been granted access to the product Family

Then we wil try to call the API

This is about it, now we have an API exposed through APIM backed by a Function App reacting on HTTPTriggers.

The function app uses the Graph API to read Groups and Members in the Contoso domain from the Slevik Vel dominan.

We are wrapping Groups and Users as Family and Family Members.

External Apps

The Family Engagement API is available for remote applications and apps that want to develop and use the family engagement platform. As an example: The family engagement web application is intend to use the API to fetch family members and calendar events from the Microsoft Graph API and statistics from The Family Graph API.

CI/CD

Family engagement APP inside Microsoft Teams

Family engagement APP from browser

We also created a React app based on Fluent UI (microsoft.com)