Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .github/workflows/api-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ jobs:
# API Configuration
API_TITLE=STAC Atlas
API_DESCRIPTION=A centralized platform for managing, indexing, and providing STAC Collection metadata
API_VERSION=1.1.0
API_VERSION=1.0.0
EOF

# Step 4: Install dependencies
Expand Down Expand Up @@ -164,7 +164,7 @@ jobs:
# API Configuration
API_TITLE=STAC Atlas
API_DESCRIPTION=A centralized platform for managing, indexing, and providing STAC Collection metadata
API_VERSION=1.1.0
API_VERSION=1.0.0
EOF

- name: Install dependencies
Expand Down
2 changes: 1 addition & 1 deletion api/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ CORS_ORIGIN=*
# API Configuration
API_TITLE=STAC Atlas
API_DESCRIPTION=A centralized platform for managing, indexing, and providing STAC Collection metadata
API_VERSION=1.1.0
API_VERSION=1.0.0
48 changes: 1 addition & 47 deletions api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,59 +156,13 @@ CORS_ORIGIN=*

Diese API implementiert:

- ✅ STAC API Core (v1.1.0)
- ✅ STAC API Core (v1.0.0)
- ✅ OGC API Features Core
- ✅ STAC Collections
- ✅ Collection Search Extension
- 🚧 CQL2 Basic Filtering (in Entwicklung)
- 🚧 CQL2 Advanced Operators (in Entwicklung)

### STAC API Validator

The API can be tested using the official [STAC API Validator](https://github.com/stac-utils/stac-api-validator):

#### Installation

```bash
# Python 3.11 required
pip install stac-api-validator
```

#### Usage

```bash
# Validate Core Conformance Class
python -m stac_api_validator --root-url http://localhost:3000 --conformance core

# Validate Collections Extension (requires collection ID)
python -m stac_api_validator \
--root-url http://localhost:3000 \
--conformance core \
--conformance collections \
--collection <collection-id>

# With spatial filtering (requires geometry in dataset)
python -m stac_api_validator \
--root-url http://localhost:3000 \
--conformance core \
--conformance collections \
--collection <collection-id> \
--geometry '{"type": "Polygon", "coordinates": [[[7.0, 51.0], [8.0, 51.0], [8.0, 52.0], [7.0, 52.0], [7.0, 51.0]]]}'
```

#### Validation Status

| Conformance Class | Status | Date | Errors | Warnings |
|-------------------|--------|------|--------|----------|
| **STAC API - Core** | ✅ Passed | 2025-12-10 | 0 | 0 |
| STAC API - Collections | ⏳ Pending | - | - | - |
| STAC API - Features | ⏳ Pending | - | - | - |
| STAC API - Item Search | ⏳ Pending | - | - | - |
| CQL2 - Basic | ⏳ Pending | - | - | - |
| CQL2 - Advanced | ⏳ Pending | - | - | - |

**Note:** The Collection Search Extension is not currently validated automatically by the validator and is instead validated through custom Jest integration tests (see `__tests__/`).

## 📦 Nächste Schritte

### TODO
Expand Down
221 changes: 0 additions & 221 deletions api/__tests__/buildCollectionSearchQuery.aggregates.test.js

This file was deleted.

4 changes: 2 additions & 2 deletions api/__tests__/buildCollectionSearchQuery.fulltext.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ describe('buildCollectionSearchQuery - full-text search and ranking', () => {
expect(sql).toMatch(/AS rank/);

// Ordering defaults to rank DESC when q present and no sortby
expect(sql).toMatch(/ORDER BY rank DESC, c\.id ASC/);
expect(sql).toMatch(/ORDER BY rank DESC, id ASC/);

// values: [q, limit, token]
expect(values[0]).toBe('forest');
Expand All @@ -24,7 +24,7 @@ describe('buildCollectionSearchQuery - full-text search and ranking', () => {
test('explicit sortby overrides rank ordering', () => {
const { sql } = buildCollectionSearchQuery({ q: 'lake', sortby: { field: 'title', direction: 'ASC' }, limit: 5, token: 0 });

expect(sql).toMatch(/ORDER BY c\.title ASC/);
expect(sql).toMatch(/ORDER BY title ASC/);
// rank still present in select
expect(sql).toMatch(/AS rank/);
});
Expand Down
Loading
Loading