Rapports PDF (un par banque)
Résultats extraits (vérifiables / éditables)
Vérifie les montants avant export — corrige n'importe quelle cellule directement. Les modifications se répercutent automatiquement dans le Dashboard.
Comptes sociaux
Analyses
Ratios et structure
Comparaison par banque
Structure du PNB (%)
Rentabilité : ROE et ROA (%)
Structure des frais généraux (%)
Tableau comparatif
Vert : meilleure valeur de la ligne. Rouge : moins bonne valeur. Pour les coûts et les créances douteuses, la plus basse est la meilleure.
Export Excel
Piste d'audit
Journal des connexions (réussies et échouées), déconnexions, suppressions et modifications sensibles (mot de passe, rôles, création d'utilisateurs, paramètres). Les entrées ne peuvent être ni modifiées ni supprimées depuis l'application. Réservé aux administrateurs — affiche les 1 000 événements les plus récents.
| Date / heure | Utilisateur | Action | Élément | Détails |
|---|
SQL à exécuter une seule fois (création de la table audit_log)
create table if not exists audit_log (
id bigint generated always as identity primary key,
created_at timestamptz not null default now(),
user_id uuid,
user_email text,
action text not null,
entity text,
details jsonb,
user_agent text
);
alter table audit_log enable row level security;
-- Tout utilisateur connecté peut écrire ses propres événements
create policy "Audit insertion connectés" on audit_log for insert to authenticated
with check (user_id = auth.uid());
-- Les tentatives de connexion échouées (avant authentification)
create policy "Audit insertion échec connexion" on audit_log for insert to anon
with check (action = 'ECHEC_CONNEXION' and user_id is null);
-- Lecture réservée aux administrateurs
create policy "Audit lecture admin" on audit_log for select to authenticated
using (exists (select 1 from profiles p where p.id = auth.uid() and p.role = 'admin'));
-- Aucune policy update/delete : le journal est en ajout seul (immuable depuis l'application)
Clé API & modèle Gemini (partagée avec l'équipe)
Stockée dans Supabase (table app_settings), lisible par tous les utilisateurs connectés (nécessaire pour l'extraction côté navigateur), modifiable uniquement par un administrateur.
Créer un utilisateur
Crée directement un compte (email + mot de passe déjà confirmé), sans passer par l'auto-inscription.
Gestion des utilisateurs
Réservé aux administrateurs. Pour supprimer complètement un compte, utilise le Dashboard Supabase → Authentication → Users.
| Rôle | Inscrit le |
|---|
Historique des imports (semestres enregistrés)
Chaque import "Enregistré" (onglet Résultats détaillés) est sauvegardé dans Supabase afin d'alimenter les tableaux KPI banques × semestres du Dashboard, même après avoir vidé la session. Crée cette table une seule fois via Supabase → SQL Editor :
Voir le SQL à exécuter une seule fois
create table if not exists bank_period_imports (
id bigint generated always as identity primary key,
bank_name text not null,
semester_key text not null,
periode_arrete text,
unite text,
data jsonb not null,
kpi_map jsonb,
updated_by uuid references auth.users(id),
updated_at timestamptz default now(),
unique (bank_name, semester_key)
);
alter table bank_period_imports enable row level security;
create policy "Lecture équipe" on bank_period_imports for select using (auth.role() = 'authenticated');
create policy "Ecriture équipe" on bank_period_imports for insert with check (auth.role() = 'authenticated');
create policy "Mise à jour équipe" on bank_period_imports for update using (auth.role() = 'authenticated');
create policy "Suppression équipe" on bank_period_imports for delete using (auth.role() = 'authenticated');
⚠ Si la table existait déjà avant l'ajout de la suppression, exécute uniquement cette ligne dans Supabase → SQL Editor (sinon les suppressions échoueront silencieusement, bloquées par la sécurité RLS) :
create policy "Suppression équipe" on bank_period_imports for delete using (auth.role() = 'authenticated');
Après une mise à jour des règles d'extraction (ex. correction d'un KPI), les imports déjà enregistrés gardent leur ancien mapping tant qu'il n'est pas recalculé.
| Banque | Semestre | Période arrêtée | Unité | Enregistré le |
|---|
Données locales
Les fichiers PDF en cours de traitement restent en mémoire du navigateur pour la session — pense à "Enregistrer" chaque import dans l'historique avant de fermer l'onglet, sinon seuls les exports Excel manuels conservent les données.