RedPlanetHQ / RedPlanetHQ/core

New Integration: AWS Marketplace

Open
#491 0 comments 0 reactions 1 assignee View on GitHub

@harshithmullapudi is already working on this.

Since Mar 11, 2026.

enhancement good first issue integration new-feature new-integration
Dominant language
TypeScript
Stars
2k
Forks
194
Avg merge
12m
Merged PRs (30d)
2

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 surfaces
  • integrations/linear/ - Project management integration
  • integrations/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 entities
    • DescribeEntity - Get details of a specific entity
    • StartChangeSet - Initiate changes to entities
    • DescribeChangeSet - Get status of pending changes
  • Metering Service API (metering.marketplace)
    • BatchMeterUsage - Submit usage records for custom dimensions
    • MeterUsage - Submit a single usage record
    • ResolveCustomer - Resolve customer identifier from registration token
  • Entitlement Service API
    • GetEntitlements - Get entitlements for a product
  • Agreement API
    • SearchAgreements - Search for agreements
    • DescribeAgreement - Get agreement details
    • GetAgreementTerms - Get agreement terms
  • Discovery API (for buyers)
    • Product search and filtering
    • Category browsing

Events to Track

  1. Product Management - New product listings, updates, version changes
  2. Subscriptions - New subscriptions, cancellations, renewals
  3. Agreements - Agreement creation, modification, acceptance
  4. Metering & Usage - Usage data submissions, billing events
  5. Catalog Changes - Entity modifications, change set completions

Implementation Tasks

  • Set up basic integration structure following integrations/github/src/index.ts pattern
  • Implement AWS IAM credential authentication flow in account-create.ts
  • Create API utilities in utils.ts using AWS SDK for JavaScript
  • Implement sync logic in schedule.ts for 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-samples GitHub repository

Resources

Labels

enhancement, integration, new-feature

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.