Spensara Spensara Knowledge Base & Documentation Repository

Repository Docs & Knowledge Base

Consolidated Spensara documentation repository (722 Markdown & architecture documents in ../repository)
Built Word Documents (.docx): Spensara Overview (.docx) Capability Assessment (.docx) Brink POS Ingestion Analysis (.docx) The Borg Ingestion Architecture (.docx)

Implementation Specs (157)

Detailed engineering and feature implementation specifications.
implementation-specs/specs/CustomerCredentialTriggeredProvisioning/TASK2.2.md 1,813 bytes · Updated Oct 23, 2026 10:44 AM EDT
Raw File

TASK 2.2: Remove synchronous customer provisioning and inline credential handling from customer CRUD

Summary

Remove the synchronous provisioning path from customer create and update, and align the backend with the immediate frontend migration to separate customer writes from credential writes.

This task turns the flow boundary from TASK 1.1 into the actual implementation shape.

Dependencies

  • TASK 1.1 - Define split admin flow and credential-trigger boundaries
  • TASK 2.1 - Add background provisioning job and enqueue it from credential create and update

Files to Modify

Expected implementation touch points:

  • backend/Kds.Ai.ApiService/Services/CustomerManagementService.cs
  • backend/Kds.Ai.ApiService/Endpoints/AdminCustomerEndpoints.cs
  • frontend admin customer flow files under Front/
  • onboarding and endpoint tests under backend/tests/Kds.Ai.ApiService.Tests/

Required Behavior

  • Remove customerEtlProvisioningService.SyncAsync(...) from customer create and update.
  • Customer create and update must return without waiting for warehouse bootstrap.
  • Remove inline customer credential handling from the main customer create and update flow.
  • Keep customer detail reads able to expose ETL provisioning state.
  • Keep credential reads and writes on the dedicated credential endpoints.

Acceptance Criteria

  • [ ] Customer create/update no longer invoke synchronous provisioning
  • [ ] Customer create/update no longer own inline credential writes
  • [ ] Frontend main customer form uses the split write flow
  • [ ] Existing customer detail reads still expose provisioning state

Notes

  • This task is about flow cleanup, not source-aware bootstrap internals.
  • The UI should handle separate request timing with its own spinner behavior.