dartisan_cli 1.19.1
dartisan_cli: ^1.19.1 copied to clipboard
dartisan, the Daravel command-line interface. Creates projects, runs the dev server with hot reload, generators, migrations, queues and native builds.
Changelog #
1.18.0 #
doctor: the one-isolate notice says which shared stores replace state kept in statics beforeAPP_ISOLATESis raised.doctor --fix-toolingrunsdart pub geton this system whenpackage_config.jsonwas resolved on another;serve --processes=Nruns several server processes on consecutive ports (ADR-027).pub:addlistsdaravel_session(session,csrf,cookies).doctor --productionwarns when a JWT guard keeps its denylist in thememoryorprocesscache store, which forget revoked tokens on restart and on eviction.doctorreports a.dart_tool/package_config.jsonresolved on another system (Windows paths read in WSL or a container, or the other way round), with the command that fixes it.- Added
db:replicate [--disk] [--path] [--interval] [--once] [--checkpoint-pages] [--snapshot-hours] [--retain],db:restore [--to] [--generation] [--at] [--if-missing] [--force]anddb:replicas: SQLite streamed to a storage disk and restored from it. pub:addlistsdaravel_payments(payments,midtrans,xendit,stripe), andupgradeupdates it.- Added
route:diff (--laravel=<dir> | --laravel-json=<file>) [--json]: the Laravel application's routes against this one's, method by method: answered by Daravel, still Laravel, Daravel only, and the share migrated.
1.17.0 #
- Added
test:stress [--url] [--scenario] [--path] [--rounds] [--requests] [--concurrency] [--isolates] [--warmup] [--cooldown] [--max-p95] [--min-rps] [--json] [--export-public]: load against a running application in rounds (health, ping, 404, an authenticatedme, a rate-limited login, custom routes), with throughput mean ± stdev and p50/p95/p99, failing on a 5xx, a missing response, an unexpected status or a threshold;--export-publicwrites only allowed fields, never the target, tokens or custom routes. - Added
e2e:install,make:e2e <Name> [--api]andtest:e2e [--serve] [--url] [--api] [--ui] [-- playwright args]: a Playwright end-to-end suite intests/e2e(health, token authentication, the 422 body, login rate limiting, the welcome page and its headers), run against a fresh database or any URL. pub:addlistsdaravel_pulse(pulse), andupgradeupdates it.
1.16.0 #
- Added
security:audit [--target] [--format=terminal|json|sarif] [--output] [--severity] [--only] [--json-path]: a black-box audit of a running server for deployment mistakes (13 checks, single harmless requests), exiting 1 at--severityfor CI. - Changed:
coordinator:stats --url=<server>/metrics [--token] [--json]reads the running server's coordinator (queue, refused calls, round trips by service with p50/p99) and says what to do; without--urlit still shows the process's own coordinator. - Added
build --docker --distroless: the generatedDockerfileruns ongcr.io/distroless/cc-debian12:nonroot. pub:addlistsdaravel_medialibrary(media).
1.15.0 #
- Added
pub:list [--json],pub:search <term> [--online]andpub:add <package...>(aliasinstall,--yes,--no-get): install a first-party package by name or alias, with its dependency,.with*()registration, migrations, commands and.env.examplesettings; the database and Redis packages delegate todb:installandredis:install. A typo stops with a suggestion; a package outside Daravel needs confirmation or--yes.
1.14.0 #
- Changed:
doctor --productionfails unlessAPP_ENV=production(the production-only checks were silently skipped under any other environment, so the gate passed on a configuration never deployed as such);DoctorCommand.diagnose({production}). - Added production checks to
doctor: a missingAPP_KEYis an error;HASH_VERIFY=false,BCRYPT_ROUNDSbelow 10 andHTTP_MAX_BODY=0(no body limit) are warnings; a plain-httpAPP_URL,HASH_DRIVER=pbkdf2and secrets in a plain.env(no.env.encrypted) are notes. A missing.envis a note, not a warning, whenAPP_ENVcomes from the OS environment, so the gate passes inside the imagebuild --dockerproduces. - Fixed:
migrate --seedruns the root seeder; the flag was declared and never read. - Changed:
migrate:rollback,migrate:reset,db:seedandmigrate --seedrefuse to run underAPP_ENV=productionwithout--force, as artisan's do (migrate:freshalready did); plainmigrateis unchanged. - Changed: a framework error (configuration, a migration the registry does not know) is one
Error:line on stderr and exit 1 instead of a stack trace and the VM's 255;--verboseorDARAVEL_DEBUG=truekeeps the trace. mcp:servealso refusesdownandenv:encryptunderAPP_ENV=production.
1.13.0 #
- Added
serve --max-in-flightandserve --max-queue-delay(also passed on byserve --watch); new projects setHTTP_MAX_QUEUE_DELAY=200ms. - Added
CheckStatus.notice:doctornotes one isolate on a machine with more cores,LOG_LEVELbelowwarningand a SQLite file shared by several isolates, never failing, not even with--production. The PostgreSQL pool check counts the pool the driver opens and says "skipped" when the database is unreachable. db:install pgsqlwritesDB_POOL_SIZE=10andHTTP_MAX_IN_FLIGHT=40into the PostgreSQL block of.env.example.
1.9.0 #
- Added
dartisan upgrade [--check] [--to=<version>]anddartisan self-update. - Added
dartisan --version(-V). - Added
make:mailandmake:notification. mcp:installin a DDEV project registersddev dartisan mcp:serveand adds.ddev/commands/web/dartisan.
1.8.1 #
- Fixed:
client:flutter --stateadapters (providers.dart,blocs.dart,cubits.dart) no longer faildart analyze --fatal-infoswith an unused import when no route uses a paginator or an upload.
1.8.0 #
- Added
db:install <driver>anddb:transfer --from --to. - Added
client:flutter --state=riverpod,bloc,cubitand--watch; a schema'stitlenames its model and a 204 response isvoid. dartisan newprojects declare their auth routes (.validates(),.returns()).
1.7.0 #
- Added
client:flutter: generates a typed Dart/Flutter client package (package:http) from the routes, with models, paginators, error exceptions, SSE and WebSocket URLs, and the server's validation rules and messages checked on the device.
1.6.0 #
- Requires
daravel1.6.0 (server-sent events and WebSocket routes); the bundled guide includes the new section.
1.5.1 #
- Requires
daravel1.5.1 (JSON number range fix).
1.5.0 #
dartisan daragic:export [--out] [--only]: the application model (DAM) indam.jsonwithdaragic.lock.- Requires
daravel1.5.0.
1.4.1 #
- Requires
daravel1.4.1 (response header fix).
1.4.0 #
dartisan db:backup [--output] [--keep=N]: hot SQLite backups (VACUUM INTO, integrity checked).dartisan newincludes the feature flags migration; the welcome page links to/docs/api.buildOpenApiis re-exported frompackage:daravel.- Requires
daravel1.4.0.
1.3.0 #
dartisan model:show <Model> [--json];make:modeladds models tobootstrap/models.dart, whichdartisan newnow creates.mcp:servetoolsmodels,db_query(read-only),read_logs,last_error;docs_searchwithlocale: "id".dartisan mcp:installanddartisan new --mcp(.mcp.json+AGENTS.md).schedule:list --timezone;doctorwarns whenAPP_TIMEZONEis not UTC andSCHEDULE_TIMEZONEis empty.build --dockerleaves SQLite out whenDB_CONNECTIONis notsqlite.- Requires
daravel1.3.0.
1.2.0 #
dartisan mcp:serve [--allow-write]: MCP server on stdio for AI coding agents (about,routes,schema,conventions,docs_search;run_commandopt-in).dartisan build --no-sqlite: bundle without the SQLite library for PostgreSQL/MySQL apps;doctorwarns aboutsource: systemon an SQLite app.schedule:listshows each task's zone.- Requires
daravel1.2.0.
1.1.0 #
dartisan lintreportsunawaited_in_db_transactionandinvalid_validation_rule.- Requires
daravel1.1.0.
1.0.0 #
downandup(maintenance mode),db:show,db:tableandtinker.- MySQL and MariaDB: new projects register
daravel_mysql, andadoptaccepts MySQL applications. openapi:generatedocuments routes with file rules asmultipart/form-data.
1.0.0-beta.3 #
openapi:generatedocuments request bodies, query parameters and responses (Laravel resource and paginator envelopes,components.schemas) from route metadata.queue:pauseandqueue:continue;queue:workandschedule:workstop gracefully onSIGTERM.doctorcompares the connection pool against the server'smax_connections.env:encrypt,env:decryptandenv:obfuscate;adopt <laravel-path> [--check];serve --embed-queue --embed-scheduler.
1.0.0-beta.2 #
- Inside a project, the global
dartisannow runs the project CLI for every command, includingdartisan,dartisan --helpanddartisan <command> --help; onlynewstays global. dartisan newprojects serve the Daravel welcome page at/(HTML, or JSON for API clients) and include a welcome test; instructions usedartisan <command>.- The generated Dockerfile sets
PORT=8080so container platforms can override it.
1.0.0-beta.1 #
First public beta: dartisan new (api and minimal templates with CI and conformance tests), dev server with hot reload, generators, migrations, queue and schedule commands, doctor, test, native build (bundle with SQLite) and --docker, openapi:generate, model:sync.
The full history of the Daravel workspace is in the repository changelog.