Repository navigation
feat!: add Server Actor support and sync with Apify OpenAPI spec v2-2026-11-04T151257Z - #35
Merged
Merged
Conversation
…026-11-04T151257Z Ports the apify-client-js Server Actor client (`ActorClient::server`), the `count` of dataset item pages, and the iteration page size documentation. Adds `actorPath` to Actor versions and the Actor Standby fields to `Actor`. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_017ocuAGnQ7tWM7EdPahZPAA
…review items Retries the streaming calls until the response starts, rejects a non-positive `expires_in_secs`, drops `HttpMethod::Connect`, bounds only the response start of server streams, and documents the redirect contract of custom backends. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_017ocuAGnQ7tWM7EdPahZPAA
…s review items Does not read the body of an error response that a retry follows, saturates the signed URL expiry instead of overflowing, corrects stale comments and the changelog wording, and adds the missing offline tests of the streaming retries. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_017ocuAGnQ7tWM7EdPahZPAA
Computes the expiry of a signed public URL in one validated helper that rejects a non-positive validity and an overflowing one, instead of overflowing in the signer. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_017ocuAGnQ7tWM7EdPahZPAA
Validates the validity up front (positive, at most a named maximum) and adds it to the current time when the URL is signed, so a slow storage lookup does not come off the validity. Clarifies two docs. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_017ocuAGnQ7tWM7EdPahZPAA
… URL timing Exposes `common::MAX_EXPIRES_IN_SECS`, documents it where `expires_in_secs` is described, and covers the dataset items URL with the validity-from-signing test. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_017ocuAGnQ7tWM7EdPahZPAA
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Syncs the Rust client with OpenAPI spec
v2-2026-11-04T151257Z(apify/apify-docs#3083, #3084, #3152) and apify-client-js #1179, #1187, #1188, #1190 and #1197. Also applies requirement updates from apify/apify-client-orchestration#64 and #65. The crate version goes to 0.16.0 (breaking).Spec sync
API_SPEC_VERSIONisv2-2026-11-04T151257Z.ActorVersion::actor_pathadded.Actor, with a newActorStandbytype.tenancyis documented and stays aString.Server Actors (JS #1179)
ActorClient::server()returns anActorServerClientwithrequest,request_stream,get_urlandget_open_api_spec. The deprecatedstandby()alias is kept.X-Apify-Authorization, and redirects are not followed.HttpRequestgainedfollow_redirects.ReqwestBackendkeeps a second client that does not follow redirects (with_no_redirect_client).HttpMethodgainedPatch,OptionsandTrace.Dataset page
count(JS #1187, #1190)PaginationList::countis now the larger of the scanned rows and the items returned. Iterators step by it, capped at the page size.Signed URL validity (JS #1188)
expires_in_secsfails withInvalidArgumentbefore any request is sent.common::MAX_EXPIRES_IN_SECS.Bug fixes
ListIterator::nextno longer stops before matching rows that come after a page emptied by a filter.download_items_stream,request_stream) now retry through the same loop as buffered calls until the response starts.Tests and docs
tests/unit_server.rs, with additions tounit_http.rsandunit_resources.rs.actorPathon versions, and datasetcount.Breaking changes
These are all listed in the CHANGELOG:
HttpRequest::follow_redirectsand the newHttpMethodvariants affect custom HTTP backends.ActorandActorVersiongained fields.counton dataset pages changed.