Skip to content

API des Demandes de Secrets

Créez, gérez et suivez les demandes de secrets pour solliciter des informations sécurisées de tiers en utilisant nos SDK officiels.

🔐 Aperçu

L'API des Demandes de Secrets vous permet de créer des demandes qui sollicitent le partage sécurisé de secrets. Les destinataires peuvent répondre à vos demandes via une interface web sécurisée, et les secrets partagés seront chiffrés en utilisant l'architecture Zero Knowledge.

SDK Officiels :

📋 Lister les Demandes de Secrets

Obtenez les demandes de secrets de votre entreprise avec pagination automatique.

Utilisation SDK

bash
sharokey list-requests --status active --limit 10
javascript
const requests = await client.listSecretRequests({ status: 'active', limit: 10 });
javascript
const requests = await Sharokey.listRequests({ status: 'active', limit: 10 });
python
requests = await client.list_requests(status='active', limit=10)

Format de Réponse

json
{
  "success": true,
  "message": "Demandes de secrets récupérées avec succès",
  "data": [
    {
      "id": 123,
      "token": "req_ABC123XY",
      "message": "Merci de partager les identifiants de base de données",
      "description": "Accès DB production nécessaire",
      "secret_expiration_hours": 24,
      "request_expiration_hours": 48,
      "maximum_views": 1,
      "email_to": "[email protected]",
      "email_reply": "[email protected]",
      "creator": "[email protected]",
      "secret_expiration": "2025-08-12T18:52:37.000000Z",
      "request_expiration": "2025-08-11T18:52:37.000000Z",
      "status": "active",
      "url": "https://passlink.domaindev/request/req_ABC123XY",
      "created_at": "2025-08-10T18:52:37.000000Z",
      "updated_at": "2025-08-10T18:52:37.000000Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "per_page": 50,
    "total": 25,
    "last_page": 1
  }
}

✨ Créer une Demande de Secret

Créez une nouvelle demande de secret pour solliciter des informations sécurisées d'autrui.

Utilisation SDK

bash
sharokey create-request --message "Merci de partager les identifiants" --description "Accès DB" --secret-hours 24 --request-hours 48 --max-views 1 --email-to "[email protected]"
javascript
const request = await client.createSecretRequest({
  message: "Merci de partager les identifiants de base de données",
  description: "Accès DB production nécessaire",
  secretExpirationHours: 24,
  requestExpirationHours: 48,
  maximumViews: 1,
  emailTo: "[email protected]",
  emailReply: "[email protected]"
});
javascript
const request = await Sharokey.createRequest({
  message: "Merci de partager les identifiants de base de données",
  description: "Accès DB production nécessaire",
  secretExpirationHours: 24,
  requestExpirationHours: 48,
  maximumViews: 1,
  emailTo: "[email protected]"
});
python
request = await client.create_request(
  message="Merci de partager les identifiants de base de données",
  description="Accès DB production nécessaire",
  secret_expiration_hours=24,
  request_expiration_hours=48,
  maximum_views=1,
  email_to="[email protected]",
  email_reply="[email protected]"
)

Format de Réponse

json
{
  "success": true,
  "message": "Demande de secret créée avec succès",
  "data": {
    "id": 123,
    "token": "req_ABC123XY",
    "message": "Merci de partager les identifiants de base de données",
    "description": "Accès DB production nécessaire",
    "secret_expiration_hours": 24,
    "request_expiration_hours": 48,
    "maximum_views": 1,
    "email_to": "[email protected]",
    "email_reply": "[email protected]",
    "creator": "[email protected]",
    "secret_expiration": "2025-08-12T18:52:37.000000Z",
    "request_expiration": "2025-08-11T18:52:37.000000Z",
    "status": "active",
    "url": "https://passlink.domaindev/request/req_ABC123XY",
    "created_at": "2025-08-10T18:52:37.000000Z"
  }
}

👁️ Obtenir les Détails d'une Demande de Secret

Récupérez les détails d'une demande de secret spécifique.

Utilisation SDK

bash
sharokey get-request 123
javascript
const request = await client.getSecretRequest(123);
javascript
const request = await Sharokey.getRequest(123);
python
request = await client.get_request(123)

Format de Réponse

json
{
  "success": true,
  "data": {
    "id": 123,
    "token": "req_ABC123XY",
    "message": "Merci de partager les identifiants de base de données",
    "description": "Accès DB production nécessaire",
    "secret_expiration_hours": 24,
    "request_expiration_hours": 48,
    "maximum_views": 1,
    "email_to": "[email protected]",
    "email_reply": "[email protected]",
    "creator": "[email protected]",
    "secret_expiration": "2025-08-12T18:52:37.000000Z",
    "request_expiration": "2025-08-11T18:52:37.000000Z",
    "status": "active",
    "url": "https://passlink.domaindev/request/req_ABC123XY",
    "created_at": "2025-08-10T18:52:37.000000Z",
    "updated_at": "2025-08-10T18:52:37.000000Z"
  }
}

🗑️ Supprimer une Demande de Secret

Supprimez une demande de secret et invalidez son URL publique.

Utilisation SDK

bash
sharokey delete-request 123
javascript
await client.deleteSecretRequest(123);
javascript
await Sharokey.deleteRequest(123);
python
await client.delete_request(123)

Format de Réponse

json
{
  "success": true,
  "message": "Demande de secret supprimée avec succès",
  "data": null
}

📊 Statistiques des Demandes de Secret

Obtenez les statistiques d'utilisation des demandes de secret de votre entreprise.

Utilisation SDK

bash
sharokey request-stats
javascript
const stats = await client.getSecretRequestStatistics();
javascript
const stats = await Sharokey.requestStats();
python
stats = await client.request_stats()

Format de Réponse

json
{
  "success": true,
  "message": "Statistiques des demandes de secret récupérées avec succès",
  "data": {
    "total_requests": 156,
    "active_requests": 23,
    "expired_requests": 133,
    "requests_created_today": 5,
    "requests_created_this_week": 18,
    "requests_created_this_month": 42,
    "average_response_time_hours": 6.4
  }
}

🚨 Réponses d'Erreur

Tous les SDK gèrent ces erreurs automatiquement et fournissent des objets d'erreur structurés.

Erreurs d'Authentification

json
{
  "success": false,
  "error": {
    "code": "AUTHENTICATION_ERROR",
    "message": "Le token est invalide ou expiré"
  }
}

Erreurs de Validation

json
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Le champ secret_expiration_hours doit être entre 1 et 1000",
    "details": {
      "secret_expiration_hours": ["Doit être entre 1 et 1000"],
      "maximum_views": ["Doit être entre 1 et 10"],
      "email_to": ["Doit être une adresse email valide"]
    }
  }
}

