Skip to content

feat: add storage extension template - #28

Merged
lizradway merged 3 commits into
strands-agents:mainfrom
lizradway:dev/add-storage-template
Jul 23, 2026
Merged

lizradway merged 3 commits into
strands-agents:mainfrom
lizradway:dev/add-storage-template

Conversation

@lizradway

Copy link
Copy Markdown
Member

Issue #, if available:

N/A

Description of changes:

Adds a Storage component type to both the Python and TypeScript extension templates.

The Strands SDK exposes a Storage interface (a minimal four-method contract: write, read, delete, list) used by session managers, context offloaders, and other constructs that need durable key-value persistence. Community developers can now scaffold a custom storage backend (e.g. DynamoDB, Redis, GCS) from the template, alongside the existing component types.

Changes:

  • Python: storage.py skeleton, test, __init__ export, and setup_template.py COMPONENTS entry
  • TypeScript: storage.ts skeleton, test, index.ts export, and setup-template.ts COMPONENTS entry
  • Bumped TS devDependency to ^1.10.0 (first version exporting the Storage type)
  • Updated root README component table (7 → 8 extension points)

Testing:

  • TypeScript: npm run type-check passes, all 11 tests pass (including new storage.test.ts)
  • Python: test_storage.py verifies construction and @runtime_checkable protocol satisfaction

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Add a Storage skeleton to both Python and TypeScript templates. The
Storage interface persists raw bytes under string keys and is used by
session managers, context offloaders, and other SDK constructs.

- Python: storage.py skeleton + test + __init__ export + setup entry
- TypeScript: storage.ts skeleton + test + index export + setup entry
- Bump TS devDependency to ^1.10.0 (Storage type first available)
- Update README component table
Leave the config interface empty with a TODO so users add their own
backend-specific fields without inheriting an opinionated placeholder.
The TemplateStorageConfig interface is intentionally empty as a
placeholder for users to fill in. Disable the lint rule inline.
@lizradway
lizradway enabled auto-merge (squash) July 22, 2026 20:26
@opieter-aws

Copy link
Copy Markdown
Contributor

Do we need to mention anything about optional search() or query()?

@lizradway
lizradway merged commit 22de425 into strands-agents:main Jul 23, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants