You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit aa0ff21
Browse filesBrowse the repository at this point in the historyBrowse files
fix(hex,stripe): validate Hex and Stripe against their API docs (#10005)
* fix(hex): keep stale list filters out of other operations, add documented run trigger and pagination fields
- get_project_runs no longer receives the List Projects status filter, and list
users/groups/collections/data connections drop a stored List Projects sort
field they reject (valid ones still pass)
- get_queried_tables gains after/before cursors via dedicated subBlocks, plus
after/before outputs
- list_groups gains the documented userId filter via a dedicated subBlock
- run status and project runs expose runTrigger; elapsedTime is milliseconds
- path ids go through safeUrlPathSegment
- correct documented limit ranges and the create_group createdAt output
* fix(stripe): stop unset Yes/No fields from changing Stripe objects, honor subscription item ids, guard path ids, add pagination
- Yes/No dropdowns (cancel_at_period_end, auto_advance, capture, active, prorate,
invoice_now, paid_out_of_band) gain a leading Default option that is never sent.
The UI seeded the first option ("Yes") as soon as advanced options were shown, so
merely opening them on Update Subscription scheduled a cancellation and on Pay
Invoice marked the invoice paid out of band. Stored 'true'/'false'/null map exactly
as before, and every key is now assigned so a raw '' cannot leak past the mapper.
- update_subscription sends items[i][id] (and deleted when true): Stripe adds a new
item when id is omitted, so changing a price created a duplicate billed item.
- All path ids go through safeUrlPathSegment, so an id cannot traverse to another
Stripe endpoint with the caller's key.
- create_price no longer sends unit_amount=0 for an empty field; create_subscription
no longer sends trial_period_days=0 for an empty field.
- starting_after/ending_before on every list tool and page/next_page on every search
tool, wired through new list_starting_after/list_ending_before/search_page subBlocks.
- Stripe trigger declares the documented account and context event fields.
* chore(docs): regenerate Hex and Stripe tool metadata and docs
* fix(hex,stripe): keep agent-supplied cursors and filters when the block maps dedicated fields
* fix(hex,stripe): type run projectVersion as a string, send zero item quantities, mark nullable event fields
* fix(hex): only fall back to raw run status and user id on agent calls
|`limit`| number | No | Number of results to return \(default 10, max 100\)|
900
+
|`page`| string | No | Pagination token from metadata.next_page of the previous search; omit for the first page |
894
901
895
902
#### Output
896
903
@@ -937,6 +944,7 @@ Search for customers using query syntax
937
944
|`metadata`| json | Search metadata |
938
945
| ↳ `count`| number | Number of items returned |
939
946
| ↳ `has_more`| boolean | Whether more items exist beyond this page |
947
+
| ↳ `next_page`| string | Token for the next page of search results, or null when there are no more results |
940
948
941
949
</ReferenceDetails>
942
950
@@ -1116,7 +1124,7 @@ Update an existing subscription
1116
1124
| Parameter | Type | Required | Description |
1117
1125
| --------- | ---- | -------- | ----------- |
1118
1126
|`id`| string | Yes | Subscription ID \(e.g., sub_1234567890\)|
1119
-
|`items`| json | No |Updated array of items with price IDs|
1127
+
|`items`| json | No |Subscription items to change, e.g. \[\{"id": "si_123", "price": "price_456"\}\]. Include the existing item "id" to update or delete \(with "deleted": true\) that item; an entry without "id" adds a new item alongside the current ones.|
1120
1128
|`cancel_at_period_end`| boolean | No | Cancel subscription at period end |
1121
1129
|`metadata`| json | No | Updated metadata |
1122
1130
@@ -2538,6 +2546,8 @@ List all invoices
2538
2546
|`limit`| number | No | Number of results to return \(default 10, max 100\)|
2539
2547
|`customer`| string | No | Filter by customer ID |
2540
2548
|`status`| string | No | Filter by invoice status |
2549
+
|`starting_after`| string | No | Next-page cursor: last invoice ID from the previous page. Do not combine with ending_before. |
2550
+
|`ending_before`| string | No | Previous-page cursor: first invoice ID from the current page. Do not combine with starting_after. |
2541
2551
2542
2552
#### Output
2543
2553
@@ -2562,6 +2572,7 @@ Search for invoices using query syntax
|`type`| string | Event type \(e.g., payment_intent.succeeded, customer.created, invoice.paid\)|
3094
3120
|`object`| string | Always "event" |
3121
+
|`account`| string | Connected account that originated the event \(Connect events only; absent or null otherwise\)|
3095
3122
|`api_version`| string | Stripe API version used to render the event |
3123
+
|`context`| string | Authentication context needed to fetch the event or related object \(null when not applicable\)|
3096
3124
|`created`| number | Unix timestamp when the event was created |
3097
3125
|`data`| json | Event data containing the affected Stripe object. Structure varies by event type - access via data.object for the resource \(PaymentIntent, Customer, Invoice, etc.\)|
3098
3126
|`livemode`| boolean | Whether this event occurred in live mode \(true\) or test mode \(false\)|
0 commit comments