JAS should support Redis (http://redis.io/) next to (or maybe even instead of memcache) . What client should be used (see http://redis.io/clients#php)?
Loading the initial configuration (when setting up the session) take too long. This should be cached (automagically detecting the cache method, i.e. mem, module, file) on a project by project basis and any subsequent config loads should use the cached version.
To reduce dependency on Apache (and thus opening JAS up for other webservers) the htaccess+modrewrite rule should be moved to JAS. This also allows the configuration to more easily enable/disable the functionality.
Currently JAS uses the Data field values to build up the WHERE clause in the SQL query (and Storage::_filterDataset) in a straightforward but limited way. It should be possible to get data via a more flexible method that allows for advanced nesting.
Example:
SELECT *
FROM blog_entries
LEFT JOIN blog_tagsmapping ON
blog_entries.nr=
blog_tagsmapping.blog_entries --automagically determined based on where clause
LEFT JOIN blog_tag...
JAS should support PostgreSQL (and optionally other databases). The post sensible way seems to be to have a base SQL class which contains the majority of the query components (SELECT, INSERT, UPDATE, DELETE, FROM, WHERE, ORDER BY, etc) which can be overridden by the extending classes.
An interesting option would be to use PDO for the base class as this will support more than just MySQL and PostgreSQL. Additionally it allows for "named variables" for prepared statements which should m...
Currently when setting the 1:* reference field value the MySQL use referenced field instead of the ID field of the referenced module. Using the former is rather useless since that's effectively the ID field of the original module.
So change:
FROM `module`
LEFT JOIN `referenceModule` ON `module`.`nr`=`referenceModule`.`referenceField`
WHERE referenceModule
`.`referenceField
`="123"
To:
FROM `module`
LEFT JOIN `referenceModule` ON `module`.`nr`=`referenceModule`.`referenceFi...
JAS should support JSON parsing and rendering which in turn can be used for a full-fledged read/write API. The JavaScript HTTP class should be extended to support this as well.
Currently only the initial installation is foreseen, however upgrades should be easy to install as well. This could be handled in a similar fashion as plugins, i.e. download the latest version and upgrade JAS using the backend.
Currently the MIME database (include/mime.xml) is a static list provided as part of JAS. It would be handy if this list could easily be updated via the backend.
The question that comes to mind however is whether upgrade should overwrite a customized version. It seems rather annoying if you spend time to add your own MIME types that are subsequently forgotten when JAS is upgraded. Maybe adding a flag "custom" to the XML file to indicate it shouldn't be touched by upgrades.