You are here

breacrumb

Wakanda Roadmap

The goal of the Wakanda Roadmap is to show our current development initiatives. The Wakanda development team is responsible for making the roadmap a "live list of features" with frequent updates and eventual changes (additions, deletions, or modifications) to the list.

Regarding this roadmap:

  • The Progress column is a rough estimate of the progress during the development and test phases. We might add comments to a feature's description or add a link to a forum or blog post to better explain our current development efforts or possible obstacles.
  • The Target column (when indicated) shows in which version the feature will be available. It may also contain information about which build (in the DEV branch) you can test the feature before its final release.

The Wakanda development team reserves the right to change or delete any roadmap feature at any time during our development cycle. If we delete a feature, we will do our best to explain the reasons for such a decision.

 

Last update: Dec/2014 Next update: Jan/2014

(use ctrl + clic for multiple selection)
Progress Features Admin Target
90%

Rewriting Widget Matrix for new Widget Architecture

We are developing a new version of the Matrix widget based on the new widget architecture and API. The new matrix will accept any Custom Widget. It will be delivered via Addons (github)

Wakanda Version : Confirmed Wakanda 11 / Development Channel 

 

in development
90%

Generate your themes with LESS (bootstrap to Wakanda)

LESS (Leaner CSS) is a dynamic stylesheet language that will help developers create new themes. We are preparing a LESS structure to speed the process of creating a theme for Wakanda. You will change a few values and the LESS script will generate a new theme for you with all the selectors and widgets on it, ready for use. 

We are creating an extension that will allow you to drop a bootstrap file (in the less format or json format) and generate a wakanda theme fully exploited by the Wakanda Studio. 

 

 

 

 

in development
90%

Google V8 engine

Google V8 engine is now a better fit for Wakanda than JavaScriptCore, our goal is to :

- increase performance
- better control the garbage collection (consistency)
- support multi-cores (less memory manager contention)

We are building a version of Wakanda Server using V8 for SSJS.

in development
80%

Live Backup for Studio files

The Wakanda Studio will have a system to periodically backup the files being modified (not saved). In the case of a crash the Studio will recover the unsaved files and propose a restore to the user. 

In the menubar Studio will have a new entry called "Live Backup", with 3 items : "No Live Backup", "Ask before restore", "Automatic restore".

By default, "Ask before restore" will be checked.

in development
70%

Get detailed information about Wakanda database engine events => getMeasures( ) method

getMeasures( [Object options] )


The returned object contains a single property named "DB" that has the following basic structure :

{
    "DB": {
        "diskReadBytes": {…},
        "cacheReadBytes": {…},
        "cacheMissBytes": {…},
        "diskWriteBytes": {…},

        "diskReadCount": {…},
        "cacheReadCount": {…},
        "cacheMissCount": {…},
        "diskWriteCount": {…},

        "dataSegment1": {…},
        "indexSegment": {…},

        "tables": {…},
        "indexes": {…}

    }
}

in development
70%

Web Studio - a full web version of the Wakanda Studio (first Draft)

A WebStudio completely available in the browser with a responsive interface based on bootstrap grid system and themes. 

First Draft : Dez/2014 - Jan/2015 (this version will be only available for beta test / forum users)

Release date : Jul/2015-Sept/2015. 

 

 

in development
60%

Admin page for a "Super User"

We want to have 2 Wakanda Admin Pages :

1. A Server Admin : available only for the "Super User", this page gives you access to all the projects. The super admin can do backups, restores, compactations and verifications.  

2. A Project Admin : available only for the project's admin.  The project's admin will be able to verify and backup its data.

 

 

in development
50%

Migrating first Custom Widgets to WAF

We are integrating the following Custom Widgets directly into WAF (old widgets will be deprecated but still available for retrocompatibility ) : 

- Button
- Text
- TextInput
- Checbkox
- Container
- TextArea
- DatePicker
- TabView (Tabs)
- wListView
- Combobox
- WindowContainer
- SplitContainer
- Slider

in development
50%

Improvements to the package system

