Skip to content

Commit 1e2798f

Browse files
authored
chore(schemas): rename schemas.opendecree.io → schemas.opendecree.dev (#259)
Mechanical rename across docs, design brief, README, code, tests, and meta-schema YAML/JSON sources. Refs #125.
1 parent 3e8fca1 commit 1e2798f

12 files changed

Lines changed: 27 additions & 27 deletions

File tree

.agents/context/schema-spec.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ All changes are **breaking**. Per project policy (no backward compat pre-product
5454
### Final top-level shape (v0.1.0)
5555

5656
```yaml
57-
# yaml-language-server: $schema=https://schemas.opendecree.io/schema/v0.1.0/decree.json
57+
# yaml-language-server: $schema=https://schemas.opendecree.dev/schema/v0.1.0/decree.json
5858

5959
spec_version: v1 # required, const "v1" (the decree format version)
60-
$schema: https://schemas.opendecree.io/schema/v0.1.0/decree.json # optional
60+
$schema: https://schemas.opendecree.dev/schema/v0.1.0/decree.json # optional
6161
$id: urn:decree:schema:payments:v3 # optional
6262
name: payments # required, slug ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
6363
description: Payments service config # optional
@@ -140,12 +140,12 @@ Meta-schema encodes this via `allOf` with 4 `if/then` branches keyed on `type`.
140140

141141
- **Canonical filenames:** `decree.schema.yaml`, `decree.config.yaml`
142142
- **Generic globs:** `*.decree.schema.yaml`, `*.decree.config.yaml` (for repos with multiple schemas)
143-
- **Modeline:** `# yaml-language-server: $schema=https://schemas.opendecree.io/schema/v0.1.0/decree.json` on line 1 of every example
143+
- **Modeline:** `# yaml-language-server: $schema=https://schemas.opendecree.dev/schema/v0.1.0/decree.json` on line 1 of every example
144144
- **CLI stays filename-agnostic** — `decree apply some-other-name.yaml` must keep working. The convention drives editor discovery only.
145145

146146
## Publishing
147147

148-
- **URL pattern:** `https://schemas.opendecree.io/schema/v{MAJOR}.{MINOR}.{PATCH}/decree.json`
148+
- **URL pattern:** `https://schemas.opendecree.dev/schema/v{MAJOR}.{MINOR}.{PATCH}/decree.json`
149149
- **Pre-stable:** full SemVer in path (`/v0.1.0/`)
150150
- **Post-1.0.0:** switch to major-only paths (`/v1/`) with permanent redirects from historical full-SemVer URLs
151151
- **Hosting:** TBD (GitHub Pages on a dedicated repo, or static-hosted redirect to raw GitHub content). Must be HTTPS, stable, `Content-Type: application/schema+json`.
@@ -155,7 +155,7 @@ Meta-schema encodes this via `allOf` with 4 `if/then` branches keyed on `type`.
155155
"name": "OpenDecree Schema",
156156
"description": "OpenDecree configuration schema",
157157
"fileMatch": ["decree.schema.yaml", "decree.schema.yml", "*.decree.schema.yaml", "*.decree.schema.yml"],
158-
"url": "https://schemas.opendecree.io/schema/v0.1.0/decree.json"
158+
"url": "https://schemas.opendecree.dev/schema/v0.1.0/decree.json"
159159
}
160160
```
161161

@@ -191,7 +191,7 @@ Meta-schema encodes this via `allOf` with 4 `if/then` branches keyed on `type`.
191191

192192
### Phase C — Publishing
193193

194-
- #125 — Host meta-schema at `https://schemas.opendecree.io/schema/v0.1.0/decree.json`
194+
- #125 — Host meta-schema at `https://schemas.opendecree.dev/schema/v0.1.0/decree.json`
195195
- #126 — Submit schemastore.org PR
196196

197197
### Phase D — Docs
@@ -205,7 +205,7 @@ Meta-schema encodes this via `allOf` with 4 `if/then` branches keyed on `type`.
205205

206206
## Open questions
207207

208-
- **Hosting target for `schemas.opendecree.io`** — dedicated GitHub Pages repo? Cloudflare redirect to raw GitHub content? Needs DNS + CORS setup.
208+
- **Hosting target for `schemas.opendecree.dev`** — dedicated GitHub Pages repo? Cloudflare redirect to raw GitHub content? Needs DNS + CORS setup.
209209
- **Bundling tool** — hand-rolled Python script vs off-the-shelf (e.g. `json-dereference-cli`). Go with off-the-shelf if one exists and is maintained.
210210
- **Does the CLI emit `$schema`/`$id` on export?** — `decree schema export` should probably inject `$schema` by default, make `$id` opt-in.
211211
- **Post-v1.0.0 URL migration** — when the spec promotes to 1.0.0, keep `/v0.1.0/` live forever or redirect? Preserve forever matches OpenAPI's dated-URL practice.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -336,8 +336,8 @@ Values use a `TypedValue` oneof — integer, number, string, bool, timestamp, du
336336

337337
The schema YAML format authors write to define their config shape is documented in [Schema Format](docs/concepts/schema-format.md). The corresponding [JSON Schema 2020-12 meta-schemas](docs/concepts/meta-schema.md) for editor IntelliSense and CI validation are published at:
338338

339-
- `https://schemas.opendecree.io/schema/v0.1.0/decree-schema.json` — validates `*.decree.schema.yaml`
340-
- `https://schemas.opendecree.io/schema/v0.1.0/decree-config.json` — validates `*.decree.config.yaml`
339+
- `https://schemas.opendecree.dev/schema/v0.1.0/decree-schema.json` — validates `*.decree.schema.yaml`
340+
- `https://schemas.opendecree.dev/schema/v0.1.0/decree-config.json` — validates `*.decree.config.yaml`
341341

342342
All endpoints that accept a tenant or schema ID also accept the **name slug** — the server resolves automatically. Use UUIDs or human-readable names interchangeably:
343343

docs/concepts/meta-schema.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ YAML is the human-edited source of truth. JSON copies are generated by [`scripts
4545
Add the modeline on line 1 of your schema or config file. VS Code, Neovim, IntelliJ, Helix, and Zed via [yaml-language-server](https://github.com/redhat-developer/yaml-language-server) auto-apply the schema for autocompletion and inline error highlighting:
4646

4747
```yaml
48-
# yaml-language-server: $schema=https://schemas.opendecree.io/schema/v0.1.0/decree-schema.json
48+
# yaml-language-server: $schema=https://schemas.opendecree.dev/schema/v0.1.0/decree-schema.json
4949
spec_version: v1
5050
name: payments
5151
fields:
@@ -56,7 +56,7 @@ fields:
5656
For config files:
5757
5858
```yaml
59-
# yaml-language-server: $schema=https://schemas.opendecree.io/schema/v0.1.0/decree-config.json
59+
# yaml-language-server: $schema=https://schemas.opendecree.dev/schema/v0.1.0/decree-config.json
6060
spec_version: v1
6161
values:
6262
payments.fee:
@@ -70,11 +70,11 @@ Run [`check-jsonschema`](https://github.com/python-jsonschema/check-jsonschema)
7070
```bash
7171
pip install check-jsonschema
7272
check-jsonschema \
73-
--schemafile https://schemas.opendecree.io/schema/v0.1.0/decree-schema.json \
73+
--schemafile https://schemas.opendecree.dev/schema/v0.1.0/decree-schema.json \
7474
'**/*.decree.schema.yaml'
7575
7676
check-jsonschema \
77-
--schemafile https://schemas.opendecree.io/schema/v0.1.0/decree-config.json \
77+
--schemafile https://schemas.opendecree.dev/schema/v0.1.0/decree-config.json \
7878
'**/*.decree.config.yaml'
7979
```
8080

@@ -92,10 +92,10 @@ Any [JSON Schema 2020-12 validator](https://json-schema.org/implementations) can
9292
## URL scheme + versioning
9393

9494
```
95-
https://schemas.opendecree.io/schema/v{MAJOR}.{MINOR}.{PATCH}/decree-{schema|config}.json
95+
https://schemas.opendecree.dev/schema/v{MAJOR}.{MINOR}.{PATCH}/decree-{schema|config}.json
9696
```
9797
98-
**Pre-stable (current):** full SemVer in the path — `https://schemas.opendecree.io/schema/v0.1.0/...`. Each release of the meta-schema is published at its exact version path forever; older versions stay reachable for tools that pin a specific version.
98+
**Pre-stable (current):** full SemVer in the path — `https://schemas.opendecree.dev/schema/v0.1.0/...`. Each release of the meta-schema is published at its exact version path forever; older versions stay reachable for tools that pin a specific version.
9999
100100
**Post-1.0.0 (future):** switch to major-only paths (`/v1/`) with permanent redirects from historical full-SemVer URLs. Matches the OpenAPI 3.x dated-URL practice.
101101

docs/concepts/schema-format.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,18 @@ The canonical reference for the **decree.schema.yaml** format — every top-leve
1414
Place the modeline on line 1 of every file so editors with [yaml-language-server](https://github.com/redhat-developer/yaml-language-server) auto-apply schema validation and IntelliSense:
1515

1616
```yaml
17-
# yaml-language-server: $schema=https://schemas.opendecree.io/schema/v0.1.0/decree-schema.json
17+
# yaml-language-server: $schema=https://schemas.opendecree.dev/schema/v0.1.0/decree-schema.json
1818
```
1919

2020
The CLI is filename-agnostic — `decree apply some-other-name.yaml` keeps working. The convention drives editor discovery only.
2121

2222
## Top-level shape
2323

2424
```yaml
25-
# yaml-language-server: $schema=https://schemas.opendecree.io/schema/v0.1.0/decree-schema.json
25+
# yaml-language-server: $schema=https://schemas.opendecree.dev/schema/v0.1.0/decree-schema.json
2626

2727
spec_version: v1 # required, const "v1"
28-
$schema: https://schemas.opendecree.io/schema/v0.1.0/decree-schema.json # optional
28+
$schema: https://schemas.opendecree.dev/schema/v0.1.0/decree-schema.json # optional
2929
$id: urn:decree:schema:payments:v3 # optional URN
3030

3131
name: payments # required slug

docs/concepts/schemas-and-fields.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Published versions are immutable — you cannot change their fields. To evolve a
3030
A small schema in YAML:
3131

3232
```yaml
33-
# yaml-language-server: $schema=https://schemas.opendecree.io/schema/v0.1.0/decree-schema.json
33+
# yaml-language-server: $schema=https://schemas.opendecree.dev/schema/v0.1.0/decree-schema.json
3434
spec_version: v1
3535
name: payments
3636
description: Payment processing configuration

docs/getting-started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export DECREE_SUBJECT=admin@example.com
3636
A schema defines the structure of your configuration — what fields exist, their types, and constraints. Create a file called `decree.schema.yaml` (or `<name>.decree.schema.yaml` if your repo holds multiple schemas):
3737

3838
```yaml
39-
# yaml-language-server: $schema=https://schemas.opendecree.io/schema/v0.1.0/decree-schema.json
39+
# yaml-language-server: $schema=https://schemas.opendecree.dev/schema/v0.1.0/decree-schema.json
4040
spec_version: "v1"
4141
name: payments
4242
description: Payment processing configuration

internal/schema/yaml.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const (
1414
yamlSpecVersionV1 = "v1"
1515
// metaSchemaURL is the canonical URL of the meta-schema that validates
1616
// decree.schema.yaml documents at this spec version. Emitted on export.
17-
metaSchemaURL = "https://schemas.opendecree.io/schema/v0.1.0/decree.json"
17+
metaSchemaURL = "https://schemas.opendecree.dev/schema/v0.1.0/decree.json"
1818
)
1919

2020
// schemaURNPattern matches decree schema URNs: urn:decree:schema:<segment>(:<segment>)*

internal/schema/yaml_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,9 +307,9 @@ func TestYAMLValidation_SchemaAndID(t *testing.T) {
307307
})
308308

309309
t.Run("both accepted when well-formed", func(t *testing.T) {
310-
doc, err := unmarshalSchemaYAML([]byte("spec_version: \"v1\"\n$schema: https://schemas.opendecree.io/schema/v0.1.0/decree.json\n$id: urn:decree:schema:test:v1" + validBody))
310+
doc, err := unmarshalSchemaYAML([]byte("spec_version: \"v1\"\n$schema: https://schemas.opendecree.dev/schema/v0.1.0/decree.json\n$id: urn:decree:schema:test:v1" + validBody))
311311
require.NoError(t, err)
312-
assert.Equal(t, "https://schemas.opendecree.io/schema/v0.1.0/decree.json", doc.Schema)
312+
assert.Equal(t, "https://schemas.opendecree.dev/schema/v0.1.0/decree.json", doc.Schema)
313313
assert.Equal(t, "urn:decree:schema:test:v1", doc.ID)
314314
})
315315

schemas/v0.1.0/decree-config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://json-schema.org/draft/2020-12/schema",
3-
"$id": "https://schemas.opendecree.io/schema/v0.1.0/decree-config.json",
3+
"$id": "https://schemas.opendecree.dev/schema/v0.1.0/decree-config.json",
44
"title": "OpenDecree Config Format (v0.1.0)",
55
"description": "Tenant-side import format for OpenDecree config values. A decree.config.yaml file declares the values to apply against a previously imported schema; the server enforces type compatibility and cross-field rules at write time.",
66
"type": "object",

schemas/v0.1.0/decree-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# may consume either.
1414

1515
$schema: "https://json-schema.org/draft/2020-12/schema"
16-
$id: "https://schemas.opendecree.io/schema/v0.1.0/decree-config.json"
16+
$id: "https://schemas.opendecree.dev/schema/v0.1.0/decree-config.json"
1717
title: OpenDecree Config Format (v0.1.0)
1818
description: >-
1919
Tenant-side import format for OpenDecree config values. A

0 commit comments

Comments
 (0)