Skip to content

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:

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

Extending

To add cloud concepts, follow the same pattern as Carrot.Data.Scaffold.Process.Api or Carrot.Data.Scaffold.Process.Database:

  1. Define graph types (e.g., ScaffoldCloudGraphResource)
  2. Define configure types (e.g., ScaffoldCloudConfigureResource)
  3. Define definition types (e.g., ScaffoldCloudDefineResource)
  4. Create concept classes (e.g., ScaffoldCloudProcessConceptResource)
  5. Register concepts in ScaffoldCloudProcess constructor
  6. Add collection properties to ScaffoldCloud 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 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 ScaffoldCloudProcess constructor and corresponding collections on ScaffoldCloud.

Carrot