diff --git a/.conflow.yaml b/.conflow.yaml new file mode 100644 index 0000000..e083161 --- /dev/null +++ b/.conflow.yaml @@ -0,0 +1,38 @@ +# conflow pipeline - Full generate → validate → export +version: "1" +name: "statistease" + +stages: + - name: "generate" + description: "Generate configuration using Nickel" + tool: + type: nickel + command: export + file: configs/config.ncl + format: json + input: "configs/config.ncl" + output: generated/config.json + + - name: "validate" + description: "Validate against CUE schema" + tool: + type: cue + command: vet + schemas: + - schemas/config.cue + input: + from_stage: generate + depends_on: + - generate + + - name: "export" + description: "Export final configuration as YAML" + tool: + type: cue + command: export + out_format: yaml + input: + from_stage: generate + output: deploy/config.yaml + depends_on: + - validate diff --git a/configs/config.ncl b/configs/config.ncl new file mode 100644 index 0000000..5731962 --- /dev/null +++ b/configs/config.ncl @@ -0,0 +1,11 @@ +# Configuration generation +{ + name = "my-app", + replicas = + let env = "dev" in + if env == "prod" then 5 + else if env == "staging" then 3 + else 1, + port = 8080, + env = "dev", +} diff --git a/schemas/config.cue b/schemas/config.cue new file mode 100644 index 0000000..71e74b4 --- /dev/null +++ b/schemas/config.cue @@ -0,0 +1,9 @@ +// Configuration schema +package config + +#Config: { + name: string + replicas: int & >=1 + port: int & >=1 & <=65535 + env: string +} diff --git a/wokelangiser.toml b/wokelangiser.toml new file mode 100644 index 0000000..58865e8 --- /dev/null +++ b/wokelangiser.toml @@ -0,0 +1,26 @@ +# SPDX-License-Identifier: PMPL-1.0-or-later +# wokelangiser manifest for statistease + +[project] +name = "statistease" + +[consent] +gdpr = true +ccpa = true +default-state = "opt-out" +categories = ["functional", "analytics"] + +[accessibility] +wcag-level = "AA" +check-contrast = true +check-alt-text = true +check-aria = true +min-contrast-ratio = 4.5 + +[i18n] +default-locale = "en-GB" +supported-locales = ["en-GB", "fr-FR", "de-DE"] +extract-strings = true + +[report] +format = "text"