Prepared for release 0.0.11
[gnucomo.git] / ChangeLog
1 Nov 22, 2007 - Release 0.0.11
2 ====================================
3
4 Database
5 ---------
6
7 - Added the class definition for a filesystem parameter.
8 - New issue type: 'property out of range'.
9
10 gcm_input
11 ---------
12
13 - Logrunner can select a specific host from a logfile, in case
14   syslogd acts as a log server for multiple systems.
15   This adds a new parameter (logile/fromhost) to the configuration
16   file.
17
18 - Logrunner uses the official hostname (FQDN) instead of the
19   hostname returned by gethostname().
20
21 - Handling of parameters is greatly improved.
22   When creating a new parameter from an XML report which is fed into
23   gcm_input, the class definition is used as a template to fill in
24   the default values for the properties.
25   The class is also used as a template when a new property is added
26   to an existing parameter.
27
28 - DYNAMIC properties are now handled properly. Instead of making a
29   'changed property' notification, the value is checked against the
30   defined range for the property. An 'out of range' notification
31   is created when this condition is detected.
32
33 - Added a new filter which can directly read the output
34   of the UNIX df command. A brief description is added in
35   the user manual.
36
37 - Bugfix: Segmentation fault when reading an rpm package list
38   with empty lines.
39
40 - New program: spamdetect.
41   Expirimental utility to log manually reported spam and have
42   Gnucomo detect the spammer's IP address.
43
44 - Added a number of usefull scripts, mainly for use in Gnucomo clients.
45
46 web interface
47 -------------
48
49 - The buttonbar at the top of each page is now a fixed 'div' element
50   instead of a framed page.
51   Contributed by Edwin Nadorp.
52
53 PHP classes
54 -----------
55
56 - Added a PHP5 module for the configuration class.
57
58 Test
59 ----
60
61 - The test script, gcmtest can run individual tests as opposed to running
62   all tests in sequence.
63
64 Oct 19, 2007 - Release 0.0.10
65 ====================================
66
67 - Improved method for finding PostgreSQL libraries in configure script.
68
69 Database
70 ---------
71
72 - Fixed field declaration for PostgreSQL 7.4
73 - New tables: log_abuse, object_abuse and service_pattern
74 - Added general service patterns in the service 'ANY'
75 - Added new issue types.
76 - Log_adv and derived tables removed.
77
78 logrunner
79 ---------
80
81 - Status files in /var/lib
82 - Rewrote most functions and datastructures into C++
83 - Use the Gnucomo (XML) configuration file
84
85 gcm_input
86 ---------
87
88 - Accept '/' and '.' characters within the service name in a system log.
89   When extracting the service name, the '/' character is not considered
90   part of that name, though.
91 - Textual changes in parameter notifications
92 - Experimental start of database OO abstraction layer.
93 - The '-' character is part of the service name.
94 - Skip the Email header when reading XML input.
95
96 gcm_daemon
97 -----------
98
99 - Bugfixes in the analysis of sendmail logs.
100 - Send email about open notifications to an object's users.
101 - Added log analysis for spam and abuse in sendmail log entries.
102 - Added pattern check on log entries with the service_pattern table.
103 - Create notifications from log entries with pattern matching.
104 - Record the date when adding the number of abuses for an IP address
105   in the abuse list.
106
107
108 web interface
109 --------------
110
111 - Added a form to edit user data.
112 - Added a view for the log analysis with a link from the log page.
113 - New page: Parameter classes administration.
114 - New page: Abuse list
115 - Added an interface to edit check patterns to the services page.
116 - Manually edit parameters.
117 - View logs from abusing IP addresses.
118 - Added an interface for editing issues.
119 - In the abuse list, IP addresses can be whitelisted.
120 - Improved interface for editing check patterns.
121
122 Test
123 ----
124
125 - Added test data for Problem Report 15, 16 and 17
126
127 Documentation
128 ---------------
129
130 - Added a list of related projects and introduced the concept of
131   dynamic parameters in the manifest.
132
133 Dec 24, 2003 - Release 0.0.9
134 ====================================
135
136 Database
137 ---------
138
139 - Changed the type of log_adv_daemon_email.delay and log_adv_daemon_email.xdelay
140   from time to interval. These delays can be more than 24 hours.
141
142 libgnucomo
143 ----------
144
145 - Catch an exception if we can not setup a database transaction.
146
147
148 gcm_input
149 ---------
150
151 - SQL_Escape(): Backslashes are correctly escaped with another backslash
152 - XML_Entities(): transform non-ASCII characters into hexadecimal entities.
153 - Do not add another parameter_notification record is the notification
154   already exists for that parameter.
155 - Catch exceptions from the database library.
156 - Major redesign. All input is handled through XML. Raw input data is first
157   transformed into an XML document for further processing.
158   A collection of polymorphic classes handle the transformation of various
159   input formats into XML.
160 - Classifying input data is done with a finite improbability calculation.
161
162 gcm_daemon
163 -----------
164
165 - Create separate notifications for different objects in service_check().
166   Fixes problem report 23.
167 - Change the notation for delays from "days+hh:mm:ss" to "days hh:mm:ss. This
168   fixes problem report 14.
169 - In linux_daemon_sendmail(), check the existence of '=' before using it as a
170   field separator. Fixes problem report 15.
171
172
173 web interface
174 --------------
175
176 - Optionally show or hide removed parameters from the parameter
177   comparison page.
178
179 Documentation
180 ---------------
181
182 - Added a User Manual, based upon the draft TUTORIAL
183
184
185 Sep 04, 2003 - Release 0.0.8
186 ====================================
187
188 Database
189 ---------
190
191 - Fixed a few typos in the database creation script.
192 - BUGFIX: Secondary indices on log_notification were unique.
193 - Additional information in the 'usr' table: 'display_name' and 'email'.
194 - Added new issues and services.
195
196 gcm_input
197 ---------
198
199 - Fixed a namespace problem in message.cpp
200 - Fixed a gcc 2 vs. gcc 3 problem in gcm_input.cpp
201 - Reject log entries that are found to be invalid.
202 - A date without the time for the '-d <date> option will
203   assume midnight on that date.
204
205 gcm_dameon
206 ----------
207
208 - In PHP, the method configuration::read() will also read
209   a user-specific configuration from the home directory if a 
210   PHP script is not run through the web server.
211 - Accept command argument '-c config' to use an alternate
212   gnucomo configuration.
213 - New PHP methods:
214    db::Result() - Returns the result from the last query.
215    db::Field()  - Returns the value of a single field.
216    db::new_notification() - Create a new notification in the database.
217 - Check the log table against the servies running on an object and
218   create notifications if a service is not supposed to be available
219   or is not known at all.
220
221 libgnucomo
222 ----------
223
224 - Changed the gnucomo_database class to the new PostgreSQL
225   library, libpqxx
226 - Overloaded gnucomo_database::Field() to include the Result
227   from a query as an argument.
228
229 web interface
230 --------------
231
232 - New page to enter and modify services.
233 - The objects page provides an interface to edit the list of
234   services and users for an object.
235
236 Test
237 ----
238
239 - Reduced the amount of output from test scripts.
240 - Added output data that is expected from test scripts.
241 - New test: tests the database upgrade with gcm_daemon
242 - Overall test script: gcm_test. Runs all tests in sequence.
243
244
245 Aug 15, 2003 - Release 0.0.7
246 ====================================
247
248 Database
249 ---------
250
251 - Added index to the history table to improve performance.
252
253 gcm_input
254 ----------
255
256 - Added a new section 'logging' with three configuration parameters:
257    method       - Output method to use for logging.
258    destination  - Name of the log output destination.
259    level        - Log level: Verbose output if greater than 0.
260 - Added '-i' option for incremental parameter updates.
261 - Debug output to the log stream instead of cerr.
262 - Fixed namespace problems in XPath searches of the DOM.
263 - Moved string utility functions to a separate file.
264 - Different kinds of log files are parsed by a collection of objects
265   of different classes, derived from the base class line_cooker
266   Depending on the message content or the message_type element in
267   XML, one of these objects is selected.
268 - Logrunner is integrated with gcm_input. Although its functionality
269   is still limited, a connection between logrunner and gcm_input
270   is beginning to form.
271
272 gcm_daemon
273 ----------
274
275 - BUGFIX: Print an error message if a parameter does not have
276   any history.
277 - BUGFIX: undefined variables and indices when processing sendmail logs.
278
279 web interface
280 --------------
281
282 - BUGFIX: Convert special characters for HTML (<, >, and &) into
283   their entities.
284 - BUGFIX: Removed parameters were somtimes shown on the wrong side
285   of the parameter difference page.
286 - Added performance measurement to the parameters page.
287 - Added editing of detailed object information.
288
289 Jul 15, 2003 - Release 0.0.6
290 ====================================
291
292 - Gcm_input reads IRIX system logs.
293 - Gcm_input exits without reading any input if the database connection fails.
294 - Gcm_input extracts the hostname out of the 'From:' or 'Message-Id:' line
295   of an email header.
296 - New member C++ function gnucomo_database::is_conected().
297 - New columns in the table 'log_adv_daemon_email': size, pri, relay,
298   status_details and dsn.
299 - Added several indices for the table 'log_adv_daemon_email'.
300 - In phpclasses/db.class.php: Added the database connection string as
301   an argument to the function copy_db_class.
302 - Gcm_daemon processes logs from sendmail.
303 - Fixed the PHP member function db::db_connect(). The Postgres connection
304   string is now passed as an argument to that function.
305 - Gcm_input reads cooked log entries from an XML input stream.
306 - New database tables: notification_check, notification_check_buffer,
307   notification_check_line and object_statistics.
308 - PHP function db::query() returns the result index.
309 - PHP function db::num_rows() accepts a result index as argument
310   (default = 0 -> use result from the previous query).
311 - New PHP function db::fetch_object().
312 - Gcm_daemon gathers statistics on parameters, notifications, etc. for all objects.
313 - The Objects web page uses the new object_statistics table.
314 - The Log web page shows the log one day at a time.
315 - Removed parameters are displayed in a shaded style.
316
317 Feb 21, 2003 - Release 0.0.5
318 ====================================
319
320 - The notifications web page keeps a record of each time a notification
321   is displayed. Either on a listing or in detail.
322 - Improved the table layout of the objects web page.
323 - In the users page of the web interface, you can add a new user and
324   make him/her a member of a group.
325 - Users can change their password through the users page of the web interface.
326 - Gcm_input also detects packages that are removed from the system.
327 - In gcm_input, determining the version number of a package in a RPM
328   list is improved. Only the last one or two parts of the string that
329   begin with a '-' and a number are considered the version.
330 - The C++ function gnucomo_database::new_notification() uses the SQL
331   function currval() to obtain the identification number
332   of the most recently created notification.
333 - The C++ class gnucomo_database prints the query on cerr, along
334   with the error message when the query results in an error.
335 - Removed the 'Change Password' image from the main menu.
336   Changing passwords is integrated in te users page.
337 - Added the 'form' class on table and td elements. This class is intended
338   for borderless tables that are used to layout HTML forms.
339 - A new style 'h2.error' for error reports in the stylesheet.
340   Put borders around the tables and cells in the web interface.
341   Added right-alignment for numbers and fixed width for timestamps.
342 - Gcm_daemon maintains the last notification identifier.
343 - Setup the groups and database permissions. The three groups
344   are: view, ops and admin.
345 - Added two new entries to the action table.
346 - All web interface pages use the page class. This provides for a
347   uniform session and database handling.
348 - Use our own error handler for PHP errors and warnings in the web interface.
349 - Added log, notification and parameter counters to the 'object' table.
350   Counting these things at the time a user interface needs them is
351   too slow. Other programs, like gcm_daemon en gcm_input should prepare
352   these counters for quick retrieval.
353 - Show the total number of Log entries, parameters and notifications
354   on the object page of the web interface.
355 - Added new tables to the database : log_adv_daemon and log_adv_daemon_email.
356 - Made gcm_daemon a 'proper' executable.
357 - Paths of included files in PHP scripts are more flexible.
358 - Gcm_daemon recognizes important start and stop events of various daemons
359 - Gcm_daemon checks for exiting daemons in the log entries.
360 - Directory structure of PHP scripts reorganized. PHP scripts that are included in
361   both gcm_daemon and the web interface are now in the directory src/phpclasses.
362
363
364 Feb 05, 2003 - Release 0.0.4
365 ====================================
366
367 - Added style parameters for diff-like table views and textarea elements.
368 - Display and handle notifications in the web interface.
369 - Display the difference of all package class parameters for two objects
370   in the web interface.
371 - New PHP class added: 'page'. This is a (sort-of abstract) base class
372   for all Gnucomo web interface pages. It hanldes the session, login,
373   opening the database and the head and tail of the web page.
374 - gcm_input creates notifications when a new package is discovered
375   in a 'rpm -qa' list or when the version of a package is changed.
376 - Bug fix: action.statuscode was in upper case.
377 - Added new tables to the database: parameter_class and parameter_notification.
378 - New C++ function: gnucomo_database::new_notification(). retruns the id number
379   of the newly created notification record.
380 - Added new records to the 'type_of_issue' table.
381 - Changed semantics of actionid 9 in the 'action' table.
382 - Bugfix in gcm_input: The hostname in a system log may contain
383   digits as well as letters.
384 - Added new fields to the 'type_of_issue' table.
385
386 Dec 06, 2002 - Release 0.0.3
387 ====================================
388
389 - Directory structure is reorganized and prepared for GNU configure.
390 - gcm_input sets the value of log.processed to FALSE when inserting a
391    new log entry into the database
392 - When a syslog entry arrives from last year, gcm_input subtracts one from the
393    year of arrival to create the year of the log entry.
394 - Gcm_input reads output from "rpm -qa" and enters packages in the parameter table.
395 - Changes to log and log_adv tables described in the manifest.
396 - Added description of gcm_daemon in the design.
397 - Added new program (in PHP): gcm_daemon.
398 - Added a check on the database version in gcm_damon.
399 - Database-login in gcm_damon can be done using TCP/IP or UNIX-sockets.
400 - Gcm_daemon processes iptables-records including ICMP support.
401 - Returning values with ICMP (bounced) are seperate and linked to the same logfile.
402 - Which each new version records that haven't been recognized are processed again
403   through gcm_daemon.
404 - Added program-specific database user and password in config file.
405 - Added new arguments to gnucomo_config::Database(): user and password.
406   If empty, default values are taken from the config file.
407 - Implemented a slightly functional web interface that shows some
408   output from the database.