Skip to content

MAAP-Project/maap-organization-buckets

Repository files navigation

maap-organization-buckets

Infrastructure for deploying organization-specific S3 buckets with AWS CDK.

Project Layout

maap-organization-buckets/
├── app.py
├── stacks/
│   └── buckets_stack.py
├── organizations/
│   └── organization_name/
│       ├── bucket_policies.py
│       └── lifecycle_rules.py
├── defaults/
│   ├── lifecycle_rules.py
│   └── bucket_policies.py
├── cdk.json
├── pyproject.toml
├── README.md
└── runtime_config.py

How It Works

  • app.py discovers org names from folders under organizations/ and creates one stack per org.
  • stacks/buckets_stack.py defines a single-org stack that deploys one bucket.
  • Bucket naming convention is nasa-maap-{org}. {org} is derived from the org folder name.
  • defaults/ stores baseline bucket policy and lifecycle rules.
  • organizations/ stores custom policy statements and lifecycle policies per org.

Define Organization Buckets

Each org has:

  • bucket_policies.py: optional org-specific policy statements.
  • lifecycle_rules.py: optional org-specific lifecycle rules.

Generated bucket names follow:

nasa-maap-<org-name>

Contributing

  1. Install dependencies:

    uv sync
  2. Add a new org:

    • Create organizations/<org-name>/
    • Optionally add bucket_policies.py and lifecycle_rules.py
  3. Verify changes:

    cdk synth
  4. Run pre-commit hooks:

    pre-commit run --all-files
  5. Commit and push your changes.

About

Infrastructure for Organization S3 Buckets

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages