Interface LaravelUi5\Sdk\Shell\CmdK\Contracts\SearchServiceInterface

extends Ui5ShellContributorInterface

Orchestrates the CmdK search pipeline.


Architectural Role

This service coordinates the complete search lifecycle for CmdK.

It is responsible for:

  1. Invoking registered Collectors to build base queries.
  2. Applying paired VisibilityConstraints (Constrainers).
  3. Materializing the constrained queries into CmdK actions.

It MUST NOT:

  • Implement domain-specific visibility logic.
  • Access security tables directly.
  • Perform ability resolution itself.
  • Contain SQL or relational constraints.

All visibility and authorization concerns MUST be delegated to VisibilityConstrainer implementations, which in turn delegate to the Security domain (Resolvers, Scopes, etc.).


Pipeline Contract

The canonical lifecycle per collector pair is:

$query = $collector->query($search, $context); $query = $constraint->constrain($query, $context); $items = $collector->collect($query, $context);

The SearchService guarantees:

  • Queries are always constrained before materialization.
  • Collectors never apply visibility logic.
  • Constrainers never materialize results.

Layering Rules

CmdK Layer:

  • Collectors
  • VisibilityConstrainers (adapters)
  • SearchService (this interface)

Security Layer:

  • VisibilityResolvers
  • AbilityResolvers
  • Grant resolution logic

The SearchService interacts ONLY with Collectors and VisibilityConstrainers. It MUST remain unaware of the internal security implementation details.


Scope

This service is used exclusively in SEARCH mode of CmdK.

Methods
Methods inherited from LaravelUi5\Sdk\Platform\Manifest\Contracts\Ui5ShellContributorInterface
contributeShellFragment()