Ispmanager 6 lite, pro, host documentation

ISPmanager Lite database structure

 

This article describes ISPmanager Lite internal database. The description is given according to ISPmanager interface modules. The article also contains logic level diagrams, data type on physical level depend on the database peculiarities. The bool type on the physical level is a 3-character long field with the following possible values: "on" (true) and "off" (false). Presence or absence of tables in ISPmanaber can be caused by the contents of the modules. Tables required for a certain module are created while uploading the module.

User management module

The "users" table

This table contains information about ISPmanager users, administrators and administrators-superusers. It has the following fields:

  • id — unique identifier, the primary key
  • name — username
  • fullname — full username
  • passwd, safepasswd — user password (encrypted)
  • active — current user status (active-suspended) )
  • uid — user unique identifier (it is used for system users)
  • gid — unique identifier of user group (it is used for system users)
  • home — full path to the user home directory
  • level — login level. Possible values:
    30 — administrator-superuser, 29 — administrator 16 — user
  • preset — name of the template
  • shell — full path to the shell binary file, it is also used for identify if user can user shell
  • create_time — date and time when the user was created
  • tag — field for service information

The "userprops" table

This table contains information about user properties, including resource limits allocated to the user. The table fields:

  • users — external key, the unique identifier of the string in the "users" table, a part of the primary key
  • name — name of the user property, a part of the primary key
  • value — value of the user property

The "preset" table

This table contains information about user templates and has the following fields:

  • id — unique identifier, the primary key
  • name — template name
  • users — reserved for future use
  • level — reserved for future use, the value is 16 (User)

The "presetprops" table

This table contains information about user templates including service limits allocated to the template, and has the following fields:

  • users — external key, the unique identifier of the string in the "templates" table, a part of the primary key
  • name — name of the template property, a part of the primary key
  • value — value of the template property

"{type}quota" tables

This table contains information about user system quotas and has the following fields:

  • id — unique identifier, the primary key
  • quota_limit — allocated quota
  • quota_used — amount used by the user
  • tag — field for service information

The following tables are currently used:

  • Linux-based systems:
  • usrquota — system users quota
  • grpquota — user system group quota
  • systems running Microsoft Windows Server:
  • sysquota — system users quota
  • fsrmquota — quota for managing file server resources (FSRM role)

The "ftp_users" table

This table contains information about ftp-users in ISPmanager and has the following fields:

  • id — unique identifier, the primary key
  • name — name of the ftp-user
  • home — ftp root directory of this user. It is saved a s relative path to the home directory of the ftp-owner.
  • passwd — password of the ftp-user
  • hash — specifies if the password from the passwd field is encrypted
  • active — current status of the ftp-user (active-suspended)
  • enabled — specifies if the user was suspended after the owner was suspended
  • users — external key, unique identifier of the string in the "users" table, it is used for defining an owner of the ftp-user.

Web-domains management module

The  "webdomain" table

This table contains information about the web-domains that were created in ISPmanager Web-domains, and has the following fields:

  • id — unique identifier, the primary key
  • name — name of the Web-domain
  • docroot — full path to yhe web-domain root directory
  • active -current status of the web-domain (active-suspended)
  • int_suspend — defines if the web-domain was suspended automatically after the owner is suspended
  • email — e-mail of the Web-domain administrator
  • charset — encoding of the web-domain pages
  • dirindex — list of the index page of the web-pages
  • secure — current status of the SSL for the Web-domain (active-suspended)
  • sslport — SSL port for the Web-domain
  • framework — interface or framework (for example, rails, wsgi)
  • autosubdomain
  • php — indicates that PHP is used for the Web-domain
  • php_mode — indicates that PHP is used as an Apache module
  • cgi — indicates that CGI is active for the Web-domain
  • cgi_ext — indicates that CGI files are used fir the web-domain
  • dropped_down — reserved for internal use
  • log_access — indicates that the access log is used
  • log_error — indicates that the error log is used
  • rotation_period — Web-domain logs rotation period
  • rotation_size — size of the log to be rotated
  • rotation_count — number of rotated files to be saved
  • analyser — type of analyzer
  • analyser_period — log analysis period
  • analyser_lang — language that is used to display statistics by the log analyzer
  • users — external key, the unique identifier of the string in the "users" table. It is used for defining the web-domain's owner.

The "webdomain_alias" table

This table contains information about aliases of the Web-domains and contains the following fields:

  • id — unique identifier, the primary key
  • name — alias of the Web-domain
  • webdomain — external key, the unique identifier of the string in the "webdomain" module. It can be used for specifying the web-domain of that alias.

The "webdomain_ipaddr" tbales

This table contains information about IP-addresses assigned to Web-domains and contains the following fields:

  • id — unique identifier, the primary key
  • value — IP-address assigned to the Web-domain
  • webdomain — external key, the unique identifier of the string in the "webdomain" module. It can be used for specifying the web-domain to which that IP address is assigned.

The "webdomain_error" table

This table contains information about error pages of the Web-domains and contains the following fields:

  • id — unique identifier, the primary key
  • code -error code
  • uri — url-address or url-path to the error page
  • webdomain — external key, the unique identifier of the string in the "webdomain" module. It can be used for specifying the web-domain associated with the error page.

The "webdomain_redirect" table

This table contains information about redirects of the Web-domains and contains the following fields:

  • id — unique identifier, the primary key
  • status — web-server's response code
  • path — when specifying that path, the server will be redirected
  • uri — url-address for redirection
  • webdomain — external key, the unique identifier of the string in the "webdomain" module. It can be used for specifying the web-domain associated with the redirect.

The "webdomain_access_dir" table

This table contains information about password protected directories of the Web-domains and contains the following fields:

  • id — unique identifier, the primary key
  • path — full path to the password protected directory
  • webdomain — external key, the unique identifier of the string in the "webdomain" module. It can be used for specifying the web-domain associated with the password protected directory.

The "webdomain_access_users" table

This table contains information about users of the password protected directories of the Web-domains and contains the following fields:

  • id — unique identifier, the primary key
  • name — username in the password protected directory
  • passwd, pwhash — user password
  • active — user current status (active-suspended)
  • webdomain_access_dir — external key, the unique identifier of the string in the "webdomain_access_dir" table. It can be used for specifying the web-domain associated with the user of the password protected directory.

The "aps" table

This table contains information about web-scripts (APS) and contains the following fields:

  • id — unique identifier, the primary key
  • name — name of the Web-script
  • catalog_id — unique identifier of the web-script in list of available web-scripts
  • timestamp — date and time of the last update for this web-domain

The "aps_assign" table

This table contains information about web-scripts of the web-domains and contains the following fields:

  • id — unique identifier, the primary key
  • path — path to the Web-script. This is user directory relative path.
  • webdomain — external key, the unique identifier of the string in the "webdomain" table. It can be used for specifying the web-domain for which the script is installed.
  • aps — external key, the unique identifier of the string in the "aps" table. It can be used for specifying the Web-script that is used by the web-domain

The "aps_entry" table

This table contains information about properties of the web-script and contains the following fields:

  • id — unique identifier, the primary key
  • name — name of the property
  • value — value of the property
  • lang — language that is used for specifying property value
  • webdomain — external key, the unique identifier of the string in the "webdomain" module. It can be used for specifying the web-domain for which the script is installed.
  • aps — external key, the unique identifier of the string in the "aps" table. It can be used for specifying the Web-script that is used by the web-domain

Domain names management module

The "domain" table

This table contains information about domain names created in ISPmanager and contains the following fields:

  • id — unique identifier, the primary key
  • name — domain name
  • dtype — type of the domain name in the DNS-server. Possible values:
    master — domain name is the main domain zone of the DNS server slave — domain name is the slave domain zone of the DNS server
  • users — external key, the unique identifier of the string in the "users" module. It can be used for specifying the domain name. The NULL value means that the owner of that domain is server administrator.

The "domain_auto" table

This table contains information about domain names and DNS records that were automatically created when creating other items in ISPmanager (such as, mail or web-domains). It contains the following fields:

  • name — the primary key, name of the resource record or domain name (id the base field is not filled out (its value is NULL or ""))
  • base — domain name associated with that resource record, which name is specified in the name field.

The "slave_ns" table

This table contains information about external name servers created in ISPmanager and contains the following fields:

  • id — unique identifier, the primary key
  • name — URL of the external server control panel
  • username — username to access the external server control panel
  • password — user password to access the external server control panel

Mail domains management module

The "emaildomain_options" table

