v0.7.1 — Shared-library consolidation & first tenancy isolation
Patch release. Shared-library consolidation, the first tenancy isolation, and new CI safety nets. Backward-compatible for existing single-team deployments.
Security
- Data read endpoints are team-scoped (#178). Shared feeds + per-team overlay: collector/feed records stay global (
team_idNULL, visible to all), team-owned records are private; reads return global OR own-team. Fixes a cross-tenant disclosure. Existing data (noteam_id) is treated as global → single-team behavior unchanged.
Changed
- Gateway auth consolidated onto the shared
open_security_shared.gateway_authdependency across tools/agents/data/responder (#173, #174) — ~520 LOC of per-service duplication removed;X-Gateway-Secretnow always forwarded/enforced.
Added
open-security-sharedis a real installable package (pyproject.toml), installed into every service image via a BuildKit additional context (#172).- Reusable tenancy helpers in
open_security_shared.tenancy(#177).
CI
- Build-only image validation on pull requests (#229).
- Data service runs in the integration harness (#233).
Documentation
- Canonical service layout documented in CONTRIBUTING (#176).
Remaining Sprint 2 (responder/cspm tenancy, role enforcement, guardian DRF, cross-tenant tests — #179/#180/#181/#182/#183) continues next.
Full changelog: v0.7.0...v0.7.1