[{"title":"API","description":"When and how to add a REST API to your Streams application.","url":"https:\/\/streams.dev\/docs\/api","markdown":"https:\/\/streams.dev\/docs\/api.md","package":"guides","section":"guide","tags":["api"],"excerpt":"When to add Streams API Add streams\/api when your team needs to expose stream data to SPAs, mobile apps, partners, or webhooks\u2014without writing CRUD controllers by hand. Keep business logic in Laravel..."},{"title":"Architecture","description":"How Streams packages fit together in a Laravel application.","url":"https:\/\/streams.dev\/docs\/architecture","markdown":"https:\/\/streams.dev\/docs\/architecture.md","package":"guides","section":"guide","tags":["architecture"],"excerpt":"Overview A Streams application is a normal Laravel project with additional conventions. Streams does not replace Laravel routing, config, or deployment\u2014it extends them. mermaid flowchart TB subgraph g..."},{"title":"Caching","description":"Caching options and automation.","url":"https:\/\/streams.dev\/docs\/caching","markdown":"https:\/\/streams.dev\/docs\/caching.md","package":"guides","section":"guide","tags":["core","caching"],"excerpt":"Introduction Streams Core provides a convenient API to link Laravel cachehttps:\/\/laravel.com\/docs\/cache data to a Stream. When caching in this way, you can flush all cached items related to a Stream t..."},{"title":"Files","description":"Files and image handling.","url":"https:\/\/streams.dev\/docs\/files","markdown":"https:\/\/streams.dev\/docs\/files.md","package":"guides","section":"guide","tags":["core","files"],"excerpt":"Introduction Streams comes with a simple wrapper for the Laravel filesystem. Files Stream First, define a stream for the filesystem data: json { \"name\": \"Files\", \"handle\": \"files\", \"description\": \"Bas..."},{"title":"Images","description":"Read, resize, and render images with the Images facade, built on Intervention Image.","url":"https:\/\/streams.dev\/docs\/images","markdown":"https:\/\/streams.dev\/docs\/images.md","package":"guides","section":"guide","tags":["core","images"],"excerpt":"Introduction The Streams platform comes with a fluid and highly extensible image handling and manipulation tool that leans heavily on the fantastic Intervention Imagehttps:\/\/github.com\/Intervention\/im..."},{"title":"Introduction","description":"Streams overview for Laravel developers and teams.","url":"https:\/\/streams.dev\/docs\/introduction","markdown":"https:\/\/streams.dev\/docs\/introduction.md","package":"guides","section":"guide","tags":["introduction"],"excerpt":"What is Streams? Streams is a system of unified Laravel packages that provide an optimized foundation for data modeling, admin interfaces, APIs, and development workflow. Your team defines domain data..."},{"title":"This project","description":"What streams.dev is and how it uses Streams Core and UI.","url":"https:\/\/streams.dev\/docs\/this-project","markdown":"https:\/\/streams.dev\/docs\/this-project.md","package":"guides","section":"guide","tags":["site","project"],"excerpt":"What this repository is streams.dev is the public documentation site and reference implementation for the Streams ecosystem. It is a Laravel 12 application PHP 8.2 or newer that ships with streams\/cor..."},{"title":"Addons","description":"Composing packages and local development with Streams.","url":"https:\/\/streams.dev\/docs\/addons","markdown":"https:\/\/streams.dev\/docs\/addons.md","package":"guides","section":"guide","tags":["core","addons"],"excerpt":"Overview Streams applications compose Composer packages. Your project may require Core only, or Core plus UI, API, SDK, and community addons. Browse published packages on Addons\/addons. Path repositor..."},{"title":"Assets","description":"Asset and image management overview.","url":"https:\/\/streams.dev\/docs\/assets","markdown":"https:\/\/streams.dev\/docs\/assets.md","package":"guides","section":"guide","tags":["core","assets"],"excerpt":"Overview Streams Core manages assets and images through stream field types and the asset registry. Use image fields for uploads; use the asset system for compiled or public vendor assets. Images See I..."},{"title":"Content","description":"Filebase pages and content fragments in Streams.","url":"https:\/\/streams.dev\/docs\/content","markdown":"https:\/\/streams.dev\/docs\/content.md","package":"guides","section":"guide","tags":["core","content"],"excerpt":"Introduction Streams stores content as entries in configured sources. This hub page covers common content patterns; field types and adapters are documented in Core\/docs\/core\/introduction. Pages stream..."},{"title":"Installation","description":"Install Streams in a new or existing Laravel app: requirements, the version matrix, Composer constraints, and publishing config.","url":"https:\/\/streams.dev\/docs\/installation","markdown":"https:\/\/streams.dev\/docs\/installation.md","package":"guides","section":"guide","tags":["installation"],"excerpt":"Server requirements Streams requires a standard Laravel-compatible environmenthttps:\/\/laravel.com\/docs\/deploymentserver-requirements with PHP 8.2 or newer. Core supports Laravel 10, 11, and 12, and th..."},{"title":"Project structure","description":"Where stream definitions, content, views, and app code live.","url":"https:\/\/streams.dev\/docs\/project-structure","markdown":"https:\/\/streams.dev\/docs\/project-structure.md","package":"guides","section":"guide","tags":["site","project","structure"],"excerpt":"Top-level layout text streams.dev\/ \u251c\u2500\u2500 app\/ Minimal Laravel app code \u251c\u2500\u2500 streams\/ Stream JSON definitions \u251c\u2500\u2500 streams\/data\/ Filebase content for streams \u251c\u2500\u2500 resources\/views\/ Blade templates \u251c\u2500\u2500 routes..."},{"title":"Streams","description":"Get started with the stream modeling engine.","url":"https:\/\/streams.dev\/docs\/streams","markdown":"https:\/\/streams.dev\/docs\/streams.md","package":"guides","section":"guide","tags":["core","streams"],"excerpt":"Introduction The Streams platform leans heavily on domain-driven design DDD. We call these domain abstractions streams, hence our namesake. An example could be configuring a domain model a stream for..."},{"title":"UI","description":"Control panels and interface generation for Streams.","url":"https:\/\/streams.dev\/docs\/ui","markdown":"https:\/\/streams.dev\/docs\/ui.md","package":"guides","section":"guide","tags":["ui"],"excerpt":"When to use Streams UI Add streams\/ui when your team needs an admin or product panel\u2014forms, tables, navigation, and pages\u2014built with Livewire and PHP builders on top of Core streams. You keep Laravel..."},{"title":"Components","description":"Blade and Livewire UI patterns with Streams.","url":"https:\/\/streams.dev\/docs\/components","markdown":"https:\/\/streams.dev\/docs\/components.md","package":"guides","section":"guide","tags":["ui","components"],"excerpt":"Overview Streams UI provides Blade components and Livewire-driven builders for tables, forms, and layout. Use them inside panels or embed in your own views. Patterns - Panel pages \u2014 full CP sections w..."},{"title":"Control Panel","description":"Building admin and product panels with Streams UI.","url":"https:\/\/streams.dev\/docs\/control-panel","markdown":"https:\/\/streams.dev\/docs\/control-panel.md","package":"guides","section":"guide","tags":["ui","control","panel"],"excerpt":"Overview A control panel CP is the authenticated area where your team or customers manage stream data. Streams UI registers panel routes, navigation, and resources from configuration and PHP panel bui..."},{"title":"Fields","description":"Fields, types, and inputs are documented here.","url":"https:\/\/streams.dev\/docs\/fields","markdown":"https:\/\/streams.dev\/docs\/fields.md","package":"guides","section":"guide","tags":["core","fields"],"excerpt":"Introduction Fields represent the type and characteristics of your stream data. For example a \"name\" field would likely be a string field type. Fields are strictly concerned with data. Please see the..."},{"title":"Routing","description":"Routing your application.","url":"https:\/\/streams.dev\/docs\/routing","markdown":"https:\/\/streams.dev\/docs\/routing.md","package":"guides","section":"guide","tags":["core","routing"],"excerpt":"Introduction All requests to your application are handled by Laravel unless you create the routes using one of the specific methods described below. Defining Routes The Streams platform has a couple o..."},{"title":"Site pages","description":"How pages.json and HTML entries drive site URLs without controllers.","url":"https:\/\/streams.dev\/docs\/site-pages","markdown":"https:\/\/streams.dev\/docs\/site-pages.md","package":"guides","section":"guide","tags":["site","pages"],"excerpt":"Overview Public site URLs \/, \/docs, \/addons are served by the pages stream. No route files or controllers define these paths \u2014 the stream's routes block and entry frontmatter do. Read this page when y..."},{"title":"Use Cases","description":"Starting paths for common product types with Streams.","url":"https:\/\/streams.dev\/docs\/use-cases","markdown":"https:\/\/streams.dev\/docs\/use-cases.md","package":"guides","section":"guide","tags":["use","cases"],"excerpt":"Pick the path closest to what your team is building. Each path lists packages to require and the first stream to define. Custom CMS or content site Packages: streams\/core, streams\/ui First stream: pag..."},{"title":"Configuration","description":"Laravel config, environment variables, and the streams directory.","url":"https:\/\/streams.dev\/docs\/configuration","markdown":"https:\/\/streams.dev\/docs\/configuration.md","package":"guides","section":"guide","tags":["core","configuration"],"excerpt":"Introduction Streams uses Laravel config files and environment variables alongside stream definitions in streams\/. Streams directory Your team typically commits: files \u251c\u2500\u2500 streams\/ \u2502 \u251c\u2500\u2500 users.json \u2502..."},{"title":"Forms","description":"When to use UI forms in Streams applications.","url":"https:\/\/streams.dev\/docs\/forms","markdown":"https:\/\/streams.dev\/docs\/forms.md","package":"guides","section":"guide","tags":["ui","forms"],"excerpt":"Overview Streams UI generates forms from stream field definitions. Your team gets validation, field types, and layout without duplicating schema in Blade. Use forms in control panels, settings pages,..."},{"title":"Package catalog","description":"How packages.json powers the add-ons page and homepage cards.","url":"https:\/\/streams.dev\/docs\/package-catalog","markdown":"https:\/\/streams.dev\/docs\/package-catalog.md","package":"guides","section":"guide","tags":["site","package","catalog"],"excerpt":"Overview The add-on catalog on \/addons comes from the packages stream. Entries describe Streams ecosystem packages Core, UI, API, SDK, and community addons with Composer metadata and marketing copy. S..."},{"title":"Testing","description":"Testing Streams applications and packages.","url":"https:\/\/streams.dev\/docs\/testing","markdown":"https:\/\/streams.dev\/docs\/testing.md","package":"guides","section":"guide","tags":["testing"],"excerpt":"Overview streams\/testing provides a pre-configured Orchestra Testbench environment, sample streams, and helpers for testing Streams behavior in your app or package. Installation bash composer require..."},{"title":"Users","description":"Authentication and user streams in Streams applications.","url":"https:\/\/streams.dev\/docs\/users","markdown":"https:\/\/streams.dev\/docs\/users.md","package":"guides","section":"guide","tags":["users"],"excerpt":"Overview Streams does not replace Laravel authentication. Use Laravel's user model, sessions, Sanctum, or Passport as your team already does. Define a users stream when you want Streams repositories,..."},{"title":"Agents","description":"How agents work with Streams: llms.txt and raw markdown, the MCP server, the stream definition schema, and OpenAPI.","url":"https:\/\/streams.dev\/docs\/agents","markdown":"https:\/\/streams.dev\/docs\/agents.md","package":"guides","section":"guide","tags":["sdk","agents"],"excerpt":"Streams docs are meant to be read by coding agents as well as people. This site is the source of truth. Package repositories do not keep a second copy. Read the docs | URL | What you get | |-----|----..."},{"title":"Databases","description":"Storage adapters and database-backed streams.","url":"https:\/\/streams.dev\/docs\/databases","markdown":"https:\/\/streams.dev\/docs\/databases.md","package":"guides","section":"guide","tags":["core","databases"],"excerpt":"Overview Streams is data-source agnostic. Configure each stream's source to use filebase files, Eloquent models, in-memory collections, or remote APIs. Most production apps use Eloquent for transactio..."},{"title":"Local development","description":"Install dependencies, run the dev server, and edit content locally.","url":"https:\/\/streams.dev\/docs\/local-development","markdown":"https:\/\/streams.dev\/docs\/local-development.md","package":"guides","section":"guide","tags":["site","local","development"],"excerpt":"Prerequisites - PHP 8.2+ with the extensions required by Laravel 12https:\/\/laravel.com\/docs\/12.x\/deploymentserver-requirements this site runs Laravel 12 - Composer 2 - Node.js 20.19+ or 22.12+ and npm..."},{"title":"Versions and support","description":"Which Laravel and PHP versions each Streams package supports, and how to require them.","url":"https:\/\/streams.dev\/docs\/versions","markdown":"https:\/\/streams.dev\/docs\/versions.md","package":"guides","section":"guide","tags":["versions"],"excerpt":"Streams is pre-release. Most packages have no tagged releases yet, so you install them from their development branches. This page lists what each package declares in its composer.json or package.json..."},{"title":"Changelog","description":"Notable changes to the Streams packages, newest first, grouped by month.","url":"https:\/\/streams.dev\/docs\/changelog","markdown":"https:\/\/streams.dev\/docs\/changelog.md","package":"guides","section":"guide","tags":["changelog"],"excerpt":"Streams packages are pre-release and installed from development branches, so this log is organized by month and branch rather than by version. Entries come from each repository's commit history. Chang..."},{"title":"Contributing documentation","description":"How to add or edit documentation on streams.dev.","url":"https:\/\/streams.dev\/docs\/contributing-docs","markdown":"https:\/\/streams.dev\/docs\/contributing-docs.md","package":"guides","section":"guide","tags":["site","contributing","docs"],"excerpt":"Where docs live All documentation for streams.dev is in this repository under streams\/data\/. Package repos link here; they do not maintain parallel doc trees. | Section | Path | URL | |---------|-----..."},{"title":"Localization","description":"Internationalization with Streams and Laravel.","url":"https:\/\/streams.dev\/docs\/localization","markdown":"https:\/\/streams.dev\/docs\/localization.md","package":"guides","section":"guide","tags":["core","localization"],"excerpt":"Overview Use Laravel's localization for application strings lang\/, __, @lang. Streams field labels and CP text can pull from translation files like any Blade view. For multi-locale content, model loca..."},{"title":"MCP server","description":"The local-development MCP server in streams\/sdk: requirements, starting it with mcp:start streams, client setup, tools, resources, the design-stream prompt, and configuration.","url":"https:\/\/streams.dev\/docs\/mcp","markdown":"https:\/\/streams.dev\/docs\/mcp.md","package":"guides","section":"guide","tags":["sdk","mcp","agents","tools"],"excerpt":"The SDK includes a local-development Model Context Protocolhttps:\/\/modelcontextprotocol.io server. MCP is the standard way AI agents call tools. With it, an agent working in your app can see the domai..."},{"title":"Docs MCP server","description":"Connect Cursor, Claude Code, or any MCP client to the hosted streams.dev docs over MCP: search, read pages, browse the navigation, and fetch the stream JSON Schema.","url":"https:\/\/streams.dev\/docs\/docs-mcp","markdown":"https:\/\/streams.dev\/docs\/docs-mcp.md","package":"guides","section":"guide","tags":["mcp","agents","docs"],"excerpt":"streams.dev runs a public, read-only Model Context Protocolhttps:\/\/modelcontextprotocol.io server over this documentation. Point your agent at it and it can search the docs, read whole pages as markdo..."},{"title":"Tenancy","description":"Three separate mechanisms: Core applications matched by URL, an API tenant resolver you scope yourself, and a UI panel tenant that does not scope routes yet.","url":"https:\/\/streams.dev\/docs\/tenancy","markdown":"https:\/\/streams.dev\/docs\/tenancy.md","package":"guides","section":"guide","tags":["tenancy"],"excerpt":"Streams does not ship one tenancy product. Three packages each hold a piece, and none of them filters data unless you do. | Need | Use | |------|-----| | Different config, streams, or locale per host..."},{"title":"Upgrade guide","description":"How to stay current on the development branches, and what to change for each breaking change.","url":"https:\/\/streams.dev\/docs\/upgrading","markdown":"https:\/\/streams.dev\/docs\/upgrading.md","package":"guides","section":"guide","tags":["upgrading"],"excerpt":"Streams packages are installed from development branches until stable tags exist see Versions and support\/docs\/versions. Upgrading means pulling the latest commit on your branch and handling any break..."},{"title":"Workflows","description":"Streams\\Core\\Support\\Workflow runs named steps in order and fires before and after callbacks.","url":"https:\/\/streams.dev\/docs\/workflows","markdown":"https:\/\/streams.dev\/docs\/workflows.md","package":"guides","section":"guide","tags":["workflows"],"excerpt":"Streams\\Core\\Support\\Workflow is a small ordered step runner in Core. It is not a job pipeline, a queue workflow, or an agent workflow. The Core README still lists replacing it with Laravel pipelines..."},{"title":"Core: Introduction","description":"JSON-defined streams, repositories, criteria, and Laravel integration.","url":"https:\/\/streams.dev\/docs\/core\/introduction","markdown":"https:\/\/streams.dev\/docs\/core\/introduction.md","package":"core","section":"reference","tags":["core","introduction"],"excerpt":"Streams Core streams\/core is the foundation package for the Streams ecosystem. It provides JSON-defined domain models, repository access, criteria-based queries, stream routing, assets, and images \u2014 a..."},{"title":"Core: Installation","description":"Composer, publish config\/streams, env vars, and first stream.","url":"https:\/\/streams.dev\/docs\/core\/installation","markdown":"https:\/\/streams.dev\/docs\/core\/installation.md","package":"core","section":"reference","tags":["core","installation"],"excerpt":"Install Streams Core in a Laravel 10, 11, or 12 application via Composer. Core declares php: ^8.2 and laravel\/framework ^10|^11|^12. This site runs Core on Laravel 12. Core's own test suite still runs..."},{"title":"Core: Configuration","description":"config\/streams\/core.php \u2014 data path, sources, field types, and images.","url":"https:\/\/streams.dev\/docs\/core\/configuration","markdown":"https:\/\/streams.dev\/docs\/core\/configuration.md","package":"core","section":"reference","tags":["core","configuration"],"excerpt":"Core configuration lives in config\/streams\/core.php, published from the package. Environment variables override defaults for deployment-specific paths and sources. Key settings | Key | Env | Default |..."},{"title":"Core: Streams","description":"Stream JSON schema \u2014 fields, extends, imports, routes, and config.","url":"https:\/\/streams.dev\/docs\/core\/streams","markdown":"https:\/\/streams.dev\/docs\/core\/streams.md","package":"core","section":"reference","tags":["core","streams"],"excerpt":"A stream is a domain model defined in JSON under streams\/. Core loads definitions at boot and exposes them through the Streams facade. Stream file structure json { \"id\": \"posts\", \"name\": \"Posts\", \"des..."},{"title":"Core: Fields","description":"Field handles, rules, shorthands, and registered types from core.php.","url":"https:\/\/streams.dev\/docs\/core\/fields","markdown":"https:\/\/streams.dev\/docs\/core\/fields.md","package":"core","section":"reference","tags":["core","fields"],"excerpt":"Fields define entry attributes on a stream. Each field has a handle, type, and optional validation, defaults, and UI input config. Definition formats Shorthand map: json { \"fields\": { \"title\": \"string..."},{"title":"Field decorators","description":"Decorate entry field values for display \u2014 markdown, HTML, and type decorators.","url":"https:\/\/streams.dev\/docs\/core\/field-decorators","markdown":"https:\/\/streams.dev\/docs\/core\/field-decorators.md","package":"core","section":"reference","tags":["core","field","decorators"],"excerpt":"Field decorators transform raw stored values into display-ready output. Call $entry->decorate to apply type-specific decorators registered on field types. When to use decorators Use decorators in view..."},{"title":"Entries","description":"Entry lifecycle, attributes, factory, save\/delete, and protected fields.","url":"https:\/\/streams.dev\/docs\/core\/entries","markdown":"https:\/\/streams.dev\/docs\/core\/entries.md","package":"core","section":"reference","tags":["core","entries"],"excerpt":"An entry is a single record in a stream. Entries are instances of Streams\\Core\\Entry\\Entry or a custom class set in stream config.abstract. Creating entries Persist immediately via repository or crite..."},{"title":"Repositories","description":"Repository CRUD API \u2014 repository() vs entries() and available methods.","url":"https:\/\/streams.dev\/docs\/core\/repositories","markdown":"https:\/\/streams.dev\/docs\/core\/repositories.md","package":"core","section":"reference","tags":["core","repositories"],"excerpt":"Repositories provide direct CRUD access to stream entries through Streams\\Core\\Repository\\Repository. repository vs entries | API | Returns | Use for | |-----|---------|---------| | Streams::repositor..."},{"title":"Criteria","description":"Query API \u2014 where, orderBy, paginate, cache, chunk, and adapter forwarding.","url":"https:\/\/streams.dev\/docs\/core\/criteria","markdown":"https:\/\/streams.dev\/docs\/core\/criteria.md","package":"core","section":"reference","tags":["core","criteria"],"excerpt":"Streams::entries returns a Streams\\Core\\Criteria\\Criteria instance \u2014 a fluent query API executed by the stream's source adapter. Basic queries php $posts = Streams::entries'posts' ->where'published',..."},{"title":"Sources and adapters","description":"filebase, file, self, database, eloquent, collection, and filesystem adapters.","url":"https:\/\/streams.dev\/docs\/core\/sources-and-adapters","markdown":"https:\/\/streams.dev\/docs\/core\/sources-and-adapters.md","package":"core","section":"reference","tags":["core","sources","adapters"],"excerpt":"Each stream's config.source.type selects a repository adapter that reads and writes entries. Core resolves the adapter in Streams\\Core\\Repository\\Repository. Adapter types | Type | Adapter | Typical c..."},{"title":"Core: Caching","description":"Per-stream cache config, criteria cache(), fresh(), and flush on writes.","url":"https:\/\/streams.dev\/docs\/core\/caching","markdown":"https:\/\/streams.dev\/docs\/core\/caching.md","package":"core","section":"reference","tags":["core","caching"],"excerpt":"Core caches criteria results per stream when enabled. Cache keys are prefixed with streams.{handle}. via Streams\\Core\\Stream\\StreamCache. Stream config json { \"config\": { \"cache\": { \"enabled\": true, \"..."},{"title":"Validation","description":"Manual validator() usage, field rules, and StreamsPresenceVerifier.","url":"https:\/\/streams.dev\/docs\/core\/validation","markdown":"https:\/\/streams.dev\/docs\/core\/validation.md","package":"core","section":"reference","tags":["core","validation"],"excerpt":"Core validation is opt-in. Saving an entry does not run validation automatically \u2014 call validate when your application requires it. Entry validation php $post = Streams::repository'posts'->newInstance..."},{"title":"Core: Routes","description":"Stream routes JSON, Route::streams, EntryController, parse and defer.","url":"https:\/\/streams.dev\/docs\/core\/routes","markdown":"https:\/\/streams.dev\/docs\/core\/routes.md","package":"core","section":"reference","tags":["core","routes"],"excerpt":"Streams can register Laravel routes from JSON and through the Route::streams macro. Stream JSON routes json { \"routes\": { \"handle\": \"view\", \"uri\": \"{uri}\", \"parse\": true, \"view\": \"{layout}\" }, { \"uri\"..."},{"title":"Applications","description":"Multi-app URL matching, active application, and Integrator merge keys.","url":"https:\/\/streams.dev\/docs\/core\/applications","markdown":"https:\/\/streams.dev\/docs\/core\/applications.md","package":"core","section":"reference","tags":["core","applications"],"excerpt":"Applications are entries in the stream identified by config'streams.core.applications_id' default applications. They enable multi-tenant or multi-site setups where each application merges its own conf..."},{"title":"Integrator","description":"Wire application entries into config, streams, routes, and providers at boot.","url":"https:\/\/streams.dev\/docs\/core\/integrator","markdown":"https:\/\/streams.dev\/docs\/core\/integrator.md","package":"core","section":"reference","tags":["core","integrator"],"excerpt":"Streams\\Core\\Support\\Integrator merges application or addon configuration into Laravel during boot. integrate php Integrator::integrate 'locale' => 'en', 'config' => 'app.name' => 'Acme', 'streams' =>..."},{"title":"Core: Addons","description":"streams-addon Composer discovery and the Addons facade.","url":"https:\/\/streams.dev\/docs\/core\/addons","markdown":"https:\/\/streams.dev\/docs\/core\/addons.md","package":"core","section":"reference","tags":["core","addons"],"excerpt":"Addons are Composer packages tagged streams-addon that register streams, routes, and config through Core's Integrator at boot. Composer discovery Add to your addon's composer.json: json { \"extra\": { \"..."},{"title":"Core: Assets","description":"Asset registry, path namespaces, @assets Blade, and HTML helpers.","url":"https:\/\/streams.dev\/docs\/core\/assets","markdown":"https:\/\/streams.dev\/docs\/core\/assets.md","package":"core","section":"reference","tags":["core","assets"],"excerpt":"Core provides an asset registry for grouping CSS, JS, and inline fragments referenced from Blade views. There is no built-in upload pipeline or CDN integration \u2014 register paths and emit tags yourself...."},{"title":"Core: Images","description":"Images::make, alterations, picture\/srcset, versioning, and auto-alt.","url":"https:\/\/streams.dev\/docs\/core\/images","markdown":"https:\/\/streams.dev\/docs\/core\/images.md","package":"core","section":"reference","tags":["core","images"],"excerpt":"Core image handling wraps Intervention Image with stream-aware URL generation, alterations, and responsive output. Creating images php use Streams\\Core\\Support\\Facades\\Images; $url = Images::make'stor..."},{"title":"Views and includes","description":"View namespaces, Includes slots, ViewTemplate, and Factory includes.","url":"https:\/\/streams.dev\/docs\/core\/views-and-includes","markdown":"https:\/\/streams.dev\/docs\/core\/views-and-includes.md","package":"core","section":"reference","tags":["core","views","includes"],"excerpt":"Core extends Laravel views with named include slots and template parsing helpers. Includes facade php use Streams\\Core\\Support\\Facades\\Includes; Includes::include'sidebar', 'partials.sidebar'; echo In..."},{"title":"Facades and helpers","description":"Streams, Assets, Images, Applications facades and global helpers.","url":"https:\/\/streams.dev\/docs\/core\/facades-and-helpers","markdown":"https:\/\/streams.dev\/docs\/core\/facades-and-helpers.md","package":"core","section":"reference","tags":["core","facades","helpers"],"excerpt":"Core registers facades and global helpers for common stream operations. Facades | Facade | Accessor | Purpose | |--------|----------|---------| | Streams | streams | Stream manager, make, load | | Ass..."},{"title":"Macros","description":"Route::streams, Str::parse, Arr::make, Factory includes, and more.","url":"https:\/\/streams.dev\/docs\/core\/macros","markdown":"https:\/\/streams.dev\/docs\/core\/macros.md","package":"core","section":"reference","tags":["core","macros"],"excerpt":"Core registers macros on Laravel classes during StreamsServiceProvider::registerMacros. Route and URL php Route::streams'posts\/{id}', 'stream' => 'posts', 'view' => 'posts.show'; URL::streams'posts\/{i..."},{"title":"Callbacks","description":"FiresCallbacks on streams, entries, repositories, and criteria.","url":"https:\/\/streams.dev\/docs\/core\/callbacks","markdown":"https:\/\/streams.dev\/docs\/core\/callbacks.md","package":"core","section":"reference","tags":["core","callbacks"],"excerpt":"Core uses the FiresCallbacks trait for lifecycle hooks. These are not Laravel Event:: events \u2014 they fire synchronously on the object that defines them. Trait API Classes using Streams\\Core\\Support\\Tra..."},{"title":"Extending Core","description":"Custom adapters, repositories, entries, and field types via config bindings.","url":"https:\/\/streams.dev\/docs\/core\/extending-core","markdown":"https:\/\/streams.dev\/docs\/core\/extending-core.md","package":"core","section":"reference","tags":["core","extending"],"excerpt":"Extend Core by binding custom classes in stream JSON or Laravel service providers. Custom field types Register in config\/streams\/core.php: php 'field_types' => 'rating' => \\App\\Streams\\Fields\\RatingFi..."},{"title":"UI: Introduction","description":"Livewire admin panels on Core \u2014 panels, resources, and builders.","url":"https:\/\/streams.dev\/docs\/ui\/introduction","markdown":"https:\/\/streams.dev\/docs\/ui\/introduction.md","package":"ui","section":"reference","tags":["ui","introduction"],"excerpt":"Streams UI streams\/ui builds Livewire admin panels on top of Streams Core. You register a panel, define resource classes for each stream, and configure forms and tables with PHP builders. Architecture..."},{"title":"UI: Installation","description":"Composer, UI::panel(Panel::make()), publish tags, and middleware.","url":"https:\/\/streams.dev\/docs\/ui\/installation","markdown":"https:\/\/streams.dev\/docs\/ui\/installation.md","package":"ui","section":"reference","tags":["ui","installation"],"excerpt":"Install UI alongside Core in your Laravel application. Require the package bash composer require streams\/core:2.0.x-dev streams\/ui:1.0.x-dev UI requires streams\/core ^2.0 and Livewire ^3.0. Neither Co..."},{"title":"Quick start","description":"Register a panel, one Resource class, and visit \/admin.","url":"https:\/\/streams.dev\/docs\/ui\/quick-start","markdown":"https:\/\/streams.dev\/docs\/ui\/quick-start.md","package":"ui","section":"reference","tags":["ui","quick","start"],"excerpt":"This walkthrough registers an admin panel with one resource backed by a Core stream. 1. Define a stream streams\/posts.json: json { \"id\": \"posts\", \"fields\": { \"handle\": \"title\", \"type\": \"string\", \"requ..."},{"title":"UI: Architecture","description":"Panels \u2192 pages\/resources \u2192 Livewire \u2192 routes flow.","url":"https:\/\/streams.dev\/docs\/ui\/architecture","markdown":"https:\/\/streams.dev\/docs\/ui\/architecture.md","package":"ui","section":"reference","tags":["ui","architecture"],"excerpt":"Streams UI follows a Filament-inspired architecture: panels contain resources, resources define pages, and pages host Livewire components that resolve form and table builders. Request flow mermaid flo..."},{"title":"Panels","description":"Path, middleware, default panel, branding, and SetUpPanel.","url":"https:\/\/streams.dev\/docs\/ui\/panels","markdown":"https:\/\/streams.dev\/docs\/ui\/panels.md","package":"ui","section":"reference","tags":["ui","panels"],"excerpt":"A panel is an admin area with its own path, middleware, navigation, resources, and pages. Register a panel php use Streams\\Ui\\Support\\Facades\\UI; use Streams\\Ui\\Builders\\Panels\\Panel; UI::panel Panel:..."},{"title":"UI: Routing","description":"Panel route registration, route names, and custom routes closure.","url":"https:\/\/streams.dev\/docs\/ui\/routing","markdown":"https:\/\/streams.dev\/docs\/ui\/routing.md","package":"ui","section":"reference","tags":["ui","routing"],"excerpt":"Panel routes register automatically when you call UI::panel. Resource pages define paths relative to the resource slug. Route naming Pattern: streams.ui.{panelId}.{resourceSlug}.{pageName} php PostRes..."},{"title":"Resources","description":"PHP Resource subclasses \u2014 getPages(), table(), and form().","url":"https:\/\/streams.dev\/docs\/ui\/resources","markdown":"https:\/\/streams.dev\/docs\/ui\/resources.md","package":"ui","section":"reference","tags":["ui","resources"],"excerpt":"A resource connects a Core stream to admin CRUD pages. Subclass Streams\\Ui\\Resources\\Resource and implement getPages, form, and table. Basic resource php class PostResource extends Resource { protecte..."},{"title":"Pages","description":"ListEntries, CreateEntry, EditEntry, and custom Livewire pages.","url":"https:\/\/streams.dev\/docs\/ui\/pages","markdown":"https:\/\/streams.dev\/docs\/ui\/pages.md","package":"ui","section":"reference","tags":["ui","pages"],"excerpt":"Pages are Livewire components rendered inside a panel layout. Resource CRUD pages | Class | Purpose | |-------|---------| | ListEntries | Table listing | | CreateEntry | Create form | | EditEntry | Ed..."},{"title":"Navigation","description":"Navigation groups, items, and wiring resources into the sidebar.","url":"https:\/\/streams.dev\/docs\/ui\/navigation","markdown":"https:\/\/streams.dev\/docs\/ui\/navigation.md","package":"ui","section":"reference","tags":["ui","navigation"],"excerpt":"Panel sidebar navigation comes from registered resources, pages, and explicit navigation configuration. Resource navigation Set static properties on resource classes: php protected static ?string $nav..."},{"title":"UI: Forms","description":"Form::make(), Form::for($livewire), components, state, and validation.","url":"https:\/\/streams.dev\/docs\/ui\/forms","markdown":"https:\/\/streams.dev\/docs\/ui\/forms.md","package":"ui","section":"reference","tags":["ui","forms"],"excerpt":"Forms are built with Streams\\Ui\\Builders\\Forms\\Form \u2014 a Livewire-aware view builder. Factory methods php $form = Form::make'post'; \/\/ named form $form = Form::for$livewire; \/\/ bound to Livewire compon..."},{"title":"Form layouts","description":"Field, Fieldset, Container, Section, and Grid layout components.","url":"https:\/\/streams.dev\/docs\/ui\/form-layouts","markdown":"https:\/\/streams.dev\/docs\/ui\/form-layouts.md","package":"ui","section":"reference","tags":["ui","form","layouts"],"excerpt":"Form layouts organize inputs in the admin UI. All layouts use ::make and ->components.... Field Wraps a single input: php Field::make'title' ->label'Title' ->inputTextInput::make'title', Namespace: St..."},{"title":"Inputs","description":"Input classes in Streams\\\\Ui\\\\Builders\\\\Inputs.","url":"https:\/\/streams.dev\/docs\/ui\/inputs","markdown":"https:\/\/streams.dev\/docs\/ui\/inputs.md","package":"ui","section":"reference","tags":["ui","inputs"],"excerpt":"Inputs define form controls. All extend Streams\\Ui\\Builders\\Inputs\\Input and use InputClass::make'field_handle'. Available inputs | Class | Purpose | |-------|---------| | TextInput | Text, email, url..."},{"title":"Tables","description":"Table::make($livewire), query, columns, filters, and pagination.","url":"https:\/\/streams.dev\/docs\/ui\/tables","markdown":"https:\/\/streams.dev\/docs\/ui\/tables.md","package":"ui","section":"reference","tags":["ui","tables"],"excerpt":"Tables list stream entries in admin resources via Streams\\Ui\\Builders\\Tables\\Table. Basic table php public static function tableTable $table: Table { return $table ->columns TextColumn::make'title'->s..."},{"title":"Columns","description":"Text, Link, Image, Icon, Toggle, and other table columns.","url":"https:\/\/streams.dev\/docs\/ui\/columns","markdown":"https:\/\/streams.dev\/docs\/ui\/columns.md","package":"ui","section":"reference","tags":["ui","columns"],"excerpt":"Columns display entry values in resource tables. All extend Streams\\Ui\\Builders\\Tables\\Columns\\Column. Available columns | Class | Purpose | |-------|---------| | TextColumn | Plain text | | LinkColum..."},{"title":"Filters","description":"Text, Select, Search, Toggle, and Criteria table filters.","url":"https:\/\/streams.dev\/docs\/ui\/filters","markdown":"https:\/\/streams.dev\/docs\/ui\/filters.md","package":"ui","section":"reference","tags":["ui","filters"],"excerpt":"Filters narrow table results. Register on the table builder via ->filters.... Filter classes | Class | Purpose | |-------|---------| | SearchFilter | Global search across searchable columns | | TextFi..."},{"title":"Bulk actions","description":"BulkAction, selection patterns, and grouped actions.","url":"https:\/\/streams.dev\/docs\/ui\/bulk-actions","markdown":"https:\/\/streams.dev\/docs\/ui\/bulk-actions.md","package":"ui","section":"reference","tags":["ui","bulk","actions"],"excerpt":"Bulk actions operate on selected table rows. Register via ->bulkActions or ->groupedBulkActions on the table builder. BulkAction php use Streams\\Ui\\Builders\\Tables\\BulkActions\\BulkAction; BulkAction::..."},{"title":"Actions","description":"Action, modals, redirects, and table header\/row action groups.","url":"https:\/\/streams.dev\/docs\/ui\/actions","markdown":"https:\/\/streams.dev\/docs\/ui\/actions.md","package":"ui","section":"reference","tags":["ui","actions"],"excerpt":"Actions are buttons that run closures, open modals, or redirect. Base class: Streams\\Ui\\Builders\\Actions\\Action. Basic action php use Streams\\Ui\\Builders\\Actions\\Action; Action::make'publish' ->label'..."},{"title":"Livewire integration","description":"InteractsWithTable, InteractsWithForms, and panel middleware.","url":"https:\/\/streams.dev\/docs\/ui\/livewire","markdown":"https:\/\/streams.dev\/docs\/ui\/livewire.md","package":"ui","section":"reference","tags":["ui","livewire"],"excerpt":"Streams UI admin pages are Livewire components. Traits connect page state to form and table builders. Page traits | Trait | Used by | Namespace | |-------|---------|-----------| | InteractsWithTable |..."},{"title":"Theming","description":"Panel color palettes, brand name, logo, favicon, and layout.","url":"https:\/\/streams.dev\/docs\/ui\/theming","markdown":"https:\/\/streams.dev\/docs\/ui\/theming.md","package":"ui","section":"reference","tags":["ui","theming"],"excerpt":"Streams UI themes a panel by registering color palettes and sharing them as CSS variables. There is no site-wide theme switcher in Core. streams\/data\/themes.json in this docs site is leftover data; no..."},{"title":"API: Introduction","description":"A criteria-scoped REST API for streams and entries. You opt in to routes and own authentication.","url":"https:\/\/streams.dev\/docs\/api\/introduction","markdown":"https:\/\/streams.dev\/docs\/api\/introduction.md","package":"api","section":"reference","tags":["api","introduction"],"excerpt":"Streams API streams\/api turns your stream definitions into a REST API. It builds JSON responses for stream definitions and entries from the same criteria\/docs\/core\/criteria you use in PHP, so an endpo..."},{"title":"API: Installation","description":"Require streams\/api, enable the gate, and register an interface from a service provider.","url":"https:\/\/streams.dev\/docs\/api\/installation","markdown":"https:\/\/streams.dev\/docs\/api\/installation.md","package":"api","section":"reference","tags":["api","installation"],"excerpt":"Install the API alongside Core\/docs\/core\/installation. Require the package bash composer require streams\/api:1.0.x-dev streams\/api has no tagged release yet, so the version constraint is the 1.0 devel..."},{"title":"API: Configuration","description":"Every key in config\/streams\/api.php: enabled, prefix, middleware, interface, and the gate.","url":"https:\/\/streams.dev\/docs\/api\/configuration","markdown":"https:\/\/streams.dev\/docs\/api\/configuration.md","package":"api","section":"reference","tags":["api","configuration"],"excerpt":"Configuration merges into streams.api. Publish config\/streams\/api.php to change it see Installation\/docs\/api\/installation. | Key | Env | Default | Purpose | |-----|-----|---------|---------| | enabled..."},{"title":"API: Routes","description":"Full route table for streams and entries endpoints.","url":"https:\/\/streams.dev\/docs\/api\/routes","markdown":"https:\/\/streams.dev\/docs\/api\/routes.md","package":"api","section":"reference","tags":["api","routes"],"excerpt":"Register routes with API::routeCrud in a service provider's boot method. It registers the default interface with both resources below. Paths below assume the default prefix api. API::routeStreams and..."},{"title":"Request format","description":"Flat JSON field maps on create and update \u2014 not JSON:API.","url":"https:\/\/streams.dev\/docs\/api\/requests","markdown":"https:\/\/streams.dev\/docs\/api\/requests.md","package":"api","section":"reference","tags":["api","requests"],"excerpt":"Create and update endpoints accept flat JSON or form-encoded field maps. The API does not use JSON:API resource objects or data.attributes envelopes for input. Create entry POST \/api\/streams\/{stream}\/..."},{"title":"Responses","description":"Response envelope \u2014 data, errors, links, meta \u2014 and ApiResponse API.","url":"https:\/\/streams.dev\/docs\/api\/responses","markdown":"https:\/\/streams.dev\/docs\/api\/responses.md","package":"api","section":"reference","tags":["api","responses"],"excerpt":"Successful API responses use a consistent JSON envelope from Streams\\Api\\ApiResponse. Envelope shape json { \"data\": { \"id\": \"1\", \"title\": \"Star Wars\" }, \"errors\": , \"links\": { \"self\": \"http:\/\/localhos..."},{"title":"Query parameters","description":"where, constraint, order_by, limit, skip, and per_page on GET entries.","url":"https:\/\/streams.dev\/docs\/api\/query-parameters","markdown":"https:\/\/streams.dev\/docs\/api\/query-parameters.md","package":"api","section":"reference","tags":["api","query","parameters"],"excerpt":"GET \/api\/streams\/{stream}\/entries accepts query parameters implemented in Streams\\Api\\Endpoints\\Entries\\ListEntries::applyFilters the pre-1.0 GetEntries controller was replaced by this endpoint class...."},{"title":"Pagination","description":"first_page, next_page, and meta keys from addPaginationMeta().","url":"https:\/\/streams.dev\/docs\/api\/pagination","markdown":"https:\/\/streams.dev\/docs\/api\/pagination.md","package":"api","section":"reference","tags":["api","pagination"],"excerpt":"Paginated list responses add keys to links and meta via ApiResponse::addPaginationMeta. Meta keys json { \"meta\": { \"total\": 150, \"per_page\": 100, \"last_page\": 2, \"current_page\": 1 } } Link keys json {..."},{"title":"Errors","description":"409 validation, 404 JSON, 204 delete, and error envelope.","url":"https:\/\/streams.dev\/docs\/api\/errors","markdown":"https:\/\/streams.dev\/docs\/api\/errors.md","package":"api","section":"reference","tags":["api","errors"],"excerpt":"Error responses populate the errors array in the JSON envelope except 204 delete. Status codes | Code | When | Body | |------|------|------| | 409 | Validation failure on create\/update\/patch | Envelop..."},{"title":"Stream endpoints","description":"CRUD for stream definitions on \/api\/streams.","url":"https:\/\/streams.dev\/docs\/api\/streams-endpoints","markdown":"https:\/\/streams.dev\/docs\/api\/streams-endpoints.md","package":"api","section":"reference","tags":["api","streams","endpoints"],"excerpt":"Stream endpoints manage entries in the meta-stream config'streams.core.streams_id' that store stream JSON definitions. List streams bash curl -s \"http:\/\/localhost\/api\/streams\" Returns collection in da..."},{"title":"Entry endpoints","description":"CRUD and upsert behavior for \/api\/streams\/{stream}\/entries.","url":"https:\/\/streams.dev\/docs\/api\/entry-endpoints","markdown":"https:\/\/streams.dev\/docs\/api\/entry-endpoints.md","package":"api","section":"reference","tags":["api","entry","endpoints"],"excerpt":"Entry endpoints operate on any stream by handle. List entries bash curl -s \"http:\/\/localhost\/api\/streams\/films\/entries\" Supports query parameters\/docs\/api\/query-parameters and pagination\/docs\/api\/pagi..."},{"title":"Query endpoint","description":"POST \/api\/streams\/{stream}\/query with parameters array.","url":"https:\/\/streams.dev\/docs\/api\/query-endpoint","markdown":"https:\/\/streams.dev\/docs\/api\/query-endpoint.md","package":"api","section":"reference","tags":["api","query","endpoint"],"excerpt":"The query endpoint runs criteria operations from a JSON body instead of query string parameters. Request POST \/api\/streams\/{stream}\/query bash curl -s -X POST \"http:\/\/localhost\/api\/streams\/films\/query..."},{"title":"Custom interfaces","description":"Register several ApiInterface instances with their own path, domain, middleware, resources, and tenant.","url":"https:\/\/streams.dev\/docs\/api\/custom-interfaces","markdown":"https:\/\/streams.dev\/docs\/api\/custom-interfaces.md","package":"api","section":"reference","tags":["api","custom","interfaces"],"excerpt":"An ApiInterface is one mounted API: a path and optionally a domain, a middleware stack, and the resources and endpoints it serves. API::routeCrud registers a single default interface for you. Register..."},{"title":"Custom endpoints","description":"Add endpoints to an interface, write ApiEndpoint classes, and group them in resources.","url":"https:\/\/streams.dev\/docs\/api\/custom-endpoints","markdown":"https:\/\/streams.dev\/docs\/api\/custom-endpoints.md","package":"api","section":"reference","tags":["api","custom","endpoints"],"excerpt":"Custom endpoints live on an interface\/docs\/api\/custom-interfaces, so they share its path, middleware, and gate. Quick endpoints String keys passed to endpoints are registered as GET routes inside the..."},{"title":"Authentication","description":"The API ships no auth. Your app owns access through the gate middleware and interface middleware.","url":"https:\/\/streams.dev\/docs\/api\/authentication","markdown":"https:\/\/streams.dev\/docs\/api\/authentication.md","package":"api","section":"reference","tags":["api","authentication"],"excerpt":"Streams API does not authenticate or authorize anyone. It has no users, tokens, or policies. Your application owns access control, and the package gives you three places to put it. This is deliberate:..."},{"title":"API: Tenancy","description":"Resolve a tenant once per request with API::tenant() or ApiInterface::tenant(), then scope criteria with endpoint callbacks.","url":"https:\/\/streams.dev\/docs\/api\/tenancy","markdown":"https:\/\/streams.dev\/docs\/api\/tenancy.md","package":"api","section":"reference","tags":["api","tenancy"],"excerpt":"The API can resolve one tenant per request and hand it to your code. It does not decide what a tenant is or filter data for you: you supply a resolver, then use the tenant to scope queries. For site-l..."},{"title":"API: Caching","description":"HTTP caching with the ApiCache middleware: ETags, Cache-Control, and per-stream opt-out.","url":"https:\/\/streams.dev\/docs\/api\/caching","markdown":"https:\/\/streams.dev\/docs\/api\/caching.md","package":"api","section":"reference","tags":["api","caching"],"excerpt":"Streams\\Api\\Http\\Middleware\\ApiCache adds HTTP caching to API responses: an ETag, public Cache-Control headers, and 304 Not Modified for clients that already have the current version. It is not applie..."},{"title":"OpenAPI","description":"The generic OpenAPI reference, plus api:schema and api:documentation for your own app.","url":"https:\/\/streams.dev\/docs\/api\/openapi","markdown":"https:\/\/streams.dev\/docs\/api\/openapi.md","package":"api","section":"reference","tags":["api","openapi"],"excerpt":"Reference spec The streams\/api package ships an OpenAPI 3 description of its built-in endpoints in resources\/openapi\/openapi.yaml, and this site serves a copy at \/docs\/api\/openapi.yaml\/docs\/api\/openap..."},{"title":"API: Testing","description":"Test your API routes with Laravel HTTP tests, and the status codes to expect.","url":"https:\/\/streams.dev\/docs\/api\/testing","markdown":"https:\/\/streams.dev\/docs\/api\/testing.md","package":"api","section":"reference","tags":["api","testing"],"excerpt":"Test your app's API routes with ordinary Laravel HTTP tests. streams\/api has no test base class for apps: its Streams\\Api\\Tests\\ApiTestCase is in the package's autoload-dev, so it isn't autoloaded whe..."},{"title":"API: Examples","description":"curl recipes with correct paths and response shapes.","url":"https:\/\/streams.dev\/docs\/api\/examples","markdown":"https:\/\/streams.dev\/docs\/api\/examples.md","package":"api","section":"reference","tags":["api","examples"],"excerpt":"Complete curl examples assuming default prefix api and local server at http:\/\/127.0.0.1:8000. List entries bash curl -s \"http:\/\/127.0.0.1:8000\/api\/streams\/films\/entries\" Filter and paginate bash curl..."},{"title":"SDK: Introduction","description":"Dev-only Artisan generators and checks for streams, entries, addons, and Livewire components, plus a local MCP server for agents.","url":"https:\/\/streams.dev\/docs\/sdk\/introduction","markdown":"https:\/\/streams.dev\/docs\/sdk\/introduction.md","package":"sdk","section":"reference","tags":["sdk","introduction"],"excerpt":"streams\/sdk is a dev dependency. It registers Artisan generators and publishes example stream JSON. It is not part of the runtime your application serves. Install it with Core already required: bash c..."},{"title":"Command reference","description":"Every Artisan command in streams\/sdk: what it writes, its arguments and options, JSON output for agents, and the command classes that are not registered.","url":"https:\/\/streams.dev\/docs\/sdk\/commands","markdown":"https:\/\/streams.dev\/docs\/sdk\/commands.md","package":"sdk","section":"reference","tags":["sdk","commands"],"excerpt":"streams\/sdk adds Artisan commands to generate and check streams, entries, addons, schemas, and Livewire components. Install it as a dev dependency: bash composer require --dev streams\/sdk:1.0.x-dev Co..."},{"title":"Stream definition schema","description":"The JSON Schema for streams\/*.json, served at \/schema\/streams.schema.json: what it checks, editor setup, and validating with streams:validate.","url":"https:\/\/streams.dev\/docs\/sdk\/stream-schema","markdown":"https:\/\/streams.dev\/docs\/sdk\/stream-schema.md","package":"sdk","section":"reference","tags":["sdk","schema","validation","json"],"excerpt":"Stream definitions are the JSON files in streams\/ for example streams\/posts.json. streams\/sdk ships a JSON Schemahttps:\/\/json-schema.org draft-07 for them in vendor\/streams\/sdk\/resources\/schemas\/strea..."},{"title":"SDK: Streams","description":"Define streams with the SDK scaffolding workflow.","url":"https:\/\/streams.dev\/docs\/sdk\/streams","markdown":"https:\/\/streams.dev\/docs\/sdk\/streams.md","package":"sdk","section":"reference","tags":["sdk","streams"],"excerpt":"Streams are the foundation of Laravel Streams - they define the structure and behavior of your data entities. Think of them as dynamic Eloquent models that can be configured through JSON. Basic Stream..."},{"title":"TALL Components","description":"Tailwind, Alpine, Laravel, and Livewire patterns in the SDK.","url":"https:\/\/streams.dev\/docs\/sdk\/tall-components","markdown":"https:\/\/streams.dev\/docs\/sdk\/tall-components.md","package":"sdk","section":"reference","tags":["sdk","tall","components"],"excerpt":"This guide covers how the Laravel Streams SDK generates and works with TALL stack components Tailwind CSS, Alpine.js, Laravel, and Livewire. Overview The SDK automatically generates: - Tailwind CSS: U..."},{"title":"AI Prompts","description":"Patterns and prompts for AI-assisted Streams development.","url":"https:\/\/streams.dev\/docs\/sdk\/ai-prompts","markdown":"https:\/\/streams.dev\/docs\/sdk\/ai-prompts.md","package":"sdk","section":"reference","tags":["sdk","ai","prompts"],"excerpt":"This guide provides AI assistants with specific prompts, patterns, and examples for effectively using the Laravel Streams SDK to help developers build applications. AI Assistant Workflow When helping..."},{"title":"Testing: Introduction","description":"Testing package for Streams with pre-configured environments and sample data.","url":"https:\/\/streams.dev\/docs\/testing\/introduction","markdown":"https:\/\/streams.dev\/docs\/testing\/introduction.md","package":"testing","section":"reference","tags":["testing","introduction"],"excerpt":"The Streams Testing package provides everything you need to test your Streams applications with confidence. Built on top of Orchestra Testbench, it offers a fully configured Laravel testing environmen..."},{"title":"Testing: Installation","description":"Install and configure the Streams Testing package.","url":"https:\/\/streams.dev\/docs\/testing\/installation","markdown":"https:\/\/streams.dev\/docs\/testing\/installation.md","package":"testing","section":"reference","tags":["testing","installation"],"excerpt":"This guide will walk you through installing and configuring the Streams Testing package for your project. Requirements Before installing, ensure your environment meets these requirements: - PHP: 8.2 o..."},{"title":"Test Data","description":"Sample streams and test data included in the package.","url":"https:\/\/streams.dev\/docs\/testing\/test-data","markdown":"https:\/\/streams.dev\/docs\/testing\/test-data.md","package":"testing","section":"reference","tags":["testing","test","data"],"excerpt":"The Streams Testing package includes a rich set of sample data based on the Star Wars universe. This data provides realistic examples for testing and learning Streams concepts. Available Streams The p..."},{"title":"Writing Tests","description":"Write effective tests for Streams applications.","url":"https:\/\/streams.dev\/docs\/testing\/writing-tests","markdown":"https:\/\/streams.dev\/docs\/testing\/writing-tests.md","package":"testing","section":"reference","tags":["testing","writing","tests"],"excerpt":"This guide covers everything you need to know about writing tests for Streams applications, from basic examples to advanced testing patterns. Basic Test Structure Your First Test Every test extends th..."},{"title":"Testing: Configuration","description":"Configure the Streams Testing environment.","url":"https:\/\/streams.dev\/docs\/testing\/configuration","markdown":"https:\/\/streams.dev\/docs\/testing\/configuration.md","package":"testing","section":"reference","tags":["testing","configuration"],"excerpt":"Learn how to configure the Streams Testing package to match your project's needs, from basic PHPUnit settings to advanced test environment customization. PHPUnit Configuration Basic phpunit.xml The mi..."},{"title":"Troubleshooting","description":"Common issues when testing with Streams Testing.","url":"https:\/\/streams.dev\/docs\/testing\/troubleshooting","markdown":"https:\/\/streams.dev\/docs\/testing\/troubleshooting.md","package":"testing","section":"reference","tags":["testing","troubleshooting"],"excerpt":"This guide helps you resolve common issues when using the Streams Testing package. Installation Issues Class Not Found Problem: Class 'Streams\\Testing\\TestCase' not found Solution: bash Regenerate aut..."},{"title":"Client: Introduction","description":"A zero-dependency JavaScript client for the Streams REST API.","url":"https:\/\/streams.dev\/docs\/client\/introduction","markdown":"https:\/\/streams.dev\/docs\/client\/introduction.md","package":"client","section":"reference","tags":["client","introduction"],"excerpt":"@laravel-streams\/api-client is a JavaScript client for the Streams API\/docs\/api\/introduction. It wraps the API's stream and entry endpoints in a small fluent interface, with a Laravel-style criteria b..."},{"title":"Client: Installation","description":"Installing and setting up the Streams API Client","url":"https:\/\/streams.dev\/docs\/client\/installation","markdown":"https:\/\/streams.dev\/docs\/client\/installation.md","package":"client","section":"reference","tags":["client","installation"],"excerpt":"Requirements - Node.js 14.0 or higher - npm, yarn, or pnpm Installing via NPM Install the package using your preferred package manager: NPM bash npm install @laravel-streams\/api-client Yarn bash yarn..."},{"title":"Quick Start","description":"Get started with the Streams API Client in minutes","url":"https:\/\/streams.dev\/docs\/client\/quickstart","markdown":"https:\/\/streams.dev\/docs\/client\/quickstart.md","package":"client","section":"reference","tags":["client","quickstart"],"excerpt":"Get up and running with the Streams API Client in just a few minutes. Basic Setup javascript import { Client } from '@laravel-streams\/api-client'; const client = new Client{ baseURL: 'http:\/\/localhost..."},{"title":"Client Configuration","description":"Configure the API client for your application","url":"https:\/\/streams.dev\/docs\/client\/client","markdown":"https:\/\/streams.dev\/docs\/client\/client.md","package":"client","section":"reference","tags":["client"],"excerpt":"The Client class is the main entry point for interacting with the Streams API. Basic Configuration javascript import { Client } from '@laravel-streams\/api-client'; const client = new Client{ baseURL:..."},{"title":"Client: Streams","description":"Working with stream resources and CRUD operations","url":"https:\/\/streams.dev\/docs\/client\/streams","markdown":"https:\/\/streams.dev\/docs\/client\/streams.md","package":"client","section":"reference","tags":["client","streams"],"excerpt":"Streams represent collections or resource types in the Laravel Streams API. The Streams class provides methods for managing stream resources. Getting Streams Get All Streams javascript const response..."},{"title":"Working with Entries","description":"CRUD operations for stream entries","url":"https:\/\/streams.dev\/docs\/client\/entries","markdown":"https:\/\/streams.dev\/docs\/client\/entries.md","package":"client","section":"reference","tags":["client","entries"],"excerpt":"Entries represent the data within your configured Streams. Use the Entries API to interact with stream data. Get Entries Return entries from a configured stream: Method: client.entries.getstream, conf..."},{"title":"Criteria Query Builder","description":"PHP Laravel-style query building for filtering and sorting","url":"https:\/\/streams.dev\/docs\/client\/criteria","markdown":"https:\/\/streams.dev\/docs\/client\/criteria.md","package":"client","section":"reference","tags":["client","criteria"],"excerpt":"The Criteria class provides a fluent, PHP Laravel-style interface for building queries. Basic Usage javascript import { Criteria } from '@laravel-streams\/api-client'; const criteria = new Criteria .wh..."},{"title":"Middleware System","description":"Request\/response middleware and custom middleware creation","url":"https:\/\/streams.dev\/docs\/client\/middleware","markdown":"https:\/\/streams.dev\/docs\/client\/middleware.md","package":"client","section":"reference","tags":["client","middleware"],"excerpt":"The middleware system allows you to intercept and modify requests and responses. Middleware can transform data, add authentication, handle errors, and more. Built-in Middleware AuthorizationMiddleware..."},{"title":"Client: Examples","description":"Real-world usage patterns and complete examples","url":"https:\/\/streams.dev\/docs\/client\/examples","markdown":"https:\/\/streams.dev\/docs\/client\/examples.md","package":"client","section":"reference","tags":["client","examples"],"excerpt":"Complete examples demonstrating real-world usage patterns. Basic Blog Application Setup javascript import { Client, AuthorizationMiddleware, CriteriaMiddleware, Criteria } from '@laravel-streams\/api-c..."},{"title":"Addons","description":"Site page","url":"https:\/\/streams.dev\/addons","markdown":null,"package":"site","section":"page","excerpt":"@php $packages = Streams::entries'packages' ->where'enabled', true ->orderBy'sort_order', 'ASC'; if Request::get'type' { $packages = $packages->where'type', Request::get'type'; } $packages = $packages..."},{"title":"Documentation","description":"Site page","url":"https:\/\/streams.dev\/docs","markdown":null,"package":"site","section":"page","excerpt":"Packages CoreStreams, entries, criteria UIPanels, resources, forms APIREST routes and envelopes SDKScaffolding and workflow TestingTest helpers ClientJavaScript API client Popular reference StreamsJSO..."}]