Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
385c974
fix(deploy): prevent App Engine request starvation under burst load
jirhiker Jul 6, 2026
fec7dbd
Merge pull request #754 from DataIntegrationGroup/fix/hotfix-gae-scaling
jirhiker Jul 6, 2026
4c08a5c
chore(hotfix/v1.1.1): release 1.1.1
github-actions[bot] Jul 6, 2026
6c35bf0
Merge pull request #755 from DataIntegrationGroup/release-please--bra…
jirhiker Jul 6, 2026
790377f
fix(deploy): align hotfix migration head with production DB + fix rel…
jirhiker Jul 6, 2026
4f681d7
Formatting changes
jirhiker Jul 6, 2026
1ee8a4b
Merge pull request #757 from DataIntegrationGroup/fix/hotfix-align-db…
jirhiker Jul 6, 2026
c737b69
chore(hotfix/v1.1.1): release 1.1.2
github-actions[bot] Jul 6, 2026
7547d63
Merge pull request #758 from DataIntegrationGroup/release-please--bra…
jirhiker Jul 6, 2026
2ed12b6
fix: stop per-request OOM on /geospatial export endpoint
jirhiker Jul 6, 2026
51ad009
chore: sync uv.lock with pyproject version bump
jirhiker Jul 6, 2026
fa727c4
fix: drop yield_per in get_thing_features (incompatible with unique)
jirhiker Jul 6, 2026
f63d9ce
fix: correct shapefile DBF schema and clean up temp dir on failure
jirhiker Jul 6, 2026
877fff8
fix: stream get_thing_features with yield_per instead of buffering
jirhiker Jul 6, 2026
d3a1358
Merge pull request #762 from DataIntegrationGroup/hotfix/geospatial-oom
jirhiker Jul 6, 2026
a0cd23f
chore(hotfix/v1.1.3): release 1.1.3
github-actions[bot] Jul 6, 2026
2c4c55c
Merge pull request #763 from DataIntegrationGroup/release-please--bra…
jirhiker Jul 6, 2026
1a11ee9
fix(ci): deploy on inline workflow_call to CD (Production)
jirhiker Jul 6, 2026
8371f64
Merge pull request #765 from DataIntegrationGroup/fix/cd-prod-deploy-…
jirhiker Jul 7, 2026
f2e44b6
chore(hotfix/v1.1.3): release 1.1.4
github-actions[bot] Jul 7, 2026
37ba8e7
Merge pull request #768 from DataIntegrationGroup/release-please--bra…
jirhiker Jul 7, 2026
ec012d6
fix(deploy): raise instance class to F4_1G to stop OOM instance churn
jirhiker Jul 7, 2026
591d82a
chore(hotfix/v1.1.5): release 1.1.5
github-actions[bot] Jul 7, 2026
a9f1e2b
Merge pull request #770 from DataIntegrationGroup/release-please--bra…
jirhiker Jul 7, 2026
3d32109
chore: back-merge hotfix/v1.1.5 into production
jirhiker Jul 20, 2026
fcd735a
chore: sync uv.lock root version to 1.1.5
jirhiker Jul 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/app.template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,18 @@ service: ${SERVICE_NAME}
runtime: python313
entrypoint: ${ENTRYPOINT}
service_account: "${CLOUD_SQL_USER}.gserviceaccount.com"
instance_class: F4
# F4_1G (2 GB) not F4 (1 GB): the entrypoint runs gunicorn -w 8, and eight
# workers each importing the full stack (sqlalchemy + geoalchemy2 + shapely +
# cloud-sql connector + pygeoapi) exceeded 1 GB. App Engine logged "using too
# much memory and was terminated" ~44x/3h and cycled workers continuously
# (304 "Booting worker", 297 SIGTERM in 3h), so every request re-cold-loaded.
instance_class: F4_1G
inbound_services:
- warmup
automatic_scaling:
min_instances: ${MIN_INSTANCES}
max_instances: ${MAX_INSTANCES}
max_concurrent_requests: 6
handlers:
- url: /.*
secure: always
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/CD_production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,8 @@ jobs:
run: |
export MAX_INSTANCES="10"
export SERVICE_NAME="ocotillo-api"
export ENTRYPOINT="gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app"
export MIN_INSTANCES="0"
export ENTRYPOINT="gunicorn -w 8 -k uvicorn.workers.UvicornWorker main:app"
export MIN_INSTANCES="1"
envsubst < .github/app.template.yaml > app.yaml

