Skip to content

API history decisions

Generated from api/docs/adr/*.md

Records from api/docs/adr, kept as history of the application before the monorepo. Project-wide decisions are in Architecture decisions.

# Decision Status Date
0000 Record architecture decisions Accepted 2026-10-08
0001 Headless LMS exposed as a REST API built on Laravel Accepted (retroactive) 2021-03-03
0002 Package-per-domain architecture (escolalms/* Composer packages) Accepted (retroactive) 2021-04-29
0003 API authentication with Laravel Passport bearer tokens Accepted (retroactive) 2021-03-03
0004 Headless H5P via the escolalms/headless-h5p package Accepted (retroactive) 2021-04-26
0005 Administrable runtime settings stored in the database Accepted (retroactive) 2021-09-03
0006 OpenAPI documentation generated from Swagger annotations Accepted (retroactive) 2021-04-28
0007 PHPUnit in the API runs the test suites of all escolalms packages Accepted (retroactive) 2021-04-29
0008 PostgreSQL as the primary database (MySQL/MariaDB no longer tested) Accepted (retroactive) 2025-01-08
0009 Redis-backed queues run by Horizon (single domain) or a queue:work loop (multi-domain) Accepted (retroactive); Horizon partially superseded by ADR-0013 in multi-domain mode 2021-09-22
0010 Stateless containers configured by LARAVEL_-prefixed environment variables Accepted (retroactive) 2022-08-02
0011 Docker image on escolalms/php with PHP-FPM + Supervisor, Caddy as reverse proxy Accepted (retroactive) 2023-02-13
0012 Upgrade to Laravel 9 and a PHP 8.1+ baseline Accepted (retroactive) 2024-02-14
0013 Multi-tenancy (SaaS) with gecche/laravel-multidomain Accepted (retroactive) 2024-02-07
0014 S3-compatible object storage (MinIO locally) for uploaded files Accepted (retroactive) 2024-02-16
0015 Observability with Sentry and spatie/laravel-health checks Accepted (retroactive) 2021-10-12