22
33## Dataset config (YAML)
44``` yaml
5+ # Required
56dataset_id : your-dataset.zarr
67collection_id : your-collection
7- osc_themes : [cryosphere]
8- osc_region : global
9- dataset_status : completed # or ongoing/planned
108license_type : CC-BY-4.0
9+
10+ # Optional
11+ osc_themes : [cryosphere] # must match slugs at opensciencedata.esa.int/themes/catalog
12+ osc_region : global
13+ dataset_status : completed # ongoing | completed | planned (default: ongoing)
1114documentation_link : https://example.com/docs
12- access_link : s3://bucket/your-dataset.zarr
15+ access_link : s3://bucket/your-dataset.zarr # defaults to s3://deep-esdl-public/{dataset_id}
16+
17+ # CF parameter overrides (list of {name, units, ...} dicts)
18+ cf_parameter :
19+ - name : sea_surface_temperature
20+ units : kelvin
1321
1422# Optional: publish a STAC Catalog + Item next to the data on S3.
1523# When set, a lightweight STAC hierarchy (catalog.json → item.json) is written
1624# directly to S3 and a "via" link is added to the OSC collection pointing to it.
25+ # S3 write credentials are resolved in order:
26+ # 1. STAC_S3_KEY / STAC_S3_SECRET (STAC-specific, any bucket)
27+ # 2. AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY
28+ # 3. boto3 default chain (IAM role, ~/.aws/credentials)
1729stac_catalog_s3_root : s3://bucket/stac/your-collection/
1830` ` `
1931
@@ -29,6 +41,7 @@ stac_catalog_s3_root: s3://bucket/stac/your-collection/
2941| `dataset_status` | No | One of `ongoing`, `completed`, or `planned` (default : ` ongoing` ). |
3042| `access_link` | No | Public S3 URL of the Zarr store. Defaults to `s3://deep-esdl-public/{dataset_id}`. |
3143| `documentation_link` | No | URL to dataset documentation. |
44+ | `cf_parameter` | No | List of CF metadata dicts to override variable attributes (e.g. `name`, `units`). |
3245| `stac_catalog_s3_root` | No | S3 root for the dataset-level STAC Catalog/Item. See [STAC Catalog on S3](#stac-catalog-on-s3). |
3346
3447# ## STAC Catalog on S3
@@ -52,12 +65,14 @@ The OSC collection gains a `via` link to `catalog.json` so STAC-aware clients
5265can discover the data path. `rel="child"` is intentionally avoided because the
5366OSC validator requires every `child` link to resolve inside the metadata repository.
5467
55- S3 credentials are resolved in this order : ` S3_USER_STORAGE_KEY` /
56- ` S3_USER_STORAGE_SECRET` env vars, then `AWS_ACCESS_KEY_ID` /
57- ` AWS_SECRET_ACCESS_KEY` , then the boto3 default chain (IAM role, `~/.aws/credentials`).
68+ S3 credentials for writing the STAC catalog are resolved in this order :
69+ ` STAC_S3_KEY` / `STAC_S3_SECRET` env vars (STAC-specific, can target any bucket),
70+ then `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`,
71+ then the boto3 default chain (IAM role, `~/.aws/credentials`).
5872
5973# # Workflow config (YAML)
6074` ` ` yaml
75+ # Required
6176workflow_id: your-workflow
6277properties:
6378 title: "My workflow"
@@ -69,6 +84,8 @@ properties:
6984 name: deepesdl-xcube-1.8.3
7085 python_version: 3.11
7186 env_file: https://example.com/environment.yml
87+
88+ # Optional
7289jupyter_notebook_url: https://github.com/org/repo/path/to/notebook.ipynb
7390contact:
7491 - name: Jane Doe
@@ -77,6 +94,26 @@ contact:
7794 - rel: about
7895 type: text/html
7996 href: https://example.org
97+ links:
98+ - rel: related
99+ type: text/html
100+ href: https://example.com/related-resource
101+ title: Related resource
80102` ` `
81103
104+ # ## Field reference
105+
106+ | Field | Required | Description |
107+ |---|---|---|
108+ | `workflow_id` | Yes | Unique identifier for the workflow (spaces converted to hyphens, lowercased). |
109+ | `properties.title` | Yes | Human-readable title. |
110+ | `properties.description` | No | Short summary of what the workflow does. |
111+ | `properties.keywords` | No | List of keyword strings. |
112+ | `properties.themes` | No | List of OSC theme slugs. |
113+ | `properties.license` | No | License identifier (e.g. `proprietary`, `CC-BY-4.0`). |
114+ | `properties.jupyter_kernel_info` | No | Kernel name, Python version, and environment file URL. |
115+ | `jupyter_notebook_url` | No | Link to the source notebook on GitHub. When omitted, kernel and application links are skipped. |
116+ | `contact` | No | List of contact objects with `name`, `organization`, and `links`. |
117+ | `links` | No | Additional OGC API record links (e.g. `related`, `describedby`). |
118+
82119More templates and examples live in `dataset_config.yaml`, `workflow_config.yaml`, and `example-config/`.
0 commit comments