API Secrets
Gérez les secrets avec chiffrement côté client et architecture Zero Knowledge en utilisant nos SDK officiels.
🔐 Aperçu
L'API Secrets vous permet de créer, récupérer, lister et supprimer des secrets chiffrés à travers nos librairies clientes officielles. Tout le chiffrement, l'authentification et les détails techniques sont gérés automatiquement par les SDK.
SDK Officiels :
- Outil CLI C# - Interface en ligne de commande multiplateforme
- JavaScript SDK - Pour Node.js et les applications web modernes
- JavaScript CDN - Intégration navigateur simple
- Python SDK - Client Python asynchrone
📋 Lister les Secrets
Obtenez les secrets de votre entreprise avec pagination automatique.
Utilisation SDK
sharokey list --status active --limit 10const secrets = await client.listSecrets({ status: 'active', limit: 10 });const secrets = await Sharokey.list({ status: 'active', limit: 10 });secrets = await client.list_secrets(status='active', limit=10)Format de Réponse
{
"success": true,
"message": "Secrets récupérés avec succès",
"data": [
{
"slug": "ABC123XY",
"description": "Mot de passe base de données",
"message": "Manipuler avec précaution",
"creator": "[email protected]",
"maximum_views": 1,
"current_views": 0,
"expiration": "2025-08-11T18:52:37.000000Z",
"has_password": false,
"has_attachments": true,
"attachments_count": 2,
"is_expired": false,
"status": "active",
"created_at": "2025-08-10T18:52:37.000000Z",
"updated_at": "2025-08-10T18:52:37.000000Z"
}
],
"pagination": {
"current_page": 1,
"per_page": 50,
"total": 125,
"last_page": 3
}
}✨ Créer un Secret
Créez un nouveau secret chiffré avec pièces jointes optionnelles.
Utilisation SDK
sharokey create "Mon contenu secret" --hours 24 --views 1 --description "Identifiants base de données"const secret = await client.createSecret("Mon contenu secret", {
hours: 24,
views: 1,
description: "Identifiants base de données",
password: "secure123"
});const secret = await Sharokey.create("Mon contenu secret", 24, 1, {
description: "Identifiants base de données",
password: "secure123"
});secret = await client.create("Mon contenu secret",
hours=24,
views=1,
description="Identifiants base de données",
password="secure123"
)Format de Réponse
{
"success": true,
"message": "Secret créé avec succès",
"data": {
"slug": "ABC123XY",
"description": "Identifiants base de données",
"message": "À utiliser dans les 24 heures",
"expires_in_hours": 24,
"maximum_views": 1,
"current_views": 0,
"expiration": "2025-08-11T18:52:37.000000Z",
"has_attachments": true,
"attachments_count": 1,
"share_url": "https://passlink.domaindev/ABC123XY#keyB_part_here",
"created_at": "2025-08-10T18:52:37.000000Z"
}
}👁️ Obtenir les Détails d'un Secret
Récupérez les métadonnées d'un secret spécifique (sans déchiffrer le contenu).
Utilisation SDK
sharokey get ABC123XY --details-onlyconst details = await client.getSecretDetails("ABC123XY");const details = await Sharokey.getDetails("ABC123XY");details = await client.get_details("ABC123XY")Format de Réponse
{
"success": true,
"data": {
"slug": "ABC123XY",
"description": "Identifiants base de données",
"message": "À utiliser dans les 24 heures",
"creator": "[email protected]",
"maximum_views": 1,
"current_views": 0,
"expiration": "2025-08-11T18:52:37.000000Z",
"has_password": true,
"has_attachments": true,
"attachments": [
{
"name": "config.json"
}
],
"captcha": false,
"otp_type": "email",
"ip_whitelist": "192.168.1.0/24,10.0.0.1",
"geolocation": "FR,US,CA",
"is_expired": false,
"status": "active",
"share_url": "https://passlink.domaindev/ABC123XY",
"created_at": "2025-08-10T18:52:37.000000Z",
"updated_at": "2025-08-10T18:52:37.000000Z"
}
}🗑️ Supprimer un Secret
Supprimez un secret en effaçant son contenu et en l'expirant immédiatement.
Utilisation SDK
sharokey delete ABC123XYawait client.deleteSecret("ABC123XY");await Sharokey.delete("ABC123XY");await client.delete("ABC123XY")Format de Réponse
{
"success": true,
"message": "Secret supprimé avec succès",
"data": null
}📊 Statistiques d'Entreprise
Obtenez les statistiques d'utilisation de votre entreprise.
Utilisation SDK
sharokey statsconst stats = await client.getStats();const stats = await Sharokey.getStats();stats = await client.get_stats()Format de Réponse
{
"success": true,
"message": "Statistiques des secrets récupérées avec succès",
"data": {
"total_secrets": 1247,
"active_secrets": 89,
"expired_secrets": 1158,
"total_views": 5432,
"secrets_with_password": 156,
"secrets_created_today": 12,
"secrets_created_this_week": 87,
"secrets_created_this_month": 234
}
}🚨 Réponses d'Erreur
Tous les SDK gèrent ces erreurs automatiquement et fournissent des objets d'erreur structurés.
Erreurs d'Authentification
{
"success": false,
"error": {
"code": "AUTHENTICATION_ERROR",
"message": "Token invalide ou expiré"
}
}Erreurs de Validation
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Le champ content est requis",
"details": {
"content": ["Le champ content est requis"],
"expiration": ["Doit être entre 1 et 1000 heures"]
}
}
}Quota Dépassé
{
"success": false,
"error": {
"code": "QUOTA_EXCEEDED",
"message": "Vous avez atteint le nombre maximum de secrets autorisés pour votre plan actuel."
}
}Non Trouvé
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Secret non trouvé ou expiré"
}
}Permission Refusée
{
"success": false,
"error": {
"code": "PERMISSION_DENIED",
"message": "Permissions insuffisantes pour créer des secrets"
}
}🔐 Sécurité & Chiffrement
Architecture Zero Knowledge
Tous les SDK implémentent le chiffrement côté client automatiquement :
- Algorithme : AES-256-GCM avec dérivation de clé PBKDF2
- Division de clé : Le serveur stocke keyA, le fragment d'URL contient keyB
- IV/Salt : Générés automatiquement par secret
- Aucun texte clair : Le serveur ne voit jamais le contenu de vos secrets
Fonctionnalités de Sécurité SDK
- Gestion automatique des tokens et stockage sécurisé
- Chiffrement côté client avant transmission
- Génération et division sécurisées des clés
- Validation et assainissement des entrées
- Gestion d'erreurs sans exposition de données
🔗 Documentation Liée
- Documentation CLI C# - Guide de l'interface en ligne de commande
- JavaScript SDK - Intégration navigateur et Node.js
- Python SDK - Client Python asynchrone
- Pièces Jointes - Gestion des pièces jointes
- Authentification - Gestion des tokens API
