Skip to content

Carrot.Data.Scaffold.Process.Integrations

net

Platform integrations scaffolding process -- placeholder for discovering integration concepts (e.g., payment processors, email providers, auth services) and their concrete implementations, and building a graph for integration code generation.

Installation

Project reference:

xml
<ProjectReference Include="..\Carrot.Data.Scaffold.Process.Integrations\Carrot.Data.Scaffold.Process.Integrations.csproj" />

Architecture

Current State

The package is wired up and ready for extension but has no concepts registered yet:

  • ScaffoldIntegrationsProcess extends ScaffoldProcess<ScaffoldIntegrations, ScaffoldIntegrationsOptions> with an empty constructor
  • ScaffoldIntegrations is an empty graph root -- add ScaffoldProcessGraphCollection<TKey, TGraph> properties as concepts are defined
  • ScaffoldIntegrationsOptions has a single ReportConfiguration flag

Intended Design

Integration concepts are expected to model abstract integration categories (e.g., "PaymentProcess") with concrete provider implementations (e.g., "Stripe", "PayPal"). This maps naturally to the IntrospectiveAbstract concept flavor from the core framework.

Extending

Follow the standard scaffolding pattern:

  1. Define graph types (e.g., ScaffoldIntegrationGraphProvider)
  2. Define configure types (e.g., ScaffoldIntegrationConfigureProvider)
  3. Define definition types (e.g., ScaffoldIntegrationDefineProvider<T>)
  4. Create concept classes and register in the process constructor
  5. Add collection properties to ScaffoldIntegrations graph root

Dependencies

  • Carrot.Data.Scaffold.Process -- core scaffolding framework
  • .NET 10

Build

bash
dotnet build

Usage Guide

Getting Started

csharp
using Carrot.Data.Scaffold;
using Carrot.Data.Scaffold.Process;

var process = new ScaffoldIntegrationsProcess(
    typeof(MyAssemblyMarker).Assembly,
    new ScaffoldIntegrationsOptions(),
    log);

ScaffoldIntegrations result = process.Scaffold();

Current State

This package is a placeholder. The process is wired up and functional but has no concepts registered -- Scaffold() will return an empty ScaffoldIntegrations graph root.

What's Coming

Integration concepts will model abstract integration categories (e.g., payment processing, email, authentication) with concrete provider implementations (e.g., Stripe, SendGrid, Auth0). This maps to the IntrospectiveAbstract concept flavor, where the abstract type represents the integration category and concrete types represent specific providers.

Tips / Gotchas

  • The process runs cleanly with zero concepts -- calling Scaffold() on the empty process is safe and returns an empty graph root.
  • Extend by adding concepts in the ScaffoldIntegrationsProcess constructor and corresponding collections on ScaffoldIntegrations.

Carrot