Latest Updates

Documenting code, one commit at a time.

Improving Error Handling in the Reimpact/platform Project

This post details improvements to error handling within the Reimpact/platform project, focusing on delete operations and providing more specific and informative error messages.

The Problem

Previously, the platform had a generic catch-all for delete errors. This made it difficult to distinguish between expected errors, such as foreign key violations, and unexpected errors, hindering debugging

Read more

Handling Large Uploads and Improving Error Notifications in a Filament Application

When working with the Reimpact/platform project, we encountered an issue with large upload deletions that resulted in failures and an unhelpful JSON response. This post describes how we resolved the deletion failure and improved the user experience by displaying a Filament notification instead of a raw JSON page.

The Problem

Deleting a large number of generated reports and calculated data

Read more
PHP Filament

Adding Delete Actions to Filament Resources

The Reimpact/platform project involves building a comprehensive platform, and a recent update focused on enhancing the user experience when managing data through Filament resources. This post details the addition of delete actions to a MassiveUpload resource, streamlining data management directly from the resource table and view pages.

The Enhancement

The primary feature added is the ability

Read more

Optimizing Legacy Database Cleanup in Reimpact Platform

Introduction

When migrating or refactoring a large platform like Reimpact, cleaning up legacy database structures is a common but delicate task. Foreign key constraints can often block the removal of tables, requiring a careful approach to avoid data loss or application downtime.

The Problem: Foreign Key Dependencies

In this case, the deploy process was failing during the removal of

Read more

Enhancing Filament Resource Testing with Pest and Tenant Awareness

Introduction

The Reimpact/platform project is undergoing improvements to its testing infrastructure, specifically focusing on Filament resources. The goal is to ensure comprehensive test coverage for CRUD operations across various resources, while also addressing tenant-specific data handling.

The Challenge

Previously, testing Filament resources lacked sufficient coverage, especially

Read more

Making Database Migrations Idempotent: Preventing Duplicate Table Errors

This post discusses how to create idempotent database migrations, specifically focusing on preventing duplicate table errors within the Reimpact/platform project.

The Problem

During development and deployment, database migrations are essential for evolving the application's schema. However, if migrations are not carefully designed, they can lead to issues, particularly when the same

Read more

Tenant Migrations: Ensuring Data Consistency in Multi-Tenant Applications

When building multi-tenant applications with Laravel, ensuring each tenant's database schema is correctly migrated can be a challenge. In the Reimpact platform, we encountered issues with tenant schemas either re-running all migrations on each deploy or skipping them entirely. This led to potential data inconsistencies and application instability.

The Problem

Without a dedicated migration

Read more

Ensuring Tenant Context for Filament Uploads in Laravel

Introduction

When building multi-tenant applications with Laravel and Filament, it's crucial to ensure that operations are performed within the correct tenant context. This post addresses a common issue encountered when using Filament's massive upload feature where the tenant context was not active during Livewire form submissions, leading to data integrity violations.

The Problem: Tenant

Read more
PHP Filament

Enhancing Filament-Based Applications: Ensuring Job Dispatch and Optimizing Resource Allocation

Introduction

Ensuring background jobs are correctly dispatched and optimizing resource allocation are critical for application stability and performance. This post explores recent enhancements to a Filament-based platform, focusing on ensuring consistent job dispatch across modules and improving worker allocation for resource-intensive tasks.

Ensuring Consistent Job Dispatch

Read more

Streamlining Filament Forms with Namespace Updates and Tenant Context Resolution

Keeping dependencies up-to-date can be a headache, especially when upgrading major versions of frameworks. Let's look at how recent changes in the Reimpact platform addressed a namespace change in Filament v5 and improved tenant context resolution.

The Challenge: Filament v5 Namespace Update

Filament is a popular Rapid Application Development (RAD) framework for Laravel.

Read more