Skip to content

API packages

Generated from api/packages/*

The API is composed of 64 packages in api/packages (namespace Ulams\), registered in api/config/app.php. The narrative guide is API packages; this index is built from the code.

Package Purpose Endpoints Permissions Settings Events Commands
adapt Adapt Learning course sources as versioned JSON, built into SCORM by an isolated GPL-3.0 worker (ADR 0013). Off by default: ADAPTSOURCEENABLED=true turns the… 8 0 0 0 0
ai Provider-agnostic access to large language models for every ulams package (ADR 0009). It knows nothing about courses: callers build an LlmRequest (task,… 0 0 0 0 1
assign-without-account The package is used to assign users without an account. 4 4 0 4 0
auth Package for user authentication. In addition, the package includes: - user management, - group management, - profile management, - registration. 64 28 12 14 4
bookmarks_notes This package is used to manage bookmarks and notes. Bookmarks and notes are stored in a single data model. By convention, a note is a database entry… 8 8 0 0 0
bulk-notifications No README yet. 4 3 2 1 0
cart This package lets you manage user Shopping Cart, and defines what is a buyable Product (and what are Productables, that is sellable things), that can be then… 30 6 1 11 1
categories This package is used for creating Categories for Ulams. 9 5 0 0 1
cmi5 Students have cmi5read and launch an AU with GET /api/cmi5/player/{auId} (?format=json returns the launch URL). The AU is served from the tenant content… 4 4 0 0 1
commerce One interface between the LMS and whatever sells courses (ADR 0049). The LMS owns entitlements: a provider mirrors a sellable as a product, starts a checkout… 0 0 0 0 0
consultation-access This package is used to create enquiries for free consultation access. Users with appropriate permissions can accept the enquiry and send a meeting link or… 9 8 0 5 0
consultations One to one conversation package 22 10 0 8 1
core Package contains all basic classes and features used in Ulams LMS, and it’s obligatory to work with any other LMS package. 4 0 0 0 1
course-access This package is used to manage access to the course for individual users and user groups. 11 6 1 2 0
course-builder Turns an author’s source (Markdown, PDF, DOCX) into a cited course through a short interview, an outline with learning objectives the author approves,… 30 1 0 3 4
courses This package is used for creating Course for Ulams. 52 9 3 13 0
courses-import-export This package is responsible for dealing courses in .ulam format 3 4 0 3 0
csv-users This package is used to export and import users in the .csv format. 4 4 0 1 0
demo Turns a tenant into a public demo that anyone can try without an account: 2 0 1 0 2
dictionaries This package is used for managing dictionaries and their expressions. 17 11 0 0 0
example-plugin A minimal ulams module that shows the package pattern end to end. It is the worked example of the documentation page “Extending ulams → A new API package”… 2 1 1 1 0
files No README yet. 5 5 0 0 0
h5p Thin Laravel integration for the isolated H5P service in api/h5p (Lumi, GPL). The API never imports H5P code: it only talks to the service over HTTP, so the… 2 15 0 0 0
images No README yet. 2 0 3 3 1
interactive The Interactive topic type (ADR 0086): an author-uploaded web app (a zip with index.html, assets and ulams-interactive.json) played in an opaque sandbox from… 11 1 2 0 0
invoices Package for generate pdf invoice from order 1 0 10 0 0
jitsi This package introduce just a facade that you can use to generate parameters for jitsi player 1 0 11 0 0
laravel-scorm No README yet. 0 0 0 0 0
liascript Course sources in LiaScript Markdown, stored as versioned Markdown plus assets (spec 1.1). The Markdown is the source of truth, so the AI phases can read and… 12 1 0 0 0
living-course Watches the sources of a course built with the Course Builder (an upload, a Git repository, web pages), detects what changed at fragment level without a… 33 1 0 6 3
lrs A small, first-party xAPI learning record store for cmi5 content, plus the cmi5 launch endpoints used by the front app and the admin statement list. 11 1 0 1 0
lti Both directions of LTI 1.3 for every tenant (ADR 0012): 32 1 0 0 1
mailerlite This package is used for integration with MailerLite after dispatching events. 0 0 6 0 0
mattermost This package is used for Mattermost integration. 3 0 4 0 0
model-fields This package allows you to add unlimited extra primitive fields to any model. 4 3 0 0 0
notifications This package is used for logging and broadcasting notifications for all Ulams packages events. 10 2 0 0 0
pages This package allows you to create static pages in Laravel app. 7 5 0 0 0
payments This package lets you create Payments and process them using integrations with external payment providers (gateways). 9 3 13 4 0
pencil-spaces This package is used for integration with Pencil Spaces. 1 1 2 0 0
permissions This package is an REST API for 5 6 0 2 0
przelewy24-php PHP wrapper for Przelewy24. 0 0 0 0 0
questionnaire This package is used for creating Questionnaire for Ulams. 25 12 1 0 0
reports Package for statistics & reports 11 1 0 0 0
scorm This package is used to store and manage SCORM packages. 16 10 0 1 2
settings Configuration management package 13 9 0 1 0
shopping-cart No README yet. 0 0 0 0 0
stationary-events This package is used to manage stationary events. 8 5 0 4 0
tags See Swagger documented endpoints. 6 4 0 0 0
tasks This package is used to manage user tasks. Users can create their own tasks or assign tasks to other system users. 20 16 1 8 0
templates General purpose of this package is to store various templates in database and assigning them to Events so that content based on these templates is… 13 6 0 2 0
templates-email Package for email notifications with editable templates (for important user-related events) 0 0 4 0 0
templates-pdf Package for generating PDFs from configurable Templates. 7 2 0 1 1
templates-sms Package for sms notifications with editable templates (for important user-related events). This package supports sending sms via twilio. 0 0 5 0 0
tenancy Provisions and removes tenants of a multi-domain ulams API. One API deployment serves the platform (api.localhost) and any number of tenants, each on its own… 7 0 0 0 11
topic-type-gift This package is another TopicType. It is used to make knowledge tests. If you want to learn more about this format then see Moodle GIFT format 20 14 1 4 1
topic-type-layout The Layout topic type (ADR 0052): a lesson body made of approved learning components (timeline, flip cards, steps, callout, code listing, comparison table,… 0 0 0 0 0
topic-type-project This package is another TopicType. It allows students to upload their solutions as files. This type is used for building headless Course. 9 8 0 3 0
topic-types This repository stores code for Ulams Content Topic types. At the moment there are the following types: 0 0 0 1 3
translations Translations management 7 6 0 0 1
uploads One upload guard for every path that accepts third-party files (SCORM, cmi5, course import, and later LiaScript, Adapt and course-builder sources): 1 0 0 0 0
video Coverts TopicVideo into HLS stream. 1 1 3 4 0
vouchers This package lets you define Coupons that can be applied to User Cart before placing an Order, calculating a discount depending on multiple different,… 8 6 0 0 0
webinar Package enabling live video stream 16 9 0 5 0
youtube This package is used for creating Youtube livestream for Webinar in Ulams. 2 0 5 1 0