documents.settings on every call.
The manifest entry
tappify.extension.json instead — the
$schema line gives your editor completion and validation, and
tappify extension doctor checks the result.
The command also writes schemas/settings.json with a single enabled boolean in it,
there to be replaced by what owners set. The examples on this page are written
against two properties:
tappify extension types after every edit to the schema, so the generated TapSettings
follows it.
The component
TapSettingsProps gives you the current values and one callback. Render the schema with
TapForm rather than writing inputs by hand — it maps the same schema the manifest points
at, so the form and the generated TapSettings type cannot disagree.
Where the values go
Saving writes the install-scopedsettings singleton, which is why storage may not
declare a collection of that name. Three things happen at once:
- The document is validated against your schema before it is stored.
- Every mount of your extension in that browser is told, so a widget reflects a saved preference without a reload.
- A
settings.changedevent fires, which your UI can subscribe to and your server can receive.
documents.settings on every call it receives, so
it never asks Tappify for them.
Build forms from schemas
What
TapForm renders for each schema construct.Store data with hosted storage
Collections of your own, scoped per teammate, install or workspace.
Preview in the portal
Render the panel against fixture data before anything is installed.