Skip to content

Consume typed run profiles in CLI and in-process control plane #198

Description

@AntoineToussaint

Problem

Mind needs two intentional Codefly runtime compositions: local (Mind plus Postgres) and SaaS (the full declared product graph). The CLI currently supports repeatable --exclude-dependency values, but no named profile. Callers therefore duplicate graph policy and embedded callers cannot select the same composition through control.RunRequest.

The shared workspace schema, validation, canonical resolution, and SDK option belong to codefly-dev/core#136. This issue implements the CLI and in-process execution surfaces using that core contract.

Required CLI contract

Both surfaces must select the identical core profile:

codefly run service mind --profile local
codefly run service mind --profile saas

plane.Run(ctx, control.RunRequest{Service: "mind/mind", Profile: "local"})

Definition of done

  • Depends on Add typed workspace run-profile contract core#136; does not duplicate the run-profile schema or resolver in CLI.
  • --profile is available on codefly run service.
  • control.RunRequest.Profile selects the identical profile through the in-process library.
  • Unknown profiles fail before agents or infrastructure start.
  • Explicit --exclude-dependency values compose additively through the canonical core resolver.
  • Excluded workspace configurations are not loaded, resolved, or injected.
  • Profiles affect run composition only and cannot alter build or managed deployment manifests.
  • Real CLI and control-plane integration tests run one fixture under local and SaaS profiles and assert the observed started-service and configuration-projection behavior. No mocks and no structural-only assertions.
  • CLI help and control-plane documentation describe the contract.
  • No compatibility alias or legacy profile syntax is introduced.

Upstream

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions