Git Product home page Git Product logo

oarevalo / bugloghq Goto Github PK

View Code? Open in Web Editor NEW
155.0 22.0 67.0 1.82 MB

BugLogHQ is a tool to centralize the handling of automated bug reports from multiple applications. BugLogHQ provides a unified view of error messages sent from any number of applications, allowing the developer to search, graph, forward, and explore the bug reports submitted by the applications.

Home Page: http://www.bugloghq.com

ColdFusion 91.98% PHP 0.35% JavaScript 5.37% Python 0.46% CSS 1.27% HTML 0.57%

bugloghq's Introduction

BugLogHQ (v1.8)

https://github.com/oarevalo/BugLogHQ

BugLogHQ is a tool to centralize the handling of automated bug reports from multiple applications. BugLogHQ provides a unified view of error messages sent from any number of applications, allowing the developer to search, graph, forward, and explore the bug reports submitted by the applications.

Copyright 2009-2013 - Oscar Arevalo (http://www.oscararevalo.com)

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Contents:

  1. About BugLogHQ

  2. Release Notes

  3. Integrating BugLogHQ into your Applications

  4. BugLogHQ Interface

  5. Installation and Usage Notes:

  6. Supported Databases

  7. Acknowledgements / Thanks / Credits

  8. Bugs, suggestions

  9. Using BugLog with Non ColdFusion Applications

  10. CORS

  11. About BugLogHQ


BugLogHQ is a tool to centralize the handling of automated bug reports from multiple applications. BugLogHQ provides a unified view of error messages sent from any number of applications, allowing the developer to search, graph, forward, and explore the bug reports submitted by the applications. All bug reports received by BugLogHQ are stored on a normalized database, thus providing the option to the developers to further extend the application to leverage this information.

  1. Release Notes

New in 1.8 (4/2012)

  • Users can now be restricted to access only specific applications assigned by the Administrator. Restricted users will only be able to see bug reports for their assigned applications and create rules for those applications.
  • CRUD screens to manage Severities, Hosts and Applications. These are accessed through the Settings page and are only accessible to users in Admin role.
  • The REST listener can now receive data in the body of the HTTP request encoded as a JSON object
  • Checkpoint Tracking. The CFM client now has a checkpoint() method that you can use to track checkpoints or milestones during the page execution. If a bug is sent, then those checkpoints will be displayed on the full bug report.
  • Remote Listener. This is a different listener type that allows the BugLog webapp and the Listener endpoint to be on separate servers, while at the same time allowing the webapp to control the listener.
  • Individual users can now be assigned their own API keys to submit bug reports
  • Added option to toggle on/off the automatic creation of hosts/severities/applications when a new bug report is received.
  • Rules changes are now applied immediately without the need to restart the listener service.
  • CFM applications using the buglog client can now set the application name explicitly, max depth for cfdumps and toggle logging messages locally.
  • Added a basic ANT build script for generating a ZIP file suitable for deployment.

New in 1.7 (9/2012)

  • A new "Dashboard" homepage.
  • More granular and finer timespans to view received errors.
  • A log of each time an alert is fired with information on the bug report that triggered the alert.
  • Optional HTTP Basic authentication for access to RSS feeds.
  • Expose the results of any search criteria as an RSS feed.
  • A new client written in JavaScript to allow client-side webapps to report errors to a BugLog server.
  • Centralized and standardized display of dates and times, including support for time zone conversion.
  • Display additional insights and context for each bug report (timeline, other reports from same user agent, host distribution)
  • Allow deletion of bug reports
  • Improved listing of current rules to provide a human-readable description of what they actually do.
  • Use jQuery and Twitter Bootstrap for the main user interface.

New in 1.6 (7/2012)

  • Support for "Named Instance" deployment. A Named Instance means that you can have multiple instances of BugLog running on the same server at the same time. Each instance have their own configuration and point to their own databases.
  • BugLog can now (optionally) run out-of-the-box on any directory (even the webroot).
  • Added support for PostgreSQL (contributed by Morgan Dennithorne)

New in 1.5 (2/2011)

  • Extensions are now stored on a database instead of an XML file
  • Creating a rule instance is now much more user friendly because application, host and severity codes can be selected via dropdowns; or can also be prepopulated from an existing bug report.
  • Added support for defining settings for multiple environments (dev,qa,prod1,prod2,etc). Once the environment is detected buglog can override any setting with custom values.
  • Added option to disable editing settings through the UI (useful if you have your config file versioned and only want to configure buglog that way)
  • Added the "BugLog Digest" which is a configurable and periodic email summary of all reports received in the last X hours.
  • Rewrote the "iphone" UI to be for mobiles in general (now its accessible at /bugLog/mobile), also there is an improved platform detection when going to /bugLog. If you go with any mobile browser you should get redirected to the new UI, otherwise you go to the regular desktop UI
  • Multiple bug fixes

New in 1.4 (11/2009)

  • Bug reports and rules are now processed asynchronously and not at the time they arrive. This largely increases the response and scalability of the system. The default interval for execution is 2 minutes but this can be configured easily.
  • Reduced the number of configuration files (only 2) and moved them to a single location.
  • Added a "settings" screen to the main interface to allow administrators to configure multiple aspects of BugLogHQ as well as perform user management.
  • Added support for integrating with JIRA. When enabled allows sending issues directly from BugLog to a JIRA instance.
  • Added support for multiple users in two roles: administrators and regular users.
  • Added option to change user password.
  • Added option to require an API key that each application must send in order to submit bug reports.
  • Added option to disable rules without having to delete them.
  • Added more rule types and extended configuration options for existing types.
  • Added option to purge history so that old data can be deleted
  • Multiple bug fixes.
  • Deprecated support for storing data in XML files (it really really didn't make any sense)
  • UPDATE: Added custom web interface for iPhone/iPod Touch. See /bugLog/iphone

New in 1.3

  • This is a release of mostly internal changes. The entire data access layer has been refactored to use an improved mechanism that makes it easier to work with different backend data storages. See: http://www.oscararevalo.com/index.cfm/2007/11/28/Using-Polymorphism-and-Inheritance-to-Build-a-Switchable-Data-Access-Layer
  • The BugLogHQ application (where you go to see the bug reports) has also been updated to improve performance and use the new DAO layer.
  • Configuration of data storage is now done via a config xml on the /buglog/config directory.The file is dao-config.xml.cfm. Here is where you can set the DSN, user, password and dbtype. From here, you can also change the storage mechanism from a database to simple XML files (maybe for a quick test drive)
  • Fixed bug that would throw errors if the email addresses for top-level error reporting were not defined.
  • Added a directory /bugLog/tests that contains files to test both the client and server side of buglog, and also can be used as a refence as to how to implement the client side of bugLog.
  • BugLogListener now uses memory caching to improve performance and process bug reports faster
  • Fixed sql scripts for MSSQL, all tables should now be configured with primary keys defined as numeric identity values
  • bl_source table no longer needs to be populated with pre-defined values. The listener will insert these as needed.
  • Added bugLogProxy.cfm for integration with BugLogMini ( http://buglogmini.riaforge.org/ )

New in 1.2

  • Support for a configurable and extensible rules system. Rules are processes that are applied to each bug report as it is received. Rules can be defined for tasks such as sending notifications when a bug of given conditions is received; when the amount of bugs received in a given timeframe is greater than a defined threshold, etc. The rules system is extensible in the sense that each rule is implemented as a CFC with a common interface. For more info on rules see: http://www.oscararevalo.com/index.cfm/2007/10/2/BugLogHQ-New-Rules-feature
  1. Integrating BugLogHQ into your Applications

Applications can send bug reports to BugLogHQ via three different ways:

  • webservice call
  • http post
  • direct CFC call

BugLogHQ provides a CFC that can be used to send the bug reports. This CFC is located in /bugLog/client/bugLogService.cfc. This is the only file that needs to be distributed with any application that wants to submit reports to BugLogHQ. The client cfc requires at least a CFML engine compatible with Adobe ColdFusion 8.

You may instantiate and keep the instance of this CFC in some a scope such as Application and then just call the notifyService() method in it whenever the application needs to submit a bug report.

To initialize the bugLogService, call the Init method. This method takes three parameters:

  • bugLogListener: The location of the listener where to send the bug reports
  • bugEmailRecipients: A comma-delimited list of email addresses to which send the bug reports in case there is an error submitting the report to the bugLog listener.
  • bugEmailSender: The sender address to use when sending the emails mentioned above.

The bugLogListener parameter can be any of:

  • WSDL pointing to /bugLog/listeners/bugLogListenerWS.cfc (to submit the report using a webservice),
  • Full URL pointing to /bugLog/listeners/bugLogListenerREST.cfm (to submit as an http post)
  • path to /bugLog/listeners/bugLogListenerWS.cfc in dot notation (i.e. bugLog.listeners.bugLogListenerWS)

If an error occurs while submitting the report to the listener, then bugLogService will automatically send the same information as an email to the addresses provided in the init() method.

TIP: Check the file /bugLog/test/client.cfm for an example of how to use the bugLog client CFC

  1. BugLogHQ Interface

To access the BugLogHQ interface, go to /bugLog/ on your bugLog server; the interface is password protected. The default username and password is: admin / admin. From here you can have an overview of every bug report that has been received. Everything is pretty self-explanatory, and there are lots of things you can click to visualize the data in different ways.

  1. Installation and Usage Notes:

  • To install BugLog just unpack the zip file into the root of your webserver. BugLogHQ assumes it will be installed on a directory named /bugLog. If you want, you can also put BugLog directly on the web root or any other directory.

NOTE: If you want to install bugLog on a location other than the default (/bugLog/), you will need to update the setting general.externalURL with the path to where you installed BugLog. The path must always end with a "/". Examples: "/", "/mybuglog/", "/bugtrackingthingy/", etc.

NOTE: The BugLogHQ webapp requires a CFML engine compatible with at least Adobe ColdFusion 9; however it can receive bug reports from any version of CFML engines (or pretty much anything that can make an HTTP post)

  • Run the corresponding SQL script for your database. The script can be found in the /install directory. This will create the necessary tables.

  • By default bugLogHQ uses a datasource named "bugLog" with no password, to change this go to:

    /bugLog/config/buglog-config.xml.cfm

Change the <setting /> tags for:

db.dsn:	datasource name as defined in the CF administrator (by default is bugLog)
db.dbtype: database type. Can be mysql, mssql (for Microsot SQL Server), pgsql (for PostgreSQL) or oracle. The default is mysql
db.username: username for the datasource (if needed)
db.password: password for the datasource (if needed)
  • To access the bugLogHQ interface, go to /bugLog. The default username/password is:

    username: admin password: admin

IMPORTANT: To change the admin password or to create additional users click on the "Settings" link on the upper right corner of the screen.

TIP: Changing the setting general.externalURL in the main config you can tell BugLog the URL to use when referring to itself. By default buglog will try to guess it from the CGI scope, but in some cases you may want to override this. For example if you have a clustered deployment. This value can be either a relative path starting with "/", or a full URL (i.e. "http://www.someserver.com/bugLog/")

TESTING AND VERIFICATION:

After installation use your browser to go to /bugLog/test and follow the links to test both the client and server side of buglog.

CONFIGURING MULTIPLE ENVIRONMENTS

You can override any setting on the main config on a per-environment basis. To determine which is the current environment, BugLog will look for a file named severkey.txt on your /bugLog/config directory. This file should only contain a single word that is used to name the environment. For example: "dev" or "prod-server-1" or something like that.

Then on your buglog-config.xml.cfm add an <envSettings /> section like the following example:

<envSettings name="dev">
  <setting name="db.dsn">bugLog_dev</setting>
  <setting name="general.adminEmail">[email protected]</setting>
</envSettings>

Where the "name" attribute of the envSettings tag must match what you provide on your serverkey.txt file. Inside you can place any number of <settings/> tags you want. These will override the settings of the same name defined on the general part of the config.

You can have as many <envSettings/> sections as you want. However only one will be used (the one that matches your serverkey.txt).

If none matches the serverkey, then BugLog will use the default settings.

An alternative way of providing the "serverkey" value is by using a Context Parameter. The advantage is that this method does not require you to add any new files to your BugLog installation. Of course, this only works if you have access to the config files of your application server.

For example in Tomcat, to set your serverkey as "dev", you would set a context parameter by editing "{Tomcat Path}/conf/context.xml" like this:

<Context>
  ...
  <Parameter name="serverkey" value="dev" override="false" />
  ...
</Context>

INSTALLING A NAMED INSTANCE

To create a new instance, just create a new directory under the webroot with the name you want for your neq instance (i.e. "/buglogdev").

On the new directory copy the contents of /bugLog/install/named-instance-template.

NOTE: don't copy the directory itself, only its contents.

Change the new Application.cfc to properly name your application, and modify the config/buglog-config.xml.cfm on your new instance to set its appropriate configuration (datasource, etc).

After that you can just go to /buglogdev (in this case) to access your new instance.

To submit bugs to this instance, just point your buglog client to /buglogdev/listener.cfm

  1. Supported Databases:

Currently BugLogHQ supports the following databases:

  • MySQL
  • Microsoft SQL Server 2000
  • Microsoft SQL Server 2005
  • Microsoft Access
  • PostgreSQL
  • Oracle

IMPORTANT: Make sure you enable CLOB/BLOB support on the CF datasource settings in the ColdFusion Administrator, otherwise your bug reports might get truncated.

  1. Acknowledgements / Thanks / Credits

  • BugLogHQ uses rss.cfc by Raymond Camden (http://cfrss.riaforge.org/)
  • Lots of icons from the "Silk" icon set by Mark James (http://www.famfamfam.com/)
  • Thanks to Tom DeManincor for creating the SQL script for MSSQL
  • Thanks to Chuck Weidler for updating and providing the SQL scripts for Access, MS SQL Server 2000, MSSQL Server 2005
  • Thanks to WST crew at Mentor Graphics for the great suggestions and ideas to improve BugLog
  • Thanks to Morgan Dennithorne (https://github.com/morgdenn) for adding support for PostgreSQL
  • Thanks to Brian Swartzfager (https://github.com/bcswartz) for adding support for Oracle
  • Thanks to everyone that contributes code and patches to the project!
  1. Bugs, suggestions, criticisms, well-wishes, good vibrations, etc

There is now a Google Groups for the BugLogHQ project. Use them to ask any questions, ask for help if you get stuck, or if you have any contributions that you would like to share.

  1. Using BugLog with Non ColdFusion Applications

Since BugLog listens for bug reports through standard protocols via HTTP (REST and SOAP), you can use it to aggregate bug reports from any application, not just ones made in CFML. An application just needs to point to the right listener endpoint and pass the necessary parameters.

On the /client folder you can find basic versions of PHP, Python and JavaScript clients that can be used to have an easier integration between your applications and BugLog. Please note that this scripts are on an "experimental" state, so they are a bit more simpler than the CFML version. They also use only the REST listener, not the SOAP one.

  1. CORS

When using the REST endpoint, you have the option to provide a bit of additional security by providing a CORS configuration.

To enable CORS, you must have the following entries on your config/buglog-config.xml.cfm file:

	<setting name="cors.enabled">true</setting>
	<setting name="cors.allowOrigin">*</setting>

The * in allowOrigin tells that any domain is accepted for requests, however you may change this to a more restrictive value if desired.

Additionally, you may use the following optional settings for more specific configurations:

	<setting name="cors.allowMethods"></setting>
	<setting name="cors.allowHeaders"></setting>
	<setting name="cors.allowCredentials"></setting>
	<setting name="cors.maxAge"></setting>

bugloghq's People

Contributors

akiandy avatar aliaspooryorik avatar awayken avatar bcswartz avatar cfchris avatar coldwell avatar coryasilva avatar developerjoe avatar dfgrumpy avatar jbez avatar jimpriest avatar krunchmuffin avatar michael-zock avatar oarevalo avatar sebduggan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bugloghq's Issues

Purge Scheduler Bug

We kept enabling the Purge option and it would never purge and could not figure out why. Ends up if you have purge enabled, but digest NOT enabled there's a typo in the "configureDigest" function (in BugLogListener.cfc).

If digest is not enabled, it actually removes the purge CRON job, we updated this line within the "configureDigest" function - line #444 in our copy:

<cfset scheduler.removeTask("bugLogPurgeHistory") />

TO:

<cfset scheduler.removeTask("bugLogSendDigest") />

So if digest is NOT enabled, it removes the digest CRON job - not the purge one.

Figured you would want to know-

I want to be able to tell BugLogHQ to process bugs immediately.

We have a multi-tenant application where many domains point at one codebase. We have multiple IIS servers and each has a few CF servers to spread the load. All of that is load balanced with sticky session. So... when the scheduled tasks get called, there is no guarantee what instance is being hit. And bugs are staying in the queue for a long time.

I propose (and will write) an update to "notifyService" that allows you to force queue processing immediately. I will default this to "false" for backwards compatibility.

Official constant for CFDump's "top" parameter in CF client service

This is somewhat related to the sanitizeDump() introduced in issue #30.

When dumping out extra data, related ORM entities can quickly blow up into a ton of used memory, because by the default the "top" parameter of the tag is set to 9999, meaning the tag will cascade down the next 9998 encapsulation instances as well Resulting heap memory errors due to this are not that uncommon in some more complex applications.

Adding something like "variables.max_dump_depth" would make it the user's responsibility to specify that.

Making it an optional argument for the notifyService() would allow even for more flexibility, but probably cause more work as well, since it changes the facade of the interface (might have top be reflected in other client services).

General Settings: Setting Feeds to Public

I tried to set the Allow Public Access To RSS feed to public and get an error after submitting the form.

Here are the details:
Could not find the ColdFusion component or interface listener. Ensure that the name is correct and that the component or interface exists.
The error occurred on line 24.

File: BugLogHQ\listeners\bugLogListenerWS.cfc:24

Let me know if you need some more info.

Use JQuery for javascript stuff

Currently all javascript snippets are embedded on each view template; they should be refactored to a separate .js file and leverage something like jquery

v1.8 Bug: Couple of valueList() statements that throw syntax errors

There are 3 instances in the BugLog code:

components/hq/appService.cfc, lines 692 and 703
components/bugLogListener.cfc, line 333

...where the variable inside the valueList() function is enclosed in double-quotes. In ColdFusion 9.0.1 (on my box, anyway), those lines throw the error "Complex constructs are not supported with function ValueList" and prevent BugLogHQ from even running.

Removing the double-quotes solves the problem.

v1.8: Two minor issues ("CFC" test and link from user edit screen to API security)

While I was trying out v1.8 to make sure it worked with Oracle, noticed two minor quirks:

  1. In the list of listeners on the "BugLog Listeners" screen, only SOAP and Post / Rest are listed. But if you click the "Test" link for either, at the bottom of the resulting test page the list of test links includes the "CFC" test option.

  2. In the new edit screen for editing a user account in BugLogHQ, the help text under the new "User API" option includes a link back to the "API Security" screen. But the URL is wrong: it's currently "index.cfm?admin.main&panel=APISecurity" instead of "index.cfm?event=admin.main&panel=APISecurity"

Design is gone - or im dump

Or to be correct: The design has never appeared :(
I've downloaded BugLogHQ v1.8.2 and installed it on my server under the following URL:
http://bugs.mandelkind.ch/

It seems that BugLogHQ is not meant to running on its own URL - what i hardly believe - or I'm missing something.

A quick hint into the right direction would make me very happy!

Also, is it possible to run BugLogHQ without adding any mapping to the Server?
If so, what I have to do to make this possible?

Many Thanks!!

SQL "null" argument still needs to be set in a few spots

Seems there are still a few cases similar to issue #72

In this case it happened while I was viewing a bug entry and wanted to delete the entry along with all its siblings.
Database in question is an MS SQL Server, though setting the "null" argument in the cfqueryparam tags should probably be a more versatile remedy.

Exception Summary
Application:    bugLogHQ
Host:   intra1
URL:    http://intra1/buglog/hq/index.cfm
Server Date/Time:   03.12.2013 10:02
Message:    Invalid data '' for CFSQLTYPE CF_SQL_NUMERIC.
Type:   Database
Detail:     
Tag Context:    
Y:\intranet\bugLog\components\lib\dao\dbDataProvider.cfc [64]
Y:\intranet\bugLog\components\lib\dao\DAO.cfc [47]
Y:\intranet\bugLog\components\hq\appService.cfc [318]
Y:\intranet\bugLog\hq\handlers\general.cfc [524]
Y:\intranet\bugLog\core\coreApp.cfc [210]
Y:\intranet\bugLog\core\coreApp.cfc [95]
Y:\intranet\bugLog\hq\index.cfm [27]
Script Name (CGI):  /buglog/hq/index.cfm
User Agent:     Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 ColdFire/1.11.208.251
Remote Address:     192.168.110.79
Referrer:   http://intra1/buglog/hq/index.cfm?event=entry&entryID=313771
Query String:   
Request Method:     POST
ColdFusion ID:  [SESSION]      CFID = - ; CFTOKEN = — ; SESSIONID = 84309817417cbff85cdd6869344e4bf17497
[CLIENT]      CFID = — ; CFTOKEN = —
[COOKIES]      CFID = 9464695 ; CFTOKEN = 68838170 ; JSessionID = 84309817417cbff85cdd6869344e4bf17497

Exception Info
Suppressed:     Empty array
SQLState:   n/a
sql_type:   CF_SQL_NUMERIC 

Verbose dump data can cause a loss of queued data in the service listeners

Hi

I just encountered a problem where data can be lost because the listener can't write extremely long queue data to the database and restarting the listener will mean the loss of the currently queued reports.

In my case the method processQueue() in the bugLogListenerAsync.cfc went into the catch block, because the _insert() in the dbDataProvider.cfc was unable to insert record due to the extra data.In this case, some HTML from a remote service, whose 55,399 "slightly" exceeded the 5000 character limit in your schema (I'm dealing with a MS SQL Server, where the system wouldn't allow more than 8,000 characters anyway). ;)

Stopping and restarting the listener would mean losing the queued data, which is not exactly desirable.
Wouldn't it be better to do a "left(trim( foo ), 5000)" on the content beforehand to salvage at least some of the reported error report rather than losing all of it and a ton of other stuff caught in the same queue?

Add BugLogID / link into email

When I get an email from BugLog it would be nice if it included a link back to bugLog.

This could also be cut-pasted into a ticket system, etc.

v1.8 and Oracle: Need shorter constraint name in Oracle install script

Oracle sets a 30-character limit on constraint names, and the final foreign key constraint name for the new BL_UserApplication table exceeds that limit.

Easy fix: just change constraint name from "fk_userApplication_ApplicationId" to something like "fk_userApplication_AppId"

With that fixed, the install script runs perfectly. And that was the only Oracle-specific issue I found with version 1.8.

How do you access the RSS feed?

I went to: bugLog/hq/index.cfm?event=rss and I'm prompted for a username and password. I tried my BLHQ username/password, even the admin username/password, but it never succeeds.

Logging in with IE9 takes u to just a chart

For whatever reason, in IE9 only, it takes me just to a chart with nothing else on the screen. Though the URL still shows /buglog/hq/index.cfm?event=& and view source just has the tag.

Invalid API Key while deleting Issues

When i would like to delete some issues i get the error "Invalid API Key".

I get this error only when i select follow option:

"Delete all reports with the same message on this application"

And only when i have a lot of errors with the same message, i have now 3000.

RuleProcessor Error: Undefined setting 'debug.email'

After a fresh install of v1.8.2 and enabling the "firstMessageAlert" in the BugLogHQ Admin i receive the following error:

RuleProcessor Error: Undefined setting 'debug.email'

These are my settings of the firstMessageAlert
bildschirmfoto 2014-01-08 um 04 49 30

And here's the full StackTrace:

Undefined setting 'debug.email'
at components.config_cfc$cf.udfCall(C:\inetpub\wwwroot\mnk_bugs\components\config.cfc:27):27
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:94):94
at railo.runtime.type.UDFImpl._call(UDFImpl.java:307):307
at railo.runtime.type.UDFImpl.call(UDFImpl.java:211):211
at railo.runtime.ComponentImpl._call(ComponentImpl.java:616):616
at railo.runtime.ComponentImpl._call(ComponentImpl.java:499):499
at railo.runtime.ComponentImpl.call(ComponentImpl.java:1715):1715
at railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:712):712
at railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1503):1503
at components.baserule_cfc$cf._2(C:\inetpub\wwwroot\mnk_bugs\components\baseRule.cfc:228):228
at components.baserule_cfc$cf.udfCall(C:\inetpub\wwwroot\mnk_bugs\components\baseRule.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:94):94
at railo.runtime.type.UDFImpl._call(UDFImpl.java:307):307
at railo.runtime.type.UDFImpl.call(UDFImpl.java:211):211
at railo.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:700):700
at railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:712):712
at railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1503):1503
at components.baserule_cfc$cf._1(C:\inetpub\wwwroot\mnk_bugs\components\baseRule.cfc:127):127
at components.baserule_cfc$cf.udfCall(C:\inetpub\wwwroot\mnk_bugs\components\baseRule.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:94):94
at railo.runtime.type.UDFImpl._call(UDFImpl.java:307):307
at railo.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:198):198
at railo.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:709):709
at railo.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:738):738
at railo.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1513):1513
at extensions.rules.firstmessagealert_cfc$cf.udfCall(C:\inetpub\wwwroot\mnk_bugs\extensions\rules\firstMessageAlert.cfc:116):116
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:94):94
at railo.runtime.type.UDFImpl._call(UDFImpl.java:307):307
at railo.runtime.type.UDFImpl.call(UDFImpl.java:211):211
at railo.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:700):700
at railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:712):712
at railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1503):1503
at extensions.rules.firstmessagealert_cfc$cf.udfCall(C:\inetpub\wwwroot\mnk_bugs\extensions\rules\firstMessageAlert.cfc:75):75
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:94):94
at railo.runtime.type.UDFImpl._call(UDFImpl.java:307):307
at railo.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:198):198
at railo.runtime.ComponentImpl._call(ComponentImpl.java:617):617
at railo.runtime.ComponentImpl._call(ComponentImpl.java:499):499
at railo.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1728):1728
at railo.runtime.tag.Invoke.doComponent(Invoke.java:203):203
at railo.runtime.tag.Invoke.doEndTag(Invoke.java:176):176
at components.ruleprocessor_cfc$cf.udfCall(C:\inetpub\wwwroot\mnk_bugs\components\ruleProcessor.cfc:79):79
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:94):94
at railo.runtime.type.UDFImpl._call(UDFImpl.java:307):307
at railo.runtime.type.UDFImpl.call(UDFImpl.java:211):211
at railo.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:700):700
at railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:712):712
at railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1503):1503
at components.ruleprocessor_cfc$cf.udfCall(C:\inetpub\wwwroot\mnk_bugs\components\ruleProcessor.cfc:60):60
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:94):94
at railo.runtime.type.UDFImpl._call(UDFImpl.java:307):307
at railo.runtime.type.UDFImpl.call(UDFImpl.java:211):211
at railo.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:700):700
at railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:712):712
at railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1503):1503
at components.ruleprocessor_cfc$cf.udfCall(C:\inetpub\wwwroot\mnk_bugs\components\ruleProcessor.cfc:21):21
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:94):94
at railo.runtime.type.UDFImpl._call(UDFImpl.java:307):307
at railo.runtime.type.UDFImpl.call(UDFImpl.java:211):211
at railo.runtime.ComponentImpl._call(ComponentImpl.java:616):616
at railo.runtime.ComponentImpl._call(ComponentImpl.java:499):499
at railo.runtime.ComponentImpl.call(ComponentImpl.java:1715):1715
at railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:712):712
at railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1503):1503
at components.bugloglistener_cfc$cf._1(C:\inetpub\wwwroot\mnk_bugs\components\bugLogListener.cfc:122):122
at components.bugloglistener_cfc$cf.udfCall(C:\inetpub\wwwroot\mnk_bugs\components\bugLogListener.cfc):-1
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:94):94
at railo.runtime.type.UDFImpl._call(UDFImpl.java:307):307
at railo.runtime.type.UDFImpl.call(UDFImpl.java:211):211
at railo.runtime.ComponentImpl._call(ComponentImpl.java:616):616
at railo.runtime.ComponentImpl._call(ComponentImpl.java:507):507
at railo.runtime.SuperComponent.call(SuperComponent.java:62):62
at railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:712):712
at railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1503):1503
at components.bugloglistenerasync_cfc$cf.udfCall(C:\inetpub\wwwroot\mnk_bugs\components\bugLogListenerAsync.cfc:60):60
at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:94):94
at railo.runtime.type.UDFImpl._call(UDFImpl.java:307):307
at railo.runtime.type.UDFImpl.call(UDFImpl.java:211):211
at railo.runtime.ComponentImpl._call(ComponentImpl.java:616):616
at railo.runtime.ComponentImpl._call(ComponentImpl.java:499):499
at railo.runtime.ComponentImpl.call(ComponentImpl.java:1715):1715
at railo.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:712):712
at railo.runtime.PageContextImpl.getFunction(PageContextImpl.java:1503):1503
at util.processqueue_cfm$cf.call(C:\inetpub\wwwroot\mnk_bugs\util\processQueue.cfm:12):12
at railo.runtime.PageContextImpl.doInclude(PageContextImpl.java:834):834
at railo.runtime.PageContextImpl.doInclude(PageContextImpl.java:786):786
at railo.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:206):206
at railo.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:18):18
at railo.runtime.PageContextImpl.execute(PageContextImpl.java:2167):2167
at railo.runtime.PageContextImpl.execute(PageContextImpl.java:2134):2134
at railo.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:335):335
at railo.loader.servlet.CFMLServlet.service(CFMLServlet.java:29):29
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848):848
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:648):648
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455):455
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137):137
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559):559
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231):231
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072):1072
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382):382
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193):193
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006):1006
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135):135
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255):255
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154):154
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116):116
at org.eclipse.jetty.server.Server.handle(Server.java:365):365
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485):485
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926):926
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988):988
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635):635
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235):235
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82):82
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627):627
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51):51
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608):608
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543):543
at java.lang.Thread.run(Thread.java:722):722

