Accéder au contenu principal

Oracle Sites Cloud Service - Apps

It's possible to add kinds of widgets (named APPS) inside any page of a site built with Oracle Sites Cloud Service (SCS).
Any app is materialized by two URL:

  • a Renderer Url which will render any HTML fragment inside an iframe tag at runtime
  • a settings url which will be rendrered at design time in the settings menu.

all URLs must be called through https (meaning that the called server has to be ssl enabled)
In the following samples, we integrate:

  • a dummy app (a simple html page produced with node.js) which demonstrates the parameteres caried by the Sites Cloud engine when calling the backend server, 
  • a regular Apex report or form, 
  • a custom report which calls a rest api generated by Apex /ORDS

Sample node.js server.js


below is a sample of parameter values get from a dummy node.js server

Main call


id=26e45e21-dbb6-4877-9886-482b37213d2f
instance=eyJpbnN0YW5jZWlkIjoiQTI0NUNFNUNFNjA5MjE1REZBRTA2RTQyRjExOThBNThFNzc4RDc5NzFDMkIiLCJzaWduZGF0ZSI6IjE0NTAxMDg1MDU3MzEiLCJzaXRlZG9tYWluIjoiZG9jdW1lbnRzLWZyZ21mYWN0b3J5dHJpYWwuc2l0ZXMudXMyLm9yYWNsZWNsb3VkLmNvbSIsInBlcm1pc3Npb25zIjpudWxsLCJlbnRpdGxlbWVudHMiOiIifQ%3D%3D.nnzuo3PtOvuCG1yM3qreNGkzwSfaIRaGqcR54tsP1h8%3D
cacheBuster=603206034
width=300px
height=515px
viewMode=navigate
locale=fr
settingsId=
customSettingsData=%7B%7D

Settings :


id=settings-26e45e21-dbb6-4877-9886-482b37213d2f
instance=eyJpbnN0YW5jZWlkIjoiQTI0NUNFNUNFNjA5MjE1REZBRTA2RTQyRjExOThBNThFNzc4RDc5NzFDMkIiLCJzaWduZGF0ZSI6IjE0NTAxMDg1NjQ4NzAiLCJzaXRlZG9tYWluIjoiZG9jdW1lbnRzLWZyZ21mYWN0b3J5dHJpYWwuc2l0ZXMudXMyLm9yYWNsZWNsb3VkLmNvbSIsInBlcm1pc3Npb25zIjoiU0lURV9PV05FUiIsImVudGl0bGVtZW50cyI6IiJ9.aMC6XtXcpExqgWjOPvZqb3yOFdGXIYmzy1XFx9hKUCI%3D
currCompId=26e45e21-dbb6-4877-9886-482b37213d2f
width=300
locale=fr
origSettingsId=
settingsId=9271b3c5-fba5-4d0f-afd9-c8e6d1b2aa74
customSettingsData=%7B%7D

in order to avoid undesirable call from other sources, a secret key must be shared between Sites Cloud and the backend server. This key is used for encryption of instance value. It's responsability of the backend server to decrypt this value with the help of sdk provided in documentation.


















cf parameter list in documentation of SCS.

Content of appinfo.json:

{“iconUrl”:”/_sitescloud/sitebuilder/components/images/icon/app.svg”,”appName”:”appelConsole”,”appDescription”:””,”appGUID”:”4fed0cdf-8174-4cc8-b6c3-f517ae348ae6″,”endpoints”:{“widget”:{“url”:”https://xxxxxxxx:7777″,”height”:300,”width”:300},”settings”:{“url”:”https://xxxxxxxxx:7777″,”height”:400,”width”:300}},”supportInfo”:{“supportUrl”:””,”supportEmail”:””,”supportPhone”:””},”company”:””}

Integration with Oracle Application Express (APEX)


just by registering an Apex URL, it's possible to add nice report or form inside a page.
Prerequisite; At Apex level:

  • Authorize launching apex application through an iframe
  • Choose the Universal theme and modal template for the page, in  order to put away all navigation stuff





Limitations:
I was not able to create a single apex applications with multi purpose page inside because deeep linking option causes problems. So, I have to switch back to a strategy where I create ONE Apex application each time I want to have a new page.

Calling a node.js app wich calls a Apex rest APi


This app calls a node.js page which in turn calls a REST api built with Apex /ORDS)

Parameters passing


The behaviour can be something strange because extra parameters dedicated to SCS are pushed at the very beginning of Apex url:


Sometimes, I get an error message if I go through the design console of Apex just before calling the site. That must be keep in mind.


Commentaires

Posts les plus consultés de ce blog

Oracle Documents Cloud Service - Using Upload File REST API

If the Upload File sample given in ODCS documentation is used "as is", we get a http 400 error. The syntax is strict and every blank line must be empty (no space character for instance). If we cust and paste the sample, there are residual space characters which must be removed. So, use this pattern instead: -----1234567890 Content-Disposition: form-data; name="jsonInputParameters" { "parentID": " " } -----1234567890 Content-Disposition: form-data; name="primaryFile"; filename="example.txt" Content-Type: text/plain Hello World! -----1234567890-- instead the original one: -----1234567890 Content-Disposition: form-data; name="jsonInputParameters" { "parentID":"FB4CD874EF94CD2CC1B60B72T0000000000100000001" } -----1234567890 Content-Disposition: form-data; name="primaryFile"; filename="example.txt" Content-Type: text/plain -----1234567890-- Tests can be...

Configuring Oracle Cloud as the Service Provider with SimpleSAMLphp as IDP

In order to establish SSO between enteprise backend and Oracle Public Cloud, it's possible to use SimpleSAMLphp (Federation tool) as an in-house Identity Provider , and setup Oracle Cloud as the Service Povider . Cf official documentation Managing Single Sign-On about the concept. SSO relies on SAML 2.0 standard. Tasks At the Identity Server (IDP) level Install Apache and PHP 5.3 + Install SimpleSAMLphp Just Follow documentation and  yum install php53-mcrypt   instead php-mcrypt if linux complains about it. Test with a simple SP provided with SimplePHPphp. Don't forget to un-comment the  example-userpass ! Export the metadata in a XML file At the Cloud Service level Import the previous metadata file Accept default values and don't change anything. At the IDP server level:  Follow documentation Servive Provider Quickstart Update the config/authsources.php with infos provided in the parameter pages (entity Id) EntityID value must be the sam...