Skip to content

A complete, production-ready repository for generating and deploying API proxies to Google Apigee X.

License

Notifications You must be signed in to change notification settings

syngenta-digital/apigeex-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Apigee X Proxy Deployment Repository

A complete, production-ready repository for generating and deploying API proxies to Google Apigee X. All files are now in the root directory (C:\apigeex-template).

Remote repository: https://github.com/syngenta-digital/apigeex-template.git

πŸš€ Quick Start

# 1. Clone this repository (or copy all files to your working directory)
git clone https://github.com/syngenta-digital/apigeex-template.git
cd apigeex-template

# 2. Configure your Apigee credentials
Copy-Item config\.env.example config\.env
# Edit config/.env with your credentials

# 3. Generate proxies
.\scripts\generate-all-proxies.ps1 -Environment dev

# 4. Deploy to Apigee X
.\scripts\deploy-all-proxies.ps1 -Environment dev

πŸ“‹ Prerequisites

  • PowerShell 5.1 or higher (Windows) or PowerShell Core 7+ (Mac/Linux)
  • Git 2.x or higher
  • Apigee X Account with deployment permissions
  • apigeecli (optional, for direct CLI deployment)

πŸ“š Documentation

πŸ—οΈ Repository Structure

C:\apigeex-template\
β”œβ”€β”€ .github\workflows\         # CI/CD pipelines
β”œβ”€β”€ config\                    # Configuration files
β”œβ”€β”€ templates\                 # Apigee proxy templates
β”œβ”€β”€ scripts\                   # PowerShell automation
β”œβ”€β”€ services\                  # Service definitions
β”œβ”€β”€ generated\                 # Generated proxies (gitignored)
β”œβ”€β”€ tests\                     # Test scripts
β”œβ”€β”€ docs\                      # Documentation
β”œβ”€β”€ README.md, QUICKSTART.md, DEPLOYMENT-GUIDE.md, CONFIGURATION-REFERENCE.md
└── .gitignore, LICENSE

Key Features:

  • Template-based proxy generation (consistent structure)
  • Multi-environment support (dev, qa, prod)
  • Bulk operations (generate/deploy multiple proxies)
  • Policy management (pre-configured security/operational policies)
  • CI/CD ready (GitHub Actions workflows)

πŸ”§ Features

βœ… Proxy Generation

  • Generate individual or bulk API proxies
  • Template-based configuration
  • Environment-specific customization
  • Automatic bundle creation

βœ… Deployment

  • Deploy to multiple environments (dev/qa/prod)
  • Automatic versioning
  • Rollback support
  • Deployment validation

βœ… Policy Management

  • Pre-configured security policies
  • OAuth 2.0 authentication
  • Rate limiting and quota management
  • Error handling and logging

βœ… Testing

  • Automated proxy testing
  • Health check endpoints
  • Integration test support

πŸ“¦ What's Included

  • Templates - Apigee X proxy templates and policies
  • Scripts - PowerShell automation for setup, generation, deployment, and testing
  • CI/CD - GitHub Actions workflows for dev/qa/prod
  • Documentation - Quickstart, deployment, configuration, and troubleshooting guides
  • Examples - Sample service definitions and test configs

🎯 Usage Examples

Generate and Deploy All Proxies

# Define your services in services/api-services.json
.\scripts\generate-all-proxies.ps1 -Environment dev
.\scripts\deploy-all-proxies.ps1 -Environment dev

Deploy to QA or Production

.\scripts\generate-all-proxies.ps1 -Environment qa
.\scripts\deploy-all-proxies.ps1 -Environment qa
.\scripts\generate-all-proxies.ps1 -Environment prod
.\scripts\deploy-all-proxies.ps1 -Environment prod

βš™οΈ Configuration

Environment Configuration

Edit config/environments/{env}.json:

{
  "environment": "dev",
  "organization": "your-org",
  "domain": "dev.api.example.com",
  "authentication": {
    "type": "oauth2",
    "tokenEndpoint": "https://oauth.example.com/token"
  },
  "rateLimit": {
    "quota": 1000,
    "interval": "1",
    "timeUnit": "hour"
  }
}

Apigee Credentials

Edit config/.env:

APIGEE_ORG=your-organization
APIGEE_ENV=dev
APIGEE_TOKEN=your-access-token
# OR use service account
GOOGLE_APPLICATION_CREDENTIALS=path/to/service-account.json

πŸ” Security Best Practices

  1. Never commit credentials - Always use .env files
  2. Use service accounts - Prefer service account authentication
  3. Rotate tokens regularly - Set up token rotation
  4. Review policies - Audit security policies before deployment
  5. Limit permissions - Use principle of least privilege

πŸ§ͺ Testing

# Test proxy configuration
.\scripts\test-proxy.ps1 -ProxyName "my-api" -Environment dev

# Run all tests
.\tests\proxy-tests.ps1

🚒 CI/CD Integration

Workflows are pre-configured in .github/workflows/:

  • deploy-dev.yml – Auto-deploy to dev on push to develop branch
  • deploy-qa.yml – Deploy to qa on push to release/* branch
  • deploy-prod.yml – Deploy to prod on push to main branch

Configure GitHub Secrets:

  • APIGEE_ORG
  • APIGEE_TOKEN or GCP_SERVICE_ACCOUNT_KEY

πŸ“– Learning Resources

🀝 Contributing

Contributions are welcome! Please read our contributing guidelines:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

  • Issues: Use your team's issue tracker or GitHub Issues
  • Discussions: Use your team's chat or GitHub Discussions
  • Email: support@example.com

πŸ—ΊοΈ Roadmap

  • Support for gRPC APIs
  • GraphQL proxy templates
  • Advanced traffic management policies
  • Real-time monitoring dashboard
  • Terraform integration
  • Multi-cloud deployment support

πŸ™ Acknowledgments

Built with ❀️ for the API community.



Version: 1.0.0 Last Updated: January 29, 2026

About

A complete, production-ready repository for generating and deploying API proxies to Google Apigee X.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published