Take the Pain Out of Data Imports with Laravel Ingest

https://picperf.io/https://laravelnews.s3.amazonaws.com/featured-images/Laravel-Ingest-LN.png

Laravel Ingest by Robin Kopp is a configuration-driven ETL (Extract, Transform, Load) package that replaces one-off import scripts with declarative importer classes. It handles files from a few hundred to tens of millions of rows by processing them through PHP Generators and Laravel Queues, keeping memory usage consistent regardless of file size.

Main Features

  • Declarative importer classes using a fluent IngestConfig builder
  • Automatic resolution of BelongsTo and BelongsToMany relationships
  • Duplicate handling strategies: SKIP, CREATE, UPDATE, and UPDATE_IF_NEWER
  • Dry-run mode to validate imports before writing to the database
  • Failed row tracking with downloadable CSV exports
  • Column aliasing to map varying header names to a single field
  • Dynamic model resolution based on row data
  • Import sources: file upload, filesystem disks (including S3), URL, FTP, and SFTP
  • Auto-generated Artisan commands and REST API endpoints per importer

Defining an Importer

After installing the package and running migrations, you create an importer class that implements IngestDefinition and returns an IngestConfig. By convention, these live in the App\Ingest namespace:

namespace App\Ingest;

 

use App\Models\Product;

use LaravelIngest\Contracts\IngestDefinition;

use LaravelIngest\DTOs\IngestConfig;

use LaravelIngest\Enums\DuplicateStrategy;

use LaravelIngest\Enums\SourceType;

 

class ProductImporter implements IngestDefinition

{

public function getConfig(): IngestConfig

{

return IngestConfig::for(Product::class)

->fromSource(SourceType::UPLOAD)

->keyedBy('sku')

->onDuplicate(DuplicateStrategy::UPDATE)

->map('Product Name', 'name')

->relate('Category', 'category', Category::class, 'slug')

->validate([

'sku' => 'required|string',

'Product Name' => 'required|string|min:3',

]);

}

}

Register the importer in your AppServiceProvider using the package’s tag:

use LaravelIngest\IngestServiceProvider;

 

$this->app->tag([ProductImporter::class], IngestServiceProvider::INGEST_DEFINITION_TAG);

Running Imports

Once registered, the package exposes both an Artisan command and an HTTP endpoint for each importer.

Via CLI:

php artisan ingest:run product-importer --file=products.csv

Via API (multipart form upload):

POST /api/v1/ingest/upload/product-importer

For dry runs, append the --dry-run flag to the Artisan command to validate the file and surface any errors without touching the database.

Monitoring

The package includes several Artisan commands for checking on running or completed imports:

php artisan ingest:list # List registered importers

php artisan ingest:status {id} # Show progress and row statistics

php artisan ingest:cancel {id} # Stop an in-progress import

php artisan ingest:retry {id} # Reprocess only the failed rows

Equivalent REST endpoints are also available:

  • GET /api/v1/ingest — recent runs
  • GET /api/v1/ingest/{id} — status and statistics
  • GET /api/v1/ingest/{id}/errors/summary — aggregated error breakdown
  • GET /api/v1/ingest/{id}/failed-rows/download — CSV of rows that failed

Events

The package dispatches events throughout the import lifecycle — IngestRunStarted, ChunkProcessed, RowProcessed, IngestRunCompleted, and IngestRunFailed — which you can listen to for notifications or custom side effects.

You can find Laravel Ingest on GitHub and read the full documentation at the Laravel Ingest docs.

Laravel News

10 Simple Steps to Solve SQL Problems [2026]

https://codeforgeek.com/wp-content/uploads/2026/02/10-Simple-Steps-to-Solve-SQL-Problems.pngIf you find yourself getting confused or going blank while working on SQL questions, we have found 10 simple steps/methods to solve SQL problems with ease. In our previous tutorials in this SQL series, we have already covered: 150+ SQL Commands Explained With Examples to help you understand every major SQL command100 SQL MCQ Tests […]Planet MySQL

Federal Judge Orders More Briefing in Challenge to NFA Registration Scheme

https://www.ammoland.com/wp-content/uploads/2022/10/POF-5PK-Suppressed-500×333.jpg

POF 5PK Suppressed
A federal judge in Missouri ordered supplemental briefing in Brown v. ATF, a case challenging the NFA’s registration scheme and regulation of suppressors and short-barreled rifles. IMG Jim Grant

A federal judge in Missouri has ordered additional briefing in a closely watched challenge to the National Firearms Act, signaling that the case raises serious unresolved questions about the government’s post-tax treatment of National Firearms Act (NFA) firearms, as well as the Second Amendment status of suppressors and short-barreled rifles.

In Brown v. Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF), Chief U.S. District Judge Stephen R. Clark of the Eastern District of Missouri issued an order on March 24, 2026, directing both sides to file supplemental briefs on several threshold and constitutional issues before the court moves further into the case.

The lawsuit was filed after Congress, through the One Big Beautiful Bill Act, reduced the NFA’s excise tax for most covered firearms to $0 while leaving the NFA’s registration regime in place. According to the order, the plaintiffs argue that Congress exceeded its enumerated powers by keeping the registration system intact after stripping away the tax that had long been used to justify the statute. The plaintiffs also argue that the NFA’s regulation of short-barreled rifles and suppressors violates the Second Amendment.

