draft still claims backup schedules aren't API-readable (pre-#51 text) — read them and emit backup: blocks #75

Closed
opened 2026-07-16 12:17:35 +00:00 by dan-claude-bot · 2 comments
dan-claude-bot commented 2026-07-16 12:17:35 +00:00 (Migrated from github.com)

Summary

draft.ts:594 still tells every draft reader that "backup schedules are not exposed by Coolify's API and are NOT in this draft" — the exact claim #51 disproved (GET /databases/{uuid}/backups is a route, and diff/apply now read it on every run). The draft path was never brought along: it warns instead of reading, so --emit-draft hand-waves at the Backups tab for data cast can fetch itself.

What to do

  • --emit-draft: read GET /databases/{uuid}/backups per drafted database and emit a real backup: { frequency, retention } block (enabled: true, single-schedule case)
  • Keep an UNCAPTURED entry only for what the route genuinely cannot answer: the S3 target (comes back as int s3_storage_id, unmappable — see #72 findings 5/6), multiple schedules, disabled schedules
  • Delete/replace the stale text at draft.ts:594 and the "backup schedules" row in NO_API_COVERAGE

Small, self-contained, and the last place in the codebase still repeating the pre-#51 claim. Found in #72 (cast action items).

## Summary `draft.ts:594` still tells every draft reader that "backup schedules are not exposed by Coolify's API and are NOT in this draft" — the exact claim #51 disproved (`GET /databases/{uuid}/backups` is a route, and diff/apply now read it on every run). The draft path was never brought along: it warns instead of reading, so `--emit-draft` hand-waves at the Backups tab for data cast can fetch itself. ## What to do - [ ] `--emit-draft`: read `GET /databases/{uuid}/backups` per drafted database and emit a real `backup: { frequency, retention }` block (`enabled: true`, single-schedule case) - [ ] Keep an UNCAPTURED entry only for what the route genuinely cannot answer: the S3 target (comes back as int `s3_storage_id`, unmappable — see #72 findings 5/6), multiple schedules, disabled schedules - [ ] Delete/replace the stale text at `draft.ts:594` and the "backup schedules" row in `NO_API_COVERAGE` Small, self-contained, and the last place in the codebase still repeating the pre-#51 claim. Found in #72 (cast action items).
dan-claude-bot commented 2026-07-16 15:53:35 +00:00 (Migrated from github.com)

Partially addressed by #80 (merged, b560317) — leaving this open, because only the third box is done.

  • --emit-draft: read GET /databases/{uuid}/backups per drafted database and emit a real backup: block — not done
  • Keep an UNCAPTURED entry only for what the route genuinely cannot answer (S3 target, multiple, disabled) — not done
  • Delete/replace the stale text at draft.ts:594 and the NO_API_COVERAGE row — done

#80 was deliberately text-only: it corrects the false claim ("backup schedules are not exposed by Coolify's API") in all three places it appeared — the backup flag, its comment, and the NO_API_COVERAGE row — and replaces it with what is actually true: the API answers (GET /databases/{uuid}/backups, which diff/apply use since #51); the draft path has not been taught to ask. So the draft still says "declare it yourself", but now for the honest reason.

The read-and-emit half is untouched and still worth doing. Note it now has an exact sibling: #73/#81 left --emit-draft in the same position for service hostnames — the API answers (GET /services/{uuid}), the draft path doesn't make the per-service GET. Both are "teach the sweep to make one supplementary read per resource", so they may be worth doing together.

**Partially addressed by #80 (merged, `b560317`) — leaving this open**, because only the third box is done. - [ ] `--emit-draft`: read `GET /databases/{uuid}/backups` per drafted database and emit a real `backup:` block — **not done** - [ ] Keep an UNCAPTURED entry only for what the route genuinely cannot answer (S3 target, multiple, disabled) — **not done** - [x] Delete/replace the stale text at `draft.ts:594` and the `NO_API_COVERAGE` row — **done** #80 was deliberately text-only: it corrects the false claim (*"backup schedules are not exposed by Coolify's API"*) in all three places it appeared — the `backup` flag, its comment, and the `NO_API_COVERAGE` row — and replaces it with what is actually true: **the API answers (`GET /databases/{uuid}/backups`, which `diff`/`apply` use since #51); the draft path has not been taught to ask.** So the draft still says "declare it yourself", but now for the honest reason. The read-and-emit half is untouched and still worth doing. Note it now has an exact sibling: #73/#81 left `--emit-draft` in the same position for **service hostnames** — the API answers (`GET /services/{uuid}`), the draft path doesn't make the per-service GET. Both are "teach the sweep to make one supplementary read per resource", so they may be worth doing together.
dan-claude-bot commented 2026-07-16 15:57:42 +00:00 (Migrated from github.com)

The service-hostname twin of this is now filed as #83#81 left --emit-draft in the identical position for services (API answers via GET /services/{uuid}, the sweep doesn't ask). Both add one supplementary GET per resource to a verb that walks every project, so the gating/parallelism decision is shared; likely worth doing together.

The service-hostname twin of this is now filed as #83 — #81 left `--emit-draft` in the identical position for services (API answers via `GET /services/{uuid}`, the sweep doesn't ask). Both add one supplementary GET per resource to a verb that walks every project, so the gating/parallelism decision is shared; likely worth doing together.
Sign in to join this conversation.
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: heavy-duty/cast#75
No description provided.