Table of Contents

Base de données VHFFS

Cette page décrit la base de données de VHFFS (les champs et leur utilité). Elle est à compléter et se rapporte à la versin 4.1 de VHFFS.

vhffs_object

Il s’agit de la table de base. Elle permet l’implantation d’un système d’héritage. Ainsi, les utilisateurs, les groupes, les différentes entités composant les services sont tous des objets. Cela permet d’éviter la duplication de champs.

\d vhffs_object
                                          Table «public.vhffs_object»
    Colonne    |            Type             |                          Modificateurs
---------------+-----------------------------+------------------------------------------------------------------
 object_id     | integer                     | not null default nextval('vhffs_object_object_id_seq'::regclass)
 owner_uid     | integer                     |
 date_creation | timestamp without time zone |
 state         | character varying           | not null
 description   | text                        |
 type          | integer                     | default 0
Index :
    «vhffs_object_pkey» PRIMARY KEY, btree (object_id)
    «idx_vhffs_object_state» btree (state)

DNS

vhffs_dns

Table contenant les données globales sur une zone. Cette table était auparavant décomposée en plusieurs tables (vhffs_dns_global et vhffs_dns_soa). Les données qu’elle contient sont destinées à |MyDNS, elles lui sont présentées via la vue vhffs_dns_soa qui assure la conversion des noms de champs.

\d vhffs_dns
                                        Table «public.vhffs_dns»
  Colonne  |          Type          |                           Modificateurs
-----------+------------------------+-------------------------------------------------------------------
 dns_id    | integer                | not null default nextval('vhffs_dns_global_dns_id_seq'::regclass)
 domain    | character varying(255) | not null
 owner_gid | integer                |
 owner_uid | integer                |
 object_id | integer                |
 ns        | character varying(255) | not null
 mbox      | character varying(255) | not null
 serial    | integer                | not null default 1
 refresh   | integer                | not null default 28800
 retry     | integer                | not null default 7200
 expire    | integer                | not null default 604800
 minimum   | integer                | not null default 86400
 ttl       | integer                | not null default 86400
Index :
    «vhffs_dns_pkey4» PRIMARY KEY, btree (dns_id)
Contraintes de clés secondaires :
    «fk_vhffs_dns_vhffs_groups» FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid)
    «fk_vhffs_dns_vhffs_object» FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE
    «fk_vhffs_dns_vhffs_users» FOREIGN KEY (owner_uid) REFERENCES vhffs_users(uid)

Les cinq premiers champs formaient auparavant la table vhffs_dns_global, les suivant vhffs_dns_soa.

vhffs_dns_rr

Table contenant les “resource records” d’une zone.

\d vhffs_dns_rr
                               Table «public.vhffs_dns_rr»
 Colonne |          Type          |                       Modificateurs
---------+------------------------+-----------------------------------------------------------
 id      | integer                | not null default nextval('vhffs_dns_rr_id_seq'::regclass)
 zone    | integer                | not null
 name    | character varying(64)  | not null
 type    | character varying(5)   | not null
 data    | character varying(128) | not null
 aux     | integer                | not null default 0
 ttl     | integer                | not null default 86400
Index :
    «vhffs_dns_rr_pkey» PRIMARY KEY, btree (id)
Contraintes :
    «fk_vhffs_dns_rr_chk_type» CHECK ("type"::text = 'A'::text OR "type"::text = 'AAAA'::text OR "type"::text = 'CNAME'::text
    OR "type"::text = 'HINFO'::text OR "type"::text = 'MX'::text OR "type"::text = 'NS'::text OR "type"::text = 'PTR'::text
    OR "type"::text = 'RP'::text OR "type"::text = 'SRV'::text OR "type"::text = 'TXT'::text)
Contraintes de clés secondaires :
    «fk_vhffs_dns_rr_vhffs_dns» FOREIGN KEY ("zone") REFERENCES vhffs_dns(dns_id) ON DELETE CASCADE

Mailing lists

vhffs_ml

Table contenant les informations sur les mailing lists de la plateforme.

\d vhffs_ml
                                     Table «public.vhffs_ml»
   Colonne    |          Type          |                      Modificateurs
--------------+------------------------+----------------------------------------------------------
 ml_id        | integer                | not null default nextval('vhffs_ml_ml_id_seq'::regclass)
 local_part   | character varying      | not null
 domain       | character varying      |
 prefix       | character varying      |
 owner_uid    | integer                |
 owner_gid    | integer                |
 object_id    | integer                |
 admin        | character varying(250) |
 open_post    | boolean                |
 open_archive | boolean                |
 open_sub     | boolean                |
 reply_to     | boolean                |
 moderated    | boolean                |
 signature    | character varying(250) |
Index :
    «vhffs_ml_pkey» PRIMARY KEY, btree (ml_id)
    «vhffs_ml_unique_address» UNIQUE, btree (local_part, "domain")
Contraintes de clés secondaires :
    «fk_vhffs_ml_vhffs_groups» FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid)
    «fk_vhffs_ml_vhffs_object» FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE
    «fk_vhffs_ml_vhffs_users» FOREIGN KEY (owner_uid) REFERENCES vhffs_users(uid)

Note : il n’existe pas de contrainte entre le domaine et la table vhffs_mxdomain. Cette contrainte est vérifiée logiciellement sauf dans le cas où le domaine est celui défini par default_domain dans la section mailing de la configuration.

vhffs_ml_subscribers

Table répertoriant toutes les personnes ayant souscrit à une mailing list.

\d vhffs_ml_subscribers
                                   Table «public.vhffs_ml_subscribers»
 Colonne  |         Type          |                             Modificateurs
----------+-----------------------+-----------------------------------------------------------------------
 sub_id   | integer               | not null default nextval('vhffs_ml_subscribers_sub_id_seq'::regclass)
 member   | character varying     | not null
 perm     | integer               | not null
 hash     | character varying     |
 ml_id    | integer               | not null
 language | character varying(16) |
Index :
    «vhffs_ml_subscribers_pkey» PRIMARY KEY, btree (sub_id)
Contraintes de clés secondaires :
    «fk_vhffs_ml_subscribers_vhffs_ml» FOREIGN KEY (ml_id) REFERENCES vhffs_ml(ml_id)  ON DELETE CASCADE

La clé fk_vhffs_ml_subscribers_vhffs_ml permet la suppression de tous les abonnés à une liste lors de la suppression de celle-ci.

vhffs_acl

Cette table contient les autorisations au niveau du panel pour les différents objets. Elle permet d’indiquer quels sont les groupes et/ou utilisateurs qui vont pouvoir consulter, modifier, supprimer, etc. un service.

\d vhffs_acl
                            Table «public.vhffs_acl»
 Colonne |  Type   |                       Modificateurs
---------+---------+------------------------------------------------------------
 acl_id  | integer | not null default nextval('vhffs_acl_acl_id_seq'::regclass)
 oid_src | integer |
 perm    | integer | not null
 oid_dst | integer |
Index :
    «vhffs_acl_pkey» PRIMARY KEY, btree (acl_id)
Contraintes de clés secondaires :
    «fk_vhffs_acl_vhffs_object_dst» FOREIGN KEY (oid_dst) REFERENCES vhffs_object(object_id) ON DELETE CASCADE
    «fk_vhffs_acl_vhffs_object_src» FOREIGN KEY (oid_src) REFERENCES vhffs_object(object_id) ON DELETE CASCADE