Skip to content

v1.1.0 Release

Choose a tag to compare

@dayyanj dayyanj released this 17 Mar 05:16
· 3 commits to main since this release

Spwig Provider SDKs — Release Notes

Date: March 17, 2026
Commit: 3c93f61
Stats: 32 files changed, 4,402 insertions, 117 deletions


New: Translation Provider SDK

Complete SDK for building translation provider integrations that connect Spwig stores to external translation APIs (e.g. DeepL, Google Translate, Azure Translator).

DEVELOPMENT_GUIDE.md (612 lines)

  • 17-section guide covering the full development lifecycle
  • Base class reference for TranslationProviderBase with 3 abstract properties and 4 abstract methods
  • Documents the key constructor behavior: base class auto-calls validate_credentials() in __init__ (unique among all provider types)
  • Capability flags: batch_translate, language_detection, formality, glossary, html_support
  • Credential schema field types with select + choices pattern for dropdowns (e.g. region selector)
  • Provider loading, credential encryption (Fernet from SECRET_KEY), and security guidance
  • Complete submission checklist for marketplace publishing

Example Provider (example_translation_provider/v1.0.0/)

  • Full ExampleTranslateProvider implementation against a fictional "Example Translate API"
  • Demonstrates: regional endpoint routing, batch translation, connection testing with error handling
  • 25 supported languages, select field for region in credential schema
  • manifest.json with all required fields, capability declarations, and multi-language marketplace metadata
  • setup_instructions.html with data-i18n attributes for admin i18n
  • 39 passing unit tests across 8 test classes — all HTTP calls mocked, covers success paths, error handling, region routing, and manifest/provider consistency validation
  • conftest.py with pytest fixtures and collect_ignore pattern for package compatibility

New: SEO Generator Provider SDK

SDK for building AI-powered SEO content generators that produce meta titles, descriptions, and keywords for products, categories, and pages.

DEVELOPMENT_GUIDE.md (588 lines)

  • Base class reference for SEOGeneratorProviderBase
  • Covers: content type handling (product, category, page, blog), generation parameters, rate limiting patterns
  • Capability flags: bulk_generate, keyword_analysis, competitor_analysis, content_scoring

Example Provider (example_seo_generator_provider/v1.0.0/)

  • Full ExampleSEOGeneratorProvider implementation
  • manifest.json, setup instructions, logo, and test suite (261 lines of tests)

Updated: Payment Provider SDK

Significant expansion of the most complex provider type.

  • DEVELOPMENT_GUIDE.md: Expanded from ~100 lines to ~1,000 lines with comprehensive coverage of payment flows, webhooks, refunds, checkout handler patterns, and PCI compliance guidance
  • checkout-handler.js (NEW): Client-side checkout handler reference implementation (201 lines) demonstrating payment form integration, tokenization, and 3D Secure flows
  • provider.py: Expanded from stub to full reference implementation (249+ lines added)
  • manifest.json: Enhanced with complete capability declarations and webhook configuration
  • README.md: Expanded marketplace listing with feature highlights

Infrastructure Updates

JSON Schema (schemas/provider_manifest_base_schema.json)

  • Added translation_provider and seo_generator_provider to the component_type enum
  • Updated description to reflect new provider types
  • Total supported types now: 12

README.md

  • Added Translation and SEO Generator rows to the Provider Types table
  • SDK count: 12 provider types documented

CLAUDE.md (AI Context)

  • Added translation_provider and seo_generator_provider to the Provider Types table with base class imports and constructor signatures
  • Added note about Translation base class auto-calling validate_credentials() in constructor
  • Updated SDK Directories table with new entries

SDK Coverage Summary

SDK Guide Example Tests Status
Payment 995 lines Full Yes Updated
Shipping Yes Yes Yes Existing
Terminal Yes Yes Yes Existing
Email Yes Yes Yes Existing
Translation 612 lines Full 39 tests New
SMS Yes Yes Yes Existing
Payout Yes Yes Yes Existing
Social Connector Yes Yes Yes Existing
License Server Yes Yes Yes Existing
Product Feed Yes Yes Yes Existing
SEO Generator 588 lines Full Yes New
Exchange Rate Yes Yes Yes Existing

Key Technical Notes

  • Translation providers have a unique constructor pattern: the base class auto-calls validate_credentials() during __init__. All other provider types require the platform to call validation separately.
  • Credential schema supports 4 field types: text, password, url, select (with choices array). The translation example demonstrates the select pattern for region selection.
  • Credential encryption is automatic for fields matching keywords: key, secret, token, password, auth. Uses Fernet symmetric encryption derived from Django's SECRET_KEY.
  • All example tests use mocked HTTP — zero real network requests. Tests verify both the provider implementation and consistency with manifest.json.