load("@prelude-si//:macros.bzl", "rust_library", "rust_test")
rust_library(
name = "sdf-server",
deps = [
"//lib/audit-database:audit-database",
"//lib/auth-api-client:auth-api-client",
"//lib/buck2-resources:buck2-resources",
"//lib/dal:dal",
"//lib/dal-materialized-views:dal-materialized-views",
"//lib/si-db:si-db",
"//lib/edda-client:edda-client",
"//lib/edda-core:edda-core",
"//lib/innit-client:innit-client",
"//lib/frigg:frigg",
"//lib/module-index-client:module-index-client",
"//lib/nats-multiplexer-client:nats-multiplexer-client",
"//lib/nats-multiplexer:nats-multiplexer",
"//lib/nats-subscriber:nats-subscriber",
"//lib/permissions:permissions",
"//lib/rebaser-client:rebaser-client",
"//lib/sdf-core:sdf-core",
"//lib/sdf-extract:sdf-extract",
"//lib/sdf-v1-routes-attribute:sdf-v1-routes-attribute",
"//lib/sdf-v1-routes-session:sdf-v1-routes-session",
"//lib/sdf-v1-routes-module:sdf-v1-routes-module",
"//lib/sdf-v1-routes-variant:sdf-v1-routes-variant",
"//lib/sdf-v1-routes-ws:sdf-v1-routes-ws",
"//lib/si-data-nats:si-data-nats",
"//lib/si-crypto:si-crypto",
"//lib/si-data-nats:si-data-nats",
"//lib/si-data-pg:si-data-pg",
"//lib/si-data-spicedb:si-data-spicedb",
"//lib/si-events-rs:si-events",
"//lib/si-frontend-mv-types-rs:si-frontend-mv-types",
"//lib/si-frontend-types-rs:si-frontend-types",
"//lib/si-id:si-id",
"//lib/si-jwt-public-key:si-jwt-public-key",
"//lib/si-layer-cache:si-layer-cache",
"//lib/si-pkg:si-pkg",
"//lib/si-posthog-rs:si-posthog",
"//lib/si-settings:si-settings",
"//lib/si-std:si-std",
"//lib/si-tls:si-tls",
"//lib/telemetry-http-rs:telemetry-http",
"//lib/telemetry-rs:telemetry",
"//lib/veritech-client:veritech-client",
"//third-party/rust:async-trait",
"//third-party/rust:axum",
"//third-party/rust:base64",
"//third-party/rust:chrono",
"//third-party/rust:clap",
"//third-party/rust:convert_case",
"//third-party/rust:derive_builder",
"//third-party/rust:derive_more",
"//third-party/rust:futures",
"//third-party/rust:futures-lite",
"//third-party/rust:hyper",
"//third-party/rust:itertools",
"//third-party/rust:jsonptr",
"//third-party/rust:names",
"//third-party/rust:nix",
"//third-party/rust:once_cell",
"//third-party/rust:pathdiff",
"//third-party/rust:rand",
"//third-party/rust:remain",
"//third-party/rust:reqwest",
"//third-party/rust:regex",
"//third-party/rust:serde",
"//third-party/rust:serde_json",
"//third-party/rust:serde_with",
"//third-party/rust:sodiumoxide",
"//third-party/rust:strum",
"//third-party/rust:thiserror",
"//third-party/rust:tokio",
"//third-party/rust:tokio-stream",
"//third-party/rust:tokio-tungstenite",
"//third-party/rust:tokio-util",
"//third-party/rust:tower",
"//third-party/rust:tower-http",
"//third-party/rust:tracing",
"//third-party/rust:tracing-tunnel",
"//third-party/rust:ulid",
"//third-party/rust:url",
"//third-party/rust:y-sync",
],
srcs = glob(["src/**/*.rs"]) + ["//app/web:editor_typescript.txt"],
features = ["buck2_build"],
env = {
"CARGO_MANIFEST_DIR": ".",
},
extra_test_targets = [":test-integration"],
)
rust_test(
name = "test-integration",
deps = [
"//lib/dal-test:dal-test",
"//lib/dal:dal",
"//lib/nats-multiplexer-client:nats-multiplexer-client",
"//lib/nats-multiplexer:nats-multiplexer",
"//lib/permissions:permissions",
"//lib/sdf-core:sdf-core",
"//lib/sdf-test:sdf-test",
"//lib/sdf-v1-routes-ws:sdf-v1-routes-ws",
"//lib/si-data-nats:si-data-nats",
"//lib/si-data-spicedb:si-data-spicedb",
"//lib/si-db:si-db",
"//lib/si-events-rs:si-events",
"//lib/si-frontend-types-rs:si-frontend-types",
"//lib/si-id:si-id",
"//lib/si-posthog-rs:si-posthog",
"//lib/si-std:si-std",
"//lib/telemetry-rs:telemetry",
"//third-party/rust:axum",
"//third-party/rust:futures",
"//third-party/rust:futures-lite",
"//third-party/rust:hyper",
"//third-party/rust:indoc",
"//third-party/rust:names",
"//third-party/rust:pretty_assertions_sorted",
"//third-party/rust:serde",
"//third-party/rust:serde_json",
"//third-party/rust:tracing",
"//third-party/rust:tokio",
"//third-party/rust:tokio-tungstenite",
"//third-party/rust:tokio-util",
"//third-party/rust:tower",
"//third-party/rust:y-sync",
"//third-party/rust:yrs",
":sdf-server",
],
crate_root = "tests/api.rs",
srcs = glob([
"tests/**/*.rs",
]),
env = {
"CARGO_PKG_NAME": "api",
"RUSTC_BOOTSTRAP": "1",
"CI": "buildkite",
},
resources = {
"cyclone": "//bin/cyclone:cyclone",
"dev.decryption.key": "//lib/veritech-server:dev.decryption.key",
"dev.encryption.key": "//lib/veritech-server:dev.encryption.key",
"dev.jwt_signing_private_key.pem": "//config/keys:dev.jwt_signing_private_key.pem",
"dev.jwt_signing_public_key.pem": "//config/keys:dev.jwt_signing_public_key.pem",
"dev.postgres.root.crt": "//config/keys:dev.postgres.root.crt",
"dev.donkey.key": "//lib/dal:dev.donkey.key",
"lang-js": "//bin/lang-js:lang-js",
"pkgs_path": "//pkgs:pkgs",
"prod.jwt_signing_public_key.pem": "//config/keys:prod.jwt_signing_public_key.pem",
},
visibility = ["PUBLIC"],
)