Publiceren en de Module Store
Er zijn twee manieren om je module bij een club te krijgen: rechtstreeks in je eigen club (om te testen, of voor een module die alleen voor jouw club bedoeld is), of via de Module Store voor iedereen.
In je eigen club
Section titled “In je eigen club”npm run publish-module # naar de club in tabbr.config.jsonnpm run publish-local # naar een lokale Tabbr (api.local.tabbr.be)Wat er gebeurt:
ng buildbouwt de frontend; de CLI controleert datremoteEntry.jsoner is.- esbuild bundelt de backend tot één
bundle.js, en de CLI schrijft eenmanifest.jsonmet je entiteiten, contracten en triggers. - Alles wordt gezipt.
- Je logt in via de browser (Keycloak); het token wordt bewaard in
~/.tabbr/credentials.json. - De zip gaat naar de club (
POST /api/custommodule). Je hebt daar de rol ADMIN nodig.
De module verschijnt in de club onder Instellingen › Modules › Eigen modules.
In de Module Store
Section titled “In de Module Store”npm run publish-store -- --changelog "Slimme groepen op basis van een lijst"Je dient niet je build in, maar je broncode: de bestanden die git volgt, plus package-lock.json (zonder
node_modules). Tabbr bouwt de module zelf.
- 1Ingediend
npm run publish-store - 2Bouwentests, typecheck en build — zonder netwerk
- 3Revieween beheerder van Tabbr bekijkt de code
- 4Beschikbaarelke club kan installeren
Het bouwen
Section titled “Het bouwen”De builder draait in een afgesloten container, zonder geheimen:
- Installeren:
npm ci --ignore-scripts. De SDK en de CLI van je module worden vervangen door die van het platform, en de Angular-versie wordt gecontroleerd (dezelfde major als Tabbr, niet nieuwer). - Bouwen, zonder netwerk: je
test, jetypecheck, entabbr-module build.
Faalt iets, dan krijgt de versie de status BUILD_FAILED en kan je opnieuw indienen.
De review
Section titled “De review”Een beheerder van Tabbr ziet het verschil in broncode met de vorige versie en het buildlog, en kan een versie goedkeuren, afwijzen, afraden (deprecate) of blokkeren. Blokkeren is de noodrem: een geblokkeerde versie wordt nergens meer geladen.
Wanneer de server een versie weigert
Section titled “Wanneer de server een versie weigert”- de versie is niet hoger dan de vorige;
engines.tabbromvat het niveau van de server niet;- het
moduleIdis veranderd; - een entiteit of veld is binnen dezelfde major weggehaald of gewijzigd.
Installeren door een club
Section titled “Installeren door een club”Een beheerder installeert je module via Instellingen › Modules › Store — zie Modules en de Module Store. Vóór elke installatie, update of terugkeer naar een vorige versie toont Tabbr een plan: wat er niet kan, waar je op moet letten, en in gewone taal wat je module doet (“leest personen”, “draait code op de server”, “geeft personen rollen”…).
Compatibiliteit met Tabbr
Section titled “Compatibiliteit met Tabbr”- Module-API. Je module zegt in
engines.tabbrtegen welk API-niveau ze gebouwd is (nu 1.3.0). - Angular en RxJS worden gedeeld met Tabbr. Een update van Tabbr binnen dezelfde Angular-major vraagt geen nieuwe build van je module. Een nieuwe Angular-major is ook een nieuwe major van de module-API: dan bouw je je module opnieuw.
@tabbr/module-sdkdeel je niet: je bundelt het mee in je module.
De SDK en de CLI zelf uitbrengen
Section titled “De SDK en de CLI zelf uitbrengen”Voor wie aan Tabbr zelf werkt: de SDK en de CLI hebben elk hun eigen versie en worden via GitHub Actions op npm gepubliceerd.
cd tabbr-module-sdk && npm run release -- patch # of minor; tagt sdk-v*cd tabbr-module-cli && npm run release -- patch # tagt cli-v*Zolang ze op 0.x staan: patch voor fixes en toevoegingen, minor voor wat iets breekt.