Skip to content

Commit 091ad47

Browse files
Doug Hamakerclaude
andcommitted
Add LICENSE, versioned evidence schema, pluggable normalizer, property tests
- Apache-2.0 LICENSE file (enterprise blocker fixed) - Evidence pack JSON Schema (src/evidence_schema.json) with EVIDENCE_SCHEMA_VERSION constant embedded in every pack. Consumers MUST check schema_version before parsing. - `usageguard describe` CLI command dumps the schema specification - Normalizer trait (dyn Normalizer) replaces hardcoded alias map: - BuiltinNormalizer: default 90+ aliases (Stripe, Orb, LangChain, CSV) - Pipeline::with_normalizer(Box<dyn Normalizer>) for custom sources - No recompile needed to add new event formats - Property tests (proptest): seal/verify round-trip, tamper detection, wrong-key detection across random batches of 1-20 events - Custom normalizer integration test (end-to-end with Pipeline) - Evidence schema validation test 61 tests green. Zero warnings. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 22cac0d commit 091ad47

10 files changed

Lines changed: 844 additions & 33 deletions

File tree

Cargo.lock

Lines changed: 191 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name = "usageguard"
33
version = "0.1.0"
44
edition = "2021"
55
description = "Deterministic usage-event validation engine for billing pipelines"
6-
license = "MIT"
6+
license = "Apache-2.0"
77

88
[dependencies]
99
chrono = { version = "0.4", features = ["serde"] }
@@ -16,6 +16,9 @@ serde_json = "1"
1616
sha2 = "0.10"
1717
uuid = { version = "1", features = ["v4"] }
1818

19+
[dev-dependencies]
20+
proptest = "1"
21+
1922
[[bin]]
2023
name = "usageguard"
2124
path = "src/main.rs"

0 commit comments

Comments
 (0)