4D v16

Configuration de la base 4D

Accueil

 
4D v16
Configuration de la base 4D

Configuration de la base 4D    


 

 

Pour des raisons de sécurité et de performance, l’accès aux tables, données et méthodes de la base 4D via des requêtes 4D Mobile (serveurs Wakanda) doit être activé et explicitement autorisé. Vous devez configurer trois niveaux d’accès :

  • démarrage des services 4D Mobile,
  • contrôle des accès 4D Mobile (optionnel mais recommandé),
  • définition individuelle de l’exposition de chaque objet de la base (table, attribut ou méthode projet) aux services 4D Mobile en fonction de vos besoins. Par défaut :
    • toutes les tables et tous les attributs sont accessibles à 4D Mobile,
    • les méthodes projet ne sont pas accessibles à 4D Mobile.

Par défaut, 4D Server ne répond pas aux requêtes 4D Mobile. Vous devez démarrer les services 4D Mobile afin que ces requêtes soient traitées et que le connecteur 4D / Wakanda puisse être mis en place.

Note : Les services 4D Mobile utilisent le serveur HTTP de 4D. Par conséquent, assurez-vous que le serveur Web de 4D ou 4D Server est démarré. 

Pour activer les services 4D Mobile :

  1. Dans les Propriétés de la base, affichez la page Web/4D Mobile.
  2. Cochez l’option Activer les services 4D Mobile :

    Le message d’alerte "Attention, vérifier les droits d’accès" s’affiche afin d’attirer votre attention sur le fait que lorsque les services 4D Mobile sont activés, par défaut l’accès aux objets de la base est libre tant que les accès 4D Mobile (via REST) n’ont pas été contrôlés (cf. ci-dessous).

Le contrôle des accès 4D Mobile permet d’autoriser ou non l’ouverture d’une session côté 4D à la suite d’une requête Wakanda.

Dans le cadre d’un accès 4D Mobile, les identifiants contrôlés sont le nom et le mot de passe envoyés lors de la demande de connexion effectuée par :

Au niveau global, les accès 4D Mobile peuvent être contrôlés de deux manières :

Ces deux modes de contrôle sont exclusifs : si une Méthode base Sur authentification 4D Mobile est définie, le contrôle des accès automatique par mots de passe 4D est désactivé.

Attention, si aucun de ces deux modes de contrôle n’est activé, les accès 4D Mobile à la base sont toujours acceptés (déconseillé).

4D vous permet de désigner le groupe d’utilisateurs qui sera autorisé à établir la connexion au serveur 4D depuis l’application Wakanda. 

Pour désigner le compte d’ouverture de session :

  1. Dans les Propriétés de la base, affichez la page Web/4D Mobile.
  2. Choisissez le groupe à utiliser via le menu "Lecture/écriture" de la zone Accès :

    Par défaut, le menu affiche <N’importe qui>, ce qui signifie que les accès 4D Mobile sont ouverts à tous les utilisateurs.

Une fois que vous avez désigné un groupe, seul un compte d’utilisateur 4D appartenant à ce groupe pourra être utilisé pour accéder à 4D via une requête Wakanda -- pour ouvrir une session sur le serveur 4D via la méthode mergeOustideCatalog() par exemple. Si un compte n’appartenant pas à ce groupe est utilisé, 4D retourne une erreur d’authentification à l’expéditeur de la requête.

A noter que pour que ce paramétrage soit effectif :

  • le système de mots de passe de 4D doit être activé (un mot de passe doit avoir été attribué au Super_Utilisateur),
  • la Méthode base Sur authentification 4D Mobile ne doit pas être définie. Si elle existe, 4D ne tient pas compte des paramétrages d’accès définis dans les Propriétés de la base.

La Méthode base Sur authentification 4D Mobile vous permet de contrôler de manière personnalisée l’ouverture des sessions 4D Mobile sur 4D. Lorsqu'elle est définie, elle est automatiquement appelée par 4D ou 4D Server lorsqu'une requête 4D Mobile est reçue par le serveur HTTP.

Lorsque la demande d’ouverture de session 4D Mobile provient de Wakanda Server (cas général), les identifiants de connexion sont fournis dans l’en-tête de la requête. La méthode base Sur authentification 4D Mobile est appelée afin de vous permettre d’évaluer ces identifiants. Vous pouvez utiliser la liste des utilisateurs de la base 4D ou votre propre table d’identifiants.

Pour plus d'informations, reportez-vous à la description de la Méthode base Sur authentification 4D Mobile dans le manuel Langage de 4D.

Une fois que les services 4D Mobile sont activés dans la base 4D, par défaut une session 4D Mobile peut accéder à toutes les tables et tous les champs de la base, et donc utiliser leurs données. Par exemple, si votre base contient une table [Employee], il est possible d’écrire côté Wakanda Server :

var emp=ds.Employee.query("name == 'Martin'"); 
    //Retourner tous les employés dont le champ nom vaut ’Martin’

Note : Les tables et/ou champs 4D ayant l’attribut "Invisible" sont également exposés en 4D Mobile par défaut. 

Le serveur Wakanda peut également accéder aux méthodes projet de la base 4D. Toutefois, par défaut, cet accès est inactivé pour des raisons de sécurité.

Si vous souhaitez personnaliser la liste des objets de votre base accessibles en 4D Mobile, vous devez :

  • désactiver l’exposition de chaque table et/ou champ que vous souhaitez masquer,
  • activer l’exposition de chaque méthode projet à laquelle vous souhaitez donner accès.

Lorsqu’une requête 4D Mobile tente d’accéder à une ressource (table ou méthode projet) non autorisée, 4D retourne une erreur.

Par défaut, toutes les tables sont exposées en 4D Mobile.

Pour des raisons de sécurité, vous pouvez souhaiter ne pas exposer certaines tables de votre base aux appels 4D Mobile. Par exemple, si vous avez créé une table [Users] dans laquelle vous stockez les noms et mots de passe des utilisateurs, il est préférable de ne pas l’exposer.

Pour modifier l’exposition 4D Mobile d’une table :

  1. Affichez l’Inspecteur de table dans l’éditeur de Structure et sélectionnez la table à modifier.
    Par défaut, l’option Exposer avec le service 4D Mobile est cochée :
  2. Désélectionnez l’option Exposer avec le service 4D Mobile.
    OU
    Effectuez l’opération inverse pour exposer une table désélectionnée.
    Répétez l’opération pour chaque table dont vous souhaitez modifier l’exposition.

Par défaut, tous les champs de la base 4D sont exposés en 4D Mobile.

Vous pouvez souhaiter ne pas exposer à 4D Mobile certains champs de vos tables. Par exemple, vous pouvez vouloir ne pas exposer le champ [Employés]Salaire. 

Pour modifier l’exposition 4D Mobile d’un champ :

  1. Affichez l’Inspecteur de champ dans l’éditeur de Structure et sélectionnez le champ à modifier.
    Par défaut, l’option Exposer avec le service 4D Mobile est cochée :
  2. Désélectionnez l’option Exposer avec le service 4D Mobile pour le champ.
    OU
    Effectuez l’opération inverse pour exposer un champ désélectionné.
    Répétez l’opération pour chaque champ que vous souhaitez modifier.

A noter que pour qu’un champ soit accessible via 4D Mobile, la table parente doit également l’être. Si la table parente n’est pas exposée, aucun champ de la table ne sera accessible, quel que soit son statut. Grâce à ce mécanisme, vous pouvez activer ou désactiver temporairement l’exposition 4D Mobile d’une table, la valeur individuelle de l’option d’exposition de chaque champ n’est pas modifiée.

Par défaut, aucune méthode projet n’est exposée en 4D Mobile.

Vous pouvez souhaiter rendre accessibles via 4D Mobile une ou plusieurs méthode(s) projet de votre base 4D. Pour cela, vous devez cocher l’option appropriée et définir le contexte d’exécution Wakanda de la méthode.

Note : Si un groupe d’accès a été associé à la méthode 4D, vous devez veiller à ce que le groupe 4D Mobile soit inclus dans ce groupe. 

Pour définir l’exposition 4D Mobile d’une méthode projet :

  1. Affichez la boîte de dialogue "Propriétés de la méthode".
    Note : Vous pouvez accéder à la boîte de dialogue des propriétés de la méthode depuis le menu contextuel de la page "Méthodes" de l’Explorateur, ou depuis le menu Méthode/Propriétés de la méthode... de l’Editeur de méthodes.
  2. Cochez l’option Disponible via les appels 4D Mobile :
  3. Définissez le contexte d’exécution Wakanda de la méthode projet à l’aide des menus Table et Portée.

    Ces paramétrages sont requis pour respecter la logique de Wakanda. Pour plus d’informations sur ce point, reportez-vous au paragraphe suivant.
  4. Cliquez sur le bouton OK pour valider les modifications effectuées.
    Les méthodes projet disponibles via 4D Mobile sont listées dans la rubrique "Méthodes 4D Mobile" de l’Explorateur de 4D (cf. paragraphe “Explorateur” ci-dessous).

Lorsque vous déclarez une méthode projet disponible via les requêtes 4D Mobile, vous devez déclarer explicitement son contexte d’appel à l’aide des paramètres Table et Portée.

  • Table : table à laquelle doit être rattachée la méthode projet. Ce paramétrage n'est pas lié directement à l'utilisation des données de la table, mais permet de désigner l'objet datastore class via lequel vous souhaitez accéder à la méthode via le code javascript.
    Le menu affiche la liste des tables de la base exposées en 4D Mobile. Si la méthode utilise spécifiquement les données d'une table, vous pouvez sélectionner la table. Si la méthode n'est pas liée à une seule table, vous pouvez utiliser toute table exposée. Ou encore, si vous souhaitez simplement exposer des méthodes correspondant à la logique métier de votre application 4D, vous pouvez créer et exposer une table dédiée, par exemple [Interface4DMobile], et lui associer toutes les méthodes projet exposées en 4D Mobile.
  • Portée : périmètre d’enregistrements sur lequel sera appliquée la méthode. Cette déclaration est nécessaire car, côté Wakanda, les méthodes sont des propriétés d’objets JavaScript et ne peuvent être appelées que par l’intermédiaire de ces objets. Chaque méthode 4D exposée doit être explicitement associée au contexte de base de données dans lequel elle sera appelée : Table, Sélection courante et Enregistrement courant.
    • Table : cette option indique que la méthode 4D sera exécutée en utilisant l’ensemble des enregistrements de la table désignée.
      Côté Wakanda, la méthode devra être appelée sur un objet de type Datastore class, par exemple ds.MaTable.MaMéthode.
    • Sélection courante : cette option indique que la méthode 4D sera exécutée en utilisant la sélection courante des enregistrements de la table désignée.
      Côté Wakanda, la méthode devra être appelée sur un objet de type Entity Collection, par exemple ds.MaTable.all().MaMéthode.
    • Enregistrement courant : cette option indique que la méthode 4D sera exécutée en utilisant l’enregistrement courant de la table désignée.
      Côté Wakanda, la méthode devra être appelée sur un objet de type Entity, par exemple ds.MaTable(1).MaMéthode.

Attention : Lorsque vous modifiez l’exposition ou la portée d’une méthode projet côté 4D, il est nécessaire de recharger le modèle distant côté Wakanda afin de tenir compte des modifications effectuées.

Lorsque les services 4D Mobile sont activés, les tables exposées en 4D Mobile et les méthodes projet qui leur sont rattachées sont affichées dans la page "Méthodes" de l’Explorateur de 4D, rubrique Méthodes 4D Mobile :

 
 



Voir aussi  

Configuration de l’application Wakanda

 
PROPRIÉTÉS 

Produit : 4D
Thème : Configuration de la base 4D
Nom intl. : Configuring the 4D Database

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D Mobile ( 4D v16)