Quota Dépassé

json
{
  "success": false,
  "error": {
    "code": "QUOTA_EXCEEDED", 
    "message": "Vous avez atteint le nombre maximum de demandes de secret autorisées pour votre plan actuel."
  }
}

Non Trouvé

json
{
  "success": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Demande de secret non trouvée ou expirée"
  }
}

Permission Refusée

json
{
  "success": false,
  "error": {
    "code": "PERMISSION_DENIED",
    "message": "Permissions insuffisantes pour créer des demandes de secret"
  }
}

📝 Paramètres de Demande

Création de Demande de Secret

ParamètreTypeRequisDescriptionValidation
messagestringNonMessage affiché au destinataireMax 255 caractères
descriptionstringNonDescription interne pour votre référenceMax 255 caractères
secret_expiration_hoursintegerNonHeures avant expiration du secret partagé1-1000, défaut: 24
request_expiration_hoursintegerNonHeures avant expiration de la demande1-1000, défaut: 48
maximum_viewsintegerNonVues maximum pour le secret partagé1-10, défaut: 1
email_tostringNonAdresse email pour envoyer la demandeFormat email valide
email_replystringNonEmail de réponse pour les notificationsFormat email valide

Paramètres de Filtrage

ParamètreTypeDescription
statusstringFiltrer par statut: active, expired
creatorstringFiltrer par adresse email du créateur
searchstringRechercher dans les champs message et description
limitintegerNombre de résultats par page (défaut: 50, max: 100)
pageintegerNuméro de page pour la pagination

🔐 Sécurité et Workflow

Comment Fonctionnent les Demandes de Secret

  1. Créer une Demande : Vous créez une demande de secret avec vos exigences
  2. Partager l'URL : Envoyez l'URL générée à votre contact (email optionnel)
  3. Réponse du Destinataire : Il visite l'URL et partage son secret de manière sécurisée
  4. Zero Knowledge : Leur secret est chiffré côté client avant soumission
  5. Notification : Vous recevez une notification quand le secret est partagé
  6. Accès Sécurisé : Accédez au secret partagé via votre tableau de bord

Fonctionnalités de Sécurité

  • Architecture Zero Knowledge : Les secrets des destinataires sont chiffrés côté client
  • Expiration Basée sur le Temps : Les demandes et les secrets résultants peuvent expirer
  • Limites de Vues : Contrôlez combien de fois le secret partagé peut être consulté
  • Notifications Email : Emails automatisés optionnels pour la livraison des demandes
  • Piste d'Audit : Journalisation complète de la création et des réponses aux demandes

🔗 Documentation Associée

Released under the MIT License.