Skip to content

superluminar-io/apn-test-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWS Partner & Marketplace Explorer


⚠️ DISCLAIMER

This is a showcase/demonstration project created with Claude Code, not a production-ready application.

This tool was built to explore and demonstrate:

  • AWS Partner Central Selling API capabilities
  • AWS Marketplace Catalog API integration
  • TypeScript CLI development patterns
  • Colorful terminal output with CLI libraries

Not intended for production use. Use at your own risk. This is a learning/exploration tool, not enterprise software.


This TypeScript CLI tool explores both the AWS Partner Central Selling API and AWS Marketplace Catalog API with colorful, tabular output.

Features

🤝 APN Opportunities

  • List all Partner Central opportunities with automatic pagination
  • Color-coded lifecycle stages and review status
  • Human-readable dates and formatted currency
  • Streaming output (memory efficient)

🛒 Marketplace Catalog

  • Comprehensive explorer - Automatically iterate through all entity types
  • Detailed entity information - Calls DescribeEntity for each item to show full details
  • Summary view - See counts for each entity type at a glance
  • Support for all 11 entity types:
    • Products: AmiProduct, ContainerProduct, DataProduct, SaaSProduct
    • Business: Offer, Seller, ResaleAuthorization
    • Settings: ProcurementPolicy, Experience, Audience, BrandingSettings
  • Rich entity details:
    • Offers: State, pricing terms, target accounts, markup percentage
    • Products: Versions, descriptions, product metadata
    • Sellers: Business information
  • Paginated results with clean formatting

✨ User Experience

  • Beautiful tabular output with colors
  • Real-time streaming as data is fetched
  • Clear error messages with troubleshooting hints

Setup

  1. Install Dependencies:

    npm install
  2. AWS Credentials: Configure your AWS credentials:

    # Option 1: Environment variables
    export AWS_ACCESS_KEY_ID="your-access-key"
    export AWS_SECRET_ACCESS_KEY="your-secret-key"
    export AWS_SESSION_TOKEN="your-session-token" # if using temporary credentials
    
    # Option 2: AWS CLI configuration
    aws configure
  3. IAM Permissions: Ensure your AWS user/role has permissions for:

    For APN:

    • partnercentral-selling:ListOpportunities
    • partnercentral-selling:GetOpportunity

    For Marketplace:

    • aws-marketplace:ListEntities (required for listing)
    • aws-marketplace:DescribeEntity (required for detailed information)
  4. Access Requirements:

    • AWS Partner Network registration (for APN features)
    • AWS Marketplace seller registration (for Marketplace features)

Usage

List APN Opportunities

npm run start:apn

List Marketplace Entities

Explore All Entity Types (with summary):

npm run start:marketplace

This will iterate through ALL entity types and provide a summary table showing the count for each type.

Specific Entity Type:

npm run start:marketplace <EntityType>

Available Entity Types:

  • AmiProduct - AMI-based products
  • ContainerProduct - Container-based products
  • DataProduct - Data products
  • SaaSProduct - SaaS products
  • Offer - Marketplace offers
  • Seller - Seller information
  • ResaleAuthorization - Resale authorizations
  • ProcurementPolicy - Procurement policies
  • Experience - Marketplace experiences
  • Audience - Target audiences
  • BrandingSettings - Branding configurations

Examples:

# Explore all entity types (comprehensive view)
npm run start:marketplace

# List specific entity types
npm run start:marketplace SaaSProduct
npm run start:marketplace Offer
npm run start:marketplace ContainerProduct
npm run start:marketplace ResaleAuthorization

Show Help

npm start

Build TypeScript

npm run build

Configuration

The script uses us-east-1 by default. You can change the region in index.ts:

const apnClient = new PartnerCentralSellingClient({
  region: "your-preferred-region"
});

const marketplaceClient = new MarketplaceCatalogClient({
  region: "your-preferred-region"
});

Troubleshooting

AccessDeniedException

  • Check your AWS credentials are configured correctly
  • Verify IAM permissions for the specific API
  • Ensure you're registered with APN/Marketplace

No Results Found

  • APN: You may not have any opportunities in the catalog yet
  • Marketplace: Check if you have published entities of that type
    • Try different entity types to see what's available
    • Some entity types may be empty if not used in your account

Region Errors

  • Partner Central Selling API is available in specific regions
  • Marketplace Catalog API availability varies by region

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •