What's Changed
✨ Features
API & Webservice
- FastAPI hello-world endpoint and coverage test (#38)
- Complete webservice namespace package with full CRUD endpoints (#68)
- API foundation (#105)
- JWT authentication for webservice (#139)
- Query data model views instead of rebuilding joins (#159)
- API implementation improvements (#170)
- Availability discovery endpoints with full test coverage (#197)
- Per-client API keys with per-key rate limiting (#248)
- Redirect root to
/docs(#241)
ETL & Data Pipelines
- Peter's ETL Pipeline merge (#26)
- Pixi ETL environment configuration (#37)
- Prefect implementation and directory reorganization (#53)
- USDA Census ETL (#106)
- SQL-first workflow with PgSchema, MatViews, and ETL (#108)
- USDA Survey ETL (#116)
- Feedstock analysis (#117)
- Billion Ton 2023 Agricultural ETL pipeline (#121)
- Comprehensive analytical suite ETL — ICP, XRF, Calorimetry, XRD (#123)
- USDA manual fixes (#124)
- USDA crop normalization and
api_nametransition groundwork (#155) - Aim 2 Fermentation ETL and analytical view refinement (#154)
- Expanded USDA commodity mappings and mapping system improvements (#173)
- Gasification ETL pipeline (#217)
- Data Portal schema with views (#220)
- Grant
biocirv_read_onlyaccess to Data Portal schema (#243)
Data Models & Database
- Migrate datamodels from LinkML to SQLModel with Alembic (#112)
- Add
resource_infoassets and GitHub Pages site (#114) - Cloud staging database (#75)
- Add
pg_trgm,unaccent, andbtree_ginPostgreSQL extensions (#129)
Infrastructure & Deployment
- GCP backend and cloud documentation (#78)
- Migrate infrastructure-as-code from OpenTofu to Pulumi Python (#110)
- GCP staging deployment via Pulumi + Cloud Run (#125)
- Seed admin user via Pulumi and Cloud Run job (#175)
- Automate GCP staging deployment via GitHub Actions (#189)
- Pull Cloud Run images from GHCR instead of GCR (#192)
- Parameterize infrastructure for multi-environment deployment (#203)
- oauth2-proxy for Prefect UI auth — local (#221) and Cloud Run (#222)
- Rename auth-proxy to
prefect-authand skip login page (#223) - Trigger ETL pipeline automatically after staging deploy (#216)
- Bootstrap production environment alongside staging (#228)
- Trigger ETL workflow for production (#238)
- Wait for docker-build before deploying production (#240)
- Create
biocirv_bucketGCS bucket (#202) - PyPI releases for namespace packages (#151)
Tooling & Developer Experience
AGENTS.mdand Copilot environment setup (#31)- GitHub Codespaces devcontainer configuration (#51)
- Freeform general issue template (#130)
🏗️ CI / Build
- Add CI/CD actions (#25)
- Lint codebase to pass pre-commit (#33)
- Bump pixi version from v0.59.0 to v0.63.2 (#150)
- Alembic migrations validation workflow (#164)
- Update workflow paths for Docker build triggers (#195)
- Path filters for CD workflow on namespace packages (#200)
- Remove pixi lock file (#185)
- Fix Docker builds broken by pixi lock file removal (#187)
- Clean old artifacts (#111)
- Update frontend submodule to latest
main(#183) - Add GitHub frontend submodule (#49)
📚 Documentation
- Create LICENSE (#10)
- Community health files (#24)
- Consolidate documentation and configure MkDocs for Read the Docs (#67)
- Local setup guide and MkDocs config updates (#85)
- Update documentation and rendering (#142)
- Streamline namespace package READMEs for PyPI (#184)
- Package
CONTRIBUTINGguides and repo URL updates (#188) - Overhaul README for Zenodo publication (#237)
- Update contributing links and add alembic to docker-build triggers (#245)
- Update copyright year in LICENSE (#250)
- Add
SECURITY.md,CHANGELOG.md, and adopt CalVer (#253) - Add
CITATION.cff(#251) - Revise README with new badges and acknowledgments (#252)
- Berkeley upstream integration (#84)
New Contributors
- @nikiburggraf made their first contribution in #10
- @petercarbsmith made their first contribution in #26
- @Vraj1234 made their first contribution in #37
- @mglbleta made their first contribution in #124
- @tylerhuntington made their first contribution in #249
- @avi9664 made their first contribution
Full Changelog: https://github.com/sustainability-software-lab/ca-biositing/commits/v2026.4.6