RedPlanetHQ/core

New Integration: AWS Marketplace

开放

#491 创建于 2026年2月24日

 (0 条评论) (0 个反应) (1 位负责人)TypeScript (184 个派生)auto 404
enhancementgood first issueintegrationnew-featurenew-integration

仓库指标

星标
 (1,930 个星标)
PR 合并指标
 (PR 指标待抓取)

描述

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

贡献者指南