Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
8853dfb
chore: add Q's migration plan
svidgen Aug 20, 2025
3d93089
Merge branch 'release-api-plugin-stable' into wirej/gen1-migrate-aws-sdk
svidgen Sep 12, 2025
40d746f
chore: q self-instructions
svidgen Sep 12, 2025
a106b62
chore: more q context
svidgen Sep 12, 2025
29cdf93
chore: q discovery
svidgen Sep 12, 2025
3de734d
feat: migrate amplify-category-api SSM client to AWS SDK v3
svidgen Sep 12, 2025
5c35def
chore: q todo update
svidgen Sep 12, 2025
102cbcb
chore: teaching q to run e2e tests and monitor status ...
svidgen Sep 12, 2025
6868920
chore: fixes to q instructions for failed build retries, cleanse acco…
svidgen Sep 15, 2025
f80900b
fix(amplify-category-api-e2e-tests): update AppSync error message format
svidgen Sep 16, 2025
a97e7ef
chore: q updated todos
svidgen Sep 16, 2025
9ca2eb6
Revert "feat: migrate amplify-category-api SSM client to AWS SDK v3"
svidgen Sep 17, 2025
370fd9f
chore: migrate DynamoDB utilities from AWS SDK v2 to v3
svidgen Sep 17, 2025
577b216
chore: add reminder to use say command for status updates
svidgen Sep 17, 2025
aca6201
chore: fix import syntax and add e2e workflow documentation
svidgen Sep 17, 2025
7b090c8
fix: update e2e utils to use proper SDK v3 DynamoDB client
svidgen Sep 18, 2025
08efa03
chore: fix whitespace formatting in e2e utils
svidgen Sep 18, 2025
7bff046
chore: fixing some Q garbage
svidgen Sep 18, 2025
00ccfc0
feat: enhance e2e test manager with list, failed, and logs commands
svidgen Sep 18, 2025
6c5c7de
feat: add branch information to e2e-list command
svidgen Sep 18, 2025
9d0c5e8
feat: increase default e2e-list limit to 20 batches
svidgen Sep 18, 2025
7d19d8f
feat: add e2e/canary filtering to e2e-list command
svidgen Sep 18, 2025
0d37b50
chore: fix test error message handling
svidgen Sep 22, 2025
9bbe371
Merge remote-tracking branch 'origin/release-api-plugin-stable' into …
svidgen Sep 23, 2025
daa9fc3
chore: updated dependency_licenses.txt
svidgen Sep 23, 2025
3f9c981
chore: update TODO status after successful parent branch merge and te…
svidgen Sep 23, 2025
32e6a29
refactor: use aws-sdk-client-mock-jest matchers for cleaner test asse…
svidgen Sep 24, 2025
80a4b7a
feat: migrate dynamoEmulator getClient to AWS SDK v3
svidgen Sep 24, 2025
4460d65
Revert "feat: migrate dynamoEmulator getClient to AWS SDK v3"
svidgen Sep 24, 2025
582c84d
feat: remove AWS SDK v2 dependencies from amplify-util-mock
svidgen Sep 24, 2025
dbc976b
fix: update dependency licenses and yarn.lock after AWS SDK v2 removal
svidgen Sep 24, 2025
5691981
chore: fix q docs to use ada --once
svidgen Sep 24, 2025
9a77495
chore: prettier
svidgen Sep 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .q/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Q Workspace
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to keep this .q folder in the PR?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good question. I'm of two minds on this. I'll let this question simmer while I dig more on some of the other oddities.


This directory contains Amazon Q's working files for task management, design documentation, and context preservation.

## Structure

### `/tasks/`

Individual task files with detailed requirements, progress, and implementation notes.

- Format: `TASK-001-brief-description.md`
- Contains: Requirements, approach, progress, blockers

### `/designs/`

Design documents for complex features or architectural decisions.

- Format: `DESIGN-feature-name.md`
- Contains: Problem statement, options analysis, diagrams, decisions
- Uses Mermaid diagrams for GitHub compatibility

### `/context/`

Context snapshots for managing session boundaries.

- Format: `CONTEXT-YYYY-MM-DD-session-name.md`
- Contains: Current state, key decisions, handoff notes

## Usage Patterns

### Before Complex Tasks

1. Create design document in `/designs/`
2. Review with user before implementation
3. Break into discrete tasks in `/tasks/`

### Context Management

1. Save context snapshots before limits
2. Reference previous contexts when resuming
3. Update task files with progress

### Task Lifecycle

1. Create task file with requirements
2. Update with progress and decisions
3. Mark complete and archive learnings
198 changes: 198 additions & 0 deletions .q/context/aws-sdk-inventory.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
{
"analysis_date": "2025-09-12",
"packages": [
{
"name": "amplify-util-mock",
"path": "packages/amplify-util-mock",
"migration_status": "v2_only",
"priority": "high",
"dependencies": {
"aws-sdk": "^2.1113.0"
},
"devDependencies": {
"aws-sdk": "^2.1113.0",
"aws-sdk-mock": "^5.6.2"
},
"services_used": ["dynamodb"],
"usage_patterns": [
"DynamoDB client instantiation",
"Promise-based API (.promise())",
"Table operations (describeTable, listTables)",
"Test utilities and mocking"
],
"files_with_usage": [
"src/utils/dynamo-db/helpers.ts",
"src/utils/dynamo-db/utils.ts",
"src/utils/dynamo-db/index.ts",
"src/__tests__/utils/dynamo-db/*.test.ts",
"src/__e2e__/subscriptions-with-auth.e2e.test.ts"
],
"migration_complexity": "high",
"notes": "Heavy DynamoDB usage, extensive test utilities"
},
{
"name": "amplify-category-api",
"path": "packages/amplify-category-api",
"migration_status": "mixed",
"priority": "high",
"dependencies": {
"aws-sdk": "^2.1113.0",
"@aws-sdk/client-ec2": "3.624.0",
"@aws-sdk/client-iam": "3.624.0",
"@aws-sdk/client-lambda": "3.624.0"
},
"services_used": ["ec2", "iam", "lambda", "rds", "dynamodb"],
"usage_patterns": ["Mixed v2/v3 usage", "VPC utilities already v3", "Container templates mixed", "Lambda functions mixed"],
"files_with_usage": [
"src/provider-utils/vpc-utils.ts (v3)",
"src/provider-utils/awscloudformation/utils/rds-resources/ssmClient.ts",
"resources/awscloudformation/lambdas/predeploy.js (v3)",
"resources/awscloudformation/lambdas/pipeline.js (v3)",
"resources/awscloudformation/container-templates/*/DynamoDBActions.js (v3)"
],
"migration_complexity": "medium",
"notes": "Partially migrated, need to complete remaining v2 usage"
},
{
"name": "amplify-e2e-core",
"path": "packages/amplify-e2e-core",
"migration_status": "v3_complete",
"priority": "none",
"dependencies": {
"@aws-sdk/client-ec2": "3.624.0",
"@aws-sdk/client-kms": "3.624.0",
"@aws-sdk/client-rds": "3.624.0",
"@aws-sdk/client-rds-data": "3.624.0",
"@aws-sdk/client-secrets-manager": "3.624.0",
"@aws-sdk/client-ssm": "3.624.0",
"@aws-sdk/client-sts": "3.624.0",
"@aws-sdk/credential-providers": "3.624.0"
},
"services_used": ["ec2", "kms", "rds", "secrets-manager", "ssm", "sts"],
"usage_patterns": ["Modern v3 patterns", "Command-based API", "Proper credential providers"],
"migration_complexity": "none",
"notes": "Already fully migrated to v3 - good reference implementation"
},
{
"name": "amplify-dynamodb-simulator",
"path": "packages/amplify-dynamodb-simulator",
"migration_status": "v2_only",
"priority": "medium",
"dependencies": {
"aws-sdk": "^2.1113.0"
},
"services_used": ["dynamodb"],
"usage_patterns": ["DynamoDB simulator integration", "Local development utilities"],
"migration_complexity": "medium",
"notes": "Simulator package, may need coordination with simulator updates"
},
{
"name": "amplify-e2e-tests",
"path": "packages/amplify-e2e-tests",
"migration_status": "v2_only",
"priority": "medium",
"dependencies": {
"aws-sdk": "^2.1113.0"
},
"services_used": ["various"],
"usage_patterns": ["E2E test utilities", "Integration testing"],
"migration_complexity": "medium",
"notes": "Test package, depends on amplify-e2e-core which is already v3"
},
{
"name": "amplify-graphql-model-transformer",
"path": "packages/amplify-graphql-model-transformer",
"migration_status": "v3_complete",
"priority": "none",
"lambda_functions": ["rds-patching-lambda", "publish-notification-lambda", "rds-lambda"],
"services_used": ["lambda", "sns", "ssm", "secrets-manager"],
"usage_patterns": ["Lambda function dependencies", "Already using v3 SDK"],
"migration_complexity": "none",
"notes": "Lambda functions already use v3 SDK"
},
{
"name": "graphql-relational-schema-transformer",
"path": "packages/graphql-relational-schema-transformer",
"migration_status": "unknown",
"priority": "low",
"migration_complexity": "low",
"notes": "Need to investigate usage patterns"
}
],
"container_templates": [
{
"name": "dockerfile-rest-express",
"path": "packages/amplify-category-api/resources/awscloudformation/container-templates/dockerfile-rest-express",
"migration_status": "v3_complete",
"services_used": ["dynamodb"],
"notes": "Already uses @aws-sdk/lib-dynamodb and @aws-sdk/client-dynamodb"
},
{
"name": "graphql-express",
"path": "packages/amplify-category-api/resources/awscloudformation/container-templates/graphql-express",
"migration_status": "v3_complete",
"services_used": ["dynamodb"],
"notes": "Already uses @aws-sdk/lib-dynamodb"
},
{
"name": "dockercompose-rest-express",
"path": "packages/amplify-category-api/resources/awscloudformation/container-templates/dockercompose-rest-express/express",
"migration_status": "v3_complete",
"services_used": ["dynamodb"],
"notes": "Already uses @aws-sdk/lib-dynamodb"
}
],
"lambda_functions": [
{
"name": "predeploy.js",
"path": "packages/amplify-category-api/resources/awscloudformation/lambdas/predeploy.js",
"migration_status": "v3_complete",
"services_used": ["codepipeline", "ecs"],
"notes": "Already uses @aws-sdk/client-* packages"
},
{
"name": "pipeline.js",
"path": "packages/amplify-category-api/resources/awscloudformation/lambdas/pipeline.js",
"migration_status": "v3_complete",
"services_used": ["codepipeline", "ecs"],
"notes": "Already uses @aws-sdk/client-* packages"
}
],
"summary": {
"total_packages": 7,
"v2_only": 3,
"v3_complete": 3,
"mixed": 1,
"high_priority": 2,
"medium_priority": 3,
"low_priority": 1,
"main_services": {
"dynamodb": {
"v2_usage": 3,
"v3_usage": 4,
"complexity": "high"
},
"ec2": {
"v2_usage": 0,
"v3_usage": 2,
"complexity": "low"
},
"lambda": {
"v2_usage": 0,
"v3_usage": 3,
"complexity": "low"
},
"rds": {
"v2_usage": 0,
"v3_usage": 2,
"complexity": "low"
}
}
},
"migration_recommendations": {
"phase_1": ["Complete amplify-category-api mixed usage", "Investigate remaining v2 usage in RDS resources"],
"phase_2": ["Migrate amplify-util-mock (highest complexity)", "Update DynamoDB utilities and test patterns"],
"phase_3": ["Migrate amplify-dynamodb-simulator", "Migrate amplify-e2e-tests", "Investigate graphql-relational-schema-transformer"],
"phase_4": ["Remove aws-sdk v2 from root package.json resolutions", "Final cleanup and validation"]
}
}
Loading
Loading