-
Notifications
You must be signed in to change notification settings - Fork 143
feat: CDK re-write --DO NOT MERGE-- #328
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: staging
Are you sure you want to change the base?
Conversation
Added pre-commit hooks and other validation tools for this process
ASH Security Scan Report
Scan Metadata
SummaryScanner ResultsThe table below shows findings by scanner, with status based on severity thresholds and dependencies:
Top 10 HotspotsFiles with the highest number of security findings:
Detailed FindingsShow 20 of 43 actionable findingsFinding 1: CKV_DOCKER_3
Description: Code Snippet:
Finding 2: CKV_DOCKER_2
Description: Code Snippet:
Finding 3: CKV_DOCKER_3
Description: Code Snippet:
Finding 4: CKV_DOCKER_2
Description: Code Snippet:
Finding 5: CKV_DOCKER_3
Description: Code Snippet:
Finding 6: CKV_DOCKER_2
Description: Code Snippet:
Finding 7: CKV_DOCKER_3
Description: Code Snippet:
Finding 8: CKV_DOCKER_2
Description: Code Snippet:
Finding 9: CKV_DOCKER_2
Description: Code Snippet:
Finding 10: CKV_DOCKER_3
Description: Code Snippet:
Finding 11: CKV_DOCKER_7
Description: Code Snippet:
Finding 12: CKV_DOCKER_2
Description: Code Snippet:
Finding 13: CKV_DOCKER_3
Description: Code Snippet:
Finding 14: CKV2_GHA_1
Description: Finding 15: javascript.lang.security.audit.unsafe-formatstring.unsafe-formatstring
Description: Code Snippet:
Finding 16: dockerfile.security.missing-user.missing-user
Description: Code Snippet:
Finding 17: dockerfile.security.missing-user.missing-user
Description: Code Snippet:
Finding 18: go.lang.security.audit.net.use-tls.use-tls
Description: Code Snippet:
Finding 19: go.lang.security.audit.crypto.math_random.math-random-used
Description: Code Snippet:
Finding 20: yaml.docker-compose.security.no-new-privileges.no-new-privileges
Description: Code Snippet:
Report generated by Automated Security Helper (ASH) at 2025-08-22T14:49:19+00:00 |
added PipelineArn output so initial Codebuild can succeed
…to CodeBuildStep - Remove CONFIG_BUCKET_KEY environment variable and replace with dynamic S3 key path construction - Add WORKING_FOLDER environment variable for configurable working directory - Update CDKPipeline interface to use workingFolder instead of configBucketKey - Replace ShellStep with CodeBuildStep for synthesis with Node.js 22.x runtime - Add proper build environment configuration and CodeBuild defaults - Grant read permissions to config bucket for pipeline role
- Add Lambda execution role with S3 permissions for bucket cleanup - Add Lambda function to empty S3 bucket on stack deletion - Add custom resource to trigger bucket cleanup during CloudFormation deletion - Change S3 bucket versioning from Enabled to Suspended - Update .gitignore to exclude .ash/ash_output directory
Changed CDK pipeline stack name from 'CDKPipeline' to 'OneObservabilityWorkshopPipeline' in workshop.ts
…s character - Fixed S3 bucket policy resource reference in codebuild-deployment-template.yaml by correcting the order of bucket ARN references - Removed erroneous 'q' character from buildspec command in the same template file
- Rename bucket cleanup components to generic resource cleanup functionality - Extend cleanup to handle EventBridge rules and Lambda permissions - Migrate Lambda functions from Node.js 22.x to Python 3.13 runtime - Replace static EventBridge rule with dynamic rule creation during build - Update IAM policies for EventBridge and Lambda cleanup permissions - Fix S3 resource ARN reference format - Remove static resources in favor of dynamic creation approach
Reformatted CloudFormation template YAML syntax by converting quoted strings to unquoted format, changing description block style from folded to literal, expanding inline conditional statements to multi-line format, and adding explicit function name to Lambda resource to prevent circular dependency.
- Add docs/ folder with README, CHANGELOG, and detailed template documentation - Add architecture and deployment flow diagrams (PNG files) - Add template documentation with implementation details, retry handling, and troubleshooting - Add templates folder README with quick start guide - Add new simplified CodeBuild deployment template with intelligent retry handling - Enhance IAM permissions in original template with S3 bucket access policies and CFN-NAG suppressions
* fix: improve CloudFormation signaling in CDK deployment template - Add explicit SUCCESS signal when pipeline monitoring detects completion - Prevent duplicate signaling in final success handling - Enhance logging for better visibility of signaling events * fix: replace CloudFormation signal-resource with direct wait handle URL calls Modified CloudFormation wait condition signaling mechanism in CodeBuild deployment template. Replaced direct aws cloudformation signal-resource commands with curl-based HTTP PUT requests to wait condition handle URLs. Changes include: - Retrieving wait condition handle URL using describe-stack-resource command - Using curl to send SUCCESS/FAILURE signals with JSON payload containing status, reason, unique ID, and data fields - Applied to both success and failure signaling paths in the deployment process * feat: add core infrastructure stage with enhanced configuration - Enhanced environment configuration with comprehensive documentation and type definitions - Added core infrastructure stage with VPC creation and networking setup - Improved pipeline structure with stage sequencing and tagging support - Updated CDK-nag suppressions for better compliance handling - Added comprehensive JSDoc documentation across all modified files - Restructured application entry point with better configuration management * feat: add CloudTrail construct with CloudWatch integration - Added CloudTrail construct with CloudWatch logs integration and anomaly detection (92 lines) - Updated environment configuration with CloudTrail integration (8 lines) - Enhanced workshop configuration with CloudTrail support (2 lines) - Updated main index with CloudTrail exports (1 line) - Modified pipeline configuration for CloudTrail deployment (2 lines) - Extended core stage with CloudTrail trail setup (15 lines) --------- Co-authored-by: Rafael Pereyra <rapg@amazon.com>
- Add explicit SUCCESS signal when pipeline monitoring detects completion - Prevent duplicate signaling in final success handling - Enhance logging for better visibility of signaling events
* refactor: improve CloudTrail construct configuration - Remove unused imports (DataResourceType, ReadWriteType) - Add includeLambdaEvents property to interface - Remove unused cloudTrailRole variable assignment - Replace custom S3 event selector with logAllS3DataEvents() method - Add Lambda data events logging when includeLambdaEvents is enabled * fix: improve pipeline retry logic in codebuild template - Added RETRY_LOOP_COUNT and MAX_RETRY_LOOPS variables for better retry tracking - Enhanced retry mechanism to distinguish between execution retries and loop retries - Reset retry loop counter when new pipeline execution is detected - Updated error messages to reflect the new retry loop logic - Changed maximum retry logic to use retry loops instead of execution count * feat: enhance logging capabilities for CloudTrail and VPC networking - Add unique resource naming for CloudTrail log groups to prevent conflicts - Implement configurable VPC Flow Logs with comprehensive log format - Add DNS Query Resolver Logs functionality for VPC - Enable optional log retention configuration across constructs - Update Core stack to enable logging features by default * fix: correct core stage tags structure in CDK pipeline Modified the core stage properties handling to properly wrap tags in a tags property instead of spreading them directly into the properties object. This ensures proper tag structure for the CoreStage constructor. * feat: add local development setup and enhance contributing guidelines - Added Apache-2.0 license header to CONTRIBUTING.md - Enhanced CONTRIBUTING.md with comprehensive documentation for security scanning, pre-commit hooks, and local development setup - Added new local CDK application entry point (src/cdk/bin/local.ts) for faster development workflow --------- Co-authored-by: Rafael Pereyra <rapg@amazon.com>
…nt tooling - Updated CONTRIBUTING.md with additional content (22 lines added) - Added new environment sample file (.env.sample) with 9 lines - Enhanced environment.ts configuration with 45 new lines - Extended local.ts deployment script with additional functionality - Added CloudTrail construct enhancements (12 lines) - Minor updates to network construct (2 lines) - Updated pipeline configuration (5 lines modified) - Created new applications stage with comprehensive setup (150 lines) - Added deployment check script with validation logic (66 lines)
* feat: integrate applications pipeline stage with CDK pipeline - Add APPLICATION_LIST import and configuration to workshop.ts - Enhance CDKPipeline with applicationList property and ApplicationsPipelineStage - Extract bucket key configuration to variable for reusability - Add comprehensive documentation and type definitions to applications.ts - Integrate Applications stage into main pipeline with proper tagging and source configuration * refactor: organize pipeline stages into Core wave Modified pipeline.ts to organize deployment stages into a wave structure. Added a 'Core' wave and moved both the Core stage and Applications stage into this wave for better deployment organization and sequencing. * docs: standardize JSDoc parameter names and configure TypeDoc - Update constructor parameter documentation from 'props' to 'properties' in CloudTrail and Network constructs - Add dedicated TypeDoc configuration for CDK documentation generation - Update root TypeDoc configuration to reference CDK entry point and README * feat: add RemovalPolicy.DESTROY to CloudTrail LogGroup Modified CloudTrail construct to add RemovalPolicy.DESTROY to the CloudWatch Logs LogGroup and imported RemovalPolicy from aws-cdk-lib. --------- Co-authored-by: Rafael Pereyra <rapg@amazon.com>
* From Aurora serverless to Instance (#327) * Switch from serverless v2 to instances * Bump aurora version * Ignore editor settings * Add action for CDK tests * Export reader endpoint * Update tests * Remove unit, merge lint and synth * Skip docker builds on unrelated changes * Update petlist to use aurora reader endpoint * Bump versions * Bump CDK version * feat: add comprehensive infrastructure constructs and deployment stages - Modified environment configuration files (environment.ts, local.ts, workshop.ts) to add new deployment configurations - Added new construct files for assets, database, DynamoDB, and queue infrastructure components - Enhanced network construct with additional networking capabilities - Updated pipeline configuration with new stages and deployment logic - Added new compute stage for application deployment - Renamed applications.ts to containers.ts with updated container deployment logic - Added new storage stage for data persistence infrastructure - Total: 643 additions, 24 deletions across 12 files * feat: upgrade container images and database version - Update all Dockerfiles to use AWS ECR Public Gallery base images - Upgrade Aurora PostgreSQL from v13.20 to v16.8 - Update pre-commit hook versions (mypy v1.17.1, cfn-python-lint v1.38.2, ASH v3.0.0) - Enhance database construct with configurable instance types and CDK NAG suppressions - Add utility functions for CDK infrastructure - Improve deployment check script with enhanced validation * build: update Python base image to ECR public registry Modified PetAdoptions/petadoptionshistory-py/Dockerfile to update the base Python image from python:3.8 to public.ecr.aws/docker/library/python:3.8.20-bullseye. * feat: add compute infrastructure with ECS and EKS support - Add ECS cluster construct with auto scaling group and security group - Add EKS cluster construct with managed node groups and add-ons - Create microservice base class and ECS service implementation - Add pay-for-adoption microservice with database integration - Enhance network construct to disable public IP mapping - Update queue construct with CloudFormation exports for resource sharing - Add compute stage to pipeline with ECS and EKS deployment - Include kubectl v33 layer dependency for EKS operations - Add applications stage structure for microservices deployment * feat: add serverless microservices and enhance CDK infrastructure - Add new Lambda construct for serverless functions - Create serverless status-updater construct - Add new microservices: list-adoptions, pet-search, and traffic-generator - Enhance pay-for-adoption microservice with additional features - Update database and DynamoDB constructs with expanded functionality - Refactor ECS service construct with improved configuration - Enhance microservice construct with expanded capabilities - Significantly expand applications stage with new service integrations - Update environment and local configuration with enhanced setup - Add utility functions for improved helper capabilities * feat: add VPC endpoints and enhance API Gateway security - Add VPC endpoints construct for API Gateway, DynamoDB, and Lambda services - Configure status updater API Gateway as private endpoint with VPC endpoint policy - Add request authorizer and access logging to API Gateway - Include CDK NAG suppressions for security compliance - Export VPC endpoint IDs for cross-stack references - Integrate VPC endpoints into network construct and applications stack * feat: add EKS support and petsite microservice - Added new constants file and EKS deployment construct for better configuration management - Created new petsite microservice with Kubernetes deployment manifest - Enhanced EKS construct with additional deployment capabilities - Updated microservice construct to support both ECS and EKS deployments - Modified application stage to integrate new petsite service - Updated development configuration with new VS Code launch settings - Refined utility functions and updated project dependencies - Updated pre-commit configuration and prettier ignore rules * docs: add comprehensive architecture documentation and diagrams - Add detailed architecture.md covering system overview, deployment stages, microservices architecture, and observability components - Add 16 architectural diagrams illustrating complete system architecture, deployment stages, microservices structure, and observability setup - Update CDK constructs and microservices with minor code improvements and configuration adjustments * feat: enhance observability demo with service discovery and configuration management - Add CloudMap namespace support for ECS service discovery - Implement SSM parameter outputs for assets, database, and DynamoDB - Enhance ECS service construct to support load balancer-less services - Add VPC endpoints for ServiceDiscovery with improved networking - Update microservice configurations with service discovery integration - Improve database construct with separate reader/writer endpoint outputs - Add EKS kubectl lambda role export for enhanced cluster management - Update Kubernetes manifests and application stage configurations * feat: add microservices stage and standardize resource tagging - Add standardized tagging to all microservice classes with app:owner, app:project, app:name, app:computType, and app:hostType tags - Add MicroservicesStage to CDK pipeline with proper stage sequencing and tagging - Move QueueResources from StorageStack to CoreStack for better architectural organization - Update pipeline interface to include microservicesProperties parameter - Add missing Utilities import in traffic-generator.ts * feat: add microservices configuration to CDK pipeline Added microservices configuration to CDK pipeline by importing MICROSERVICES_PLACEMENT and LAMBDA_FUNCTIONS from environment and passing them as microservicesProperties to the CDKPipeline constructor. * feat: update CDK infrastructure and dependencies - Updated CDK TypeScript files across bin, lib/constructs, lib/stages, and lib/utils directories - Modified package.json and package-lock.json with dependency updates - Total: 8 files changed, 252 insertions, 272 deletions * refactor: simplify deployment template architecture - Remove EventBridge-based pipeline monitoring system - Replace Lambda functions with direct CodePipeline status polling - Eliminate complex event-driven architecture for simpler inline monitoring - Remove codebuild-deployment-template-simplified.yaml file - Update documentation and container configurations - Streamline deployment process with reduced complexity * fix: improve logging permissions and autoscaling group tagging - Update pipeline log ARN to use wildcard pattern for broader log group access - Simplify CloudWatch logs policy resources configuration - Add PropagateAtLaunch support for AutoScaling Group tags - Improve code formatting in utilities * docs: add comprehensive JSDoc documentation to CDK infrastructure - Added module-level documentation with package descriptions for all 6 files - Enhanced interface and class documentation with detailed parameter descriptions - Documented enums, constants, and configuration objects throughout - Added inline comments for improved code readability - Improved constructor and method documentation with parameter and return types * docs: restructure documentation and add automated generation - Added GitHub Actions workflow for documentation generation - Updated .gitignore to exclude documentation build artifacts - Updated pre-commit configuration - Moved CHANGELOG.md from docs/ to root directory - Removed diagram documentation and PNG files from docs/diagrams/ - Added new modules documentation file - Enhanced list-adoptions microservice with improved error handling - Updated containers stage with additional configuration - Enhanced TypeDoc configuration files with better documentation settings --------- Co-authored-by: Rodrigue Koffi <bonclay7@users.noreply.github.com> Co-authored-by: Rafael Pereyra <rapg@amazon.com>
Added instrumentation.opentelemetry.io/inject-dotnet annotation to enable automatic .NET instrumentation injection for the petsite deployment.
- Update all path references from PetAdoptions/cdk/pet_stack/ to src/cdk/ - Update cache paths and working directories to match new structure - Add environment file setup step to copy .env.example to .env before CDK synth - Maintain all existing workflow functionality with updated paths
- Extended build-test.yml and cdk-test.yml workflows to trigger on both main and staging branches - Refactored docs.yml workflow to separate build and deploy jobs, with deployment only occurring on main branch pushes - Added conditional logic to prevent staging branch changes from deploying to GitHub Pages
Move environment file copy operation from CDK synth step to separate earlier step for better workflow organization
Update appsettings
* fix: explicitely passed account and region to all stacks * fix: typo on account number variable * fix: added missing permissions for Synth stage * fix: added missing permissions for Synth stage (2) * fix: added missing permissions for Synth stage (3)
* Update gitignore to include missing css * Add footer thanking Amazon Q Developer * Added footer and made font consistent to Roboto
* Update gitignore to include missing css * Add footer thanking Amazon Q Developer * Added footer and made font consistent to Roboto * Add Clear cart functionality
Petfood improvements
impr: Reduce petfood ecr size
fix: petfood docker missing dependencies
fix(petfood): Regressions in petfood definition
* Fix cdk stack * Restore running tests * Temporary remove paths filters * Update paths * Update paths * Drop dead code * Provide env for cdk tests
* Add missing bootstrap files * Fix food image url
* Fix pettype filtering * fix tests * Drop unused code * Improve image path handling with CDN/S3 config * Update tests
Added pre-commit hooks and other validation tools for this process
Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.