Metadata-Version: 2.4
Name: wbclient
Version: 2.0.2
Summary: Monitor and control FileMaker Servers
Author-email: Peter Wagemans <twinge_sophism.04@icloud.com>, Ian Jempson <ianjempson@gmail.com>
License: <!DOCTYPE html>
        <html id="home" lang="en">
        <head>
          <title>MIT License</title>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <meta name="description"
            content="The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology. As a permissive license, it puts only very limited restriction on reuse and has, therefore, an excellent license compatibility.">
          <script>
            document.createElement('article');
            document.createElement('footer');
          </script>
          <link rel="stylesheet" href="/themes/default.css">
        </head>
        
        <body>
          <article>
            
            <h1>The MIT License (MIT)</h1>
        
            <p>Copyright © 2024 &lt;copyright holders&gt;</p>
        
            <p>Permission is hereby granted, free of charge, to any person obtaining a copy
              of this software and associated documentation files (the “Software”), to deal
              in the Software without restriction, including without limitation the rights
              to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
              copies of the Software, and to permit persons to whom the Software is
              furnished to do so, subject to the following conditions:</p>
        
            <p>The above copyright notice and this permission notice shall be included in
              all copies or substantial portions of the Software.</p>
        
            <p>THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
              IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
              FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
              AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
              LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
              OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
              THE SOFTWARE.</p>
          </article>
          <footer>
        </footer>
        
        </body>
        
        </html>
        
Project-URL: Homepage, https://github.com/DataManixFM/WhistleBlower
Keywords: FileMaker,FileMaker Server,Monitor,Log
Classifier: License :: Freeware
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: Database :: Database Engines/Servers
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: keyboard>=0.13.5
Requires-Dist: urllib3>=2.2.1
Requires-Dist: pandas>=2.3.2
Requires-Dist: psutil>=7.0.0
Requires-Dist: python-fmrest>=1.7.5
Requires-Dist: urllib3>=2.2.1
Requires-Dist: appdirs~=1.4.4
Requires-Dist: pathlib~=1.0.1
Dynamic: license-file

# WhistleBlower
A tool to monitor and control FileMaker Server processes, and a FileMaker Server monitoring solution.
## In detail
WhistleBlower is a combination of a Python script running on one or multiple FileMaker Servers, and a monitoring solution written in FileMaker, hosted on a central monitoring server.

WhistleBlower can log information from a locally running FileMaker Server, and processes remotely given command line instructions on the server machine itself.
It can read all log files, it can log memory and cpu usage of all FileMaker Server processes, as well as gather information about all attached storage volumes.
WhistleBlower can also execute command line instructions, and return the results.
Communication with the monitoring FileMaker Server is done through the FileMaker Data API.
## Installation
WhistleBlower runs on all FileMaker Server platform (Ubuntu/WIndows/macOS), and requires a centrally running FileMaker Server that supports the FileMaker Data API (18+). There are no local FileMaker Server requirements.
Whistelblower als requires python3 to be installed,
### to install:
#### Ubuntu 22.04
(logged in as root!)

<code></br>
cd ~</br>
mkdir wbclient</br>
cd wbclient</br>
apt install python3.10-venv</br>
</code>

(this will restart fmshelper!)

<code>
<br>
python3 -m venv wbclient<br>
source wbclient/bin/activate<br>
</code>

Using pip:
<code>
</br>
pip install wbclient </br>
</code>

Using a folder containing the distribution:
<code>
</br>
pip install ~/dist/wbclient-1.0.0-py3-none-any.whl </br>
</code>

If you just launch wbclient by typing
<code></br>
wbclient
</code>

The application will have created a wb_config.json file in

macOS: /Library/Application Support/wbclient/wb_config.json
Ubuntu: /usr/local/share/wbclient/wb_config.json
Windows: ?

### to configure
<code></br>
nano wb_config.json
</code>

The file contains the following JSON entries:
#### serverid
This is the account used to log in to the central monitoring FileMaker Serve WhistleBlower FileMaker file.
#### host_name
The DNS name of the server that is hosting the WhistleBlower FileMaker file.
#### use_ssl
We strongly recommend setting this to "true".
#### port
Normally 443, but can be changed if your FileMaker Server is e.g. behind a NAT firewall.
#### database_name
Normally "whistleblower", but you can change this name.
#### post_layout
"wb_post" by default, this is the name of the FileMaker layout used during the logging Data API calls.
#### command_layout
"wb_commands" by default, this is the name of the FileMaker layout where the queue table for giving commands resides.
#### post_script
"process_data" by default, this is the name of the script that is execcuted after Data API calls that log information.
#### password
Enter the serverid value and the password entered here, also in the security settings of the WhistleBlower FileMaker file, and give this user the "whistleblower" privilege set.
#### post_interval
This is the time in seconds that the Python code pauses between subsequent actions - checking log files, querying system information and processing commands.
#### keyboard_control
"False" by default, use this if you want to control the python code using the keyboard. Can be handy when running the WhistleBlower tool from the console.
#### command_user
"fmserver" being the default account, because this is the default account FileMaker Server runs as. Theis can be altered to have less or more privileges on the FileMaker Server when executing commands.
#### command_whitelist
This JSON arrary can contain a number of commands that will be executed with elevated privileges, whatever the command_user.
### Running the WhistleBlower tool
the command "wbclient" can be invoked from the console, or the server can be configured to run whistleblower at startup.
#### important
wbclient should be run with elevated privileges. This means using sudo on Ubuntu or macOS, or running a PowerShell as Administrator on Windows.

## Changelog
### 2.0.2 - 2025-08-31
### Fixed
- Typos and other errors in the README file
- Some PEP 8 errors in the source code
- changed the location of the "wb_config.json" file to be above user level because macOS does not allow write for the root user
### Added
- Changelog
