Automated Environmental Impact Assessment - Code and Architecture
You must have the following installed on your development machine:
Then run the following commands from the root of the repo:
poetry install
poetry run cdk synth
If this runs without error, then you're all set!
cdk lslist all stacks in the appcdk synthemits the synthesized CloudFormation templatecdk deploydeploy this stack to your default AWS account/regioncdk diffcompare deployed stack with current statecdk docsopen CDK documentation
- Job: a unit of work to be completed, with schema-defined inputs and outputs according to its Job Type.
- Requester: A user that requests a specific Job on a set of provided inputs.
- Worker: A user that is equipped to complete a Job and furnish the accompanying outputs of the Job's completion.
- Auditer: A user that has read-only permissions to view Job artifacts for the purposes of verifying work done.
The main interface is a REST API. The general rationale of the system is to provide a platform for Requesters to submit Jobs, which can then be completed by Workers. The artifacts of these jobs are then stored in perpetuity, and can be accessed by the Requester or by Auditers. The API also manages permissions between the various actors in the system.
See the automatically-generated documentation for a more detailed description of the endpoints, as well as the specific analysis types supported.
Infrastructure is modeled using the AWS CDK in Python. Dependencies are managed
using poetry.
Job metadata is stored in an DynamoDB instance. Its schema is the following:
Job:
id: str
inputs: any
outputs: any
type: JobType
status: NOT_STARTED | IN_PROGRESS | SUCCEEDED | FAILED[ ] Implement permissioned API