Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
internals:index [2008/06/17 15:59]
serge.aumont@cru.fr
internals:index [2018/03/27 10:01] (current)
ikeda@conversion.co.jp New site
Line 1: Line 1:
 +<note >
 +Recent documentation is found at:
 +
 +  * [[https://​sympa-community.github.io/​manual/​man/​Sympa-Internals.3.html|Sympa::​Internals(3)]]
 +  * [[https://​sympa-community.github.io/​manual/​man/​sympa_database.5.html|sympa_database(5)]]
 +
 +</​note>​
 +
 +
 //Please take note that this work is still ongoing. The documentation should grow in a near future. ;-)// //Please take note that this work is still ongoing. The documentation should grow in a near future. ;-)//
  
 ---- ----
  
-====== Internals ======+====== ​× Internals ======
  
 In this chapter, we will provide extensive information on what Sympa looks like "under the hood". 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. We hope this documentation will be particularly helpful to developers.
  
 +
 +===== Batabase structure ====
 +
 +<note warning>
 +This section was obsoleted. ​ See the manual page `sympa_database(5)` bundled in Sympa distribution.
 +</​note>​
 +
 + See the dedicated page that describe each table of [[database|Sympa database]].
  
 ===== Focus on the main Sympa modules ===== ===== Focus on the main Sympa modules =====
 +
 +<note warning>
 +This section was obsoleted. ​ See the manual page `Sympa::​Internals(3)` bundled in Sympa distribution.
 +</​note>​
  
 This chapter describes these modules (or a part of them): This chapter describes these modules (or a part of them):
Line 22: Line 43:
   * [[internals-message|src/​Message.pm]]:​ message object used to encapsule a message received.   * [[internals-message|src/​Message.pm]]:​ message object used to encapsule a message received.
   * [[internals-session|wwsympa/​SympaSession.pm]]:​ session object use to manage user context with a single cookie and a session table   * [[internals-session|wwsympa/​SympaSession.pm]]:​ session object use to manage user context with a single cookie and a session table
-  * [[internals-session|wwsympa/​Auth.pm]] FIXME to be completed+  * [[internals-auth|wwsympa/​Auth.pm]] FIXME to be completed 
 +  * [[internals-ajax|wwsympa/​ajax]]:​ ajax ;
  
 +A [[mail_structure|graph of subrouroutines for messages process]]
  
 ===== Sympa modules sorted by directory ===== ===== Sympa modules sorted by directory =====
 +
 +<note warning>
 +This section was obsoleted. ​ See the manual page `sympa_toc(1)` bundled in Sympa distribution.
 +</​note>​
  
 This section presents all the files used in the Sympa engine. This section presents all the files used in the Sympa engine.
Line 118: Line 145:
     * FIXME [[internals-Search|Search.pm]]     * FIXME [[internals-Search|Search.pm]]
  
- 
-====== Database ====== 
- 
-<note important>​Work in progress. All the tables are described already though.</​note>​ 
- 
-This chapter describes the Sympa database. 
- 
-===== Overall organization ===== 
- 
-The Sympa database contains 5 tables which are : 
- 
-  * [[#​admin_table|admin_table]],​ this table stores //a cache version// of the moderators and owners of lists, 
-  * [[#​user_table|user_table]],​ this tables registers the users as individual people, 
-  * [[#​subscriber_table|subscriber_table]],​ this table registers subscribers;​ it stores couples "​(user,​ list)",​ thus producing one entry by subscription for each user. 
-  * [[#​logs_table|logs_table]]:​ this tables stores the Sympa logs, 
-  * [[#​netidmap_table|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 ==== 
- 
-<​note>​ This table is just a cache of the informations found in sympa.conf, robot.conf and lists' config files. It is used to speed up the access to informations regarding administrators. The sources of these informations are the configuration files and //not// this table.</​note>​ 
- 
-=== data catalogue === 
- 
-^Field^Type ​ ^Encoding^Null ​ ^Default^ 
-|{{internals:​b_primary.png|primary key image}}**list_admin** |varchar(50) |latin1_swedish_ci |No | | 
-|{{internals:​b_primary.png|primary key image}}**robot_admin** |varchar(80) |latin1_swedish_ci |No | | 
-|{{internals:​b_primary.png|primary key image}}**role_admin** |enum('​listmaster',​ '​owner',​ '​editor'​) |latin1_swedish_ci |No | | 
-|{{internals:​b_primary.png|primary key image}}**user_admin** |varchar(100) |latin1_swedish_ci |No | | 
-|comment_admin ​ |varchar(150) ​ |latin1_swedish_ci ​ |Yes  |NULL  | 
-|date_admin |datetime | |No | | 
-|include_sources_admin |varchar(50) |latin1_swedish_ci |Yes |NULL | 
-|included_admin |int(1) | |Yes |NULL | 
-|info_admin |varchar(150) |latin1_swedish_ci |Yes |NULL | 
-|profile_admin |enum('​privileged',​ '​normal'​) |latin1_swedish_ci |Yes |NULL | 
-|reception_admin |varchar(20) |latin1_swedish_ci |Yes |NULL | 
-|subscribed_admin |int(1) | |Yes |NULL | 
-|update_admin |datetime | |Yes |NULL | 
- 
-=== Fields'​ description === 
- 
-   * FIXME //​list_admin//: ​ 
-   * FIXME //​robot_admin//: ​ 
-   * FIXME //​role_admin//: ​ 
-   * FIXME //​user_admin//: ​ 
-   * FIXME //​comment_admin//: ​ 
-   * FIXME //​date_admin//: ​ 
-   * FIXME //​include_sources_admin//: ​ 
-   * FIXME //​included_admin//: ​ 
-   * FIXME //​info_admin//: ​ 
-   * FIXME //​profile_admin//: ​ 
-   * FIXME //​reception_admin//: ​ 
-   * FIXME //​subscribed_admin//: ​ 
-   * FIXME //​update_admin//: ​ 
- 
- 
- 
-==== subscriber_table ==== 
- 
-=== data catalogue === 
- 
-^Field^Type ​ ^Encoding^Null ​ ^Default^ 
-|{{internals:​b_primary.png|primary key image}}**robot_subscriber** |varchar(80) |latin1_swedish_ci |No | | 
-|{{internals:​b_primary.png|primary key image}}**list_subscriber** |varchar(50) |latin1_swedish_ci |No | | 
-|{{internals:​b_primary.png|primary key image}}**user_subscriber** |varchar(100) |latin1_swedish_ci |No | | 
-|bounce_address_subscriber ​ |varchar(100) ​ |latin1_swedish_ci ​ |Yes  |NULL  | 
-|bounce_score_subscriber |smallint(6) | |Yes |NULL | 
-|bounce_subscriber |varchar(35) |latin1_swedish_ci |Yes |NULL | 
-|comment_subscriber |varchar(150) |latin1_swedish_ci |Yes |NULL | 
-|custom_attribute_subscriber |varchar(500) |latin1_swedish_ci |Yes |NULL | 
-|date_subscriber |datetime | |No | | 
-|include_sources_subscriber |varchar(50) |latin1_swedish_ci |Yes |NULL | 
-|included_subscriber |int(1) | |Yes |NULL | 
-|reception_subscriber |varchar(20) |latin1_swedish_ci |Yes |NULL | 
-|subscribed_subscriber |int(1) | |Yes |NULL | 
-|topics_subscriber |varchar(200) |latin1_swedish_ci |Yes |NULL | 
-|update_subscriber |datetime | |Yes |NULL | 
-|visibility_subscriber |varchar(20) |latin1_swedish_ci |Yes |NULL | 
- 
-=== Fields'​ description === 
- 
-   * //​robot_subscriber//:​ the virtual host this subscription'​s list is hosted by. 
-   * //​list_subscriber//:​ the list to which the subscription is done, 
-   * //​user_subscriber//:​ the e-mail address of subscription 
-   * FIXME //​bounce_address_subscriber//: ​ 
-   * FIXME //​bounce_score_subscriber//: ​ 
-   * FIXME //​bounce_subscriber//: ​ 
-   * //​comment_subscriber//:​ Comments about the subscription 
-   * //​custom_attribute_subscriber//:​ the XML fragment containing the user custom attributes for this subscriber 
-   * //​date_subscriber//:​ date the subscription was created 
-   * FIXME //​include_sources_subscriber//: ​ 
-   * //​included_subscriber//:​ 1 if user is included 
-   * //​reception_subscriber//:​ the reception mode this user chose for this list 
-   * //​subscribed_subscriber//:​ 1 if user is subscribed 
-   * //​topics_subscriber//:​ the list of topics this subscriber is subscribed to 
-   * FIXME //​update_subscriber//: ​ 
-   * //​visibility_subscriber//:​ the visibility preference of this subscriber. 
- 
- 
-==== user_table ==== 
- 
-=== data catalogue === 
- 
-^Field^Type ​ ^Encoding^Null ​ ^Default^ 
-|{{internals:​b_primary.png|primary key image}}**email_user** |varchar(100) |latin1_swedish_ci |No | | 
-|attributes_user ​ |text  |latin1_swedish_ci ​ |Yes  |NULL  | 
-|cookie_delay_user |int(11) | |Yes |NULL | 
-|gecos_user |varchar(150) |latin1_swedish_ci |Yes |NULL | 
-|lang_user |varchar(10) |latin1_swedish_ci |Yes |NULL | 
-|password_user |varchar(40) |latin1_swedish_ci |Yes |NULL | 
- 
-=== Fields'​ description === 
- 
-   * //​email_user//:​ User's e-mail address 
-   * FIXME //​attributes_user//: ​ 
-   * FIXME //​cookie_delay_user//: ​ 
-   * FIXME //​gecos_user//: ​ 
-   * //​lang_user//:​ User's favourite language 
-   * FIXME //​password_user//:​ User's password. 
- 
- 
-==== logs_table ==== 
- 
-=== data catalogue === 
- 
-^Field^Type ​ ^Encoding^Null ​ ^Default^ 
-|{{internals:​b_primary.png|primary key image}}**id_logs** |bigint(20) | |No | | 
-|action_logs ​ |varchar(50) ​ |latin1_swedish_ci ​ |No  | | 
-|client_logs |varchar(100) |latin1_swedish_ci |Yes |NULL | 
-|daemon_logs |varchar(10) |latin1_swedish_ci |No | | 
-|date_logs |int(11) | |No | | 
-|error_type_logs |varchar(150) |latin1_swedish_ci |Yes |NULL | 
-|list_logs |varchar(50) |latin1_swedish_ci |Yes |NULL | 
-|msg_id_logs |varchar(255) |latin1_swedish_ci |Yes |NULL | 
-|parameters_logs |varchar(100) |latin1_swedish_ci |Yes |NULL | 
-|robot_logs |varchar(80) |latin1_swedish_ci |Yes |NULL | 
-|status_logs |varchar(10) |latin1_swedish_ci |No | | 
-|target_email_logs |varchar(100) |latin1_swedish_ci |Yes |NULL | 
-|user_email_logs |varchar(100) |latin1_swedish_ci |Yes |NULL| 
- 
-=== 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 === 
- 
-^Field^Type ​ ^Encoding^Null ​ ^Default^ 
-|{{internals:​b_primary.png|primary key image}}**netid_netidmap** |varchar(100) |latin1_swedish_ci |No | | 
-|{{internals:​b_primary.png|primary key image}}**robot_netidmap** |varchar(80) |latin1_swedish_ci |No | | 
-|{{internals:​b_primary.png|primary key image}}**serviceid_netidmap** |varchar(100) |latin1_swedish_ci |No | | 
-|email_netidmap ​ |varchar(100) ​ |latin1_swedish_ci ​ |Yes  |NULL  | 
- 
-=== Fields'​ description === 
- 
-   * FIXME //​netid_netidmap//: ​ 
-   * FIXME //​robot_netidmap//: ​ 
-   * FIXME //​serviceid_netidmap//: ​ 
-   * FIXME  //​email_netidmap//: ​ 
- 
-==== session_table ==== 
- 
-=== data catalogue === 
- 
-^Field^Type ​ ^Null  ^Default^ 
-|{{internals:​b_primary.png|primary key image}}**id_session** | varchar(30) | No | | 
-|start_date_session | int(11) | No | | 
-|date_session | int(11) | No | | 
-|data_session | text | Yes | | 
-|email_session | varchar(100) | Yes | NULL | 
-|hit_session | int(11) | Yes | NULL | 
-|remote_addr_session | varchar(60) | Yes | NULL | 
-|robot_session | varchar(80) | Yes | NULL | 
- 
-=== Fields'​ description === 
- 
-   * //​id_session//:​ the identifier of the database record; 
-   * //​start_date_session//:​ the date when the session was created; 
-   * //​date_session//:​ date epoch of the last use of this session. It is used in order to expire old sessions ; 
-   * //​data_session//:​ parameters attached to this session that don't have a dedicated column in the database; 
-   * //​email_session//:​ the email associated to this session; 
-   * //​hit_session//:​ the number of hit performed during this session. Used to detect crawlers; 
-   * //​remote_addr_session//:​ The IP address of the computer from which the session was created; 
-   * //​robot_session//:​ The virtual host in which the session was created. 
  
  • internals/index.1213711176.txt.gz
  • Last modified: 2008/06/17 15:59
  • by serge.aumont@cru.fr