Kevrion
Workshop Management Platform
Management software designed around real automotive workshop workflows.
Kevrion is a management product shaped around the day-to-day needs of automotive workshops, bringing customer, vehicle and operational information into one system.
Problem
Workshop information often lives across disconnected documents and tools. Kevrion explores a more coherent workflow built around the way the business actually operates.
Constraints
- Organization-aware data must remain isolated across database and private storage.
- OCR output must be reviewed before changing vehicle data.
- Functional staging must not be presented as production SaaS.
Solution
A database-backed application that connects customer and vehicle records with workshop workflows and document processing.
The technical layers that turn the product idea into a working system.
Workshop domain
organizations, clientes, vehiculos and expedientes connect the real workflow to photos, documents and parts.
Tenant boundary
RLS scopes rows; private buckets and signed URLs protect stored resources.
Technical-sheet OCR
An authenticated function requests strict JSON, then an editable form requires confirmation.
Staging workflow
Invitations, password setup and recovery exist in staging while main stays untouched.
Select a node to inspect its role and relationships.
The organization-aware workshop record model.
Enforce tenant scope with RLS
- Context
- Organization data cannot rely on client filtering.
- Decision
- Apply PostgreSQL RLS to organization-aware rows.
- Trade-off
- Every schema change requires policy review.
- Revisit when
- If the tenancy model changes.
KEV-INC-01Provisioning trigger missingResolved
- Symptom
- New auth users lacked expected application data.
- Root cause
- on_auth_user_created / handle_new_user() was missing.
- Fix / mitigation
- Restored the function and trigger.
- Lesson
- Authentication and provisioning are separate.
- Status
- Resolved
KEV-INC-02PGRST201 relationship ambiguityResolved
- Symptom
- PostgREST could not resolve an embed.
- Root cause
- Migrations introduced ambiguous relationships.
- Fix / mitigation
- Used explicit foreign-key names.
- Lesson
- Implicit resolution breaks as schemas evolve.
- Status
- Resolved
KEV-INC-03Mobile uploads failedResolved
- Symptom
- Uploads failed in a real mobile HTTP context.
- Root cause
- crypto.randomUUID() was unavailable.
- Fix / mitigation
- Added crypto.getRandomValues() fallback.
- Verification
- Camera, gallery, multi-select and types were physically retested.
- Lesson
- Platform assumptions need real-device tests.
- Status
- Resolved
KEV-INC-05OCR looked brokenResolved
- Symptom
- OCR failed during authentication validation.
- Root cause
- The server environment lacked outbound network; OpenAI never received the image.
- Fix / mitigation
- Separated environment diagnosis from application logic.
- Lesson
- Integration failure is not automatically algorithm failure.
- Status
- Resolved
KEV-INC-06Magic link was not onboardingPartially validated
- Symptom
- The link authenticated but did not establish reusable password setup.
- Root cause
- Authentication was treated as the whole onboarding journey.
- Fix / mitigation
- Added password setup and recovery in staging.
- Verification
- Full E2E remains pending without SUPABASE_SERVICE_ROLE_KEY.
- Lesson
- Auth, provisioning and onboarding are distinct.
- Status
- Partially validated
- Tenant isolation must be tested, not assumed.
- Real mobile devices reveal desktop-blind failures.
- Unknown or redacted OCR fields should remain empty.
- Complete invitation/recovery E2E and office→admin testing.
- Refine color, fuel and make/model extraction with more real sheets.
- Run the prepared real-workshop pilot.
No cross-tenant findings in documented DB, route and private-storage checks; both users were admins.
Visible Citroën data extracted; redacted plate and VIN stayed empty.
Camera, gallery, multi-select and categories were exercised.
Latest recorded checkpoint also reports typecheck and build passing.
office→admin escalation and complete invitation E2E are not validated.