enhancementgood first issueintegrationnew-featurenew-integration
Métriques du dépôt
- Stars
- (1 930 étoiles)
- Métriques de merge PR
- (Métriques PR en attente)
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