@fabricorg/platform-host 8.7.0 → 8.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @fabricorg/platform-host
2
2
 
3
+ ## 8.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 385a989: Expose the optional execution lease owner and token in adapter execution context, using the same frozen identity as Host write fencing and omitting the key for unleased execution. Platform Host 8.8.0 is the first Host that supplies it, so with an older Host the key is also absent: an adapter that requires fencing must treat a missing lease as "cannot fence", not as "safe". Every new claim of the invocation, including a takeover by another worker, rotates the token. Adapters can check this evidence in the transaction that claims their domain row immediately before a provider call; Host does not check the lease during the adapter call.
8
+
3
9
  ## 8.7.0
4
10
 
5
11
  ### Minor Changes
package/README.md CHANGED
@@ -496,6 +496,18 @@ Expiry before an attempt prevents that attempt; an aborted call that throws foll
496
496
  the existing ambiguous-outcome reconciliation path. With no step duration and an
497
497
  unset or zero Host duration, neither context field is supplied.
498
498
 
499
+ When Host executes under a lease, `AdapterExecutionContext.lease` contains the
500
+ `leaseOwner` and `leaseToken` used to fence Host's own writes (Host 8.8.0 and
501
+ later). The key is absent for unleased execution and on older Hosts, so an adapter
502
+ that requires fencing must treat a missing lease as "cannot fence", not as "safe".
503
+ Every new claim of the invocation, such as a takeover by another worker, changes
504
+ `leaseToken`.
505
+ An adapter guarding a provider call should check this identity immediately before
506
+ that call, in the same transaction as its own domain claim (for example, by locking
507
+ the Host lease row and comparing owner and token). Host does not check the lease
508
+ during the adapter call; this context is evidence for the adapter's transaction,
509
+ not a guarantee that a provider operation remains protected after that transaction.
510
+
499
511
  ## Execution authorization
500
512
 
501
513
  Submission authorization proves that a caller may create an invocation. Applications that delegate
package/dist/index.cjs CHANGED
@@ -3148,6 +3148,7 @@ function createGovernedActionHost(options) {
3148
3148
  ...invocation.causationId ? { causationId: invocation.causationId } : {},
3149
3149
  attempt,
3150
3150
  maxAttempts,
3151
+ ...executionLease ? { lease: executionLease } : {},
3151
3152
  ...deadlineMs ? { deadlineMs } : {},
3152
3153
  ...adapterController ? { signal: adapterController.signal } : {}
3153
3154
  });