Skip to content

Commit 2e27eb6

Browse files
Merge pull request #10 from stac-extensions/mah/updates
Schema updates, drop some fields
2 parents 4398e1f + bc79400 commit 2e27eb6

File tree

6 files changed

+189
-123
lines changed

6 files changed

+189
-123
lines changed

.github/remark.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ plugins:
2121
- 'fenced'
2222
# Headings
2323
- remark-lint-heading-increment
24-
- remark-lint-no-duplicate-headings
2524
- remark-lint-no-multiple-toplevel-headings
2625
- remark-lint-no-heading-punctuation
2726
- - remark-lint-maximum-heading-length

README.md

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,40 +5,37 @@
55
- **Field Name Prefix:** storage
66
- **Scope:** Item, Asset
77
- **Extension [Maturity Classification](https://github.com/radiantearth/stac-spec/tree/master/extensions/README.md#extension-maturity):** Proposal
8-
- **Owner**: @davidraleigh
8+
- **Owner**: @davidraleigh @matthewhanson
99

1010
This document explains the Storage Extension to the [SpatioTemporal Asset Catalog](https://github.com/radiantearth/stac-spec) (STAC) specification.
1111
This extension adds fields to STAC Item and Asset objects, allowing for details related to cloud storage access and costs to be associated
1212
with a STAC Item. This extension does not cover NFS solutions provided by PaaS cloud companies.
1313

1414
- Examples:
15-
- [Item example 1](examples/example-naip.json): Shows the basic usage of the extension in a STAC Item.
16-
- [Item example 2](examples/example-nsl.json): Another example of basic usage.
15+
- [Item example 1](examples/item-naip.json): Shows the basic usage of the extension in a STAC Item.
16+
- [Item example 2](examples/item-nsl.json): Another example of basic usage.
1717
- [JSON Schema](json-schema/schema.json)
1818
- [Changelog](./CHANGELOG.md)
1919

2020
## Item Fields
21+
2122
| Field Name | Type | Description |
2223
| ----------- | ------ | ----------- |
2324
| storage:min_tier_duration | integer | number of days for the shortest time tier restriction on access of an asset. |
2425
| storage:max_tier_duration | integer | number of days for the longest time tier restrictions on access of an asset. |
2526
| storage:archived | bool | descriptor for whether the data is "properly" archived according to implementers discretion |
26-
27-
## Asset Fields
28-
29-
| Field Name | Type | Description |
30-
| ----------- | ------ | ----------- |
31-
| storage:platform | string | (REQUIRED) The [cloud provider](#providers) where data is stored |
32-
| storage:manager | string | The entity in charge of managing the data. |
33-
| storage:region | string | (REQUIRED) The region where the data is stored. Relevant to speed of access and inter region egress costs (as defined by PaaS provider) |
34-
| storage:bucket | string | The bucket for the asset, used along with object path |
27+
| storage:platform | string | The [cloud provider](#providers) where data is stored |
28+
| storage:region | string | The region where the data is stored. Relevant to speed of access and inter region egress costs (as defined by PaaS provider) |
29+
| storage:bucket | string | The bucket for the asset(s), used along with object path |
3530
| storage:object_path | string | The object_path for the asset, used along with bucket |
36-
| storage:requester_pays | bool | (REQUIRED) Is the data requester pays or is it data manager/cloud provider pays |
31+
| storage:requester_pays | bool | Is the data requester pays or is it data manager/cloud provider pays. *Defaults to false* |
3732
| storage:tier | string | The title for the tier type (as defined by PaaS provider) |
3833
| storage:tier_duration | integer | Minimum storage duration (in days) required before additional fees |
39-
| storage:date_stored | string | Date and time the corresponding asset placed into the current storage tier (relevant for tier_duration > 0). Format is RFC 3339. |
4034
| storage:first_byte_latency | string | approximate time unit (milliseconds, minutes or hours) for accessing first byte of data |
4135

36+
While these are all valid properties on an Item, they will typically be defined per-asset. If a field applies equally
37+
to all assets (e.g., storage:platform=AWS if all assets are on AWS), then it should be specified in Item properties.
38+
4239
### Additional Field Information
4340

4441
#### Providers
@@ -81,3 +78,34 @@ Alibaba:
8178
- <https://www.alibabacloud.com/help/doc-detail/51374.htm>
8279

8380
All timestamps MUST be formatted according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).
81+
82+
## Contributing
83+
84+
All contributions are subject to the
85+
[STAC Specification Code of Conduct](https://github.com/radiantearth/stac-spec/blob/master/CODE_OF_CONDUCT.md).
86+
For contributions, please follow the
87+
[STAC specification contributing guide](https://github.com/radiantearth/stac-spec/blob/master/CONTRIBUTING.md) Instructions
88+
for running tests are copied here for convenience.
89+
90+
### Running tests
91+
92+
The same checks that run as checks on PR's are part of the repository and can be run locally to verify that changes are valid.
93+
To run tests locally, you'll need `npm`, which is a standard part of any [node.js installation](https://nodejs.org/en/download/).
94+
95+
First you'll need to install everything with npm once. Just navigate to the root of this repository and on
96+
your command line run:
97+
```bash
98+
npm install
99+
```
100+
101+
Then to check markdown formatting and test the examples against the JSON schema, you can run:
102+
```bash
103+
npm test
104+
```
105+
106+
This will spit out the same texts that you see online, and you can then go and fix your markdown or examples.
107+
108+
If the tests reveal formatting problems with the examples, you can fix them with:
109+
```bash
110+
npm run format-examples
111+
```

examples/example-naip.json renamed to examples/item-naip.json

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"stac_version": "1.0.0-beta.2",
2+
"stac_version": "1.0.0",
33
"stac_extensions": [
44
"https://stac-extensions.github.io/storage/v1.0.0/schema.json"
55
],
@@ -55,7 +55,6 @@
5555
"storage:bucket": "naip-nsl",
5656
"storage:object_path": "tx/2016/100cm/rgb/30097/m_3009743_sw_14_1_20160928.tif",
5757
"storage:platform": "AZURE",
58-
"storage:manager": "Near Space Labs",
5958
"storage:region": "westus2",
6059
"storage:tier": "Archive tier",
6160
"storage:tier_duration": 180,
@@ -68,7 +67,6 @@
6867
"storage:bucket": "naip-data",
6968
"storage:object_path": "tx/2016/100cm/rgb/30097/m_3009743_sw_14_1_20160928.tif",
7069
"storage:platform": "GCP",
71-
"storage:manager": "Near Space Labs",
7270
"storage:region": "us-central1",
7371
"storage:requester_pays": true,
7472
"storage:tier": "COLDLINE",
@@ -82,7 +80,6 @@
8280
"storage:bucket": "naip-visualization",
8381
"storage:object_path": "tx/2016/100cm/rgb/30097/m_3009743_sw_14_1_20160928.tif",
8482
"storage:platform": "AWS",
85-
"storage:manager": "ESRI",
8683
"storage:region": "us-west-2",
8784
"storage:requester_pays": true,
8885
"storage:tier": "standard",
@@ -95,7 +92,6 @@
9592
"storage:bucket": "naipeuwest",
9693
"storage:object_path": "naip/v002/tx/2016/tx_100cm_2016/30097/m_3009743_sw_14_1_20160928.tif",
9794
"storage:platform": "AZURE",
98-
"storage:manager": "AZURE",
9995
"storage:region": "westeurope",
10096
"storage:requester_pays": false,
10197
"storage:tier": "hot tier",
@@ -108,7 +104,6 @@
108104
"storage:bucket": "naipblobs",
109105
"storage:object_path": "naip/v002/tx/2016/tx_100cm_2016/30097/m_3009743_sw_14_1_20160928.tif",
110106
"storage:platform": "AZURE",
111-
"storage:manager": "AZURE",
112107
"storage:region": "eastus",
113108
"storage:requester_pays": false,
114109
"storage:tier": "hot tier",
@@ -121,7 +116,6 @@
121116
"storage:bucket": "naipblobs",
122117
"storage:object_path": "naip/v002/tx/2016/tx_100cm_2016/30097/m_3009743_sw_14_1_20160928.200.jpg",
123118
"storage:platform": "AZURE",
124-
"storage:manager": "AZURE",
125119
"storage:region": "eastus",
126120
"storage:requester_pays": false,
127121
"storage:tier": "hot tier",
@@ -131,14 +125,12 @@
131125
},
132126
"links": [
133127
{
134-
"rel": "root",
135-
"href": "../../catalog.json",
136-
"type": "application/json"
128+
"href": "https://example.com/examples/item.json",
129+
"rel": "self"
137130
},
138131
{
139-
"rel": "parent",
140-
"href": "../collection.json",
141-
"type": "application/json"
132+
"href": "https://example.com/examples/item.json",
133+
"rel": "collection"
142134
}
143135
]
144136
}

examples/example-nsl.json renamed to examples/item-nsl.json

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
2-
"stac_version": "1.0.0-beta.2",
2+
"stac_version": "1.0.0",
33
"stac_extensions": [
4-
"view",
54
"https://stac-extensions.github.io/storage/v1.0.0/schema.json"
65
],
76
"id": "20190822T183518Z_746_POM1_ST2_P",
@@ -46,7 +45,6 @@
4645
"platform": "SWIFT_2",
4746
"instrument": "POM_1",
4847
"gsd": 0.20000000298023224,
49-
"view:off_nadir": 9.42326831817627,
5048
"storage:min_tier_duration": 0,
5149
"storage:max_tier_duration": 90,
5250
"storage:archived": true
@@ -58,7 +56,6 @@
5856
"storage:bucket": "swiftera-processed-data",
5957
"storage:object_path": "20190822T162258Z_TRAVIS_COUNTY/Published/REGION_0/20190822T183518Z_746_POM1_ST2_P.tif",
6058
"storage:platform": "GCP",
61-
"storage:manager": "Near Space Labs",
6259
"storage:region": "us-central1",
6360
"storage:requester_pays": true,
6461
"storage:tier": "Standard",
@@ -71,7 +68,6 @@
7168
"storage:bucket": "swiftera-processed-data",
7269
"storage:object_path": "20190822T162258Z_TRAVIS_COUNTY/Published/REGION_0/20190822T183518Z_746_POM1_ST2_P.png",
7370
"storage:platform": "GCP",
74-
"storage:manager": "Near Space Labs",
7571
"storage:region": "us-central1",
7672
"storage:requester_pays": true,
7773
"storage:tier": "Standard",
@@ -84,7 +80,6 @@
8480
"storage:bucket": "nsl-data-archive",
8581
"storage:object_path": "20190822T162258Z_TRAVIS_COUNTY/Published/REGION_0/20190822T183518Z_746_POM1_ST2_P.tif",
8682
"storage:platform": "AWS",
87-
"storage:manager": "Near Space Labs",
8883
"storage:region": "us-central1",
8984
"storage:requester_pays": true,
9085
"storage:tier": "Glacier",
@@ -98,7 +93,6 @@
9893
"storage:bucket": "nsl-data-archive",
9994
"storage:object_path": "20190822T162258Z_TRAVIS_COUNTY/Published/REGION_0/20190822T183518Z_746_POM1_ST2_P.png",
10095
"storage:platform": "AWS",
101-
"storage:manager": "Near Space Labs",
10296
"storage:region": "us-central1",
10397
"storage:requester_pays": true,
10498
"storage:tier": "Standard",
@@ -108,14 +102,12 @@
108102
},
109103
"links": [
110104
{
111-
"rel": "root",
112-
"href": "../../catalog.json",
113-
"type": "application/json"
105+
"href": "https://example.com/examples/item.json",
106+
"rel": "self"
114107
},
115108
{
116-
"rel": "parent",
117-
"href": "../collection.json",
118-
"type": "application/json"
109+
"href": "https://example.com/examples/item.json",
110+
"rel": "collection"
119111
}
120112
]
121113
}

0 commit comments

Comments
 (0)