OneRoster (1.2 i grupy zaawansowane)
OneRoster to międzynarodowy standard wymiany katalogów szkolnych (wydawany przez 1EdTech): opisuje we wspólnym formacie placówki, lata szkolne, kursy, klasy, zapisy oraz użytkowników szkoły. Służy do połączenia systemu SIS, platformy edukacyjnej lub LMS z innym narzędziem, bez ponownego wprowadzania danych i bez formatu zastrzeżonego.
Ta strona jest przeznaczona dla działu IT placówki. Opisuje, co Omniscol udostępnia i co pobiera w OneRoster, jakiego uwierzytelniania wymaga oraz jaki jest rzeczywisty zakres każdego kierunku wymiany.
Obsługiwane wersje
Omniscol obsługuje OneRoster 1.2 Rostering — podstawę standardu (Org, AcademicSession, Course, Class, Enrollment, User, Demographics) — oraz warstwę OR-Groups (Advanced Groups Service), czyli addytywny standard grup, który nadbudowuje nad wersją 1.2 trzy jednostki (Group, GroupMembership, GroupAssociation).
Warstwa OR-Groups jest standardem w trakcie publikacji. Jest ściśle addytywna wobec wersji 1.2: Group wyłącznie odwołuje się do jednostek Class / User / Org / AcademicSession z wersji 1.2, tylko do odczytu. Zapowiadana wersja 1.3 standardu OneRoster ma uczynić z Class specjalizację Group — i z tym kierunkiem implementacja Omniscol już się zbiega.
Omniscol jako producent (Omniscol → platforma edukacyjna / LMS)
W roli producenta Omniscol udostępnia katalog placówki tylko do odczytu, przez API REST zgodne z OneRoster, aby platforma edukacyjna lub LMS mogły go odczytać.
- Podstawa Rostering 1.2 jest udostępniana pod
/ims/oneroster/rostering/v1p2/…(na przykład/orgs,/schools,/academicSessions,/courses,/classes,/enrollments,/users,/teachers,/students,/demographics, każdy z własnymi wariantami zagnieżdżonymi). - Warstwa grup jest udostępniana pod
/ims/oneroster/groups/v1p0/…(/groups,/groupMemberships,/groupAssociationsoraz ich warianty zagnieżdżone). - Zakresem jest domyślnie bieżący rok szkolny; parametr pozwala wskazać inny rok albo objąć wszystkie lata.
Dane odzwierciedlają skonsolidowane planowanie Omniscol (opublikowane plany lekcji). Producent działa tylko do odczytu z założenia: żadna operacja zapisu (PUT / DELETE) nie jest udostępniana — system zdalny nie decyduje o tworzeniu ani usuwaniu jednostek w Omniscol.
Uwierzytelnianie producenta
Punkty dostępu producenta są chronione przez OAuth2 w przepływie
client_credentials (token maszyna-maszyna, bez użytkownika),
wydawany przez serwer OAuth2 Omniscol. Nie są zastrzeżone dla kont
Premium: dostępem sterują zakresy OAuth2, a nie wybrany plan. Każdy
zakres jest właściwy jednej usłudze, a dostęp do danych
demograficznych jest wydzielony wewnątrz wersji 1.2:
| Punkty dostępu | Akceptowane zakresy |
|---|---|
| Rostering 1.2 (bez danych demograficznych) | https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly, https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly |
Rostering 1.2 /demographics |
https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly, https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly |
| OR-Groups (wszystkie) | https://purl.imsglobal.org/spec/or-groups/v1p0/scope/roster-group.readonly |
Token OR-Groups nie daje dostępu do podstawy Rostering i odwrotnie. Żaden zakres zapisu nie jest deklarowany. Zakresy uprzywilejowane przypisuje administracja Omniscol w chwili rejestracji klienta OAuth2; klient nie może przypisać ich sobie sam. Zarządzanie klientami OAuth2 i tokenami opisano na OAuth2 / OIDC (dostawca) oraz API Omniscol.
Przynależność uczniów przenosi warstwa grup
Wybór strukturalny: lista uczniów klasy lub grupy jest udostępniana przez OR-Groups (GroupMembership), a nie przez samą podstawę 1.2. Konsument, który czyta wyłącznie Rostering 1.2, otrzymuje katalog (Courses, Classes), zapisy nauczyciel → kurs oraz katalog użytkowników, ale nie przynależność uczniów. Aby wiedzieć, kto należy do której klasy lub grupy, konsument musi zaimplementować warstwę OR-Groups. Ten wybór odzwierciedla model francuski: uczeń jest zapisany do klasy lub grupy, a nie przedmiot po przedmiocie.
Producent jest udostępniany w REST. Format pakietu CSV OneRoster (archiwum zip z jednym plikiem na kolekcję) jest natomiast obsługiwany po stronie importu, dla dostawców, którzy przekazują swój katalog w plikach, a nie przez API — zob. sekcję o konsumencie poniżej.
Omniscol jako konsument (SIS → Omniscol)
W roli konsumenta Omniscol importuje katalog systemu SIS zgodnego z OneRoster i uzgadnia go w placówce. Ta konfiguracja odbioru należy do synchronizacji z systemami zewnętrznymi: jest dostępna na kontach Premium i ustalana projektowo z zespołem Omniscol (zob. Synchronizacja z systemami zewnętrznymi).
- Transport — albo API REST dostawcy (adres bazowy jest
konfigurowany, stosowana jest standardowa paginacja OneRoster), z
uwierzytelnianiem OAuth2 w przepływie
client_credentialswobec serwera dostawcy; albo pakiet CSV (archiwum zip). - Profil — profil konfiguracyjny wskazuje zakres do odczytu: sama podstawa 1.2, warstwa grup albo odwzorowanie francuskie dla edukacji szkolnej. Dostawca obsługujący wyłącznie wersję 1.2, bez usługi grup, importuje się poprawnie.
- Kontrolowane zastosowanie — import działa na tej samej zasadzie co pozostałe konektory: Omniscol pobiera, a następnie uzgadnia dane, a administrator zatwierdza ich zastosowanie w placówce. System zdalny nigdy nie wypycha danych bezpośrednio do Omniscol.
- Idempotentne ponowne importy — odwzorowania identyfikatorów zewnętrznych są zachowywane, dzięki czemu ponowny import nie tworzy duplikatów, nawet gdy dostawca zmieni nazwę etykiety.
Profil francuski (edukacja szkolna)
Profil francuski dla edukacji szkolnej odwzorowuje pojęcia francuskie
na model OneRoster: oddział (klasa w znaczeniu
faktycznym) staje się jednostką Group głównego typu organizacyjnego;
grupa staje się jednostką Group służącą dydaktyce;
grupa grup — jednostką Group o charakterze przekrojowym;
podziały klasy i wyrównania grup stają się skojarzeniami grup;
przypisanie nauczyciela do kursu staje się zapisem
nauczyciela. Identyfikatory takie jak INE lub identyfikator pracownika
są przenoszone w userIds użytkownika.
Identyfikatory i poufność
Każda udostępniana jednostka nosi stabilny identyfikator — sourcedId.
- Identyfikatory strukturalne (placówka, rok, kurs, klasa, grupa) są stabilne i niezmienne między kolejnymi eksportami: konsument może się na nich oprzeć, aby korelować dane w czasie.
- Identyfikator użytkownika jest anonimizowany: Omniscol nigdy nie przesyła własnego identyfikatora imiennego. Przesyłany token pochodzi z funkcji jednokierunkowej (HMAC) właściwej danemu kontu; zapisy i przynależności używają ponownie tego tokenu, nigdy nie ujawniając identyfikatora źródłowego.
Status
- Producent — dostępny i możliwy do zademonstrowania bez partnera zdalnego (eksport wystarcza sam sobie). Rostering 1.2 oraz warstwa OR-Groups są udostępniane tylko do odczytu, z uwierzytelnianiem OAuth2.
- Konsument — konfiguracja importu należy do synchronizacji Premium. Uruchomienie synchronizacji w czasie rzeczywistym z systemem SIS zależy od dostawcy oraz, w stosownych przypadkach, od kalendarzy ministerialnych: ustala się ją na życzenie, konektor po konektorze. Nie jest to natychmiastowa synchronizacja pod klucz.