Appearance
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:
ScaffoldIntegrationsProcessextendsScaffoldProcess<ScaffoldIntegrations, ScaffoldIntegrationsOptions>with an empty constructorScaffoldIntegrationsis an empty graph root -- addScaffoldProcessGraphCollection<TKey, TGraph>properties as concepts are definedScaffoldIntegrationsOptionshas a singleReportConfigurationflag
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:
- Define graph types (e.g.,
ScaffoldIntegrationGraphProvider) - Define configure types (e.g.,
ScaffoldIntegrationConfigureProvider) - Define definition types (e.g.,
ScaffoldIntegrationDefineProvider<T>) - Create concept classes and register in the process constructor
- Add collection properties to
ScaffoldIntegrationsgraph root
Dependencies
Carrot.Data.Scaffold.Process-- core scaffolding framework- .NET 10
Build
bash
dotnet buildUsage 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
ScaffoldIntegrationsProcessconstructor and corresponding collections onScaffoldIntegrations.