Wakanda is making the package.json simpler and more flexible. 

The new package.json will  contain only relative paths for files (which will allow us to move/rename them easily). 

Also, we are creating a path system that will allow themes and widgets to be placed anywhere in the project. 

Current package.json    
{
    "name": "Tabs",
    "loadDependencies": [
        {"id": "Widget_V2"},
        {"id": "TabsBar/package.json", "path": "WIDGETS_CUSTOM"},
        {"id": "TabsContainer/package.json", "path": "WIDGETS_CUSTOM"},
        {"id": "Tabs/widget.js", "version": "1.0.0", "path": "WIDGETS_CUSTOM"},
        {"id": "Tabs/css/widget.css", "version": "1.0.0", "path": "WIDGETS_CUSTOM"},
        {"id": "Tabs/css/themes.css", "version": "1.0.0", "path": "WIDGETS_CUSTOM"},
        {"id": "Tabs/designer.js", "studioOnly": true, "version": "1.0.0", "path": "WIDGETS_CUSTOM"}
    ]
}

New package.json
{
    "name": "Tabs",
    "type": "widget",
    "loadDependencies": [
        {"id": "Widget_V2"},
        {"package": "TabsBar"},
        {"package": "TabsContainer"},
        {"file": "widget.js", "version": "1.0.0"},
        {"file": "css/widget.css", "version": "1.0.0" },
        {"file": "css/themes.css", "version": "1.0.0" },
        {"file": "designer.js", "studioOnly": true, }
    ]
}

Worth to notice that our WD2 system will work with both models. New pages will be created with the new package structure. 

 

in development
50%

Custom Widgets - List Property enhancements

This feature will help Custom Widget developers to better customise their list properties by introducing the possibility of having a second input panel available for each list value. 

In the example below, The itemsl extraProperty1 and extraProperty2  will be available in the second panel, if the user  clicks in the list property menu icon, then the extraProperty1 and extraProperty2 will be available : 

var Untitled1 = widget.create('Untitled1', {
        fields: widget.property({
            type: 'list',
            attributes: [
                { name: 'attribute', type: 'attribute', datasourceProperty: 'datasource' },
                { name: 'title', type: 'string' },
                { name: 'extraProperty1', type: 'string', secondary: true },
                { name: 'extraProperty2', type: 'string', secondary: true }
            ]
        })
    });
in development
100%

Phonegap / Cordova Extension

Enter your Wakanda project name and this extension will save all the necessary files to the phonegap upload -

Log:

Issue with authentication is fixed. 

Tests with the Custom Widgets : passed

Tests with the telephone contact list : in progress 

Confirmed for WAKANDA 11 

in development (Enterprise features)
100%

Database statistics API

You will be able to get and manipulate a JavaScript object with your database statistics, including all the hits to the server, cache and dataclasses.

 

in development (Enterprise features)
30%

SSO Single Sign On

Wakanda will support SSO for kerberos and NTLN. 

Single sign-on (SSO) is a property of access control of multiple related, but independent software systems. With this property a user logs in once and gains access to all systems without being prompted to log in again at each of them. This is typically accomplished using the Lightweight Directory Access Protocol (LDAP) and stored LDAP databases on servers.[1] A simple version of single sign-on can be achieved using cookies but only if the sites are on the same domain.[2]

Conversely, single sign-off is the property whereby a single action of signing out terminates access to multiple software systems.

As different applications and resources support different authentication mechanisms, single sign-on must internally translate and store credentials for the different mechanisms, from the credential used for initial authentication.

 

in development (Enterprise features)
100%

Controlling the html saved by Studio from Custom Widgets

As a widget developer I want to be able to define a css class that will not be saved or managed by the studio. 

The developer can assign a waf-studio-donotsave to a sub element of the custom widgets, so the subelement won't be save in the resulting html file. 

MyWidget = widget.create('MyWidget', {
    init: function() {
        this.node.html = '<button>This will be saved</button><div class="waf-studio-donotsave">This won't be saved in the HTML</div>';
    }
});
Wakanda 10
100%