I love this web app...

Oscar,

Doing a quick search on google reveals that your app is one of a kind...
It makes no sense to me why there are so many so called "bug tracker" applications that ALWAYS require you to manually enter bugs that are found... when we all know most bugs are hard to find and even if they are found, they are hard to report in some form somewhere on the web.

I'm STILL interested in converting this to a SAAS offering with you.

24 hour view doesn't show current hour in the graph

I was going to try to just fix this myself and send a patch but I can't figure out where rs.criteria.startDate is being set so that I can adjust it for this view.

Basically, most views show the current hour/minute/whatever at the right edge of the graph, but the 24 hour view shows the 24 hours before now. So if the current time is 9:30am, then the graph shows 9am yesterday through 8am today.

Compare this to the 3-hour view. Current time is 10:30am, graph shows: 7am-10am, and the presumption is that the bar for 10am could just keep growing until the hour is complete.

Add "Template" and "LineNumber" to Entry schema.

In our old bug log that we wrote internally, we had the template and line number in the entry. So, doing aggregates and searching by template were easy. Would you be opposed to adding these as optional properties when submitting an entry?

Mark as FIXED and archive

This would be a nice feature. Would also need a timestamp. Or even better, ability to link to the changeset in a DVCS like github or bitbucket.

Timezone setting causes failure in application

