Appearance
Carrot.Data.Scaffold.Process.Cloud
net
Cloud IaC scaffolding process -- placeholder for discovering cloud resource definitions and building a graph for infrastructure-as-code generation, deployment scripts, etc.
Installation
Project reference:
xml
<ProjectReference Include="..\Carrot.Data.Scaffold.Process.Cloud\Carrot.Data.Scaffold.Process.Cloud.csproj" />Architecture
Current State
The package is wired up and ready for extension but has no concepts registered yet:
ScaffoldCloudProcessextendsScaffoldProcess<ScaffoldCloud, ScaffoldCloudOptions>with an empty constructorScaffoldCloudis an empty graph root -- addScaffoldProcessGraphCollection<TKey, TGraph>properties as concepts are definedScaffoldCloudOptionshas a singleReportConfigurationflag
Extending
To add cloud concepts, follow the same pattern as Carrot.Data.Scaffold.Process.Api or Carrot.Data.Scaffold.Process.Database:
- Define graph types (e.g.,
ScaffoldCloudGraphResource) - Define configure types (e.g.,
ScaffoldCloudConfigureResource) - Define definition types (e.g.,
ScaffoldCloudDefineResource) - Create concept classes (e.g.,
ScaffoldCloudProcessConceptResource) - Register concepts in
ScaffoldCloudProcessconstructor - Add collection properties to
ScaffoldCloudgraph 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 ScaffoldCloudProcess(
typeof(MyAssemblyMarker).Assembly,
new ScaffoldCloudOptions(),
log);
ScaffoldCloud 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 ScaffoldCloud graph root.
What's Coming
Cloud concepts will follow the same define/configure/graph pattern as the API and Database packages. Expected concepts include cloud resources, deployment targets, networking, storage, compute, etc.
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
ScaffoldCloudProcessconstructor and corresponding collections onScaffoldCloud.