Aller au contenu

Utilisation

L'utilisation des APIs publiques est conditionné à l'achat d'une licence.

Les informations techniques relatives à l'utilisation des APIs publiques sont accessibles dans la page d'administration de groupe de travail, pour les utilisateurs ayant le rôle administrateur de groupe de travail

Find Client Id

On y retrouvera les informations nécessaires à la gestion de authentifications pour l'invocation des APIs publiques:

  • Url de l'API (<base_url>) exemple : https://weu-mining-api.igrafxcloud.com
  • Url d'authentification (<auth_url>) exemple : https://identity-emea.igrafxcloud.com/realms/logpickr-api-weu-mining
  • ID technique du groupe de travail (<client_id>)
  • clé privée du groupe de travail (<client_secret>)

Le principe général consiste à :

  • générer un jeton d'authentification (durée limitée)
  • invoquer une API publique en incluant un jeton valide en entête (header Authorization)

Génération d'un jeton

Exemple appel d'API avec curl:

curl -X POST \
  <auth_url>/protocol/openid-connect/token \
  --data "grant_type=client_credentials" \
  --data "client_id=<client_id>" \
  --data "client_secret=<client_secret>"
curl -X POST \
  https://identity-emea.igrafxcloud.com/realms/logpickr-api-weu-mining/protocol/openid-connect/token \
  --data "grant_type=client_credentials" \
  --data "client_id=1026d505-6945-4aa9-b3cd-08a368033a68" \
  --data "client_secret=b9c8872a-3109-40ef-9cdb-98a68b98441c"

Cet appel va générer une réponse json du type :

{
  "upgraded":false,
  "access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJyRGk5cE52elJCU01PQldVOUEtY0VLY0hwZ3Z5WGhoODRsZVBFbjF3TkVjIn0.eyJleHAiOjE1ODc2NTgwMzMsImlhdCI6MTU4NzY1NzczMywianRpIjoiYWIwYTA0OGUtMTM2My00ODBlLWFjNjAtZWIyZDAwZjk1ODZhIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDoyODA4MC9hdXRoL3JlYWxtcy9sb2dwaWNrciIsImF1ZCI6InNkay1hcGktYWNjZXNzIiwic3ViIjoiMmI3MDBmZDktZDExYy00ZjZmLWI1ZDctYWFmYTAzNzMwMDRmIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoic2RrLWFwaS1hY2Nlc3MiLCJzZXNzaW9uX3N0YXRlIjoiNGM4NWYyMTItN2UzMC00M2E4LTg3N2QtY2Q0ZDE5NTY4Mjc2IiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwOi8vbG9jYWxob3N0OjgwODAiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJzZGstYXBpLWFjY2VzcyI6eyJyb2xlcyI6WyJ1bWFfcHJvdGVjdGlvbiJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwiYXV0aG9yaXphdGlvbiI6eyJwZXJtaXNzaW9ucyI6W3sicnNpZCI6ImYxNTIyYzhkLTQ2ZTQtNDMzZC04NmJjLTBjMTk2MjIxMTE2ZiIsInJzbmFtZSI6IkRlZmF1bHQgUmVzb3VyY2UifV19LCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJjbGllbnRJZCI6InNkay1hcGktYWNjZXNzIiwiY2xpZW50SG9zdCI6IjE3Mi4yOC4wLjEiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6InNlcnZpY2UtYWNjb3VudC1zZGstYXBpLWFjY2VzcyIsImNsaWVudEFkZHJlc3MiOiIxNzIuMjguMC4xIn0.i9SPI-lOl6FhaKfyWIlGdxQeyv9qHve24DVSMur0SbCPkfjbHaSh2oZY5fTu7atB0gnmqmwAcKAYY6kPgfq72xRgDfjpfS9lhki3eG_0UF1-QZ7T3ETpcUuxZFjJD0xLCyhKsjVxEQjEY6A9w5tHKW1YEIfTScfL0Akdigy9HUmW57-jcwMqaRp0fcMlGw1-n_5TuzSsIAl07WfsHDLhINrcctUxnk4sZJC4tYhLUQ6vBJ3lwNodKD6cZawd32RJWTbiZY2BCQefQKGtt3VHQ7c9HYp9apQb-YlM8mrrC_Od0Mpqnfr5IJmvHhnFdcfwrOvldkKa1qzoCA3S57kbwA",
  "expires_in":300,
  "refresh_expires_in":1800,
  "refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJiZDMzY2UwOC1hMmJhLTQwNDItYTJmOC1iOTIwN2QxNzc4NDcifQ.eyJleHAiOjE1ODc2NTk1MzMsImlhdCI6MTU4NzY1NzczMywianRpIjoiNGVjZjJmZjktOWU3OC00OGEwLWE5NzQtZGVlMTZjMTYyMDE1IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDoyODA4MC9hdXRoL3JlYWxtcy9sb2dwaWNrciIsImF1ZCI6Imh0dHA6Ly9sb2NhbGhvc3Q6MjgwODAvYXV0aC9yZWFsbXMvbG9ncGlja3IiLCJzdWIiOiIyYjcwMGZkOS1kMTFjLTRmNmYtYjVkNy1hYWZhMDM3MzAwNGYiLCJ0eXAiOiJSZWZyZXNoIiwiYXpwIjoic2RrLWFwaS1hY2Nlc3MiLCJzZXNzaW9uX3N0YXRlIjoiNGM4NWYyMTItN2UzMC00M2E4LTg3N2QtY2Q0ZDE5NTY4Mjc2IiwiYXV0aG9yaXphdGlvbiI6eyJwZXJtaXNzaW9ucyI6W3sicnNpZCI6ImYxNTIyYzhkLTQ2ZTQtNDMzZC04NmJjLTBjMTk2MjIxMTE2ZiIsInJzbmFtZSI6IkRlZmF1bHQgUmVzb3VyY2UifV19LCJzY29wZSI6InByb2ZpbGUgZW1haWwifQ.fqNYxzppsCgoFWmY1KBw6_iFT377_njEqGM7KTPKjoE",
  "token_type":"Bearer",
  "not-before-policy":0,
  "session_state": "fb4e04b6-79f7-4d9d-aa49-5218f010cf67",
  "scope": "profile email mining-weu-ui-clientscope"
}

