Skip to content
Back

Coagro ID

In productionRole: Lead developerAngularTypeScriptSupabasePlaywright

Grupo Coagro's access-management portal in Angular: managers register employees and choose which apps and which Winthor branches each one can use, on Supabase Auth with RLS and an Edge Function that keeps the service key server-side.

Coagro ID

// Overview

Grupo Coagro's access-management web portal: managers register employees — directly or from the Winthor employee records — and choose which apps, with which role and in which ERP branches, each one can use.

// The challenge

With several apps on the same Supabase, each employee's access — which app, which role, which branch — needs a single place. And creating users requires the service key, which must never reach the browser.

// The solution

Zoneless Angular 21 with Signals and a feature-first architecture. Admin operations go through an Edge Function that requires a JWT and the access-management permission — only it uses the service key — and the build aborts if the public key is actually the service key. Branch access is saved as a diff, so a partial failure never revokes all of someone's access, and the migrations inspect the policies before touching the tables mirrored from Winthor.

My role

Lead developer: 38 of 53 commits, in August 2026. A Grupo Coagro system.

Tech stack

AngularTypeScriptSignalsSupabase AuthEdge FunctionsJestPlaywright

// Screens

Employee list with ID number, login and permission type
User editor: enabled apps with permission type and ERP branch access
New-user form searching a Winthor ERP employee to link to the account

// Outcome and evidence

unit tests (Jest)
205
E2E tests (Playwright)
23

Looking for this kind of work?