Skip to content

Commit

Permalink
Merge pull request #9 from stac-api-extensions/pv/txn-wordsmith
Browse files Browse the repository at this point in the history
remove oafeat part 4 cc, remove declaration of alignment with Part 4, wordsmith
  • Loading branch information
Phil Varner authored Sep 29, 2023
2 parents 1133d5f + 36713bf commit dd0afec
Show file tree
Hide file tree
Showing 7 changed files with 125 additions and 9,490 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
package-lock.json

# Logs
logs
*.log
Expand Down
3 changes: 2 additions & 1 deletion .remarkignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
/CHANGELOG.md
/CHANGELOG.md
.github/pull_request_template.md
16 changes: 12 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [v1.0.0-rc.2] - TBD
## [v1.0.0-rc.3] - 2023-09-28

- Remove assertion that this will align with OAF Part 4.
- OAFeat Part 4 Conformance URI should no longer be advertised.

## [v1.0.0-rc.2] - 2022-11-01

None
- Minor wordsmithing updates.

## [v1.0.0-rc.1] - 2022-03-17

Expand All @@ -30,6 +36,8 @@ None
See the [stac-spec CHANGELOG](https://github.com/radiantearth/stac-spec/blob/v0.9.0/CHANGELOG.md)
for STAC API releases prior to or equal to version 0.9.0.

[Unreleased]: <https://github.com/radiantearth/stac-api-spec/compare/master...dev>
[v1.0.0-beta.1]: <https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-beta.1>
[Unreleased]: <https://github.com/stac-api-extensions/transaction/compare/v1.0.0-rc.3...main>
[v1.0.0-rc.3]: <https://github.com/stac-api-extensions/transaction/tree/v1.0.0-rc.3>
[v1.0.0-rc.2]: <https://github.com/stac-api-extensions/transaction/tree/v1.0.0-rc.2>
[v1.0.0-rc.1]: <https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-rc.1>
[v1.0.0-beta.1]: <https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-beta.1>
44 changes: 17 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,42 @@
# STAC API - Transaction Extension Specification
# STAC API - Transaction Extension Specification <!-- omit in toc -->

- [STAC API - Transaction Extension Specification](#stac-api---transaction-extension-specification)
- [Overview](#overview)
- [Methods](#methods)
- [POST](#post)
- [PUT](#put)
- [PATCH](#patch)
- [DELETE](#delete)
- [Overview](#overview)
- [Methods](#methods)
- [POST](#post)
- [PUT](#put)
- [PATCH](#patch)
- [DELETE](#delete)

## Overview

- **Title:** Transaction
- **OpenAPI specification:** [openapi.yaml](openapi.yaml)
- **Conformance URIs:**
- <https://api.stacspec.org/v1.0.0-rc.2/ogcapi-features/extensions/transaction>
- <http://www.opengis.net/spec/ogcapi-features-4/1.0/conf/simpletx>
- <https://api.stacspec.org/v1.0.0/ogcapi-features/extensions/transaction>
- **Scope:** STAC API - Features
- **[Extension Maturity Classification](https://github.com/radiantearth/stac-api-spec/tree/main/README.md#maturity-classification):** Candidate
- **Dependencies**:
- [STAC API - Features](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-rc.2/ogcapi-features/README.md)
- [STAC API - Features](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/ogcapi-features/README.md)
- **Owner**: none

The core STAC API doesn't support adding, editing, or removing items.
The transaction API extension supports the creation, editing, and deleting of items through POST, PUT, PATCH, and DELETE requests.

STAC Transactions are based on the [OGC API - Features](https://ogcapi.ogc.org/features/) transactions, as
specified in [Part 4: Simple Transactions](http://docs.opengeospatial.org/DRAFTS/20-002.html). The core
The STAC API Transaction Extension adds support for the creation, modification, and deletion
of items through POST, PUT, PATCH, and DELETE method requests.
The behavior described here is based on the [OGC API - Features](https://ogcapi.ogc.org/features/) transactions as
specified in [OGC API - Features - Part 4: Create, Replace, Update and Delete](http://docs.opengeospatial.org/DRAFTS/20-002.html). The core
OGC standard lays out the end points for transactions, without specifying any content types. For STAC we
use STAC Item objects in our transactions, and those transaction must be done at the OGC API - Features endpoints,
under `/collections/{collectionID}/items`. The OpenAPI document (specified as an OpenAPI fragment that
gets build in the full STAC OpenAPI document) simply gives the STAC examples of using the
Simple Transactions API mechanism.

OGC API [Simple Transactions](http://docs.opengeospatial.org/DRAFTS/20-002.html) is still a draft standard, so
once it is released STAC will align to a released one, but we anticipate few changes as it is a very simple document.
under `/collections/{collectionId}/items`.

STAC Transactions additionally support optimistic locking through use of the ETag header, as specified in the
OpenAPI document. This is not currently specified in *OGC API - Features*, but it is compatible and we will
work to get it incorporated.
Additionaly, the STAC API Transaction Extension supports optimistic locking through use of the ETag header.

## Methods

| Path | Content-Type Header | Body | Success Status | Description |
| ------------------------------------------------------ | ------------------- | -------------------------------------- | -------------- | ----------------------------------------------------------------- |
| `POST /collections/{collectionID}/items` | `application/json` | partial Item or partial ItemCollection | 201, 202 | Adds a new item to a collection. |
| `POST /collections/{collectionId}/items` | `application/json` | partial Item or partial ItemCollection | 201, 202 | Adds a new item to a collection. |
| `PUT /collections/{collectionId}/items/{featureId}` | `application/json` | partial Item | 200, 202, 204 | Updates an existing item by ID using a complete item description. |
| `PATCH /collections/{collectionId}/items/{featureId}` | `application/json` | partial Item | 200, 202, 204 | Updates an existing item by ID using a partial item description. |
| `DELETE /collections/{collectionID}/items/{featureId}` | n/a | n/a | 200, 202, 204 | Deletes an existing item by ID. |
| `DELETE /collections/{collectionId}/items/{featureId}` | n/a | n/a | 200, 202, 204 | Deletes an existing item by ID. |

### POST

Expand Down
Loading

0 comments on commit dd0afec

Please sign in to comment.