In addition to individual plaintiffs Chris Brown and Allen Mayville, the lawsuit includes Prime Protection STL, LLC, and a coalition of prominent gun-rights groups: the National Rifle Association, Firearms Policy Coalition, Second Amendment Foundation, and the American Suppressor Association. The defendants are the ATF, acting Director Daniel P. Driscoll, the Department of Justice, and Attorney General Pamela J. Bondi.

Judge Clark’s order makes clear that the court has not yet ruled on the merits. It does not strike down the NFA, enjoin enforcement, or hold that the plaintiffs are likely to prevail. What it does show is that the court believes the case presents several “novel issues” that require focused briefing before the litigation can advance.

Court Focuses First on Standing

The first issue the court wants answered is whether the plaintiffs have Article III standing to bring the case at all. Because this is a pre-enforcement challenge, the plaintiffs are not claiming they have already been prosecuted. Instead, they argue that they want to engage in conduct involving NFA-covered firearms without complying with the NFA, but are refraining because they fear federal enforcement.

Judge Clark noted that, in a pre-enforcement case, plaintiffs must show that the threatened enforcement is sufficiently imminent and that they intend to engage in conduct “arguably affected with a constitutional interest.” He specifically ordered the parties to address whether the plaintiffs’ claimed injury in Count I—the argument that Congress improperly exercised its enumerated powers—is tied to a personal constitutional interest or is instead a generalized grievance that federal courts cannot hear.

That question could be important. If the court finds the plaintiffs lack standing on that part of the case, it could narrow the dispute even if the broader Second Amendment claims remain alive.

Judge Orders Briefing on “Common Use” and “Dangerous and Unusual”

The court also wants more briefing on how modern Second Amendment doctrine applies to the NFA’s regulation of short-barreled rifles and suppressors.

Citing District of Columbia v. Heller and New York State Rifle & Pistol Association v. Bruen, Judge Clark laid out the familiar framework: when the Second Amendment’s plain text covers the conduct, the Constitution presumptively protects it, and the government must then justify its regulation by showing it is consistent with the nation’s historical tradition of firearm regulation.

But the court wants the parties to dig deeper into one of the most disputed questions in post-Bruen gun litigation—what exactly Heller’s “common use for a lawful purpose” language means.

Judge Clark ordered briefing on whether “common use” is mainly a statistical inquiry, meaning how widespread a firearm or item is among law-abiding Americans, or whether it is better understood as part of the inquiry into whether a weapon is “dangerous and unusual.” He also wants the parties to address whether the “common use” inquiry belongs at Bruen’s first step or second step, and who bears the burden at the first step.

Those are not small questions. How the court answers them could affect how lower courts analyze not just SBR restrictions, but other modern arms-related challenges as well.

Suppressors Get Their Own Threshold Question

One of the most notable portions of the order deals specifically with suppressors. Judge Clark directed the parties to address whether suppressors are actually “Arms” under the original public meaning of the Second Amendment. In doing so, the order cites several cases describing silencers as accessories rather than weapons in themselves.

That does not mean the court has adopted that view, but it shows that the suppressor portion of the case may turn first on a threshold definitional question before the court ever reaches historical analogues or broader constitutional balancing.

For gun-rights advocates, that issue is critical because suppressor litigation has increasingly focused on whether these devices should be treated as protected arms, protected components of arms, or merely regulated accessories outside the Amendment’s core protection.

Court Also Raises “Shall-Issue” and ATF Abuse Questions

The order also points to a more recent appellate development. Judge Clark cited the Fifth Circuit’s decision in United States v. Peterson, which held that the NFA’s registration regime is “presumptively constitutional because it is a shall-issue regime.” The Missouri court now wants the parties to address whether the NFA truly is a shall-issue system and, if so, whether such regimes are automatically or presumptively constitutional under Heller and Bruen.

Just as important, Judge Clark asked the parties to brief whether ATF has applied the NFA “toward abusive ends” through “exorbitant fees” or “lengthy wait times,” invoking language from Bruen’s footnote 9.

For now, the order should be read as a procedural development. However, it shows the court is taking a serious look at whether the NFA can continue to function as it has after Congress zeroed out the tax for most covered firearms, and whether the government’s regulation of suppressors and SBRs can survive under the Supreme Court’s current Second Amendment framework.

300,000 NFA Applications in First 22 Days of 2026, 150K Approved

ATF Says Brace Rule Case Is Moot, Warns Some Braced Pistols Still Face NFA Enforcement


AmmoLand Shooting Sports News

A 1970s Leather-Topped Executive Desk with a Built-In Swappable Accessory Rail

https://s3files.core77.com/blog/images/1818845_81_142871_kHbNHRx8g.jpg

Though this was designed in the 1970s, this desk looks closer to modern-day furniture than say, a desk from the 1950s.

Danish designer Alex Linder’s Executive Desk has no drawers, and features a recessed aluminum rail that takes a variety of accessories: A desk lamp, a clock, a calendar, a countdown timer (presumably for meetings), little storage bins and, this being the ’70s, an ashtray.

The user chooses where to place the accessories within the rail.

The desk surface is leather, an unusual choice both now and then.

If this thing was height-adjustable and had appeared on a current-day Kickstarter, I wouldn’t bat an eye.

Core77