Azure Resource Template for new api app resource - templates

I want to create an Azure Resource Group template which includes the new api app resource. I say new since api apps have changed: App Service API Apps - What's changed
.
I tried this Create a Logic App plus API app using a template . Note: I don't want to create a logic app but this example also includes an api app. When I run this example I get a message: There is a new version of API Apps. Click here to learn more. So this is not the correct example. I can't find a better example.
Note: when I simply add "kind: apiapp" to the "Microsoft.Web/sites" resource, no apiapp is deployed, I also don't get an error.
So my question is how to create a new api with Azure Resource Templates.

I contacted MS for this, they helped me and now it's fixed. Their answer:
Have you installed the new Azure SDK version 2.8.2.1? In that release (actually in 2.8.1 and beyond) we added “Export ARM Template” capability to the provisioning UI. So when you go to publish, then click the New button, you can export your ARM template. That way you’d be able to see exactly the right syntax for creating an API App.
So in VS create a web application, publish it to app service, check api app and then click the export button and you get the correct json.
See also:
https://feedback.azure.com/forums/223579-azure-portal/suggestions/7163577-ability-to-export-a-resource-group-as-a-template

Related

Terraform UI for non technical CLI users?

I currently have a server build process that uses Terraform and deploys a server all from code.
I'm looking for a web UI with forms that I could either populate specific fields and or do API get commands against a VCenter or wherever the server is being built to populate the specific fields. The fields that get populated would be stored as the variables.tf file and when someone hits submit, it would run the actual Terraform command terraform apply to build the server based on the variables. My guess is the terraform binaries would have to live on there so it could run in the background.
It doesn't have to be some super fancy web page, just something that I could potentially make look cool for Director level folks.
Also, I don't want to use TF enterprise, yet. I've looked into a couple of open source projects (atlantis and terrahub) but none seem to be what I'm looking for.
I'm far from a web developer so any help would be awesome.
You can try with SLD
Stack-Lifecycle-Deployment
I think it has everything that you need
It is very intuitive, it has a web interface and a rest api to easily integrate it with the rest of the applications.

How to implement AWS Cognito (ionic)