Changing the Timezone in the buglog-config.xml.cfm to UTC-5 (or some such value) causes the application to report an error with the format.

Expression Exception - in C:_web\bugLog\hq\includes\udf.cfm : line 76
{ts '2013-06-17 07:59:56'} is an invalid time format.

To fix this, remove the {ts } portions of the date time return strings in /hq/includes/udf.cfm inside of the dateConvertZ(). (This is on CF9)

return "{ts '" & DateFormat(targetDate, "yyyy-mm-dd ") & TimeFormat(targetDate, "HH:mm:ss") & "'}";
should be
return DateFormat(targetDate, "yyyy-mm-dd ") & TimeFormat(targetDate, "HH:mm:ss");

return "{ts '" & DateFormat(targetDate, "yyyy-mm-dd ") & TimeFormat(targetDate, "HH:mm:ss") & "'}";
should be
return DateFormat(targetDate, "yyyy-mm-dd ") & TimeFormat(targetDate, "HH:mm:ss");

return "{ts 'yyyy-mm-dd HH:mm:ss'}";
should be
return 'yyyy-mm-dd HH:mm:ss';

Use of cgi.http_method in BugLogListenerREST

While working on making BugLogHQ compatible with Oracle (looking good so far, should have code to contribute back soon), I got an error while running the test of the REST listener on my local machine (Mac OS, Apache, CF 9.0.1). Tracked the error back to line 21 of BugLogListenerREST.cfm, where the source value for the bug log entry is pulled from "cgi.http_method".

