Skip to content

Version 0

MortelOS App Standards

MortelOS-owned Laravel runtime defaults for host applications.

mortelos/app-standards owns the Laravel runtime defaults every MortelOS host app should start with.

This package is intentionally a MortelOS-owned hard-fork-style reimplementation, not a runtime dependency on nunomaduro/essentials. Upstream packages and community conventions can inspire defaults, but MortelOS owns the behavior, names, tests and release cadence.

Why It Exists

App-wide Laravel defaults are powerful. They affect Eloquent, validation, URLs, console safety and test behavior. Putting those defaults in a small MortelOS package gives every host app the same baseline without making reusable feature packages carry app-level side effects.

Use this package in host apps such as mortelos/starter, uteq/os, uteq/sijperda-os and other concrete OS installations. Do not require it from reusable packages such as mortelos/framework, channels, widgets or studio packages.

Defaults

Area Default
Eloquent Strict models are enabled.
Relationships Automatic relationship eager loading is enabled.
Dates Laravel's date factory returns immutable dates.
URLs HTTPS URL generation is forced in production.
Console safety Destructive migration and database commands are prohibited in production.
Tests Stray HTTP requests are prevented in testing.
Tests Sleep is faked in testing.
Validation Password defaults use a minimum length of 12, max length of 255 and uncompromised checks.

Console safety is production-only on purpose. Test suites and local setup commands still need migrations such as migrate:fresh and RefreshDatabase.

Install In A Host App

composer require mortelos/app-standards

For local workspace testing, add a path repository to the host app:

{
  "repositories": [
    {
      "type": "path",
      "url": "../../mortelos/*",
      "options": {
        "symlink": true
      }
    }
  ]
}

uteq/os may use mirrored path repositories instead of symlinks. That is fine, but remember to run Composer again after changing the package source.

Configuration

Publish the config when a host needs to override a default:

php artisan vendor:publish --tag=mortelos-app-standards-config

The published file is config/app-standards.php.

Prefer environment-specific toggles over removing the package. If a default is wrong for most MortelOS hosts, change it in this package and cover the behavior with a package test.

Boundaries

mortelos/app-standards owns app runtime defaults. It does not own portal features, domain policy, tenant branding, connectors, widgets, dashboards or MCP tools.

Reusable packages should remain installable without these defaults. Host apps opt into the standards package directly.