- name: Deploy to Google Cloud
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,13 @@ jobs:
release-please:
runs-on: ubuntu-latest
outputs:
release_created: ${{ steps.release.outputs.release_created }}
tag_name: ${{ steps.release.outputs.tag_name }}
# In manifest mode, release-please-action exposes the unprefixed
# `release_created` boolean but only a PATH-SCOPED `.--tag_name` (the
# unprefixed `tag_name` comes through empty). Fall back to the path-scoped
# key so the tag reaches CD_production; without it the deploy job's
# `startsWith(inputs.tag_name, 'v')` gate silently skips the release.
release_created: ${{ steps.release.outputs.release_created || steps.release.outputs['.--release_created'] }}
tag_name: ${{ steps.release.outputs.tag_name || steps.release.outputs['.--tag_name'] }}
steps:
- id: release
uses: googleapis/release-please-action@v5
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "1.1.0"
".": "1.1.5"
}
42 changes: 42 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,47 @@
# Changelog

## [1.1.5](https://github.com/DataIntegrationGroup/OcotilloAPI/compare/v1.1.4...v1.1.5) (2026-07-07)


### Bug Fixes

* **deploy:** raise instance class to F4_1G to stop OOM instance churn ([ec012d6](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/ec012d60ff8b985e89c8a2ca4167b4f24cae8540))

## [1.1.4](https://github.com/DataIntegrationGroup/OcotilloAPI/compare/v1.1.3...v1.1.4) (2026-07-07)


### Bug Fixes

* **ci:** deploy on inline workflow_call to CD (Production) ([8371f64](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/8371f646b08363a578d339d99da8ebf5863d21c9))
* **ci:** deploy on inline workflow_call to CD (Production) ([1a11ee9](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/1a11ee9e5237d33ce7b9ee7f093dad5e023436c6))

## [1.1.3](https://github.com/DataIntegrationGroup/OcotilloAPI/compare/v1.1.2...v1.1.3) (2026-07-06)


### Bug Fixes

* correct shapefile DBF schema and clean up temp dir on failure ([f63d9ce](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/f63d9ce2d28ba190b63628f40c61edee09ac1a5e))
* drop yield_per in get_thing_features (incompatible with unique) ([fa727c4](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/fa727c42898e5d8791f248ff4dc0b5f43c7b3da2))
* stop per-request OOM on /geospatial export endpoint ([d3a1358](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/d3a1358f54b9b6d02a6187d0004ba44b2b365ed0))
* stop per-request OOM on /geospatial export endpoint ([2ed12b6](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/2ed12b602a080d98e2025fc0e4edefdc341412ba))
* stream get_thing_features with yield_per instead of buffering ([877fff8](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/877fff833755034e9c0f1b67ed3d6c74a92d4084))

## [1.1.2](https://github.com/DataIntegrationGroup/OcotilloAPI/compare/v1.1.1...v1.1.2) (2026-07-06)


### Bug Fixes

* **deploy:** align hotfix migration head with production DB (unblock v1.1.x deploy) ([1ee8a4b](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/1ee8a4b893027b851450d6ed98c811aea283c365))
* **deploy:** align hotfix migration head with production DB + fix release tag passthrough ([790377f](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/790377f53e57c9f7671d45efbcab617189f2af36))

## [1.1.1](https://github.com/DataIntegrationGroup/OcotilloAPI/compare/v1.1.0...v1.1.1) (2026-07-06)


### Bug Fixes

* **deploy:** prevent App Engine request starvation under burst load ([fec7dbd](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/fec7dbd2e0f59d6ce1c3319cda9fded5c6051eb8))
* **deploy:** prevent App Engine request starvation under burst load ([385c974](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/385c9743185520b82034f0b1549d51c57781f9e9))

## [1.1.0](https://github.com/DataIntegrationGroup/OcotilloAPI/compare/v1.0.0...v1.1.0) (2026-06-08)


Expand Down
Loading
Loading