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 |