Unless I'm missing something, there is no "http_method" key in the CGI scope. This line should be using cgi.request_method. Once I fixed that line on my machine, it worked fine.

Modify mailRelay to allow selecting of hosts

Hi,

We've been using BugLog for a month or two now and really like the application.

Our initial setup has been to just forward all our bugs via email to the technical team. We anticipate that we'll do this for a while still.

We have a problem though where we are getting all emails from our live hosts and development/testing hosts. We really only want emails from our live hosts. Unfortunately the mailRelay option does not allow you to select just a single host.

We did try add discard rules for our development/testing environments which didn't seem to discard the bugs. In any case, we do want a record of the bugs from our development environments, we just don't want them emailed.

Would it be possible to add a host parameter (and maybe even application) to the mailRelay rules?

Thanks for all your hard work on this project, we love it and can't wait for version 2 :)

Matt

Strip auto-generated JS from client service's CFDump

Right now the composeFullMessage() in the client component uses plain tags to output the catch and extra details. This results in the tag's generated Javascript showing up in the error results unnecessarily, because the corresponding script tags get nuked.

Due to the greedy regular expression pattern this is only a workaround, because it doesn't differentiate between JS generated by the dump tags and JS inside one of those two arguments, but the following example would solve at least part of the problem:

<cffunction name="sanitizeDump" access="private" returntype="string" hint="Performs a sanitized dump, where JavaScript has been removed to minimize XSS risks">
    <cfargument name="dumpData" type="any" required="true">

    <cfsavecontent variable="LOCAL.result"><cfoutput><cfdump var="#ARGUMENTS.dumpData#"></cfoutput></cfsavecontent>

    <CFRETURN reReplaceNoCase(LOCAL.result, "<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>", "<b>(BugLogHQ: JavaScript removed to minimize XSS risks!)</b>","all")>
