Difference between revisions of "Admin Module"

From BaseX Documentation
Jump to navigation Jump to search
m (Text replacement - "|-" to "|- style="vertical-align:top;"")
 
(6 intermediate revisions by the same user not shown)
Line 10: Line 10:
  
 
{| width='100%'
 
{| width='100%'
|- style="vertical-align:top;"
+
|- valign="top"
| width='120' | '''Signatures'''
+
| width='120' | '''Signature'''
|{{Func|admin:logs||element(file)*}}<br/>{{Func|admin:logs|$date as xs:string|element(entry)*}}<br/>{{Func|admin:logs|$date as xs:string, $merge as xs:boolean|element(entry)*}}<br/>
+
|<pre>admin:logs(
|- style="vertical-align:top;"
+
  $date   as xs:string   := (),
 +
  $merge as xs:boolean?  := false()
 +
) as element()*</pre>
 +
|- valign="top"
 
| '''Summary'''
 
| '''Summary'''
 
|Returns [[Logging]] data compiled by the database or HTTP server:
 
|Returns [[Logging]] data compiled by the database or HTTP server:
 
* If no argument is specified, a list of all log files will be returned, including the file size and date.
 
* If no argument is specified, a list of all log files will be returned, including the file size and date.
 
* If a {{Code|$date}} is specified, the contents of a single log file will be returned.
 
* If a {{Code|$date}} is specified, the contents of a single log file will be returned.
* If {{Code|$merge}} is set to true, related log entries will be merged. Please note that the merge might not be 100% successful, as log entries may be ambiguous.
+
* If {{Code|$merge}} is set to true, related log entries will be merged. The merged representation may not be 100% correct, as log entries can be ambiguous.
|- style="vertical-align:top;"
+
|- valign="top"
 
| '''Examples'''
 
| '''Examples'''
 
|
 
|
Line 29: Line 32:
  
 
{| width='100%'
 
{| width='100%'
|- style="vertical-align:top;"
+
|- valign="top"
| width='120' | '''Signatures'''
+
| width='120' | '''Signature'''
|{{Func|admin:write-log|$text as xs:string|empty-sequence()}}<br/>{{Func|admin:write-log|$text as xs:string, $type as xs:string|empty-sequence()}}
+
|<pre>admin:write-log(
|- style="vertical-align:top;"
+
  $message  as xs:string,
 +
  $type     as xs:string := ()
 +
) as empty-sequence()</pre>
 +
|- valign="top"
 
| '''Summary'''
 
| '''Summary'''
|Writes a string to the database logs, along with current user data (timestamp, user name). An optional log {{Code|$type}} can be specified. If omitted, the log type is {{Code|INFO}}.<br/>If the function is called from a database client, the IP will be logged. Otherwise, the string {{Code|SERVER}} will be logged.
+
|Writes a log {{Code|$message}} to the database logs, along with current user data (timestamp, username). An optional log {{Code|$type}} can be specified. If omitted, the log type is {{Code|INFO}}.<br/>If the function is called from a database client, the IP will be logged. Otherwise, the string {{Code|SERVER}} will be logged.
|- style="vertical-align:top;"
+
|- valign="top"
 
| '''Errors'''
 
| '''Errors'''
 
|{{Error|type|#Errors}} Type string contains whitespaces.
 
|{{Error|type|#Errors}} Type string contains whitespaces.
Line 43: Line 49:
  
 
{| width='100%'
 
{| width='100%'
|- style="vertical-align:top;"
+
|- valign="top"
| width='120' | '''Signatures'''
+
| width='120' | '''Signature'''
|{{Func|admin:delete-logs|$date as xs:string|empty-sequence()}}
+
|<pre>admin:delete-logs(
|- style="vertical-align:top;"
+
  $date as xs:string
 +
) as empty-sequence()</pre>
 +
|- valign="top"
 
| '''Summary'''
 
| '''Summary'''
 
|Deletes the log entries from the specified <code>$date</code>
 
|Deletes the log entries from the specified <code>$date</code>
|- style="vertical-align:top;"
+
|- valign="top"
 
| '''Errors'''
 
| '''Errors'''
 
|{{Error|today|#Errors}} Today's log file cannot be deleted.<br/>{{Error|delete|#Errors}} An error occurred while deleting a log file.
 
|{{Error|today|#Errors}} Today's log file cannot be deleted.<br/>{{Error|delete|#Errors}} An error occurred while deleting a log file.
Line 59: Line 67:
  
 
{| width='100%'
 
{| width='100%'
|- style="vertical-align:top;"
+
|- valign="top"
| width='120' | '''Signatures'''
+
| width='120' | '''Signature'''
|{{Func|admin:sessions||element(session)*}}
+
|<pre>admin:sessions() as element(session)*</pre>
|- style="vertical-align:top;"
+
|- valign="top"
 
| '''Summary'''
 
| '''Summary'''
|Returns an element sequence with all currently opened database sessions, including the user name, address (IP:port) and an optionally opened database.<br/>The output of this function and the {{Command|SHOW SESSIONS}} command is similar.
+
|Returns an element sequence with all currently opened database sessions, including the username, address (IP:port) and an optionally opened database.<br/>The output of this function and the {{Command|SHOW SESSIONS}} command is similar.
|- style="vertical-align:top;"
+
|- valign="top"
 
| '''Examples'''
 
| '''Examples'''
 
|
 
|
Line 76: Line 84:
 
! width="110"|Code
 
! width="110"|Code
 
|Description
 
|Description
|- style="vertical-align:top;"
+
|- valign="top"
 
|{{Code|delete}}
 
|{{Code|delete}}
 
|An error occurred while deleting a log file.
 
|An error occurred while deleting a log file.
|- style="vertical-align:top;"
+
|- valign="top"
 
|{{Code|today}}
 
|{{Code|today}}
 
|Today's log file cannot be deleted.
 
|Today's log file cannot be deleted.
|- style="vertical-align:top;"
+
|- valign="top"
 
|{{Code|type}}
 
|{{Code|type}}
 
|Type string contains whitespaces.
 
|Type string contains whitespaces.

Latest revision as of 14:58, 18 September 2023

This XQuery Module contains functions for performing admin-centric operations such as managing database users and log data.

Conventions[edit]

All functions and errors in this module are assigned to the http://basex.org/modules/admin namespace, which is statically bound to the admin prefix.

Database Logs[edit]

admin:logs[edit]

Signature
admin:logs(
  $date   as xs:string    := (),
  $merge  as xs:boolean?  := false()
) as element()*
Summary Returns Logging data compiled by the database or HTTP server:
  • If no argument is specified, a list of all log files will be returned, including the file size and date.
  • If a $date is specified, the contents of a single log file will be returned.
  • If $merge is set to true, related log entries will be merged. The merged representation may not be 100% correct, as log entries can be ambiguous.
Examples
  • admin:logs() may return <file size="834367"/>2015-01-23</file> if a single log file exists.
  • admin:logs() ! admin:logs(.) lists the contents of all log files.

admin:write-log[edit]

Signature
admin:write-log(
  $message  as xs:string,
  $type     as xs:string  := ()
) as empty-sequence()
Summary Writes a log $message to the database logs, along with current user data (timestamp, username). An optional log $type can be specified. If omitted, the log type is INFO.
If the function is called from a database client, the IP will be logged. Otherwise, the string SERVER will be logged.
Errors type: Type string contains whitespaces.

admin:delete-logs[edit]

Signature
admin:delete-logs(
  $date  as xs:string
) as empty-sequence()
Summary Deletes the log entries from the specified $date
Errors today: Today's log file cannot be deleted.
delete: An error occurred while deleting a log file.

Database Sessions[edit]

admin:sessions[edit]

Signature
admin:sessions() as element(session)*
Summary Returns an element sequence with all currently opened database sessions, including the username, address (IP:port) and an optionally opened database.
The output of this function and the SHOW SESSIONS command is similar.
Examples
  • admin:sessions() may e.g. return <session user="admin" address="127.0.0.1:6286" database="factbook"/>

Errors[edit]

Code Description
delete An error occurred while deleting a log file.
today Today's log file cannot be deleted.
type Type string contains whitespaces.

Changelog[edit]

Version 9.2
Version 9.0
  • Updated: error codes updated; errors now use the module namespace
Version 8.3
Version 8.2
Version 8.0
Version 7.8.2
  • Updated: admin:users: md5-encoded password added to output.
  • Updated: admin:logs: represent name of log files as string value; $merge argument added.

The Module was introduced with Version 7.5.