DBA

From BaseX Documentation
Jump to navigation Jump to search

This page is part of the Getting Started Section.

The full distributions of BaseX are equipped with a browser-based database administration interface, the DBA. It allows you to create and administrate databases, evaluate queries in real time, view log files, monitor logged-in users, manage users, etc. The server-side code is completely written in XQuery and RESTXQ.

These were our design goals:

  • The code base is supposed to inspire and motivate you developing your own RESTXQ web applications.
  • The XQuery DBA code is very slick; it consumes less than 150 KB. It uses plain and simple JavaScript and no framework.
  • We tried to make the DBA features as self-explanatory as possible. All functionalities are also available via Commands, XQuery Modules or the Java GUI.
  • The dba sub-directory can simply be copied and moved to any other place. All URL paths point to the same directory; it should be straightforward to adjust the RESTXQ path.

If you put DBA online along with your web page, please ensure at the very least that:

  • you have changed the password of your BaseX admin user, and
  • the BaseX process has not been started with admin privileges.

Startup[edit]

On the welcome page, you need to authenticate yourself by entering the name and password of an admin user. The default user is admin/admin; after the first login, the password should be changed via the Users panel and create additional DBA users.

Logs[edit]

All database logs are listed, ordered by creation time in descending order. The interactive filter allows you to search in the users and text columns via regular expressions. The found substrings are highlighted in the output.

For each day, a new log files is created. Old log files can be selected and deleted.

Databases[edit]

The database panel contains a list of all databases. Databases can be created, optimized and dropped. If a database is selected, the database resources, backups and properties are listed. Queries can be run on single database resources.

DBA Databases Panel

Queries[edit]

XQuery expressions can be run in the Queries panel. If evaluation takes too long, or if it consumes too much memory, the execution will be interrupted. You can choose if your query is updating or not.

Inside the editor area, you can press Ctrl-Enter to execute the query. You can press Shift-Ctrl-Enter to run your XQuery expression as updating query (or non-updating, if "Updating" is chosen in the dropdown menu).

Existing queries can be opened, and saved for future operations. All files will be stored in the current DBA working directory.

Files[edit]

Remote files can be downloaded, opened in the query editor or run as BaseX jobs, and new files can be uploaded. The chosen directory affects the Queries panel.

You can edit your RESTXQ code in real time by switching to the RESTXQ or repository directory and opening the corresponding modules.

DBA File Panel

Jobs[edit]

In the Jobs panel, all queries are listed that are currently being run or queued. You can view details on particular jobs, spot potential bottlenecks, or spot and kill malicious requests. The panel will always list at least one job, which is the one that is currently preparing your HTTP response.

Users[edit]

Existing users can be updated and new users can be created. Extra information can be viewed and modified both globally and locally (see User Management for more information).

Sessions[edit]

The Web Sessions table lists all users that are currently registered in an application or the DBA. See the DBA RESTXQ code for information on how clients can be registered and logged out.

The Database Sessions table shows clients that are connected via the client/server architecture.

Settings[edit]

In the settings, you can tweak some DBA options, enforce a garbage collection and view all current global and local databases options.

Changelog[edit]

Version 9.4
  • Updated: Logging was improved for millions of log entries
Version 8.6
  • Updated: Always accessible, even if job queue is full
  • Removed: Remote connections (to allow for better optimizations and less locking)
Version 8.4
  • Added: Editor: Key combination 'Shift-Ctrl-Enter', real time mode removed.

Introduced with Version 8.0.