I am trying to implement AWS cognito service into my app (ionic 2/3), from scratch. I have no previous experience with AWS.
I did make work the ionic2-starter-aws project (even if the tutorial was missing a lot of things) but since I was importing a project into the mobile hub, I did not learn anything useful for my App.
What I did:
Made my app work without any AWS service.
Created a mobile hub, added a user pool (User Sign-in)
Activated Hosting And Streaming (from the Mobile Hub) and downloaded aws-config.js
Copy/pasted providers files from https://github.com/ionic-team/ionic2-starter-aws /src/providers/ (they were made for aws connection, no point in re-writing them I guess)
Here I tried adding aws-config.js different way (into src/assets, same place than index.html, at the project root, ...) without success, all I get is AWSCognito is not defined. This error laid almost no result so I guess I forgot/did something wrong at some point (I am guessing it come from declare var AWSCognito: any; inside aws.cognito.ts but it wasn't declared before, but why does it work with ionic2-starter-aws then ?)
What are the steps to implement Cognito ? Lots have been made for javascript but they doesn't seem to work for typescript ?

Need guidance on how to obtaining ADAL access_token in Ember SPA via JSLL

I have and Ember SPA that uses JSLL to interactively log a user in and then make cross-domain calls to our dependent services. I'm working on a VSTS Release definition that will deploy the app then invoke a particular 'health page' that executes synthetic transactions to the dependent services and reports.
What I need guidance on is the proper way to bypass the interactive login but still be able to acquire heedlessly the access_token(s) needed for the ajax calls to the dependent services.
VSTS provides a SYSTEM_ACCESSTOKEN build variable that would make secrets management very simple but I don't think it is well suited for what I'm trying to do.
The best way I can figure is to create a service principle in AAD, provision that account with my dependent services and programmatically login to acquire the token then just use that token for the Bearer token in the Authorization header.
Is there any better approach?
If that is the recommended approach can someone point me to the JSLL/ADAL API that would accomplish that?
You can refer this code sample to integrate Azure AD with Ember framework. After you download and run the project, you may find the error about container.lookup is not a function since the reference to Ember is the latest version.
To make the code sample work, you can replace the Ember reference using the version 2.0.0-beta.3 like below:
<script src="https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.0.0-beta.3/ember-template-compiler.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.0.0-beta.3/ember.js"></script>

SharePoint-hosted Task pane app not authenticating

Summary:
I have an Office 365 E3 account where I'm trying to deploy a Word task pane app that will read some SharePoint list data. Right now, I'm just trying to get the task pane app to load, however, it shows the Office 365 login page (in the pane) but does not do anything after clicking Login.
Details:
I went through the instructions provided here:
http://msdn.microsoft.com/en-us/library/office/fp179815.aspx
Basically, I create an App for SharePoint configured as SharePoint-hosted, then in the same project, added an App for Office (Task Pane App for Word only). The SharePoint app also has a custom document library.
I am able to install the app to my App Catalog, and it correctly shows up in Site Contents where I see it being provisioned to the app web. I can also launch Word 2013 with the Trusted App Catalog configured correctly, and I am able to see my Task Pane App and insert it. When I click Insert, it loads it but prompts for credentials.
I am using the same credentials all throughout this exercise so by virtue of being able to install and deploy the SharePoint app, you can trust that I'm providing the right credentials.
It also appears the custom document library is never created - I wonder if both suffer from the same underlying issue.
I encountered the same problem and the solution provided in the answer below did not help.
After some desparation i created a taskpane app using the Napa Cloud App, opened the application in Visual Studio and went looking for differences.
In the Taskpane app manifest.xml file i found the following entries which were missing in my own application manifest:
<AppDomains>
<AppDomain>https://login.microsoftonline-int.com</AppDomain>
<AppDomain>https://login.microsoftonline.com</AppDomain>
</AppDomains>
This solved my problem and cured one horrible friday.
I was able to get this to work. It turns out doing a Deploy from Visual Studio (whether you right-clicked Deploy or F5-debug), the installation of the app isn't enough.
To make it work, I skipped doing a Deploy all together, but instead published my app. I then took the .app file and loaded it in my App Packages folder, and then deployed it from there.
Unfortunately, I don't know the difference between the two, but I'm assuming it has something to do with provisioning the app web for the Office App.

How can I login programmatically into Sitecore?

How can I login programmatically into Sitecore?
For example if you would like to connect a small part of the Sitecore API to a desktop application, you would need to login into sitecore first to access the databases etc.
Can this be done?
As Mark said, you will need to create a web service that your desktop app will talk to. If you need to deal with permissions in that service you have two options.
Use a SecurityDisabler to make your webservice run in the context of an Admin user.
using (new Sitecore.SecurityModel.SecurityDisabler())
{
// do stuff here
}
For more specific control you can use a UserSwitcher.
From the Security API Cookbook page 34
string domainUser = #"domain\user";
if (Sitecore.Security.Accounts.User.Exists(domainUser))
{
Sitecore.Security.Accounts.User user =
Sitecore.Security.Accounts.User.FromName(domainUser,false);
using (new Sitecore.Security.Accounts.UserSwitcher(user))
{
//TODO: code to invoke as user
}
}
Not really. What you can do, however, is write a supporting web service for your desktop application, and have that run in a Sitecore context.
There is an easier way to accomplish your goal:
Create a desktop application and
reference the same version of the
Sitecore binaries that your web app
uses.
Configure your desktop application
to point to the same Sitecore DBs as
your web site.
Use the security disabler and then
set the context as follows:
Sitecore.Context.SetActiveSite("website");
Sitecore may tell you that what you are trying to do will not work. But trust me, this works and I've used this method in a project before.
Additional details:
Sitecore uses the Master, Core and Web DBs as it's data store. My suggested method uses Sitecore APIs to write directly to the DBs. When using this method, you'll need to be aware of the cache implications.
cheers!