SlashDB ver. 0.9.51 is now available everywhere for production and development. This new version is the second and the last planned revision of the 0.9.x series, but it packs more features than a minor version release might suggest.
SlashDB has always been capable to run load-balanced on multi-core systems, but until now the forked processes would run independently. Any changes made to models, queries or users would require a restart of the system. The new version features a full live synchronization between processes and nodes, so any change made to any node will propagate to all. You can add new databases, turn a database offline or trigger the reflection of a database model into API. Add or remove users, change API keys or add modify queries. The implementation utilizes a separate memcached daemon so the synchronization can even work on clusters of SlashDB machines.
Why does it matter? As your website, mobile app or data service increase in popularity so will the API traffic. You want to ensure that your API service is resilient and can scale.
Filtering by multiple values
This has been a popular request from many of our users for some time, and now it’s here.
Suppose you want to fetch data, which matches not one but several different values. Previously you would have to send separate requests. Now it is as simple as separating the values with a comma.
Here’s how we would get Artists by the name “Aerosmith”, “Metallica” or “Accept”:
Or, how about all Artists, whose name begins with a letter “A” or “B”:
Of course for programmatic access you’d want JSON, XML or CSV. As usual, simply supply a respective data format in the “Accept” header
curl -H "Accept:application/json" http://demo.slashdb.com/db/Chinook/Artist/Name/A*,B*
or append the “file” extension to the URL:
Why does it matter? Quite simply it allows for more powerful queries without having to resort to SQL statements.
Data editing from within the GUI
SlashDB works for reading and writing. It always has, since the very first release. Unfortunately that powerful feature has been somewhat hidden.
Starting from this release we are adding data editing to the GUI. In the new version you can edit or delete individual records in the GUI.
Simply navigate to any record and hit the Edit button. The screen will turn into a web form allowing you to change field values. Similarly you may delete the record using the Delete button. Both actions translate into SlashDB API calls PUT and DELETE respectively and operate subject to the current user’s permissions. By the way, pretty much anything you do in the GUI has an equivalent API call underneath.
Why does it matter? Fix data errors easier and quicker. It also reminds the developer that SlashDB can be used as a backend even for highly complex and interactive web applications.
HTTP verb assignment for SQL Pass-thru
SQL Pass-thru is a popular feature because it allows API and database administrators to collaborate on the library of defined queries and to keep them all in one place.
From this release your queries can me mapped to suitable HTTP method. For example an “INSERT INTO …” statement or a stored procedure call can be mapped to the POST method (verb), while a “SELECT * FROM” would typically get associated with the GET method. SlashDB even hints on the most suitable method to use based on the the query text.
Why does it matter? It allows for better conformance to RESTful principles, which dictate that GET requests should not be used for modifying resources.
We are focused on making SlashDB easy to understand for the first time users. At the same time we invest in an in-depth knowledge base, so those who are already experienced can leverage the product’s full capabilities in their work.
- Our new User Guide features detailed product walk-through with screenshots and videos. Please bookmark it and check often as it improving almost daily.
- The Help menu now features a link to ask us questions on StackOverflow
- On this blog articles in the “how-to” category contain tips, which may be useful for you in applying SlashDB to HTML5 apps, enterprise application integration, data science and more.
Improved Admin GUI
There are number of improvements to the admin user interface in the new version. Our objective here is to help first-time users avoid common configuration mistakes.
- More intuitive user mapping in User Configuration Modal; fixed mapped or duplicate entries in dropdowns
- List sorting in database/user/query definition screens.
- User friendly HTTP error responses when parsing JSON fails.
- New layout for the main menu, including link to asking for help on StackOverflow
- Database config for MySQL removed schema field, which is synonymous with database for this RDBMS
- Fixed certain problems with parsing a list of users in field values in User Configuration
- Removed requirement for having to explicitly provide port for MS SQL
- Added JSON button for each entry in the Database Configuration list
- Removed owners list from the Query Definition modal. Use View, Edit and Execute instead.
- Fixed certain anomalies in the Data Discovery i.e. failing to preserve filter context when sorting was also used
- Corrects bad links to certain date/time filters
More features in API…
- Added max_limit parameter in .ini file to prevent accidental overloading of the database e.g. db.Chinook.max_limit = 10000
- Set NULL explicitly when POST-ing a CSV. Add a csvNullStr to the URL to designate escape character (string) for NULLs e.g. /db/Chinook/Invoice.csv?csvNullStr=None
- Partial updates to user/database/query configuration, which allows a fine-grained programmatic control of SlashDB configuration
- Added a fallback mechanism for generating address of newly added resource address from the POST request when user does not have SELECT privilege to the table
Bug fixes and code refactoring
The new SlashDB counts over 24 fixes, mostly in technical, behind-the-scenes parts for the code. Of note are:
- Developer friendly error messages in the same format as the request
- Fixed execute of certain queries which are not expected to return data like DELETE FROM
- Better separation of plugin components (DataProxies, Parsers and Renderers) and code reformatting
- Fixed editing of empty fields
- Fixed anomalies in limit requests containing a many-to-one relationship
- Fixed a problem for certain RDBMS in automatic reflection of schemas where user was not a schema owner
- Fixed PUT request to a resource URL containing a ?sort query string
- Fixed SQL Pass-thru requests when the URL string contains unsafe characters
- Fixed problems with column names, which contain a white space
- Fixes a bad default value generation on datetime field in SQLite
New version at lower price
The new version of SlashDB is available for download for on-premises installation as well as in the cloud.
Now you can run SlashDB for under $12 on Amazon or under $15/month on Azure for the smallest instance size. A medium sized instance is around $50 all-in.