Skip to content

Commit bd12aee

Browse files
committed
chore: bump version to 1.3.0-beta + CHANGELOG
1 parent 2fb09a9 commit bd12aee

5 files changed

Lines changed: 140 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,44 @@ All notable changes to argos-edge are documented here. Format
44
follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/);
55
versions use [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [1.3.0-beta] - 2026-04-21
8+
9+
UI for the DNS providers expansion (sub-phase B). No backend changes.
10+
See [release notes](docs/release-notes/v1.3.0-beta.md) for details +
11+
screenshots.
12+
13+
### Added
14+
15+
- **Settings → DNS providers** section: cards grid with per-provider
16+
enable toggle, credential form, Configured / Not configured
17+
badges, `__UNCHANGED__` sentinel + Edit button on secret fields
18+
so operators can rotate one credential without retyping others,
19+
"How to get credentials" deep link to the upstream docs, and a
20+
trust-boundary callout pointing at
21+
[Persistence docs](docs/operations/persistence.md). Save triggers
22+
automatic reconcile and surfaces Caddy's reconcile-error string
23+
inline when the DB write succeeded but the next `/load` failed.
24+
- **Host form DNS provider dropdown**: appears under the DNS-01
25+
radio when `tls_mode=auto` + `tls_challenge=dns`. Auto-selects
26+
the sole enabled provider, offers a native `<select>` for
27+
multiples, amber-warns + blocks Save when none are enabled, and
28+
tags out-of-sync saved values with a "(not enabled)" label + note
29+
instead of silently rewriting.
30+
- **Docs refresh**:
31+
[DNS providers feature page](docs/features/dns-providers.md)
32+
now leads with the UI; the API section stays for scripting.
33+
[Add a host workflow](docs/workflows/add-host.md) step 3 covers
34+
the new **DNS provider** field.
35+
- **Screenshot placeholders** `settings-dns-providers.png` and
36+
`host-form-dns-provider-dropdown.png` added with capture-checklist
37+
entries.
38+
39+
### Not changed
40+
41+
No Go code touched. The v1.3.0-alpha API surface remains stable and
42+
fully supported for scripting (compose bootstrap, CI-driven
43+
rotation, bulk onboarding).
44+
745
## [1.3.0-alpha] - 2026-04-21
846

947
First alpha of the DNS providers expansion. Backend-only — Settings

backend/cmd/argos/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ import (
4343
// The source-tree default tracks the most recent released tag; CI
4444
// overrides with the exact tag on release builds and with
4545
// "<tag>-dev-<short-sha>" on main builds between tags.
46-
var argosVersion = "1.3.0-alpha"
46+
var argosVersion = "1.3.0-beta"
4747

4848
// argosCommit is baked in at build time via -ldflags "-X main.argosCommit=...".
4949
var argosCommit = ""

docs/release-notes/v1.3.0-beta.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# v1.3.0-beta — 2026-04-21
2+
3+
UI layer for the DNS providers expansion. Sub-phase B closes the loop
4+
between the sub-phase A backend (encrypted credentials + inline
5+
Option 2 pipeline) and the operator — you no longer need curl to
6+
configure cloudflare or route53.
7+
8+
## What landed
9+
10+
### Settings → DNS providers
11+
12+
New section on the existing Settings page. Cards grid, one per
13+
supported provider (Cloudflare, Route 53). Each card renders:
14+
15+
- **Enabled** toggle.
16+
- **Configured / Not configured** badge so you see at a glance which
17+
providers have credentials stored.
18+
- One input per credential field from the catalogue (1 field for
19+
Cloudflare / Hetzner-style providers; 2-3 for Route 53 / Porkbun;
20+
more for OVH / acmedns in later sub-phases).
21+
- Secret fields use `type=password` + the `__UNCHANGED__` sentinel
22+
on already-configured providers: the input shows a masked
23+
placeholder with an **Edit** button, so you can rotate one field
24+
without retyping others.
25+
- **How to get credentials →** link to the provider's docs.
26+
- Trust-boundary callout above the grid: credentials are decrypted
27+
in the panel and streamed plaintext through Caddy's admin API
28+
(which is never published outside the `argos_net` Docker network).
29+
30+
Saving triggers an automatic reconcile. A post-save banner inside
31+
the card surfaces the exact Caddy error when reconcile rejects the
32+
new value (e.g. Cloudflare's syntactic "API token appears invalid"
33+
check) while the DB write itself succeeded — you see both states
34+
explicitly.
35+
36+
![Settings DNS providers](../screenshots/settings-dns-providers.png)
37+
38+
### Host form DNS provider dropdown
39+
40+
The TLS challenge radio group in the host form gains a DNS provider
41+
selector, visible only when **DNS-01** is picked. Three states:
42+
43+
- **One enabled** → auto-selected with a caption "Using
44+
&lt;provider&gt; from Settings" and a deep link.
45+
- **Multiple enabled** → native `<select>` with only the enabled +
46+
configured providers. Default = the host's currently-saved value
47+
or `cloudflare`.
48+
- **None enabled** → amber warning with a deep link to Settings; the
49+
form blocks Save client-side (the backend would reject too with a
50+
400, but catching here keeps the UX clean).
51+
52+
Editing a host whose saved provider was disabled AFTER creation
53+
shows a "(not enabled)" option in the dropdown with a yellow note,
54+
so the drift is visible rather than silently rewritten.
55+
56+
![Host form DNS provider dropdown](../screenshots/host-form-dns-provider-dropdown.png)
57+
58+
### Docs
59+
60+
- [DNS providers](../features/dns-providers.md) rewritten to lead
61+
with the UI flow; the API surface stays documented for scripting
62+
and automation.
63+
- [Add a host](../workflows/add-host.md) step 3 covers the new
64+
**DNS provider** field, including the three picker states.
65+
- Screenshot placeholders `settings-dns-providers.png` and
66+
`host-form-dns-provider-dropdown.png` added to
67+
`docs/screenshots/README.md` with the capture checklist entry.
68+
69+
## No backend changes
70+
71+
Zero Go code changes since v1.3.0-alpha. The API surface
72+
(`GET /api/dns-providers`, `GET /api/dns-providers/{name}`,
73+
`PUT /api/dns-providers/{name}`) and the host validation path
74+
(`validateDNSProvider`) are unchanged. The UI talks to the
75+
endpoints that already shipped.
76+
77+
## Migration
78+
79+
```bash
80+
cd argos-edge
81+
git pull
82+
docker compose build
83+
docker compose up -d
84+
```
85+
86+
No migrations run. No env-var changes. If you configured credentials
87+
via curl during the alpha, the Settings page will show them as
88+
**Configured** on first visit.
89+
90+
## Related
91+
92+
- [DNS providers](../features/dns-providers.md) — feature reference
93+
with the UI + API paths side by side.
94+
- [v1.3.0-alpha release notes](v1.3.0-alpha.md) — backend + Option 2
95+
pipeline story.
96+
- [dns-providers-analysis.md](https://github.com/cmos486/argos-edge/blob/main/docs/internals/dns-providers-analysis.md)
97+
— scoping doc with the Tier 1 / Tier 2 split; sub-phase C expands
98+
the catalogue with gandi / desec / ovh / duckdns / porkbun /
99+
hetzner / digitalocean / acmedns.

frontend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "argos-edge-frontend",
33
"private": true,
4-
"version": "1.3.0-alpha",
4+
"version": "1.3.0-beta",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ nav:
151151
- reference/cli.md
152152
- reference/database-schema.md
153153
- Release notes:
154+
- v1.3.0-beta: release-notes/v1.3.0-beta.md
154155
- v1.3.0-alpha: release-notes/v1.3.0-alpha.md
155156
- v1.2.0: release-notes/v1.2.0.md
156157
- v1.1.1: release-notes/v1.1.1.md

0 commit comments

Comments
 (0)