-
Notifications
You must be signed in to change notification settings - Fork 132
New Integration: AWS Marketplace #491
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomersintegrationnew-featurenew-integration
Milestone
Description
Description
Add AWS Marketplace integration to sync product listings, subscriptions, agreements, metering data, and catalog operations into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/github/- Similar platform with multiple API surfacesintegrations/linear/- Project management integrationintegrations/slack/- For reference
Required Files Structure
integrations/aws-marketplace/
├── src/
│ ├── index.ts # Main entry, AWS auth spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # AWS Marketplace API utilities
│ ├── account-create.ts # AWS credentials setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
AWS Marketplace API Integration
Authentication Setup
- Use AWS IAM credentials (Access Key ID + Secret Access Key)
- Supports AWS Signature Version 4 signing
- Can also use IAM roles and temporary credentials via STS
- Region-specific endpoints
Key APIs and Endpoints
- Catalog API (
marketplace-catalog)ListEntities- List products, offers, and other entitiesDescribeEntity- Get details of a specific entityStartChangeSet- Initiate changes to entitiesDescribeChangeSet- Get status of pending changes
- Metering Service API (
metering.marketplace)BatchMeterUsage- Submit usage records for custom dimensionsMeterUsage- Submit a single usage recordResolveCustomer- Resolve customer identifier from registration token
- Entitlement Service API
GetEntitlements- Get entitlements for a product
- Agreement API
SearchAgreements- Search for agreementsDescribeAgreement- Get agreement detailsGetAgreementTerms- Get agreement terms
- Discovery API (for buyers)
- Product search and filtering
- Category browsing
Events to Track
- Product Management - New product listings, updates, version changes
- Subscriptions - New subscriptions, cancellations, renewals
- Agreements - Agreement creation, modification, acceptance
- Metering & Usage - Usage data submissions, billing events
- Catalog Changes - Entity modifications, change set completions
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement AWS IAM credential authentication flow in
account-create.ts - Create API utilities in
utils.tsusing AWS SDK for JavaScript - Implement sync logic in
schedule.tsfor catalog, subscriptions, and agreements - Convert marketplace events to CORE activity format
- Add error handling and rate limiting
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- Recommend using the AWS SDK for JavaScript v3 (
@aws-sdk/client-marketplace-catalog,@aws-sdk/client-marketplace-metering, etc.) - Multiple API surfaces exist (Catalog, Metering, Entitlements, Agreements) - each is a separate AWS service
- Change sets in the Catalog API are asynchronous - need to poll for completion
- API reference available as PDF at docs.aws.amazon.com
- Sample code available in the
aws-samples/aws-marketplace-api-samplesGitHub repository
Resources
- AWS Marketplace API Reference
- Catalog API Documentation
- AWS Marketplace Documentation
- API Samples on GitHub
- Boto3 MarketplaceCatalog Docs
Labels
enhancement, integration, new-feature
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomersintegrationnew-featurenew-integration
Type
Projects
Status
In progress