mirror of
https://github.com/block/buzz.git
synced 2026-10-27 12:40:30 +00:00
Development-signed iOS apps cannot enroll with the current gateway because their Apple App Attest AAGUID is rejected. Add an explicit personal development build feature and environment setting so a development gateway can use a developer's own application identity and sandbox APNs credentials. Ordinary gateway builds remain production-only. Special builds also default to production, enforce exactly the selected signed AAGUID, and retain certificate-chain, pinned-root, nonce, app-ID, key, credential-ID, and counter verification. Document the matching mobile signing configuration and expose the feature through an optional Docker build argument. ### Validation The development image deployed successfully to a personal Railway stack; private readiness, enrollment challenges, authenticated relay access, and APNs sandbox TLS/HTTP2 connectivity passed. Signed-off-by: Tom Brow <tomb@block.xyz>
54 lines
1.4 KiB
TOML
54 lines
1.4 KiB
TOML
[package]
|
|
name = "buzz-push-gateway"
|
|
description = "Blind, capability-gated NIP-PL gateway for the Buzz mobile app"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
|
|
[lib]
|
|
name = "buzz_push_gateway"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "buzz-push-gateway"
|
|
path = "src/main.rs"
|
|
|
|
[features]
|
|
# Personal device development only. Production builds remain production-only.
|
|
personal-dev-app-attest = ["appattest/testing"]
|
|
|
|
[dependencies]
|
|
aes-gcm = "0.10"
|
|
appattest = { version = "0.1.1", default-features = false }
|
|
axum = { workspace = true }
|
|
async-trait = "0.1"
|
|
base64 = "0.22"
|
|
byteorder = "1.5"
|
|
minicbor = "0.25"
|
|
chrono = { workspace = true }
|
|
hex = { workspace = true }
|
|
getrandom = "0.4"
|
|
metrics = { workspace = true }
|
|
metrics-exporter-prometheus = { workspace = true }
|
|
nostr = { workspace = true }
|
|
rand = { workspace = true }
|
|
reqwest = { workspace = true, features = ["http2"] }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
sqlx = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
tokio = { workspace = true }
|
|
tower = { workspace = true }
|
|
tower-http = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
url = { workspace = true }
|
|
uuid = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
proptest = { workspace = true }
|
|
reqwest = { workspace = true }
|