How to reset content of the developer portal - azure-api-management

The Azure APIM developer portal (new one) has been edited and now some of the menues dont work.
Is it possible reset the content ?
I have tried the capture.bat (from another APIM instance) and generate.bat into the broken instance but it didnt appear to work - i even made changes to one of the jpg files in the scripts.v3/media directory but it didnt get changed in the portal when i ran generate.
I find the "run your own hosted developer portal" scenario confusing. I am unclear on:
where is the content held for the unpublished managed portal ?
where is the content held for the published managed portal ?
where is the content held for the unpublished "own hosted" portal ?
ie when running locally (npm start on the Github repo code)
where is the content held for the published "own hosted" portal ?
When developing on a self hosted scenario, ideally i think it would be benefitial to hold the content locally so that it could be placed in source control. Failing that, is it possible to customise such that the "run your own hosted developer portal" content is in an accessible location such as a blob in a container on the same storage account that the code is being published to? That way I could copy content from an unbroken APIM into a storage account and develop with that.

Is it possible reset the content ?
Yes. Have you actually tried the simplest solution?
Open developer portal in edit mode:
Click reset content
where is the content held for the unpublished managed portal ?
where is the content held for the published managed portal ?
Same place - in the APIM resources. When you edit developer portal and you save it,
other users won't see those changes until you click publish.
You can also use developer portal revisions, from REST API or directly from Azure Portal. This will give you an opportunity to go back to previous revisions. So if you are publishing manually, after you edit and save developer portal I recommend to go to the revisions tab in azure portal and publish it from there - this way you will have simple version control.
For managed version, important thing to understand is, "content" consists of:
content types and content items which are just json template files describing your pages on developer portal. Those can be accessed by REST API here and here (this is a parent child relation).
and your uploaded custom media (images, fonts etc.) that can be retrieved from APIM Blob Storage. To get SAS URL for APIM Blob Storage and connect to it, just call your APIM Management API with address POST /portalSettings/mediaContent/listSecrets/ - this URL is not documented but you can call it like any other endpoint.
And that's it. That's all you need - json file and media files. The rest is managed for you. And in fact that's what those scripts from github repository are doing. capture.bat for example is downloading all the media and json from developer portal and saves it to your local folder. So you can for example save it to source control or/and upload to another APIM developer portal instance.
When managed developer portal and online editor is not enough for you and you need more customization, like custom widgets etc., you can go with self hosted version. It gives you more freedom but the downside of course is you are responsible for its upgrades.
where is the content held for the unpublished "own hosted" portal ? ie
when running locally (npm start on the Github repo code)
When you run npm start it just runs locally like when you develop any other webpage. In this case it uses webpack-dev-server to host the page.
where is the content held for the published "own hosted" portal ?
Wherever you feel like it. That's the idea behind the self-hosted version. After you are happy with the changes you've made, just run npm run publish and files will appear in dist folder. Then you can upload them to the resource of your choice. This tutorial shows you how to enable hosting of static websites for your blob storage and host your developer portal there. Everything is explained, just follow the article carefully step by step (don't skip any step, every single one is important in order to successfully configure and deploy your self-hosted developer portal). Good luck.

Related

How to prevent Google Chrome from blocking my installer package

I've prepared and published on my website an installer package with the software I developed. The package is compiled and bundled into .exe file using WiX toolset and contains no viruses or malware. Next when I try to download the file I get a notification from Chrome that it's blocked due to malicious content.
Malicious content warning
I'm really upset that my customers being misinformed with such warning. Any ideas how to get around it?
Google created this page for developers - https://support.google.com/webmasters/answer/3258249.
Even though it doesn't say it on there, almost all auto-detection software will not block software that is digitally signed (and there is no bad reputation associated with the signing certificate).
If it's a simple file, just upload it to Google Drive or DropBox, and generate a public link for it and then share it on your website.
You can also shorten that link, if your application provide this service, or via goo.gl, in order to view clicks' count.
If any developer come across this issue, I manage to resolve it by streaming the downloadable file instead, via different URL (which doesn't have the file name and its extension with file's full path on your hosting).
Doing so by manipulating the response header, will fix the issue.
Here is a useful link about streaming a downloadable via php script

How can i share a wirecloud marketplace between users

I built some widgets and uploaded on my local marketplace, is there a way to share that?
And better is it possible to share a Mashup (the widget composition) without giving the
possibility to wiring to the user?
I mean the user should use an application layout without change anything.
You can make public your workspaces/dashboards following the steps documented in the user guide. Only the owner of a workspace will be able to modify it. I think this is what are you searching for.
Another option is to create a packaged mashup using the "Upload to my resources" option in the editor view:
Take a look to the "Advanced" tab, where you can block widgets (make them unremovable), block connections (make wiring connections unremovable) and embed used widgets/operator (by default packaged mashups depends on the user having installed all the required widgets/operators. This way you can distribute the widgets and operators used by the mashup in the same package).
However, take into account that this method is meant for sharing mashup templates, the user will always be able to add additional widgets and create new connections in the wiring view.
Once packaged, mashups/dashboards (and widgets and operators) can be uploaded to a WStore server (e.g. to the Store portal provided on FIWARE Lab) for sharing them with other users. The steps for making this is also described in the WireCloud's user guide.
I have the problem, revisited.
I have set up a working Marketplace instance (v2.3) but am unable to integrate it with Wirecloud. The marketplace is correctly registered but all the requests i am making to this Marketplace are throwing 502 error, even though i am actually able to see some results when querying the Marketplace server through a browser.
Indicatively, i can issue a GET command at http://:8080/FiwareMarketplace/v1/registration/stores/ and get an answer, but Wirecloud's internal APIs return a 502 (Bad Gateway).
Any idea on what might have gone wrong?
PS: This happens for WC v0.6.5. When upgrading to a newer (Beta) version of WC, everything seems to be performing as expected, i.e. the marketplace is correctly inserted and the stores are correctly retrieved and processed.

creating and uploading an application into facebook apps

I recently created a HTML5 game locally on my PC. Then, I went to the Facebook developer website and created a new application but it asks you about the link to the application.
My application is local and I don't have any hosting website. I tried to upload it via jsfiddle, but they didn't accept it as a valid link. What should I do?
I suggest reading the Getting Started manual on Facebook Help Center, that will get you started very well. Make sure you follow the steps and search for more information there.
You are not able to use JS Fiddle for your Facebook application, you need to have some website to host the application in. There are several cheap (some free) web hosts, which you can use for hosting. It is always better if you can buy your own web domain and host, this way it's guaranteed that it will work.
When you have your domain set up, you create a folder for your application on the FTP server and use the address (e.g. http://example.com/myapp/, https://example.com/myapp/) and place that address into the Canvas URL field on the configuration panel in Facebook Developers site.
The steps on how to continue from now on can be found from the manual linked above. Hopefully this helped you out!

Custom Extensions on Managed Chromebooks

I am a developer looking for the best way to set up different schools with their own custom, private extensions (ie School A should be the only one with access to Extension A). Theoretically, I am aware that there are a few ways to get a custom, private extension pushed out on a domain:
Host the .crx on a server and click "Specify a Custom App" in the management console.
Create a Domain App by uploading a zip to the Chrome Web Store
Upload the extension from my developer account to the Chrome Web Store and publish to a single "trusted tester," or make it unlisted
Option (1), hosting the .crx, has not been working. I am not sure why, but the extension is simply not pushing out. I link directly to the crx file, which has the right ID and MIME type, still, no dice. If anyone has any tips or suggestions for getting this to work, I would love to hear them!
Option (2), having the school create a domain app, seems a bit inefficient because it requires all schools to upload their own zip. So essentially I would have to email a zip file to the school, and have them publish it. All updates to the extension will also require a similar process, so this doesn't seem ideal.
I doubt that option (3) would work. If I published to the admin as a "trusted tester", I don't think that the other people in the domain would be able to access it. If it is unlisted, I do not know how an admin could find it in the Chrome Web Store dialog. Also, I would rather avoid security through obscurity.
Has anyone had success with hosting the extension and using the Specify a Custom App feature? Any other suggestions for getting a Custom Extension pushed out by the management console? Thanks so much!
To get option (1) working from the management console, it is important to specify the correct extension id and a valid update xml url (not a crx).
One useful feature Google offers that you can use is getting the extension id and the version from the update request.
For instance, you can create a update.php file that outputs an xml file specific to each extension and version. See http://developer.chrome.com/extensions/autoupdate.html under "Advanced Usage".
For more info on packaging an app or extension for managed chromebooks, see https://support.google.com/chrome/a/answer/2714278?hl=en.

How do I get widgets to render on a live site with Orchard CMS?

I have an Orchard-based site that contains an some widgets. All my widgets work fine on my local dev instance, but they aren't rendered at all when published on my live site. I've published it directly via FTP copy and via WebMatrix's publish feature. Makes no difference. I don't get any error messages. Anyone know if I'm just needing to tweak a web.config somewhere?