Add quote template dry-run wrapper checkpoint

This commit is contained in:
2026-05-05 18:56:21 +10:00
parent 868632bd21
commit 5993826b79
2 changed files with 52 additions and 9 deletions
+25 -3
View File
@@ -73,12 +73,17 @@ Current apply payload rules:
- stores/parses results
- applies any parsed Quote Template responses that are not already marked/applied
- logs each run under `logs/poll-and-apply-YYYYMMDD-HHMMSS.log`
- Safety option now available:
- `--dry-run` runs the same poll/selection flow, but previews the ServiceM8 `jobmaterial` payloads only
- dry-run does **not** write to ServiceM8
- dry-run does **not** mark quote responses as applied
- Examples:
- `./poll_and_apply_quote_templates.sh`
- `./poll_and_apply_quote_templates.sh --hours 48`
- `./poll_and_apply_quote_templates.sh --since '2026-05-04 08:00:00'`
- `./poll_and_apply_quote_templates.sh --dry-run --hours 48`
This is the proposed scheduled entry point for soft release, e.g. every 1030 minutes.
This is the proposed scheduled entry point for soft release, e.g. every 1030 minutes. For manual confidence checks, run it with `--dry-run` first, inspect the generated payloads/log, then rerun without `--dry-run` only when ready to apply.
## Live Webhook Receiver Status
@@ -140,13 +145,29 @@ Operational soft-release pieces are now in place:
- payload adjusted for current ServiceM8 requirements
- duplicate-apply guard in place
- wrapper script created for scheduled operation
- wrapper now has a first-class `--dry-run` mode
- inspector updated for progress visibility
### Checkpoint — 2026-05-05
Latest verified state:
- `poll_and_apply_quote_templates.sh --dry-run` added and documented.
- `bash -n /opt/webhooks/poll_and_apply_quote_templates.sh` passes.
- `--help` output includes `--dry-run` usage/examples.
- A future-since dry-run (`--dry-run --since '2099-01-01 00:00:00'`) confirmed:
- wrapper reports `Mode: dry-run`
- poll step performs no ServiceM8 writes
- apply step calls the Python apply tool without `--apply`
- payload rows are emitted as `would_create`
- responses are not marked applied by dry-run
- At checkpoint time, there were still several unapplied parsed Quote Template responses available for preview/apply; this is expected while the soft release remains manual.
## Not Yet Done / Next Steps
- Restart/reload the live inspector process so the new poll/apply pages are available in the active web viewer.
- Decide schedule interval for `poll_and_apply_quote_templates.sh` — likely every 10 or 30 minutes.
- Run the wrapper manually for a soft-release smoke test with a controlled recent form response.
- Run the wrapper manually in `--dry-run` mode against a controlled recent form response and inspect the payload/log.
- If payload is correct, rerun the wrapper without `--dry-run` for a controlled live apply smoke test.
- After confidence builds, wire the wrapper into cron/system scheduling.
- Future hardening: add reconciliation/update/delete behaviour if ServiceM8 quote form responses are edited after initial apply.
@@ -155,4 +176,5 @@ Operational soft-release pieces are now in place:
- Webhooks remain lightweight and non-mutating.
- Polling is now the reliable source of completeness.
- Applying to ServiceM8 is tracked locally and guarded against duplicates.
- The wrapper intentionally skips dry-run for soft release, but the underlying apply script still supports dry-run and duplicate protection.
- The wrapper defaults to live apply for scheduled soft release, but now supports `--dry-run` for manual preview/safety checks.
- The underlying apply script remains dry-run-by-default and provides the duplicate protection used by the wrapper.