binaryk/laravel-restify
Laravel Restify is a fast, modular API builder for Laravel. Define repositories to expose Eloquent models with built-in filtering, sorting, pagination, relationships, validation, and authorization—helping you ship clean RESTful APIs with less boilerplate.
attach/sync operations. It fits applications that use Laravel policies as the authorization boundary for relationship writes. The 10.4.62 fixes indicated increasing maturity in three areas that matter to TPMs: security posture (fail closed when no parent policy exists), query correctness (global scopes and soft deletes applied during related-ID resolution), and transaction integrity (writes use the model’s own connection). The 10.4.67 fix extends that correctness work to pivot schema edge cases: skipping the primary key tiebreaker on pivots without a declared key removes an implicit assumption that every pivot table has an id-style key. This matters for the many Laravel apps whose pivot tables use only a composite unique index.attach/sync must have an applicable policy, and any custom attachers must explicitly perform authorization because the package documents that custom attachers skip it. The 10.4.67 change reduces integration friction for teams whose pivot tables lack a declared primary key, since those schemas no longer risk an invalid or ambiguous tiebreaker in the package’s ID-resolution query.orderBy. Results in that case were never contractually ordered, so this is a latent determinism issue rather than a regression, but tests or UI that depended on incidental ordering may need an explicit sort.attach, sync, detach, pivot updates)? Is there a documented migration note for the behavioral changes? How does the package detect a “declared key” on a pivot — model $primaryKey, schema introspection, or configuration? Does skipping the tiebreaker affect only read/ID-resolution queries or also pivot writes and pivot updates? Is explicit ordering recommended for any consumer that needs deterministic results? Are there tests covering pivots with no key, composite keys, UUID keys, and custom pivot models?id.attach/sync call sites for parent-policy coverage. Add or update policies where missing. Identify custom attachers and add explicit authorization. Inventory pivot tables and custom pivot models that lack a declared primary key; where the application depends on relationship result order, add an explicit orderBy. Run the full test suite, with specific tests for soft-deleted related models, global-scoped related models, non-default database connections, and keyless/composite-key pivots. Deploy to staging first and monitor authorization denials and any ordering-sensitive behavior.id column purely to satisfy the package.attach/sync usage, custom attachers, and pivot table schemas (declared keys, composite keys, custom pivot models). 3) Add missing parent policies and authorization tests. 4) Upgrade in staging with query logging to verify global scopes, soft deletes, and pivot key handling. 5) Test multi-connection transaction behavior. 6) Add explicit ordering anywhere relationship results are order-sensitive, and re-run ordering-sensitive tests. 7) Roll out to production with monitoring for authorization failures and unexpected result ordering. 8) Update internal documentation for policy requirements, custom attacher caveats, and pivot schema expectations.id on keyless pivots), and by removing a class of pivot-query failures from the escalation path.attach/sync to fail closed. Custom attachers can silently skip authorization if not explicitly protected. Incorrect connection configuration can still cause transaction issues, though the release reduces this risk. Soft-deleted or globally scoped related IDs may now be excluded where they were previously resolved, which can change sync results. Policy exceptions may surface as 403s or runtime errors depending on how the application handles authorization failures. For keyless pivots, the remaining failure mode is non-deterministic ordering rather than a query error; if a custom pivot model misdeclares its key, the package may apply or skip the tiebreaker incorrectly, so verify pivot model configuration.attach/sync, custom attacher authorization, explicit relationship ordering, and failure-mode troubleshooting will reduce ramp-up time.How can I help you explore Laravel packages today?