diff --git a/CHANGELOG.md b/CHANGELOG.md index 7be02fc6..5f0cd1e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.47.0] +### Changed +- Improved FlightSQL session state management (CLI v 0.214.0) + ## [0.46.3] ### Fixed - Regression in FlightSQL interface related to database-backed `QueryService` diff --git a/Cargo.lock b/Cargo.lock index 64f18447..1cca9880 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -449,7 +449,7 @@ checksum = "5a833d97bf8a5f0f878daf2c8451fff7de7f9de38baa5a45d936ec718d81255a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -572,7 +572,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -589,7 +589,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "syn-solidity", "tiny-keccak", ] @@ -607,7 +607,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.90", + "syn 2.0.91", "syn-solidity", ] @@ -753,9 +753,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" [[package]] name = "approx" @@ -1281,7 +1281,7 @@ dependencies = [ "proc-macro2", "quote", "strum", - "syn 2.0.90", + "syn 2.0.91", "thiserror 1.0.69", ] @@ -1317,7 +1317,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -1339,7 +1339,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -1350,7 +1350,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -1396,7 +1396,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -2321,7 +2321,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -2376,7 +2376,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -2426,8 +2426,8 @@ checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "container-runtime" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "cfg-if", @@ -2437,7 +2437,7 @@ dependencies = [ "random-names", "regex", "serde", - "thiserror 2.0.8", + "thiserror 2.0.9", "tokio", "tracing", "url", @@ -2671,7 +2671,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -2695,7 +2695,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -2706,7 +2706,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -2731,8 +2731,8 @@ checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "database-common" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-stream", "async-trait", @@ -2750,18 +2750,18 @@ dependencies = [ "serde_json", "sha2", "sqlx", - "thiserror 2.0.8", + "thiserror 2.0.9", "tokio", "tracing", ] [[package]] name = "database-common-macros" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -2883,7 +2883,7 @@ dependencies = [ "datafusion", "futures", "serde_json", - "thiserror 2.0.8", + "thiserror 2.0.9", "tokio", "tracing", ] @@ -3083,7 +3083,7 @@ dependencies = [ "quick-xml 0.37.1", "regex", "serde", - "thiserror 2.0.8", + "thiserror 2.0.9", "tracing", ] @@ -3295,7 +3295,7 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -3315,7 +3315,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "unicode-xid", ] @@ -3348,24 +3348,24 @@ dependencies = [ [[package]] name = "dill" -version = "0.9.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c4bb6baf8208749875ef15410dfab2547aa62ec31bcdddf79d8d6434a945e8" +checksum = "3850434a13220419bc385bb7915055e458954c4d1fd224c6fdd050311c02cc42" dependencies = [ "dill-impl", "multimap", - "thiserror 2.0.8", + "thiserror 2.0.9", ] [[package]] name = "dill-impl" -version = "0.9.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02401a1881492067da06bda737235c3325c35c35f48dce2eba4e85cefdfac674" +checksum = "4533d5deb4ace0aff764d29d26f87f510665259dee67a827ee762e54d8b4938c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -3397,7 +3397,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -3553,13 +3553,13 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] name = "enum-variants" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" [[package]] name = "env_filter" @@ -3624,26 +3624,26 @@ dependencies = [ [[package]] name = "event-sourcing" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-stream", "async-trait", "event-sourcing-macros", "internal-error", "serde", - "thiserror 2.0.8", + "thiserror 2.0.9", "tokio-stream", "tracing", ] [[package]] name = "event-sourcing-macros" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -3885,7 +3885,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -4340,15 +4340,15 @@ dependencies = [ [[package]] name = "http-common" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "axum", "http 1.2.0", "internal-error", "kamu-core", "serde", - "thiserror 2.0.8", + "thiserror 2.0.9", "tracing", "utoipa", ] @@ -4627,7 +4627,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -4674,7 +4674,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -4713,15 +4713,15 @@ checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" [[package]] name = "init-on-startup" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "database-common", "dill", "internal-error", "petgraph", - "thiserror 2.0.8", + "thiserror 2.0.9", "tracing", ] @@ -4760,10 +4760,10 @@ checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" [[package]] name = "internal-error" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ - "thiserror 2.0.8", + "thiserror 2.0.9", ] [[package]] @@ -4888,8 +4888,8 @@ dependencies = [ [[package]] name = "kamu" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "alloy", "async-recursion", @@ -4947,7 +4947,7 @@ dependencies = [ "serde_yaml", "sha3", "tempfile", - "thiserror 2.0.8", + "thiserror 2.0.9", "time-source", "tokio", "tokio-stream", @@ -4961,8 +4961,8 @@ dependencies = [ [[package]] name = "kamu-accounts" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "base32", @@ -4981,14 +4981,14 @@ dependencies = [ "serde", "serde_with", "sqlx", - "thiserror 2.0.8", + "thiserror 2.0.9", "uuid", ] [[package]] name = "kamu-accounts-inmem" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "chrono", @@ -5002,8 +5002,8 @@ dependencies = [ [[package]] name = "kamu-accounts-postgres" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "chrono", @@ -5019,8 +5019,8 @@ dependencies = [ [[package]] name = "kamu-accounts-services" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "argon2", "async-trait", @@ -5043,8 +5043,8 @@ dependencies = [ [[package]] name = "kamu-accounts-sqlite" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "chrono", @@ -5060,8 +5060,8 @@ dependencies = [ [[package]] name = "kamu-adapter-auth-oso" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "dill", @@ -5077,17 +5077,21 @@ dependencies = [ [[package]] name = "kamu-adapter-flight-sql" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "arrow-flight", "async-trait", "base64 0.22.1", - "dashmap", + "chrono", "datafusion", + "dill", "futures", + "kamu-core", "like", "prost", + "time-source", + "tokio", "tonic", "tracing", "uuid", @@ -5095,8 +5099,8 @@ dependencies = [ [[package]] name = "kamu-adapter-graphql" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-graphql", "async-trait", @@ -5128,8 +5132,8 @@ dependencies = [ [[package]] name = "kamu-adapter-http" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "aws-sdk-s3", @@ -5162,7 +5166,7 @@ dependencies = [ "serde_with", "strum", "tar", - "thiserror 2.0.8", + "thiserror 2.0.9", "time-source", "tokio", "tokio-stream", @@ -5178,8 +5182,8 @@ dependencies = [ [[package]] name = "kamu-adapter-oauth" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "dill", @@ -5190,13 +5194,13 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror 2.0.8", + "thiserror 2.0.9", ] [[package]] name = "kamu-adapter-odata" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "axum", "chrono", @@ -5291,7 +5295,7 @@ dependencies = [ "tempfile", "test-group", "test-log", - "thiserror 2.0.8", + "thiserror 2.0.9", "time-source", "tokio", "tokio-stream", @@ -5309,21 +5313,21 @@ dependencies = [ [[package]] name = "kamu-auth-rebac" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "internal-error", "opendatafabric", "sqlx", "strum", - "thiserror 2.0.8", + "thiserror 2.0.9", ] [[package]] name = "kamu-auth-rebac-inmem" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "dill", @@ -5333,8 +5337,8 @@ dependencies = [ [[package]] name = "kamu-auth-rebac-postgres" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "database-common", @@ -5346,8 +5350,8 @@ dependencies = [ [[package]] name = "kamu-auth-rebac-services" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "dill", @@ -5362,8 +5366,8 @@ dependencies = [ [[package]] name = "kamu-auth-rebac-sqlite" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "database-common", @@ -5375,8 +5379,8 @@ dependencies = [ [[package]] name = "kamu-core" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "bytes", @@ -5396,7 +5400,8 @@ dependencies = [ "pin-project", "serde", "serde_with", - "thiserror 2.0.8", + "strum", + "thiserror 2.0.9", "tokio", "tokio-stream", "tracing", @@ -5406,8 +5411,8 @@ dependencies = [ [[package]] name = "kamu-data-utils" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "arrow", "arrow-digest", @@ -5421,15 +5426,15 @@ dependencies = [ "serde", "serde_json", "sha3", - "thiserror 2.0.8", + "thiserror 2.0.9", "tracing", "url", ] [[package]] name = "kamu-datasets" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "aes-gcm", "async-trait", @@ -5442,15 +5447,15 @@ dependencies = [ "serde", "serde_with", "sqlx", - "thiserror 2.0.8", + "thiserror 2.0.9", "tokio-stream", "uuid", ] [[package]] name = "kamu-datasets-inmem" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "database-common", @@ -5465,8 +5470,8 @@ dependencies = [ [[package]] name = "kamu-datasets-postgres" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-stream", "async-trait", @@ -5482,8 +5487,8 @@ dependencies = [ [[package]] name = "kamu-datasets-services" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-stream", "async-trait", @@ -5509,8 +5514,8 @@ dependencies = [ [[package]] name = "kamu-datasets-sqlite" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-stream", "async-trait", @@ -5526,8 +5531,8 @@ dependencies = [ [[package]] name = "kamu-flow-system" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "chrono", @@ -5547,14 +5552,14 @@ dependencies = [ "serde_with", "sqlx", "strum", - "thiserror 2.0.8", + "thiserror 2.0.9", "tokio-stream", ] [[package]] name = "kamu-flow-system-inmem" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "chrono", @@ -5570,8 +5575,8 @@ dependencies = [ [[package]] name = "kamu-flow-system-postgres" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-stream", "async-trait", @@ -5587,8 +5592,8 @@ dependencies = [ [[package]] name = "kamu-flow-system-services" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-stream", "async-trait", @@ -5613,8 +5618,8 @@ dependencies = [ [[package]] name = "kamu-flow-system-sqlite" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-stream", "async-trait", @@ -5630,8 +5635,8 @@ dependencies = [ [[package]] name = "kamu-ingest-datafusion" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "chrono", @@ -5647,7 +5652,7 @@ dependencies = [ "serde", "serde_json", "shapefile", - "thiserror 2.0.8", + "thiserror 2.0.9", "tokio", "tracing", "walkdir", @@ -5656,8 +5661,8 @@ dependencies = [ [[package]] name = "kamu-messaging-outbox-inmem" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "dill", @@ -5669,8 +5674,8 @@ dependencies = [ [[package]] name = "kamu-messaging-outbox-postgres" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-stream", "async-trait", @@ -5684,8 +5689,8 @@ dependencies = [ [[package]] name = "kamu-messaging-outbox-sqlite" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-stream", "async-trait", @@ -5725,7 +5730,7 @@ dependencies = [ "strum", "test-group", "test-log", - "thiserror 2.0.8", + "thiserror 2.0.9", "tokio", "tracing", "tracing-log", @@ -5748,8 +5753,8 @@ dependencies = [ [[package]] name = "kamu-task-system" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "chrono", @@ -5762,14 +5767,14 @@ dependencies = [ "opendatafabric", "serde", "sqlx", - "thiserror 2.0.8", + "thiserror 2.0.9", "tokio-stream", ] [[package]] name = "kamu-task-system-inmem" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "database-common", @@ -5781,8 +5786,8 @@ dependencies = [ [[package]] name = "kamu-task-system-postgres" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-stream", "async-trait", @@ -5797,8 +5802,8 @@ dependencies = [ [[package]] name = "kamu-task-system-services" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "database-common", @@ -5820,8 +5825,8 @@ dependencies = [ [[package]] name = "kamu-task-system-sqlite" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-stream", "async-trait", @@ -6214,8 +6219,8 @@ dependencies = [ [[package]] name = "messaging-outbox" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "chrono", @@ -6231,7 +6236,7 @@ dependencies = [ "prometheus", "serde", "serde_json", - "thiserror 2.0.8", + "thiserror 2.0.9", "time-source", "tokio", "tokio-stream", @@ -6303,7 +6308,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -6325,8 +6330,8 @@ dependencies = [ [[package]] name = "multiformats" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "base64 0.22.1", "bs58", @@ -6337,7 +6342,7 @@ dependencies = [ "serde", "serde_json", "sha3", - "thiserror 2.0.8", + "thiserror 2.0.9", "unsigned-varint", "utoipa", ] @@ -6501,14 +6506,14 @@ checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] name = "object" -version = "0.36.5" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] @@ -6545,8 +6550,8 @@ dependencies = [ [[package]] name = "observability" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "axum", @@ -6559,7 +6564,7 @@ dependencies = [ "prometheus", "serde", "serde_json", - "thiserror 2.0.8", + "thiserror 2.0.9", "tower-http", "tracing", "tracing-appender", @@ -6595,8 +6600,8 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "opendatafabric" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "arrow", "base64 0.22.1", @@ -6616,7 +6621,7 @@ dependencies = [ "serde_yaml", "sha3", "sqlx", - "thiserror 2.0.8", + "thiserror 2.0.9", "tonic", "url", "utoipa", @@ -6929,7 +6934,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -6991,7 +6996,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 2.0.8", + "thiserror 2.0.9", "ucd-trie", ] @@ -7015,7 +7020,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -7113,7 +7118,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -7313,7 +7318,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -7333,7 +7338,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "version_check", "yansi", ] @@ -7392,7 +7397,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -7443,7 +7448,7 @@ dependencies = [ "rustc-hash", "rustls 0.23.20", "socket2", - "thiserror 2.0.8", + "thiserror 2.0.9", "tokio", "tracing", ] @@ -7462,7 +7467,7 @@ dependencies = [ "rustls 0.23.20", "rustls-pki-types", "slab", - "thiserror 2.0.8", + "thiserror 2.0.9", "tinyvec", "tracing", "web-time", @@ -7539,8 +7544,8 @@ dependencies = [ [[package]] name = "random-names" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "rand", ] @@ -8178,14 +8183,14 @@ checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] name = "serde_json" -version = "1.0.133" +version = "1.0.134" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" +checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" dependencies = [ "itoa", "memchr", @@ -8251,7 +8256,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -8424,7 +8429,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -8500,7 +8505,7 @@ checksum = "01b2e185515564f15375f593fb966b5718bc624ba77fe49fa4616ad619690554" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -8570,7 +8575,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -8593,7 +8598,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.90", + "syn 2.0.91", "tempfile", "tokio", "url", @@ -8788,7 +8793,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -8810,9 +8815,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.90" +version = "2.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" +checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" dependencies = [ "proc-macro2", "quote", @@ -8828,7 +8833,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -8848,7 +8853,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -8918,7 +8923,7 @@ dependencies = [ "proc-macro2", "quote", "sha2", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -8940,7 +8945,7 @@ checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -8954,11 +8959,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.8" +version = "2.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f5383f3e0071702bf93ab5ee99b52d26936be9dedd9413067cbdcddcb6141a" +checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc" dependencies = [ - "thiserror-impl 2.0.8", + "thiserror-impl 2.0.9", ] [[package]] @@ -8969,18 +8974,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] name = "thiserror-impl" -version = "2.0.8" +version = "2.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f357fcec90b3caef6623a099691be676d033b40a058ac95d2a6ade6fa0c943" +checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -9046,8 +9051,8 @@ dependencies = [ [[package]] name = "time-source" -version = "0.213.1" -source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.213.1#3213a907a95bcf041f8d827dcc7cea78e6332541" +version = "0.214.0" +source = "git+https://github.com/kamu-data/kamu-cli?tag=v0.214.0#741548d4de55dc055030e2b3e40aa37addd5e047" dependencies = [ "async-trait", "chrono", @@ -9115,7 +9120,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -9363,7 +9368,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -9670,7 +9675,7 @@ checksum = "564b03f8044ad6806bdc0d635e88be24967e785eef096df6b2636d2cc1e05d4b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -9767,7 +9772,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "wasm-bindgen-shared", ] @@ -9802,7 +9807,7 @@ checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10214,7 +10219,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "synstructure", ] @@ -10236,7 +10241,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -10256,7 +10261,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", "synstructure", ] @@ -10277,7 +10282,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -10299,7 +10304,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.91", ] [[package]] @@ -10324,7 +10329,7 @@ dependencies = [ "pbkdf2", "rand", "sha1", - "thiserror 2.0.8", + "thiserror 2.0.9", "time", "zeroize", "zopfli", diff --git a/Cargo.toml b/Cargo.toml index 8a4d0f60..9ba59fc6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,53 +14,53 @@ resolver = "2" # Utils graceful-shutdown = { path = "src/utils/graceful-shutdown", version = "0.46.3", default-features = false } # Utils (core) -container-runtime = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -database-common = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -database-common-macros = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -http-common = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -init-on-startup = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -internal-error = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -messaging-outbox = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -observability = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -random-names = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -time-source = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } +container-runtime = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +database-common = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +database-common-macros = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +http-common = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +init-on-startup = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +internal-error = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +messaging-outbox = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +observability = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +random-names = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +time-source = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } # Domain -opendatafabric = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-task-system = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-task-system-services = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-flow-system = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-flow-system-services = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-accounts = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-datasets = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } +opendatafabric = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-task-system = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-task-system-services = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-flow-system = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-flow-system-services = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-accounts = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-datasets = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } # Infra -kamu = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-accounts-inmem = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-accounts-postgres = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-accounts-services = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-accounts-sqlite = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-adapter-auth-oso = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-adapter-flight-sql = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-adapter-graphql = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-adapter-http = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-adapter-oauth = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-adapter-odata = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-auth-rebac-inmem = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-auth-rebac-postgres = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-auth-rebac-services = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-auth-rebac-sqlite = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-datasets-inmem = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-datasets-postgres = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-datasets-services = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-datasets-sqlite = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-flow-system-inmem = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-flow-system-postgres = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-flow-system-sqlite = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-messaging-outbox-inmem = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-messaging-outbox-postgres = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-messaging-outbox-sqlite = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-task-system-inmem = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-task-system-postgres = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } -kamu-task-system-sqlite = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.213.1", version = "0.213.1", default-features = false } +kamu = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-accounts-inmem = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-accounts-postgres = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-accounts-services = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-accounts-sqlite = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-adapter-auth-oso = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-adapter-flight-sql = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-adapter-graphql = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-adapter-http = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-adapter-oauth = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-adapter-odata = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-auth-rebac-inmem = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-auth-rebac-postgres = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-auth-rebac-services = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-auth-rebac-sqlite = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-datasets-inmem = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-datasets-postgres = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-datasets-services = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-datasets-sqlite = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-flow-system-inmem = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-flow-system-postgres = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-flow-system-sqlite = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-messaging-outbox-inmem = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-messaging-outbox-postgres = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-messaging-outbox-sqlite = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-task-system-inmem = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-task-system-postgres = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } +kamu-task-system-sqlite = { git = "https://github.com/kamu-data/kamu-cli", tag = "v0.214.0", version = "0.214.0", default-features = false } [workspace.package] diff --git a/src/app/api-server/Cargo.toml b/src/app/api-server/Cargo.toml index 78ee8758..62e362a2 100644 --- a/src/app/api-server/Cargo.toml +++ b/src/app/api-server/Cargo.toml @@ -27,7 +27,7 @@ query-extensions-json = ["kamu/query-extensions-json"] [dependencies] -dill = "0.9" +dill = { version = "0.10", default-features = false } container-runtime = { workspace = true } database-common = { workspace = true } diff --git a/src/app/api-server/src/app.rs b/src/app/api-server/src/app.rs index 0005f6bc..8cd77050 100644 --- a/src/app/api-server/src/app.rs +++ b/src/app/api-server/src/app.rs @@ -296,6 +296,17 @@ pub async fn init_dependencies( b.add_value(config.protocol.ipfs.into_gateway_config()); b.add_value(kamu::utils::ipfs_wrapper::IpfsClient::default()); + b.add_value(config.protocol.flight_sql.into_system_config()); + // TODO: SEC: Unstub FlightSQL authentication + b.add_builder( + kamu_adapter_flight_sql::SessionAuthBasicPredefined::builder() + .with_accounts_passwords([("kamu".to_string(), "kamu".to_string())].into()), + ); + b.bind::(); + b.add::(); + b.add_builder(kamu_adapter_flight_sql::SessionManagerCaching::builder()); + b.add::(); + b.add::(); b.add_value(config.source.to_infra_cfg()); b.add_value(config.source.mqtt.to_infra_cfg()); diff --git a/src/app/api-server/src/config.rs b/src/app/api-server/src/config.rs index 4ba9262e..13c6c49c 100644 --- a/src/app/api-server/src/config.rs +++ b/src/app/api-server/src/config.rs @@ -359,8 +359,13 @@ impl EthRpcEndpoint { pub struct ProtocolConfig { /// IPFS configuration pub ipfs: IpfsConfig, + + /// FlightSQL configuration + pub flight_sql: FlightSqlConfig, } +///////////////////////////////////////////////////////////////////////////////////////// + #[derive(Debug, Serialize, Deserialize)] #[serde(deny_unknown_fields)] #[serde(rename_all = "camelCase")] @@ -396,6 +401,39 @@ impl IpfsConfig { } } +///////////////////////////////////////////////////////////////////////////////////////// + +#[derive(Debug, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +#[serde(rename_all = "camelCase")] +pub struct FlightSqlConfig { + /// Time after which FlightSQL client session will be forgotten and client + /// will have to re-authroize + pub session_expiration_timeout: DurationString, + + /// Time after which FlightSQL session context will be released to free the + /// resources + pub session_inactivity_timeout: DurationString, +} + +impl Default for FlightSqlConfig { + fn default() -> Self { + Self { + session_expiration_timeout: DurationString::from_string("5m".to_owned()).unwrap(), + session_inactivity_timeout: DurationString::from_string("5s".to_owned()).unwrap(), + } + } +} + +impl FlightSqlConfig { + pub fn into_system_config(self) -> kamu_adapter_flight_sql::SessionCachingConfig { + kamu_adapter_flight_sql::SessionCachingConfig { + session_expiration_timeout: self.session_expiration_timeout.into(), + session_inactivity_timeout: self.session_inactivity_timeout.into(), + } + } +} + ///////////////////////////////////////////////////////////////////////////////////////// // Database ///////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/app/api-server/src/flightsql_server.rs b/src/app/api-server/src/flightsql_server.rs index d1f36135..c22d1002 100644 --- a/src/app/api-server/src/flightsql_server.rs +++ b/src/app/api-server/src/flightsql_server.rs @@ -13,19 +13,25 @@ use std::net::SocketAddr; use std::sync::Arc; use arrow_flight::flight_service_server::FlightServiceServer; +use datafusion::logical_expr::LogicalPlan; use datafusion::prelude::SessionContext; use futures::Future; use kamu_accounts::{AnonymousAccountReason, CurrentAccountSubject}; -use kamu_adapter_flight_sql::{KamuFlightSqlService, SessionFactory, Token}; +use kamu_adapter_flight_sql::{ + KamuFlightSqlService, + PlanToken, + SessionManager, + SessionManagerCaching, + SessionToken, +}; use tokio::net::TcpListener; use tonic::transport::Server; use tonic::Status; -use crate::config::ACCOUNT_KAMU; - ///////////////////////////////////////////////////////////////////////////////////////// pub(crate) struct FlightSqlServer { + base_catalog: dill::Catalog, service: KamuFlightSqlService, listener: TcpListener, } @@ -40,14 +46,17 @@ impl FlightSqlServer { ) -> Self { let service = kamu_adapter_flight_sql::KamuFlightSqlService::builder() .with_server_name(crate::BINARY_NAME, crate::VERSION) - .with_session_factory(Arc::new(SessionFactoryImpl { base_catalog })) .build(); let listener = TcpListener::bind((address, port.unwrap_or_default())) .await .unwrap(); - Self { service, listener } + Self { + base_catalog, + service, + listener, + } } pub fn local_addr(&self) -> SocketAddr { @@ -57,6 +66,12 @@ impl FlightSqlServer { pub fn run(self) -> impl Future> { Server::builder() .trace_fn(trace_grpc_request) + .layer(tonic::service::interceptor( + move |mut req: tonic::Request<()>| { + req.extensions_mut().insert(self.base_catalog.clone()); + Ok(req) + }, + )) .add_service(FlightServiceServer::new(self.service)) .serve_with_incoming(tokio_stream::wrappers::TcpListenerStream::new( self.listener, @@ -87,24 +102,15 @@ fn trace_grpc_request(request: &http::Request<()>) -> tracing::Span { ///////////////////////////////////////////////////////////////////////////////////////// -struct SessionFactoryImpl { +/// Transactional wrapper on top of [`SessionManagerCaching`] +#[dill::component] +#[dill::interface(dyn SessionManager)] +pub struct SessionManagerCachingTransactional { base_catalog: dill::Catalog, } -#[async_trait::async_trait] -impl SessionFactory for SessionFactoryImpl { - #[tracing::instrument(level = "debug", skip_all, fields(username))] - async fn authenticate(&self, username: &str, password: &str) -> Result { - // TODO: SEC: Real auth via app token - if username == ACCOUNT_KAMU && password == username { - Ok(String::new()) - } else { - Err(Status::unauthenticated("Invalid credentials!")) - } - } - - #[tracing::instrument(level = "debug", skip_all)] - async fn get_context(&self, _token: &Token) -> Result, Status> { +impl SessionManagerCachingTransactional { + async fn inner(&self) -> Result, Status> { let subject = CurrentAccountSubject::Anonymous(AnonymousAccountReason::NoAuthenticationProvided); @@ -126,12 +132,47 @@ impl SessionFactory for SessionFactoryImpl { .add_value(transaction_ref) .build(); - let query_svc = session_catalog - .get_one::() - .unwrap(); + session_catalog + .get_one() + .map_err(|e| Status::internal(e.to_string())) + } +} - let ctx = Arc::new(query_svc.create_session().await.unwrap()); +#[async_trait::async_trait] +impl SessionManager for SessionManagerCachingTransactional { + async fn auth_basic(&self, username: &str, password: &str) -> Result { + self.inner().await?.auth_basic(username, password).await + } + + async fn end_session(&self, token: &SessionToken) -> Result<(), Status> { + self.inner().await?.end_session(token).await + } + + async fn get_context(&self, token: &SessionToken) -> Result, Status> { + self.inner().await?.get_context(token).await + } + + async fn cache_plan( + &self, + token: &SessionToken, + plan: LogicalPlan, + ) -> Result { + self.inner().await?.cache_plan(token, plan).await + } + + async fn get_plan( + &self, + token: &SessionToken, + plan_token: &PlanToken, + ) -> Result { + self.inner().await?.get_plan(token, plan_token).await + } - Ok(ctx) + async fn remove_plan( + &self, + token: &SessionToken, + plan_token: &PlanToken, + ) -> Result<(), Status> { + self.inner().await?.remove_plan(token, plan_token).await } } diff --git a/src/app/oracle-provider/Cargo.toml b/src/app/oracle-provider/Cargo.toml index ff5dc305..d2e205f2 100644 --- a/src/app/oracle-provider/Cargo.toml +++ b/src/app/oracle-provider/Cargo.toml @@ -56,7 +56,7 @@ clap = { version = "4", default-features = false, features = [ ] } ciborium = { version = "0.2", default-features = false } confique = { version = "0.3", default-features = false, features = ["yaml"] } -dill = { version = "0.9", default-features = false } +dill = { version = "0.10", default-features = false } duration-string = { version = "0.4", default-features = false, features = [ "serde", ] }