diff --git a/Cargo.lock b/Cargo.lock index 581f73931..f0ec5aa40 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1158,6 +1158,7 @@ dependencies = [ "anyhow", "async-trait", "axum", + "calculator", "calculator-sdk", "cf-gears-toolkit", "cf-gears-toolkit-macros", @@ -1299,8 +1300,11 @@ dependencies = [ "axum", "bigdecimal", "cf-gears-account-management-sdk", + "cf-gears-authz-resolver", "cf-gears-authz-resolver-sdk", + "cf-gears-resource-group", "cf-gears-resource-group-sdk", + "cf-gears-tenant-resolver", "cf-gears-tenant-resolver-sdk", "cf-gears-toolkit", "cf-gears-toolkit-canonical-errors", @@ -1312,6 +1316,7 @@ dependencies = [ "cf-gears-toolkit-odata-macros", "cf-gears-toolkit-security", "cf-gears-toolkit-utils", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "fnv", "futures", @@ -1373,7 +1378,9 @@ dependencies = [ "async-trait", "axum", "bytes", + "cf-gears-authn-resolver", "cf-gears-authn-resolver-sdk", + "cf-gears-grpc-hub", "cf-gears-toolkit", "cf-gears-toolkit-canonical-errors", "cf-gears-toolkit-http", @@ -1416,6 +1423,7 @@ dependencies = [ "cf-gears-toolkit", "cf-gears-toolkit-canonical-errors", "cf-gears-toolkit-macros", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "inventory", "serde", @@ -1450,6 +1458,7 @@ dependencies = [ "cf-gears-toolkit", "cf-gears-toolkit-canonical-errors", "cf-gears-toolkit-macros", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "inventory", "serde", @@ -1489,6 +1498,7 @@ dependencies = [ "cf-gears-toolkit-canonical-errors", "cf-gears-toolkit-macros", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "inventory", "serde", @@ -1653,9 +1663,12 @@ dependencies = [ "axum", "base64 0.22.1", "bytes", + "cf-gears-authn-resolver", "cf-gears-authn-resolver-sdk", + "cf-gears-authz-resolver", "cf-gears-authz-resolver-sdk", "cf-gears-mini-chat-sdk", + "cf-gears-oagw", "cf-gears-oagw-sdk", "cf-gears-toolkit", "cf-gears-toolkit-canonical-errors", @@ -1665,6 +1678,7 @@ dependencies = [ "cf-gears-toolkit-macros", "cf-gears-toolkit-odata", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "chrono", "futures", @@ -1754,6 +1768,7 @@ dependencies = [ "cf-gears-toolkit", "cf-gears-toolkit-macros", "cf-gears-toolkit-odata", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "cf-gears-usage-collector-sdk", "inventory", @@ -1776,10 +1791,13 @@ dependencies = [ "async-trait", "axum", "bytes", + "cf-gears-authz-resolver", "cf-gears-authz-resolver-sdk", + "cf-gears-credstore", "cf-gears-credstore-sdk", "cf-gears-oagw", "cf-gears-oagw-sdk", + "cf-gears-tenant-resolver", "cf-gears-tenant-resolver-sdk", "cf-gears-toolkit", "cf-gears-toolkit-auth", @@ -1787,6 +1805,7 @@ dependencies = [ "cf-gears-toolkit-http", "cf-gears-toolkit-macros", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "dashmap", "form_urlencoded", @@ -1857,10 +1876,12 @@ dependencies = [ "anyhow", "async-trait", "base64 0.22.1", + "cf-gears-authn-resolver", "cf-gears-authn-resolver-sdk", "cf-gears-toolkit", "cf-gears-toolkit-macros", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "criterion", "dashmap", @@ -1894,6 +1915,7 @@ dependencies = [ "anyhow", "async-trait", "axum", + "cf-gears-authz-resolver", "cf-gears-authz-resolver-sdk", "cf-gears-resource-group-sdk", "cf-gears-toolkit", @@ -1903,6 +1925,7 @@ dependencies = [ "cf-gears-toolkit-macros", "cf-gears-toolkit-odata", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "gts", "http", @@ -1946,6 +1969,7 @@ version = "0.1.4" dependencies = [ "anyhow", "async-trait", + "cf-gears-resource-group", "cf-gears-resource-group-sdk", "cf-gears-tenant-resolver-sdk", "cf-gears-toolkit", @@ -1953,6 +1977,7 @@ dependencies = [ "cf-gears-toolkit-macros", "cf-gears-toolkit-odata", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "inventory", "serde", @@ -2000,6 +2025,7 @@ dependencies = [ "anyhow", "async-trait", "axum", + "cf-gears-authz-resolver", "cf-gears-authz-resolver-sdk", "cf-gears-simple-user-settings-sdk", "cf-gears-toolkit", @@ -2042,6 +2068,7 @@ dependencies = [ "cf-gears-toolkit", "cf-gears-toolkit-macros", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "inventory", "serde", @@ -2060,6 +2087,7 @@ dependencies = [ "cf-gears-toolkit", "cf-gears-toolkit-macros", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "inventory", "secrecy", @@ -2079,6 +2107,7 @@ dependencies = [ "cf-gears-toolkit", "cf-gears-toolkit-macros", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "inventory", "serde", @@ -2098,6 +2127,7 @@ dependencies = [ "cf-gears-toolkit", "cf-gears-toolkit-macros", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "inventory", "serde", @@ -2119,6 +2149,7 @@ dependencies = [ "cf-gears-toolkit-macros", "cf-gears-toolkit-odata", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "gts", "inventory", @@ -2140,6 +2171,7 @@ dependencies = [ "cf-gears-toolkit", "cf-gears-toolkit-macros", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "inventory", "serde", @@ -2181,6 +2213,7 @@ dependencies = [ "cf-gears-toolkit-canonical-errors", "cf-gears-toolkit-macros", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "inventory", "serde", @@ -2572,10 +2605,12 @@ dependencies = [ "anyhow", "async-trait", "cf-gears-authz-resolver-sdk", + "cf-gears-tenant-resolver", "cf-gears-tenant-resolver-sdk", "cf-gears-toolkit", "cf-gears-toolkit-macros", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "inventory", "serde", @@ -2630,12 +2665,14 @@ dependencies = [ "anyhow", "async-trait", "axum", + "cf-gears-authz-resolver", "cf-gears-authz-resolver-sdk", "cf-gears-toolkit", "cf-gears-toolkit-canonical-errors", "cf-gears-toolkit-macros", "cf-gears-toolkit-odata", "cf-gears-toolkit-security", + "cf-gears-types-registry", "cf-gears-types-registry-sdk", "cf-gears-usage-collector-sdk", "futures", @@ -10248,6 +10285,7 @@ dependencies = [ "anyhow", "async-trait", "axum", + "cf-gears-authz-resolver", "cf-gears-authz-resolver-sdk", "cf-gears-toolkit", "cf-gears-toolkit-canonical-errors", diff --git a/Cargo.toml b/Cargo.toml index 197c0937f..80b0e4dcd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -266,6 +266,14 @@ cf-gears-system-sdk-directory = { version = "0.1.36", path = "libs/system-sdks/s # System gears types-registry = { package = "cf-gears-types-registry", version = "0.1.23", path = "gears/system/types-registry/types-registry" } +authn-resolver = { package = "cf-gears-authn-resolver", version = "0.2.17", path = "gears/system/authn-resolver/authn-resolver" } +authz-resolver = { package = "cf-gears-authz-resolver", version = "0.1.24", path = "gears/system/authz-resolver/authz-resolver" } +tenant-resolver = { package = "cf-gears-tenant-resolver", version = "0.1.22", path = "gears/system/tenant-resolver/tenant-resolver" } +resource-group = { package = "cf-gears-resource-group", version = "0.1.4", path = "gears/system/resource-group/resource-group" } +credstore = { package = "cf-gears-credstore", version = "0.1.23", path = "gears/credstore/credstore" } +oagw = { package = "cf-gears-oagw", version = "0.2.26", path = "gears/system/oagw/oagw" } +account-management = { package = "cf-gears-account-management", version = "0.1.3", path = "gears/system/account-management/account-management" } +usage-collector = { package = "cf-gears-usage-collector", version = "0.1.0", path = "gears/system/usage-collector/usage-collector" } # System gears SDKs account-management-sdk = { package = "cf-gears-account-management-sdk", version = "0.1.3", path = "gears/system/account-management/account-management-sdk" } diff --git a/examples/oop-gears/calculator-gateway/calculator-gateway/Cargo.toml b/examples/oop-gears/calculator-gateway/calculator-gateway/Cargo.toml index 923d6ed9f..4491f44c8 100644 --- a/examples/oop-gears/calculator-gateway/calculator-gateway/Cargo.toml +++ b/examples/oop-gears/calculator-gateway/calculator-gateway/Cargo.toml @@ -10,6 +10,7 @@ description = "Calculator gateway module - example in-process REST service" [dependencies] # External SDKs (dependencies on other modules) calculator-sdk = { path = "../../calculator/calculator-sdk" } +calculator = { path = "../../calculator/calculator" } # ToolKit toolkit = { workspace = true } diff --git a/examples/toolkit/users-info/users-info/Cargo.toml b/examples/toolkit/users-info/users-info/Cargo.toml index 837c7e18f..30a05f4dd 100644 --- a/examples/toolkit/users-info/users-info/Cargo.toml +++ b/examples/toolkit/users-info/users-info/Cargo.toml @@ -20,6 +20,7 @@ users-info-sdk = { path = "../users-info-sdk", features = ["odata"] } # AuthZ resolver for authorization (PEP flow) authz-resolver-sdk = { package = "cf-gears-authz-resolver-sdk", path = "../../../../gears/system/authz-resolver/authz-resolver-sdk" } +authz-resolver = { workspace = true } # Core dependencies anyhow = { workspace = true } diff --git a/gears/credstore/credstore/Cargo.toml b/gears/credstore/credstore/Cargo.toml index ddc2389ac..630f82fbf 100644 --- a/gears/credstore/credstore/Cargo.toml +++ b/gears/credstore/credstore/Cargo.toml @@ -23,6 +23,7 @@ workspace = true toolkit-canonical-errors = { workspace = true } credstore-sdk = { workspace = true } types-registry-sdk = { workspace = true } +types-registry = { workspace = true } anyhow = { workspace = true } async-trait = { workspace = true } diff --git a/gears/credstore/plugins/static-credstore-plugin/Cargo.toml b/gears/credstore/plugins/static-credstore-plugin/Cargo.toml index 9a88bfafa..cb731c06e 100644 --- a/gears/credstore/plugins/static-credstore-plugin/Cargo.toml +++ b/gears/credstore/plugins/static-credstore-plugin/Cargo.toml @@ -19,6 +19,7 @@ workspace = true # Local dependencies credstore-sdk = { package = "cf-gears-credstore-sdk", version = "0.1.25", path = "../../credstore-sdk" } types-registry-sdk = { package = "cf-gears-types-registry-sdk", version = "0.2.3", path = "../../../system/types-registry/types-registry-sdk" } +types-registry = { workspace = true } # ToolKit dependencies toolkit = { workspace = true } diff --git a/gears/mini-chat/mini-chat/Cargo.toml b/gears/mini-chat/mini-chat/Cargo.toml index d1a589637..f0f33e5fb 100644 --- a/gears/mini-chat/mini-chat/Cargo.toml +++ b/gears/mini-chat/mini-chat/Cargo.toml @@ -37,6 +37,10 @@ oagw-sdk = { workspace = true } # Types registry for plugin discovery types-registry-sdk = { workspace = true } +types-registry = { workspace = true } +authn-resolver = { workspace = true } +authz-resolver = { workspace = true } +oagw = { workspace = true } # Core dependencies anyhow = { workspace = true } diff --git a/gears/simple-user-settings/simple-user-settings/Cargo.toml b/gears/simple-user-settings/simple-user-settings/Cargo.toml index 7d08a1fb9..5e32619dc 100644 --- a/gears/simple-user-settings/simple-user-settings/Cargo.toml +++ b/gears/simple-user-settings/simple-user-settings/Cargo.toml @@ -22,6 +22,7 @@ simple-user-settings-sdk = { package = "cf-gears-simple-user-settings-sdk", vers # AuthZ resolver for authorization (PEP flow) authz-resolver-sdk = { package = "cf-gears-authz-resolver-sdk", path = "../../../gears/system/authz-resolver/authz-resolver-sdk" } +authz-resolver = { workspace = true } anyhow = { workspace = true } async-trait = { workspace = true } diff --git a/gears/system/account-management/account-management/Cargo.toml b/gears/system/account-management/account-management/Cargo.toml index 6004d554d..5fd3ee76f 100644 --- a/gears/system/account-management/account-management/Cargo.toml +++ b/gears/system/account-management/account-management/Cargo.toml @@ -43,8 +43,11 @@ axum = { workspace = true, features = ["macros"] } http = { workspace = true } utoipa = { workspace = true, features = ["time"] } resource-group-sdk = { workspace = true } +resource-group = { workspace = true } tenant-resolver-sdk = { workspace = true } +tenant-resolver = { workspace = true } types-registry-sdk = { workspace = true } +types-registry = { workspace = true } gts = { workspace = true } uuid = { workspace = true, features = ["v4", "serde"] } @@ -76,6 +79,7 @@ tokio-util = { workspace = true } anyhow = { workspace = true } authz-resolver-sdk = { workspace = true } +authz-resolver = { workspace = true } [features] # Gates the Postgres-backed real-DB integration tests. Disabled by diff --git a/gears/system/account-management/plugins/static-idp-plugin/Cargo.toml b/gears/system/account-management/plugins/static-idp-plugin/Cargo.toml index ee94a988c..fee7805f2 100644 --- a/gears/system/account-management/plugins/static-idp-plugin/Cargo.toml +++ b/gears/system/account-management/plugins/static-idp-plugin/Cargo.toml @@ -22,6 +22,7 @@ toolkit-canonical-errors = { workspace = true } # Local dependencies account-management-sdk = { package = "cf-gears-account-management-sdk", version = "0.1.3", path = "../../account-management-sdk" } types-registry-sdk = { package = "cf-gears-types-registry-sdk", version = "0.2.3", path = "../../../types-registry/types-registry-sdk" } +types-registry = { workspace = true } # ToolKit dependencies toolkit = { workspace = true } diff --git a/gears/system/api-gateway/Cargo.toml b/gears/system/api-gateway/Cargo.toml index c8dd6b089..97f7e41b3 100644 --- a/gears/system/api-gateway/Cargo.toml +++ b/gears/system/api-gateway/Cargo.toml @@ -24,6 +24,8 @@ toolkit-http = { workspace = true } toolkit-security = { workspace = true } toolkit-canonical-errors = { workspace = true, features = ["axum"] } authn-resolver-sdk = { package = "cf-gears-authn-resolver-sdk", version = "0.3.17", path = "../authn-resolver/authn-resolver-sdk" } +grpc_hub = { workspace = true } +authn-resolver = { workspace = true } toolkit-macros = { workspace = true } inventory = { workspace = true } anyhow = { workspace = true } diff --git a/gears/system/authn-resolver/authn-resolver/Cargo.toml b/gears/system/authn-resolver/authn-resolver/Cargo.toml index c14d3776b..198ae88f7 100644 --- a/gears/system/authn-resolver/authn-resolver/Cargo.toml +++ b/gears/system/authn-resolver/authn-resolver/Cargo.toml @@ -23,6 +23,7 @@ toolkit-canonical-errors = { workspace = true } # Local dependencies authn-resolver-sdk = { package = "cf-gears-authn-resolver-sdk", version = "0.3.17", path = "../authn-resolver-sdk" } types-registry-sdk = { package = "cf-gears-types-registry-sdk", version = "0.2.3", path = "../../types-registry/types-registry-sdk" } +types-registry = { workspace = true } # ToolKit dependencies toolkit = { workspace = true } diff --git a/gears/system/authn-resolver/plugins/oidc-authn-plugin/Cargo.toml b/gears/system/authn-resolver/plugins/oidc-authn-plugin/Cargo.toml index 43564495d..c5cdee360 100644 --- a/gears/system/authn-resolver/plugins/oidc-authn-plugin/Cargo.toml +++ b/gears/system/authn-resolver/plugins/oidc-authn-plugin/Cargo.toml @@ -25,6 +25,8 @@ types-registry-sdk = { version = "0.2", path = "../../../types-registry/types-registry-sdk" } +types-registry = { workspace = true } +authn-resolver = { workspace = true } # ToolKit dependencies toolkit.workspace = true diff --git a/gears/system/authn-resolver/plugins/static-authn-plugin/Cargo.toml b/gears/system/authn-resolver/plugins/static-authn-plugin/Cargo.toml index da31b8292..e78905049 100644 --- a/gears/system/authn-resolver/plugins/static-authn-plugin/Cargo.toml +++ b/gears/system/authn-resolver/plugins/static-authn-plugin/Cargo.toml @@ -21,6 +21,7 @@ workspace = true # Local dependencies authn-resolver-sdk = { package = "cf-gears-authn-resolver-sdk", version = "0.3.17", path = "../../authn-resolver-sdk" } types-registry-sdk = { package = "cf-gears-types-registry-sdk", version = "0.2.3", path = "../../../types-registry/types-registry-sdk" } +types-registry = { workspace = true } # ToolKit dependencies toolkit = { workspace = true } diff --git a/gears/system/authz-resolver/authz-resolver/Cargo.toml b/gears/system/authz-resolver/authz-resolver/Cargo.toml index c6a704bc2..a791a5884 100644 --- a/gears/system/authz-resolver/authz-resolver/Cargo.toml +++ b/gears/system/authz-resolver/authz-resolver/Cargo.toml @@ -23,6 +23,7 @@ toolkit-canonical-errors = { workspace = true } # Local dependencies authz-resolver-sdk = { package = "cf-gears-authz-resolver-sdk", version = "0.3.8", path = "../authz-resolver-sdk" } types-registry-sdk = { package = "cf-gears-types-registry-sdk", version = "0.2.3", path = "../../types-registry/types-registry-sdk" } +types-registry = { workspace = true } # ToolKit dependencies toolkit = { workspace = true } diff --git a/gears/system/authz-resolver/plugins/static-authz-plugin/Cargo.toml b/gears/system/authz-resolver/plugins/static-authz-plugin/Cargo.toml index 4ab148c52..589e85d6c 100644 --- a/gears/system/authz-resolver/plugins/static-authz-plugin/Cargo.toml +++ b/gears/system/authz-resolver/plugins/static-authz-plugin/Cargo.toml @@ -21,6 +21,7 @@ workspace = true # Local dependencies authz-resolver-sdk = { package = "cf-gears-authz-resolver-sdk", version = "0.3.8", path = "../../authz-resolver-sdk" } types-registry-sdk = { package = "cf-gears-types-registry-sdk", version = "0.2.3", path = "../../../types-registry/types-registry-sdk" } +types-registry = { workspace = true } # ToolKit dependencies toolkit = { workspace = true } diff --git a/gears/system/authz-resolver/plugins/tr-authz-plugin/Cargo.toml b/gears/system/authz-resolver/plugins/tr-authz-plugin/Cargo.toml index a30114349..b3e1afb39 100644 --- a/gears/system/authz-resolver/plugins/tr-authz-plugin/Cargo.toml +++ b/gears/system/authz-resolver/plugins/tr-authz-plugin/Cargo.toml @@ -22,6 +22,8 @@ workspace = true authz-resolver-sdk = { package = "cf-gears-authz-resolver-sdk", version = "0.3.8", path = "../../authz-resolver-sdk" } tenant-resolver-sdk = { package = "cf-gears-tenant-resolver-sdk", version = "0.3.8", path = "../../../tenant-resolver/tenant-resolver-sdk" } types-registry-sdk = { package = "cf-gears-types-registry-sdk", version = "0.2.3", path = "../../../types-registry/types-registry-sdk" } +types-registry = { workspace = true } +tenant-resolver = { workspace = true } # ToolKit dependencies toolkit = { workspace = true } diff --git a/gears/system/oagw/oagw/Cargo.toml b/gears/system/oagw/oagw/Cargo.toml index 1c5dab870..eaefbcdfb 100644 --- a/gears/system/oagw/oagw/Cargo.toml +++ b/gears/system/oagw/oagw/Cargo.toml @@ -55,9 +55,13 @@ url = { workspace = true } gts = { workspace = true } utoipa = { workspace = true } types-registry-sdk = { workspace = true } +types-registry = { workspace = true } authz-resolver-sdk = { workspace = true } +authz-resolver = { workspace = true } tenant-resolver-sdk = { workspace = true } +tenant-resolver = { workspace = true } credstore-sdk = { workspace = true } +credstore = { workspace = true } # Metrics / OpenTelemetry opentelemetry = { workspace = true } heck = { workspace = true } diff --git a/gears/system/resource-group/resource-group/Cargo.toml b/gears/system/resource-group/resource-group/Cargo.toml index 5c3eff733..b73994ece 100644 --- a/gears/system/resource-group/resource-group/Cargo.toml +++ b/gears/system/resource-group/resource-group/Cargo.toml @@ -57,6 +57,8 @@ authz-resolver-sdk = { workspace = true } # GTS type system — types registry for schema resolution types-registry-sdk = { workspace = true } +authz-resolver = { workspace = true } +types-registry = { workspace = true } gts = { workspace = true } # Local dependencies diff --git a/gears/system/tenant-resolver/plugins/rg-tr-plugin/Cargo.toml b/gears/system/tenant-resolver/plugins/rg-tr-plugin/Cargo.toml index 71f7ee5b8..3139a2f88 100644 --- a/gears/system/tenant-resolver/plugins/rg-tr-plugin/Cargo.toml +++ b/gears/system/tenant-resolver/plugins/rg-tr-plugin/Cargo.toml @@ -22,6 +22,8 @@ workspace = true tenant-resolver-sdk = { package = "cf-gears-tenant-resolver-sdk", version = "0.3.8", path = "../../tenant-resolver-sdk" } resource-group-sdk = { package = "cf-gears-resource-group-sdk", version = "0.1.5", path = "../../../resource-group/resource-group-sdk" } types-registry-sdk = { package = "cf-gears-types-registry-sdk", version = "0.2.3", path = "../../../types-registry/types-registry-sdk" } +types-registry = { workspace = true } +resource-group = { workspace = true } # ToolKit dependencies toolkit = { workspace = true } diff --git a/gears/system/tenant-resolver/plugins/single-tenant-tr-plugin/Cargo.toml b/gears/system/tenant-resolver/plugins/single-tenant-tr-plugin/Cargo.toml index a81afc65a..8db06bfef 100644 --- a/gears/system/tenant-resolver/plugins/single-tenant-tr-plugin/Cargo.toml +++ b/gears/system/tenant-resolver/plugins/single-tenant-tr-plugin/Cargo.toml @@ -21,6 +21,7 @@ workspace = true # Local dependencies tenant-resolver-sdk = { package = "cf-gears-tenant-resolver-sdk", version = "0.3.8", path = "../../tenant-resolver-sdk" } types-registry-sdk = { package = "cf-gears-types-registry-sdk", version = "0.2.3", path = "../../../types-registry/types-registry-sdk" } +types-registry = { workspace = true } # ToolKit dependencies toolkit = { workspace = true } diff --git a/gears/system/tenant-resolver/plugins/static-tr-plugin/Cargo.toml b/gears/system/tenant-resolver/plugins/static-tr-plugin/Cargo.toml index 71928d225..6cf0c4fd0 100644 --- a/gears/system/tenant-resolver/plugins/static-tr-plugin/Cargo.toml +++ b/gears/system/tenant-resolver/plugins/static-tr-plugin/Cargo.toml @@ -21,6 +21,7 @@ workspace = true # Local dependencies tenant-resolver-sdk = { package = "cf-gears-tenant-resolver-sdk", version = "0.3.8", path = "../../tenant-resolver-sdk" } types-registry-sdk = { package = "cf-gears-types-registry-sdk", version = "0.2.3", path = "../../../types-registry/types-registry-sdk" } +types-registry = { workspace = true } # ToolKit dependencies toolkit = { workspace = true } diff --git a/gears/system/tenant-resolver/tenant-resolver/Cargo.toml b/gears/system/tenant-resolver/tenant-resolver/Cargo.toml index 1e4fab916..ea9fc9c10 100644 --- a/gears/system/tenant-resolver/tenant-resolver/Cargo.toml +++ b/gears/system/tenant-resolver/tenant-resolver/Cargo.toml @@ -23,6 +23,7 @@ toolkit-canonical-errors = { workspace = true } # Local dependencies tenant-resolver-sdk = { package = "cf-gears-tenant-resolver-sdk", version = "0.3.8", path = "../tenant-resolver-sdk" } types-registry-sdk = { package = "cf-gears-types-registry-sdk", version = "0.2.3", path = "../../types-registry/types-registry-sdk" } +types-registry = { workspace = true } # ToolKit dependencies toolkit = { workspace = true } diff --git a/gears/system/usage-collector/plugins/noop-usage-collector-plugin/Cargo.toml b/gears/system/usage-collector/plugins/noop-usage-collector-plugin/Cargo.toml index aed0aad51..7ae5e4f89 100644 --- a/gears/system/usage-collector/plugins/noop-usage-collector-plugin/Cargo.toml +++ b/gears/system/usage-collector/plugins/noop-usage-collector-plugin/Cargo.toml @@ -20,6 +20,7 @@ workspace = true # Local dependencies usage-collector-sdk = { workspace = true } types-registry-sdk = { workspace = true } +types-registry = { workspace = true } # ToolKit dependencies toolkit = { workspace = true } diff --git a/gears/system/usage-collector/usage-collector/Cargo.toml b/gears/system/usage-collector/usage-collector/Cargo.toml index a96dd7448..1446ebfbf 100644 --- a/gears/system/usage-collector/usage-collector/Cargo.toml +++ b/gears/system/usage-collector/usage-collector/Cargo.toml @@ -20,7 +20,9 @@ workspace = true [dependencies] usage-collector-sdk = { workspace = true } types-registry-sdk = { workspace = true } +types-registry = { workspace = true } authz-resolver-sdk = { workspace = true } +authz-resolver = { workspace = true } anyhow = { workspace = true } async-trait = { workspace = true } diff --git a/libs/toolkit-macros/src/lib.rs b/libs/toolkit-macros/src/lib.rs index 2171dc118..53e4e4571 100644 --- a/libs/toolkit-macros/src/lib.rs +++ b/libs/toolkit-macros/src/lib.rs @@ -768,6 +768,24 @@ pub fn gear(attr: TokenStream, item: TokenStream) -> TokenStream { } }; + // Generate re-exports for gear dependencies so their `inventory::submit!` + // registrations survive linking when this gear is pulled in transitively. + let dep_reexports: Vec<_> = deps_owned + .iter() + .map(|dep| { + let crate_ident = Ident::new(&dep.replace('-', "_"), Span::call_site()); + let alias_ident = Ident::new( + &format!("_gear_dep_{}", dep.replace('-', "_")), + Span::call_site(), + ); + quote! { + #[cfg(not(test))] + #[doc(hidden)] + pub use ::#crate_ident as #alias_ident; + } + }) + .collect(); + // Final expansion: let expanded = quote! { #input @@ -775,6 +793,9 @@ pub fn gear(attr: TokenStream, item: TokenStream) -> TokenStream { // Compile-time capability assertions (better errors if trait impls are missing) #(#cap_asserts)* + // Re-export gear dependencies to force-link their inventory registrations + #(#dep_reexports)* + // Registrator that targets the *builder*, not the final registry #[doc(hidden)] fn #registrator_name(b: &mut ::toolkit::registry::RegistryBuilder) {