Récupération, validation, nettoyage et conversion des données publiques (open data) de Légifrance
  • TypeScript 94.1%
  • Svelte 5.1%
  • CSS 0.4%
  • JavaScript 0.2%
  • Dockerfile 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-10 14:38:26 +02:00
.forgejo/workflows ci: use immutable container image tags 2026-04-29 17:43:15 +02:00
.vscode Improve configuration & README. Add license. 2022-08-09 11:15:42 +02:00
doc/api chore: rename anomaliesDb to db 2026-04-29 16:21:39 +02:00
docs refactor: reorganize Zod schemas and remove barrel re-exports 2026-03-23 23:29:09 +01:00
src fix: stop scanning target commits after resume point 2026-07-10 14:38:26 +02:00
static update doc files 2026-03-30 15:07:40 +02:00
tests remove uid checks in tests 2026-03-31 10:39:35 +02:00
.gitignore refactor: reorganize Zod schemas and remove barrel re-exports 2026-03-23 23:29:09 +01:00
.gitlab-ci.yml Remove obsolete configuration 2023-02-24 06:40:32 +01:00
.npmrc Migrate to ESLint 9 2024-09-16 11:14:06 +02:00
.prettierignore chore: migrate to Tailwind CSS v4 2025-08-18 14:19:28 +02:00
.prettierrc chore: migrate to Tailwind CSS v4 2025-08-18 14:19:28 +02:00
components.json chore: migrate to Tailwind CSS v4 2025-08-18 14:19:28 +02:00
Dockerfile chore: use pkgconf instead of pkg-config 2025-12-13 19:18:12 +01:00
eslint.config.js chore: improve eslint configuration to ignore some svelte errors 2025-10-18 16:06:33 +02:00
example.env fix: remove obsolete databases 2026-04-29 14:49:57 +02:00
LICENSE.md chore: add Camille to authors 2026-01-25 21:30:34 +01:00
package-lock.json chore: upgrade dependencies 2026-06-18 10:05:17 +02:00
package.json chore: upgrade dependencies 2026-06-18 10:05:17 +02:00
README.md doc: update database creation 2026-03-25 18:21:39 +01:00
svelte.config.js chore: migrate to Tailwind CSS v4 2025-08-18 14:19:28 +02:00
tsconfig.json chore: migrate to Tailwind CSS v4 2025-08-18 14:19:28 +02:00
vite.config.ts feat: use Zod for validation 2026-03-23 14:49:23 +01:00

Tricoteuses Légifrance

Tricoteuses Légifrance is free and open source software.

documentation

Main definitions used by these data: https://www.legifrance.gouv.fr/contenu/Media/files/lexique-api-lgf.docx Some documentation and the DTD of the XML files: https://echanges.dila.gouv.fr/OPENDATA/DTD_LEGIFRANCE/

Installation

Create database

Using Debian GNU/Linux, install PostgreSQL, then:

sudo su - postgres
createuser canutes -P # and enter the password
createdb -O canutes canutes
psql canutes
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE SCHEMA anomalies;
CREATE SCHEMA legifrance;
\q
exit

Install dependencies

npm install

# Since there is currently no binary build of nodegit, we need to remove it from dependencies
# to install and build it manually.
cd node_modules/
rm -Rf nodegit
git clone https://github.com/nodegit/nodegit.git
cd nodegit/
# Install dependencies & build nodegit:
npm install
cd ../../

Server Configuration

Create a .env file to set configuration variables (you can use example.env as a template). Then:

npm run configure

Datasets Initialization

mkdir -p ../dila-data/dole
cd ../dila-data/dole
git init
cd -

mkdir -p ../dila-data/jorf
cd ../dila-data/jorf
git init
cd -

mkdir -p ../dila-data/kali
cd ../dila-data/kali
git init
cd -

mkdir -p ../dila-data/legi
cd ../dila-data/legi
git init
cd -

Datasets Update

npx tsx src/scripts/download_dila_dataset.ts dole ../dila-data/
npx tsx src/scripts/download_dila_dataset.ts jorf ../dila-data/
npx tsx src/scripts/download_dila_dataset.ts kali ../dila-data/
npx tsx src/scripts/download_dila_dataset.ts legi ../dila-data/

Database Update

npx tsx src/scripts/import_dole.ts ../dila-data/
npx tsx src/scripts/import_jorf.ts ../dila-data/
npx tsx src/scripts/import_kali.ts ../dila-data/
npx tsx src/scripts/import_legi.ts ../dila-data/

# Note: Assemblee database must be updated before launching this script:
npx tsx src/scripts/associate_dossiers_legislatifs_with_assemblee.ts

Server Launch

In development mode:

npm run dev

In production mode:

npm run build
npm run preview

Development

JSON Schemas Generation

npx tsx src/scripts/generate_legifrance_json_schemas.ts
# Prettify generated JSON file.
npm run format

Note: JSON schemas are generated in file static/schemas.json from the TypeScript types re-exported by src/lib/legal/index.ts

Package Generation & Publishing

npm version patch # or major or minor
npm run package
npm publish