</cffunction>

Changing email server

I would like to have the option of specifying a different email server than the CF server default. We use sendgrid.com to send emails, but I don't want to have to use it for this since it eats up credits that would be used for client emails.

Thanks!

Send to Trello

Trello recently added the ability to create cards via email. It would be cool if every bug-detail page showed a "send to trello" button that would create a trello card linking to the current bug. I haven't dug into the functionality much yet but I expect it's as simple as subject, body, to-address, so you should only need to save a trello email address in your config.

Certainly would require more research into the Trello feature, but just wanted to get this idea out of my head and into an ER. :)

Allow user to choose specific date range

For example, I may want to go back and look at January in detail now in May. It's currently only possible by selecting a view that allows you to go far enough back. 60 days doesn't include January, and 120 days rolls everything up to month-size blocks. I'd like to be able to look at it grouped by day, or by week, etc -- but for my chosen start and end dates.

executing listener tests from settings panel

Version: 1.7.4
Server: CentOS / Tomcat 7.0.35 / Railo 4.0.4

I'm getting an uncaught exception while trying to execute a test of the API listeners. The error message reads "Invalid API Key". Adding the apikey URL parameter solves the issue. Should this value be appended to the "test" hrefs on the listeners page?

I'm new to BugLog, so I might be missing something entirely.

Add "checkpoint" reporting to buglog client

The idea is that the client object will have a variable persistent across the same request that the caller application can use to report checkpoints on milestones as the request gets executed. Then, if a bug report needs to be sent to buglog, an array/struct/something with all the checkpoints will be sent too. This will be helpful when trying to pinpoint the source of the errors (i.e. "how much of request was completed before the error happened?")

Example:

buglogclient.checkpoint("account created");

or can also be used to track begin/end timestamps:

buglogclient.checkpoint("expensive process","start");
.....
buglogclient.checkpoint("expensive process","end");

Also the caller application could just get the checkpoint data and output it at the end of the request as a debugging tool.

writedump(buglogclient.getCheckpoints());

Latest update

Not a huge deal, but the versiontag was not updated to reflect 1.7.4 and the bugloghq.com site still says 1.7.1.

Add a dashboard for a global view of the current status

This would replace the initial view when logging into buglog (or maybe could be an option so users can select between the dashboard view or the current summary view)

The idea here is to provide "at-a-glance" information of what's going on, with a focus on actionable information.

Ideas for what could be on the dashboard:

  • List of X most recent reports received
  • List of top X reports ordered by count in descending order
  • List of recent rule firings (which rule has just been fired, with a link to the triggering report and a short description of what each rule means)
  • Historical chart of bug reports received (should allow to select different time units: hours, days,months,etc)
  • List of "followed" or "flagged" bug reports

