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/TASK3.1.md 1,888 bytes · Updated Oct 23, 2026 10:44 AM EDT
Raw File

TASK 3.1: Resolve enabled source services and extend bootstrap requests

Summary

Extend provisioning logic so it resolves the enabled source-service set for a customer and passes that set into tenant bootstrap requests.

This task removes the current hardcoded single-source provisioning decision and introduces the bootstrap request model needed for selective staging.

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/CustomerEtlProvisioningService.cs
  • backend/Kds.Ai.Warehouse/Models/TenantWarehouseBootstrapRequest.cs
  • backend/Kds.Ai.Data/Entities/CustomerCredentialEntry.cs consumers as needed
  • related tests under backend/tests/Kds.Ai.ApiService.Tests/

Required Behavior

  • Resolve enabled source services from current customer credentials.
  • Use CustomerCredentialEntry.Service as the source selector.
  • Read protected credential payload only when service-specific runtime flags such as Enabled must be evaluated.
  • Extend TenantWarehouseBootstrapRequest so it can carry the enabled service set.
  • Keep the implementation extensible for future services even though the current concrete service is BrinkPos.

Acceptance Criteria

  • [ ] Provisioning resolves enabled services from current credentials
  • [ ] CustomerCredentialEntry.Service is the bootstrap routing selector
  • [ ] Bootstrap request carries enabled service information
  • [ ] The design remains extensible for future services

Notes

  • Do not teach bootstrap routing to inspect opaque protected payloads for source identity.
  • This task defines the request model and service-resolution logic, not the SQL loader changes.