@@ -474,6 +474,9 @@ model Project {
474474 /// Set the first time the CLI `init` command completes against this project. Drives the dev onboarding progress.
475475 initializedAt DateTime ?
476476
477+ /// Runtime used when a deployment config does not specify one. Null preserves the legacy Node 20 fallback.
478+ defaultRuntime String ?
479+
477480 version ProjectVersion @default (V2 )
478481 engine RunEngineVersion @default (V1 )
479482
@@ -790,26 +793,26 @@ model WebhookEndpoint {
790793
791794 source String // provider tag e.g. "stripe","slack","github"
792795 handlerWebhookId String // declared webhook() id (string ref, GOLDEN LAW, no relation)
793- routingTarget Json // RoutingTarget tagged union ({ type: "task" } | { type: "session" })
794- verifierArtifact Json // VerifierArtifact tagged union (config|preset in P1)
796+ routingTarget Json // RoutingTarget tagged union ({ type: "task" } | { type: "session" })
797+ verifierArtifact Json // VerifierArtifact tagged union (config|preset in P1)
795798 filter String ? // source filter DSL string (display/round-trip)
796- filterAst Json ? // compiled FilterAst, evaluated at ingest; null = route all
797- filterAstVersion Int ? // re-parse `filter` on a format bump
798- metadata Json @default (" {}" ) // arbitrary user metadata; flows into the webhook task
799+ filterAst Json ? // compiled FilterAst, evaluated at ingest; null = route all
800+ filterAstVersion Int ? // re-parse `filter` on a format bump
801+ metadata Json @default (" {}" ) // arbitrary user metadata; flows into the webhook task
799802
800803 // who supplies the secret/key; drives the Connect UI (paste vs generate). From the source.
801804 secretProvisioning String @default (" either " ) // "provider" | "integrator" | "either"
802805
803806 /// SecretReference.key string. Plain String, NO @relation -> no FK to SecretReference.
804807 signingSecretKey String ?
805808
806- status WebhookEndpointStatus @default (ACTIVE )
809+ status WebhookEndpointStatus @default (ACTIVE )
807810 /// When an operator disabled the endpoint via the dashboard/API. Null means the declarative sync
808811 /// owns the status: a redeploy that re-declares a previously-removed (auto-deactivated) webhook
809812 /// reactivates it. Non-null means the operator disabled it, so the sync leaves the status alone.
810813 manuallyDeactivatedAt DateTime ?
811- createdAt DateTime @default (now () )
812- updatedAt DateTime @updatedAt
814+ createdAt DateTime @default (now () )
815+ updatedAt DateTime @updatedAt
813816
814817 @@unique ([runtimeEnvironmentId , handlerWebhookId , endpointTenantId , endpointExternalRef ] ) // deploy-sync key
815818 @@index ([runtimeEnvironmentId , source ] )
@@ -842,8 +845,8 @@ model WebhookDelivery {
842845 /// Set from the x-trigger-test ingress header; marks console/test-send deliveries so the list can filter them.
843846 isTest Boolean @default (false )
844847
845- parsedEvent Json ? // size-capped snapshot of the verified event (full event lives in ClickHouse)
846- headers Json ? // inbound request headers, surfaced to the webhook task via onEvent({ headers })
848+ parsedEvent Json ? // size-capped snapshot of the verified event (full event lives in ClickHouse)
849+ headers Json ? // inbound request headers, surfaced to the webhook task via onEvent({ headers })
847850 rawBodyHash String ? // sha256 of raw bytes; cheap P2 replay anchor
848851 errorMessage String ?
849852 filterReason String ? // why a FILTERED delivery was not routed (failing clause + actual value)
@@ -2370,8 +2373,8 @@ model TaskSchedule {
23702373 timezone String @default (" UTC " )
23712374
23722375 // Cron spread
2373- windowDurationSeconds Int ?
2374- windowPercentage Int ?
2376+ windowDurationSeconds Int ?
2377+ windowPercentage Int ?
23752378
23762379 ///Can be provided by the user then accessed inside a run
23772380 externalId String ?
0 commit comments