Page de référence : https://www.keycloak.org/docs/latest/authorization_services/#_service_pushing_claims

Invocation d'une API publique

C'est la valeur de access_token de l'appel décrit précédemment qui devra être récupérée et utilisée dans chaque appel d'API publique avec le header Authorization et le préfixe Bearer.

Exemple d'appel d'api publique :

curl -X GET "<base_url>/pub/projects" \
-H "accept: application/json" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJyRGk5cE52elJCU01PQldVOUEtY0VLY0hwZ3Z5WGhoODRsZVBFbjF3TkVjIn0.eyJleHAiOjE1ODc5Njk5OTcsImlhdCI6MTU4Nzk2OTY5NywianRpIjoiMzJmODQ3NDEtZjM2ZS00ODM4LWE2YmItZDVkMjFhN2ZiN2U4IiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDoyODA4MC9hdXRoL3JlYWxtcy9sb2dwaWNrciIsImF1ZCI6InNkay1hcGktYWNjZXNzIiwic3ViIjoiMmI3MDBmZDktZDExYy00ZjZmLWI1ZDctYWFmYTAzNzMwMDRmIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoic2RrLWFwaS1hY2Nlc3MiLCJzZXNzaW9uX3N0YXRlIjoiM2Q1MDYyMTEtYzNkYy00MDQwLWIzODAtYWNlZDE0YjU4NWJmIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwOi8vbG9jYWxob3N0OjgwODAiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJzZGstYXBpLWFjY2VzcyI6eyJyb2xlcyI6WyJ1bWFfcHJvdGVjdGlvbiJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwiYXV0aG9yaXphdGlvbiI6eyJwZXJtaXNzaW9ucyI6W3sicnNpZCI6ImYxNTIyYzhkLTQ2ZTQtNDMzZC04NmJjLTBjMTk2MjIxMTE2ZiIsInJzbmFtZSI6IkRlZmF1bHQgUmVzb3VyY2UifV19LCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJjbGllbnRJZCI6InNkay1hcGktYWNjZXNzIiwiY2xpZW50SG9zdCI6IjE3Mi4zMC4wLjEiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6InNlcnZpY2UtYWNjb3VudC1zZGstYXBpLWFjY2VzcyIsImNsaWVudEFkZHJlc3MiOiIxNzIuMzAuMC4xIn0.T9yzVUrkwKl8WGBzwbpsjmJNoobrg3yw55lAnygJYpuc1PFXcPI_FZ8Eg9zJLxRUr2nei2VNIrdFu2vm0SFsg49v4pxhGdCCvDmx9kACEmOfaazSYL_3fOAsluT6gJpT23dbsriYgRB8Kdb1-Bqeq31qVESOkxkJdR4ITKr0yO7Kp9NTWRL125K90SWvx5eOR6-oGD6ToowmN2WthOgbSGgWNpHykItiSV1C9V6r8cSwPKhWcl4WxjmQaBo4PRFglr9lAYWR4NqxR2kTk34ZVRAn47pyCeGnWCWUss0F-sFcOFvT5jDAQglcDMKF8Ev-Rm3dSCobEjS6GoyJbILpeQ"

Accès JDBC

les APIs publiques fournissent la liste des tables auxquelles vous avez accès, des requêtes complexes peuvent être effectuées en SQL via JDBC.

La syntaxe SQL utilisable est décrite dans la documentation officielle Druid SQL

Le Driver JDBC est Avatica

L'url JDBC sera : "jdbc:avatica:remote:url=http://<base_url>:8082/druid/v2/sql/avatica/"

Exemple : "jdbc:avatica:remote:url=http://api.app.logpickr.com:8082/druid/v2/sql/avatica/"

Les identifiants de connexion correspondent à ceux du groupe de travail auquel vous avez accès :

  • identifiant : ID technique du groupe de travail (<client_id>), fourni dans la page API de l'administration du groupe de travail (voir ci-dessus)
  • mot de passe : clé privée du groupe de travail (<client_secret>), fourni dans la page API de l'administration du groupe de travail (voir ci-dessus)

plus de détails : https://druid.apache.org/docs/latest/querying/sql.html#jdbc

La structure des tables est décrite dans le chapitre suivant

SDK

Un SDK sera disponible bientôt pour vous permettre d'accéder aux structures et requêtes Logpickr via Python.