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 |