Scroll to navigation

SYMPA_DATABASE(5) sympa 6.2.70 SYMPA_DATABASE(5)

NAME

sympa_database - Structure of Sympa core database

DECRIPTION

Core database of Sympa is based on SQL. In following list of tables and indexes, data types are based on MySQL/MariaDB. Corresponding types are used by other platforms (PostgreSQL, SQLite, ...).

Tables

subscriber_table

This table store subscription, subscription option etc.

Fields:

(Primary key)

email of subscriber

(Primary key)

list name of a subscription

(Primary key)

robot (domain) of the list

reception format option of subscriber (digest, summary, etc.)
boolean set to 1 if subscription is suspended
the Unix time when message reception is suspended
the Unix time when message reception should be restored
FIXME
FIXME
FIXME
date of subscription
the last time when subscription is confirmed by subscriber
the last time when list user is synchronized with data source
the last time when list user is synchronized with external data source
name of data source
free form name
the number of message the subscriber sent
FIXME
topic subscription specification
boolean set to 1 if subscriber comes from ADD or SUB
FIXME

Indexes:

user_subscriber

user_table

The user_table is mainly used to manage login from web interface. A subscriber may not appear in the user_table if they never log through the web interface.

Fields:

(Primary key)

email of user

password are stored as finger print
display name of user
Unix time of last login, printed in login result for security purpose
host of last login, printed in login result for security purpose
login attempt count, used to prevent brute force attack
the last Unix time when this user was confirmed their activity by purge_user_table task
FIXME
user language preference
FIXME
FIXME

inclusion_table

Inclusion table is used in order to manage lists included from / including subscribers of other lists.

Fields:

(Primary key)

list ID of including list

(Primary key)

role of included user

(Primary key)

list ID of included list

the date this entry was created or updated

exclusion_table

Exclusion table is used in order to manage unsubscription for subscriber included from an external data source.

Fields:

(Primary key)

FIXME

(Primary key)

FIXME

(Primary key)

FIXME

(Primary key)

FIXME

FIXME

session_table

Management of HTTP session.

Fields:

(Primary key)

the identifier of the database record

previous identifier of the database record
the date when the session was created
Unix time of the last use of this session. It is used in order to expire old sessions
Unix time of the last refresh of this session. It is used in order to refresh available sessions
the IP address of the computer from which the session was created
the virtual host in which the session was created
the email associated to this session
the number of hit performed during this session. Used to detect crawlers
parameters attached to this session that don't have a dedicated column in the database

Indexes:

prev_id_session

one_time_ticket_table

One time ticket are random value used for authentication challenge. A ticket is associated with a context which look like a session.

Fields:

(Primary key)

FIXME

FIXME
FIXME
FIXME
FIXME
FIXME
FIXME

notification_table

Used for message tracking feature. If the list is configured for tracking, outgoing messages include a delivery status notification request and optionally a message disposition notification request. When DSN and MDN are received by Sympa, they are stored in this table in relation with the related list and message ID.

Fields:

(Primary key)

autoincrement key

initial message-id. This field is used to search DSN and MDN related to a particular message
email address of recipient for which a DSN or MDN was received
the subscription option of the subscriber when the related message was sent to the list. Useful because some recipient may have option such as //digest// or //nomail//
value of notification
reception date of latest DSN or MDN
reception date of latest DSN or MDN
type of the notification (DSN or MDN)
the listname the message was issued for
the robot the message is related to
FIXME

logs_table

Each important event is stored in this table. List owners and listmaster can search entries in this table using web interface.

Fields:

e-mail address of the message sender or email of identified web interface user (or soap user)
date when the action was executed
subsecond in microsecond when the action was executed
name of the robot in which context the action was executed
name of the mailing-list in which context the action was executed
name of the Sympa subroutine which initiated the log
comma-separated list of parameters. The amount and type of parameters can differ from an action to another
e-mail address (if any) targeted by the message
identifier of the message which triggered the action
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
name of the error string - if any - issued by the subroutine
IP address of the client machine from which the message was sent
name of the Sympa daemon which ran the action

stat_table

Statistics item are stored in this table, Sum average and so on are stored in stat_counter_table.

Fields:

FIXME
FIXME
FIXME
FIXME
FIXME
FIXME
FIXME
FIXME
FIXME

Indexes:

email_stat

stat_counter_table

Used in conjunction with stat_table for users statistics.

Fields:

FIXME
FIXME
FIXME
FIXME
FIXME
FIXME

admin_table

This table is an internal cash where list admin roles are stored. It is just a cash and it does not need to be saved. You may remove its content if needed. It will just make next Sympa startup slower.

Fields:

(Primary key)

list admin email

(Primary key)

list name

(Primary key)

list domain

(Primary key)

a role of this user for this list (editor, owner or listmaster which a kind of list owner too)

privilege level for this owner, value //normal// or //privileged//. The related privilege are listed in edit_list.conf.
date this user become a list admin
last update time
the last time when list user is synchronized with data source
the last time when list user is synchronized with external data source
name of data source
email reception option for list management messages
admin user email can be hidden in the list web page description
FIXME
set to 1 if user is list admin by definition in list config file
private information usually dedicated to listmasters who needs some additional information about list owners

Indexes:

user_admin

netidmap_table

FIXME

Fields:

(Primary key)

FIXME

(Primary key)

FIXME

(Primary key)

FIXME

FIXME

conf_table

FIXME

Fields:

(Primary key)

FIXME

(Primary key)

FIXME

the value of parameter //label_conf// of robot //robot_conf//.

list_table

The list_table holds cached list config and some items to help searching lists.

Fields:

(Primary key)

name of the list

(Primary key)

name of the robot (domain) the list belongs to

name of the family the list belongs to
status of the list
email of user who created the list
UNIX time when the list was created
email of user who updated the list
UNIX time when the list was updated
case-folded list subject to help searching
if the list has archives
topics of the list, separated and enclosed by commas
estimated number of subscribers

SEE ALSO

Sympa Administration Manual. <https://www.sympa.community/manual/>.

2022-11-25 6.2.70