Mondo Diaz
1f923ae71d
Fix auth tests to not invalidate integration_client session
...
Password change tests were using the admin account, which invalidated
all admin sessions including the shared integration_client. Now all
password change tests create and use dedicated test users, keeping
the admin session intact for other tests.
Tests updated:
- test_change_password_success
- test_change_password_wrong_current
- test_password_too_short_on_change
2026-01-16 21:28:30 +00:00
Mondo Diaz
28b434b944
Add function-scoped auth_client fixture for auth tests
...
- Add auth_client fixture (function-scoped) for authentication tests
- Update all tests in test_auth_api.py to use auth_client
- Prevents auth tests from polluting the shared integration_client session
- Each auth test gets a fresh client, avoiding state leakage
2026-01-16 21:14:40 +00:00
Mondo Diaz
29e8638d7b
Add configurable rate limiting for dev/stage environments
...
- Add ORCHARD_LOGIN_RATE_LIMIT env var to Helm deployment template
- Set relaxed rate limit (1000/minute) for dev/stage deployments
- Production keeps strict default (5/minute) for security
- Re-enable auth tests in CI (no longer excluded by marker)
- Update test docstrings to reflect rate limit configuration
2026-01-16 21:13:18 +00:00
Mondo Diaz
dcd043e9ba
Fix CI integration test rate limiting
...
- Add auth_intensive marker for tests that make many login requests
- Mark all tests in test_auth_api.py with auth_intensive
- Exclude auth_intensive tests from CI integration runs against deployed
environments (they trigger 429 rate limiting)
- Remove duplicate TestSecurityEdgeCases class definition
- Register auth_intensive, integration, large, slow markers in conftest.py
2026-01-16 21:08:47 +00:00
Mondo Diaz
a93c93faa4
Fix integration tests authentication for CI environments
...
- Make integration_client fixture session-scoped (single login per test run)
- Add configurable credentials via ORCHARD_TEST_USERNAME/PASSWORD env vars
- Fail fast with clear error message if authentication fails
- Add cookie verification after login
- Remove silent failure mode that hid auth issues
2026-01-16 21:04:31 +00:00
Mondo Diaz
194d624ba9
Improve CI pipeline consistency and efficiency
...
- Rename integration_test_prod to smoke_test_prod for clarity
- Share pip cache between unit and integration tests
- Add interruptible: true to test jobs (cancel on new pipeline)
- Add retry: 1 to integration tests (handle network flakiness)
- Simplify verify_deployment to health check only (integration tests do full checks)
- Make cleanup_feature standalone (doesn't need deploy dependencies)
- Extract environment URLs (STAGE_URL, PROD_URL) to global variables
- Add timeout: 5m to cleanup_feature
- Remove -x flag from integration tests (show all failures)
2026-01-16 20:56:31 +00:00
Mondo Diaz
257756dfcc
Rename python_tests to python_unit_tests for clarity
2026-01-16 20:51:31 +00:00
Mondo Diaz
5972b91974
Run full integration test suite in CI against deployed environment
...
- Replace 3 smoke tests with full pytest integration suite (~350 tests)
- Tests run against deployed Kubernetes environment (feature/stage)
- Skip @large and @slow tests in CI for reasonable run times
- Production deployments use lightweight smoke tests only (no test data)
- Add JUnit report artifacts for test results in GitLab
2026-01-16 20:45:09 +00:00
Mondo Diaz
7e374f5269
Add gitleaks fingerprints for additional historical commits
2026-01-16 20:27:56 +00:00
Mondo Diaz
77fee2e272
Fix Python SyntaxWarning in database migration regex
...
Use raw string (r"") for SQL containing regex pattern to avoid
Python SyntaxWarning about invalid escape sequence '\.'
2026-01-16 20:15:14 +00:00
Mondo Diaz
4f7433d63b
Add gitleaks false positive fingerprints for s3_key assertions
2026-01-16 20:02:22 +00:00
Mondo Diaz
722e7d2d81
Add large file upload enhancements and tests ( #43 )
...
- Add upload duration/throughput metrics (duration_ms, throughput_mbps) to response
- Add upload progress logging for large files (hash computation and multipart upload)
- Add client disconnect handling during uploads with proper cleanup
- Add upload progress tracking endpoint GET /upload/{upload_id}/progress
- Add large file upload tests (10MB, 100MB, 1GB)
- Add upload cancellation and timeout handling tests
- Add API documentation for upload endpoints with curl, Python, JavaScript examples
2026-01-16 19:33:31 +00:00
Mondo Diaz
a166b6d37f
Add streaming download enhancements and tests ( #42 )
...
- Add conditional request support (If-None-Match, If-Modified-Since) returning 304 Not Modified
- Add caching headers: Cache-Control (immutable), Last-Modified
- Add 416 Range Not Satisfiable response for invalid range requests
- Add download completion logging with bytes transferred and throughput
- Add client disconnect handling during streaming downloads
- Add comprehensive streaming download tests
2026-01-16 18:55:34 +00:00
Mondo Diaz
5d2de6b7c0
Add issue numbers to CHANGELOG entries ( #38 , #40 )
2026-01-16 18:45:02 +00:00
Mondo Diaz
5cd92ad89a
Add integrity verification documentation
...
Document how content-addressable storage and integrity verification works:
- SHA256 hashing and content-addressable storage overview
- Client-side verification steps (before upload, after download)
- Server-side consistency check endpoint and scheduling
- Recovery procedures for corrupted, missing, or orphaned artifacts
- CI/CD integration examples
2026-01-16 18:39:31 +00:00
Mondo Diaz
bce27c43f3
Add comprehensive integrity verification tests
...
- Round-trip verification: upload → download → verify hash matches
- Client-side verification workflow: pre-upload hash computation, checksum header validation
- Size variant tests: integrity verification for 1KB, 100KB, 1MB, 10MB files
- Consistency check endpoint: response format, after upload, limit parameter
- Digest header tests: RFC 3230 format validation, base64 encoding
- Verification modes: pre-verification and streaming verification
- Corruption detection tests:
- Single bit flip detection
- Truncated content detection
- Appended content detection
- Client-side hash mismatch detection
- Consistency check detects size mismatches
- Consistency check detects missing S3 objects
2026-01-16 18:13:03 +00:00
Mondo Diaz
2bb619975e
Add version API tests for new package_versions feature
...
- Add tests for version creation via upload with explicit version parameter
- Add tests for version auto-detection from filename/metadata
- Add tests for version listing and retrieval
- Add tests for download by version: prefix
- Add tests for version deletion
- Test version resolution priority (version: vs tag: prefixes)
2026-01-16 17:46:38 +00:00
Mondo Diaz
e7ae94b1e1
Merge main into feature/upload-download-tests
2026-01-16 17:39:35 +00:00
Mondo Diaz
4deadc708f
Add comprehensive upload/download API tests and error handling tests
...
- Add upload API tests: upload without tag, artifact creation, S3 storage
- Add download tests: tag: prefix, Content-Type/Length/Disposition headers
- Add download tests: 404 for nonexistent project/package/artifact
- Add checksum header tests: ETag, X-Checksum-SHA256
- Add error handling tests: timeout behavior, checksum validation
- Add resource cleanup tests: verify no orphans on failed uploads
- Add graceful error response tests: JSON format, detail messages
2026-01-16 17:37:09 +00:00
Mondo Diaz
f7ffc1c877
Merge branch 'feature/separate-version-tag' into 'main'
...
Add separate version tracking for artifacts
Closes orchard-python-poetry#56
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!33
2026-01-16 11:36:08 -06:00
Mondo Diaz
b93d5a9c68
Add separate version tracking for artifacts
2026-01-16 11:36:08 -06:00
Mondo Diaz
9106e79aac
Add upload/download tests for size boundaries and concurrency
...
- Add size boundary tests: 1B, 1KB, 10KB, 100KB, 1MB, 5MB, 10MB, 50MB
- Add large file tests (100MB-1GB) marked with @pytest.mark.large
- Add chunk boundary tests at 64KB boundaries
- Add concurrent upload/download tests (2, 5, 10 parallel)
- Add data integrity tests (binary, text, unicode, compressed)
- Add generate_content() and sized_content fixture for test helpers
- Add @pytest.mark.large and @pytest.mark.concurrent markers
- Fix Content-Disposition header encoding for non-ASCII filenames (RFC 5987)
2026-01-16 17:22:16 +00:00
Mondo Diaz
a98ac154d5
Merge branch 'fix/deploy-job-dependencies' into 'main'
...
Fix deploy job dependencies and add production deployment (#63 )
Closes #63
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!32
2026-01-15 15:16:07 -06:00
Mondo Diaz
823dfcb400
Fix deploy job dependencies and add production deployment ( #63 )
2026-01-15 15:16:07 -06:00
Mondo Diaz
0ad106a141
Merge branch 'feature/projects-table-view' into 'main'
...
Replace project cards with sortable data table on Home page
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!31
2026-01-15 14:17:57 -06:00
Mondo Diaz
5d5a054452
Replace project cards with sortable data table on Home page
2026-01-15 14:17:56 -06:00
Mondo Diaz
f3a817f8a5
Merge branch 'fix/dark-mode-lighter-theme' into 'main'
...
Adjust dark mode to lighter tones for better readability
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!30
2026-01-15 09:44:07 -06:00
Mondo Diaz
f212864647
Adjust dark mode to lighter tones for better readability
2026-01-15 09:44:07 -06:00
Mondo Diaz
e8f26e9976
Merge branch 'fix/cleanup-and-pod-naming' into 'main'
...
Cleanup: improve pod naming, remove dead code, update docs
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!29
2026-01-14 14:47:11 -06:00
Mondo Diaz
32162c4ec7
Cleanup: improve pod naming, remove dead code, update docs
2026-01-14 14:47:11 -06:00
Mondo Diaz
1bb0c4e911
Merge branch 'fix/cleanup-job-git-strategy' into 'main'
...
Add GIT_STRATEGY: none to cleanup_feature job
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!28
2026-01-14 12:55:38 -06:00
Mondo Diaz
179503c68b
Add GIT_STRATEGY: none to cleanup_feature job
2026-01-14 12:55:38 -06:00
Mondo Diaz
2f3c44b58e
Merge branch 'deploy_to_stage' into 'main'
...
Add feature branch deployment pipeline
Closes #51
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!27
2026-01-14 12:29:37 -06:00
Mondo Diaz
4b3d2fd41d
Add feature branch deployment pipeline
2026-01-14 12:29:37 -06:00
Mondo Diaz
7cfad28f67
Merge branch 'agent-config' into 'main'
...
Agent config
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!26
2026-01-13 15:09:02 -06:00
Mondo Diaz
37666e41a7
Agent config
2026-01-13 15:09:02 -06:00
Dane Moss
0cc4f25362
Merge branch 'update_changelog' into 'main'
...
add changelog entry
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!25
2026-01-12 10:11:50 -07:00
Dane Moss
5c9da9003b
add changelog entry
2026-01-12 10:11:50 -07:00
Dane Moss
90bb2a3a39
Merge branch 'feature/auth-system' into 'main'
...
Implement authentication system with access control UI
Closes #50 and #18
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!24
2026-01-12 09:52:35 -07:00
Mondo Diaz
617bcbe89c
Implement authentication system with access control UI
2026-01-12 09:52:35 -07:00
Mondo Diaz
1cbd335443
Merge branch 'feature/drag-drop-upload' into 'main'
...
Add drag-and-drop upload component with chunked uploads and offline support
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!23
2026-01-08 11:59:33 -06:00
Mondo Diaz
10d3694794
Add drag-and-drop upload component with chunked uploads and offline support
2026-01-08 11:59:32 -06:00
Mondo Diaz
bccbc71c13
Merge branch 'feature/download-verification' into 'main'
...
Add download verification with SHA256 checksum support (#26 , #27 , #28 , #29 )
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!22
2026-01-07 13:36:46 -06:00
Mondo Diaz
35fda65d38
Add download verification with SHA256 checksum support ( #26 , #27 , #28 , #29 )
2026-01-07 13:36:46 -06:00
Mondo Diaz
08dce6cbb8
Merge branch 'feature/audit-history-api' into 'main'
...
Metadata database tracks all uploads with project, package, tag, and timestamp queryable via API
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!21
2026-01-07 12:31:46 -06:00
Mondo Diaz
2f1891cf01
Metadata database tracks all uploads with project, package, tag, and timestamp queryable via API
2026-01-07 12:31:44 -06:00
Mondo Diaz
81458b3bcb
Merge branch 'feature/ref-count-management' into 'main'
...
Add ref_count management for deletions with atomic operations and error handling
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!20
2026-01-06 13:44:23 -06:00
Mondo Diaz
7e68baed08
Add ref_count management for deletions with atomic operations and error handling
2026-01-06 13:44:23 -06:00
Mondo Diaz
66622caf5d
Add AGENTS.md to gitignore for OpenCode compatibility
2026-01-05 09:24:33 -06:00
Mondo Diaz
96d79e4127
Merge branch 'fix/helm-minio-ingress-rename' into 'main'
...
Fix Helm chart: rename minio.ingress to minioIngress to avoid subchart conflict
See merge request esv/bsf/bsf-integration/orchard/orchard-mvp!19
2025-12-16 12:51:42 -06:00