Trading Card API Changelog
Stay up-to-date with the latest changes, improvements, and new features in the Trading Card API itself.
API vs Documentation Changes
This page shows changes to the Trading Card API service. For changes to this documentation site, see the Documentation Changelog.
Latest Releases
All notable changes to the Trading Card API are documented here. The API follows Semantic Versioning and maintains a Keep a Changelog format.
🚀 Recent Updates
📦 [0.7.5] - November 22, 2025
Latest Release
This is the current production version of the Trading Card API.
Changed
- Define OAuth scopes in AuthServiceProvider (Issue #889)
🔗 Release Information
📦 [0.7.4] - November 17, 2025
Changed
- Updated OpenAPI specification to document missing relationships (#1089)
- Added
imagesrelationship to Card schema - Completes documentation for Card Images feature (v0.7.0)
- Defined as one-to-many array of card_images resources
- Added
sourcesrelationship to Set schema - Completes documentation for Set Sources feature (v0.6.0)
- Defined as one-to-many array of set_sources resources
🔗 Release Information
📦 [0.7.3] - November 15, 2025
Changed
- github-actions(deps): bump actions/github-script from 7 to 8
🔗 Release Information
📦 [0.7.2] - November 15, 2025
Fixed
- Fix CHANGELOG.md version numbers after re-tagging 0.7.0 and 0.7.1 releases (#1085)
🔗 Release Information
📦 [0.7.1] - November 15, 2025
Fixed
- Fix version.sh to recognize 'Release TCAPI X.Y.Z' commit message pattern in addition to 'Release version X.Y.Z' (#1083)
🔗 Release Information
📦 [0.7.0] - November 15, 2025
Added
- Card Images System - Complete card image management system (#1045, #1046, #1047, #1048)
- Full CRUD API at
/v1/card-imageswith multipart file upload support - Support for front and back card images with unique constraint per card
- File validation: JPEG, PNG, WebP (up to 10MB, max 4000x4000px)
- Automatic JPEG standardization for all uploaded images
- Soft delete support - images never permanently deleted
- Factory support for testing with
CardImageFactory - JSON:API compliant requests and responses
- OpenAPI documentation for all image endpoints
- Automatic Thumbnail Generation (#1046)
- Three thumbnail sizes: small (150w), medium (300w), large (600w)
- Asynchronous generation using queued jobs (GenerateImageThumbnails)
- Quality optimization per size: 100% (original), 85%/80%/75% (large/medium/small)
- Download endpoint supports
?sizeparameter - Graceful failure handling with 3 retry attempts
php artisan images:regenerate-thumbnailscommand for bulk operations- Config-driven thumbnail system via
config/images.php - JPEG Standardization (#1047)
- All uploaded images converted to JPEG for consistency
- Smart JPEG handling: existing JPEGs stored as-is (no re-encoding)
- PNG/WebP conversion at 100% quality
- Rich variant metadata: width, height, file_size, quality, format
- Srcset generation for responsive images
- Sizes attribute recommendations for optimal browser selection
- CDN Integration (#1048)
- DigitalOcean Spaces CDN integration for global delivery
- Versioned URLs with automatic cache invalidation (
?v=timestamp) - Smart redirect: Download endpoint (302) to CDN instead of proxying
- Cache headers: 1-year TTL with immutable directive
- Model methods:
cdnEnabled(),getCdnUrl(),getVersionedUrl() - Comprehensive CDN setup documentation
- Fallback support for local disk when CDN not configured
- Comprehensive Testing (#1063, #1073, #1078)
- 628 total tests (77 new for Card Images functionality)
- CardImageRestTest: 29 API endpoint tests
- CardImageModelTest: 14 model and relationship tests
- CardImageCdnTest: 13 CDN functionality tests
- CardImageSchemaValidationTest: 24 JSON:API schema validation tests
- ImageUploadServiceTest: 21 service layer tests
- CardImageController tests: 18 authorization and CRUD tests
- GenerateImageThumbnails tests: 8 job tests
- 52 Bruno CLI integration tests for Card Images
- Performance benchmarking deferred to #1079
Changed
- Image upload service now sets cache headers on upload to Spaces
- CardImageTransformer returns versioned CDN URLs in all responses
- Download endpoint redirects to CDN when enabled
- All image URLs include version parameter for cache busting
- Card relationship:
?include=imagessupport in Card API responses
Configuration
- New
config/images.phpfor centralized image configuration .env.exampleincludes comprehensive image/CDN variablesIMAGE_STORAGE_DISKenv variable (local, s3, or spaces)- DigitalOcean Spaces configuration (DO_SPACES_*)
- CDN endpoint configuration (DO_SPACES_CDN_ENDPOINT)
🔗 Release Information
📦 [0.6.1] - November 9, 2025
Fixed
- Fix version script to extract version from commit message for squash-merged releases (#1054)
- Version script now correctly handles squash merges from release branches
- Extracts version from "Release version X.Y.Z" commit message pattern
- Prevents creating incorrect versions (e.g., 0.5.1 instead of 0.6.0)
🔗 Release Information
📦 [0.6.0] - November 9, 2025
Added
- Image UUID field for cards (#1014)
- New
image_uuidfield inapi_cardstable for storing image references - Support for UUID-based image naming convention
- Indexed for efficient lookups
- Nullable field for backward compatibility
- Included in Card API responses
- Factory support with
withImage()method for testing - Set source tracking table and API (#1013)
- New
api_set_sourcestable to track data sources for sets - Support for tracking checklist, metadata, and images sources
- Source URL, name, type, and verification timestamp
- Unique constraint: one source per type per set
- Cascade delete when parent set is removed
- Optional
sourcesinclude in Set transformer - Full CRUD API endpoints at
/v1/set-sources - JSON:API compliant requests and responses
- Request validation for all operations
- v2 API endpoints with corrected checklist response structure (#972)
- New
/v2/cardsand/v2/setsendpoints - Fixed JSON:API compliance issues from v1 endpoints
- Improved response structure consistency
- Personal Access Token authentication (#891, #1007, #1009)
- Simplified authentication for GPT and API clients
- Documentation for Personal Access Token usage
- OpenAPI documentation updates
- Per-client rate limiting for OAuth clients (#1002, #1004)
- Configurable rate limits per OAuth client
- Operator documentation for rate limit configuration
- Enhanced API security and resource management
- OAuth scope-based authorization (#948, #955, #956, #960, #965)
- Read scope for data retrieval operations
- Write scope for create/update operations
- Delete scope for deletion operations
- Status filtering based on OAuth scopes
- OAuth2 Password Grant support (#939)
- Enable OAuth2 password grant in Passport 13
- Admin authentication workflows
- MCP server integration (#949, #1007)
- Data cleanup workflows via MCP
- Testing documentation for MCP servers
- Release discovery slash commands (#986, #987, #991, #992, #993, #994, #995, #996)
/discover-new-releases- AI-powered release discovery foundation/add-release- Helper command for single set addition- Multi-source web scraping for release discovery
- Database cross-checking logic
- Interactive review and confirmation flow
- Batch set creation with error handling
- Comprehensive workflow documentation
- Auto-linking of branches to issues in
/issuecommand - Data cleanup slash commands (#916, #930, #932, #975, #976)
- Interactive set cleanup slash command system
/find-missing-oncard(renamed from/find-missing-players)- Data-cleanup agent for card and set publication preparation
- Documentation improvements (#912, #957, #966)
- Comprehensive database schema documentation
- Comprehensive OAuth 2.0 documentation
- Testing and quality improvements
- Linting workflow for fast code quality checks (#989, #990)
- Consolidate integration test commands into Makefile (#963)
- Review and fix skipped tests (#1027, #1029)
- Protected block system for documentation generation (#826, #1016)
- Simplify documentation generation workflow
- CLI flags for selective documentation generation
Changed
- Upgraded PHPUnit to 12.4 (#1037)
- Breaking: PHP 8.3+ now required
- Migrated PHPUnit test annotations to PHP 8 attributes (#1036)
- All 491 tests passing
- Updated all dependencies from Dependabot PRs (#1017, #1032)
- Laravel, Passport, and other core dependencies updated
- GitHub Actions dependencies updated
- All tests passing after updates
- Consolidated dependency updates (#1052, #1053)
- Updated lcobucci/clock from 3.3.1 to 3.5.0
- Updated @usebruno/cli from 2.13.2 to 2.14.0
- Standardized GitHub Actions to latest versions
- All tests passing after updates
- Improved release notes generation (#1023)
- Include CHANGELOG.md content in release notes
- Add issue links to release notes
- Data quality improvements
- Standardized player names for consistency (#1010)
- Standardized team names for consistency (#922, #1015)
- Completed manufacturer data for 14,101 sets (#919, #925)
- Fixed orphaned cards (#918, #924)
- Cleanup command for soft-deleted records (#920, #928)
- UUID primary key optimization (#910)
- Complete optimization with OPTIMIZE and ANALYZE
Fixed
- Fix release action to tag correct commit instead of defaulting to master (#1052, #1053)
- Added
commitparameter to ncipollo/release-action in all release workflows - Ensures RC and beta tags point to correct branch commits
- Fixes "already_exists" error when creating releases
- Fix
/v1/setsendpoint pagination to acceptper_pageparameter (#1024) - Fix Bruno collection issues found during manual API testing (#1019, #1030)
- Fix API welcome page version display (#943, #1005)
- Fix markdown linting violations in
docs/folder (#962, #964) - Resolve PHP 8.x deprecation warnings in card name generation (#945, #974)
Removed
- Deprecated non-versioned API routes (#1025)
- Removed all non-versioned endpoints
- All API access now requires
/v1/or/v2/prefix - Deprecated
api_card_player_teamstable (#923, #929) - Data cleanup phase 3 completion
- Legacy table structure removed
- Duplicated slash commands migrated to tools repository (#1022)
- Cleanup of redundant commands
🔗 Release Information
📦 [0.5.0] - November 2, 2025
🎉 Highlights
- Modern Testing Framework: Upgraded to PHPUnit 12.4.2 with PHP 8.3+ support
- Comprehensive Dependency Updates: 47 packages updated including Laravel 12.36.1 and Passport 13.3.0
- JSON:API Compliance: Strict header validation enforcement for all v1 endpoints
- Cleaner API Surface: Removed deprecated non-versioned routes
- Enhanced Testing: 491 PHPUnit tests + 111 Bruno integration tests, all passing
- Improved Code Quality: PHP_CodeSniffer 4.0, full markdown linting compliance
Added
- JSON:API Accept and Content-Type header validation (#1026)
- Strict JSON:API specification compliance for all v1 endpoints
- Content-Type header required on POST/PUT/PATCH/DELETE requests
- Returns 415 Unsupported Media Type for invalid Content-Type
- Returns 406 Not Acceptable for invalid Accept parameters
- CLI flags for selective documentation generation (#826)
- Team name standardization command (#922)
- Player name standardization command (#921)
- Abstract CleanupCommand base class for data quality tools
Changed
- Upgraded PHPUnit from 11.5.43 to 12.4.2 (#1034, #1035)
- Breaking: PHP 8.3+ now required (upgraded from 8.2)
- Migrated all test annotations to PHP 8 attributes
- Updated 4 test files with 47 test methods
- Eliminates all 50 PHPUnit deprecation warnings
- All 491 tests pass, 111 Bruno integration tests pass
- Updated all dependencies (#1017, #1032)
- GitHub Actions (5 updates): upload-artifact v5, download-artifact v6, setup-node v6, git-auto-commit v7, github-script v8
- PHP/Composer (38 updates): Laravel 12.36.1, Passport 13.3.0, webpatser/laravel-uuid 6.2.0 (major), PHP_CodeSniffer 4.0 (major)
- Node.js/npm (3 updates): @usebruno/cli 2.13.2, dotenv 17.2.3, axios 1.13.1
- All 491 PHPUnit tests pass after updates
- Replace Route::resource() with Route::apiResource() for all v1 endpoints (#1019)
- Removes unnecessary
createandeditroutes (for HTML forms, not APIs) - Reduces routes from 7 to 5 per resource
- Improve release notes generation to use CHANGELOG.md content (#830)
- Simplified documentation generation to API reference only (#826)
- Removed hardcoded version numbers from auto-generated docs
- README.md and guide docs are now regular markdown files
- Reduces documentation churn on version bumps
Removed
- Deprecated non-versioned API routes (#1021)
- Breaking: All endpoints now require version prefix (e.g.,
/v1/cards) - Removed 12 legacy controllers
- Removed DeprecatedRoute middleware
- Removed 13 deprecated test files
- Unused newman package and 64 transitive dependencies (#1017)
- Project now uses Bruno CLI exclusively for API testing
- Reduces npm package count by 65 packages
- Reduces npm security vulnerabilities from 7 to 4
- Migrated data quality slash commands to tradingcardapi-tools repository (#1020)
Fixed
/v1/setsendpoint pagination (#997)- Accept both
per_page(JSON:API standard) andlimit(legacy) - Add validation to enforce maximum of 100 items per page
- Resolves MCP server token limit issues
- Fix 56 duplicate Bruno request files (#1019)
- Fix broken validation script in 32 Bruno request files (#1019)
- Fix Attribute and ObjectAttribute url() methods missing API version prefix (#1019)
- Review and fix all skipped tests - reduced from 4 to 0 (#1027)
- Fix all markdown linting issues (#826)
Security
- OAuth2 security improvements via Laravel Passport 13.3.0
- JWT security improvements via lcobucci/jwt 5.6.0
- Symfony component security patches (11 packages)
Testing
- 491 PHPUnit tests - all passing with PHPUnit 12.4.2
- 111 Bruno integration tests - all passing
- Zero skipped tests - all problematic tests fixed
- PHP_CodeSniffer 4.0 - all 320 files pass
- Full markdown linting - all docs compliant
🔗 Release Information
📦 [0.4.23] - October 19, 2025
Added
- Interactive set cleanup slash command system for data quality management (#930, #932)
- Cleanup command for soft-deleted records with configurable retention periods (#920, #928)
- Data-cleanup agent for card and set publication preparation with automated quality checks (#916)
- Comprehensive database schema documentation with entity relationships and data quality metrics (#912)
Changed
- Enabled OAuth2 password grant in Passport 13 for admin authentication support (#939)
- Complete UUID primary key optimization with OPTIMIZE and ANALYZE for improved query performance (#910)
- Complete manufacturer data for 14,101 sets using automated matching and assignment (#919, #925)
Removed
- Deprecated api_card_player_teams table as part of Data Cleanup Phase 3 (#923, #929)
Fixed
- Fix orphaned cards without valid set relationships (#918, #924)
🔗 Release Information
📦 [0.4.22] - October 13, 2025
Fixed
- Fix checklist card ordering to use natural sort (Issue #904)
🔗 Release Information
📦 [0.4.21] - October 13, 2025
Added
- Add Bruno test files for format parameter
- Add compact format parameter to checklist endpoint (Issue #901)
🔗 Release Information
📦 [0.4.20] - October 13, 2025
Removed
- Remove release_date from OpenAPI spec (Issue #899)
Fixed
- Fix: Add validation for order_by parameter to prevent 500 errors (Issue #899)
🔗 Release Information
📦 [0.4.19] - October 13, 2025
Fixed
- Fix: Make Accept header optional for API calls (Issue #897)
🔗 Release Information
📦 [0.4.18] - October 13, 2025
Fixed
- Fix: Replace Card::all() with paginated query to prevent memory exhaustion
- Fix: Remove expensive user authentication from rate limiter
- Fix: Increase PHP memory limit to 512M to resolve Personal Access Token authentication failures
🔗 Release Information
📦 [0.4.17] - October 13, 2025
Added
- docs: Add Personal Access Token support to Bruno collection
Fixed
- fix: Make Personal Access Token test skip gracefully when not configured
- fix: Correct middleware naming to resolve test failures
- hotfix: Enable Personal Access Token authentication for API endpoints
🔗 Release Information
📦 [0.4.16] - October 12, 2025
Added
- Add 'read' OAuth scope for ChatGPT GPT integration (Issue #888)
🔗 Release Information
📦 [0.4.15] - October 12, 2025
Fixed
- Fix version script and code style issues
- Fix: Use static return type instead of self for withParameters
- Fix: Add default parameter and return type to withParameters
- Fix: Implement missing withParameters method in AuthorizationViewResponse
- Hotfix: Bind Passport AuthorizationViewResponse for OAuth authorization flow (Issue #885)
🔗 Release Information
📦 [0.4.14] - October 4, 2025
Fixed
- Fix card attribute clearing when using object-attributes relationships format
🔗 Release Information
📦 [0.4.13] - October 4, 2025
Added
- Implement container separation for API project local development
Changed
- Finalize API makefile environment variable handling
Fixed
- Fix upd command to properly handle environment variables
🔗 Release Information
📦 [0.4.12] - October 4, 2025
Fixed
- Fix test failure in CardRestTest::testExtraAttributesClear
- Fix markdown linting errors in DATASET-MANAGEMENT.md
- Fix card attribute assignment bug (Issue #874)
🔗 Release Information
📦 [0.4.11] - October 3, 2025
Changed
- github-actions(deps): bump actions/github-script from 7 to 8
Fixed
- hotfix: Fix version automation infinite loop (#872)
🔗 Release Information
📦 [0.4.10] - October 2, 2025
Changed
- Trigger CI after cleaning up test tags
🔗 Release Information
📦 [0.4.9] - October 2, 2025
Added
- Add Dataset Management documentation to README
- Add snapshots directory to dockerignore and clean up orphaned files
- Add fast backup/restore system with shell scripts
- Add comprehensive background dataset import system
- feat: implement lightning-fast database switching for dataset management
- docs: add comprehensive dataset management documentation
- feat: implement dataset management system for development/testing
Changed
- Update DATASET-MANAGEMENT.md to remove obsolete sections
- Simplify dataset management system by removing database switching
- Update dataset management documentation with backup/restore system
- Exclude Docker storage directory from builds and git
- Simplify dataset management system to single database approach
Removed
- Remove references to non-existent dataset:reset command
- Remove cross-project integration and clean up dataset configuration
- Remove obsolete ImportProductionDatasetJob
- Remove dataset API endpoint and controller
- Remove obsolete DatasetImportBackgroundCommand
- Remove obsolete DatasetForceRestartCommand
- Remove obsolete DatasetCleanupCommand and scheduled cleanup
- Remove legacy snapshots directory and references
Fixed
- fix: exclude dataset snapshots from Docker build context
🔗 Release Information
📦 [0.4.8] - September 20, 2025
Added
- Add set_id field to Card API response
🔗 Release Information
📦 [0.4.7] - September 19, 2025
Fixed
- Fix JSON escaping in trigger-docs-update.yaml workflow
🔗 Release Information
📦 [0.4.6] - September 19, 2025
Added
- Add workflow to trigger documentation updates on releases
Changed
- Trigger CI after cleaning up test tags
🔗 Release Information
📦 [0.4.5] - September 7, 2025
Added
- Add token fallback for Dependabot PRs
Changed
- npm(deps-dev): bump @usebruno/cli from 1.40.0 to 2.9.1
🔗 Release Information
📦 [0.4.4] - September 6, 2025
Added
- Add commit deduplication to changelog script
- Add token fallback for Dependabot PRs
Changed
- github-actions(deps): bump actions/download-artifact from 4 to 5
🔗 Release Information
📦 [0.4.3] - September 6, 2025
Changed
- Use actual committer's name and email for automation commits
- Use DEPLOY_APP_TOKEN to trigger status checks on automation commits
- Replace manual git commands with git-auto-commit-action
- Improve auto-version-bump exclusion logic
- Disable auto-version-bump for workflow development branches
- Restore content to empty 0.4.3 changelog section
Fixed
- Fix git-auto-commit-action configuration issues
🔗 Release Information
📦 [0.4.2] - September 6, 2025
Added
- Document new automated PR version management system
Changed
- Update CLAUDE.md with new automated PR workflow documentation
- Start fresh: remove entire 0.4.2 section for clean automation test
- Resolve changelog conflict - accept clean automated version
- Re-enable automation for all release PRs including workflow development
- Automate version bump workflow for release PRs
Removed
- Remove useless automatic version updates comment from workflow
- Remove manual changelog entry to let automation handle everything
- Remove outdated manual workflow instructions from PR comments
Fixed
- Fix PR status checks by forcing CI run on final commit
- Fix all remaining markdown linting issues in documentation
- Fix corrupted changelog structure after merge conflict
- Final fix: disable auto-version-bump for workflow development branches
🔗 Release Information
📦 [0.4.1] - September 6, 2025
Changed
- Updated GitHub Actions dependencies
- Bump actions/checkout from v4 to v5 (Dependabot)
🔗 Release Information
📦 [0.4.0] - September 6, 2025
🔒 Major Security & Rate Limiting Features
- Comprehensive Rate Limiting System with Redis backend and tiered limits (Issues #678, #680, #681)
- Anonymous rate limits: 100 requests/hour
- Authenticated rate limits: 2000 requests/hour
- OAuth client rate limits: 1000 requests/hour
- OAuth token endpoint: 10 requests/minute
- Rate limit headers in all responses
- Comprehensive test suite with performance and edge case testing
📊 API Usage Analytics & Monitoring
- Comprehensive API usage logging system for rollout analytics (Issue #735)
ApiUsageLoggingmiddleware for automatic request trackingLogApiUsagejob for asynchronous database logging- Database migration for
api_usage_logstable with optimized indexes - Complete test coverage with 20 test cases (unit and feature tests)
- Analytics queries for endpoint popularity, response times, and error rates
- Endpoint normalization for ID and UUID parameters
🔧 Infrastructure & Dependencies
- Updated all PHP and Node.js dependencies to latest secure versions (Issue #791)
- Laravel framework 12.21.0 → 12.28.1
- Laravel Passport 13.0.6 → 13.2.0
- PHPUnit 11.5.27 → 11.5.36
- Node.js 22 → 23
- Security fixes for @usebruno/cli and newman packages
- Updated GitHub Actions to latest versions
📚 Enhanced Documentation & Testing
- Comprehensive rate limiting documentation across all relevant files
- Manual rate limiting testing command (
php artisan test:rate-limiting) - Bruno CLI integration tests for rate limiting scenarios
- Troubleshooting procedures and debugging guides
- Enhanced documentation generation with preserved manual content
- Fixed documentation template formatting issues
⚠️ Breaking Changes
- New rate limiting may affect high-volume API consumers:
- Anonymous users now limited to 100 requests/hour (previously unlimited)
- OAuth token generation limited to 10 requests/minute
- New rate limit headers in all responses
🐛 Bug Fixes
- Resolved API usage logging content removal during version bumps
🔗 Release Information
📦 [0.3.9] - August 14, 2025
Fixed
- Documentation workflow not triggering when workflow file itself is updated
🔗 Release Information
📦 [0.3.8] - August 13, 2025
Fixed
- Documentation generation workflow references to non-existent docs/generated/ directory
🔗 Release Information
📦 [0.3.7] - August 13, 2025
Fixed
- Documentation generation workflow failing due to incorrect npm script name
🔗 Release Information
📦 [0.3.6] - August 13, 2025
Fixed
- OAuth key file ownership issues causing "Key path does not exist or is not readable" errors (Issue #689)
🔗 Release Information
📦 [0.3.5] - August 13, 2025
Fixed
- OAuth client authentication failures with "This password does not use the Bcrypt algorithm" error (Issue #675)
- Laravel Passport 13 client secret validation by updating plain text secrets to bcrypt format
- Production API authentication issues for OAuth clients with legacy plain text secrets
- Docker builds failing on Debian Trixie due to nginx.org repository compatibility
- Integration test failures by adding HTTP support alongside HTTPS in nginx configuration
Added
oauth:fix-client-secretsartisan command to safely update OAuth client secrets to bcrypt format- Database migration to automatically fix OAuth client secret format during deployment
- Dry-run mode for OAuth client secret fix command with safety confirmations
🔗 Release Information
📦 [0.3.4] - August 9, 2025
Added
- Comprehensive PROJECT_OVERVIEW.md markdown description file with strategic business and technical analysis (Issue #648)
🔗 Release Information
📦 [0.3.2] - August 9, 2025
Fixed
- Version script master branch logic simplified to use reliable git tag-based versioning instead of fragile commit message parsing (Issue #666)
🔗 Release Information
📦 [0.3.1] - August 9, 2025
Added
- Comprehensive version script test suite in
build/tests/with validation for all branch scenarios - Version script validation integrated into lint checks (
npm run lint:version) ./build/scripts/test-versionunified test runner for version script validation- Improved npm test scripts:
npm testnow runs PHP tests and version script validation (CI-safe)
Changed
- Update CHANGELOG.md for version script hotfix
- Auto-update OpenAPI documentation
Fixed
- Fix version script tests for CI environments
- Fix version script tag selection to prefer higher version numbers
- Fix version script conditional logic bug and add comprehensive tests
- Critical version script bug: Fixed conditional logic in
build/version.shwhere line 61 was overwriting release branch version extraction (Issue #662) - Version synchronization between release branches and actual release versions
- Release branch version extraction now properly uses branch names (e.g.,
release/0.3.0→0.3.0)
🔗 Release Information
📦 [0.3.0] - August 8, 2025
Added
- Bruno API testing collection with comprehensive endpoint coverage and CI/CD validation
- OAuth integration tests with automatic token management and authentication flow validation
- Complete OpenAPI 3.0 documentation with interactive Swagger UI
- OpenAPI schema definitions for all API resources in
/app/OpenApi/Schemas.php - L5-Swagger integration for automatic documentation generation
- GitHub Actions workflow for automated documentation validation and deployment
- Makefile commands:
make docs,make docs-validate,make help - Public documentation directory
/public/docs/with usage examples - V1 namespaced controllers with complete OpenAPI documentation for versioned endpoints
- Complete documentation generation system with automated repository documentation from OpenAPI specifications
Changed
- All API endpoints now include comprehensive OpenAPI attributes
- Updated L5-Swagger configuration for optimal documentation generation
- Enhanced README with OpenAPI documentation section
- V1 routes now use dedicated V1 controllers in
App\Http\Controllers\V1namespace - OpenAPI documentation includes both legacy and V1 versioned endpoints with separate tags
make changelog-updatecommand now also updates OpenAPI documentation to ensure version consistency- User-friendly development scripts with comprehensive output and error handling moved to
build/scripts/ - Removed obsolete gulp build system, Postman tooling, and legacy file references for simplified development workflow
🔗 Release Information
📦 [0.2.85] - July 28, 2025
Added
- New
make release-notes-previewcommand to preview GitHub release notes before merging - Enhanced GitHub release notes with clean, organized format and quick navigation
- Dedicated "Issues Fixed" section in release notes with clickable GitHub issue links
- Claude API integration for intelligent release summary generation based on commits, file changes, and changelog content
Changed
- GitHub release notes now use curated changelog content instead of raw commit messages
- Release notes structure improved with sections for Summary, What's Changed, Links & Resources, and Deployment
- Docker image links now included directly in release notes for easy access
🔗 Release Information
📦 [0.2.84] - July 27, 2025
Added
- Added
make changelog-updatecommand to automatically organize changelog with next version - Added
make changelog-previewcommand to see next version and current unreleased changes - Added changelog requirements to pull request template
- Added
--masterflag to version script to simulate master branch version
Changed
- Modified build process to remove automatic changelog commits during merge conflicts
- Updated changelog maintenance to manual process with make commands for organization
- Updated documentation (CLAUDE.md and VERSION_MANAGEMENT.md) to explain changelog workflow
- Removed automatic changelog commits from build workflow entirely
Fixed
- Resolved merge conflict issues caused by automated changelog updates
- Fixed recursive changelog generation that included meta-commits
🔗 Release Information
📦 [0.2.83] - July 28, 2025
Fixed
- fix: modify how changelog gets updated
🔗 Release Information
📦 [0.2.82] - July 28, 2025
Changed
- chore: cleanup changelog entries
🔗 Release Information
📦 [0.2.81] - July 28, 2025
Added
- API versioning strategy with URL path versioning (
/v1/) - Version information endpoint (
/version) - Dynamic version generation from Git using
build/version.sh - Synchronized versioning across application, API, and CI/CD
- Comprehensive changelog documentation
🔗 Release Information
📦 [0.2.80] - July 28, 2025
Fixed
- fix: fix the release process
🔗 Release Information
📦 [0.2.79] - July 28, 2025
Fixed
- fix: fix docker image tagging process
🔗 Release Information
📦 [0.2.78] - July 28, 2025
Added
- feat: add API versioning with v1 endpoints
- #611 Add tests for new routes
- #611 Add versioning support to the api
Changed
- Merge pull request #616 from cardtechie/feature/611-change-versioning
- #611: Automate document updates
- Merge branch 'master' into feature/611-change-versioning
- #611 Dynamically figure out the version
Fixed
- Fix: Fix process with generation of version number
- #611 Fix failing tests on github
🔗 Release Information
📦 [0.2.73+] - January 27, 2024
Added
- Pre-release API with comprehensive trading card management
- Core endpoints: cards, sets, players, teams, genres, years, manufacturers, brands
- OAuth2 authentication with Laravel Passport 13
- JSON:API specification compliance
- UUID primary keys for all models
- Polymorphic OnCard relationships (Players, Teams, PlayerTeams)
- Automatic card name generation with format tokens (
%d,%o,%l,%a,%s) - Soft delete functionality via Laravel observers
- Docker containerization with multi-environment support
- OpenAPI/Swagger documentation
- Comprehensive test suite (PHPUnit, linting, code standards)
- GitHub Actions CI/CD pipeline
Technical Details
- Framework: Laravel 12 with PHP 8.2+
- Database: MySQL 8.0 with UUID primary keys
- Authentication: Laravel Passport 13 OAuth2
- API Standard: JSON:API specification compliance
- Testing: PHPUnit 11, PHP CodeSniffer, OpenAPI validation
- Containerization: Docker with development, testing, and production environments
Endpoints
GET|POST /cards- Card managementGET|POST /sets- Set management with checklist supportGET|POST /players- Player managementGET|POST /teams- Team managementGET|POST /playerteams- Player-team relationship managementGET|POST /attributes- Card attribute managementGET|POST /object-attributes- Object attribute relationshipsGET|POST /genres- Genre management with soft delete supportGET|POST /years- Year managementGET|POST /manufacturers- Manufacturer managementGET|POST /brands- Brand managementGET /stats/{type}- Statistics endpoint
Security
- OAuth2 client credentials flow
- Environment-based configuration
- SSL/TLS support with Let's Encrypt
- No sensitive data in repository
🔗 Release Information
📊 Release Statistics
- Latest Stable: 0.7.5
- Total Releases: 51+ releases since inception
- Release Frequency: Weekly updates with patches, monthly for minor versions
🔗 Additional Resources
📖 API Documentation
- API Endpoints - Complete endpoint reference
- Data Models - Response structure documentation
- Rate Limits - Usage limits and best practices
- Authentication - Setup and configuration
🐙 GitHub Resources
- API Repository - Source code and technical details
- All Releases - Complete release history
- Issues & Bug Reports - Report API issues
- Pull Requests - View ongoing development
🛠️ Development Tools
- API Explorer - Interactive API testing
- SDKs - Official client libraries
- OpenAPI Specification - Technical API specification
🏷️ Version Information
- Current API Version: 0.7.5
- API Base URL:
https://api.tradingcardapi.com - Release Schedule: Continuous deployment with semantic versioning
- Support Policy: Latest 3 major versions supported
🔔 Stay Updated
📧 Get Notified
- GitHub Watch - Get notified of new API releases
- Email Newsletter - Monthly API updates
- Developer Blog - Technical articles and release announcements
💬 Community & Support
- GitHub Discussions - Ask questions about API functionality
- Email Support - Direct technical support
- Status Page - API uptime and incident reports
Questions About a Release?
Have questions about a specific API change or need help upgrading? We're here to help! Reach out through GitHub Issues or email support.
Automated Updates
This changelog is regularly updated with the latest API releases. For real-time updates, follow the API repository on GitHub.
Last updated: November 22, 2025 at 01:15 PM UTC