Conman V1 Scope

Conman V1 Scope Specification

1) Objective

Define and deliver v1 of Conman as a Git-backed configuration manager for DxFlow-style config repositories.

Conman v1 model:

2) Domain Terminology

3) Core V1 Decisions

3.1 Baseline and branching

3.2 Workspace model

3.3 Changeset model

3.4 Review and queue model

3.5 Release and deployment model

3.6 Hotpatch and rollback

3.7 Edit and commit strategy

3.8 File scope and guardrails

3.9 Temporary environments

3.10 Auth, membership, and notifications

3.11 API conventions

3.12 Runtime profiles

4) Roles and RBAC

Roles:

Notes:

4.1 Permission matrix (v1)

Capability user reviewer config_manager app_admin
Read app/repo metadata Y Y Y Y
Create/edit own workspace Y Y Y Y
Create/modify own changeset Y Y Y Y
Submit changeset Y Y Y Y
Comment in review Y Y Y Y
Approve/request changes/reject N Y Y Y
Move conflicted/needs_revalidation to draft Own Own Any Any
Assemble release from queue N N Y Y
Publish release N N Y Y
Deploy/promote release N N Y Y
Skip stage / concurrent deploy approval N Y Y Y
Invite users N N N Y
Manage app settings/roles/envs N N N Y
Manage persistent runtime profiles directly N N N Y
Reveal secret plaintext N N N Y

Own means for items authored by that user.

5) State Machines

5.1 Changeset state machine

draft
  -> submitted
  -> in_review
      -> approved
      -> changes_requested -> draft
      -> rejected
approved
  -> queued
queued
  -> released
  -> conflicted -> draft
  -> needs_revalidation -> draft
released
  -> terminal
rejected
  -> terminal (or clone/new changeset)

Rules:

5.2 Release state machine

draft_release
  -> assembling
  -> validated
  -> published
  -> deployed_partial
  -> deployed_full
  -> rolled_back (optional)

5.3 Deployment state machine

pending -> running -> succeeded
                   -> failed
                   -> canceled

6) Git Mapping and Flow

6.1 Mapping

6.2 Queue-first release composition

  1. Select queued changesets subset.
  2. Config manager orders selected items manually.
  3. Compose candidate in selected order.
  4. Resolve failures:
    • conflicts -> mark specific changesets conflicted
    • test failures -> mark needs_revalidation
  5. Successful compose publishes release tag and updates integration branch accordingly.
  6. Run post-publish revalidation for remaining queued items.

6.3 "Up to date with integration branch" gate

7) Data Model (MongoDB)

Git remains file truth. MongoDB tracks workflow state and auditability.

7.1 Collections

7.2 Important fields

apps

environments

runtime_profiles

runtime_profile_revisions

changeset_profile_overrides

migration_executions

workspaces

changesets

changeset_revisions

release_batches

deployments

temp_environments

audit_events

8) API Contract (v1)

Base path: /api

8.1 Apps

8.2 Workspaces

8.3 Workspace files

8.4 Changesets

POST .../submit responses include an included_profile_overrides summary.

8.5 Diffs, comments, and AI

Semantic diff API contract (v1 standard):

type SemanticConfigType =
  | 'entity'
  | 'page'
  | 'queue'
  | 'provider'
  | 'workflow'
  | 'tenant'
  | 'menu'
  | 'asset'
  | 'script';

type SemanticOperation = 'added' | 'modified' | 'removed' | 'moved';

interface SemanticChange {
  id: string;
  configType: SemanticConfigType;
  operation: SemanticOperation;
  target: string;
  description: string;
  filePath: string;
  lineStart?: number;
  lineEnd?: number;
  details?: Record<string, unknown>;
}

interface SemanticDiffResponse {
  baseSha: string;
  headSha: string;
  summary: {
    totalChanges: number;
    byConfigType: Record<SemanticConfigType, number>;
  };
  changes: SemanticChange[];
}

8.6 Releases

8.7 Environments and deployments

8.8 Runtime profiles

PATCH .../runtime-profiles/:profileId allows direct emergency edits by app_admin; resulting drift still blocks deployment until revalidation.

8.9 Temp environments and jobs

8.10 Notifications and auth

9) Asynchronous Jobs

Job types:

Job states:

Each job stores structured logs and terminal result payload.

10) Notifications (Email)

v1 event set:

Per-user single on/off toggle in v1.

11) Audit Requirements

Audit everything immutable and append-only:

Retention: keep forever in v1.

12) UI Component Scope (v1)

13) Explicit V1 Constraints

14) Delivery Plan

Phase A: Foundations

Phase B: Queue and releases

Phase C: Environments and temp envs

Phase D: Hardening

15) Open Items to Confirm During Implementation