baea6eaa41
Lands the user-resolver half of M3 stream A. Pure-Rust foundation — the tiberius-backed SQL impl is logged as F14 and stays gated behind the existing galaxy-resolver Cargo feature. New - role_blob.rs (~270 LoC, 12 tests including a garbage-between-roles edge case) — port of ParseRoleBlob (cs:87-133). Sliding-window scan over hex-decoded UTF-16LE bytes; rejects non-printable code units; case-insensitive dedup. Pure function, no I/O. - user.rs (~290 LoC, 8 tests including 4 tokio-driven InMemoryUserResolver cases) — GalaxyUserProfile (port of cs:5-11) + from_columns helper bridging into role_blob + UserResolver async trait + UserResolverError with NotFound / Backend variants. - sql.rs additions: USER_SELECT_SQL + USER_BY_GUID_SQL + USER_BY_NAME_SQL constants (port of cs:135-148). Inline concatcp! macro composes the base SELECT with each WHERE clause at compile time without pulling const_format. Cargo.toml: added uuid (Galaxy user_guid is a uniqueidentifier). design/followups.md: added F14 (P2) for the tiberius-backed SQL impl behind the galaxy-resolver feature. Test count delta: 427 -> 446 (+19; mxaccess-galaxy 30 -> 49). All four DoD gates green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
30 lines
871 B
TOML
30 lines
871 B
TOML
[package]
|
|
name = "mxaccess-galaxy"
|
|
description = "Galaxy Repository SQL resolver: tag → metadata, user → identity. Resolves tag_name-form input only (see design/30-crate-topology.md)."
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
rust-version.workspace = true
|
|
authors.workspace = true
|
|
|
|
[dependencies]
|
|
mxaccess-codec = { path = "../mxaccess-codec" }
|
|
async-trait = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
uuid = "1"
|
|
|
|
[dev-dependencies]
|
|
tokio = { workspace = true }
|
|
|
|
[features]
|
|
default = []
|
|
# `galaxy-resolver` (off by default in M0) pulls `tiberius`. Consumers using a
|
|
# custom `Resolver` impl leave it off and avoid pulling TDS / native-tls /
|
|
# winauth. Per design/30-crate-topology.md `mxaccess-galaxy` section.
|
|
galaxy-resolver = []
|
|
auth-windows = []
|
|
|
|
[lints]
|
|
workspace = true
|