{"id":37651901,"url":"https://github.com/stac-extensions/alternate-assets","last_synced_at":"2026-01-16T11:34:48.686Z","repository":{"id":48847327,"uuid":"376141340","full_name":"stac-extensions/alternate-assets","owner":"stac-extensions","description":"Describes alternate locations and mirrors of assets","archived":false,"fork":false,"pushed_at":"2024-07-09T20:06:21.000Z","size":46,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-07-10T00:25:49.478Z","etag":null,"topics":["stac"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stac-extensions.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-11T21:00:53.000Z","updated_at":"2024-07-09T20:05:32.000Z","dependencies_parsed_at":"2024-07-10T00:11:33.268Z","dependency_job_id":null,"html_url":"https://github.com/stac-extensions/alternate-assets","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":"stac-extensions/template","purl":"pkg:github/stac-extensions/alternate-assets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-extensions%2Falternate-assets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-extensions%2Falternate-assets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-extensions%2Falternate-assets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-extensions%2Falternate-assets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stac-extensions","download_url":"https://codeload.github.com/stac-extensions/alternate-assets/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-extensions%2Falternate-assets/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478349,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["stac"],"created_at":"2026-01-16T11:34:48.611Z","updated_at":"2026-01-16T11:34:48.678Z","avatar_url":"https://github.com/stac-extensions.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Alternate Assets Extension Specification\n\n- **Title:** Alternate Assets\n- **Identifier:** \u003chttps://stac-extensions.github.io/alternate-assets/v1.2.0/schema.json\u003e\n- **Field Name Prefix:** `alternate`\n- **Scope:** Item, Collection\n- **Extension [Maturity Classification](https://github.com/radiantearth/stac-spec/tree/master/extensions/README.md#extension-maturity):** Pilot\n- **Owner**: @matthewhanson\n\nThe Alternate Assets extension to STAC provides a way to specify alternate locations (e.g., URLs) for assets.\nSometimes, assets can be retrieved via multiple methods.\nFor example an asset on AWS may have a public facing http URL but also a direct access s3 URL.\nOr an asset is mirrored on multiple servers that have different URLs.\nThe file the asset points to must always be exactly the same (i.e. both assets have the same checksum and file size),\nbut different protocols, authentication mechanisms or cloud services may be used to access it.\n\n- Examples:\n  - [Item example](examples/item.json): Shows the basic usage of the extension in a STAC Item\n  - [Collection example](examples/collection.json): Shows usage in Collection assets and [item assets](https://github.com/stac-extensions/item-assets)\n- [JSON Schema](json-schema/schema.json)\n- [Changelog](./CHANGELOG.md)\n\n## Fields\n\nThe fields in the table below can be used in these parts of STAC documents:\n\n- [ ] Catalogs\n- [ ] Collections\n- [ ] Item Properties (incl. Summaries in Collections)\n- [x] Assets (for both Collections and Items, incl. Item Asset Definitions in Collections)\n- [ ] Links\n\n| Field Name     | Type                                                           | Description |\n| -------------- | -------------------------------------------------------------- | ----------- |\n| alternate      | Map\u003cstring, [Alternate Asset Object](#alternate-asset-object)\u003e | An array of alternate location information for an asset |\n| alternate:name | string                                                         | A short name to distinguish the asset from the alternate assets. |\n\nEach alternate asset consists of a key and an Alternate Asset Object.\n\nExample:\n```json\n\"alternate\": {\n  \"s3\": {\n    \"href\": \"s3://bucket/key\"\n  }\n}\n```\n\nThe Alternate Asset Objects are similar to the\n[Asset Object](https://github.com/radiantearth/stac-spec/blob/master/item-spec/item-spec.md#asset-object)\nas defined in the STAC Item Specification.\n\nThe key should be used consistently across all assets (and items) if from the same source.\nIn other words, if all the assets in an Item are all available via s3 direct access, the key for all of them should be the same.\n\n### Alternate Asset Object\n\nThe Alternate Asset Object are similar to the core Asset object, except only contain fields relevant to the location and access of the asset.\n\n| Field Name     | Type   | Description |\n| -------------- | ------ | ----------- |\n| href           | string | **REQUIRED.** URI to the asset object. Relative and absolute URI are both allowed. |\n| alternate:name | string | A short name to distinguish the alternate assets. |\n\nIn the simplest case, the object consists of a single `href` field, but could include additional details regarding the alternate location or URL.\n\nSome fields that are commonly provided:\n\n- `title` and `description` as specified in [STAC's Common Metadata](https://github.com/radiantearth/stac-spec/blob/master/item-spec/common-metadata.md#basics).\n- The [Storage Extension](https://github.com/stac-extensions/storage) could be used to provide additional details on its host or location.\n- The [Authentication Extension](https://github.com/stac-extensions/authentication) could provide details about specific authentication requirements.\n\nIt is also recommended that the [Item Assets Definition](https://github.com/stac-extensions/item-assets)\nExtension is provided in Collections to convey to users what the options are for alternate access.\n\nThe `name` field could potentially also be provided in the core Asset Object as a short name to distinguish them from the alternate assets.\n\n## Contributing\n\nAll contributions are subject to the\n[STAC Specification Code of Conduct](https://github.com/radiantearth/stac-spec/blob/master/CODE_OF_CONDUCT.md).\nFor contributions, please follow the\n[STAC specification contributing guide](https://github.com/radiantearth/stac-spec/blob/master/CONTRIBUTING.md) Instructions\nfor running tests are copied here for convenience.\n\n### Running tests\n\nThe 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. \nTo run tests locally, you'll need `npm`, which is a standard part of any [node.js installation](https://nodejs.org/en/download/).\n\nFirst you'll need to install everything with npm once. Just navigate to the root of this repository and on \nyour command line run:\n```bash\nnpm install\n```\n\nThen to check markdown formatting and test the examples against the JSON schema, you can run:\n```bash\nnpm test\n```\n\nThis will spit out the same texts that you see online, and you can then go and fix your markdown or examples.\n\nIf the tests reveal formatting problems with the examples, you can fix them with:\n```bash\nnpm run format-examples\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstac-extensions%2Falternate-assets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstac-extensions%2Falternate-assets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstac-extensions%2Falternate-assets/lists"}