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