Plan Before Mutate: Dry-run & Confirmation Token
Preview workflow before any GAM write: readable plan, credit cost, irreversible risks, time validity and confirmation token.
REST endpoints
| Method | Path | Description | Credits |
|---|---|---|---|
| POST | /api/campaigns/{id}/dry-run | Preview a campaign deploy without a GAM write | 0 |
| POST | /api/jobs/{id}/deploy | Run a confirmed deploy | 5 |
| POST | /api/jobs/{id}/deployment-plan | Build the plan of a staging draft | 0 |
| POST | /api/inventory/blueprints/{id}/push | Blueprint push with diff and token | 0 / 0.5 unit |
MCP tools
| Tool | Description | Credits |
|---|---|---|
| campaign(action='create_draft') | Create a staging draft before the GAM mutation | 0 |
| campaign(action='deploy', dryRun=true) | Return the ExecutionPlan and the confirmation token | 0 |
| campaign(action='deploy', confirmationToken=...) | Consume the token and execute | 5 |
| campaign(action='create_display', dryRun=true) | Display forecast + plan before creation | 0 |
| push_inventory_blueprint(dryRun=true) | Full blueprint diff before push | 0 |
| push_inventory_blueprint(confirmationToken=...) | Confirmed blueprint push to GAM | 0.5/unit |
Examples
Two-step campaign deploy
{
"tool": "campaign",
"arguments": { "action": "deploy", "jobId": "job_8b2a", "dryRun": true }
}
// -> ExecutionPlan { mutations, estimatedCost, irreversible, planValidUntil, confirmationToken }
{
"tool": "campaign",
"arguments": { "action": "deploy", "jobId": "job_8b2a", "confirmationToken": "tok_9c3f", "dryRun": false }
}Notes
- • The token is tied to the tenant, the operation type and the canonical hash of the plan.
- • dryRun=true produces no GAM write.
- • Irreversible risks are shown before confirmation.
- • An expired plan must be regenerated before execution.