Pageable behaviour for Custom Widgets

When developing a widget, you may need a way to paginate your content. This behaviour will help you paginate your widgets, you define the html element to be reproduced, the container in which the html element will be inserted and the datasource and the behaviour will manage the loading of new elements for your widget. 

 

Wakanda 10
100%

Autocompletion CSS improvements

We are refactoring our autocompletion system to also suggest CSS selectors and classes while editing CSS files in the Wakanda Studio. 

Wakanda 10
100%

Template Behaviour for Custom Widgets

When designing a custom widget you may want to use a template to define your html display. You may also want to give the possibility of the user to change the template directly in the Wakanda Studio. This behaviour will implement this functionality for Custom Widgets. 

Wakanda 10
100%

Behavior Multicontainer for Custom Widgets

The beheviour Multicontainer will help developers to manage a list of containers for Custom Widgets. A good example is the TabView widget: Each tab is a container and you can have multible tabs. The behavior will help you navigate theses container with the follwing API :

Class methods

defaultContainer(widget)

Instance methods

addContainer(options)
countContainers( ) -> number
currentContainer( )
currentContainerIndex( ) 
defaultContainerClass(container_class)
insertContainer(index, options)
lastContainer( )
moveContainer(from, to)
setLastContainerAsCurrent( )
container(index, widget)
containers( )
removeAllContainers( )
removeContainer(index)

Wakanda 10
100%

The behaviour Repeater for Custom Widgets

This behaviour will help developers to create Custom Widgets based on repeating patterns such as the Matrix and lists. Once inherited, the Custom widget will have all the methods to manipulate and duplicate rows inside the widget. 

Wakanda 10
100%

Custom Widgets - Livescroll behavior

This behavior helps Custom Widgets developers to implement a livescroll feature into their widgets.

Example 

WAF.define('LiveScrollTest', ['waf-core/widget', 'Text'], function(widget, Text) {
    var LiveScrollTest = widget.create('LiveScrollTest', {
        rows: widget.property({ 
            type: 'datasource',
            attributes: ['title'],
            pageSize: 40
        }),
        getScrolledNode: function() {
            if(!this.node.getElementsByTagName('div')[0]) {
                this.node.innerHTML = '<div></div>';
            }
            return this.node.getElementsByTagName('div')[0];
        },
        getRowHeight: function() {
            return 40;
        }
    });
    LiveScrollTest.inherit('waf-behavior/layout/repeater-livescroll');
    LiveScrollTest.linkDatasourcePropertyToRepeater('rows');
    LiveScrollTest.repeatedWidget(Text);
    LiveScrollTest.mapAttributesToRepeatedWidgetProperties({
        title: 'value'
    });

    return LiveScrollTest;
});
Wakanda 10
100%

New Combobox widget

A new combobox to substitute in the future the current combobox based on the new widget architecture and available via Addons (github)

The new combobox will be ISO functional with the existent combobox but it will also add :

* html templating

* grouping 

* autocompletion

* search 

Preview for the release of Wakanda 10

 

 

Wakanda 10
100%

Widgets - Binding Formats to the Widget

This feature will help developers to transform or format the values returned from a datasource before displaying them in the widget. 

The formatter should be defined in a JS file and added to your pages. Once done, you can create and register a formatters as it follows :

Example of transforming a widget value to lowercase :

WAF.require('waf-core/formatters').create('lowercase', {

    format: function(value) { if (value) { return value.toLowerCase(); } else {return null} },
    unformat: function(value) { return value; },
});

 

 

Wakanda 10
100%

Console.log from the Extension's context

The user will be able to console.log from the extension to the wakanda log. 

 

Wakanda 10
100%

Wakanda Command Line tool

Wakanda Shell is a command line tool for Wakanda and is available for Macintosh and Linux. Here are some of the key features in Wakanda Shell:

  • Connect to/disconnect from a Wakanda Server,
  • Run JavaScript code server-side, and
  • Send and execute a local JavaScript file on the server.
