These notes summarize the current branch relative to main as of 2026-04-02.
They are based on the actual git diff main...HEAD plus representative
runtime, schema, deployment, test, and documentation changes, not only commit
messages.
This branch is a substantial production-hardening rewrite of the actor. It turns the project into a more explicit web-server product for both Apify-hosted and self-hosted usage, with a documented HTTP contract, stronger security controls, richer log and replay workflows, a broader deployment story, and a much deeper quality and documentation posture.
Compared with main, the branch introduces:
- An Apify standby-mode web server contract via
.actor/web_server_schema.jsonand.actor/actor.json. - A clearer modular runtime split across routes, middleware, services, repositories, constants, and utilities.
- A stronger DuckDB-backed read model with richer filtering, pagination, and payload retrieval flows.
- Expanded webhook security, including provider-specific signature validation, request protection, and safer forwarding behavior.
- A self-hosted standalone container track and GitHub-based Docker release automation.
- Significantly broader tests, operational playbooks, and API documentation.
- 269 files changed
- 48,550 insertions
- 8,611 deletions
- Added Apify
webServerSchemasupport with a machine-readable OpenAPI contract in.actor/web_server_schema.json. - Enabled
usesStandbyMode: truein.actor/actor.json, positioning the Actor as a long-lived web server rather than only a fire-and-exit task. - Formalized the HTTP surface for dashboard, webhook ingress, logs, replay, streaming, system metrics, health, and readiness routes.
- Added a source-aligned API reference in
docs/api-reference.md.
- Reworked log storage and querying around a dedicated DuckDB repository layer.
- Added richer
/logsquery support, including range-style filters, signature-related filters, sort controls, and cursor-based pagination for larger datasets. - Added dedicated log detail and payload retrieval paths for investigation and forensics workflows.
- Expanded replay controls with configurable retry counts and request timeouts.
- Added provider-aware signature verification for Stripe, Shopify, GitHub, Slack, and custom HMAC integrations.
- Hardened request handling with auth gating, IP allowlisting, payload and header redaction, structured error handling, and forwarding loop detection.
- Split traffic protection into management-endpoint rate limiting and per-webhook ingestion rate limiting.
- Preserved SSRF protection and safe forwarding behavior while broadening the automation surface.
- Added
Dockerfile.standalonefor self-hosted deployment outside the Apify runtime image path. - Added
.github/workflows/release-docker.ymlto publish standalone multi-architecture images. - Added support scripts for coverage enforcement, version synchronization, and web server schema validation.
- Expanded CI and repository automation with additional workflows, formatting, linting, and dependency-management configuration.
- Added or expanded architecture docs, API docs, local Docker guidance, operational playbooks, marketing collateral, roadmap notes, and contribution guidance.
- Added
.env.exampleand local.envauto-loading support for CLI and self-hosted workflows. - Added repository guidance files for agents, docs, testing, and publication readiness.
- Replaced the flatter structure with a more explicit modular monolith:
src/routes,src/middleware,src/services,src/repositories,src/consts, andsrc/utilsnow capture clearer ownership boundaries. - Migrated DuckDB integration to
@duckdb/node-api, using cached instance management, connection pooling, and serialized writes viaBottleneck. - Added a
HotReloadManagerthat supports both Apify key-value-store polling and local filesystem watch behavior. - Added
src/utils/load_env.jsso local.envfiles are loaded once for CLI and self-hosted runs without overriding injected environment variables. - Expanded application metadata and runtime configuration through the actor input schema, including memory controls, replay behavior, alerting, forwarding, verification, and response simulation settings.
- The runtime now exposes a documented management API in addition to the dashboard UI.
/logsis no longer just a simple listing surface; it behaves like a query interface over the DuckDB read model.- Health, readiness, and system metrics endpoints make the service easier to run behind orchestrators and health checks.
- Standby mode and the web server schema improve discoverability and make the hosted Actor easier to consume as a service.
- The standalone container path broadens deployment options for teams that want the same product outside Apify.
- Replaced the older flatter test layout with explicit unit, integration, and end-to-end suites.
- Added extensive helper harnesses under
tests/setup/helpersfor isolation, mocking, database lifecycle control, payload fixtures, and process-based end-to-end testing. - Added focused tests for routes, repositories, middleware, services, utilities, actor metadata behavior, and operational scripts.
- Added coverage matrix tooling and validation scripts to make release confidence more repeatable.
docs/api-reference.mddocs/architecture.mddocs/local_docker_testing.md- Multiple operational playbooks under
docs/playbooks/ - Multiple roadmap design notes under
docs/roadmap/ - Expanded release, publication, and contribution guidance
- Hosted deployments should validate the web server schema before release.
- Self-hosted deployments can now use the standalone Node 24 container image path.
- Local development and self-hosted usage can rely on project-level
.envloading without changing production-injected settings. - Runtime auth, replay, forwarding, signature verification, and alerting are
all more configurable than they were on
main.
- Current runtime metadata resolves to
3.0.0inpackage.jsonand.actor/actor.json. CHANGELOG.mdand the release copy in this branch are aligned to the3.0.0milestone release.- Before cutting the next formal release, align package metadata, actor metadata, changelog entries, dashboard/runtime version display, and any store publication copy.
Relative to main, this branch is not a narrow patch release. It is a broad
upgrade in runtime structure, product surface, security posture, deployment
options, test depth, and documentation quality. It should be treated as a
significant milestone release and validated as both an Apify-hosted service and
an optionally self-hosted webhook platform.