Differences

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

Link to this comparison view

dev:database [2011/03/28 19:59] (current)
gradator created
Line 1: Line 1:
 +FIXME translate this page
 +
 +====== 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)
 +
 +  * ''​object_id''​ : identifiant de l'​objet
 +  * ''​owner_uid''​ : identifiant de l'​utilisateur propriétaire de l'​objet
 +  * ''​date_creation''​ : date de création de l'​objet
 +  * ''​state''​ : é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''​)
 +
 +===== 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 à [[http://​mydns.bboy.net||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 domaine
 +  * ''​domain''​ : nom du domaine
 +  * ''​owner_gid''​ : identifiant du groupe propriétaire
 +  * ''​owner_uid''​ : identifiant de l'​utilisateur propriétaire
 +  * ''​object_id''​ : identifiant de l'​objet correspondant
 +  * ''​ns''​ : 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 secondes
 +  * ''​retry''​ : 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 plus
 +  * ''​minimum''​ : 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ée
 +  * ''​ttl''​ : Durée de conservation dans les caches DNS.
 +
 +==== 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
 +
 +
 +  * ''​id''​ : identifiant de l'​enregistrement (autogénéré)
 +  * ''​zone''​ : identifiant du SOA auquel se rapporte l'​enregistrement
 +  * ''​type''​ : 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 :
 +    * type ''​A''​ ou ''​AAAA''​ : nom d'​hôte et IP correspondante
 +    * type ''​CNAME''​ : alias et nom réel de la machine
 +    * type ''​MX''​ : hôte et serveur mail correspondant
 +    * type ''​NS''​ : nom d'​hôte et nameserver correspondant
 +    * type ''​PTR''​ : adresse IP et nom d'​hôte correspondant
 +    * type ''​SRV''​ : ''​name''​ contient le nom du service et ''​data''​ contient ''​[poids] [port] [machine]''​
 +    * type ''​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 cache
 +
 +
 +===== 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.
 +  * ''​ml_id''​ : Identifiant autogénéré de la mailing list
 +  *  ''​local_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 list
 +  * ''​owner_uid''​ : identifiant de l'​utilisateur propriétaire
 +  * ''​owner_gid''​ : identifiant du groupe propriétaire
 +  * ''​object_id''​ : identifiant de l'​objet correspondant
 +  * ''​admin''​ : 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 poster
 +  * ''​open_archive''​ : indique si les archives sont disponibles publiquement
 +  * ''​open_sub''​ : indique si les inscriptions sont publique (sinon il est possible d'​ajouter des membres //via// le panel
 +  * ''​reply_to''​ : valeur du champ ''​Reply To''​ des mails envoyés
 +  * ''​moderated''​ : indique si la liste est modérée
 +  * <​del>''​url''​ : ????</​del>​
 +  * ''​signature''​ : Signature de la ml ajoutée à chaque pied de mail
 +
 +==== 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
 +
 +  * ''​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ée
 +    * ''​ML_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.com
 +    * ''​ML_RIGHT_SUB_WAITING_FOR_DEL''​ : Utilisateur ayant demandé sa désinscription mais ne l'​ayant pas encore confirmée
 +  * <​del>''​active''​ : Indique si l'​utilisateur est actif (??? semble inutilisé)</​del>​
 +  * ''​hash''​ : Hash lié à la requête de l'​utilisateur (pour inscription ou désinscription)
 +  * ''​ml_id''​ : Identifiant de la liste à laquelle l'​utilisateur est inscrit
 +  * ''​language''​ : 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.
 +
 +===== 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
 +
 +  * ''​acl_id''​ : Identifiant de l'ACL ;
 +  * ''​oid_src''​ : Identifiant de l'​objet correspondant au groupe ou à la personne disposant d'un accès (FIXME renommer le champ) ;
 +  * ''​perm''​ : Niveau d'​accès de l'​utilisateur/​groupe ;
 +  * ''​oid_dst''​ : Objet (service) concerné par l'ACL.
  
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki