NocoBase externe

Présentation

Une source de données NocoBase externe permet de connecter une autre application NocoBase à l’application actuelle, tout en conservant les métadonnées configurées dans l’application distante, telles que les tables de données, les interfaces de champs, les titres et les champs de relation.

Par rapport à une source de données de base de données externe, la connexion à un NocoBase externe ne nécessite généralement pas de reconfigurer les interfaces de champs ni de créer manuellement les champs de relation. Outre la consultation, la création, la modification et la suppression d’enregistrements, elle prend également en charge l’importation et l’exportation, l’importation et la prévisualisation de fichiers, les requêtes de graphiques ainsi que certains scénarios de workflow.

Ajouter une source de données

Après avoir activé le plugin, ajoutez une source de données NocoBase externe dans « Gestion des sources de données », puis renseignez les informations d’accès de l’application distante.

Élément de configurationDescription
Adresse APIAdresse API complète de l’application NocoBase distante, par exemple https://example.com/api
OriginOrigine d’accès de l’application NocoBase distante, par exemple https://example.com ; principalement utilisée pour traiter les adresses de prévisualisation des fichiers locaux de l’application distante
API keyIdentifiant utilisé par l’application actuelle pour accéder au NocoBase distant
En-têtes de requêteEn-têtes de requête supplémentaires à transmettre à l’application distante, comme les informations d’espace
Délai d’expirationDélai d’expiration des requêtes vers l’application distante

Après l’activation de la source de données, le système charge les tables de données de l’application distante.

Informations sur les autorisations

Une source de données NocoBase externe est soumise aux autorisations de l’application actuelle et de l’application distante.

  • L’application actuelle peut configurer les autorisations d’accès à différentes tables et différents champs, comme pour les autres sources de données externes ;
  • L’application distante lit et manipule les données correspondantes selon les autorisations de l’API key configurée.

Une source de données NocoBase externe ne renvoie pas les métadonnées d’autorisation utilisées pour contrôler finement côté frontend l’affichage des boutons. Certains boutons peuvent donc ne pas être masqués automatiquement selon les autorisations comme dans la source de données principale. Que le bouton soit affiché ou non, l’opération de soumission fait toujours l’objet d’un contrôle des autorisations côté serveur de l’application actuelle ; les opérations non autorisées sont refusées.

Attention

Il est recommandé de préparer une API key dédiée à la source de données NocoBase externe et de lui accorder uniquement les autorisations nécessaires sur les tables et les opérations. Si une autorisation existe dans l’application actuelle mais que l’opération échoue, vérifiez les autorisations de l’API key distante.

Utiliser les tables de données

Une fois les tables de données chargées, sélectionnez cette source de données dans la configuration des pages, des blocs, des graphiques ou des workflows pour utiliser les tables de données de l’application distante.

Après toute modification de la structure des tables de données dans l’application distante, rechargez les tables de données dans l’application actuelle.

Fonctionnalités

Une source de données NocoBase externe sert principalement à utiliser les tables de données et les données de l’application distante dans l’application actuelle. La structure des tables, la configuration des champs et les données réelles continuent d’être gérées par l’application distante.

Tables de données et champs

L’application actuelle charge les métadonnées de l’application distante, notamment les tables de données, les interfaces de champs, les titres et les champs de relation. Par rapport à une source de données de base de données externe, il n’est généralement pas nécessaire de reconfigurer les interfaces de champs ni de créer manuellement les champs de relation dans l’application actuelle.

L’application actuelle ne permet pas de configurer directement les champs d’une source de données NocoBase externe. Pour ajouter des champs, modifier leur type ou modifier des champs de relation, effectuez ces opérations dans l’application distante, puis rechargez les tables de données dans l’application actuelle.

Enregistrements et données associées

Une source de données NocoBase externe permet de consulter, créer, modifier et supprimer des enregistrements dans les blocs de page, ainsi que de consulter et gérer les données associées. Les opérations sont lancées par l’application actuelle, qui envoie des requêtes à l’application distante au moyen de l’API key configurée.

Fichiers et pièces jointes

Les fichiers sont téléversés dans le stockage utilisé par l’application distante. L’application actuelle se charge d’initier les requêtes d’envoi, de prévisualisation et de téléchargement ; les fichiers eux-mêmes ne sont pas enregistrés dans l’application actuelle.

Origin sert principalement à traiter les adresses de prévisualisation des fichiers du stockage local de l’application distante. Si l’adresse renvoyée par l’application distante est un chemin relatif, l’application actuelle utilise Origin pour compléter l’adresse d’accès au fichier. Origin doit être renseigné avec l’adresse d’accès publique de l’application NocoBase distante, par exemple :

https://example.com

Ne renseignez pas l’adresse API dans Origin.

Importation et exportation

L’importation et l’exportation sont des opérations de lecture et d’écriture de la source de données via des fichiers externes ; elles sont exécutées par l’intermédiaire de l’application distante. L’application actuelle se charge de recevoir l’action de l’utilisateur, de transmettre la requête et de renvoyer le résultat du téléchargement ; la lecture et l’écriture réelles des données sont effectuées par l’application distante.

  • Importer des enregistrements : l’application actuelle reçoit le fichier d’importation téléversé, puis le transmet à l’application distante pour exécution ;
  • Exporter des enregistrements : l’application actuelle transmet à l’application distante la demande d’exportation des enregistrements. En mode synchrone, le flux du fichier d’enregistrements renvoyé par l’application distante est transmis au navigateur pour téléchargement ; en mode asynchrone, une tâche asynchrone locale est créée, l’exportation des enregistrements est lancée dans l’application distante et sa progression est synchronisée, puis le fichier d’enregistrements est récupéré en flux depuis l’application distante au moment du téléchargement.
  • Exporter des pièces jointes : l’application actuelle transmet à l’application distante la demande d’exportation des pièces jointes. En mode synchrone, le flux de l’archive de pièces jointes renvoyée par l’application distante est transmis au navigateur pour téléchargement ; en mode asynchrone, une tâche asynchrone locale est créée, l’exportation des pièces jointes est lancée dans l’application distante et sa progression est synchronisée, puis l’archive de pièces jointes est récupérée en flux depuis l’application distante au moment du téléchargement.

Impression de modèles

L’impression de modèles peut utiliser des enregistrements provenant d’une source de données NocoBase externe. Les modèles d’impression et la configuration des actions d’impression sont enregistrés dans l’application actuelle. Lors de l’impression, l’application actuelle lit les enregistrements et les données associées distants, puis génère le fichier d’impression dans l’application actuelle.

Graphiques

Panneau de requête

Une source de données NocoBase externe peut être utilisée dans un panneau de requête de graphique. L’application actuelle traite les paramètres de requête selon la configuration locale des graphiques, de la source de données, des tables de données et des autorisations de champs, puis envoie une requête à l’application distante pour obtenir le résultat.

L’API key distante doit également disposer des autorisations d’accès aux données correspondantes, faute de quoi la requête échouera.

Panneau SQL

Le panneau SQL est le mode de requête SQL des graphiques et sert uniquement à effectuer des requêtes. L’application actuelle enregistre la configuration SQL et lance l’appel ; la requête SQL est exécutée par l’intermédiaire de l’application distante.

Lors de l’utilisation d’un panneau SQL, l’utilisateur local doit disposer des autorisations de configuration de l’interface utilisateur dans l’application actuelle, et l’API key distante doit également disposer des autorisations de configuration de l’interface utilisateur dans l’application distante. Contrairement au panneau de requête, le panneau SQL ne décompose pas les paramètres de requête selon les autorisations des tables et des champs. Accordez donc avec prudence les autorisations de configuration de l’interface utilisateur aux utilisateurs locaux et à l’API key correspondante.

Workflows

Une source de données NocoBase externe peut impliquer deux ensembles de workflows : ceux de l’application actuelle et ceux de l’application distante. L’application actuelle répond aux événements de la chaîne des requêtes provenant des pages, des boutons et des API locales ; après réception d’une requête transmise, l’application distante la traite selon sa propre configuration de workflows.

Notez que l’application actuelle n’écoute pas les événements de création, de mise à jour ou de suppression qui se produisent au sein des tables de données distantes. Les événements des tables de données distantes ne sont déclenchés que dans l’application distante.

