1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
[]
= "ff-sdk"
= true
= true
= true
= true
= true
= true
= true
= true
= "FlowFabric worker SDK — public API for worker authors"
[]
# Default feature set — existing consumers observe zero change.
#
# `valkey-default` pulls in the ferriskey-dependent SDK modules
# (`task`, `worker`, `snapshot`, `admin`,
# `engine_error::enrich_dependency_conflict`) + ff-sdk's direct
# optional `ferriskey` dep + the Valkey-specific variants on
# `SdkError`. Turning this OFF (`--no-default-features`) disables the
# ferriskey-dependent SDK surface and removes ferriskey from ff-sdk's
# direct optional deps — RFC-012 §1.3 agnosticism proof: ff-sdk
# compiles as a pure type/config facade over ff-core's
# `EngineBackend` trait without the Valkey transport surfacing.
# (`ff-script` keeps an unconditional `ferriskey` dep today; that
# transitive edge stays regardless of ff-sdk's feature. The
# agnosticism claim is scoped to ff-sdk's *own* public surface, not
# the entire build graph.)
= ["valkey-default"]
= ["valkey-default"]
# Re-exports of ferriskey feature flags. Consumers opt in on ff-sdk and
# the flag propagates to the underlying ferriskey crate. OFF by default
# — the ~40-crate AWS dep graph does not land in builds that don't need
# it.
= ["ferriskey/iam"]
# Pulls in the ferriskey transport + the SDK modules that depend on
# it. Left as an explicit feature (on by default) so
# `--no-default-features` builds can prove the agnosticism contract.
= ["dep:ferriskey", "dep:ff-backend-valkey"]
[]
= { = true }
= { = true }
# RFC-012 Stage 1b — ff-sdk's `ClaimedTask` forwards 9 of 12 ops
# through the `EngineBackend` trait. The legacy
# `FlowFabricWorker::connect` path still dials Valkey itself; it
# wraps its own client in a `ValkeyBackend` (via
# `from_client_and_partitions`) so `ClaimedTask` has a backend to
# forward through. Gated on `valkey-default` so the agnosticism
# build (`--no-default-features`) stays backend-free.
= { = true, = true }
= { = true, = true }
= { = true }
= { = true }
= { = true }
= { = true }
= { = true }
# HTTP client for the admin REST surface (FlowFabricAdminClient).
# default-features disabled to drop the native-tls backend; rustls is
# what every other HTTP consumer in this workspace uses (ff-test,
# examples/media-pipeline, examples/coding-agent).
= { = "0.12", = false, = ["json", "rustls-tls"] }