Skip to content

CoreConfig v0.2 fields #32

@mathieusouflis

Description

@mathieusouflis

Problem statement

CoreConfig in internal/spec/spec.go only has fields for the v0.1 Go generator (linter, formatter, CI, deployment, monitoring, tracking). The new v0.2 generators need additional fields that dot init will ask for and that generators will read.

Proposed solution

Add the following fields to CoreConfig:

Architecture         string // "mvc" | "clean" | "hexagonal"
FrontendArchitecture string // "feature-sliced" | "atomic" | "container-presentational"
DeploymentTarget     string // "aws" | "gcp" | "none"
DeploymentType       string // "terraform" | "kubernetes" | "github-actions" | "all"
GatewayType          string // "nginx" | "kong" | "traefik" | "none"
ServiceComm          string // "rest" | "grpc" | "both"

Add new ProjectType constant: microservices.

Update the dot init TUI survey in cmd/dot/cmd_init.go to ask for these fields contextually (e.g. Architecture only appears for API project types; GatewayType only for microservices).

Alternatives considered

Store these in Extensions map[string]any (the community generator escape hatch). Rejected — these are official generator fields; they belong in the typed struct.

Area

Core

Additional context

Depends on: Architecture pattern decision (to know if Architecture is a top-level field or goes elsewhere).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions