Format de fichier Next Gen
Format de fichier
Notre format de fichier Next Gen est basé sur Protobuf.
Chaque fichier interne contient la représentation binaire d'un message Protobuf.
Naming convention: <content-type>-<index>.proto
Les fichiers générés sont fournis sous forme d'archives .tar.
Cette structure normalise le processus de livraison et garantit un alignement cohérent entre tous les formats d'exportation.
Structure des fichiers
Chaque type de contenu est lié à un message Protobuf qui définit sa structure, créant ainsi une carte claire entre le fichier et le message qui définit le nom du fichier et ses données codées. Ces fichiers sont codés au format protobuf.
Le mappage entre le type de contenu (nom de fichier) et le message protobuf (contenu du fichier) est fourni dans le tableau suivant :
type de contenu | Message Protobuf |
|---|---|
thèmes d'URL | Olfeo.Database.V.1. Informations sur le thème de domaine exporté |
catégories d'URL | Informations sur la catégorie de domaine exportée Olfeo.Database.V.1 |
catégories d'URL | Olfeo.database.V.1 Informations de domaine exportées |
candidatures | Informations sur l'application exportées par Olfeo.Database.V.1 |
catégories d'applications | Olfeo.Database.V.1 Informations sur la catégorie d'application exportée |
domaines d'application | Olfeo.Database.V.1 Informations sur le domaine de l'application exportées |
plages d'adresses IP d'applications | Olfeo.Database.V.1 Informations sur la plage IP de l'application exportée |
logos d'applications | Olfeo.Database.V.1. Données de logo exportées |
Structure générale des messages Protobuf
Chacun des messages listés ci-dessus est structuré de la même manière.
Le premier élément représente certaines métadonnées relatives au contenu du message. Cela inclut l'heure de création du fichier, ainsi que l'heure de la première et de la dernière mise à jour des éléments qui suivent.
Le second élément est répété si nécessaire et représente l'entrée unique qui fait partie de l'ensemble de la base de données. Chaque entrée, définie comme un sous-message appelé Entrée, inclut l'élément particulier auquel elle fait référence et est suivie des données correspondantes
Par exemple, les entrées du fichier Olfeo.Database.v1.ExportedApplicationIPRangeInfo contiennent trois champs :
application_id qui est l'identifiant unique de l'application associée à cette plage d'adresses IP.
ip_range_id qui est l'identifiant unique de cette plage d'adresses IP.
et enfin, info qui est l'information spécifique qui correspond à cette plage d'adresses IP, à savoir FirstIP et LastIP.
Les messages de métadonnées sont définis dans le fichier common.proto inclus dans cette documentation.
Catégorisation de domaines à l'aide de la base de données Olfeo
Obtenir des informations sur une entrée dans Ekinops OEM, nécessite :
savoir comment hacher la valeur que vous recherchez
implémenter une logique pour récupérer la « bonne » entrée
Champ de domaine dans les données exportées
Dans les deux types de message :
Cela s'applique aux types de messages suivants : olfeo.database.v1.ExportedDomainInfo et olfeo.database.v1.ExportApplicationDomainInfo.
L'algorithme par défaut est xx64 car il représente un juste équilibre entre les besoins de calcul, la sécurité et la rapidité d'exécution.
Obtention de l'algorithme et de la clé de hachage
L'algorithme de hachage et la clé dépendent de l'ensemble de données sur lequel vous travaillez.
Pour nos clients, le point de terminaison d'API Olfeo.database.v1.GetHashInfo peut être appelé pour obtenir l'algorithme de hachage et la clé de hachage spécifiques à vos fichiers.
Cependant, il est judicieux de mettre en œuvre un moyen de vérifier la méthode et la valeur de hachage et de les mettre à jour dans votre produit.
NB : il vous faudra récupérer une clé API d'abord afin d'utiliser ce point de terminaison.
Domaines de hachage
Par exemple, si vous utilisez l'exemple et que vous souhaitez obtenir la catégorie du domaine linuxcommand.org, vous pouvez effectuer l'opération suivante :
# The xxhash library provides an implementation of the xx64 hashing algorithm import xxhash KEY = "14dacd9b-5006-42f5-a8d6-825240a90b56" # This is the static key for all samples DOMAIN = "linuxcommand.org" hash = xxhash.xxh64_hexdigest(KEY + DOMAIN) assert(hash == "9f688147060c5cab")
Nos échantillons de données utilisent toujours le xx64 algorithme de hachage ; la clé de hachage est 14dacd9b-5006- 42f5-a8d6-825240a90b56
Algorithme de hachage : sha1
Pour des raisons historiques, l'ordre entre KEY et DOMAIN est inversé lors de l'utilisation de sha1. Cela signifie que vous devez d'abord hacher le domaine, puis la clé.
Cela peut être utile pour les clients qui migrent du format de fichier existant vers Next Gen.
Afin de garder la base de données gérable compte tenu du nombre de noms de domaine existants sur Internet, la base de données Olfeo utilise une méthode hiérarchique qui permet aux sous-domaines d'hériter de la catégorie de leur domaine parent.
L'algorithme général pour trouver la catégorie d'un domaine particulier consiste à rechercher dans la base de données du nom de domaine complet au domaine de premier niveau, en s'arrêtant à la première correspondance.
jira-frontendbifrost.prod-east.frontend.public.atl-paas.netPar exemple, si vous voulez connaître la catégorie du domaine de cet exemple, vous devez effectuer les recherches suivantes, dans l'ordre :
jirafrontend-bifrost.prod-east.frontend.public.atl-paas.netprod-east.frontend.public.atl-paas.netfrontend.public.atlpaas.netatl-paas.net
Ce processus se poursuit jusqu'à ce qu'une correspondance soit trouvée.
Lorsqu'une correspondance est trouvée, vous devez vérifier le champ de préfixe de l'entrée correspondante. Si la valeur de ce champ est DOMAIN_PREFIX_STATUS_PREFIX, puis la catégorie du domaine ne pas s'appliquent à ses sous-domaines. Si vous recherchez ce domaine en particulier, il s'agit de sa catégorie, mais si vous recherchez un sous-domaine, la catégorie ne s'applique pas et vous devez considérer que le sous-domaine n'est pas classé par la base de données Olfeo
Ce mécanisme existe pour prendre en charge les domaines dont le contenu est très large, tels que les plateformes d'hébergement de blogs, où le contenu de chaque sous-domaine ne peut pas être déduit de sa plate-forme d'hébergement.
Récupération de fichiers
Dans le format de fichier Next Gen, toutes les données doivent être téléchargées via l'interface Olfeao DB. La page MyFiles affiche les fichiers générés pour votre compte et les rend disponibles au téléchargement
Lorsqu'un administrateur Olfeo déclenche la génération d'un fichier, l'archive qui en résulte est automatiquement associée au compte client correspondant et mise à disposition dans cette section. Chaque entrée correspond à une demande de génération spécifique et inclut toutes les métadonnées associées.
Action disponible
Sur cette page, vous pouvez :
télécharger directement les fichiers générés,
ou copiez le lien de téléchargement du client et utilisez-le dans un script pour automatiser le processus.
Ressources disponibles
Accès via un portail
Les ressources suivantes ne peuvent être consultées et téléchargées que via votre interface.
La section supérieure de la page Mes fichiers contient des liens vers des documents de référence connexes :
Exemple de protobuf (.tar.gz): exemple d'archive au format Protobuf.
Schéma Protobuf (.tar.gz): décrit la structure des messages Protobuf.
Documentation sur le format Protobuf (PDF): le document explique comment les fichiers sont organisés, comment les messages Protobuf sont structurés et comment gérer et classer les domaines avec la base de données Olfeo.