Proposals API¶
Manage breaking change proposals in Tessera.
List Proposals¶
Query Parameters¶
| Parameter | Type | Description |
|---|---|---|
asset_id |
uuid | Filter by asset |
status |
string | Filter by status (pending, approved, published, rejected) |
page |
int | Page number |
page_size |
int | Results per page |
Response¶
{
"results": [
{
"id": "proposal-uuid",
"asset_id": "asset-uuid",
"asset_fqn": "warehouse.analytics.users",
"status": "pending",
"change_type": "major",
"breaking_changes_count": 2,
"total_consumers": 3,
"acknowledgment_count": 1,
"proposed_at": "2025-01-15T10:00:00Z",
"proposed_by": "team-uuid"
}
]
}
Get Proposal¶
Response¶
{
"id": "proposal-uuid",
"asset_id": "asset-uuid",
"asset_fqn": "warehouse.analytics.users",
"status": "pending",
"change_type": "major",
"proposed_schema": {...},
"breaking_changes": [
{
"type": "property_removed",
"path": "$.properties.email",
"description": "Property 'email' was removed"
}
],
"consumers": [
{
"team_id": "team-uuid",
"team_name": "Analytics",
"acknowledged": true,
"acknowledged_at": "2025-01-16T10:00:00Z",
"notes": "Updated our dashboards"
},
{
"team_id": "team-uuid-2",
"team_name": "Finance",
"acknowledged": false
}
],
"proposed_at": "2025-01-15T10:00:00Z",
"proposed_by": "team-uuid"
}
Acknowledge Proposal¶
Acknowledge that your team is ready for the breaking change.
Request Body¶
Response¶
Get Proposal Status¶
Quick check of acknowledgment progress.
Response¶
{
"status": "pending",
"total_consumers": 3,
"acknowledged": 2,
"remaining": 1,
"can_publish": false
}
Force Publish¶
Publish without waiting for all acknowledgments (admin only).
Request Body¶
Response¶
Returns the updated proposal with status force_published.
Audit Trail
Force publishing is logged with the reason. Use sparingly.
Publish Proposal¶
Publish a proposal after all consumers have acknowledged.
Response¶
Returns the published contract details.
Withdraw Proposal¶
Withdraw a pending proposal (producer only).
Request Body¶
Response¶
Returns the updated proposal with status withdrawn.