Intent
Make every Launchplane-owned target identity mutation write the explicit ProviderTargetRecord row alongside existing Dokploy target/id records.
Current Status
Waiting for audit slice #1101 to establish drift visibility. Parent: #1100.
Finish Line
Product onboarding, Dokploy adoption/creation, Odoo target replacement, and other target identity mutation paths either write the matching provider-target row or fail closed with a clear mismatch.
Acceptance Criteria
- Product onboarding writes provider-target, Dokploy target, and Dokploy target-id records for
provider_targets manifests.
- Dokploy adoption/creation writes provider-target rows after target id/type are known.
- Target mutation paths block conflicting existing provider-target rows instead of overwriting silently.
- Dual-write errors surface; no silent compatibility fallback.
- Tests cover success, mismatch, partial write prevention, idempotency, and compatibility output preservation.
- Docs keep Dokploy execution config ownership explicit while moving identity writes to provider-target records.
Quality Gates
Targeted onboarding/adoption/Odoo mutation/storage tests, then uv run python -m unittest, changed-file ruff, and mypy for touched control-plane/test modules.
Intent
Make every Launchplane-owned target identity mutation write the explicit
ProviderTargetRecordrow alongside existing Dokploy target/id records.Current Status
Waiting for audit slice #1101 to establish drift visibility. Parent: #1100.
Finish Line
Product onboarding, Dokploy adoption/creation, Odoo target replacement, and other target identity mutation paths either write the matching provider-target row or fail closed with a clear mismatch.
Acceptance Criteria
provider_targetsmanifests.Quality Gates
Targeted onboarding/adoption/Odoo mutation/storage tests, then
uv run python -m unittest, changed-file ruff, and mypy for touched control-plane/test modules.