Commit graph

8 commits

Author SHA1 Message Date
Imugiii
56b26db0c1 chore: remplace le Makefile par un service compose wakdo-migrate (migrate + seed idempotents)
All checks were successful
CI / auto-merge (pull_request) Successful in 4s
CI / secret-scan (pull_request) Successful in 9s
CI / php-lint (pull_request) Successful in 21s
CI / static-tests (pull_request) Successful in 42s
CI / js-tests (pull_request) Successful in 19s
Le Makefile portait surtout des cibles mortes/trompeuses (test/test-unit/
test-integration/lint annoncaient "pas implemente" alors que les tests tournent ;
install-hooks pointait sur des fichiers absents) ; sa seule cible porteuse, `init`,
existait parce que `docker compose up` seul n'applique pas les migrations.

En deplacant migrate + seed DANS la stack, `docker compose up` devient l'unique
commande qui amene une stack complete et loginnable -> Cr 7.c.4 satisfait sans
dependance a l'outil `make`.

- db/migrate-container.sh : runner in-container (connexion par le reseau compose),
  applique db/migrations/*.sql (suivi schema_migrations) puis db/seeds/*.sql (suivi
  seeds_applied), idempotent.
- Service one-shot `wakdo-migrate` (depends_on db healthy) ; wakdo-app/web attendent
  sa completion (service_completed_successfully).
- Makefile supprime ; db/migrate.sh (hote) conserve pour l'usage manuel / --status.
- Docs realignees : README, .env.example, db/README, docker-compose, PROJECT_CONTEXT
  (`make *` -> `docker compose *`, Cr 7.b porte par les scripts Bash). Correction au
  passage : la CI/CD est Forgejo Actions (pas GitHub Actions), protections cote Forgejo.
- Journal : docs/journal/2026-06-17--makefile-to-compose-migrate.md (rationale + verif
  sur base ephemere : 2 migrations + 2 seeds, idempotent ; note de deploiement pour
  les bases deja seedees).

Verifie : docker compose config valide ; runner teste sur MariaDB ephemere (5 roles,
23 permissions, admin present) ; re-run = 0 nouveau. Aucun code PHP/JS touche.
2026-06-17 12:41:36 +00:00
6653a7419d docs(journal): audit reel des livrables P2/P3 (2026-06-16) (#22)
Some checks failed
CI / secret-scan (push) Has been cancelled
CI / php-lint (push) Has been cancelled
CI / static-tests (push) Has been cancelled
CI / auto-merge (push) Has been cancelled
2026-06-16 14:19:48 +02:00
ad5203d3fc feat(admin): throttle du PIN d action sensible par acteur (RG-T22) (#18)
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 20s
CI / static-tests (push) Successful in 32s
CI / auto-merge (push) Has been skipped
2026-06-16 00:06:33 +02:00
Imugiii
de355da54c docs: journal entry for 2026-06-04 prod-like conception decisions
Records the alignment review of all project docs and the point-by-point
decision session: drop commande_event, English naming convention, VAT
carried by product (after BOFiP fact-check), real menu customization,
full ingredient configurator, allergen modal. Lists open points D4-D8.
2026-06-04 10:19:25 +00:00
Imugiii
b09c461e94 docs: journal entry for session 4 smoke test infra
Captures the full bottom-end-to-bottom-end validation of the Docker
stack on the deployment host: env file merge with the BYAN tooling,
FQDN switch from acadenice.fr to stark.a3n.fr (using the existing
wildcard DNS), and three corrective fixes that surfaced during
'make init' (explicit IPAM subnet for the saturated host, init: true
on the cron service for dcron PID 1, static healthz file outside the
src bind-mount).

Documents 4 reasoned decisions with alternatives, 5 anticipated jury
questions, 5 conscious points of improvement, and maps 6 RNCP 37805
criteria (1.e.4, 5.b, 7.a.1, 7.a.2, 7.b.3, 7.c.4).
2026-04-30 11:52:45 +00:00
Imugiii
ac8b6a6791 feat(docker): complete stack with compose and 4 services
Deliver the full Docker stack for Bloc 5 DevOps (Cr 7.c.3 and 7.c.4):

- docker/apache/    Custom httpd:2.4-alpine with hardened main config,
                    MPM event tuning and 3 vhosts (healthz, kiosk static,
                    admin reverse FCGI to wakdo-app:9000). Kiosk vhost
                    explicitly denies .php to enforce Bloc 1 isolation.
- docker/php-fpm/   Custom php:8.3-fpm-alpine3.20 with pdo_mysql, opcache,
                    intl, exif, zip and tini for signal handling.
                    Dynamic pool 3-10 workers listening on TCP 9000.
- docker/cron/      Custom alpine:3.20 with dcron, mariadb-client, gzip.
                    Nightly mysqldump at 03h00 with 14-day rotation and
                    512-byte sanity check. Purge and stats jobs templated.
- docker-compose.yml  4 services orchestrated on 2 networks (internal
                      bridge + external reverse-proxy). 2 named volumes
                      for DB and uploads, bind-mount for backups.
                      Traefik labels for 2 routers with HTTPS redirect.

Makefile adds `make backup` (manual dump) and `make backup-ls`.
.gitignore adds /var/ for backup bind-mount path.
docs/journal/2026-04-24--infra-docker.md documents 5 decisions with
alternatives, maps 16 RNCP criteria to artefacts and prepares 6 jury Q&A.

Validated: `docker compose config --quiet` passes. Smoke test deferred
to next session (requires server .env).
2026-04-24 15:59:19 +00:00
Imugiii
324f5cdb74 docs: add RNCP 37805 referentiel and fix Cr 4.f mappings
Add official RNCP 37805 PDF source and a searchable text index of all
92 criteres across Bloc 1, Bloc 2 and Bloc 5 (DevOps option).

Correct Cr 4.f.1 / Cr 4.f.4 mappings in the journal and PROJECT_CONTEXT
section 8: only Cr 4.f.2 covers Git as a tool-mastery artefact. The
other three Cr 4.f criteria are soft skills evaluated at the oral
(knowledge sharing, self-review, individual contribution report).
Correction applied after reading the primary source end to end.
2026-04-24 15:27:06 +00:00
Imugiii
c5c6bacfba docs: setup journal structure and session 1 retro
Ajout de la structure docs/journal/ pour les retrospectives par feature,
destinees a la preparation de l'oral RNCP et a la tracabilite de la demarche
pour le jury.

Contenu :
- docs/journal/README.md : index + template d'entree (what/why/how/criteres
  RNCP/Q&A jury/ameliorations conscientes)
- docs/journal/2026-04-23--cadrage-projet.md : retrospective complete de la
  session de cadrage (brief RNCP, PROJECT_CONTEXT, bootstrap Git, decisions
  d'architecture, transparence methodologie IA)
- .gitignore : ajout de /docs/notes/ pour la couche de notes techniques
  personnelles (revisions oral, non versionnees)
2026-04-24 08:47:56 +00:00