phpmyadmin / error-reporting-server

phpMyAdmin server side component for the error reporting system
MIT License
19 stars 28 forks source link

phpMyAdmin's Error Reporting Server

Test-suite codecov Scrutinizer Code Quality

phpMyAdmin server side component for the error reporting system. It uses CakePHP with some extra plugins like migrations, debugkit and OAuth component.

How to deploy

In order to deploy the app in this repo you need to follow these steps:

Requirements

Web server setup

OAuth configuration setup

Creating the GitHub app

The application relies on authentication using GitHub. To obtain the client ID and key, visit application settings in your Github profile and register an application there.

The callback for the github app should be <http://YOUR_PREFERRED_DOMAIN>/developers/callback where YOUR_PREFERRED_DOMAIN is the URL you wish to access the local instance on.

Copy the example configuration in config/oauth.example.php to config/oauth.php and replace the dummy credentials with the obtained client ID and secret.

Github Events

Sync Github Issue state

./bin/cake sync_github_issue_states

How to run the test suite

If you are on a development machine you can use the webrunner at /test.php However if you need a command line runner. You can use:

composer run test --timeout=0

Running the stackhash update shell

There is a new way of finding unique stacktraces that uses hashes that did not exist previously. I created a shell to calculate those hashes for old records so that they can work with the new code. To use the shell you can just type:

Console/cake custom addHashesToOldRecords

Cron Jobs

To Schedule & run cron jobs cakephp provides a console tool. We need to create shell for use in console. We can run the created shell as cron job.

Execute an Action as Cron Job

For example, following is the command to execute the shell src/Shell/StatsShell.php which cache the error reporting statistics for later use.

bin/cake stats

stats cache will expire in one day so we need to schedule this command to run everyday as cron job.

We need to create new shells to schedule and run different tasks.

Cron Job Logging

A separate log file named cron_jobs is maintained for all the cron jobs. All the logging is done via CakeLog interface. All the failures and other activity relating to cron jobs should be reported there only. That would make debugging easier in case of failure.