Skip to content

docs(openapi): document GeoDatasets append params + add/enrich other core plugin endpoints#106

Merged
tariqksoliman merged 4 commits into
developmentfrom
devin/1783619085-geodatasets-openapi-docs
Jul 9, 2026
Merged

docs(openapi): document GeoDatasets append params + add/enrich other core plugin endpoints#106
tariqksoliman merged 4 commits into
developmentfrom
devin/1783619085-geodatasets-openapi-docs

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Jul 9, 2026

Copy link
Copy Markdown

Purpose

  • A user reported that programmatically appending features to a GeoDataset (via the Configure API + long-term token) did not obey the group_id, start-time, and end-time fields that were set when the GeoDataset was created.
  • Root cause is a documentation gap, not a code bug: the append endpoints only populate start_time/end_time/group_id/feature_id when the corresponding prop names are re-supplied on the append request. The *_field config stored at creation is read only to decide which columns exist, and is never used to compute per-feature values on append. Without the props, appended features get NULL for those columns and won't match temporal/group_id queries.
  • This PR updates the Swagger/OpenAPI spec (docs/mmgis-openapi.json, served at /api-docs) and the GeoDatasets API markdown doc to document those params, then extends the audit to the rest of the core backend plugins — adding the remaining undocumented functional endpoints and enriching thin/undescribed field docs. No runtime code changed — docs only.

Proposed Changes

GeoDatasets (original scope)

  • [ADD] POST /append/{name}: group_id_prop and feature_id_prop query params; documented body-level startProp/endProp/groupIdProp/featureIdProp; prominent note that append does not auto-reuse the fields configured at creation.
  • [FIX] POST /append/{name} & /append/{name}/{start_end_prop}: request body IS the GeoJSON FeatureCollection, not a { geojson: ... } wrapper.
  • [ADD] GET /get & /get/{layer}: group_id, id, spatialFilter, format. GET /aggregations: startProp, endProp, format. POST /search: operator, type, last. POST /recreate: groupIdProp, featureIdProp, filename + action description. Documented POST /intersect and GET /bulk_aggregations.
  • Added E2E test tests/e2e/api/geodatasets-append-fields.spec.js covering create-with-fields → append-with-props → temporal + group_id queries, plus the append-without-props NULL gotcha.

Other core backend plugins (follow-up scope)

  • [ADD] Previously-undocumented functional endpoints:
    • GET /api/stac/collections, GET /api/stac/collections/{collection}/export (new STAC tag)
    • POST /api/draw/aggregations
    • POST /api/utils/getminmax, POST /api/utils/ll2aerll_bulk
    • POST /api/configure/reference-mission/save-to-base
  • [CHANGE] Enriched thin/undescribed field docs on existing endpoints: users login/signup/first_signup/resetPassword, utils getprofile/getbands, configure add/updateGeneralOptions, shortener shorten/expand, longtermtoken generate/clear.
    • Notably documented that longtermtoken period is milliseconds from creation (or the string never) — a unit string like "1d" parses to 1ms and the token is immediately expired.
  • Excluded on request: Sightline endpoints, the internal testwebhooks stubs, and POST /api/configure/rename (empty no-op handler in code).

Issues

  • N/A (reported via user request)

Testing

  • node -e "require('./docs/mmgis-openapi.json')" confirms the OpenAPI JSON stays valid (92 paths).
  • Ran swagger-cli validate: the 26 pre-existing structural warnings are unchanged and the additions introduce no new validation errors.
  • Verified every new/enriched entry against the actual route handlers in plugins/core/backend/*.
  • E2E test verified locally against PostGIS under AUTH=local and AUTH=off (4/4 pass); CI test (local) and test (off) green.

Link to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/9fa34356618548b4a5ccf8a9af883a37
Requested by: @tariqksoliman


Open in Devin Review

… params

- append: add group_id_prop/feature_id_prop query params, document body-level startProp/endProp/groupIdProp/featureIdProp, and note that append does not auto-reuse the fields configured at creation
- get: add group_id, id, spatialFilter, format query params
- aggregations: add startProp, endProp, format
- search: add operator, type, last body params
- recreate: add groupIdProp, featureIdProp, filename
- document previously-undocumented POST /intersect and GET /bulk_aggregations

Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
@tariqksoliman tariqksoliman self-assigned this Jul 9, 2026
@devin-ai-integration

Copy link
Copy Markdown
Author
Original prompt from tariq.k.soliman

In MMGIS, Check whether programmaticaly updating (using configureAPI and longtermtoken) a geodataset still obeys group_id, start and end time. A user was mentioning that they did no have success append more features to a geodataset that had these fields initial set

@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

✅ Version Already Updated

This PR includes a manual version update to 5.2.17-20260709

No automatic version bump needed.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 1 additional finding.

Open in Devin Review

Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
@tariqksoliman tariqksoliman marked this pull request as ready for review July 9, 2026 18:36
…riptions

Add previously-undocumented functional endpoints: STAC collections list
and collection export, POST /api/draw/aggregations, POST /api/utils/getminmax,
POST /api/utils/ll2aerll_bulk, and POST /api/configure/reference-mission/save-to-base.
Enrich per-field descriptions on several thin endpoints (users login/signup/
first_signup/resetPassword, utils getprofile/getbands, configure add/
updateGeneralOptions, shortener shorten/expand, longtermtoken generate/clear),
notably documenting that longtermtoken 'period' is milliseconds or 'never'.

Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
@devin-ai-integration devin-ai-integration Bot changed the title docs(geodatasets): document append field params and other missing GeoDatasets API params docs(openapi): document GeoDatasets append params + add/enrich other core plugin endpoints Jul 9, 2026
@tariqksoliman tariqksoliman merged commit ef8c67d into development Jul 9, 2026
9 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.

1 participant