107 lines
4.8 KiB
TOML
107 lines
4.8 KiB
TOML
#:schema https://raw.githubusercontent.com/YunoHost/apps/master/schemas/manifest.v2.schema.json
|
|||
|
|
|
||
|
|
packaging_format = 2
|
||
|
|
|
||
|
|
id = "veyelalwa"
|
||
|
|
name = "Vèy Lalwa"
|
||
|
|
description.en = "Legislative watch on French law and its effects on the freedoms of individuals, associations and businesses, with a Guadeloupe focus"
|
||
|
|
description.fr = "Veille législative sur le droit français et ses effets sur les libertés des individus, des associations et des entreprises, avec un zoom Guadeloupe"
|
||
|
|
|
||
|
|
version = "1.0.1~ynh1"
|
||
|
|
|
||
|
|
maintainers = []
|
||
|
|
|
||
|
|
[upstream]
|
||
|
|
license = "AGPL-3.0-or-later"
|
||
|
|
website = "https://o-k-i.net"
|
||
|
|
code = "https://labola.o-k-i.net/cyber-mawonaj/veye-lalwa"
|
||
|
|
admindoc = "https://labola.o-k-i.net/cyber-mawonaj/veye-lalwa/src/branch/main/README-pipeline.md"
|
||
|
|
fund = "https://liberapay.com/OKI/donate/"
|
||
|
|
|
||
|
|
[integration]
|
||
|
|
yunohost = ">= 12.1"
|
||
|
|
helpers_version = "2.1"
|
||
|
|
architectures = "all"
|
||
|
|
multi_instance = true
|
||
|
|
|
||
|
|
ldap = "not_relevant"
|
||
|
|
sso = "not_relevant"
|
||
|
|
|
||
|
|
# L'installation construit l'application web (npm) et l'environnement Python du
|
||
|
|
# pipeline, puis remplit la base depuis le corpus de recherche embarqué.
|
||
|
|
disk = "700M"
|
||
|
|
ram.build = "1G"
|
||
|
|
# À l'exécution : Node en veille socket-like via Restart, plus un passage de
|
||
|
|
# collecte deux fois par jour.
|
||
|
|
ram.runtime = "200M"
|
||
|
|
|
||
|
|
[install]
|
||
|
|
|
||
|
|
[install.domain]
|
||
|
|
type = "domain"
|
||
|
|
# Pas de question « path » : l'application occupe la racine d'un domaine.
|
||
|
|
# Les liens internes sont absolus (/recherche, /textes/…) et SvelteKit
|
||
|
|
# exigerait de recompiler avec `paths.base` pour tenir sur un sous-chemin.
|
||
|
|
# Mieux vaut une contrainte annoncée qu'un sous-chemin à moitié fonctionnel.
|
||
|
|
|
||
|
|
[install.init_main_permission]
|
||
|
|
type = "group"
|
||
|
|
default = "visitors"
|
||
|
|
# Une veille législative n'a d'intérêt que publique : c'est un travail
|
||
|
|
# d'information citoyenne, pas un outil interne.
|
||
|
|
|
||
|
|
[install.legifrance_client_id]
|
||
|
|
ask.en = "Légifrance API client ID (PISTE)"
|
||
|
|
ask.fr = "Identifiant client de l'API Légifrance (PISTE)"
|
||
|
|
help.en = "From https://piste.gouv.fr — declare an application AND subscribe it to the « Légifrance » API. Use the OAuth pair (Client ID / Client secret), NOT the API key, which is rejected by the token endpoint. Leave empty: the pipeline then falls back on the Sénat and Conseil constitutionnel, which is enough to track promulgations and constitutional decisions."
|
||
|
|
help.fr = "Depuis https://piste.gouv.fr — déclarez une application ET abonnez-la à l'API « Légifrance ». Utilisez le couple OAuth (Client ID / Client secret), PAS la clé d'API, refusée par le point d'accès du jeton. Laissez vide : le pipeline se replie alors sur le Sénat et le Conseil constitutionnel, ce qui suffit à suivre les promulgations et les décisions."
|
||
|
|
type = "string"
|
||
|
|
optional = true
|
||
|
|
|
||
|
|
[install.legifrance_client_secret]
|
||
|
|
ask.en = "Légifrance API client secret (PISTE)"
|
||
|
|
ask.fr = "Secret client de l'API Légifrance (PISTE)"
|
||
|
|
help.en = "The « Client secret » shown next to the Client ID. Leave empty if you left the ID empty."
|
||
|
|
help.fr = "Le « Client secret » affiché à côté du Client ID. Laissez vide si vous avez laissé l'identifiant vide."
|
||
|
|
type = "password"
|
||
|
|
optional = true
|
||
|
|
|
||
|
|
[install.contact_email]
|
||
|
|
ask.en = "Contact address for the collectors' user-agent"
|
||
|
|
ask.fr = "Adresse de contact pour le user-agent des collecteurs"
|
||
|
|
help.en = "Sent with every request to Légifrance, the Sénat and the Conseil constitutionnel so their administrators can reach you. Presenting oneself honestly is the price of scraping public services."
|
||
|
|
help.fr = "Envoyée à chaque requête vers Légifrance, le Sénat et le Conseil constitutionnel, pour que leurs administrateurs puissent vous joindre. Se présenter honnêtement est la contrepartie de l'interrogation de services publics."
|
||
|
|
type = "email"
|
||
|
|
optional = true
|
||
|
|
|
||
|
|
[resources]
|
||
|
|
|
||
|
|
[resources.sources.main]
|
||
|
|
url = "https://labola.o-k-i.net/cyber-mawonaj/veye-lalwa/archive/v1.0.1.tar.gz"
|
||
|
|
sha256 = "632e534fbcda5f5ebe771b9383f3807b8bf1a5a8e0fb24f7a22b77772fe75a94"
|
||
|
|
autoupdate.strategy = "latest_forgejo_tag"
|
||
|
|
|
||
|
|
[resources.system_user]
|
||
|
|
|
||
|
|
[resources.install_dir]
|
||
|
|
|
||
|
|
# Répertoire persistant : la base SQLite, le cache HTTP et l'export JSON y
|
||
|
|
# vivent. Sans lui, `ynh_setup_source --full_replace` effacerait à chaque
|
||
|
|
# mise à jour tout l'historique de veille accumulé.
|
||
|
|
[resources.data_dir]
|
||
|
|
|
||
|
|
[resources.permissions]
|
||
|
|
main.url = "/"
|
||
|
|
|
||
|
|
[resources.ports]
|
||
|
|
|
||
|
|
[resources.apt]
|
||
|
|
# sqlite3 : diagnostic et sauvegarde à chaud (.backup).
|
||
|
|
# python3-venv : environnement du pipeline.
|
||
|
|
# build-essential + python3-dev : repli de compilation de better-sqlite3
|
||
|
|
# quand aucun binaire précompilé ne correspond à l'architecture.
|
||
|
|
packages = "ca-certificates, sqlite3, python3, python3-venv, python3-dev, build-essential"
|
||
|
|
|
||
|
|
[resources.nodejs]
|
||
|
|
version = "22"
|