Déclencheurs

Le tableau suivant décrit, lorsque le workflow correspondant est activé, le comportement dans l’application actuelle et l’application distante des déclencheurs influencés par une source de données NocoBase externe.

DéclencheurApplication actuelleApplication distanteDescription
Événement avant la requêteDéclenchéDéclenché uniquement en mode globalDans l’application actuelle, déclenché en mode global ; en mode local, déclenché selon le bouton auquel il est associé ; dans l’application distante, après réception de la requête transmise, déclenché uniquement en mode global
Événement après la requêteDéclenchéDéclenché uniquement en mode globalDans l’application actuelle, déclenché en mode global ; en mode local, déclenché selon le bouton auquel il est associé ; dans l’application distante, après réception de la requête transmise, déclenché uniquement en mode global
Événement d’opération personnaliséeDéclenchéNon déclenchéLe bouton « Déclencher un workflow » associé dans l’application actuelle déclenche le processus local ; les requêtes CRUD transmises ne déclenchent pas l’événement d’opération personnalisée distant
Événement de table de donnéesNon déclenchéDéclenchéLes données réelles étant modifiées à distance, l’application actuelle ne déclenche pas l’événement local de table de données ; l’application distante déclenche son propre événement de table de données
Déclenchement planifié par champ de dateNon déclenchéDéclenchéL’application actuelle ne déclenche pas le workflow à partir des champs des tables de données distantes ; l’application distante le déclenche selon sa propre configuration des champs de date

Les déclencheurs qui ne dépendent pas d’une source de données sont exécutés dans l’application actuelle et l’application distante selon leurs configurations respectives.

Pour orchestrer dans l’application actuelle un processus qui manipule des données NocoBase externes, il est recommandé d’utiliser un événement avant la requête, un événement après la requête ou un événement d’opération personnalisée. Les workflows déjà présents dans l’application distante sont exécutés indépendamment par cette dernière.

Nœuds

Le tableau suivant répertorie uniquement les nœuds liés aux sources de données. Les nœuds génériques tels que les conditions, les calculs, les boucles et le traitement JSON ne dépendent pas du type de source de données et peuvent être utilisés comme dans un workflow classique.

NœudDisponibleDescription
Rechercher des enregistrementsDisponibleRechercher des enregistrements dans l’application distante
Créer un enregistrementDisponibleCréer des enregistrements dans l’application distante
Mettre à jour un enregistrementDisponibleMettre à jour des enregistrements dans l’application distante
Supprimer un enregistrementDisponibleSupprimer des enregistrements dans l’application distante
Nœud SQLIndisponibleLes nœuds SQL des workflows prennent uniquement en charge les sources de données de base de données
Nœud d’agrégationIndisponibleLes nœuds d’agrégation prennent uniquement en charge les sources de données de base de données

Questions fréquentes

La table de données n’apparaît pas

Vérifiez que la source de données est activée et que l’adresse API ainsi que l’API key sont correctes. L’application distante doit également autoriser cette API key à accéder à la table de données correspondante.

Le téléversement du fichier a réussi, mais il est impossible de le prévisualiser

Si l’application actuelle ou l’application distante utilise un stockage de fichiers local, vérifiez qu’Origin est renseigné avec l’adresse d’accès publique de l’application concernée. Origin ne doit pas contenir l’adresse API.

L’opération échoue malgré les autorisations dans l’application actuelle

Vérifiez les autorisations de l’API key de l’application distante. Une source de données NocoBase externe est soumise à la fois aux autorisations de l’application actuelle et à celles de l’application distante.

La table de données est inutilisable après une anomalie du service distant

Si l’application distante renvoie une erreur 502, redémarre ou devient temporairement indisponible, l’application actuelle peut ne plus parvenir temporairement à lire les métadonnées des tables de données distantes. Une fois le service distant rétabli, l’application actuelle recharge automatiquement les métadonnées lors de la prochaine consultation des tables de données de cette source.

Pourquoi est-il impossible de configurer les champs dans l’application actuelle ?

Une source de données NocoBase externe utilise la structure des tables de données et la configuration des champs de l’application distante. Modifiez les champs dans l’application distante, puis rechargez les tables de données dans l’application actuelle.