Dashboard should have a similar filtering toolbar as the summary view. The filtering would affect all dashboard content.

Add option to add user comments to bug reports

On every report any user can add a comment or note. Then whenever the same type of bug happens again (maybe by comparing checksum or some other mechanism), the saved notes will be displayed again. The idea is that the notes could refer to how to debug a particular type of error, or special instructions that needs to be followed when a particular error happen.

Too many redirects

I have just set up the app but cannot get to the Admin screens. The test page at http://mysite.local/bugLog/test/client.cfm works fine but when I go to /buglog/hq/index.cfm I get the following:

The webpage at http://mysite.local/buglog/hq/index.cfm?event=login&nextevent=login&nextevent=login%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin%2Clogin& has resulted in too many redirects.

Has anyone else seen this?

Add a listener that works with Amazon's SQS

The idea is that a custom buglog client instead of calling the buglog server directly, will put the bug reports in an Amazon's SQS queue. Then on the server side, a listener will regularly poll the queue and obtain the reports from there.

This would help by decoupling the client application with the buglog server.

Dashboard error due to localized (default) date

Already reported this through the Google group, but here's a repost to be on the safe side:

I just tried the stable and (1.7.4) the beta version (1.8) in a VM with CF9.0.2 and both versions seem to experience a "The STARTDATE argument passed to the searchEntries function is not of type date." error right after installing the application.
Only change to the vanilla config was changing the "mysql" to "mssql" to get it to work with a SQL Server 2008 Express instance.

