Commit graph

62 commits

Author SHA1 Message Date
1d71364c6e feat(seed): add I4 forms publics + space etudiant + I5 healthcheck etendu
Some checks are pending
CI / Lint bridge (Biome) (push) Waiting to run
CI / Type-check bridge (push) Blocked by required conditions
CI / Tests unit bridge (push) Blocked by required conditions
CI / Tests integration bridge (push) Blocked by required conditions
CI / Security scan (push) Waiting to run
CI / Docker build + healthcheck (push) Blocked by required conditions
I4 — Forms publics + space etudiant :
- baserow/seed/seed_forms.py : cree forms publics sur attribution + intervention
  (saisie heures via lien sans compte). Form cree OK, field-options endpoint
  retourne 404 sur Baserow 1.30 — a investiguer (URL different selon version).
- docmost/setup/create-space-etudiant.py : cree space prive + invite etudiant
  + page Welcome template. Slug strict lettres+chiffres only (fix Docmost).

I5 — Ops :
- scripts/healthcheck.sh : check UI + API health (Docmost+Baserow), affiche
  status containers Docker. 4/4 OK en local.
- scripts/cron-install.sh : installe cron quotidien backup + healthcheck */5min.

Makefile : targets seed-baserow-forms, create-space-etudiant. Tous les targets
utilisent maintenant .venv/ local pour eviter pip systeme.

.gitignore : exclut .venv/ + __pycache__/.
2026-05-07 18:49:00 +02:00
d5558caf9a fix(docmost-seed): handle Docmost data envelope + add format field
Some checks are pending
CI / Lint bridge (Biome) (push) Waiting to run
CI / Type-check bridge (push) Blocked by required conditions
CI / Tests unit bridge (push) Blocked by required conditions
CI / Tests integration bridge (push) Blocked by required conditions
CI / Security scan (push) Waiting to run
CI / Docker build + healthcheck (push) Blocked by required conditions
Docmost API responses wrap : {data, success, status} (3 keys top-level).
- _post auto-unwrap si payload contient `data` dict|list
- create_page : ajout du field 'format' (markdown|json|html) requis
- welcome_page_content() : retourne markdown plain (Docmost convertit auto en Tiptap)

Iteration 3 BUILD validee en local :
  Workspace : Acadenice (id 019e034d-...)
  3 spaces  : CFA, Agence, Interne
  Page test : Welcome formation-hub dans CFA
  Share URL : http://localhost:3000/share/019e0352-7fc4-7639...

Endpoints reverse-engineered confirmes fonctionnels :
  /api/auth/setup, /api/auth/login, /api/workspace/info,
  /api/spaces/, /api/spaces/create, /api/pages/create, /api/shares/create
2026-05-07 18:43:39 +02:00
8a676d27c8 feat(docmost): add seed.py via internal endpoints (AGPL-legal, non-official)
Some checks are pending
CI / Lint bridge (Biome) (push) Waiting to run
CI / Type-check bridge (push) Blocked by required conditions
CI / Tests unit bridge (push) Blocked by required conditions
CI / Tests integration bridge (push) Blocked by required conditions
CI / Security scan (push) Waiting to run
CI / Docker build + healthcheck (push) Blocked by required conditions
- docmost/setup/seed.py : Python script reverse-engineered depuis docmost/docmost
  github source. Endpoints utilises :
  * POST /api/auth/setup (bootstrap workspace+admin)
  * POST /api/auth/login (session cookie)
  * POST /api/spaces/create
  * POST /api/pages/create
  * POST /api/shares/create
- docmost/setup/requirements.txt : requests + PyYAML
- Makefile : target seed-docmost
- README updated : explique option A (manuel) vs option B (seed automatise)

