App.published
Emitted each time an App is published.
App.publish emits App.published when it completes on an App.
| Property | Value |
|---|---|
| Emitted by | App.publish |
| Noun | App |
| Wakes | None. |
Payload
Each delivery is an Event record. data holds what App.publish returns.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | required | App.published. |
at | datetime | required | When it happened. |
seq | integer | Its position in the namespace, one more than the Event before; any seq is a cursor into the history. | |
data | json | required | The Thing as the Action left it. |
data.app | App | required | The App, now released. |
data.app.kind | string | required | One of api, mcp, cli, sdk, site, app, docs, or webhooks. |
data.app.path | string | Where it is mounted on its Domain, such as /. | |
data.app.conformsTo | json | The Standards it also speaks, each mapping the Standard’s operations onto the Product’s Verbs. | |
data.app.personas | list of Persona | The Personas it serves. | |
data.app.views | list of Dashboard | Its Dashboards, compiled by default from the Persona’s Role: a list and record per Noun, a form per Verb. | |
data.app.slots | json | Named places where a Component replaces a default part, such as a record header or the ask control. |
Example
{
"$id": "https: //api.sb/ routewise.dev/ events/ event_1",
"$type": "Event",
"name": "App.published",
"at": "2026-10-22T12: 00: 00Z",
"data": {
"app": {
"$id": "https: //api.sb/ routewise.dev/ apps/ app_1",
"$type": "App",
"kind": "api",
"path": "/",
"conformsTo": {
"standard": "openai-chat",
"operations": {
"chat.completions.create": "Listing.write"
}
},
"personas": [
"persona_1"
],
"views": [
"dashboard_1"
],
"slots": {}
}
},
"seq": 1
}