Skip to main content
A row action adds an entry to the row menu of one of Tappify’s tables. Choosing it opens your component in the expand panel with the row as tap.context.

The manifest entry

The command writes this entry. You can hand-edit tappify.extension.json instead — the $schema line gives your editor completion and validation, and tappify extension doctor checks the result. The four host tables are analytics.keywords, analytics.reviews, deployments.releases and deployments.builds. They are listed with their columns on Pages and slots.

The component

row arrives as Record<string, unknown>, which is why keyword is narrowed before it is used. explanation.data is typed once tappify extension types has turned server.procedures into declarations — see Generated types. The same object arrives as tap.context, so a component that is both a widget and a row action can read one place: useTapContext().

What the host renders

Your entry appears in the row menu below Tappify’s own entries, with the vendor tile. Choosing it opens the expand panel at 640 pixels; Esc closes it, and the footer’s Open in your product is the only exit out of Tappify. The row is passed read-only — a row action that changes the owner’s data does it through an action with an approval card, never by writing directly.