{"id":28956815,"url":"https://github.com/developmentseed/eoapi-cdk","last_synced_at":"2026-03-12T21:21:40.862Z","repository":{"id":61719443,"uuid":"545711464","full_name":"developmentseed/eoapi-cdk","owner":"developmentseed","description":"AWS CDK constructs for deploying eoAPI","archived":false,"fork":false,"pushed_at":"2026-03-04T17:22:54.000Z","size":2443,"stargazers_count":27,"open_issues_count":28,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-03-04T23:56:41.591Z","etag":null,"topics":["cdk","eoapi","iac"],"latest_commit_sha":null,"homepage":"https://developmentseed.org/eoapi-cdk","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/developmentseed.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-04T21:12:48.000Z","updated_at":"2026-03-04T17:27:13.000Z","dependencies_parsed_at":"2026-02-10T17:01:58.441Z","dependency_job_id":null,"html_url":"https://github.com/developmentseed/eoapi-cdk","commit_stats":null,"previous_names":["developmentseed/eoapi-cdk","developmentseed/cdk-pgstac"],"tags_count":109,"template":false,"template_full_name":null,"purl":"pkg:github/developmentseed/eoapi-cdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developmentseed%2Feoapi-cdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developmentseed%2Feoapi-cdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developmentseed%2Feoapi-cdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developmentseed%2Feoapi-cdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/developmentseed","download_url":"https://codeload.github.com/developmentseed/eoapi-cdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developmentseed%2Feoapi-cdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30444667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T20:23:30.529Z","status":"ssl_error","status_checked_at":"2026-03-12T20:23:14.027Z","response_time":114,"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":["cdk","eoapi","iac"],"created_at":"2025-06-23T21:40:55.656Z","updated_at":"2026-03-12T21:21:40.828Z","avatar_url":"https://github.com/developmentseed.png","language":"Python","readme":"# eoAPI CDK Constructs\r\n\r\neoapi-cdk is a package of [AWS CDK constructs](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/constructs-best-practices.html) designed to encapsulate eoAPI services and best practices as simple reusable components.\r\n\r\n\u003e [!IMPORTANT]\r\n\u003e\r\n\u003e **We would :heart: to hear from you!**\r\n\u003e Please [join the discussion](https://github.com/developmentseed/eoAPI/discussions/209) and let us know how you're using eoAPI! This helps us improve the project for you and others.\r\n\u003e If you prefer to remain anonymous, you can email us at eoapi@developmentseed.org, and we'll be happy to post a summary on your behalf.\r\n\r\n\r\nFor more background on the included services see [The Earth Observation API](https://eoapi.dev/)\r\n\r\n## Included constructs\r\nDetailed API docs for the constructs can be found [here](https://developmentseed.org/eoapi-cdk/).\r\n\r\n### [pgSTAC Database](https://developmentseed.org/eoapi-cdk/#pgstacdatabase-)\r\nAn [RDS](https://aws.amazon.com/rds/) instance with [pgSTAC](https://github.com/stac-utils/pgstac) installed and the Postgres parameters optimized for the selected instance type.\r\n\r\n### [STAC API](https://developmentseed.org/eoapi-cdk/#pgstacapilambda-)\r\nA STAC API implementation using [stac-fastapi](https://github.com/stac-utils/stac-fastapi) with a [pgSTAC backend](https://github.com/stac-utils/stac-fastapi-pgstac). Packaged as a complete runtime for deployment with API Gateway and Lambda.\r\n\r\n### [pgSTAC Titiler API](https://developmentseed.org/eoapi-cdk/#titilerpgstacapilambda-)\r\nA complete dynamic tiling API using [titiler-pgstac](https://github.com/stac-utils/titiler-pgstac) to create dynamic mosaics of assets based on [STAC Search queries](https://github.com/radiantearth/stac-api-spec/tree/master/item-search).  Packaged as a complete runtime for deployment with API Gateway and Lambda and fully integrated with the pgSTAC Database construct.\r\n\r\n### [STAC browser](https://developmentseed.org/eoapi-cdk/#stacbrowser-)\r\nA CDK construct to host a static [Radiant Earth STAC browser](https://github.com/radiantearth/stac-browser) on S3.\r\n\r\n### [OGC Features/Tiles API](https://developmentseed.org/eoapi-cdk/#titilerpgstacapilambda-)\r\nA complete OGC Features/Tiles API using [tipg](https://github.com/developmentseed/tipg). Packaged as a complete runtime for deployment with API Gateway and Lambda. By default the API will be connected to the Database's `public` schema.\r\n\r\n### [STAC Ingestor](https://developmentseed.org/eoapi-cdk/#stacingestor-)\r\nAn API for large scale STAC data ingestion and validation into a pgSTAC instance.\r\n\r\n![ingestor](/diagrams/ingestor_diagram.png)\r\n\r\nAuthentication for the STAC Ingestor API can be configured with JWTs authenticated by JWKS.  To learn more about securing FastAPI applications with this approach see [Securing FastAPI with JWKS (AWS Cognito, Auth0)](https://alukach.com/posts/fastapi-rs256-jwt/).\r\n\r\nA sample Cognito-based authentication system is available at [aws-asdi-auth](https://github.com/developmentseed/aws-asdi-auth).\r\n\r\n### [Bastion Host](https://developmentseed.org/eoapi-cdk/#bastionhost-)\r\nA bastion host is a secure gateway that provides access to resources in a private subnet.  In this case it provides the ability to make administrative connections to eoAPI's pgSTAC instance.\r\n\r\n![Alt text](/diagrams/bastion_diagram.png)\r\n\r\nFor more background on bastion hosts in AWS see [this article](https://dev.to/aws-builders/bastion-host-in-aws-vpc-2i63).\r\n\r\nAnd for configuration instructions for this construct see [the docs](https://developmentseed.org/eoapi-cdk/#bastionhost-).\r\n\r\n\r\n## Published Packages\r\n\r\n- https://pypi.org/project/eoapi-cdk/\r\n- https://www.npmjs.com/package/eoapi-cdk/\r\n\r\n## Release\r\n\r\nVersioning is automatically handled via [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) and [Semantic Release](https://semantic-release.gitbook.io/semantic-release/).\r\n\r\n_Warning_: If you rebase `main`, you must ensure that the commits referenced by tags point to commits that are within the `main` branch. If a commit references a commit that is no longer on the `main` branch, Semantic Release will fail to detect the correct version of the project. [More information](https://github.com/semantic-release/semantic-release/issues/1121#issuecomment-517945233).\r\n\r\n\r\n## Tests\r\n\r\n\r\nEach pull request to `main` is added to a [merge queue](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue#triggering-merge-group-checks-with-github-actions) so that a \"deployment test\" workflow can run before the merge actually happens. If the deployment fails, the merge is cancelled. Here is [the definition of this workflow](https://github.com/developmentseed/eoapi-cdk/blob/main/.github/workflows/deploy.yaml) and the [tests definition](https://github.com/developmentseed/eoapi-cdk/blob/main/tests).\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopmentseed%2Feoapi-cdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevelopmentseed%2Feoapi-cdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopmentseed%2Feoapi-cdk/lists"}