Récupération, validation, nettoyage et conversion des données publiques (open data) de Légifrance
  • TypeScript 94.7%
  • Svelte 4.6%
  • CSS 0.3%
  • JavaScript 0.2%
  • Dockerfile 0.2%
Find a file
Emmanuel Raviart 92d7f20f7a
Some checks failed
/ test (push) Failing after 23s
/ release (push) Has been skipped
chore: migrate databases
2026-01-17 20:31:03 +01:00
.forgejo/workflows chore: migrate databases 2026-01-17 20:31:03 +01:00
.vscode Improve configuration & README. Add license. 2022-08-09 11:15:42 +02:00
doc feat: begin migration to Zod instead of auditors. Use it to validate database and for summarizers 2025-12-29 00:58:36 +01:00
docs feat: add API (and OpenAPI) to every endpoints 2025-12-31 13:26:41 +01:00
src feat: add API (and OpenAPI) to every endpoints 2025-12-31 13:26:41 +01:00
static feat: add API (and OpenAPI) to every endpoints 2025-12-31 13:26:41 +01:00
.gitignore feat: extend script extract_texts_titles_infos.ts to work with laws 2025-07-19 21:45:32 +02: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 chore: migrate databases 2026-01-17 20:31:03 +01:00
LICENSE.md Improve description 2025-03-21 07:20:59 +01:00
package-lock.json feat: generate OpenAPI spec, rework architecture of Zod schemas 2025-12-29 23:24:43 +01:00
package.json feat: generate OpenAPI spec, rework architecture of Zod schemas 2025-12-29 23:24:43 +01:00
README.md chore: migrate databases 2026-01-17 20:31:03 +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 fix: exclude generated directories from tests 2025-08-18 22:34:57 +02: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 legifrance -P # and enter the password
createdb -O legifrance canutes_legifrance
psql canutes_legifrance
  CREATE EXTENSION IF NOT EXISTS pg_trgm;
\q
createuser anomalies -P # and enter the password
createdb -O anomalies canutes_anomalies
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

Package Generation & Publishing

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