The DPP configuration API provides tRPC procedures for managing passport publishing, cache revalidation, and preview functionality.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Avelero/avelero/llms.txt
Use this file to discover all available pages before exploring further.
Publishing passports
Publish a single passport
UUID of the variant to publish as a DPP
The 16-character unique passport identifier for the published DPP
Version number of the published snapshot (increments with each publish)
ISO 8601 timestamp of publication
- Creates an immutable snapshot of the variant’s current data
- Generates a UPID if this is the first publication
- Increments version number if updating an existing passport
- Revalidates the cache for the passport URL
Bulk publish passports
Array of variant UUIDs to publish
Count of successfully published passports
Count of variants that failed to publish
Array of published passport details (upid, version, published_at)
Cache revalidation
Revalidate DPP cache
After publishing, the cache is automatically revalidated. For manual revalidation:UPID of the passport to revalidate
Bearer token with the revalidation secret (configured via
REVALIDATION_SECRET env var)Preview functionality
Preview unpublished changes
Preview a passport before publishing:UUID of the variant to preview
Brand theme configuration (menus, CTA, social links, section visibility)
Brand theme styles (colors, typography, component classes)
Preview queries are not cached and always reflect the current state of the variant. Use this for testing changes before publishing.
Unpublishing passports
To unpublish a passport, delete the variant. The passport will remain accessible but marked as inactive.Deleted variants maintain their published snapshots for immutability. The passport page displays an “inactive” indicator but remains viewable to preserve historical data.
Passport versioning
Each time you publish changes to a variant:- First publication: Creates passport record with
version: 1and generates UPID - Subsequent publications: Increments version number, creates new snapshot
- Version history: All snapshots are retained in the database (immutable audit trail)
- Current version number
- Publication timestamp
- Snapshot of all product/variant data at time of publication
- Theme configuration at time of publication
Why immutable snapshots?
Why immutable snapshots?
Immutable snapshots ensure that published passports never change unexpectedly. This is critical for:
- Regulatory compliance: EU ESPR requires published data to remain accessible
- Consumer trust: QR codes on physical products must point to stable data
- Audit trails: Historical versions provide proof of what was published when
- Cache efficiency: Immutable content can be cached indefinitely
Implementation reference
The DPP configuration API is implemented in:/apps/api/src/trpc/routers/dpp/publish.ts- Publishing procedures/apps/api/src/trpc/routers/dpp/preview.ts- Preview functionality/apps/dpp/src/app/api/revalidate/route.ts- Cache revalidation endpoint/packages/db/src/queries/dpp/- Database queries for snapshots
Common workflows
Publishing workflow
Updating published passport
Public access
Learn about public DPP endpoints
Products API
Manage product data