This example maps content publishing plugins to app-platform publisher patterns.
| Area | Migration choice |
|---|---|
| UI | App-owned publisher UI or first-party publisher pattern. |
| Insert path | content.insert.app-document for generated documents and queue routes for request status. |
| App data | Draft metadata, public read URI summary, document digest, queue request id, status, and retry state. |
| Content profile | Use a reviewed profile such as crypta.profile.v1 or crypta.feed.snapshot.v1 when structured public documents are published. |
| Review | Explain generated bytes, content type, size bounds, queue behavior, and redaction. |
app.id=publisher-pattern.example
api.targetStability=stable
api.experimentalCapabilitiesAccepted=false
app.permissions=content.insert.app-document,queue.read,queue.write,app.data.read,app.data.write
app.data.schema.current=1
app.data.schema.namespaces=publisherIf the publisher signs profile, feed, trust, or social documents, use an experimental manifest and add the specific AppVault capabilities with a review rationale.
{
"newAppId": "publisher-pattern.example",
"documentType": "crypta.feed.snapshot.v1",
"documentDigest": "sha256:example-digest",
"queueRequestId": "request-id.example",
"publicReadUriSummary": "crypta:USK@<example-public-read-key>/feed/1/feed.json",
"privateInputsExcluded": true
}Do not include private insert URIs, local source paths, raw generated documents, raw request bodies, or queue HTML.