Tuesday, January 1, 2013

How to enable controlled user registration to App Factory

You can control user registration to App Factory via human task enabled BPEL. This feature is introduced in M8 release of App Factory. So you need to have a M8 ++ distribution of App Factory.

Setting up

Step 1 : Transfer the UserCreation.zip to your machine. It is at the following location in the virtual machine.

/home/appfactory/appfactory_deployment/setup/appfactory/wso2appfactory-1.0.0/repository/resources/UserCreationHT.zip

Step 2 : Login to the Carbon console and un-deploy the user creation BPEL





Step 3 : Now upload the UserCreationHT.zip via the management console

How to work with it

When a user sign up to the App Factory a notification will be sent by the BPEL process to the administrator. All users in Admin role can approve the user registration as follows. Admin has to click on View Task and continue to approve/disapprove.










Once the admin user approves it a confirmation email will be generated to the user. This is how it stands for M8. We will continue to improve its user friendliness in the upcoming releases.

Thursday, December 20, 2012

WSO2 App Factory M8 Released!


We shipped out App Factory M8 yesterday! You can download M8 from here.

It was an amazing effort from the whole team and today we are going on Christmas holidays.

New Features of M8 are,


  • Create applications with Git
  • Tagging builds with a name
  • Improved deployment model
  • Moving the servers to standard ports 80/443
  • Ability to work with a Jenkins farm
  • Log download feature
  • Approval UI and human tasks
  • Human task enabled user creation process
  • Search Application Gadget
  • Event Stream View
  • Resource dependency Management UI


We were hoping to ship GitBlit too but couldn't do due to a last minute issue. GitBlit would enable us to talk to any Git repository with AppFactory credentials. The last minute issue was that GitBlit server started throwing unknown host exception even when we set the gitblit.properties with the correct host.

We are happy to be able to deliver all of the features we promised except one!

If you want to know more about App Factory you can watch the webinar.

Saturday, November 17, 2012

Work, life and I

During past 5 months, I've been thinking a lot and in the process I realised many aspect to life. I made a lot of changes, I did several things I've always wanted to do, I walked several miles and above all, I thought a lot and I am pretty pleased with the outcome. I cannot blog about all, but these are the two most important things that I have learned from my experience.

In order to have a successful career one has to do things. For example find solutions, initiate, fix things, keep fixing, think hard, work hard and be smart. And when it comes to living, one should not do anything. We cannot control the radio frequency change, or the traffic, or anything for that matter. There is absolutely nothing you can do about bad things or good things other than accept it gracefully. We need to enjoy the simple things in life. For example the sun, the rain, smiling kids, rainbows, the rain and the blue building that you see when the lift takes you up to the work-desk. We should always stop to smell the roses and smile.

And the next important thing I learnt is that people will treat you the way you let them. And the most important person in my life is myself! This one is known by many wise people and the best person to speculate this theory is with your mother (my mother is such a wonderful person to talk to, and she tells me beautiful profound things) I can't believe that it took me this long to realize it.

Tuesday, November 13, 2012

App Factory - Consuming APIs in API Manager

This blog shows how your apps can consume APIs hosted in WSO2 API Manager.

Step 1 : Create a API that gives Washington whether details in sandbox and London whether details in the production environment. Lets call this Weather API. Internally it calls the API of www.worldweatheronline.com






Step 2 : Create an application in AppFactory. Lets call it Customer Portal - cportal application. When you create an application in App Factory it will be automatically created in API-M.



Step 3 : Subscribe the application to the Weather API as follows.


Step 4 : Generate keys by clicking on the create dependencies.



Step 5 : Write your application to get keys by calling the CarbonContext and Registry APIs. The correct sandbox and production keys will be used depending on where the application is deployed. Here is the code to do that.

        CarbonContext cCtx = CarbonContext.getCurrentContext();
        Registry registry = (Registry)       cCtx.getRegistry(RegistryType.SYSTEM_GOVERNANCE);
        Resource resource = registry.get("Key");
        if(resource.getContent() instanceof String){
            key = (String) resource.getContent();
        }else{
            key = new String((byte[]) resource.getContent());
        }
Step 6 : Deploy the application to "Development" environment and view results


Step 7 : Promote the application to "Production" environment and view results.


The results of Development environment  differs from Production environment because the keys that is used by the two environments are different. The programmer is unaware about the sandbox and production keys, and everything is handled underneath.

Thursday, November 8, 2012

WSO2 App Factory M7 is released

We finally got M7 out!

You can download the VM from here

Here are the new features of M7.
  • Integrating with Redmine
  • CIO/CEO dashbords
  • BPEL Security
  • Role based security
  • Change the username to email address
  • Dependency Management - API sandboxing
  • Build Status Recording and Gadget
  • Login to Controller to get Logs
  • G-Reg check list items
From this point onwards we are going to try continuous development and deployment of App Factory - at least internally and see how it goes.

Thursday, November 1, 2012

The making of WSO2 App Factory - Storing Artifacts

These days I am thinking a lot about scalability of our deployment setup. Our pre-alpha milestone behavior is to store everything in the file system. So there are two things that should change in the future.

  1. What artifact should we store? How do we identify which artifacts to be stored?
  2. How and where we should we store the artifacts

The ideal answer to the second question is we should store them in the Continuous Integration system itself. Now that is easy!

Now answer to the first question. How to identify which artifacts to store. We are considering many apps with several versions being build many times a day. Simple answer this should be configurable. Some possibilities,

  1. Store the latest build
  2. Store a fixed number of builds 
  3. Store builds for a fixed period
  4. Store the latest builds and the ones that are marked explicitly by the devops/develoeprs

Well ...... there are many many options. But a combination of the 4th and 2nd option would be really interesting.

Saturday, October 27, 2012

Facebook and login Email Address

Until today I had my work email address as the login to Facebook. It never bothered me because I hardly login to my Facebook account, so most of the time it is deactivated and no issue.

But since of lately I've been more active on Facebook, and started seeing the amount of mails it send. Frankly it is disturbing. I login to do my work during a weekend, but end up on Facebook.

So today, I took a stern decision and changed my login address to Facebook. Feel more organized now!