KyvShield

Plateforme d'administration

{{ loginError }}

KyvShield © 2024 — Verification d'identite

Dashboard

Vue d'ensemble des sessions actives (derniere 2h)

{{ stat.value }}

{{ stat.label }}

Sessions recentes

Session App Status Steps Platform Date
{{ session.session_id?.substring(0, 12) }}... {{ session.app_id }} {{ session.status }} {{ session.steps_order?.join(', ') || '-' }} {{ session.client?.platform || '-' }} {{ formatDate(session.created_at) }}
Aucune session dans les 2 dernieres heures

Statistiques d'utilisation

{{ statsData.summary.total_sessions || 0 }}
Sessions
{{ (statsData.summary.success_rate || 0).toFixed(1) }}%
Taux succes
{{ statsData.summary.total_failed || 0 }}
Echecs
{{ statsData.summary.avg_duration_ms ? (statsData.summary.avg_duration_ms / 1000).toFixed(1) + 's' : '-' }}
Duree moy.

Sessions par jour

{{ day.date?.substring(5) }}
Succes Echec

Sessions

Rechercher et explorer les sessions de verification

{{ sessionTotal }} session(s) trouvee(s)

Detail de la session

Session ID

{{ sessionDetail.session_id }}

App

{{ sessionDetail.app_id }}

Status

{{ sessionDetail.status }}

Duree

{{ sessionDetail.total_duration_ms ? (sessionDetail.total_duration_ms / 1000).toFixed(1) + 's' : '-' }}

Platform

{{ sessionDetail.client?.platform || '-' }}

Cree le

{{ formatDate(sessionDetail.created_at) }}

Termine le

{{ formatDate(sessionDetail.completed_at) }}

Steps

{{ sessionDetail.steps_order?.join(', ') || '-' }}

{{ sessionTTL(sessionDetail.created_at) === '∞' ? 'Conservation permanente' : sessionTTL(sessionDetail.created_at) === 'Expiree' ? 'Expirée (suppression imminente)' : 'Suppression dans ' + sessionTTL(sessionDetail.created_at) }}

Etapes

{{ idx + 1 }} {{ step.step_type || 'Step ' + (idx+1) }} {{ step.total_frames || 0 }} frames {{ step.duration_ms ? (step.duration_ms/1000).toFixed(1) + 's' : '' }} {{ step.result?.status || step.status }}

Keyframes ({{ getKeyframes(step).length }})

#{{ frame.frame_id }}
Score: {{ (step.result.score * 100).toFixed(0) }}% Live: {{ step.result.is_live ? 'Oui' : 'Non' }} Fraude: {{ step.result.fraud_indicators.join(', ') }}

Resultat final

{{ JSON.stringify(sessionDetail.final_result, null, 2) }}
Session App Status Steps Duree Platform Date TTL
{{ s.session_id?.substring(0, 12) }}... {{ s.app_id }} {{ s.status }} {{ s.steps_order?.join(', ') || '-' }} {{ s.total_duration_ms ? (s.total_duration_ms / 1000).toFixed(1) + 's' : '-' }} {{ s.client?.platform || '-' }} {{ formatDate(s.created_at) }} {{ sessionTTL(s.created_at) }}
Page {{ sessionPage }} / {{ sessionPages }} ({{ sessionTotal }} resultats)

Applications

Gerer les applications et cles API

{{ app.name }}

{{ app.app_id }}
{{ app.status }}
Cles API
{{ app.api_keys?.length || 0 }}
Webhook
{{ app.settings?.webhook_url || 'Non configure' }}
Plan
{{ app.billing?.plan || 'free' }}

Aucune application

{{ detailApp.name }}

{{ detailApp.status }} {{ detailApp.billing?.plan || 'free' }}

{{ detailApp.app_id }}

Informations generales

Types de documents & options

Documents autorises

Cles API

Nom Cle (masquee) Status Creee Actions
{{ k.name }} {{ maskApiKey(k.api_key) }} {{ k.status }} {{ formatDate(k.created_at) }}
Aucune cle API

Cle regeneree avec succes — Copiez-la maintenant, elle ne sera plus affichee

{{ rotatedNewKey }}

Utilisation par cle API

Cle Requetes totales Derniere utilisation Ce mois
{{ k.name }} {{ k.usage_stats?.total_requests || 0 }} {{ k.usage_stats?.last_used_at ? formatDate(k.usage_stats.last_used_at) : 'Jamais' }} -

Securite — {{ selectedKey.name }}

Restrictions d'acces pour cette cle

Cles temporaires

{{ tempKeysTotal }} cle(s)
Cle Nom Expire Utilisations Status
{{ tk.temp_key?.substring(0, 12) }}... {{ tk.name || '-' }} {{ formatDate(tk.expires_at) }} {{ tk.used_count || 0 }} revoque expire active
Page {{ tempKeysPage }} / {{ tempKeysPages }}
Aucune cle temporaire

Echecs Webhook (24h)

{{ webhookFailuresTotal }} echec(s)
Event Session URL Tentatives Erreur Date
{{ wf.event }} {{ wf.session_id?.substring(0, 10) }}... {{ wf.webhook_url }} {{ wf.attempts }} {{ wf.last_error }} {{ formatDate(wf.created_at) }}
Page {{ webhookFailuresPage }} / {{ webhookFailuresPages }}
Aucun echec webhook dans les 24 dernieres heures

Utilisateurs de cette application

{{ appUsers.length }} utilisateur(s)
Nom Email Role Status Actions
{{ u.name }} {{ u.email }} {{ u.role }} {{ u.status }}

Aucun utilisateur attache a cette application

Statut & Actions

{{ detailApp.status === 'active' ? 'Application active' : detailApp.status === 'suspended' ? 'Application suspendue' : 'Application revoquee' }}

{{ detailApp.status === 'active' ? 'Les cles API de cette application sont fonctionnelles.' : detailApp.status === 'suspended' ? 'Les cles API sont temporairement desactivees.' : 'Les cles API sont desactivees. Reactivez pour restaurer l\'acces.' }}

Configuration Tarifs

{{ editingApp?.app_name || editingApp?.name }} — {{ editingApp?.app_id }}

Quotas mensuels inclus

Operations gratuites par mois. Au-dela, le prix de depassement s'applique.

Prix de depassement (XOF)

Prix par operation au-dela du quota mensuel inclus.

XOF

Simulateur de cout

Entrez le volume prevu par jour ou par mois pour estimer le cout mensuel.

Saisie par :
Operation Volume {{ simMode === 'day' ? '/jour' : '/mois' }} Total/mois Inclus Depassement Cout
{{ field.label }} {{ simMonthly(field.key) }} {{ simIncluded(field.key) }} {{ simOverage(field.key) }} {{ formatCurrency(simCost(field.key)) }}
Cout mensuel estime {{ formatCurrency(totalSimulatedCost) }} XOF

Tarifs enregistres avec succes

Plan {{ pricingForm.plan }} — les nouveaux tarifs sont actifs immediatement.

Documents

Types de documents configures dans le systeme

{{ doc.doc_type }} {{ doc.enabled ? 'actif' : 'inactif' }}

{{ doc.name }}

{{ doc.country_name }} — {{ doc.document_category_label }}
Recto Verso {{ doc.recto?.fields?.length || 0 }} champs recto {{ doc.verso?.fields?.length || 0 }} champs verso

Aucun document configure

{{ selectedDocument.name || selectedDocument.doc_type }}

{{ selectedDocument.doc_type }}

Configuration complete

{{ JSON.stringify(selectedDocument, null, 2) }}

Utilisateurs

Gerer les comptes utilisateurs

Nom Email Role App Status Actions
{{ u.name }} {{ u.email }} {{ u.role }} {{ appName(u.app_id) }} ({{ u.app_id }}) - {{ u.status }}

Settings LLM

Configuration des providers IA et routage des requetes

Stats en temps reel (depuis redemarrage)

Route:Provider Requetes Succes Echecs API Tokens in Tokens out Latence moy.
{{ key }} {{ stat.total_requests }} {{ stat.successes }} {{ stat.api_failures }} {{ formatNumber(stat.total_input_tokens) }} {{ formatNumber(stat.total_output_tokens) }} {{ stat.total_requests > 0 ? Math.round(stat.total_latency_ms / stat.total_requests) + 'ms' : '-' }}

Historique par jour / provider

Date Route Provider Modele Requetes Succes Echecs Tokens in Tokens out Latence moy.
{{ stat.date }} {{ stat.route }} {{ stat.provider }} {{ stat.model?.split('/').pop() }} {{ stat.total_requests }} {{ stat.successes }} {{ stat.api_failures }} {{ formatNumber(stat.total_input_tokens) }} {{ formatNumber(stat.total_output_tokens) }} {{ stat.avg_latency_ms ? Math.round(stat.avg_latency_ms) + 'ms' : '-' }}

Routage des requetes

{{ i + 1 }}

Providers & Cles API

Fallback automatique

Analyse & Prompts

Chargement des settings...

Facturation

Consommation et couts par application

{{ formatCurrency(billingData.global_total) }} XOF
{{ selectedMonthData.usage.recto_analyses + selectedMonthData.usage.verso_analyses }}
Documents
{{ selectedMonthData.usage.liveness_sessions }}
Sessions
{{ selectedMonthData.usage.full_kyc }}
KYC Complets
{{ formatCurrency(selectedMonthData.costs.total) }}
{{ selectedMonthData.currency }} ce mois
{{ selectedMonthData.payment_status === 'paid' ? 'Paye' : 'Impaye' }} Paye le {{ formatDate(selectedMonthData.paid_at) }}
Paiement confirme
Operation Utilise Inclus Depassement Prix unit. Cout
{{ row.label }} {{ row.used }} {{ row.included }} {{ row.overage }} {{ row.unitPrice }} XOF {{ formatCurrency(row.cost) }}
Total {{ formatCurrency(selectedMonthData.costs.total) }} XOF

Historique mensuel

{{ m.month }}
{{ formatCurrency(m.costs.total) }}

Aucune donnee de facturation

Nouvel Utilisateur

Nouvelle Application

Nouvelle Cle API

Cle creee avec succes — Copiez-la maintenant, elle ne sera plus affichee

{{ generatedKey }}

Modifier l'utilisateur

Generer une cle temporaire

Cle temporaire generee — Copiez-la maintenant

{{ generatedTempKey }}
{{ toast.message }}