Contributing¶
Xila Guard is open source under Apache-2.0 across all repositories. Contributions are welcome — bug reports, documentation, new discovery adapters, orchestrator profiles, and hardening of the opt-in features are all valuable.
License and conduct¶
- License: Apache-2.0. Include the license text and accurate third-party
notices (
LICENSE/NOTICEin each repo). Contributions are accepted under the same license. - Code of conduct: each repository ships a
CODE_OF_CONDUCT.md; be respectful and collaborative. - Security reporting: see each repository's
SECURITY.mdfor the private reporting process (GitHub private advisories). Please do not file publicly exploitable issues in the open tracker.
Repository map¶
| Repo | Language | You'd touch it to… |
|---|---|---|
xila-guard-core |
Rust | Change policy semantics, the contract / schemas, providers, CLI, or the API / inventory receiver |
xila-guard-k8s |
Go | Change CRDs, the observer, enforcement, orchestrator profiles, or the Helm chart |
xila-guard-lab |
bash / make | Add demos, fixtures, the benchmark, or supply-chain scans |
The single-evaluator rule¶
Policy semantics live once, in xila-guard-core (Rust). The Go layer and the
lab never reimplement policy logic — they build a normalized request and call
core. Adding or changing a predicate therefore means:
- update the Rust types + reason code + evaluator;
- regenerate the JSON Schemas and conformance fixtures;
- extend the Go structs;
- re-run both test suites.
The canonical wire contract is the versioned JSON Schema in core; a drift- detecting test fails CI in either language if Rust and Go diverge. See ADR 0001.
Honesty rules (non-negotiable)¶
The project's credibility rests on never over-claiming. When you contribute:
- Clearly separate real from simulated. Never describe
mock/admin_inventoryevidence as attestation, or telemetry as isolation proof. - A simulated attestation result (
sim:verifier) must never be accepted by enforcement. - Unknown / unsupported / stale / untrusted evidence must never become
allow— fail closed. - Do not claim certifications, verified isolation, legally-compliant placement, or defense against a malicious host administrator.
- Verify each implemented capability against the exact upstream version and hardware configuration; record justified deviations in an ADR.
Local checks¶
# core (Rust)
cd xila-guard-core
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
# k8s (Go)
cd xila-guard-k8s
go build ./... && go vet ./... && go test ./...
helm lint charts/xila-guard
# everything, from the lab
cd xila-guard-lab && make check
make check runs core fmt / clippy / test, Go vet / test, helm lint, and the
offline scenario assertions. The offline path needs no Kubernetes and no GPU.
Where to start¶
- Read
PROJECT.mdinxila-guard-core— it is the implementation contract. - Browse the architecture decision records to understand why things are the way they are.
- Try
make demo-offline, thenmake demo-kind, to see the evaluator and the observer in action.