Skip to main content

sequel_mcp/
lib.rs

1//! sequel-mcp library: shared core for the MCP server, CLI and GUI.
2//!
3//! Every SQL-bearing surface funnels through the same policy gate and
4//! execution pipeline; there is exactly one implementation of connection,
5//! policy, approval and SQL behaviour in this crate.
6
7pub mod app;
8pub mod approval;
9pub mod audit;
10pub mod backup;
11pub mod config;
12pub mod gui;
13pub mod importer;
14pub mod mcp;
15pub mod policy;
16pub mod sql;
17pub mod vault;
18
19// RSA SSH keys are supported, not optional. russh with
20// `default-features = false` (we select the `ring` backend) silently
21// drops its `rsa` feature, and an RSA keypair then negotiates
22// correctly — even earns USERAUTH_PK_OK — but the follow-up signature
23// cannot be produced (ssh-key: `AlgorithmUnsupported { algorithm:
24// Rsa { hash: None } }`), which used to surface as a misleading
25// "authentication failed" (0.10.2 incident). The default `rsa` feature
26// forwards to russh; without it the build fails HERE, at compile time,
27// instead of at runtime against a customer's bastion.
28#[cfg(not(feature = "rsa"))]
29compile_error!(
30    "sequel-mcp requires the `rsa` feature (forwards to russh's `rsa`): without it, RSA SSH \
31     keys negotiate correctly but their signature cannot be produced, failing at runtime as a \
32     misleading 'authentication failed'. Build with default features, or add --features rsa."
33);
34
35pub const PACKAGE_NAME: &str = "sequel-mcp";
36pub const PACKAGE_VERSION: &str = "0.11.1";