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.
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)
object_id : identifiant de l’objetowner_uid : identifiant de l’utilisateur propriétaire de l’objetdate_creation : date de création de l’objetstate : état de l’objet (défini dans Vhffs::Constants)description : description de l’objet (saisie par l’utilisateur)type : type de l’objet (défini dans Vhffs::Constants)
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.
dns_id : identifiant autogénéré du domainedomain : nom du domaineowner_gid : identifiant du groupe propriétaireowner_uid : identifiant de l’utilisateur propriétaireobject_id : identifiant de l’objet correspondantns : nom du serveur de nom primaire (c-à-d. nom du serveur de nom MyDNS, paramètre default_ns1 de la configuration VHFFS)mbox : adresse email de la personne gérant le serveur DNS (default_mbox)serial : numéro de série des données de zone (format AAAAMMJJVV)refresh : période de rafraîchissement des serveurs secondaires en secondesretry : délai avant de réessayer un rafraîchissement si le transfert échoue (en seconde)expire : délai d’expiration des données lorsque le serveur ne répond plusminimum : TTL minimum pour tous les rr de ce domaine, si un enregistrement de vhffs_dns_rr contient une valeur inférieure pour son champ ttl, c’est la valeur de minimum qui est utiliséettl : Durée de conservation dans les caches DNS.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
id : identifiant de l’enregistrement (autogénéré)zone : identifiant du SOA auquel se rapporte l’enregistrementtype : type de l’enregistrement (A, AAAA, CNAME, etc.)name et data : nom auquel se rapporte l’enregistrement et données correspondantes. La signification varie selon les cas :A ou AAAA : nom d’hôte et IP correspondanteCNAME : alias et nom réel de la machineMX : hôte et serveur mail correspondantNS : nom d’hôte et nameserver correspondantPTR : adresse IP et nom d’hôte correspondantSRV : name contient le nom du service et data contient [poids] [port] [machine]TXT : Nom de l’hote et texte associéaux : Informations complémentaires (priorité dans le cas d’enregistrements MX ou SRV)ttl : Temps de vie dans le cacheTable 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.
ml_id : Identifiant autogénéré de la mailing listlocal_part : préfixe de la mailing list (partie avant le @)domain : domaine de la mailing list (après le @)prefix : préfixe ajouté à tous les mails envoyés sur la mailing listowner_uid : identifiant de l’utilisateur propriétaireowner_gid : identifiant du groupe propriétaireobject_id : identifiant de l’objet correspondantadmin : adresse email de l’administrateur de la liste (par défaut, adresse email de l’utilisateur créateur)open_post : indique si les personnes non inscrites à la mailing list peuvent posteropen_archive : indique si les archives sont disponibles publiquementopen_sub : indique si les inscriptions sont publique (sinon il est possible d’ajouter des membres via le panelreply_to : valeur du champ Reply To des mails envoyésmoderated : indique si la liste est modéréeurl : ????signature : Signature de la ml ajoutée à chaque pied de mailTable 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
sub_id : Identifiant de l’abonnémember : Adresse de l’abonnéperm : Niveau d’autorisation de l’abonné :ML_RIGHT_SUB_WAITING_FOR_REPLY : Utilisateur ayant demandé une inscription mais ne l’ayant pas encore validéeML_RIGHT_SUB : Utilisateur classique (ajouté directement ou ayant confirmé son inscription)ML_RIGHT_ADMIN : Administrateur de la liste (accès aux commandes d’administration via xxx-request@domain.comML_RIGHT_SUB_WAITING_FOR_DEL : Utilisateur ayant demandé sa désinscription mais ne l’ayant pas encore confirméeactive : Indique si l’utilisateur est actif (??? semble inutilisé)hash : Hash lié à la requête de l’utilisateur (pour inscription ou désinscription)ml_id : Identifiant de la liste à laquelle l’utilisateur est inscritlanguage : Langue de l’utilisateur (pour les tâches administratives)
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.
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
acl_id : Identifiant de l’ACL ;oid_src : Identifiant de l’objet correspondant au groupe ou à la personne disposant d’un accès (
renommer le champ) ;perm : Niveau d’accès de l’utilisateur/groupe ;oid_dst : Objet (service) concerné par l’ACL.