lambda-platform / lambda-laravel
Requires
- barryvdh/laravel-dompdf: 2.0.0
- intervention/image: ^2.5.1
- jenssegers/mongodb: ^v3.8.5
- lcobucci/jwt: ^4.1.4
- maatwebsite/excel: ^3.1
- rap2hpoutre/fast-excel: ^3.2
- tymon/jwt-auth: dev-develop
- wisembly/elephant.io: ^3.3
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
- lcobucci/jwt: *
- dev-master
- v1.3.0
- v1.2.9
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2
- v1.1.28
- v1.1.27
- v1.1.26
- v1.1.25
- v1.1.24
- v1.1.23
- v1.1.22.x-dev
- v1.1.21
- v1.1.20
- v1.1.19
- v1.1.18
- v1.1.17
- v1.1.16
- v1.1.15
- v1.1.14
- v1.1.13
- v1.1.12
- v1.1.11
- v1.1.10
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-dev
- dev-security-hardening-ci
This package is auto-updated.
Last update: 2026-10-09 04:20:24 UTC
README
Laravel package for Lambda Platform – a low-code toolkit for building admin panels. Forms, grids, data sources, roles and menus are designed visually (Puzzle builder), stored as JSON schemas in the database, and served through a generic CRUD API.
Modules
| Module | Namespace | Purpose |
|---|---|---|
| Agent | Lambda\Agent |
Login, JWT auth, password reset, user management |
| Puzzle | Lambda\Puzzle |
Visual builder: schemas (vb_schemas), roles, menus, DB schema introspection, page builder, DB backup |
| Dataform | Lambda\Dataform |
Form engine: validation, store/update with sub-forms, options, file upload, form e-mails |
| Datagrid | Lambda\Datagrid |
Grid engine: filtering, sorting, paging, aggregation, Excel export, print, row update/delete |
| Krud | Lambda\Krud |
CRUD HTTP endpoints on top of Dataform / Datagrid |
| DataSource | Lambda\DataSource |
SQL views created from the builder |
| Notify | Lambda\Notify |
In-app notifications and push (FCM) |
| Translation | Lambda\Translation |
Translation management and locale file generation |
| Template | Lambda\Template |
Base "paper" layout |
| Process | Lambda\Process |
Process list API |
src/io |
Node.js | Optional socket.io notification server |
Requirements
- PHP 8.1+
- Laravel 9+
- MySQL / MariaDB, PostgreSQL or SQL Server (MongoDB partially supported)
tymon/jwt-auth(installed as a dependency)
Installation
composer require lambda-platform/lambda-laravel
The service provider is registered automatically (package auto-discovery).
1. Configuration
Publish the config file and fill it in (config/lambda.php):
php artisan vendor:publish --provider="Lambda\LambdaServiceProvider"
Main keys:
| Key | Description |
|---|---|
app_url |
Base URL used for redirects after login |
lambda_access |
Role id allowed to use the builder and user management (e.g. 1 = admin). Set this – without it any logged-in user can access them |
role-redirects |
[['role_id' => 1, 'url' => '/agent#/admin/roles'], ...] – landing page per role |
user_data_fields |
User columns exposed to the builder for user-based conditions |
user_login_check_active |
1 = only users with is_active = 1 can log in |
jwt_claims |
Extra user columns added to the JWT payload |
static_words |
Per-language texts for password reset e-mails, e.g. ['mn' => [...], 'en' => [...]] |
password_reset_time_out |
Reset code lifetime in minutes (default 30) |
title, favicon, logo, copyright, domain |
Branding for login page, e-mails and layout |
img_width, img_thumb_width, img_quality |
Image resize settings for uploads |
backup.* |
DB backup: enable, exe_path (mysqldump), remote, remote_host, remote_port, remote_username, remote_password, remote_path |
Push notifications read the FCM server key from config('services.fcm.key').
Keep secrets in .env and reference them from config files only – never call env() in application code.
2. JWT auth
Configure tymon/jwt-auth and an api guard using the jwt driver (config/auth.php), then register
the package middleware in your HTTP kernel:
// app/Http/Kernel.php protected $routeMiddleware = [ // ... 'jwt' => \Lambda\Agent\Middleware\JWT::class, ];
jwt requires a logged-in user; jwt:1 additionally requires role 1.
3. Database
The package expects these tables to exist in the application database:
users, roles, permissions, password_resets, vb_schemas, vb_schemas_admin, krud,
notifications, notification_status, tr_locales, tr_components, tr_translation, api_config.
Routes
| Prefix | Middleware | Description |
|---|---|---|
auth/* |
– | Login page, login, logout, refresh, password reset |
agent/* |
jwt:{lambda_access} |
User management |
lambda/puzzle/* |
jwt / jwt:{lambda_access} |
Builder, schemas, roles, DB schema |
lambda/krud/* |
jwt |
Form/grid CRUD, Excel export/import, print |
lambda/notify/* |
jwt |
Notifications of the logged-in user |
lambda/locale/* |
jwt |
Translations |
lambda/filemanager/* |
jwt |
Editor file manager |
Public (no login) endpoints: lambda/krud/upload, lambda/krud/upload-tinymce, lambda/krud/unique,
lambda/filemanager/file/{path}, api/lm/puzzle/schema/* and api/lm/puzzle/get_options.
Put them behind jwt if your application has no public forms.
Optional: socket.io server
cd src/io yarn install yarn serve # pm2 start process.json
Development
CI
Every push and pull request runs GitHub Actions:
- Lint & best practice on PHP 8.1 / 8.2 / 8.3 – syntax, deprecations, leftover
dd()/dump(),env()outside config, request input concatenated into raw SQL, hard-coded API keys (script). Run it locally with:bash .github/scripts/best-practice.sh
- Secret scan (TruffleHog) on the pushed commits
- Dependency review on pull requests (blocks new high/critical vulnerabilities)
- Semgrep SAST – results in the Security → Code scanning tab
- Composer audit – currently report-only until vulnerable locked dependencies are upgraded
Dependabot opens weekly update PRs against dev.
Branches and releases
-
Work on feature branches, open PRs into
dev, thendev→master. -
When a PR is merged into
master, a semver tag and GitHub release are created automatically (workflow); Packagist picks up the new tag. -
The version bump is chosen with a PR label:
Label Example (none) v1.2.9→v1.2.10release:minorv1.2.9→v1.3.0release:majorv1.2.9→v2.0.0release:skipno tag
License
MIT