Şifreli sır paylaşımı için REST API

Şifreli, kendiliğinden imha eden sırları programatik olarak oluştur ve al.

Bu API önceden şifrelenmiş şifreli metin saklar. Şifreleme, API çağrılmadan önce istemci tarafında gerçekleşmelidir. Sunucu hiçbir zaman düz metin görmez.

Çoğu kullanım senaryosunda CLI veya GitHub Action şifrelemeyi otomatik olarak yönetir.

Temel URL

Temel URL
https://www.vaulted.fyi/api
POST/api/secrets

Son kullanma ve görüntüleme limiti meta verileriyle şifreli metin saklar. Bir sır kimliği döndürür.

İstek gövdesi

AlanTürZorunluDeğerler
ciphertextstringevetmaks. 4096 karakter
ivstringevetbaşlatma vektörü
maxViewsnumberevet0, 1, 3, 5, 10 (0 = sınırsız, viewsRemaining için -1 döndürür)
ttlnumberevet3600, 7200, 21600, 43200, 86400, 259200, 604800, 1209600, 2592000 (saniye)
hasPassphrasebooleanhayırvarsayılan false
Örnek istek
curl -X POST https://www.vaulted.fyi/api/secrets \
  -H "Content-Type: application/json" \
  -d '{
    "ciphertext": "encrypted-base64-data",
    "iv": "initialization-vector",
    "maxViews": 1,
    "ttl": 86400,
    "hasPassphrase": false
  }'
Yanıt
{ "id": "abc123" }

Hata yanıtları

DurumAçıklama
400Doğrulama hatası (eksik veya geçersiz alanlar)
429Hız limiti aşıldı
500Dahili sunucu hatası
GET/api/secrets/[id]

Şifreli metni alır ve bir görüntüleme kullanır. Tüm görüntülemeler tüketildiğinde sır silinir.

Her istek bir görüntüleme kullanır. Kullanmadan kontrol etmek için status endpoint'ini kullan.

Örnek istek
curl https://www.vaulted.fyi/api/secrets/abc123
Yanıt
{
  "ciphertext": "encrypted-base64-data",
  "iv": "initialization-vector",
  "hasPassphrase": false,
  "viewsRemaining": 2
}

viewsRemaining, sınırsız görüntülemeli sırlarda -1'dir (maxViews = 0).

Hata yanıtları

DurumAçıklama
404Sır bulunamadı veya süresi doldu
429Hız limiti aşıldı
500Dahili sunucu hatası
GET/api/secrets/[id]/status

Bir görüntüleme kullanmadan sırrın var olup olmadığını ve kaç görüntülemenin kaldığını kontrol eder.

Örnek istek
curl https://www.vaulted.fyi/api/secrets/abc123/status
Yanıt
{
  "exists": true,
  "viewsRemaining": 3,
  "hasPassphrase": false
}

viewsRemaining, sınırsız görüntülemeli sırlarda -1'dir (maxViews = 0).

Hata yanıtları

DurumAçıklama
404Sır bulunamadı veya süresi doldu
500Dahili sunucu hatası

Hız limitleri

EndpointLimitZaman penceresi
POST /api/secrets20 istek10 dakika
GET /api/secrets/[id]60 istek10 dakika

Hız limitleri IP adresi başınadır. Limiti aşmak 429 döndürür.