Endpoints non-officiels mais utilisables sur Community Edition AGPL.
Risque : maintenance possible si Docmost upgrade modifie les internals.
Aligne avec strategie bridge Phase 2 (doc 19).
2026-05-07 18:22:47 +02:00
5d029771a0 feat(docmost): manual setup guide for iteration 3 BUILD
Some checks are pending
CI / Type-check bridge (push) Blocked by required conditions
CI / Lint bridge (Biome) (push) Waiting to run
CI / Tests unit bridge (push) Blocked by required conditions
CI / Tests integration bridge (push) Blocked by required conditions
CI / Security scan (push) Waiting to run
CI / Docker build + healthcheck (push) Blocked by required conditions
- docmost/setup/README.md : quickstart 10 min (admin + 3 spaces + page test + share)
- docmost/setup/spaces.yaml : schema declaratif (reference future si API Community s'ouvre)
- Makefile : target setup-docmost-guide (rappel des etapes)

API publique Docmost = Enterprise payante (cf docmost.com/docs/user-guide/api).
Setup manuel UI obligatoire pour Community Edition AGPL — rapide (10 min) et stable.

Iteration 3 du plan Fast-App couverte (stories S-01, S-07, S-08).
Couvre les UC : UCW01 gerer wiki + droits, UCW02 inviter client par lien
partage, UCW03 creer space etudiant.
2026-05-07 18:17:45 +02:00
a0266b886c feat(baserow): add formulas pass + related field naming to seed
Some checks are pending
CI / Lint bridge (Biome) (push) Waiting to run
CI / Type-check bridge (push) Blocked by required conditions
CI / Tests unit bridge (push) Blocked by required conditions
CI / Tests integration bridge (push) Blocked by required conditions
CI / Security scan (push) Waiting to run
CI / Docker build + healthcheck (push) Blocked by required conditions
- schema.json : 17 formulas (rollups + heures_restantes) ajoutees + related_field_name explicite sur les 10 liens
- seed.py : 3 nouveaux methodes (create_formula_field, rename_field, create_link_field returns dict)
- seed.py : pass 5/6 renomme automatiquement les related fields apres link creation
- seed.py : pass 6/6 cree les formulas (idempotent)
- README.md : section formulas updated

Iteration 2 du plan Fast-App couverte. Apres seed, les rollups
(formation_heures_attribuees, personne_heures_restantes_total, etc.)
sont automatiques.
2026-05-07 18:15:21 +02:00
6724be6c85 feat(baserow): add seed script + Fast-App iteration 1 artifacts
Some checks are pending
CI / Lint bridge (Biome) (push) Waiting to run
CI / Type-check bridge (push) Blocked by required conditions
CI / Tests unit bridge (push) Blocked by required conditions
CI / Tests integration bridge (push) Blocked by required conditions
CI / Security scan (push) Waiting to run
CI / Docker build + healthcheck (push) Blocked by required conditions
- baserow/seed/schema.json : 9 tables declaratif (personne + CFA + Agence)
- baserow/seed/seed.py : Python script idempotent (login + workspace + db + tables + fields + links)
- baserow/seed/requirements.txt : requests
- baserow/seed/README.md : quickstart 4 etapes
- Makefile target seed-baserow

Fast-App workflow local :
- _byan-output/fast-app/formation-hub/ : 6 artifacts (pitch, backlog, cdcf-stories, plan, dispatch, build-state)
- Phase 0 mappee : phases 1-6 done depuis docs Merise/UML existants
- Iteration 1 BUILD = setup tables Baserow vanilla (S-02 + S-03 + S-04)

Stack locale up et healthy. Pret pour seed apres creation compte admin Baserow.
2026-05-07 17:37:55 +02:00
ecb7a44c3c ops(infra): add Forgejo Actions Runner skeleton
Some checks are pending
CI / Lint bridge (Biome) (push) Waiting to run
CI / Type-check bridge (push) Blocked by required conditions
CI / Tests unit bridge (push) Blocked by required conditions
CI / Tests integration bridge (push) Blocked by required conditions
CI / Security scan (push) Waiting to run
CI / Docker build + healthcheck (push) Blocked by required conditions
- infra/forgejo-runner/compose.yml : runner v6.5.0 avec auto-register
- infra/forgejo-runner/.env.example : variables registration
- infra/forgejo-runner/README.md : setup + usage + securite + troubleshooting
- infra/README.md : index

Le runner est OPTIONNEL et a deployer separement quand on veut activer le CI
sur git.acadenice.com. Tant que pas deploye, les workflows GitHub Actions
restent actifs sur github.com/AcadeNice/wiki (mirror).
2026-05-07 13:49:19 +02:00
d8e8bdefe5 ops(ci): fix docker-build job — setup .env BEFORE compose build
Some checks are pending
CI / Lint bridge (Biome) (push) Waiting to run
CI / Type-check bridge (push) Blocked by required conditions
CI / Tests unit bridge (push) Blocked by required conditions
CI / Tests integration bridge (push) Blocked by required conditions
CI / Security scan (push) Waiting to run
CI / Docker build + healthcheck (push) Blocked by required conditions
- cp .env.example .env en step 1 (compose interpole les vars au build)
- Add `compose config` validation step
- Bump sleep 30 -> 60s (Docmost boot prend 45-60s sur runner)
- Bump logs --tail=200 (200 lignes au lieu de tout)
2026-05-07 12:29:35 +02:00
66ff9097a6 ops(ci): add vitest config + sanity tests stub
- bridge/vitest.config.ts : config + coverage v8 + passWithNoTests
- bridge/tests/unit/sanity.test.ts : stub (real tests Phase 2)
- bridge/tests/integration/sanity.test.ts : stub
- Remove tests/.gitkeep
2026-05-07 12:25:00 +02:00
991d172f69 ops(ci): trigger CI on main pushes + disable auto deploy-staging Phase 0
- CI runs on push to main + develop + PR (was: ignore main → never ran on main)
- Deploy staging : workflow_dispatch only (re-activer push trigger quand
  secrets STAGING_HOST/USER/SSH_KEY configures cote GitHub)

Effet : push suivant trigger un CI complet et verifie que la stack passe les
gates avant tout deploy.
2026-05-07 12:21:59 +02:00
d510bddc34 ops: fix CI run — generate package-lock + bump testcontainers + doc 19 sync bidirec
- Add bridge/package-lock.json (npm install) — fix setup-node@v4 cache fail
- Bump testcontainers 10.x -> 11.14.0 (fix high CVE undici)
- Apply Biome formatter on src/index.ts + src/lib/config.ts
- Update doc 19 Bridge API design :
  * Add 5th mission : sync bidirectionnel Docmost <-> Baserow
  * Add endpoints /docmost/* write + /sync/* orchestration
  * Add section MCP server (Phase 3+) with tools/resources/prompts
  * Add anti-loop strategy (X-Bridge-Origin + idempotence Redis)
2026-05-07 12:20:44 +02:00
668576cdc4 chore: initial commit — formation-hub conception phase
Conception complete (Phase 0) pour formation-hub Acadenice :

- 19 docs Merise Agile + UML + GitOps + plans (tests/deploy/ops/api)
  cf docs/00-readme.md pour l'index complet
- Stack Docker compose (Docmost + Baserow + Postgres + Redis + MinIO local FS)
  compose.yml + compose.staging.yml + compose.prod.yml
- CI/CD GitHub Actions skeleton (ci, deploy-staging, deploy-prod)
- Bridge service skeleton (Hono + TS + Biome + Vitest + zod + pino)
- Templates GitHub : PR + 3 issue types + CODEOWNERS + dependabot.yml
- Scripts ops : healthcheck, backup quotidien, smoke-test post-deploy
- LICENSE AGPL-3.0 + SECURITY.md + CONTRIBUTING.md + CHANGELOG.md
- Diagramme drawIO archi infra (XML importable dans diagrams.net)

Decisions structurelles enregistrees :
- Scope CFA + Agence avec entite PERSONNE pivot multi-roles (ADR-001)
- Stack composite Docmost AGPL + Baserow MIT + bridge custom (ADR-001)
- Path B : UX quasi-unified via Tiptap node-views custom (ADR-002)
- Monorepo trunk-based development (ADR-003)
- Postgres separe Docmost/Baserow (ADR-004)
- Bridge stack Node 22 + Hono (ADR-005)
- Repo neuf prefere a fork Docmost
- Prod-like des le jour 1 (pas MVP)
2026-05-07 12:16:19 +02:00