This is an old revision of the document!
Please take note that this work is still ongoing. The documentation should grow in a near future.
Internals
In this chapter, we will provide extensive information on what Sympa looks like “under the hood”. We hope this documentation will be particularly helpful to developers.
Focus on the main Sympa modules
This chapter describes these modules (or a part of them):
- src/mail.pm: low level of email sending;
- src/List.pm: list processing and informations about structure and access to list configuration parameters;
- src/sympa.pl: the main script, for messages and mail commands processing;
- src/Commands.pm: mail commands processing;
- src/wwsympa.pm: web interface;
- src/report.pm: notification and error reports about requested services (email and web);
- src/tools.pm: various tools;
- src/Message.pm: message object used to encapsule a message received.
- wwsympa/SympaSession.pm: session object use to manage user context with a single cookie and a session table
Sympa modules sorted by directory
This section presents all the files used in the Sympa engine. The files described are those contained in the sources, consequently:
- you will not find the files generated at compilation time,
- the files are not located in the same directory as you will find them in the compiled application.
Failing a better alternative, we present them as they appear in the src
directory from the source distribution.
''./'' : Sympas sources root directory
These scripts are run at installation time. They perform the operations necessary to the correct install and runtime of Sympa.
- check_perl_modules.pl : This script checks installed and required Perl modules. It also does the required installations.
- important_changes.pl : This script prints important changes in Sympa since last install. It is based on the NEWS ***** entries.
- set_symlinks.pl : This script sets symbolic links at installation time.
- subst.pl : This script replaces --VAR-- occurences at installation time.
''./doc/''
''./po/''
''./soap/''
''./src/''
''./src/etc/script/''
''./wwsympa/''
''./wwsympa/Marc/''
Database
This chapter describes the Sympa database.
Overall organization
The Sympa database contains 5 tables which are :
- admin_table, this table stores a cache version of the moderators and owners of lists,
- user_table, this tables registers the users as individual people,
- subscriber_table, this table registers subscribers; it stores couples “(user, list)”, thus producing one entry by subscription for each user.
- logs_table: this tables stores the Sympa logs,
- netidmap_table, this table stores informations relative to authentification.
Tables description
We provide here, for each table, a data dictionary and a fields' description.
admin_table
data catalogue
Fields' description
- list_admin:
- robot_admin:
- role_admin:
- user_admin:
- comment_admin:
- date_admin:
- include_sources_admin:
- included_admin:
- info_admin:
- profile_admin:
- reception_admin:
- subscribed_admin:
- update_admin:
subscriber_table
data catalogue
Fields' description
- robot_subscriber: robot managing the subscription's list,
- list_subscriber: list to which the subscription is done,
- user_subscriber: e-mail address of the usr subscribing to this list
- bounce_address_subscriber:
- bounce_score_subscriber:
- bounce_subscriber:
- comment_subscriber: Comments about the subscription
- date_subscriber: date the subscription was created
- include_sources_subscriber:
- included_subscriber: 1 if user is included
- reception_subscriber:
- subscribed_subscriber: 1 if user is subscribed
- topics_subscriber:
- update_subscriber:
- visibility_subscriber:
user_table
data catalogue
Fields' description
- email_user: User's e-mail address
- attributes_user:
- cookie_delay_user:
- gecos_user:
- lang_user: User's favourite language
- password_user: User's password.
logs_table
data catalogue
Fields' description
- id_logs: unique log's identifier.
- action_logs: name of the Sympa subroutine which initiated the log
- client_logs: IP address of the client machine from which the message was sent.
- daemon_logs: name of the Sympa daemon which ran the action
- date_logs: date when the action was executed
- error_type_logs: name of the error string – if any – issued by the subroutine
- list_logs: name of the mailing-list in which context the action was executed
- msg_id_logs: identifier of the message which triggered the action.
- parameters_logs: List of commas-separated parameters. The amount and type of parameters can differ from an action to another.
- robot_logs: name of the robot in which context the action was executed
- status_logs: exit status of the action. If it was an error, it is likely that the error_type_logs field will contain a description of this error.
- target_email_logs: e-mail address (if any) targeted by the message
- user_email_logs: e-mail address of the message sender
netidmap_table
data catalogue
Fields' description
- netid_netidmap:
- robot_netidmap:
- serviceid_netidmap:
- email_netidmap: