Integrate your Own Administration Window for 4D Server

When deploying their applications, some developers want to customize the built-in 4D dialogs to fit their needs. It is especially true for the 4D Server Administration Window where they sometimes want some information and actions to be accessible only for their team and not for their customer administrators.

Deactivate Administration tools access

After having offered the possibility to hide explorers access from 4D Server menus, as explained in this blog post, 4D v20 make it possible to hide the Administration menu item. It can be done using the following key during the build application process:
<BuildApp>
  <CS>
    <HideAdministrationMenuItem>True</HideAdministrationMenuItem>

When the key is enabled, the 4D Server Administration menu item is hidden, its shortcut is released, and the dialog is no longer displayed automatically when the 4D Server starts. The only way to display the built-in dialog is to call the OPEN ADMINISTRATION WINDOW command.

Create custom administration SYSTEM

Over the years, 4D has provided commands to get all the information in this dialog so that you can develop your own Administration system. You can define yourself the access strategy, the information displayed, the authorized actions and your own styling!

Useful commands

This list of useful commands is not exhaustive, but you can already take a look on:
Get system info, Get Application info, Get license info, Get process activity, GET MEMORY STATISTICSGET ACTIVITY SNAPSHOT, Cache info, and so on.

Create a 4D-based Administration

Using the above commands, Thomas Maul has developed and shared a dialog reproducing the content and the behavior of the 4D Server Administration Window. He also added some features, extending the built-in functionalities of the 4D Administration Window.
Everything is explained in this blog post.
You can easily integrate this component into your applications and then display it on the 4D Server freely or with your own authentication system.
And note that from 4D v20, you can set up your own Help menu for the 4D Server, as described in this blog post. So, it’s easy to add access to this custom administration dialog!

Create a web-based Administration

In some configurations, you would prefer to develop a web-based Administration system to allow the administrators to access it without running a 4D application or when the 4D Server interface is not accessible, for example, in headless mode.
Some time ago, we delivered a web project doing this, and described it in this blog post. Knowing that this project needed to be include in your own projects, we recently have make it a component. The advantage is that the code is separated from yours. And as the Administration component runs its own web server, the administrator can now stop the host project web server.

The source code can be pulled from this GitHub repository. Feel free to collaborate on this project by adding pull requests on the repo.
blank

 

Hope that all these elements give you ideas and help you develop the 4D Server administration that exactly fits your needs!

We constantly strive to provide our users with the best possible experience, and we encourage you to share your thoughts and feedback on the 4D forum. Your feedback helps us better understand your needs and continuously improve our products and services.

Avatar
• Product Owner •Damien Fuzeau has joined the 4D Product team in February 2019. As a Product Owner, he is in charge of writing user stories, then translating them to functional specifications. His job also entails making sure that the feature implementations delivered are meeting the customer needs.Damien is graduated from the University of Nantes in software engineering. He spent more than 23 years in its former company, first as developer (discovering 4D in 1997), and later as engineering manager and software architect. This company is a 4D OEM partner and deployed 4D based business softwares for thousands users, on hundreds servers. So, Damien is used to 4D development and deployment in a multi-language context.