lambda-platform/lambda-laravel is a Laravel package for lambda platform - laravel version.
It currently has 0 GitHub stars and 1.560 downloads on Packagist (latest version v1.4.0).
Install it with composer require lambda-platform/lambda-laravel.
Discover more Laravel packages by lambda-platform
or browse all Laravel packages to compare alternatives.
Last updated
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.
| 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 |
tymon/jwt-auth (installed as a dependency)composer require lambda-platform/lambda-laravel
The service provider is registered automatically (package auto-discovery).
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.
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.
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.
| 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.
cd src/io
yarn install
yarn serve # pm2 start process.json
Every push and pull request runs GitHub Actions:
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
Dependabot opens weekly update PRs against dev.
Work on feature branches, open PRs into dev, then dev → 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.10 |
| release:minor | v1.2.9 → v1.3.0 |
| release:major | v1.2.9 → v2.0.0 |
| release:skip | no tag |
MIT