Keeps information about additional properties of mailboxes (such as greylisting, spamassassin, etc.):

  • id — unique identifier, the primary key
  • domain — external key, the unique identifier in the "emaildomain" table. Can be use for defining a mail domain for which a certain property is specified.
  • option — active property of the mail domain (if the property is not specified, it is considered active)

The "emaildomain" table

Keeps information about mail domains:

  • id — unique identifier, the primary key
  • name — name of the mail domain
  • ip — ip-address of the mail domain
  • defaction — action for a domain:
  1. if the mailbox with that recipient name is not specified for the domain, an action will be performed (drop, redirect, ignore);
  2. if forwarding is used for the domain (specified as forwarding from another domain), the mailbox that is not found in the domain for which redirect is set will be ... if this domain is a redirecting domain (indicated redirected for another domain), then it will search for a mailbox with a name that is not found in the domain from which the redirection is.
  • redirval — properties of the "action" for the domain (forward to a domain, which message to show when denying)
  • active — current status of the domain
  • int_suspend — if it is suspended by an external call
  • tag — service field. We strongly recommend that you not this value manually
  • users — external key, the unique identifier of the record in the "users" table. It can be used for defining the domain's owner.

The "email" table

Keeps information about mailboxes:

  • id — unique identifier, the primary key
  • name — name of the mailbox
  • path — path to the mailbox
  • password — password to access the mailbox
  • maxsize — maximum size in MB
  • used — memory consumption in MB
  • active — current status of the mailbox (active or not)
  • int_suspend — if it is suspended by external call
  • dontsave — do not save messages into the mailbox
  • note — description
  • tag — service field. We strongly recommend that you not this value manually
  • domain — external key, the unique identifier of the record in the "emaildomain" table. It can be used for defining the mail domain associated with that mailbox

The "email_options" table

Keeps information about mailbox properties:

  • id — unique identifier, the primary key
  • email — external key, the unique identifier of the record in the "email" table. It can be used for defining a property of that mailbox
  • options — property name (if the property is not found, it is considered not active)

The "email_alias" table

Keeps information about mailbox aliases:

  • id — unique identifier, the primary key
  • name — name of the mailbox alias
  • email — external key, the unique identifier of the record in the "email" tbale. It can be used for defining an alias of that mailbox

The "email_forward" table

Keeps information about mail forwarders:

  • id — unique identifier, the primary key
  • name — name of the email forward
  • email — external key, the unique identifier of the record in the "email" table. It can be used for defining a forward for that mailbox

The "email_responder" table

Keeps information about auto responders:

  • id — unique identifier, the primary key
  • fromaddr — email address that is specified as sender in the auto-responder message
  • subject — email subject
  • body — email body
  • attach — path to the file attached to the auto-responder
  • active — current status (active or not)
  • email — external key, the unique identifier of the record in the "email" table. It can be used for defining an auto-reposnder for that mailbox

The "email_filter" table

Keeps information about sorters:

  • id — unique identifier, the primary key
  • name — sorter name
  • allany — matching sorter conditions (all true, any true, if empty - no conditions)
  • active — current status (active or not)
  • pos — position of the script in the file with ".dovecot.sieve" (in the mail domain directory)
  • tag — service field. It is strongly not recommended to change this value manually.
  • email — external key, the unique identifier of the record in the "email" table, It can be used for defining sorter for that mailbox

Database management module

The "db_server" table

This table contains information about databases used by ISPmanager users and contains the following fields:

  • id — unique identifier, the primary key
  • name — name of the database server
  • type — type of the database. Possible values:
    mssql — Microsoft SQL Server mysql — MySQL postgresql — PostgreSQL
  • host — address of the database server
  • username — username to access the database server
  • password — user password to access the database server

The "db_assign" table

This table contains information about databases used by ISPmanager users and contains the following fields:

  • id — unique identifier, the primary key
  • name — name of the database
  • users — external key, the unique identifier of the string in the "users" module. It can be used for specifying a database owner
  • db_server — external key, the unique identifier of the string in the "db_server" module. It can be used for specifying a database server, where the database is created

The "db_cache" table

This table contains information about databases information cache and contains the following fields:

  • id — unique identifier, the primary key
  • next_check — date and time for the next check of the database
  • size — current size of the database
  • db_assign — external key, the unique identifier of the string in the "db_assign" table. It can be used for specifying a database from which that information is taken