Tag context (taken from 1.8):
C:\www\buglog\components\hq\appService.cfc [112]
C:\www\buglog\hq\handlers\general.cfc [138]
C:\www\buglog\core\coreApp.cfc [210]
C:\www\buglog\core\coreApp.cfc [95]
C:\www\buglog\hq\index.cfm [27]

The culprit seems to be a localized date ("Mai, 14 2013 11:35:37") on this German system, as seen in a dump file generated by adding a writeDump(criteria) to the dashboardContent() in the handlers/general.cfc
Without taking too close a look at the source, my first suspect would be the line "startdate = now()" in the method normalizeCriteria() of the same component.

Thanks in advance for taking a look at the file in question.

1.8 roadmap/todo?

Do you have a general list of stuff that still needs to be implemented for 1.8?

As you can see, your project has attracted a lot of attention because it's so useful and many of us would be glad to help out. So, knowing which items could be implemented by us so you'll have more time for others would be quite helpful.

Add "Tags" for categorizing different types of logging.

We want to use BugLogHQ for our info logging as well as bug logging.

Because we have an enormous application, I would like to split the logging up by feature.

Being able to add a "Tag" or "Tags" to an entry, would allow me to do this. And others might find a use for it too.

Error when sending an issue to Jira

Clicking the "Send to Jira" link on an issue returns the following error:

Invalid element in com.atlassian.jira.rpc.soap.beans.RemoteProject - id

We have BugLogHQ 1.8.1 installed and are using Jira v5.2.11#854-sha1:ef00d61

"Invalid data '' for CFSQLTYPE CF_SQL_NUMERIC." when trying to sign in or "The getUsername method was not found."

Just installed BugLog for the first time. After changing the dbtype to mssql I got this error "Invalid data '' for CFSQLTYPE CF_SQL_NUMERIC." when trying to sign in. The solution was to add a record to bl_userApplication with userID=1 and applicationID=1. Maybe this should be in the sql script?

More details - I was not able to see anything, but the message(no stack trace) until I fixed the problem, so I had to dig in to the code to debug:
Message: Invalid data '' for CFSQLTYPE CF_SQL_NUMERIC.
Type: Database
Detail:
Tag Context:
I:\G\wwwroot\buglog\components\lib\dao\dbDataProvider.cfc [23]
I:\G\wwwroot\buglog\components\lib\dao\DAO.cfc [31]
I:\G\wwwroot\buglog\components\appFinder.cfc [42]
I:\G\wwwroot\buglog\components\hq\appService.cfc [692]
I:\G\wwwroot\buglog\components\hq\appService.cfc [657]
I:\G\wwwroot\buglog\hq\handlers\general.cfc [452]
I:\G\wwwroot\buglog\core\coreApp.cfc [210]
I:\G\wwwroot\buglog\core\coreApp.cfc [95]
I:\G\wwwroot\buglog\hq\index.cfm [27]

I was also seeing the following error when resetting the app:

The getUsername method was not found.
Either there are no methods with the specified method name and argument types or the getUsername method is overloaded with argument types that ColdFusion cannot decipher reliably. ColdFusion found 0 methods that match the provided arguments. If this is a Java object and you verified that the method exists, use the javacast function to reduce ambiguity.

The error occurred in I:\G\wwwroot\buglog\hq\includes\header.cfm: line 24
Called from I:\G\wwwroot\buglog\hq\layouts\main.cfm: line 32
Called from I:\G\wwwroot\buglog\core\core.cfm: line 2
Called from I:\G\wwwroot\buglog\hq\index.cfm: line 31
22 : Settings
23 :   |  
24 : #request.requestState.currentUser.getUsername()#
25 : ( Log off )
26 :

Add explicit tracking of execution stack when reporting bugs

The listener should accept an array of structs consisting on:

  • template path
  • line number

This could help to quickly identify where an error is happening. So there could be a view listing template paths, line numbers and the errors that each line triggers.

Example:

\path\to\app\template\file.cfm [line 33]
   * syntax error  (23 times)
\path\to\app\template\file.cfm [line 121]
   * undefined variable (4 times)
...

[Enh] Dashboard: Add chart for number of bugs by application

Would it be possible to add a second chart (maybe a pie chart) below the first one that shows the number of bugs in the selected time range, grouped by application name?

We're currently integrating BugLogHQ into our internal applications and since different people are responsible for different applications (often with responsibilities shifting depending on vacation schedules), this would allow for an even quicker overview than using the summary filter or the mail summary.

Unfortunately, I'm still not familiar enough with the structure of the your main application or I'd provide a pull request myself.

Allow users to "follow" or "flag" a bug report

On flagged reports:

  • show in dashboard if any new ocurrences of this bug happen again (same host or different host)
  • optionally receive an email whenever it happens
  • maybe allow to add notes or comments

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.