Projects Feature

The Projects Feature encapsulates the creation and structural tracking of multi-repository MILTON projects.

Overview

Projects act as the foundational top-level domain within MILTON. Every Project ties together users, repositories, linked documents, and configuration profiles used throughout the remainder of the application lifecycle.

Endpoints

All project manipulation leverages FastEndpoints coupled with Wolverine CQRS messaging:

  • POST /api/projects (CreateProject.cs): Creates a new project environment (delegated to Wolverine handlers).
  • GET /api/projects (ListProjects.cs): Lists all projects providing summarized metadata (e.g., repository counts, config statuses, and temporal metadata).
  • GET /api/getprojects (GetProject.cs): Legacy fetching handler to support older internal workflows.

Data Model Intersections

The core model behind this feature is the Project entity:

  • Has a 1:1 mapping to ProjectConfig.
  • Tracks Users via ProjectMember mapping tables supporting Role-based access control (ProjectUserRole.Admin/Member).
  • Holds soft references over all associated Document instances.