node-red-contrib-skola-online
v0.1.1
Published
Node-RED nodes for the Škola OnLine school system — read persons, write attendance
Maintainers
Readme
node-red-contrib-skola-online
Status: beta — the connectors are feature-complete and tested against live instances, but the API may still change before 1.0.
Node-RED palette for the Czech Škola OnLine school system (SOAP/XML API). Pure connectors — mapping and sync logic belongs in your flow, not in the palette.
Nodes
| Node | Type | Purpose |
|---|---|---|
| sol-config | config | URL + organisation credentials (orgLogin/orgHeslo) |
| sol-users | source | Reads persons via ExportSeznamOsob; emits one message per person, or a single array message (switchable) |
| sol-attendance | sink | Writes arrivals/departures via ImportPrichodyOdchody, one message = one call |
Source nodes emit native Škola OnLine field names (OSOBA_ID, PRIJMENI,
TRIDA, …); sensitive fields (RODNE_CISLO, address, contacts) are emitted
only on explicit opt-in in the node editor. Business errors reported inside
HTTP 200 (<CHYBA><KOD>) are raised as node errors, never swallowed.
No external dependencies — SOAP envelopes and the flat XML shapes are
handled with ~90 lines of stdlib-only code (lib/soap.js).
Examples
The palette ships importable example flows — in the Node-RED editor open Import → Examples → this package: periodic user export to CSV with routing, and a passage write with error handling.
Message contract
See docs/message-contract.md — a shared
normalized shape (msg.topic = "person" | "attendance") implemented by the
reference flow on top of this palette, shared with
node-red-contrib-bakalari.
Field reference
Every node documents the native field semantics, formats and error behaviour in its built-in help (Node-RED editor sidebar).
Disclaimer
Independent open-source project — not affiliated with or endorsed by BAKALÁŘI software s.r.o. (operator of Škola OnLine). Using the web-service API requires that the school's Škola OnLine package includes the external-system module and the API is enabled by the school. This palette is a client for that interface and does not bypass the vendor's licensing. You are responsible for your own agreement with the vendor and for compliance with your school's data-protection obligations.
