Repository navigation
Security Defaults
Dory Azar edited this page Nov 15, 2026
·
1 revision
What Caligrafy Quill does for every project without a line of code (2.26.0), and what one line turns on.
| Protection | How | Since |
|---|---|---|
| CSRF on forms |
Request checks _token on every POST, PUT and DELETE of a form; =csrf() in a view; session-authenticated JSON writes need X-CSRF-Token; Route::webhook is exempt by itself |
default |
| SQL injection | the query builder binds every value and checks identifiers | default |
| Mass assignment | only the inputs listed in a capability's $rules reach handle()
|
default |
| Passwords |
password_hash in the shipped sign-up, password_verify at sign-in |
default |
| Session fixation |
Route::auth gives a new session id and a new CSRF token at sign-in and sign-out |
default |
| Session cookie |
HttpOnly, and Secure on HTTPS (also behind a load balancer that says so) |
default |
| Token scopes | a write capability without a scope needs a token with the scope named after it, or *; read-only and public ones need none; REST, MCP and command-line tokens are all checked, 403 otherwise; doctor lists the unscoped writes |
default since 2.26.0 |
| N+1 queries | calling a relation method on one of several rows a query read throws [ERROR 2004] in development with the with() fix, and logs a warning in production; ->lazy() or #[Caligrafy\Lazy] allow one |
default since 2.26.0 |
| Shared caches | an answer that sets a cookie, goes to a signed-in person or a token, or is not a 200 is never marked public | default (2.26.0) |
| Webhook signatures |
Route::webhook refuses to register without verify ('stripe' checks STRIPE_WEBHOOK_SECRET) |
one line |
| Personal access tokens | shown once, stored as SHA-256, revocable, with an expiry | one command |
Settings that turn a default off, for a migration period only:
-
TOKEN_DEFAULT_SCOPES=false(deprecated): any token may call a write capability without a scope, as before 2.26.0. -
STRICT_RELATIONS=false: the N+1 check warns instead of throwing in development.
php caligrafer.php doctor reports both, with the fix.
Caligrafy: Describe it. Approve it. Ship it. Your idea turned into a complete app: every feature built once, for web pages, Vue apps, a REST API and AI agents, and online.
Why Caligrafy: the benefits, the measurements, and what it is not yet
-
Quickstart with Claude: describe it, approve it, ship it
or the Quickstart: the same three steps by hand, in 5 minutes
- How Caligrafy works: the ideas in 5 minutes
- Your first capability: build a feature, page included
-
Capabilities in depth
-
#[Capability]: every option - Scheduled jobs: capabilities on a timer
- Notifications: web push and email
- Background jobs: capabilities run later
- Migrations: database changes, in order
- The cache
-
Testing your app
- Dependency injection
- Validation rules
-
Web pages
- Views and page components
- Design styles: another look, one setting
- Declarative routes: every request, in one line
-
Route::page·Route::form·Route::auth·Route::webhook·Route::download·Route::redirect·Route::action·Route::snap· capability routes - How to export a list as CSV
- Controllers: moving one to a declared route · how to, step by step
- Forms and helpers
-
Vue apps
-
Mobile and tablet
-
REST API
-
AI agents
-
Snap Cards and the assistant
- Payments: Stripe and crypto
- Face detection and face login
- OpenAI: chat and images · Assistants
- Open models: Llama, Mistral...
- Chatbots with Watson
- Machine learning in the browser
- Metadata and social cards · search and analytics
-
Putting it online: the production image, the database at every start
-
API reference: every class and method
-
Routing ·
Route·AuthRoutes· pages ·Controller· capabilities -
Data ·
Model·Query· sign-in · jobs ·Notify· payments · AI -
Interfaces · Snap ·
Snap\Cards·Snap\Conversation· testing · tooling · helper functions
-
Routing ·
-
Caligrafer: every command
- Project · build · data · agents · jobs and tests · maintenance · deploy
- Installation, configuration and Caligrafer
- Routing · Request · Controllers · Views
- Vue: flow of information · routes · validations
- Security and upgrading
- Release notes: 2.26 · 2.25 · 2.24 · 2.23 · 2.22 · 2.21 · 2.20 · 2.19 · 2.18 · 2.17 · 2.16 · 2.15 · 2.14 · 2.13 · 2.12 · 2.11 · 2.10 · 2.9 · 2.8 · 2.7 · 2.6 · 2.5 · 2.4 · 2.3 · 2.1 · October 2026 · changelog
- Testing Caligrafy (contributors)