Implement FrogOS Haskell eDSL compiler to validated IR #1

Closed
opened 2026-06-01 13:42:58 +02:00 by yorunikakeru · 0 comments
Owner

Goal

Implement the FrogOS configuration package as a Haskell eDSL that builds, validates, and serializes one declarative IR document.

Scope

  • Public DSL for profiles, services, conditions, policies, and actions.
  • Closed root Condition, Policy, and Action types composed from domain modules.
  • UnvalidatedConfiguration builder output.
  • Two validation levels: Haskell types for structural correctness and pure validation for semantic conflicts.
  • Stable, explicitly versioned JSON emitted only from validated IR.
  • User-defined names and compositions of built-in primitives.

Out of scope

  • Runtime planning and application.
  • Environment and resource availability checks.
  • swamp build/switch orchestration.
  • User-defined primitive nodes or plugin loading.

Tracked issues

  • #2 Define public .frog DSL surface for built-in primitives
  • #6 Implement modular IR, validation, and JSON serialization
  • #3 Compile .frog configuration into validated IR
  • #10 Add DSL architecture and validation test suite

Acceptance criteria

  • A configuration can be expressed with FrogOS DSL terms and converted to Either [ValidationError] IR.
  • Invalid structure is rejected by Haskell types.
  • Semantic validation reports all known conflicts before serialization.
  • Successful output is a versioned JSON document consumable by FrogOS.
## Goal Implement the FrogOS configuration package as a Haskell eDSL that builds, validates, and serializes one declarative IR document. ## Scope - Public DSL for profiles, services, conditions, policies, and actions. - Closed root `Condition`, `Policy`, and `Action` types composed from domain modules. - `UnvalidatedConfiguration` builder output. - Two validation levels: Haskell types for structural correctness and pure validation for semantic conflicts. - Stable, explicitly versioned JSON emitted only from validated `IR`. - User-defined names and compositions of built-in primitives. ## Out of scope - Runtime planning and application. - Environment and resource availability checks. - `swamp build/switch` orchestration. - User-defined primitive nodes or plugin loading. ## Tracked issues - [x] #2 Define public `.frog` DSL surface for built-in primitives - [x] #6 Implement modular IR, validation, and JSON serialization - [x] #3 Compile `.frog` configuration into validated IR - [x] #10 Add DSL architecture and validation test suite ## Acceptance criteria - A configuration can be expressed with FrogOS DSL terms and converted to `Either [ValidationError] IR`. - Invalid structure is rejected by Haskell types. - Semantic validation reports all known conflicts before serialization. - Successful output is a versioned JSON document consumable by FrogOS.
yorunikakeru changed title from Define FrogOS Haskell eDSL as system-level executable config to Implement FrogOS Haskell eDSL compiler to validated IR 2026-06-06 14:02:07 +02:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
FrogOS/DSL#1
No description provided.