Wakanda 10
100%

Dual way synchronisation between widget properties and properties panel

The Studio property panel should be updated when a change event is fired or when a datasourceBindingChange event is fired on the custom widget.

Wakanda 10
100%

Host your code in any git Server

There is a need to be able to host Wakanda Git repositories on any Git server and not just github.com.

Wakanda Studio will be able to pull and push from  servers using generic Git HTTP URLs.

 

Wakanda 10
100%

shellWorker commonJS module

We need an easy way to execute shell script without having to manually launch bash or cmd.exe passing it the script with escaped strings.

Provide a SSJS module to ease execution of shell commands.

Documentation
The shell worker is a wrapper around SystemWorker that simplifies several things:
- shell worker automatically calls cmd.exe on windows and /bin/sh on unix
- the command line and arguments are formatted and passed appropriately on each platform
- there's no need to escape characters aside from normal js or command related escapes.
- because shell command are always text, output and error buffers are translated to text
- shell command do not use the standard input so the parameter has been removed
- synchronous mode throws a JS exception in case of error.

Wakanda 10
100%

Runtime Custom Widget instantiation

As an application developer, I want to be able to instanciate widgets at runtime.

in a page javascript file for example :

var MyWidget = WAF.require('mywidget');
var instance = new MyWidget();

Wakanda 10
100%

Mechanism to rename a dataclass and keep data intact

When you rename a dataclass, your data is kept intact but unavailable to the new dataclass. We are creating the mechanism to address this issue and give you the freedom to rename a dataclass without "loosing" your data. 

Wakanda 10
100%

Sandbox file system access for system workers

The idea is to use a new settings file to declare a list of available external executables that can be launched within a solution as system workers.

For example, let's say there is a "systemWorkers.json" file with the following content:

[
    {
        "name" : "git",
        "executable" :
        [
            { "path" : "/usr/bin/git" },
            { "path" : "/usr/local/bin/git" },
            { "path" : "/usr/local/git/bin/git" },
            { "path" : "C:\\Program Files (x86)\\Git\\bin\\git.exe" }
        ]
    }
]
Developer would then be able to execute a git command by creating the following worker:

new SystemWorker ( "git version", null );

 

Wakanda 10
100%

Save Theme's roles in the custom Theme

The theme's roles are a powerful way to customise your theme. The roles are saved in the application.css file in your project folder. We want to allow you to use the customised roles for all your projects by saving the role in your custom Theme. 

This feature will allow users to:

1. Get an existent theme 

2. Create customised roles for the existent theme

3. Save the existent theme and the customised roles as a new theme. 

4. Use the new theme and roles to a different project. 

Wakanda 10
100%

Add event parameter to the function for all datastore class and attribute events

Add the event parameter to all datastore class and attribute events (which is an object in which the following data can be retrieved):
- eventKind
- attributeName
- dataClassName
- error
- errorMessage

In WAK9 and before

model.Company.events.init = function() {
    // Add your code here;
};


Wakand 10 we can add the following:

model.Company.events.init = function(event) {
    // Add your code here;
};

Wakanda 10
100%

Dataclass object attribute - Server Side

This new feature is very exciting, you will be able to create a dataclass attribute with a new type : "object". This new type will allow you to store JavaScript objects directly into the Wakanda database. Also, the objects are fully indexable !  

Wakanda 10
100%

Add the configParameterObject to SMTP.send

configParameterObject is a JavaScript containing all SMTP server parameters as attributes :


address = configParameterObject.address;
port = configParameterObject.port;
isSSL = configParameterObject.isSSL;
username = configParameterObject.username;
password = configParameterObject.password;
domain = configParameterObject.domain;

this allows to smoothly add an optional "domain" parameter

 

Wakanda 10
100%

AngularJS and Wakanda API

This new API (WakandaServices for AngularJS) will help you to connect your AngularJS client code with the Wakanda framework, database and all the business object methods available to your data. Take advantage of our REST API using AngularJS with an api specially designed to speed your development when acessing the Wakanda framework. 

 

Wakanda 10
100%

Security password encryption for admin users

Automatic save, encrypt and protect passwords on the server side for admin users

Wakanda 10
100%

A method to export your entities in a JSON or SQL format

The exportAsJSON( )  and exportAsSQL( )  methods exports all the entities stored in the object for which it is called in JSON or SQL format. These methods can be called for a:

  • Datastore: entities from all the datastore classes are exported,
  • DatastoreClass: entities from the datastore class are exported,
  • EntityCollection: entities from the entity collection are exported.
Wakanda 10
100%

Authentication using LDAP Server

waf-ldap is a new Wakanda module that allows you connect to a LDAP server (such as Windows Active Directory, OpenLDAP Server, and Open Directory), to bind users and to execute searches in the remote directory.

PS. FORUM THREAD CREATED FOR THIS FEATURE, please check our forum.wakanda.org

Wakanda 10 Enterprise
100%

Console/command line tool

This new tool allows you to access Wakanda Server and run commands. You can get results and logs immediately.

Wakanda 10 Enterprise
40%

Dataclass object attribute - Client Side

Take advantage of the new dataclass property 'object' inside the studio, you will be able to bind your datasources with the new attribute on your widgets. 

Backlog
30%

Virtual Dataclasses

We are creating a series of APIs that will allow users to write their own connectors to connect the Wakanda Studio to other sources of data (webservices, databases, offline). 

Once a connector is done, you will be able to drag and drop, bind and use our widgets with an external source of data with the same "look and feel" as a Wakanda Dataclasse. 

 

Backlog
10%

Customise graphics with Flotr2

Customise your Wakanda Pages with first level graphs by using the Wakanda widget with the Flotr2 JS library.  

 

Backlog
10%

Solution snapshot

This extension allows you to create a zip file with only the basic structure needed to run a particular solution. This feature will enable you to share only the fundamental parts of a solution, thus reducing its size as well as the uploading time to other repositories.

Backlog
10%

Grid widget rewritten

We are improving the Grid widget and basing it on the new widget structure and API. The Grid widget will include more customization features, like paging options and variable row size.

Backlog
10%

Enhancing mobile device events

Adding support of advanced touch events, like taphold and swipe.

Backlog
10%

API for monitoring Wakanda Server

We are creating an API that will allow you to monitor Wakanda Server. Some methods will allow you to ask the server how many contexts are open, list all the contexts, list database operations, etc.

Backlog
10%

Improved error handling server-side

Wakanda will be using web sockets to provide better error handling at the server level, thus allowing your application to receive better error messages that are clearer and more descriptive.

Backlog
10%

New Tree View widget

We are developing a Tree View widget that allows you to view data hierarchically. Each item can have a number of subitems. Users can then navigate the structure by adding, deleting, and updating tree nodes.

Backlog
30%

MySQL connector PRO

Access and manage your MySQL databases directly in Wakanda Enterprise Studio. As a developer you will have your MySQL model and data  available in the Wakanda Studio model designer. 

Backlog - Enterprise
10%

Definable location for your application's data

This feature allows you to save your application’s data to a custom location, which can even be outside of your project’s folder. Saving your data in another location not only gives you more flexibility, but also more possibilities to share your work with other developers.

Backlog - Enterprise
10%

External Authentication (OAuth/OpenID)

Wakanda is implementing an authentication mechanism tha is decoupled from any specific authentication strategy, a developer could use our build-in directory, a model, deletaged authentication(OAuth°, or federated authentication (OpenID) as their authentication strategy.

Backlog - Enterprise
10%

Reporting

The Report Designer will be available directly in the Studio. It will facilitate the creation of reports, including the capacity to preview and populate the report previous execution. The user will be able to define the header, content, footer and how the data is break among the pages of the report. 

 

Backlog - Enterprise
10%

MS SQL Connector PRO

Access and manage your MS SQL databases directly in Wakanda Enterprise Studio. As a developer you will have your MS SQL model and data  available in the Wakanda Studio model designer. 

Backlog - Enterprise