Releases: pcalnon/juniper-data
Releases · pcalnon/juniper-data
v0.6.0
Highlights
Major release with dataset versioning, batch operations, security hardening, and infrastructure improvements.
Added
- Dataset Versioning (CAN-DEF-005 Phase 1): Logical dataset names with auto-incrementing version numbers. Atomic version allocation prevents duplicates under concurrency. New endpoints:
GET /v1/datasets/versions,GET /v1/datasets/latest. - Batch Operations (CAN-DEF-006):
POST /v1/datasets/batch-create,PATCH /v1/datasets/batch-tags,POST /v1/datasets/batch-exportfor operating on multiple datasets in single requests. - Docker Secrets: File-based secrets support via
get_secret()utility. - Systemd Integration: Service unit and management CLI for native Linux deployments.
- CSV Import Path Traversal Protection: New
JUNIPER_DATA_IMPORT_DIRsetting restricts CSV file imports to a configurable base directory.
Fixed
- Synchronized version across
__init__.py,pyproject.toml, andDockerfile - PostgreSQL metadata/artifact split-brain on save failure
- PostgreSQL temp artifact race conditions on concurrent saves
- Advisory lock namespace collision between dataset ID and version allocation
- Generic
n_classesfallback replacing spiral-specificparams.n_spirals - Removed inconsistent fallback that crashed for non-spiral generators with empty training sets
Changed
- Updated GitHub Actions (checkout v6, setup-python v6.2, upload-artifact v7, codecov v6)
- Sentry PII and traces sample rate now configurable (defaults: PII=False, sample_rate=0.1)
- AGENTS.md comprehensive audit and update
- Documentation link checker with cross-repo skip mode
Security
- CSV import generator now validates file paths against configurable import directory
- Sentry PII transmission disabled by default (was enabled)
Stats
- 849 tests passing
- 98%+ code coverage
- All pre-commit hooks passing
🤖 Generated with Claude Code