Skip to content

Conversation

@mikemcdougall
Copy link
Collaborator

Add comprehensive OData v4 advanced features:

  • $batch endpoint for executing multiple operations in a single request with support for atomicity groups (transactions)
  • $apply aggregation operations (aggregate, groupby, filter, compute) supporting sum, avg, min, max, count, countdistinct functions
  • $search full-text search across feature attributes
  • $expand for querying related entities through relationships

All implementations are AOT-compatible with source-generated JSON serialization. Integration tests added for all new features.

Closes #110

Summary

Closes #

Changes

Self-Review Checklist

Code Quality

  • Code follows vertical slice architecture
  • No more than 5 dependencies per endpoint class
  • No legacy code copy-pasted (reference only)
  • No // TODO comments without linked issue

Testing (TDD)

  • Tests written before implementation
  • Integration tests use Testcontainers + PostGIS
  • Edge cases covered
  • Coverage meets phase checkpoint

Build

  • dotnet build passes with warnings-as-errors
  • dotnet format --verify-no-changes passes
  • AOT build succeeds (if applicable)

Documentation

  • CLAUDE.md updated if new patterns established
  • Legacy reference documented in code comments
  • API changes documented

Artifact Cleanup (REQUIRED)

  • No temporary/scratch files (.tmp, scratch., temp.*)
  • No orphaned markdown files (unused docs, old notes)
  • No commented-out code blocks
  • No // TODO without linked issue number
  • No debug logging left enabled
  • No hardcoded test values in production code
  • docs/pdca/ files archived or deleted if cycle complete
  • docs/temp/ cleared

Before Merge

  • All CI checks passing
  • Reviewed own code (diff tab)
  • Commit messages follow conventional format
  • Branch is up to date with trunk
  • Ran artifact cleanup checklist above

Test Plan

Legacy Reference

Add comprehensive OData v4 advanced features:

- $batch endpoint for executing multiple operations in a single request
  with support for atomicity groups (transactions)
- $apply aggregation operations (aggregate, groupby, filter, compute)
  supporting sum, avg, min, max, count, countdistinct functions
- $search full-text search across feature attributes
- $expand for querying related entities through relationships

All implementations are AOT-compatible with source-generated JSON
serialization. Integration tests added for all new features.

Closes #110
@github-actions
Copy link

github-actions bot commented Dec 25, 2025

🤖 PR Template Validation

❌ Issues (must fix)

Changes Made incomplete - Please list key changes with bullet points

Pre-PR validation not confirmed - Please run scripts/pre-pr-check.sh and check the box

PR title format - Should be "type: description (#issue)" (e.g., "feat: add login endpoint (#123)")

⚠️ Warnings (recommended fixes)

⚠️ No testing boxes checked - Please indicate testing completed

⚠️ Missing Breaking Changes section - Template may be outdated

📚 Helpful Links

💡 Tip: Edit your PR description to address these issues and this check will re-run automatically.


Automated validation powered by GitHub Actions

mikemcdougall and others added 5 commits December 27, 2025 17:11
- Add missing partial modifier to ODataBatchHandler class
- Fix EditOperationResult API usage:
  - Change Success to IsSuccess property
  - Change Error to ErrorMessage property
- Maintains AOT compatibility and build success
Resolves IDE0005 warning that was causing CI build failures.
The Collection attribute is available through other imports.
- Combine 5 separate jobs into 1 comprehensive security job
- Eliminate duplicate image builds (4 builds → 1 build)
- Remove redundant vulnerability scanning (Trivy + Grype → Trivy only)
- Remove low-value CIS Docker Benchmark checks
- Change to nightly-only execution (remove PR/push triggers)
- Maintain all essential security coverage: Hadolint, Trivy, structure tests, runtime security
- Merge separate 'Unit + Integration' and 'Architecture' test jobs
- Remove duplicate setup and dependency management
- All tests now run in one streamlined job
- Reduces CI complexity and parallel resource usage
- Maintains same test coverage and timeout settings
@mikemcdougall mikemcdougall merged commit a2f01ed into trunk Dec 28, 2025
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Implement OData v4 batch operations and advanced features

3 participants