Skip to content

Domain model

The domain separates desired configuration from observed GitHub state. Planning produces an explicit Change; applying produces an outcome linked to that change rather than mutating the desired or observed models in place.

UML class diagram connecting configuration policy, repository observation, capability evidence, planned changes, and applied outcomes

Open the PlantUML source

Declared-state concepts

Concept Definition
Config Composed and validated root intent for one owner, including precedence layers, classification, audit, and exclusions.
PolicySet Desired fields applicable at defaults, type, or named-repository scope.
RulesetPolicy One active branch ruleset reduced to the fields Octoform manages.
EnvironmentPolicy One named environment and optional required user reviewers.
FilePolicy One local-to-repository create-if-missing file declaration.

Observed-state concepts

Concept Definition
RepoState Inventory-level repository identity, visibility, archive status, default branch, metadata, and resolved type.
RepoDetail RepoState plus requested current settings and optional structural resources needed by planning.
RepoStructure Policy-driven observations of rulesets, environments, branch existence, file existence, and workflows naming the default branch.
CapabilityEvidence Owner and response evidence used to decide whether an operation is available, unavailable, or still unknown.

An unreadable setting is distinct from null. null can be a real GitHub value, while unreadable means Octoform cannot establish current state safely.

Planning and execution concepts

Concept Definition
Change One difference with repository, key, current and desired values, plus optional block, warning, or endpoint payload.
AppliedChange Success or failure outcome for an attempted executable change.

Blocked changes remain Change instances so reports preserve intent and reason. They have no AppliedChange because the applier never receives them. See state models for the lifecycle.