Dépôt du site L'Annuaire des Entreprises. Pour l’API Recherche d’Entreprises, consultez le dépôt de l’API.
Ce site met à disposition des citoyens et des agents les données ouvertes (open-data) des entreprises, associations et administrations dotées d'un n° SIREN/SIRET.
Ce site ré-utilise les données des différentes administrations partenaires.
Vous êtes un contributeur exterieur ? Soumettez-nous une nouvelle issue ou une pull request.
Vous faîtes partie de l’équipe contenu ? Consultez le tutoriel.
Pour protéger un siren et en limiter la diffusion suivez la procédure.
Voici la liste des dépôts de code du projet L'Annuaire des Entreprises :
Description | Accès |
---|---|
Le site Web | par ici 👉 |
Les actions SEO | par ici 👉 |
L’API du Moteur de recherche | par ici 👉 |
Pipeline ETL | par ici 👉 |
Le proxy API du site | par ici 👉 |
Tests de pertinence de la recherche | par ici 👉 |
Authentification des outils d’admin | par ici 👉 |
Nous utilisons Commit-lint avec conventional-commits
Le projet nécessite node > 18 installé pour être lancé en local.
# Installation
npm i
# Copier le fichier .env
cp .env.dev .env
# Lancer le site en dev
npm run dev
# Lancer le site en prod
npm run build && npm run start
npm run lint
npm run test:unit
npm run test:end2end
npm run test:api-clients
Le déploiement se fait par Github action
A chaque "merge" sur master :
NB: Si plusieurs déploiements sont déclenchés en même temps, seul le premier va jusqu'au bout. Les autres sont automatiquement interrompus.
Le script SEO est déclenché deux fois par mois par une github action. Il génère :
Les fichiers sont compressés puis stockés dans un artifact et téléchargés lors du déploiement sur les différents environnements.
Le script est dans son propre dossier, avec son propre package.json
et sa propre config typescript
.
Pour lancer le script :
cd seo-script
npm run build:seo
Le code source est publié par la Direction interministérielle du numérique sous licence MIT.
Nous utilisons Sentry pour remonter les erreurs du site. Voici les bonnes pratiques à suivre pour remonter une erreur :
fatal
: une erreur qui empêche tout ou une partie du site de fonctionner. Une page d'erreur est affichée à l'utilisateur.logErrorInSentry
: une fonctionnalité importante du site ne fonctionne pas.logWarningInSentry
: une fonctionnalité mineure du site ne fonctionne pas. Un comportement imprévu est arrivé. Non bloquant pour l'utilisateur.logInfoInSentry
: information sur le comportement du siteException
logErrorInSentry(new Exception({ name: 'RedisClientFailException' });
cause
pour logguer l'erreur technique à l'origine de l'erreur métier. Vous pouvez également ajouter des informations contextuelles sur l'erreur via le paramètre context
.try {
// ...
} catch (e) {
logErrorInSentry(
new Exception({
name: 'AgentConnectionFailedException',
message: 'Error during authentication',
cause: e,
context: {
siren,
siret,
details: agentId,
},
})
);
}
Exception
: erreur métierInternalError
: bug interne du code qui n'est jamais supposé arriverFetchRessourceException
: erreur lors d'un appel à une API externeVous pouvez en créer d'autres en étendant la classe Exception
.