influxdb/influxdb_iox/Cargo.toml

119 lines
4.9 KiB
TOML
Raw Normal View History

[package]
name = "influxdb_iox"
default-run = "influxdb_iox"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
[dependencies]
# Workspace dependencies, in alphabetical order
arrow-flight = { workspace = true }
feat(authz): authorization service client and write integration (#7216) * feat(authz): add authorization client. Add a new authz crate to provide the interface for making authorization checks from within IOx. This includes the default client that uses the influxdata.iox.authz.v1 gRPC protocol. This feature is not used by any IOx component yet. * feat: optional authorization on write path Support optionally enabling authorization checks on the /api/v2/write handler. If an authrorizer is configured then the handler will attempt to retrieve a token from the request's Authorization header. If no such token exists then a response with a 401 error code is returned. If the token is not valid, or does not have write permission for the requested namespace then a response with a 403 error is returned. * chore: add unit test for authz in write handler Add unit tests that test the correct functioning of the /api/v2/write handler when an Authorizer is configured. * chore(authz): use lazy connection Change the initialization of the authz client to use a lazy connection. This allows the client to be initialised synchronously. * chore: Run cargo hakari tasks * fix(authz): protolint complaints * fix: authz tests * fix: benches and lint * chore: Update clap_blocks/src/authz.rs Co-authored-by: Marko Mikulicic <mkm@influxdata.com> * chore: Update authz/src/lib.rs Co-authored-by: Marko Mikulicic <mkm@influxdata.com> * chore: Update clap_blocks/src/authz.rs Co-authored-by: Marko Mikulicic <mkm@influxdata.com> * chore: review suggestions * chore: review suggestions Apply a number of suggestions from review comments. The main behavioural change is that if the authz service is configured applictions will perform a probe request to ensure it can communicate before continuing startup. * chore: Update router/src/server/http.rs Co-authored-by: Dom <dom@itsallbroken.com> --------- Co-authored-by: CircleCI[bot] <circleci@influxdata.com> Co-authored-by: Marko Mikulicic <mkm@influxdata.com> Co-authored-by: Dom <dom@itsallbroken.com>
2023-03-17 15:20:14 +00:00
authz = {path = "../authz" }
clap_blocks = { path = "../clap_blocks" }
compactor = { path = "../compactor" }
compactor2 = { path = "../compactor2" }
2022-05-05 19:29:24 +00:00
data_types = { path = "../data_types" }
datafusion = { workspace = true }
generated_types = { path = "../generated_types" }
import = { path = "../import" }
influxdb_iox_client = { path = "../influxdb_iox_client", features = ["flight", "format"] }
2022-02-02 16:23:00 +00:00
influxdb_storage_client = { path = "../influxdb_storage_client" }
influxrpc_parser = { path = "../influxrpc_parser"}
iox_catalog = { path = "../iox_catalog" }
ioxd_common = { path = "../ioxd_common"}
ioxd_compactor = { path = "../ioxd_compactor"}
ioxd_compactor2 = { path = "../ioxd_compactor2"}
ioxd_ingest_replica = { path = "../ioxd_ingest_replica" }
ioxd_ingester = { path = "../ioxd_ingester"}
2022-11-30 21:28:23 +00:00
ioxd_ingester2 = { path = "../ioxd_ingester2"}
ioxd_garbage_collector = { path = "../ioxd_garbage_collector" }
ioxd_querier = { path = "../ioxd_querier"}
ioxd_router = { path = "../ioxd_router"}
ioxd_test = { path = "../ioxd_test"}
metric = { path = "../metric" }
object_store = "0.5.5"
object_store_metrics = { path = "../object_store_metrics" }
observability_deps = { path = "../observability_deps" }
panic_logging = { path = "../panic_logging" }
parquet_file = { path = "../parquet_file" }
parquet_to_line_protocol = { path = "../parquet_to_line_protocol" }
prost = { version = "0.11" }
iox_query = { path = "../iox_query" }
schema = { path = "../schema" }
2022-06-09 20:49:22 +00:00
sharder = { path = "../sharder" }
iox_time = { path = "../iox_time" }
trace_exporters = { path = "../trace_exporters" }
2022-01-17 11:12:46 +00:00
trogging = { path = "../trogging", default-features = false, features = ["clap"] }
# Crates.io dependencies, in alphabetical order
nu-ansi-term = "0.47.0"
arrow = { workspace = true, features = ["prettyprint"] }
backtrace = "0.3"
bytes = "1.4"
clap = { version = "4", features = ["derive", "env"] }
comfy-table = { version = "6.1", default-features = false }
console-subscriber = { version = "0.1.8", optional = true, features = ["parking_lot"] }
dirs = "4.0.0"
dotenvy = "0.15.6"
futures = "0.3"
futures-util = { version = "0.3" }
flate2 = "1.0"
hashbrown = { workspace = true }
http = "0.2.9"
humantime = "2.1.0"
itertools = "0.10.5"
libc = { version = "0.2" }
num_cpus = "1.15.0"
once_cell = { version = "1.17", features = ["parking_lot"] }
rustyline = { version = "11.0", default-features = false, features = ["with-file-history"]}
serde_json = "1.0.94"
2022-01-11 19:22:36 +00:00
snafu = "0.7"
tempfile = "3.4.0"
thiserror = "1.0.39"
tikv-jemalloc-ctl = { version = "0.5.0", optional = true }
tokio = { version = "1.26", features = ["macros", "net", "parking_lot", "rt-multi-thread", "signal", "sync", "time", "io-std"] }
tokio-stream = { version = "0.1", features = ["net"] }
tokio-util = { version = "0.7.7", features = ["compat"] }
tonic = "0.8"
uuid = { version = "1", features = ["v4"] }
# jemalloc-sys with unprefixed_malloc_on_supported_platforms feature and heappy are mutually exclusive
tikv-jemalloc-sys = { version = "0.5.3", optional = true, features = ["unprefixed_malloc_on_supported_platforms"] }
2023-02-24 18:02:23 +00:00
workspace-hack = { version = "0.1", path = "../workspace-hack" }
[dev-dependencies]
# In alphabetical order
arrow_util = { path = "../arrow_util" }
assert_cmd = "2.0.10"
async-trait = "0.1"
predicate = { path = "../predicate" }
predicates = "3.0.1"
serde = "1.0.156"
test_helpers = { path = "../test_helpers", features = ["future_timeout"] }
test_helpers_end_to_end = { path = "../test_helpers_end_to_end" }
insta = { version = "1", features = ["yaml"] }
[features]
default = ["jemalloc_replacing_malloc"]
azure = ["clap_blocks/azure", "import/azure"] # Optional Azure Object store support
gcp = ["clap_blocks/gcp", "import/gcp"] # Optional GCP object store support
aws = ["clap_blocks/aws", "import/aws"] # Optional AWS / S3 object store support
2022-04-08 17:46:01 +00:00
pprof = ["ioxd_common/pprof"] # Optional http://localhost:8080/debug/pprof/profile support
heappy = ["ioxd_common/heappy"] # Optional http://localhost:8080/debug/pproc/alloc support
# Enable tokio_console support (https://github.com/tokio-rs/console)
#
# Requires enabling trace level tracing events for [tokio,runtime].
tokio_console = ["console-subscriber", "tokio/tracing", "observability_deps/release_max_level_trace"]
# heappy is an optional feature; Not on by default as it
# runtime overhead on all allocations (calls to malloc).
# Cargo cannot currently implement mutually exclusive features so let's force every build
# to pick either heappy or jemalloc_replacing_malloc feature at least until we figure out something better.
jemalloc_replacing_malloc = ["tikv-jemalloc-sys", "tikv-jemalloc-ctl"]
# Implicit feature selected when running under `clippy --all-features` to accept mutable exclusive features during
# linting
clippy = []