You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Re-enable AVA worker threads via nodeArguments tsx loader
Register the tsx loader through AVA's nodeArguments config instead of
NODE_OPTIONS, which lets the test suites run with worker threads enabled.
Removes the --no-worker-threads workaround added during the TypeScript
migration (#1067) and the duplicated NODE_OPTIONS exports in package.json
and bin/system-tests.sh.
* Use nvm in pre-commit hook only when it is available
Load and use nvm to select the project's Node version when nvm is installed.
When it is not (e.g. Node provided by Nix or a system package manager), skip
nvm entirely and use whatever node is on PATH rather than failing with
'nvm: command not found'. Version compatibility is left to the developer, with
CI enforcing the pinned Node version.
* Scope collection searches via _index body filter instead of request path
Listing many collection indices in the OpenSearch request path can overflow
the server's URL line-length limit. PR #1047 worked around this by falling
back to searching all indices once more than 10 collections were requested,
which loses scoping and degrades performance.
Instead, always restrict to the requested collections via a terms filter on
the _index metadata field in the query body, which has no comparable length
limit. The request path keeps the default restriction (*, -.*, -collections)
so searches never reach into system or collections indices.
Fixes#770.
* Tighten STAC types: bbox and collection summaries
- StacItem.bbox is now BBox only, matching the STAC document model. The
request-time string form remains on APIParameters where it belongs; the
document type no longer forces consumers to narrow away a string. getBBox's
return type is tightened to match (its sns.ts consumer already indexed it as
an array).
- Collection summaries now accept a Range Object or JSON Schema in addition to
value arrays, per the STAC spec, instead of only string[]/number[].
- Fixed a missing space in the StacItem.geometry union.
* Add PR #1155 link to CHANGELOG entries for this branch
* Fix ingestStatus mis-reporting for empty-message ingest errors
Post-ingest SNS notifications derived ingestStatus from the truthiness of the
error message string (payload.error ? 'failed' : 'successful'). Since the
converted ingest lambda passes result.error?.message, an ingest failure whose
Error has an empty message produced a falsy value and was published as
'successful' — silently hiding the failure from SNS subscribers.
Derive the status from the presence of an error (error !== undefined) instead.
Add integration-style unit tests that drive publishRecordToSns through a mocked
SNS client and assert the published MessageAttributes, covering success,
error-with-message, and the empty-message failure case.
* Restore missing-href scenario in asset-proxy test
The TS test conversion (#1095) added href: '' to the 'handles assets without
href' test to satisfy the Assets type, which turned it into a with-empty-href
test that no longer matched its name. Provide an asset genuinely missing href
(via a cast) so it exercises the intended missing-href branch of
getProxiedAssets.
* Preserve declared temporal sub-intervals during auto-extent calculation
The automatic temporal extent feature (#999) replaced a collection's entire
extent.temporal.interval array with a single computed interval whenever the
overall extent needed backfilling, discarding any declared sub-intervals
(interval[1..n]). Only compute the overall extent (interval[0]) from items and
preserve declared sub-intervals. Adds a regression test covering a collection
with multiple intervals.
* Resolve mapped collection indices without re-hashing
When COLLECTION_TO_INDEX_MAPPINGS is configured, a mapped collection resolves to
a specific index name (e.g. a shared or remote index) that must be used as-is.
The scoped-search path was passing every resolved name through
collectionUniqueIndexID(), re-hashing the mapped name into a nonexistent index
so those collections returned no results. Collections with no mapping entry still
fall back to their hashed index name.
Extract the resolution into a pure, exported resolveCollectionIndices(collections,
mapping) so the mapped/unmapped/mixed cases are unit-testable without the
module-level mapping cache, and add tests covering each.
* Prefer request-path index scoping, body filter only as fallback
Scoping collections via an _index body filter against a broad path (_all) makes
OpenSearch enumerate and fan out a can_match request to every shard in the
cluster before skipping the non-matching ones; path-based scoping instead prunes
to the target shards at the coordinating node before any fan-out. Always using
the body filter therefore regressed the shard-fan-out optimization noted in
issue #770 for the common case of a few collections.
Scope in the request path when the resolved index list fits within the URL
line-length budget, and fall back to the _index body filter only when the list
would overflow it. Correctness and the large-collection-list fix are preserved;
typical queries regain path-based shard pruning. Addresses review feedback on
PR #1155.
- Re-enabled AVA worker threads for the test suites by registering the `tsx`
33
+
loader via AVA's `nodeArguments` config instead of `NODE_OPTIONS`, removing the
34
+
`--no-worker-threads` workaround introduced during the TypeScript migration. ([1155](https://github.com/stac-utils/stac-server/pull/1155))
11
35
12
36
- The `datetime_frequency` aggregation now honors the `datetime_frequency_interval`
13
37
parameter (`day`/`week`/`month`/`quarter`/`year`) instead of always
@@ -50,6 +74,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
50
74
### Changed
51
75
52
76
- Upgrade `got` from 13 to 15 (HTTP client used by the ingest lambda for fetching remote STAC records). No API or behavior changes; remote-record fetches keep lenient Content-Length handling. `got` 15 requires Node.js >= 22, now declared in `engines` and used by all CI workflows.
77
+
- Corrected STAC types: `StacItem.bbox` is now `BBox` (matching the STAC document
78
+
model, with the request-string form kept only on `APIParameters`), and
79
+
collection `summaries` now accept range objects and JSON Schema values in
80
+
addition to value arrays, per the STAC spec. ([1155](https://github.com/stac-utils/stac-server/pull/1155))
53
81
- Typing the top level lambda layer ([1087](https://github.com/stac-utils/stac-server/pull/1087))
54
82
- Typing the api layer in `api.ts`, pushing some minor functions to a new utility files `api-utils.ts` ([1081](https://github.com/stac-utils/stac-server/pull/1081))
55
83
- Converting the database layer to typescript as part of migration ([1077](https://github.com/stac-utils/stac-server/pull/1077))
0 commit comments