Latest Updates

Documenting code, one commit at a time.

Streamlining Onboarding with Middleware Bypass Logic

Introduction

Imagine a scenario where specific user roles within an application are needlessly subjected to onboarding processes designed for different user groups. This post explores how to selectively bypass middleware to optimize the user experience for marketing admins in the 'landing' project.

The Problem: Unnecessary Onboarding Steps

In many applications, middleware is used to

Read more

Refactoring Primary Keys with Foreign Key Constraints in Reimpact Platform

When refactoring database schemas, developers often encounter challenges with primary and foreign key relationships. In the Reimpact platform, a recent update focused on modifying a primary key (priority_product ID) while ensuring existing foreign key references remained valid. This process highlights the importance of managing dependencies during schema alterations.

The Problem

Read more

Validating Livewire Requests with Middleware in the Platform Project

In the Reimpact/platform project, a recent update addresses an issue where Livewire update requests were being incorrectly blocked by a custom middleware. This post details the problem and the solution implemented.

The Problem

The ValidationUserMiddleware was designed to handle user authentication and validation for incoming requests. However, it was inadvertently blocking unauthenticated

Read more

Handling Livewire Requests with Laravel Middleware

The Problem

In a Laravel application, particularly when using Livewire, maintaining consistent authentication behavior across different types of requests can be tricky. A common issue arises when Livewire requests, which often send Content-Type: application/json, are not correctly handled by authentication middleware, leading to unexpected 401 errors instead of redirects to the login page.

Read more

Troubleshooting 401 Errors After Login in Laravel Applications

Introduction

Experiencing a 401 Unauthorized error immediately after a successful login can be a frustrating issue in Laravel applications. This often stems from incorrect redirection targets or misconfigured middleware. Let's explore how to diagnose and resolve such problems, specifically within the context of projects using middleware for access control.

Understanding the Problem

Read more

Tenant Context Troubles: Debugging Queue Deserialization in a Multi-Tenant Laravel App

In the Reimpact/platform project, we encountered a tricky issue with queue deserialization in our multi-tenant environment. This post details the problem, our investigation, and the solution we implemented.

The Problem

Our application uses a queue to generate reports. A GenerateReportJob is dispatched, serializing the GeneratedReport model.

Read more

Tenant Schema Resetting Too Early: A Laravel Livewire Gotcha

The Reimpact/platform project focuses on providing a multi-tenant application structure. Recently, we encountered an issue with tenant database schemas being reset prematurely during Livewire updates. This post dives into the problem and the solution implemented.

The Problem

In a multi-tenant application, each tenant typically has its own database schema. We use middleware to set the correct

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

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