eoapi-cdk


Nameeoapi-cdk JSON
Version 9.2.1 PyPI version JSON
download
home_pagehttps://github.com/developmentseed/eoapi-cdk.git
SummaryA set of constructs deploying pgSTAC with CDK
upload_time2025-07-29 12:54:50
maintainerNone
docs_urlNone
authorAnthony Lukach<anthony@developmentseed.org>
requires_python~=3.8
licenseISC
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # eoAPI CDK Constructs

eoapi-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.

For more background on the included services see [The Earth Observation API](https://eoapi.dev/)

## Included constructs

Detailed API docs for the constructs can be found [here](https://developmentseed.org/eoapi-cdk/).

### [pgSTAC Database](https://developmentseed.org/eoapi-cdk/#pgstacdatabase-)

An [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.

### [STAC API](https://developmentseed.org/eoapi-cdk/#pgstacapilambda-)

A 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.

### [pgSTAC Titiler API](https://developmentseed.org/eoapi-cdk/#titilerpgstacapilambda-)

A 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.

### [STAC browser](https://developmentseed.org/eoapi-cdk/#stacbrowser-)

A CDK construct to host a static [Radiant Earth STAC browser](https://github.com/radiantearth/stac-browser) on S3.

### [OGC Features/Tiles API](https://developmentseed.org/eoapi-cdk/#titilerpgstacapilambda-)

A 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.

### [STAC Ingestor](https://developmentseed.org/eoapi-cdk/#stacingestor-)

An API for large scale STAC data ingestion and validation into a pgSTAC instance.

![ingestor](/diagrams/ingestor_diagram.png)

Authentication 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/).

A sample Cognito-based authentication system is available at [aws-asdi-auth](https://github.com/developmentseed/aws-asdi-auth).

### [Bastion Host](https://developmentseed.org/eoapi-cdk/#bastionhost-)

A 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.

![Alt text](/diagrams/bastion_diagram.png)

For more background on bastion hosts in AWS see [this article](https://dev.to/aws-builders/bastion-host-in-aws-vpc-2i63).

And for configuration instructions for this construct see [the docs](https://developmentseed.org/eoapi-cdk/#bastionhost-).

## Published Packages

* https://pypi.org/project/eoapi-cdk/
* https://www.npmjs.com/package/eoapi-cdk/

## Release

Versioning is automatically handled via [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) and [Semantic Release](https://semantic-release.gitbook.io/semantic-release/).

*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).

## Tests

Each 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).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/developmentseed/eoapi-cdk.git",
    "name": "eoapi-cdk",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "~=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Anthony Lukach<anthony@developmentseed.org>",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/7e/81/1aeabd640cc873bd461fdc95a2bb0b006d22f183d34d9dac13555b1382b4/eoapi_cdk-9.2.1.tar.gz",
    "platform": null,
    "description": "# eoAPI CDK Constructs\n\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.\n\nFor more background on the included services see [The Earth Observation API](https://eoapi.dev/)\n\n## Included constructs\n\nDetailed API docs for the constructs can be found [here](https://developmentseed.org/eoapi-cdk/).\n\n### [pgSTAC Database](https://developmentseed.org/eoapi-cdk/#pgstacdatabase-)\n\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.\n\n### [STAC API](https://developmentseed.org/eoapi-cdk/#pgstacapilambda-)\n\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.\n\n### [pgSTAC Titiler API](https://developmentseed.org/eoapi-cdk/#titilerpgstacapilambda-)\n\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.\n\n### [STAC browser](https://developmentseed.org/eoapi-cdk/#stacbrowser-)\n\nA CDK construct to host a static [Radiant Earth STAC browser](https://github.com/radiantearth/stac-browser) on S3.\n\n### [OGC Features/Tiles API](https://developmentseed.org/eoapi-cdk/#titilerpgstacapilambda-)\n\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.\n\n### [STAC Ingestor](https://developmentseed.org/eoapi-cdk/#stacingestor-)\n\nAn API for large scale STAC data ingestion and validation into a pgSTAC instance.\n\n![ingestor](/diagrams/ingestor_diagram.png)\n\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/).\n\nA sample Cognito-based authentication system is available at [aws-asdi-auth](https://github.com/developmentseed/aws-asdi-auth).\n\n### [Bastion Host](https://developmentseed.org/eoapi-cdk/#bastionhost-)\n\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.\n\n![Alt text](/diagrams/bastion_diagram.png)\n\nFor more background on bastion hosts in AWS see [this article](https://dev.to/aws-builders/bastion-host-in-aws-vpc-2i63).\n\nAnd for configuration instructions for this construct see [the docs](https://developmentseed.org/eoapi-cdk/#bastionhost-).\n\n## Published Packages\n\n* https://pypi.org/project/eoapi-cdk/\n* https://www.npmjs.com/package/eoapi-cdk/\n\n## Release\n\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/).\n\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).\n\n## Tests\n\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).\n",
    "bugtrack_url": null,
    "license": "ISC",
    "summary": "A set of constructs deploying pgSTAC with CDK",
    "version": "9.2.1",
    "project_urls": {
        "Homepage": "https://github.com/developmentseed/eoapi-cdk.git",
        "Source": "https://github.com/developmentseed/eoapi-cdk.git"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d90ce08bd144a37c7f5ad3bf74b13c725c692764c21866aa14659aed3042cdb7",
                "md5": "41b48063e95118ae3d7a435818c374d0",
                "sha256": "35ff165ce0926557783ecf17ce48b8baef6b242b7db613371820aa489dfdde72"
            },
            "downloads": -1,
            "filename": "eoapi_cdk-9.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "41b48063e95118ae3d7a435818c374d0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "~=3.8",
            "size": 236742,
            "upload_time": "2025-07-29T12:54:47",
            "upload_time_iso_8601": "2025-07-29T12:54:47.863941Z",
            "url": "https://files.pythonhosted.org/packages/d9/0c/e08bd144a37c7f5ad3bf74b13c725c692764c21866aa14659aed3042cdb7/eoapi_cdk-9.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7e811aeabd640cc873bd461fdc95a2bb0b006d22f183d34d9dac13555b1382b4",
                "md5": "bacd5a40fb75cd81cb32aa2664692a29",
                "sha256": "b9e776459e5e1670c8a3c3a436f5d4f33fc5dda43dde33758fc92562be3727ba"
            },
            "downloads": -1,
            "filename": "eoapi_cdk-9.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "bacd5a40fb75cd81cb32aa2664692a29",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "~=3.8",
            "size": 238573,
            "upload_time": "2025-07-29T12:54:50",
            "upload_time_iso_8601": "2025-07-29T12:54:50.351432Z",
            "url": "https://files.pythonhosted.org/packages/7e/81/1aeabd640cc873bd461fdc95a2bb0b006d22f183d34d9dac13555b1382b4/eoapi_cdk-9.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-29 12:54:50",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "developmentseed",
    "github_project": "eoapi-cdk",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "eoapi-cdk"
}
        
Elapsed time: 0.41297s