Lots has happened since the last blog post, which introduced dbFront 1.4.0. The marketing gurus will tell you that I should have kept everyone informed, but I got busy. Therefore, some of this post will be old news to the more adventurous, but not all.
dbFront 1.4.1 - Introducing the ProcedureAPI
dbFront 1.4.1 is the current stable release with 39 new features since 1.4.0. The most important feature introduced in this release of dbFront is the ProcedureAPI. The ProcedureAPI allows stored procedures to do far more than return data or simple messages. Using the ProcedureAPI, stored procedures can now enter into a full two-way conversation with dbFront, asking it to do things such as: prompt the user for additional information, retrieve information from another WebService, or generate reports.
When the Stored Procedure output style is set to "Server Directed" or "Automatic", dbFront examines the first result looking for a column named Action. The value of that column determines how dbFront processes the stored procedure's remaining output.
dbFront currently supports the following action types:
- Close: Exit with an optional message and optionally refresh the screen.
- OpenDialog: Create a dialogue with optional: HTML Content, Form Fields, Custom Buttons and Table Results. The updated Form Fields and Custom Button press are passed back to the procedure for further processing.
- OpenReport: Open the procedure output as a Report or Export.
- OpenTable: Redirect the user to a specific table.
- OpenUrl: Redirect the user to a URL.
- SendEmail: Have dbFront send an email and return to the procedure for further processing.
- WebRequest: Have dbFront send a WebRequest and return the results to the procedure for further processing.
ProcedureAPI Examples
- Simple Report Parameters
Allows a stored procedure to display a dialogue with instructions and a prompt for missing parameters before proceeding.
- Simple Report Parameters + Output Selection
Extends the Report Parameters example and allows the user to choose to either Export to Excel or run a Quick Report.
- Advanced Find or Create
Creates an advanced and interactive lookup using a single stored procedure. This same procedure is called repeatedly by dbFront with input from the self-created custom dialogue and responses from the web requests until the user is satisfied or the task is complete.
For more details, see: Procedure API
IMPORTANT: If you plan to investigate the Procedure API, then we suggest upgrading to dbFront 1.4.2 to take advantage of the latest updates and fixes.
dbFront 1.4.1 - Full Feature List
Below is the detailed feature list. A number of the features were requested via the Q&A. Buried in this feature list are some very powerful features, some of which we are going to expand upon in future blog posts.
- Buttons:
- Added a DebugShow to expose debug information at runtime. See: Buttons Main
- Enhanced button visibility logic to only disable if fields are required or need to receive updates.
- Core: Added timeouts to regex expression handling to prevent ReDoS attacks.
- CrystalReportHelper: List stored credentials, without the passwords. See: CrystalReportHelper
- MyLayout:
- Ability to discard/reset MyLayout.
- Removed admin details from MyLayout to make it match what regular users see.
- ProcedureAPI:
- Added "Close" action, and "Refresh" attribute to terminal actions. See: procedureapi#Close
- Added "SendEmail" action to enable email notifications. See: procedureapi#SendEmail
- Added OpenReport to allow SPs to exit with a report type. See:OpenReport
- Added support for Password fields.
- All messages/HTML are sanitized to block XSS or similar attacks.
- Embed Debug info in dialogues if DebugShow enabled. See:Debugging ProcedureAPI
- Further ensure that password field contents are hidden in logs or debug info.
- Return the current UserId and Debug flag in request header.
- Updated OpenDialog to support Select fields. See:OpenDialog
- Allow {%FormFields%}, {%LogoUri%}, and {%InspirationalQuote%} in form bodies.
- Procedure-driven forms with input submitted directly to the procedure for processing.
- Set the ClassList on the dialogue root. Allows full-screen dialogues and other enhanced effects.
- Readme: Updated Readme.html with improved structure and updated help.
- RequestHandler:
- Allow Anonymous/Public Requests, See: Requests
- Anonymous Dialogs (e.g. Forgot Password, Register New User, ...)
- Simplified Parameters to the dbfHeader and dbfData
- SAML: Refreshed SAML library to improve compatibility.
- SQLServer: Faster table structure query (Thanks Micheal).
- Security:
- Detect requests from a Cloudflare Tunnel and adjust security posture accordingly.
- Remove Windows Authentication from Login Screen (If Secured AND Remote (not LocalHost) AND No Connection uses Windows Authentication)
- Users can change their passwords if using Active Directory/Windows Authentication.
- Settings: Enabled setting ShowDomainName in WebApp.
- SingleSignOn:
- Handle users with large Azure group lists.
- Moved SSO/SAML validation from UI to Service which is more secure.
- Retrieve the Azure User Group Names (Extra config required)
- UrlDisplay: Added explicit option for Image URLs to avoid CORS risks and restrictions.
- WebRequest:
- Added ability to retrieve Html and Filter/Parse using XPath.
- The WebRequest Button action and the WebRequest ProcedureAPI share all functionality.
- dbFrontManager:
- Added the dbFront Manager application to simplify the initial authentication.
- Alerts for invalid configurations or credentials (e.g. Microsoft Online Account).
- Create/maintain the local dbFrontAdmin user and dbFrontUsers group.
- Optionally select from a list of valid suggested configurations.
dbFront 1.4.2 - More Procedure API & Bug Bounty
The latest dbFront is still under active development, so we won't say much except to note that it solidifies the Procedure API while also incorporating significant security changes in response to a Bug Bounty we have been running over the past year. More details to come...
Summary
The full release history for the 1.4.1 branch can be found at dbFront.com/releasehistory
We have been doing a lot of work to secure and enhance dbFront and to update the supporting documentation. If you have time, please consider creating or updating a review of dbFront at one of the following websites:
- LinkedIn.com/products/bigideasltd-dbfront?action=recommend
- g2.com/products/dbfront/take_survey
- Capterra.com/p/143165/dbFront
- AlternativeTo.net/software/dbFront (Don't forget to hit the like ♡ button).
In place of a review... you can simply like ♡ dbFront at:
The less effort we spend on sales and advertising, the more effort we can spend on improving and stabilizing dbFront.
Thanks - The Team at dbFront
Image by Kanenori from Pixabay

